C語言期末題庫_第1頁
C語言期末題庫_第2頁
C語言期末題庫_第3頁
C語言期末題庫_第4頁
C語言期末題庫_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、期末考試試題,填空題只出第五章內容,改錯題為第六章,程序設計為第三、八章。選擇題部分第一章,概述1,以下敘述中錯誤的是( B )A.一個C語言程序只能有一個主函數(shù)B.C語言編寫的每個函數(shù)都可以進行獨立的編譯并執(zhí)行C.C語言編寫的函數(shù)都可以作為一個獨立的源程序文件D.C語言編寫的函數(shù)源程序,其文件名后綴可以是C2, 計算機高級語言程序的運行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的是( A )A.C語言程序僅可以編譯執(zhí)行B.C語言程序僅可以解釋執(zhí)行C.以上說法都不對D.C語言程序既可以編譯執(zhí)行又可以解釋執(zhí)行3, C語言規(guī)定:在一個源程序中,main的位置( A )A.可以任意 B.必須在最后

2、C.必須在最開始 D.必須在系統(tǒng)調用的庫函數(shù)后面4, 一個C語言程序是由( C )A.若干過程組成B.若干子程序組成C.函數(shù)組成D.一個主程序和若干子程序組成5, 以下關于結構化程序設計的敘述中正確的是( B )A.一個結構化程序必須同時由順序、分支、循環(huán)三種結構組成B.在C語言中,程序的模塊化是利用函數(shù)實現(xiàn)的C.由三種基本結構構成的程序只能解決小規(guī)模的問題D.結構化程序使用goto語句會很便捷6, 以下敘述正確的是( C )A.在C程序中,main函數(shù)必須位于程序的最前面B.在對一個C程序進行編譯的過程中,可發(fā)現(xiàn)注釋中的拼寫錯誤C.C語言本身沒有輸入輸出語句D.程序的每行中只能寫一條語句7,

3、 以下敘述中錯誤的是( A ) A.C語言編寫的每個函數(shù)都可以進行獨立的編譯并執(zhí)行B.C語言編寫的函數(shù)源程序,其文件名后綴可以是CC.一個C語言程序只能有一個主函數(shù)D.C語言編寫的函數(shù)都可以作為一個獨立的源程序文件8, 以下敘述正確的是( B )A.C程序的書寫格式是固定的,每行只能寫一條語句B.C程序中注釋部分可以單獨占一行C.構成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名D.在對C語言程序進行編譯時,可以發(fā)現(xiàn)注釋行中的拼寫錯誤9, 以下敘述正確的是( D )A.C語言程序是由過程和函數(shù)組成的B.C語言函數(shù)不可以單獨編譯C.C語言中除了main函數(shù),其他函數(shù)不可作為單獨文件形式存在D

4、.C語言函數(shù)可以嵌套調用,例如:fun(fun(x)10, 一個C程序的執(zhí)行是從( D ) A.本程序文件的第一個函數(shù)開始,到本程序main函數(shù)結束B.本程序文件的第一個函數(shù)開始,到本程序文件的最后一個函數(shù)結束C.本程序的main函數(shù)開始,到本程序文件的最后一個函數(shù)結束D.本程序的main函數(shù)開始,到main函數(shù)結束11, 以下敘述不正確的是( A )A.在C程序中,注釋說明只能位于一條語句的后面B.C程序的基本組成單位是函數(shù)C.一個C源程序可由一個或多個函數(shù)組成D.一個C源程序必須包含一個main函數(shù)第二章,數(shù)據(jù)類型、運算符和表達式1,若有數(shù)學式,則不正確的C語言表達式是( A )A.3*a

5、*e/b*cB.a/b/c*e*3C.3*a*e/b/cD.a*e/c/b*32, 設:int a=1,b=2,c=3,d=4,m=2,n=2;執(zhí)行(m=ab) & (n=cd)后n的值為( C )。A.4 B.3 C.2 D.13, 下列表達式中,不滿足當x的值為偶數(shù)時值為真,為奇數(shù)時值為假的要求的是( C) A.(x/2*2-x)=0 B.!(x%2) C.!(x%2=0) D.x%2=04, 表達式18/4*sqrt(4.0)/8值的數(shù)據(jù)類型為( B )。A.char B.double C.不確定 D.float5, 在C語言中,要求運算數(shù)必須是整型的運算符是( A ) A.% B./

6、C.+ D.!=6,若x,i,j和k都是int型變量,則計算表達式x=(i=4,j=16,k=32)后,x的值為( B )。A.4 B.32 C.16 D.527, C語言中的標識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符( D )A.必須為下劃線B.必須為字母C.可以是字母、數(shù)字和下劃線中的任意一種D.必須為字母或下劃線8, 若a是數(shù)值類型,則邏輯表達式(a=1)|(a!=1)的值是( D )A.不知道a的值,不能確定 B.0 C.2 D.19, 判斷字符型變量c1是否為數(shù)字字符的正確表達式為(A)A.(c1=0)&(c1=0)&(c1=c1)|(9=c1)D.0=c1=c1)|(

7、z=a)&(c1=a)&(c1=z)D.a=c1k2)&(k2=k2k1)后,k1和k2的值分別為 ( B)A.0和1 B.0和20 C.10和1 D.10和2020, 以下選項中,能表示邏輯值假的是( B )A.0.000001 B.0 C.100.0 D.121, 以下選項中非法的字符常量是( B )A.102 B.019 C.xff,算法和控制語句部分1, 為表示關系xyz,應使用的表達式是AA.(x=y)&(y=z)B.(x=y=z)C.(x=y)AND(y=z)D.(x=y)&(y=z)2, 有以下程序 main() int i; for(i=0; i3; i+) switch(i)

