C語(yǔ)言基礎(chǔ)練習(xí)題含答案[共70頁(yè)]
《C語(yǔ)言基礎(chǔ)練習(xí)題含答案[共70頁(yè)]》由會(huì)員分享,可在線閱讀,更多相關(guān)《C語(yǔ)言基礎(chǔ)練習(xí)題含答案[共70頁(yè)](70頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 1 目錄 第1-3章 C語(yǔ)言基礎(chǔ)知識(shí)習(xí)題 2 1 選擇題 2 2 填空題 7 3 答案及部分解析 9 第4章 選擇結(jié)構(gòu)習(xí)題 11 1 選擇題 11 2 填空題 17 3 答案及部分解析 23 第5章 循環(huán)結(jié)構(gòu)習(xí)題 26 1 選擇題 26 2 填空題: 32 3 答案及部分解題分析 39 第6章 數(shù)組習(xí)題 41 1. 單項(xiàng)選擇題 41 2. 填空題 44 3. 判斷題 45 4. 程序填空題 45 5. 閱讀程序,分析程序的功能。 49 第7章 函數(shù)習(xí)題 55
2、1. 單項(xiàng)選擇題 55 2. 填空題 56 3. 判斷題 57 4. 程序填空題 58 5. 寫出下列程序運(yùn)行結(jié)果 59 第8章 指針習(xí)題 67 1 選擇題 67 2 填空題 69 第1-3章 C語(yǔ)言基礎(chǔ)知識(shí)習(xí)題 1 選擇題 1. 以下不是C語(yǔ)言的特點(diǎn)的是( )。 A、語(yǔ)言簡(jiǎn)潔緊湊 B、能夠編制出功能復(fù)雜的程序 C、C語(yǔ)言可以直接對(duì)硬件操作 D、C語(yǔ)言移植性好 2. 下列字符序列中,不可用作C語(yǔ)言標(biāo)識(shí)符的是( )。 A.a(chǎn)bc123 B.no.1 C._123_ D.
3、_ok 3. 正確的C語(yǔ)言標(biāo)識(shí)符是 ( )。 A._buy_2 B.2_buy C.?_buy D.buy? 4. 請(qǐng)選出可用作C語(yǔ)言用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符( )。 A.void B.a(chǎn)3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 5
4、. 下列符號(hào)中,不屬于轉(zhuǎn)義字符的是( )。 A.\\ B.\0xAA C.\t D.\0 6. 不屬于C語(yǔ)言關(guān)鍵字的是( )。 A.int B.break C.while D.character 7. 是C語(yǔ)言提供的合法關(guān)鍵字的是( )。 A.Float B.signed C.integer D.Char 8. 以下不能定義為用戶標(biāo)示符的是( )。 A
5、.scanf B.Void C._3com_ D.int 9. 一個(gè)C程序是由( )。 A. 一個(gè)主程序和若干子程序組成 B. 一個(gè)或多個(gè)函數(shù)組成 C. 若干過程組成 D. 若干子程序組成 10. C語(yǔ)言程序的基本單位是( )。 A.程序行 B.語(yǔ)句 C.函數(shù) D.字符 11. 下列說法中,錯(cuò)誤的是( )。 A.每個(gè)語(yǔ)句必須獨(dú)占一行,語(yǔ)句的最后可以是一個(gè)分號(hào),也可以是一個(gè)回車換行符號(hào) B.每個(gè)函數(shù)都有一個(gè)函數(shù)頭和一個(gè)函數(shù)體,主函數(shù)也不例外
6、 C.主函數(shù)只能調(diào)用用戶函數(shù)或系統(tǒng)函數(shù),用戶函數(shù)可以相互調(diào)用 D.程序是由若干個(gè)函數(shù)組成的,但是必須有、而且只能有一個(gè)主函數(shù) 12. 以下說法中正確的是( )。 A.C語(yǔ)言程序總是從第一個(gè)定義的函數(shù)開始執(zhí)行 B.在C語(yǔ)言程序中,要調(diào)用的函數(shù)必須在main( )函數(shù)中定義 C.C語(yǔ)言程序總是從main( )函數(shù)開始執(zhí)行 D.C語(yǔ)言程序中的main( )函數(shù)必須放在程序的開始部分 13. C編譯程序是( )。 A.C程序的機(jī)器語(yǔ)言版本 B.一組機(jī)器語(yǔ)言指令 C.將C源程序編譯成目標(biāo)程序 D.由制造廠家提供的一套應(yīng)用軟件 14.以
7、下選項(xiàng)中,合法的用戶標(biāo)識(shí)符是( )。 A.long B._2abc C.3dmax D.A.dat 15.以下選項(xiàng)中,合法的實(shí)型常數(shù)是( )。 A.5E2.0 B.E-3 C.2E0 D.1.3E 16.已知大寫字母A的ASCII碼值是65, 小寫字母a的ASCII碼是97,則用八進(jìn)制表示的字符常量’\101’是( )。 A.字符A B.字符a C.字符c D.非法的常量 17.以下選項(xiàng)中, 合法轉(zhuǎn)義字符的選項(xiàng)是( )。 A.’\\’
8、B.’\018’ C.’xab’ D.’\abc’ 18.以下選項(xiàng)中,正確的字符常量是( )。 A.”F” B.’\\’’ C.’W’ D.’’ 19.以下選項(xiàng)中可作為C語(yǔ)言合法整數(shù)的是 A.10110B B.0386 C.0Xffa D.x2a2 20.下列變量定義中合法的是 A.short _a=1-.le-1; B.double b=1+
9、5e2.5; C.long do=0xfdaL; D.float 2_and=1-e-3; 21.與數(shù)學(xué)式子對(duì)應(yīng)的C語(yǔ)言表達(dá)式是( )。 A.9*x^n/(2*x-1) B.9*x**n/(2*x-1) C.9*pow(x,n)*(1/(2*x-1)) D.9*pow(n,x)/(2*x-1) 22.若有代數(shù)式,則不正確的C語(yǔ)言表達(dá)式是( )。 A.a(chǎn)/c/d*b*3 B.3*a
10、*b/c/d C.3*a*b/c*d D.a(chǎn)*b/d/c*3 23.已知各變量的類型說明如下: int m=8,n, a, b; unsigned long w=10; double x=3.14, y=0.12; 則以下符合C語(yǔ)言語(yǔ)法的表達(dá)式是( )。 A.a(chǎn)+=a-=(b=2)*(a=8) B. n=n*3=18 C.x%3 D.y=float (m) 2
11、4.以下符合C語(yǔ)言語(yǔ)法的賦值表達(dá)式是( )。 A.a(chǎn)=9+b+c=d+9 B.a(chǎn)=(9+b, c=d+9) C.a(chǎn)=9+b, b++, c+9 D.a(chǎn)=9+b++=c+9 25. 已知字母A的ASCII碼為十進(jìn)制數(shù)65,且S為字符型,則執(zhí)行語(yǔ)句S=’A’+’6’-’3’;后,S中的值為( )。 A.’D’ B.68 C.不確定的值 D.’C’ 26.在C語(yǔ)言中,要求運(yùn)算數(shù)必須是整型的運(yùn)算符是( )。
12、A./ B.++ C.*= D.% 27.若有說明語(yǔ)句:char s=’\72’;則變量s( )。 A.包含一個(gè)字符 B.包含兩個(gè)字符 C.包含三個(gè)字符 D.說明不合法,s的值不確定 28.若有定義:int m=7; float x=2.5, y=4.7; 則表達(dá)式x+m%3*(int)(x+y)%2/4的值是( )。 A.2.500000 B.2.750000 C.3.500000 D.0.000000 29.在C語(yǔ)言中,char型數(shù)據(jù)在內(nèi)存中
13、的存儲(chǔ)形式是( )。 A.補(bǔ)碼 B.反碼 C.原碼 D.ASCII碼 30.設(shè)變量x為float類型,m為int類型,則以下能實(shí)現(xiàn)將x中的數(shù)值保留小數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五入運(yùn)算的表達(dá)式是( )。 A.x=(x*100+0.5)/100.0 B.m=x*100+0.5, x=m/100.0 C.x=x*100+0.5/100.0 D.x=(x/100+0.5)*100.0 31.表達(dá)式13/3*sqrt(16.0)/8的數(shù)據(jù)類型是( )。 A.int B.fl
14、oat C.double D.不確定 32.設(shè)以下變量均為int類型,則值不等于7的表達(dá)式是( )。 A.(m=n=6, m+n, m+1) B.(m=n=6, m+n, n+1) C.(m=6, m+1, n=6, m+n) D.(m=6, m+1, n=m, n+1) 33.假設(shè)所有變量均為整型,則表達(dá)式(x=2, y=5, y++, x+y)的值是( )。 A.7 B.8 C.6 D.2 34.已知s是字符型變量,下面不正確的賦值語(yǔ)句是( )
15、。 A.s=’\012’; B.s= ’u+v’; C.s=’1’+’2’; D.s=1+2; 35.已知s是字符型變量,下面正確的賦值語(yǔ)句是( )。 A.s=’abc’; B.s=’\08’; C.s=’\xde’; D.s=”\”; 36.若有以下定義,則正確的賦值語(yǔ)句是( )。 int x,y; float z; A.x=1,y=
16、2, B.x=y=100 C.x++; D.x=int (z); 37.設(shè)x、y均為float型變量,則不正確的賦值語(yǔ)句是( )。 A.++x ; B.x*=y-2; C.y=(x%3)/10; D.x=y=0; 38.下列語(yǔ)句中符合C語(yǔ)言的賦值語(yǔ)句是( )。 A.a(chǎn)=7+b+c=a+7;
17、 B.a(chǎn)=7+b++=a+7; C.a(chǎn)=7+b,b++,a+7 D.a(chǎn)=7+b,c=a+7; 39.putchar函數(shù)可以向終端輸出一個(gè)( )。 A.整型變量表達(dá)式值。 B.字符串 C.實(shí)型變量值。 D.字符或字符型變量值。 40.以下程序段的輸出結(jié)果是( )。 int a=12345; printf(”%2d\n”, a); A.12 B.34
18、 C.12345 D.提示出錯(cuò)、無結(jié)果 41.若x和y均定義為int 型,z定義為double型,以下不合法的scanf()函數(shù)調(diào)用語(yǔ)句為( )。 A.scanf(”%d%lx,%le”,&x,&y,&z); B.scanf (”%2d*%d%lf ”, &x, &y, &z); C.scanf(”%x%*d%o”, &x,&y); D。scanf(”%x%o%6.2f”, &x,&y,&z); 42.有如下程序段: int x1,x2; char y1,y2; scanf(”%d%c%d%c”,&x1,&y1,&x2,&y2);
19、 若要求x1、x2、y1、y2的值分別為10、20、A、B,正確的數(shù)據(jù)輸入是( )。(注:└┘代表空格) A.10A└┘20B B.10└┘A20B C.10 └┘A└┘20└┘ B D.10A20└┘B 43.若變量已正確說明為float類型, 要通過語(yǔ)句scanf(”%f %f%f”, &a, &b, &c);給a賦予10.0, b賦予22.0, c賦予33.0, 不正確的輸入形式為( )。 A.10<回車>
20、 B.10.0,22.0,33.0<回車> 22<回車> 33 C.10.0<回車> D.10 22<回車> 22.0 33.0<回車> 33<回車> 44.有如下程序,若要求x1、x2、y1、y2的值分別為10、20、A、B,正確的數(shù)據(jù)輸入是( )。(注:└┘代表空格) int x1,x2; char y1,y2; scanf(”%d%d”,&x1,&x2); scanf(”
21、%c%c”, &y1,&y2); A.1020AB B.10└┘20└┘ABC C.10└┘20 D.10└┘20AB AB 45.已有定義int a=-2;和輸出語(yǔ)句:printf(”%8lx”,a);以下正確的敘述是( )。 A.整型變量的輸出格式符只有%d一種 B.%x是格式符的一種,它可以適用于任何一種類型的數(shù)據(jù) C.%x是格式符 D.%8lx不是錯(cuò)誤的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度 46.有如下程序段,對(duì)應(yīng)正確的數(shù)據(jù)輸
22、入是( )。 float x,y; scanf(”%f%f”, &x,&y); printf(”a=%f,b=%f”, x,y); A.2.04<回車> B.2.04,5.67<回車> 5.67<回車> C.A=2.04,B=5.67<回車> D.2.055.67<回車> 47.有如下程序段,從鍵盤輸入數(shù)據(jù)的正確形式應(yīng)是( )。(注:└┘代表空格) float x,y,z; scanf(“x=%d,y=%d,z=%d”,&a,&y,&z); A.123
23、 B.x=1,y=2,z=3 C.1,2,3 D.x=1└┘ y=2└┘ z=3 48.以下說法正確的是( )。 A.輸入項(xiàng)可以為一個(gè)實(shí)型常量,如scanf(”%f”,3.5); B.只有格式控制,沒有輸入項(xiàng),也能進(jìn)行正確輸入,如scanf(”a=%d,b=5d”); C.當(dāng)輸入一個(gè)實(shí)型數(shù)據(jù)時(shí),格式控制部分應(yīng)規(guī)定小數(shù)點(diǎn)后的位數(shù),如scanf(”%4.2f”,&f); D.當(dāng)輸入數(shù)據(jù)時(shí),必須指明變量的地址,如scanf(”%f”,&f); 49.根據(jù)定義和數(shù)據(jù)的輸入方式,輸入語(yǔ)句的
24、正確形式為:( )。(注:└┘代表空格) 已有定義:float x,y; 數(shù)據(jù)的輸入方式:1.23<回車> 4.5<回車> A.scan(”%f,%f”,&x,&y); B.scanf(”%f%f”,&x,&y); C.scanf(”%3.2f└┘%2.1f”,&x,&y); D.scanf(”%3.2f%2.1f”,&x,&y); 50.根據(jù)下面的程序及數(shù)據(jù)的輸入和輸出形式,程序中輸入語(yǔ)句的正確形式應(yīng)該為( )。 #include ”stdio.h” main() {char s1,s2,s3;
25、 輸入語(yǔ)句; printf(”%c%c%c”,s1,s2,s3); } 輸入形式:A└┘B└┘C<回車> (注:└┘代表空格) 輸出形式:A└┘B A.scanf(”%c%c%c”,&s1,&s2,&s3); B.scanf(”%c└┘%└┘c%c”,&s1, &s2,&s3); C.scanf(”%c,%c,%c”,&s1,&s2,&s3); D.scanf(”%c%c”, &s1, &s2,&s3); 51.以下程序的執(zhí)行結(jié)果是:( )。 #include ”stdio.h” main() { int x=2,y=3; prin
26、tf(”x=%%d,y=%%d\n”,x,y); } A. x=%2,y=%3 B. x=%%d,y=%%d C. x=2,y=3 D. x=%d,y=%d 52.以下程序的輸出結(jié)果是( )。(注:└┘代表空格) #include ”stdio.h” main() { printf(”\nstring1=%15s*”, ”programming”); printf(”\nstring2=%-5s*”, ”boy”); printf(”string3=%2s*”, ”gir
27、l”); } A.string1=programming└┘└┘└┘└┘* B.string1=└┘└┘└┘└┘programming* string2=boy* string2=boy└┘└┘*string3=gi* string3=gi* C.string1=programming└┘└┘└┘└┘* D.string1=└┘└┘└┘└┘programming* string2=└┘└┘boy*string3=girl*
28、string2=boy└┘└┘*string3=girl* 53.根據(jù)題目中已給出的數(shù)據(jù)的輸入和輸出形式,程序中輸入輸出語(yǔ)句的正確內(nèi)容是( )。 #include ”stdio.h” main() { int a; float b; 輸入語(yǔ)句 輸出語(yǔ)句 } 輸入形式:1└┘2.3<回車> (注:└┘代表空格) 輸出形式:a+b=3.300 A.scanf(”%d%f”,&a,&b); B.scanf(”%d%3.1f”,&a,&b); printf(”\na+b=%5.3f”,a+b); prin
29、tf(”\na+b=%f”,a+b); C.scanf(”%d,%f”,&a,&b); D.scanf(”%d%f”,&a,&b); printf(”\na+b=%5.3f”,a+b) printf(”\na+b=%f”,a+b); 54.閱讀以下程序,當(dāng)輸入數(shù)據(jù)的形式為:12,34,正確的輸出結(jié)果為( )。 #include ”stdio.h” main() { int a,b; scanf(”%d%d”, &a,&b); printf(”a+b=%d\n”,a+b); } A.a(chǎn)+b=46
30、 B.有語(yǔ)法錯(cuò)誤 C.a(chǎn)+b=12 D.不確定值 55.若有定義:int x,y; char s1,s2,s3; 并有以下輸出數(shù)據(jù):(注:└┘代表空格) 1└┘2<回車> U└┘V└┘W<回車> 則能給x賦給整數(shù)1,給y賦給整數(shù)2,給s1賦給字符U,給s2賦給字符V,給s3賦給字符W的正確程序段是( )。 A.scanf(”x=%dy=%d”,&x,&y); s1=getchar();s2=getchar();s3=getchar(); B.scanf(”%d%d
31、”,&x,&y); s1=getchar();s2=getchar();s3=getchar(); C.scanf(”%d%d%c%c%c”,&x,&y,&s1,&s2,&s3); D.scanf(”%d%d%c%c%c%c%c%c”,&x,&y,&s1,&s1,&s2,&s2,&s3,&s3); 2 填空題 1. C語(yǔ)言的符號(hào)集包括________、________、________。 2. 結(jié)構(gòu)化設(shè)計(jì)中的三種基本結(jié)構(gòu)是________、_______、________。 3. C語(yǔ)言源程序文件的后綴是________,經(jīng)過編譯后生成文件的后綴是________,經(jīng)過鏈接后生成
32、文件的后綴是________。 4. C語(yǔ)言的關(guān)鍵字都用________{大寫或小寫}。 5. 一個(gè)函數(shù)由兩部分組成,它們是_______、_______。 6. 函數(shù)體一般包括_______、_______。 7. C語(yǔ)言是通過_______來進(jìn)行輸入和輸出的。 8. 以下程序的執(zhí)行結(jié)果________。 #include ”stdio.h” main() { short i=-1,j=1; printf(”dec:%d,oct:%o,hex:%x,unsigned:%u\n”,i,i,i,i); printf(”dec:%d,oct:%o,hex
33、:%x,unsigned:%u\n”,j,j,j,j); } 9. 以下程序的執(zhí)行結(jié)果是________。 #include ”stdio.h” main() { char s=’b’; printf(”dec:%d,oct:%o,hex:%x,ASCII:%c\n”, s,s,s,s); } 10.以下程序的執(zhí)行結(jié)果是________。(注:└┘代表空格) #include ”stdio.h” main() { float pi=3.1415927; printf(”%f,%.4f,%4.3f,%10.3f”,pi,pi,pi,pi); printf(”\n%
34、e,%.4e,%4.3e,%10.3e”,pi,pi,pi,pi); } 11.以下程序的執(zhí)行結(jié)果是:________。 #include ”stdio.h” main() { char c=’c’+5; printf(”c=%c\n”,c); } 12.以下程序輸入1└┘2└┘3后的執(zhí)行結(jié)果是________。(注:└┘代表空格) #include ”stdio.h” main() { int i,j; char k; scanf(”%d%c%d”,&i,&k,&j); printf(”i=%d,k=%c,j=%d\n”,i,k,j); } 13.有以下
35、程序,若輸入9876543210后的執(zhí)行結(jié)果是________;若輸入為:98└┘76└┘543210后的執(zhí)行結(jié)果是________;若輸入為:987654└┘3210后的執(zhí)行結(jié)果為:________。(注:└┘代表空格) #include ”stdio.h” main() { int x1,x2; char y1,y2; scanf(”%2d%3d%3c%c”,&x1,&x2,&y1,&y2); printf(”x1=%d,x2=%d,y1=%c,y2=%c\n”,x,y); } 14.若x和y均為int型變量,則以下語(yǔ)句的功能是________。 x+=y
36、; y=x-y; x-=y; 15.有一輸入函數(shù)scanf(”%d”,k);則不能使float類型變量k得到正確數(shù)值的原因是:________。 16.有如下程序段,輸入數(shù)據(jù):12345ffl678后,u的值是 【1】 ,v的值是 【2】 。 int u; float v; scanf(“%3d%f”,&u,&v); 3 答案及部分解析 一. 選擇題答案 1.B 2.B 3.A 4.B 5.B 6.D 7.B 8.D 9.B 10.C 11.A 12.C 13.C 14.B 15.C
37、 16.A 17.A 18.C 19.C 20.A 21.C 22.C 23.A 24.B 25.A 26.D 27.A 28.A 29.D 30.B 31.C 32.C 33.B 34.B 35.C 36.C 37.C 38.D 39.D 40.C 41.D 42.A 43.B 44.D 45.D 46.A 47.B 48.D 49.B 50.A 51.D 52.D 53.A 54.D 55.D 14.
38、解析:C語(yǔ)言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符必須為字母或下劃線。而且不能與C語(yǔ)言規(guī)定的關(guān)鍵字同名。關(guān)鍵字如:auto, break, case, char, const, continue, default, do, double, else, entry, extern, for, float, goto, if, int, int, long, register, return, short, signed, sizeof, static, struct, unsigned, while, switch, typedef, void, volatile, uni
39、or。這些關(guān)鍵字先不必硬背下來,隨著后續(xù)的學(xué)習(xí),你將發(fā)現(xiàn)它們都是一些數(shù)據(jù)的類型、語(yǔ)句等,自然會(huì)隨著學(xué)習(xí)的深入,而記下來。 15.解析:用指數(shù)形式表示一個(gè)實(shí)型常數(shù)時(shí),E或e之前必須有數(shù)字,且E后面指數(shù)必須為整數(shù)。 16.解析:’\101’為轉(zhuǎn)義字符,相對(duì)應(yīng)一個(gè)ASCII碼字符。(101)8=(65)10=A. 17.解析:轉(zhuǎn)義字符的特征是以“\”開頭,其后跟一些字符,如\n, \t, \’, \\, \}, \”, \b, \f等代表一些特殊的含義,而\后如跟數(shù)字,可以為八進(jìn)制或者十六進(jìn)制,將其轉(zhuǎn)換為對(duì)應(yīng)的ASCII碼值,就可以得出對(duì)應(yīng)的字符?!癨”后跟八進(jìn)制的寫法:\0nn, 或者\(yùn)nn
40、, 表示“\0”或者“\”后只能跟1或3位0——7之間的數(shù)字;“\”后跟十六進(jìn)制的寫法:\xnn,或者\(yùn)nn, 表示“\x”或者“\”后只能跟1或2位0——9及a——f(A——F)之間的字符。選項(xiàng)B的錯(cuò)誤在于8不是八進(jìn)制;而選項(xiàng)C的錯(cuò)誤在于沒有“\”;選項(xiàng)D的錯(cuò)誤在于超長(zhǎng)(多了一位)。 21.解析:B的錯(cuò)誤在于賦值語(yǔ)句的左側(cè)只能為一個(gè)簡(jiǎn)單變量,如:n=3*(n=18); C的錯(cuò)誤在于%運(yùn)算符只能適用于整型數(shù)據(jù),D的錯(cuò)誤在于作類型轉(zhuǎn)換時(shí),應(yīng)將類型加上括號(hào),即為:y=(float) m 31.解析:逗號(hào)表達(dá)式的最終結(jié)果為最右端的表達(dá)式(即x+y)的值,其運(yùn)算順序是從左自右的。第三個(gè)表達(dá)式y(tǒng)++
41、,其隱含有兩步操作:先取y的原值,再執(zhí)行y=y+1運(yùn)算;而本題中,雖然沒有將y賦給某個(gè)變量(取其原值),但還是一定會(huì)執(zhí)行加運(yùn)算的。因而,經(jīng)過第三個(gè)表達(dá)式,y已經(jīng)自加為6,故x+y的值為8,相對(duì)應(yīng)得表達(dá)式最終結(jié)果為8。若本題改為:(x=2, y=5, z=y++, x+z),則其結(jié)果應(yīng)為7。 二. 填空題答案 1. 答案:英文字母、數(shù)字、一些有特定含義的標(biāo)點(diǎn)符號(hào) 2. 答案:順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu) 3. 答案:C,OBJ,EXE 4. 答案:小寫 5. 答案:函數(shù)說明部分和函數(shù)體 6. 答案:變量定義部分和執(zhí)行部分 7. 答案:輸入和輸出函數(shù) 8. 答案:dec:-1,o
42、ct:177777,hex:ffff,unsigned:65535 dec:1,oct:1,hex:1,unsigned:1 9. 答案:dec:98,oct:142,hex:62,ASCII:b 10.答案:3.141593,3.1416,3.142, └┘└┘└┘└┘└┘3.142 3.141593e+00,3.1416e+00,3.142e+00,└┘└┘3.142e+00 (注:由于c編譯系統(tǒng)不同,我們上機(jī)使用的機(jī)器,其第二個(gè)printf語(yǔ)句實(shí)際結(jié)果為:3.14159e+00,3.142e+00,3.14e+00,└┘└┘3.14e+00,即:小數(shù)點(diǎn)后取5位。) 11
43、.答案:c=h 12.答案:i=1,k=└┘,j=2 13.答案:第一種情況的執(zhí)行結(jié)果:x1=98,x2=765,y1=4,y2=1 第二種情況的執(zhí)行結(jié)果:x1=98,x2=76,y1=└┘,y2=3 第三種情況的執(zhí)行結(jié)果:x1=98,x2=765,y1=4,y2=2 14.答案:交換x和y的值 15.答案:(1)格式符應(yīng)為:%f;(2)變量前邊未加取地址符&, 即應(yīng)為scanf(”%f”,&k); 16.答案:【1】123 【2】45.000000
44、 ·· 第4章 選擇結(jié)構(gòu)習(xí)題 1 選擇題 1. 已有定義:int x=3, y=4, z=5; 則表達(dá)式!(x+y)+z-1 && y+z/2的值是()。 A.6 B.0 C.2 D.1 2. 設(shè)a=5,b=6,c=7,d=8,m=2,n=2, 則執(zhí)行(m=a>b) && (n=c>d)后n的值為()。 A.1 B.2 C.3 D.4 3. 設(shè)x、y和z都是int類型變量,且x=3,y=4,z=5, 則下面的表達(dá)式中,值為0的表達(dá)式為(
45、)。
A.’x’ && ’y’ B.x<=y
C.x||y+z && y-z D.!((x 46、關(guān)于運(yùn)算符優(yōu)先順序的描述中正確的是()。
A.關(guān)系運(yùn)算符<算術(shù)運(yùn)算符<賦值運(yùn)算符<邏輯與運(yùn)算符
B.邏輯與運(yùn)算符<關(guān)系運(yùn)算符<算術(shù)運(yùn)算符<賦值運(yùn)算符
C.賦值運(yùn)算符<邏輯與運(yùn)算符<關(guān)系運(yùn)算符<算術(shù)運(yùn)算符
D.算術(shù)運(yùn)算符<關(guān)系運(yùn)算符<賦值運(yùn)算符<邏輯與運(yùn)算符
7. 下列運(yùn)算符中優(yōu)先級(jí)最高的是()。
A.< B.&& C.+ D.!=
8. 選擇出合法的if語(yǔ)句(設(shè)int x,a,b,c;)()。
A.if(a=b) c++;
B.if(a=
47、(a<>b) c++;
D.if(a=>b) c++;
9. 能正確表示“當(dāng)x的取值在[-58,-40]和[40,58]范圍內(nèi)為真,否則為假”的表達(dá)式是()。
A.(x>= -58) && (x<= -40) && (x>=40) && (x<=58)
B.(x>= -58) || (x<= -40) || (x>=40) || (x<=58)
C.(x>= -58) && (x<= -40) || (x>=40) && (x<=58)
D.(x>= -58) | |(x<= -40) && (x>=40) || (x<=58)
10.判斷ch 48、ar型變量s是否為小寫字母的正確表達(dá)式是()。
A.’a’ <= s<=’z’ B.(s>=’a’) & (s<=’z’)
C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s)
11.若希望當(dāng)x的值為奇數(shù)時(shí),表達(dá)式的值為“真”,x的值為偶數(shù)時(shí),表達(dá)式的值為“假”。則以下不能滿足要求的表達(dá)式是()。
A.x%2==1 B.!(x%2==0)
C.!(x%2) 49、 D.x%2
12.已知 x=45, y=’a’, z=0; 則表達(dá)式(x>=z && y<’z’ || !y)的值是()。
A.0 B.語(yǔ)法錯(cuò)
C.1 D.“假”
13.指出下列程序段所表示的邏輯關(guān)系是()。
if(a 50、0) y=1;
else if (x==0) y=0;
else y= -1;
B.y=0;
if (x>0) y=1;
else if (x<0) y= -1;
C.y=0;
if (x>=0)
if(x>0) y=1;
else y= -1;
D.if (x>=0)
if (x>0) y=1;
else y=0;
else y= -1;
15.執(zhí)行以下語(yǔ)句后,y 的值為()。
int x,y,z;
x=y=z=0;
++x || ++y && ++z;
A.0 51、 B.1 C.2 D.不確定值
16.已知int a=1,b=2,c=3; 以下語(yǔ)句執(zhí)行后a,b,c的值是()。
if(a>b)
c=a; a=b; b=c;
A.a(chǎn)=1, b=2, c=3 B.a(chǎn)=2, b=3, c=3
C.a(chǎn)=2, b=3, c=1 D.a(chǎn)=2, b=3, c=2
17.請(qǐng)閱讀以下程序:該程序()。
#include ”stdio.h”
main()
{ int x=-10, y=5, z=0;
if (x 52、=y+z) printf(”***\n” );
else printf(”$$$\n”);
}
A.有語(yǔ)法錯(cuò)不能通過編譯
B.可以通過編譯但不能通過連接
C.輸出***
D.輸出$$$
18.以下程序的運(yùn)行結(jié)果是()。
#include ”stdio.h”
main()
{ int a=1;
if (a++>1) printf(”%d\n”, a);
else printf(”%d\n”, a--);
}
A.0 B.1 C.2 D.3 53、
19.當(dāng)a=1,b=2,c=4,d=3時(shí),執(zhí)行完下面一段程序后x的值是()。
if (a
54、,y=0,z=0 B.x= -1,y= -1,z= 1
C.x=0,y=1,z=0 D.x= -1,y= 2, z= 1
21.若a、b、c、d、w均為int類型變量,則執(zhí)行下面語(yǔ)句后的w值是()。
a=1;b=2;c=3;d=4;
w=(a
55、”
main()
{
int a=5, b=4, c=6, d;
printf(”%d\n”, d=a>b? a>c?a:c :b);
}
A.5 B.4 C.6 D.不確定
23.若a、b、c1、c2、x、y均為整型變量,正確的switch 語(yǔ)句是()。
A.switch (a+b); B.switch a
{ case 1: y=a+b; break; { case c1: y=a-b; break;
case 0: y 56、=a-b; case c2: x=a*d; break;
break; default: x=a+b;
} }
C.switch (a*a+b*b) D.switch(a-b)
{ case 3: { default: y=a*b; break;
case 1: y=a+b; break; c 57、ase 3: x=a+b; break;
case 3: y=b-a; break; case 10: case 11: y=a-b; break;
} }
24.執(zhí)行下列程序,輸入為3的數(shù)出結(jié)果是()。
#include ”stdio.h”
main()
{
int k;
scanf(”%d”, &k);
switch(k)
{ case 1: printf(”%d\n”, k++);
case 2: printf(”%d\n”, k++);
case 3 58、: printf(”%d\n”, k++);
case 4: printf(”%d\n”, k++);
break;
default: printf(”Full!\n”);
}
}
A.3 B.4 C.3 D.4
5 4
25.假定等級(jí)和分?jǐn)?shù)有以下對(duì)應(yīng)關(guān)系:
等級(jí):A 分?jǐn)?shù):85——100
等級(jí):B 分?jǐn)?shù):60——84
等級(jí):C 分?jǐn)?shù):60以下
對(duì)于等級(jí)grade輸出相應(yīng)的分?jǐn)?shù)區(qū)間 59、,能夠完成該功能的程序段是()。
A.switch (grade)
{ case ’A’ :printf(”85——100\n”);
case ’B’ :printf(”60——84\n”);
case ’C’ :printf(”<60\n”);
default: printf(”grade is error!\n”);
}
B.switch (grade)
{ case ’A’ :printf(”85——100\n”);
break;
case ’B’ :printf(”60——84\n”);
case ’C 60、’ :printf(”<60\n”);
default: printf(”grade is error!\n”);
}
C.switch (grade)
{ case ’A’ :printf(”85——100\n”);
break;
case ’B’ :printf(”60——84\n”);
break;
case ’C’ :printf(”<60\n”);
default: printf(”grade is error!\n”);
}
D.switch (grade)
{ 61、 case ’C’ :printf(”<60\n”);
break;
case ’B’ :printf(”60——84\n”);
break;
default: printf(”grade is error!\n”);
break;
case ’A’ :printf(”85——100\n”);
}
26.有如下程序,寫出該執(zhí)行結(jié)果()。
#include ”stdio.h”
main()
{
float x=2.0, y;
if (x<0.0) y=0.0;
else if (x<10.0) y=1.0/x;
else y=1.0 62、;
printf(”%f\n”,y);
}
A.0.000000 B.0.250000 C.0.500000 D.1.000000
27.以下程序的運(yùn)行結(jié)果是()。
#include ”stdio.h”
main()
{
int a=2,b= -1,c=2;
if (a
63、出為()。
#include ”stdio.h”
main()
{
int v1=0,v2=0;
char ch;
while ( (ch=getchar()) != ’# ’)
switch (ch)
{ case ’a’:
case ’h’:
default: v1++;
case ’o’: v2++;
}
printf(”%d,%d\n”, v1,v2);
}
A.2,0 B.5,0 C.5,5 D.2,5
29.有以下程序,若輸入為字符s,則程序運(yùn)行結(jié) 64、果為()。
#include ”stdio.h”
main()
{
char ch;
ch=getchar();
switch (ch)
{ case ’a’: printf(”a=%c\n”,ch);
default: printf(”end!\n”);
case ’b’: printf(”b=%c\n”,ch);
case ’c’: printf(”c=%c\n”,ch);
}
}
A.end! B.end! C.有語(yǔ)法錯(cuò)誤 D.a(chǎn)=s
b=s 65、 end!
c=s
30.有以下程序,程序運(yùn)行后的輸出結(jié)果是()。
#include ”stdio.h”
main()
{
int a=15, b=21, m=0;
switch (a%3)
{ case 0: m++; break;
case 1: m++;
switch (b%2)
{ default: m++;
case 0: m++; break;
}
}
printf(”%d\n”,m);
}
A.1 B.2 C.3 66、 D.4
2 填空題
1. 若從鍵盤輸入58,則輸出結(jié)果是________。
#include ”stdio.h”
main()
{
int a;
scanf(”%d”, &a);
if (a>50) printf(”%d”, a);
if (a>40) printf(”%d”,a);
if (a>30) printf(”%d”,a);
}
2. 設(shè)int x=9,y=8;表達(dá)式x==y+1的結(jié)果是________。
3. 定義int x,y;執(zhí)行y=(x=1,++x,x+2);后, y的值是________。
4. 定義int x=10,y,z; 執(zhí)行y=z=x; x=y==z;后, x的結(jié)果是________。
5. 設(shè)int a=1,b=2,c,d,e; 執(zhí)行
c=(-a++)+(++b);
d=(b--)+(++a)-a;
e=(a/(++b))-(a/(--a));
請(qǐng)問a,b,c,d,e的結(jié)果是:________。
6. 設(shè)int a=2,b=3,c,d,e,f; 執(zhí)行
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 物業(yè)管理制度:常見突發(fā)緊急事件應(yīng)急處置程序和方法
- 某物業(yè)公司冬季除雪工作應(yīng)急預(yù)案范文
- 物業(yè)管理制度:小區(qū)日常巡查工作規(guī)程
- 物業(yè)管理制度:設(shè)備設(shè)施故障應(yīng)急預(yù)案
- 某物業(yè)公司小區(qū)地下停車場(chǎng)管理制度
- 某物業(yè)公司巡查、檢查工作內(nèi)容、方法和要求
- 物業(yè)管理制度:安全防范十大應(yīng)急處理預(yù)案
- 物業(yè)公司巡查、檢查工作內(nèi)容、方法和要求
- 某物業(yè)公司保潔部門領(lǐng)班總結(jié)
- 某公司安全生產(chǎn)舉報(bào)獎(jiǎng)勵(lì)制度
- 物業(yè)管理:火情火災(zāi)應(yīng)急預(yù)案
- 某物業(yè)安保崗位職責(zé)
- 物業(yè)管理制度:節(jié)前工作重點(diǎn)總結(jié)
- 物業(yè)管理:某小區(qū)消防演習(xí)方案
- 某物業(yè)公司客服部工作職責(zé)