8、 case 1: printf(%d, i); case 2: printf(%d, i); default : printf(%d, i); 執(zhí)行后輸出結果是AA.011122B.120C.012020D.0123, 對 for(表達式1; ;表達式3) 可理解為(A)。A.for(表達式1;1;表達式3)B.for(表達式1;0;表達式3)C.for(表達式1;表達式1;表達式3)D.for(表達式1;表達式3;表達式3)4, 若i為整型變量,則以下循環(huán)執(zhí)行次數(shù)是(A)。for(i=2;i=0;) printf(%d,i-);A.0次B.1次C.無限次D.2次5, 有以下程序段int n=

9、0,p;do scanf(%d,&p); n+;while(p!=12345&n3);此處do-while循環(huán)的結束條件是_D_。A.p的值等于12345并且n的值大于等于3B.p的值不等于12345并且n的值小于3C.p的值不等于12345或者n的值小于3D.p的值等于12345或者n的值大于等于36, 以下描述中正確的是(D)。A.do-while 循環(huán)中,根據(jù)情況可以省略 whileB.由于 do-while 循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內不能使用復合語句C.do-while 循環(huán)由do開始,用while結束,在 while(表達式)后面不能寫分號D.在 do-whi

10、le 循環(huán)體中,一定要有能使 while 后面表達式的值變?yōu)榱?假)的操作7, 執(zhí)行語句 for(i=1;i+bc) printf(%dn,d); else if(c-1 = d) = 1) printf(%dn,d+1); else printf(%dn,d+2); 執(zhí)行后輸出結果是DA.2B.4C.編譯時出錯D.39, main()int x=1,a=0,b=0;switch (x) case 0: b+; case 1: a+; case 2: a+;b+; printf(a=%d,b=%d,a,b);該程序的輸出結果是( B)A.2,2B.2,1C.1,1D.1,010, 以下程序的功

11、能是:按順序讀入10名學生4門課程的成績,計算出每位學生的平均分并輸出,程序如下:main() int n,k; float score,sum,ave; sum=0.0; for(n=1;n=10;n+) for(k=1;k=4;k+ ) scanf(%f,&score); sum+=score; ave=sum/4.0; printf(NO%d:%fn,n,ave); 上述程序運行后結果不正確,調試中發(fā)現(xiàn)有一條語句出現(xiàn)在程序中的位置不正確。這條語句是BA.ave=sum/4.0B.sum=0.0;C.sum+=score;D.printf(NO%d:%fn,n,ave);11, 運行以下程

12、序后,輸出的結果是Amain() int k = -3; if(k 0) y = 1;else y = 0;A.B.C.D.13, 以下程序的輸出結果是A main() int x, i; for(i = 1; i b?(bc?1:0):0;功能相同的是( A)A.if(ab)&(bc) k=1; else k=0; B.if(ab)|(bc) k=1; else k=0;C.if(ab) k=1;else if(bc) k=1;else k=0;D.if(a=b) k=0;else if(b=c) k=1;15, 為了避免在嵌套的條件語句 if-else 中產生二義性,C語言規(guī)定:else子

13、句總是與(B)配對。A.其之后最近的ifB.其之前最近的ifC.縮排位置相同的ifD.同一行上的if16, t為int類型,進人下面的循環(huán)之前,t的值為0while( t=1 ) 則以下敘述中正確的是_B_。A.以上說法都不對B.循環(huán)控制表達式的值為1C.循環(huán)控制表達式的值為0D.循環(huán)控制表達式不合法17, 以下程序段的輸出結果是Bint k, j, s;for(k = 2; k 6; k+, k+) s = 1; for(j = k; j 6; j+) s += j;printf(“%dn”, s);A.15B.10C.24D.918, 語句while(!E);中的表達式!E等價于(B)。A

14、.E!=1B.E=0C.E=1D.E!=019, 以下程序段的輸出結果是Bint x= 3;do pritnf(“%3d”, x-=2); while (!(-x);A.死循環(huán)B.1 -2 C.3 0D.120, 以下程序的運行結果是(B)。main() int i=1,sum=0; while(ib) c=a,a=b,b=c;B.if(ab) c=a,a=b,b=c; C.if(ab) c=a;a=b;b=c;D.if(ab) c=a;a=b;b=c;22,以下程序中,while循環(huán)的循環(huán)次數(shù)是_A_main() int i=0; while(i10) if(ib)a=b; if(ac)a=

15、c; 則a的值為(A)。A.1B.不一定C.3D.225,有以下程序,若想從鍵盤上輸入數(shù)據(jù),使變量m中的值為123,n中的值為456,p中的值為789,則正確的輸入是(B)#includeint main()int m,n,p;scanf(m=%dn=%dp=%d,&m,&n,&p);printf(%d%d%dn,m,n,p);return 0;A.m=123 n=456 p=789B.m=123n=456p=789C.123 456 789D.m=123,n=456,p=78926,有以下程序main(A) int i=1,j=1,k=2; if(j+|k+)&i+)printf(%d,%d

16、,%dn,i,j,k);執(zhí)行后輸出結果是 A.2,2,2B.2,2,3C.1,1,2D.2,2,127,以下程序段的輸出結果為(A)。 for(i=4;i1;i-) for(j=1;ji;j+) putchar(#);A.#B.無C.#D.#28,有如下程序main(A) float x=2.0,y;if(x0.0)y=0.0;else if(x10.0)y=1.0/x;else y=1.0;printf(%fn,y);該程序的輸出結果是A.0.500000B.0.250000C.1.000000D.0.00000029,判斷兩個字符串是否相等,正確的表達方式是DA.while(s1=s2)B

17、.while(s1= =s2)C.while(strcmp(s1,s2)=0)D.while(strcmp(s1,s2)= =0)30,若x是int類型變量,以下程序段的輸出結果是D for(x = 3; x 6; x+) printf( (x%2)?(“*%d”):(“#%dn”),x);A.B.C.D.31,C語言中,switch后的括號內表達式的值可以是CA.只能為整型和字符型B.只能為整型C.任何類型D.只能為整型,字符型,枚舉型32,設j和k都是int類型,則下面的for循環(huán)語句(C)。 for(j=0,k=0;jbc)a=b; else a=c; 則a的值為(C)。A.2B.3C.

18、1D.034,為了避免在嵌套的條件語句if-else中產生二義性,C語言規(guī)定:else總與( C )配對A.同一行上的ifB.其之后最近的ifC.其之前最近的未配對的ifD.縮排位置相同的if35,以下不正確的if語句形式是(D)。A.if(xy&x!=y);C.if(x=y) x+=y;D.if(x!=y) scanf(%d,&x) else scanf(%d,&y);36,結構化程序設計所規(guī)定的三種基本控制結構是(D)。A.樹形、網(wǎng)形、環(huán)形B.輸入、處理、輸出C.主程序、子程序、函數(shù)D.順序、選擇、循環(huán)37,以下程序的輸出結果是Dmain() int y = 10 for(; y 0; y

19、 -) if(y % 3 = 0) pritnf(“%d”, -y); continue; A.741 B.963C.875421D.85238,以下程序的執(zhí)行結果是Cmain() int x = 0, s = 0; while( !x != 0 ) s += +x; printf( %d ,s ); A.無限循環(huán)B.0C.1D.語法錯誤39,int a=1,b=2,c=3; if(ac)b=a;a=c;c=b;則c的值為(B)。A.3B.2C.不一定D.140,以下敘述正確的是(B)。A.do-while語句構成的循環(huán)不能用其它語句構成的循環(huán)來代替.B.用do-while語句構成的循環(huán),在w

20、hile后的表達式為零時結束循環(huán)C.用do-while語句構成的循環(huán),在while后的表達式為非零時結束循環(huán).D.do-while語句構成的循環(huán)只能用break語句退出.41,假定所有變量均已正確定義,下列程序段運行后x的值是(D)。k1=1;k2=2;k3=3;x=15;if(!k1) x-;else if(k2) x=4; else x=3;A.15B.14C.3D.442,有以下程序, 程序運行后的輸出結果是 (B )#include int main()int i,j,m=1;for(i=1;i0;j-) if(i*j3) break; m*=i*j;printf(“m=%dn”,m)

21、;return 0;A.m=2B.m=6C.m=4D.m=543,以下for循環(huán)的執(zhí)行次數(shù)是 for(x=0,y=0;(y=123)&(x4);x+);(A)。A.4次B.是無限循環(huán)C.3次D.循環(huán)次數(shù)不定44,下列程序的輸出結果是(A)。 main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0:a+;break; case 1:b+;break; case 2:a+;b+;break; case 3:a+;b+;break; printf(a=%d,b=%dn,a,b); A.a=2,b=1B.a=2,b=2C.a=1,b

22、=0D.a=1,b=145,有以下程序, 當執(zhí)行程序時,按下列方式輸入數(shù)據(jù)(從第1列開始,代表回車,注意:回車也是一個字符)1234則輸出結果是(C)#include int main()char a,b,c,d;scanf(%c%c,&a,&b);c=getchar(); d=getchar();printf(%c%c%c%cn,a,b,c,d);return 0;A.1234B.1234C.123D.1246,以下程序的運行結果是(D)。main() int n; for(n=1;n+y;x=i+) i=x;D.for(i=10;i-) sum+=i;49,從循環(huán)體內某一層跳出,繼續(xù)執(zhí)行循

23、環(huán)外的語句是AA.break語句B.return語句C.continue語句D.空語句50,下列程序的輸出為(C)。main() int y=10; while(y-); printf(y=%dn,y); A.while構成無限循環(huán)B.y=0C.y=-1D.y=151,有以下程序,程序運行后的輸出結果是(D)#include int main()int a=1,b=2;while(a0|E0)C.(!E=0)D.(E!=0)53,以下程序段的輸出結果是Cint i, j, m = 0;for(i = 1; i = 15; i += 4) for(j = 3; j = 19; j += 4) m

24、+;printf(“%dn”, m);A.15B.12C.20D.2554,執(zhí)行下列語句后的輸出為(C)。 int j=-1; if(j=1) printf(*n); else printf(%n);A.%cB.有錯,執(zhí)行不正確C.*D.%55,以下程序的執(zhí)行結果是_A_. main() int num = 0; while( num = 2 ) num+; printf( %d,num ); A.1,2,3,B.1,2,3,4,C.1,2,D.0,1,256,下面程序的運行結果是A#include main() int y=10;doy-;while(-y);printf(%dn,y-);

25、A.0B.1C.8D.-157,若有定義語句int a,b;double x;則下列選項中沒有錯誤是(B)A.switch(int)(x)%2)case 0.0:a+;break; case 1.0:b+;break; default:a+;b+;B.switch(int)x%2)case 0:a+;break; case 1:b+;break; default:a+;b+; C.switch(x%2) case 0:a+;break; case 1:b+;break; default:a+;b+; D.switch(int)x%2.0)case 0:a+;break; case 1:b+;b

26、reak; default:a+;b+;58,設a、b和c都是int變量,且a=3,b=4,c=5;則以下的表達式中,值為0的表達式是CA.a|b+c&b-cB.a=bC.!(a j共執(zhí)行了多少次C#include main() int i = 0, j = 10, k = 2, s = 0; for( ; ; ) i += k; if(i j) printf(“%dn”, s); break; s += i; A.4B.8C.6D.761,while(fabs(t)1e-5)if(!s/10)break;循環(huán)結束的條件是(C)。A.fabs(t)1e-5&!s/10B.fabs(t)=1e-

27、5&t-10&s10D.s/10=062,以下敘述正確的是:CA.用do-while構成循環(huán)時,只有在while后的表達式為非零時結束循環(huán)B.do-while語句構成的循環(huán)不能用其它語句構成的循環(huán)來代替。C.用do-while構成循環(huán)時,只有在while后的表達式為零時結束循環(huán)D.do-while語句構成的循環(huán)只能用break語句退出。63,以下程序的輸出結果是Bmain() int i, sum; for(i = 1; i 6; i+) sum += i; printf(“%dn” sum);A.15B.不確定 C.16D.064,有以下程序,程序運行后的輸出結果是( D )#include

28、int main() char b,c; int i;b=a; c=A;for(i=0;i10;i+)D.int s=6; m:if(s100) exit(0); else s-=2; goto m:67,判斷char型變量c是否為大寫字母的C的表達式是CA.A=c=ZB. (A=c) C. (c=A)&(c=A)&(c=Z)68,下列程序的輸出結果是(A)。main() int x=1,y=0,a=0,b=0; switch(x) case 1:switch(y) case 0:a+;break; case 1:b+;break; case 2:a+;b+;break; case 3:a+;

29、b+;break; printf(a=%d,b=%dn,a,b);A.a=2,b=1B.a=1,b=0C.a=2,b=2D.a=1,b=169,下面有關 for 循環(huán)的正確描述是(D)。A.for 循環(huán)是先執(zhí)行循環(huán)循環(huán)體語句,后判斷表達式B.在 for 循環(huán)中,不能用 break 語句跳出循環(huán)體C.for 循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況D.for 循環(huán)的循環(huán)體語句中,可以包含多條語句,但必須用花括號括起來70,假定所有變量均已正確定義,下面語句段執(zhí)行后的x的值是Ba = b = c = 0; x = 35; if(!a) x-; else if(b) ; if(c) x = 3; else

30、 x = 4;A.34B.4C.35D.371,在C語言中,為了結束由while語句構成的循環(huán),while后一對圓括號中表達式的值應該為(B)。A.1B.0C.TrueD.非072,有以下程序,程序執(zhí)行后的輸出結果是(A )#include int main()int y=10;while(y-);printf(“y=%dn”,y);return 0;A.y=-1B.y=1C.while構成無限循環(huán)D.y=073,有以下程序, 程序運行后的輸出結果是( B )#include int main()int a=1,b=0;if(!a) b+;else if(a=0) if(a) b+=2;els

31、e b+=3;printf(%dn,b);return 0;A.3B.0C.1D.274,有輸入語句:scanf(a=%d,b=%d,c=%d,&a,&b,&c);為使變量a的值為1,b的值為3,c的值為2,則正確的數(shù)據(jù)輸入方式是( B )。A.a=1 b=3 c=2B.a=1,b=3,c=2C.132D.1,3,275,程序段:int x=12;double y=3.141593;printf(“%d%8.6f”,x,y);的輸出結果是(C)A.12,3.141593 B.12 3.141593C.123.141593D.123.141593076,若變量已正確定義,有以下程序段i=0;do

32、 printf(“%d,”,i); while(i+);printf(“%dn”,i); 其輸出結果是 ( D )A.0,0B.程序進入無限循環(huán)C.1,1D.0,177,下列條件語句中輸出結果與其他語句不同的是(C)A.if(a) printf(%dn,x); else printf(%dn,y);B.if(a=0) printf(%dn,y); else printf(%dn,x);C.if(a=0) printf(%dn,x); else printf(%dn,y);D.if(a!=0) printf(%dn,x); else printf(%dn,y);78,有以下程序,程序運行后的輸出

33、結果是 (C )#includeint main() int x=1,y=0;if(!x) y+;else if(x=0)if (x) y+=2;else y+=3;printf(%dn,y);return 0;A.3B.2C.0D.179,有以下程序段char name20;int num;scanf(name=%s num=%d,name;&num);當執(zhí)行上述程序,并從鍵盤輸入:name=Lili num=1001后,name的值(C)A.Lili num=B.name=LiliC.LiliD.name=Lili num=100180,執(zhí)行下列程序片段時輸出的結果是( C )。int x

34、=13,y=5;printf(%d,x%=(y/=2);A.2B.3C.1D.081,已知有如下定義和輸入語句,若要求a1,a2,c1,c2的值分別為10,20,A和B,當從第一列開始輸入數(shù)據(jù)時,正確的數(shù)據(jù)輸入方式是( A )。int a1,a2; char c1,c2;scanf(%d%c%d%c,&a1,&c1,&a2,&c2);A.10A20BB.10A20 BC.10 A20BD.10 A 20 B82,若定義x為double型變量,則能正確輸入x值的語句是( C )。A.scanf(%5.1f,&x);B.scanf(%f,x);C.scanf(%lf,&x);D.scanf(%f,

35、&x);83,以下程序段中的變量已正確定義for(i=0;i4;i+,i+)for(k=1;k3;k+) printf(“*”);程序段的輸出結果是 (C )A.*B.*C.*D.*84,有以下程序段,以下敘述中正確的是(B)int main() while( getchar()!=n); A.此while語句將無限循環(huán)B.當執(zhí)行此while語句時,只有按回車鍵程序才能繼續(xù)執(zhí)行C.當執(zhí)行此while語句時,按任意鍵程序就能繼續(xù)執(zhí)行D.getchar()不可以出現(xiàn)在while語句的條件表達式中85,有以下程序:程序運行后的輸出結果是 ( A )#include int main() int a=

36、7;while(a-);printf(%dn,a);return 0;A.-1B.1C.0D.786,if語句的基本形式是:if(表達式)語句,以下關于表達式值的敘述中正確的是( B)A.必須是正數(shù)B.可以是任意合法的數(shù)值C.必須是整數(shù)值D.必須是邏輯值87,設變量均已正確定義并且賦值,以下與其他三組輸出結構不同的一組語句是(B )A.n=+x; printf(%dn,n);B.n=x+; printf(%dn,n);C.+x; printf(%dn,x);D.x+; printf(%dn,x);88,若有定義:int a,b;,通過語句scanf(“%d;%d”,&a,&b);,能把整數(shù)3賦

37、給變量a,5付給變量b的輸入數(shù)據(jù)是(C )A.3,5B.3 5C.3;5D.3589,有以下程序#include int main()int a1,a2; char c1,c2;scanf(%d%c%d%c,&a1,&c1,&a2,&c2);printf(%d,%c,%d,%c,a1,c1,a2,c2);return 0;若想通過鍵盤輸入,使得a1的值為12,a2的值為34,c1的值為字符a,c2的值為字符b,程序輸出結果是:12,a,34,b則正確的輸入格式是C(以下_代表空格,代表回車)A.12,a,34,bB.12_a34_bC.12a34bD.12_a_34_b90,有以下程序,程序運

38、行后的輸出結果是(D)#include int main()int a=1,b=2;for(;a8;a+) b+=a;a+=2;printf(“%d,%dn”,a,b);return 0;A.8,11B.7,11C.9,18D.10,1491,若i和k都是int類型變量,有以下for語句for(i=0,k=-1;k=1;k+) printf(*n);下面關于語句執(zhí)行情況的敘述中正確的是 (A)A.構成無限循環(huán)B.循環(huán)體一次也不執(zhí)行C.循環(huán)體執(zhí)行兩次D.循環(huán)體執(zhí)行一次,函數(shù)1, 有以下程序,程序運行后的輸出結果是( B )#includeint fun (int x,int y) if (x!=

39、y) return (x+y)/2);else return (x);int main() int a=4,b=5,c=6;printf(%dn,fun(2*a,fun(b,c);return 0;A.12B.6C.3D.82, 有以下程序,程序運行的輸出結果( A )#include int f(int x);int main() int n=1,m; m=f(f(f(n); printf(“%dn”,m); return 0 ;int f(int x) return x*2;A.8B.4C.1D.23, 有以下程序,程序執(zhí)行后變量w中的值是( C )#includeint funl(dou

40、ble a)return a*=a;int fun2(double x,double y) double a=0,b=0; a=funl(x);b=funl(y);return (int)(a+b);int main()double w;w=fun2(1.1,2.0);A.5.21B.0.0C.5.0D.54, 有以下程序,程序運行后的輸出結果是(B )#includeint fun() static int x=1;x*=2;return x;int main()int i,s=1;for(i=1;i=3;i+) s*=fun();printf(%dn,s); A.10B.64C.0D.30

41、5, 有以下程序,程序運行后的輸出結果是( D )#includeint f(int x,int y)return (y-x)*x);int main()int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c);printf(%dn,d);A.10B.8C.7D.96, 有以下程序,程序運行后的輸出結果是( B )#include void fun(int p)int d=2;p=d+; printf(“%d”,p);int main()int a=1;fun(a); printf(“%dn”,a); return 0;A.22B.21C.12D.327, 有以下程序:程序運行后

42、的輸出結果是( A )#include int f()static int x=1;x+=1;return x;int main() int i,s=1;for(i=1;i=5;i+) s+=fun();printf(%dn,s);return 0;A.21B.6C.120D.118, 若有代數(shù)式 (其中e僅代表自然對數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的C語言表達式是( A )A.sqrt(fabs(pow(n,x)+exp(x,e)B.sqrt(fbs(pow(n,x)+pow(x,e)C.sqrt(fabs(pow(x,n)+exp(x)D.sqrt(abs(nx+ex)9,

43、 以下關于return語句敘述中正確的是( D )A.定義void類型的函數(shù)中可以有帶返回值的return語句B.沒有return語句的自定義函數(shù)在執(zhí)行結束時不能返回到調用處C.一個自定義函數(shù)中必須有一條return語句D.一個自定義函數(shù)中可以根據(jù)不同情況設置多條return語句10, 設有如下函數(shù)定義,若執(zhí)行調用語句:n=fun(3);,則函數(shù)fun總共被調用的次數(shù)是( B )int fun(int k) if (k1) return 0;else if(k=1) return 1;else return fun(k-1)+1;A.2B.3C.5D.411, 在一個C語言源程序文件中所定義的

44、全局變量,其作用域為( C )A.所在函數(shù)的全部范圍B.所在文件的全部范圍C.由具體定義位置和extern說明來決定范圍D.所在程序的全部范圍12, 以下敘述正確的是( A )A.C語言函數(shù)可以嵌套調用,例如:fun(fun(x)B.C語言程序是由過程和函數(shù)組成的C.C語言函數(shù)不可以單獨編譯D.C語言中除了main函數(shù),其他函數(shù)不可以作為單獨文件形式存在13, 以下程序的主函數(shù)中調用了在其前面定義的fun函數(shù),則以下選項中錯誤的fun函數(shù)首部是 ( B )#includeint main()double a15,k;k=fun(a);return 0;A.double fun(double *

45、a)B.double fun(double a)C.double fun(double a)D.double fun(double a15)14, 以下說法不正確的是(C)A.系統(tǒng)不允許用戶重新定義標準庫函數(shù)B.標準庫函數(shù)按分類在不同的頭文件中聲明C.用戶可以重新定義標準庫函數(shù)D.用戶若需要調用標準庫函數(shù),調用前必須使用預編譯命令將該函數(shù)所在文件包括到用戶源文件中15, 下列敘述中正確的是( A )A.C語言規(guī)定必須用main作為主函數(shù)名,程序將從此開始執(zhí)行,在此結束B.main可作為用戶標識符,用以命名任意一個函數(shù)作為主函數(shù)C.可以在程序中由用戶指定任意一個函數(shù)作為主函數(shù),程序將從此開始執(zhí)行

46、D.C語言程序將從源程序中第一個函數(shù)開始執(zhí)行16, 若函數(shù)調用時的實參為變量時,以下關于函數(shù)形參和實參的敘述中正確的是( B )A.同名的實參和形參占同一存儲單元B.函數(shù)的形參和實參分別占用不同的存儲單元C.函數(shù)的實參和其對應的形參共占同一存儲單元D.形參只是形式上的存在,不占用具體存儲單元17, 在C語言中,只有在使用時才占用內存單元的變量,其存儲類型是( B )。A.extern和registerB.auto和registerC.static和registerD.auto和static18, 設函數(shù)中有整形變量n,為保證其在未賦初值的情況下初值為0,應該選擇的存儲類別是(D)A.regis

47、terB.autoC.auto 或registerD.static19, 以下正確的函數(shù)定義形式是:(A)A.double fun(int x,int y)B.double fun(int x, y);C.double fun(int x ;int y)D.double fun(int x,int y);20, 在函數(shù)調用過程中,如果函數(shù)funA調用了函數(shù)funB,函數(shù)funB又調用了函數(shù)funA,則 ( C )A.稱為函數(shù)的循環(huán)調用B.C語言中不允許這樣的遞歸調用C.稱為函數(shù)的間接遞歸調用D.稱為函數(shù)的直接遞歸調用第五章,數(shù)組1, 有以下程序,程序運行后的輸出結果是( B )#include

48、 #include int main()char a20=”ABCD0EFG0”,b=”IJK”;strcat(a,b); printf(“%sn”,a);return 0;A.ABCDE0FG0IJKB.ABCDIJKC.EFGIJKD.IJK2, 有以下程序,程序運行后的輸出結果是 (D)#includeint main()char s=012xy08s34f4w2;int i, n=0;for(i=0;si!=0;i+)if(si=0&si=9) n+;printf(%dn,n); return 0;A.7B.0C.8D.33, 下列選項中,能夠滿足若字符串s1等于字符串s2,則執(zhí)行ST

49、要求的是 (A)A.if(strcmp(s2,s1)=0)ST;B.if(s1-s2=0)ST;C.if(strcpy(s1,s2)=1)ST;D.if(s1=s2)ST;4, 以下選項中正確的語句組是(D)A.char s;s=BOOK!;B.char s;s=BOOK!;C.char s10;s=BOOK!;D.char s=BOOK!;5, 以下數(shù)組定義中錯誤的是(A)A.int x23=1,2,3,4,5,6;B.int x23=1,2,3,4,5,6;C.int x3=0;D.int x3=1,2,3,4,5,6;6, 若有定義語句:int m=5,4,3,2,1,i=4;則下面對m

50、數(shù)組元素的引用中錯誤的是 (A)A.mm0B.m2*2C.m-iD.mmi7, 下列選項中,能正確定義數(shù)組的語句是(D)A.int num;B.int N=2008;int numN;C.int num02008;D.#define N 2008int numN;8, 有以下程序,程序運行時若輸入:how are you? I am fine則輸出結果是(C)#includeint main()char a30,b30;scanf(%s,a);gets(b);printf(%sn %sn,a,b);return 0; A.how are you? I am fine B.how are you

51、? I am fineC.howare you?I am fineD.how are you?9, 下面是有關C語言字符數(shù)組的描述,其中錯誤的是(C)A.不可以用賦值語句給字符數(shù)組名賦字符串B.可以用輸入語句把字符串整體輸入給字符數(shù)組C.字符數(shù)組中的內容不一定是字符串D.字符數(shù)組只能存放字符串10, 有以下程序,程序運行后的輸出結果是(C)#include #include int main()char x=”STRING”;x0=0;x1=0;x2=0;printf(“%d %dn”,sizeof(x),strlen(x);return 0;A.7 0B.6 1C.7 1D.6 311, 若

52、要定義一個具有5個元素的整型數(shù)組,以下錯誤的定義語句是(C)A.int a5=0;B.int b=0,0,0,0,0;C.int i=5,di;D.int c2+3;12, 有以下程序,程序運行后的輸出結果是 ( C )#include#includeint main() char a510=“china”,”beijing”,”you”,”tiananmen”,”welcome”;int i,j; char t10;for(i=0;i4;i+) for(j=i+1;j0) strcpy(t,ai); strcpy(ai,aj); strcpy(ai,t); puts(a3);return 0

53、;A.chinaB.beijingC.welcomeD.tiananmen,指針1,若已定義char s10;則在下面表達式中不表示s1的地址是( D )。A.&s1B.&s0+1C.s+1D.s+2, 下面程序段的運行結果是( D )。 char a =”language” , *p ; p=a ; while (*p!=u) printf(“%c”,*p-32); p+ ; A.languageB.langUAGEC.LANGUAGED.LANG3, 下面能正確進行字符串賦值操作的是( C )A.char s5=A,B,C,D,E;B.char s5=ABCDE;C.char *s ; s

54、=ABCDE ;D.char *s; scanf(%s,s) ;4, 設p1和p2是指向同一個字符串的指針變量,c為字符變量,則以下能正確執(zhí)行并得到有意義的結果的賦值語句是( C )。A.p2=c;B.c=*p1+*p2;C.p1=p2;D.c=*p1*(*p2);5, 已有函數(shù)max(a,b),為了讓函數(shù)指針變量p指向函數(shù)max,正確的賦值方法是( C )。A.*p=max(a,b);B.*p=max;C.p=max;D.p=max(a,b);6, 以下正確的敘述是( B )。A.C語言允許main函數(shù)帶形參,且形參個數(shù)和形參名均可由用戶指定B.當main函數(shù)帶有形參時,傳給形參的值只能從命

55、令行中得到C.若有說明: int main(int argc,char *argv),則argc的值必須大于1D.C語言允許main函數(shù)帶形參,形參名只能是argc和argv7,若有定義:int (*p)4;則標識符p( D )。A.是一個指針數(shù)組名B.定義不合法C.是一個指向整型變量的指針D.是一個指針,它指向一個含有四個整型元素的一維數(shù)組8, 設有程序段:char s =china; char *p ; p=s ;則下面敘述正確的是(A)。A.*p與s0相等B.數(shù)組s中的內容和指針變量p中的內容相等C.s數(shù)組長度和p所指向的字符串長度相等D.s和p完全相同9, 下面程序段的運行結果是( C

56、 )。char *s=”abcde” ;s+=2 ; printf(“%s”,s);A.字符c的地址B.不確定C.cdeD.字符c10, 下面判斷正確的是(D)。A.char str10=china; 等價于 char str10; str =china;B.char c4=abc,d4=abc; 等價于 char c4=d4=abc ;C.char *a=china; 等價于 char *a; *a=china ;D.char *s=china; 等價于 char *s; s=china ;11, 設有程序段:char s =”china”; char *p ; p=s ;則下面敘述正確的是

57、( B )A.數(shù)組s中的內容和指針變量p中的內容相等B.*p與s0相等C.s數(shù)組長度和p所指向的字符串長度相等D.s和p完全相同12, 已有變量定義和函數(shù)調用語句:int a=25;print_value(&a);下面函數(shù)的輸出結果是( D )void print_value(int *x) printf(“%dn”,+*x); A.24B.23C.25D.2613, 若有說明:int *p,m=5,n;以下程序段正確的是(A)A.p = &n ; *p = m ;B.p=&n ;scanf(%d,&p);C.p = &n ;scanf(%d,*p);D.scanf(%d,&n); *p=n

58、;14, 變量的指針,其含義是指該變量的( B )A.值B.地址C.一個標志D.名15, 已有定義int k=2;int *ptr1,*ptr2;且ptr1和ptr2均已指向變量k,下面不能正確執(zhí)行的賦值語句是( A )A.ptr2=k;B.k=*ptr1+*ptr2;C.k=*ptr1*(*ptr2);D.ptr1=ptr2;,預編譯指令,結構體與共用體以下敘述中正確的是(A)若有以下語句typedefstruct Sint g; char h;T;A.可用T定義結構體變量B.T是struct S類型的變量C.可用S定義結構體變量D.S是struct類型的變量當定義一個結構體變量時,系統(tǒng)分配

59、給它的內存是(D )。A.結構體中最后一個成員所需內存量B.成員中占內存量最大的容量C.結構體中第一個成員所需內存量D.各成員所需內存量的總和C填空題1, 例如,當x10=15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0,結果為:avg=15.030000。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)fun的橫線上填入所編寫的若干表達式或語句。試題程序: */#include #include double fun(double x10) int i; long t; double avg=0.0; doubl

60、e sum=0.0; for(i=0;i10;i+)/*FILL*/ 1 ; avg=sum/10;/*FILL*/ avg= 2 ;/*FILL*/ t= 3 ; avg=(double)t/100; return avg;void main() double avg,x10=15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0; int i; printf(nThe original data is :n); for(i=0;i10;i+)printf(%6.1f,xi); printf(nn); avg=fun(x); printf(aver

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論