電腦基礎(chǔ)知識C語言習題.ppt_第1頁
電腦基礎(chǔ)知識C語言習題.ppt_第2頁
電腦基礎(chǔ)知識C語言習題.ppt_第3頁
電腦基礎(chǔ)知識C語言習題.ppt_第4頁
電腦基礎(chǔ)知識C語言習題.ppt_第5頁
免費預(yù)覽已結(jié)束,剩余65頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、補充習題,前三章補充習題,選擇題,1. C語言程序的基本單位是C A)程序行 B)語句 C)函數(shù) D)字符 2. 字符(char)類型的數(shù)據(jù)在微機內(nèi)存中的存儲形式是D 反碼 B)補碼 C)EBCDIC碼 D)ASCII碼,3. 請選出合法的C語言賦值語句B A)a=b=58 ; (少分號) B)i+; C)a=58, b=58 ; (少分號) D)k=int (a+b);(int)(a+b),4. 設(shè)有說明語句:char a= 72;則變量a A A)包含1個字符B)包含2個字符 C)包含3個字符 D)說明不合法 5. 下列標識符中,合法的標識符是 C A )-abc1B)1abcC)_abc

2、1D) for(保留字),6. 以下所列的C語言常量中,錯誤的是 B A)0 xFF B)1.2e0.5 小數(shù)E整數(shù) C)2L D)72,7. 若y為int型變量,則執(zhí)行以下語句后,y的值是 C) 112 Y=8; y+= y =y*y; y=y-y*y=-54 y=y+y=-112,8. 若m ,x, y ,z 均為整型變量,則執(zhí)行下列語句后m的值是A) 1 m=1; x=2; y=3; z=4; m=(my)?m:y; m=(mx)?m:x; m=(mz?)m:z;,9. C語言中函數(shù)返回值的類型是由D決定的。 A) return 語句中的表達式類型 B) 調(diào)用該函數(shù)的主函數(shù)類型 C) 總

3、是int 類型 D) 定義函數(shù)時指定的類型,10.設(shè)a和b均為int型變量,則執(zhí)行以下語句后的輸出為B) 21 。 int a = 20; int b = 3; printf(“%dn,”a+=(b%=2); b=b%2=1 a=a+b=21,11. 轉(zhuǎn)換說明符%x的輸出形式是C。 A) 十進制數(shù) (%d) B) 八進制數(shù)(%o) C)十六進制數(shù) D)二進制數(shù),12. 若x, y, z均為整型常量,且a=100, 則執(zhí)行下列語句后的z值為 A)100 。 x = a+; y= -a; z=x+y-a-; 1)x=a=100,a=a+1=101;2)a=a-1=100,y=a=100;3)z=x

4、+y+z=100+100-100=100,a=a-1=99,13. A+3的結(jié)果是B。 A)A B)D的ASCII 碼 C)65 D)3,14. 將int 變量n轉(zhuǎn)換為 float 型變量的方法是B。 A) float n B)(float ) n C) float (n) D) (n) float,15 .C語言中函數(shù)返回值的類型為void ,表示A。 A) 函數(shù)不需要返回值 B) 函數(shù)的返回值類型不確定 C) 函數(shù)可以返回任何類型的值 D) 以上都不正確,16. C語言中下列運算符的操作數(shù)必須為整數(shù)的是A A) % B)+ C) / D) *,17. 已知int i; 則執(zhí)行語句 i =

5、2.6; 后,i的值為A。 A) 2 B)3 C) 2.6 D) 不確定,18. 設(shè)int 數(shù)據(jù)占用兩個字節(jié),float 數(shù)據(jù)占用四個字節(jié),double數(shù)據(jù)占用八個字節(jié), 且已知float a=2; int b=3; 則執(zhí)行下列語句后輸出為 A) 4 。 printf(“%d”,sizeof(a*b)+2/5); / sizeof(float)+2/5=4+0=4,19. 已知 int i=65; 則putchar(i) ;printf(“%d”,i); printf(“%c”,i); 的輸出結(jié)果為A。 A) A,65,A B) 65,65,A C) A,A,65 D) A,A,A,20.已知

6、int y,a,i=1; 則語句printf(“%d,%d”,-i+,(y=a=3.6*3);的輸出結(jié)果為A) -1,10 。,21.假設(shè)在程序中a,b,c 均被定義成整型,并且已賦大于1的值,則下列能正確表示 代數(shù)式的表達式是D。1/a=0 A) 1/a*b*c B)1/(a*b*c) C) 1/a/b/ (float) c D)1.0/a/b/c,22.關(guān)于邏輯運算符兩側(cè)運算對象的敘述中正確的是C。 A) 只能是整數(shù)0或1 B) 只能是整數(shù)0或非0整數(shù) C) 可以是任意合法的表達式 D) 以上說法都不正確,23.若有說明語句:int w=1,x=2,y=3,z=4; 則表達式wz?w:zy

7、?z:x的值是A。 A) 4 B)3 C)2 D)1,24.設(shè) x ,y 為int 型變量,則執(zhí)行下列語句后,y 的值是 A) 529 。 x=5; y=x+*x+; y=-y*-y; y=x*x=5*5=25; -y,24;-y,23; y=y*y=23*23=529,25.下列程序執(zhí)行后的輸出結(jié)果是(A、G ) main( ) int x=f; printf(%c n,A+(x-a+1); A+(x-a+1)= A-a+x+1=-32+x-1=-32+f+1=F+1=G,26.有如下程序 main( ) int y=3,x=3,z=1; printf(%d %d n,(+x,y+),z+2

8、); 運行該程序的輸出結(jié)果是( D、3 3 ),順序程序設(shè)計,補充習題講解 王小瓊,一、選擇題,1.下列程序運行后的輸出的數(shù)據(jù)是 A 。 main() int x,y,z; x=y=2; z=3; y=x+-1; printf(%dt%dt,x,y); y=+x-1; printf(%dt%dn,x,y); y=z-1; printf(%dt%dt,z,x); y=-z-1; printf(%dt%dn,z,x); A. 3 1 4 3 2 4 1 4,x y z 2 3 1 3 2 2 1 0,2設(shè)int型占2個字節(jié),且int i=-2;,則語句printf(“%u”,i);的輸出結(jié)果為 C

9、. 65534,3 下面程序的運行結(jié)果是_ D. b1 。 main() int a=177; printf(%xn,a); ,177/16=11(余1) 11(10進制)-b (十六進制),4有以下程序 main() x y z int x,y,z; 1 1 1 x=y=1; 2 2 z=x+,y+,+y; 3 printf(%d,%d,%dn,x,y,z); 注意:=優(yōu)先級大于, 程序運行后的輸出結(jié)果是:C) 2,3,1,5設(shè)有定義:int a; float b; 執(zhí)行 scanf(“%2d%f”,語句時,若從鍵盤 輸入876 543.0,a和b的值分別是B) 87和6.000000 分析

10、:876543.0 空格和回車都表示輸入數(shù)據(jù)結(jié)束 %2d-2表示取前2位整數(shù),6賦給下一個變量為實型(精確到小數(shù)點后6位),7有以下程序 main() double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; / x=1 y=0 printf(%dn,d*y); 程序的輸出結(jié)果是c)0,9下列語句中符合C語言語法的賦值語句是 D 。 a=7+b+c=a+7; B) a=7+b+=a+7;(第二項不能是表達式) C) a=7+b,b+,a+7; (少分號) D) a=7+b;c=a+7;,11有以下程序 main() unsigned short a=65536;

11、 int b; printf(%dn,b=a); 程序的輸出結(jié)果是 A) 65536 B) 0 C) 1 D) -1 65535 1 0000 0000 0000 0000-1 溢出,10下面程序的輸出是 D 2,1 。 main() int a=1,b=2; a=a+b; b=a-b; a=a-b; /a=1+2=3;b=a-b=3-2=1;a=a-b=3-1=2; printf(%d,%dn,a,b); ,12有以下程序 #include main() char c1,c2,c3,c4,c5,c6; scanf(“%c%c%c%c”, 程序運行后,若從鍵盤輸入(從第1列開始) 123 45

12、678 則輸出結(jié)果是 D) 1245 。,二、填空題,1以下程序的輸出結(jié)果是 9,10 。 #include main() int i=010 , j=10; /i=010(八進制)-8(十進制) printf(%d,%dn,+i,j-); ,2已知在ASCII代碼中,字母A的序號為65,以下程序的輸出的結(jié)果是 66,99 。 #include main() char c1=B, c2=c; /c1=A+1=66 c2=C+32=99 printf(%d,%dn,c1,c2); ,3以下程序的輸出結(jié)果是000 。 #include main() printf(%d%d%dn,0,0,0); ,

13、4設(shè)有定義:float x=123.4567;,則執(zhí)行以下語句后的輸出結(jié)果是 123.460000 printf(%fn,(int)(x*100+0.5)/100.0);,6以下程序的輸出結(jié)果是 2,1 。 #include main() int a ,b,d=241; a=d/100%9; b=(-1) ,8設(shè)有有程序: main() int i=5,j,k; j=i+i+i+; k=(+i)+(+i)+(+i); printf(i=%5d j=%5dnk=%5dn,i,j,k); 則運行程序后的輸出是 11,15,33 。,i j= i+i+i =15 (先用后加) 5 i+6 i+ 7

14、i+ 8 i+ 9 i+ 10 K=11+11+11 (先加后用)i+ 11,10下面的程序運行時從鍵盤上輸入9876543210,程序的輸出結(jié)果是 a=98,b=76.0,c=54 。 main() int a; float b,c; scanf(%2d%2f%2f, ,11已知字母A的ASCII碼為十進制的65,下面程序的輸出是 67,D 。 main() char ch1,ch2; ch1=A+5-3; ch2=A+6-3; /ch1=A+2=C-67 ch2=A+3=D printf(%d,%cn,ch1,ch2); ,13下面程序的輸出是 12 。 main() int x=023

15、; /(023)八進制-(19)十進制-(0X13)十六進制 printf(%xn,-x); ,14執(zhí)行下面的語句:printf(%dn,(a=3*5,a*4,a+5);輸出是 20,14b執(zhí)行下面的語句:printf(%dn, a=3*5,a*4,a+5);輸出是 15,分析:有括號,執(zhí)行的是逗號表達式,取最后一個值;如果沒括號,取第一個值,15以下程序的輸出結(jié)果是 8,9 (printf 語句執(zhí)行從右往左) 。 main() int x=10; printf(%d,%dn,-x,-x); ,16若變量a,b已定義為int類型并賦值21和55,要求用printf函數(shù) 以a=21,b=55的形

16、式輸出,請寫出完整的的輸出語句 printf(“a=%d,b=%d”,a,b); 。,選擇結(jié)構(gòu)程序設(shè)計,補充習題講解 王小瓊,一、選擇題,1 設(shè)a、b和c都是int型變量,且a=3,b=0,c=5,則一表達式中,值為0的表達式是 C 。 A) a if(k=0) printf(“#”);/-30為真,執(zhí)行printf(“#”) else printf(,5若要求在if后一對圓括號中表示a不等于0(為真)的關(guān)系,則能正確表示 這一關(guān)系的表達式為 。 A) a0 B) !a C) a=0 D) a (a非0即為真),6有以下程序 main() int a=0,b=0,c=0,d=0; if(a=1

17、) b=1;c=2; /少了大擴號,復(fù)合語句 else d=3; printf(%d,%d,%d,%dn,a,b,c,d); 程序輸出是 。 A) 0,1,2,0 B) 0,0,0,3 C) 1,1,2,0 D) 編譯有錯,7下列敘述中正確的是 A) break語句只能用于switch語句(while,for 都可以用來跳出循環(huán)) B) 在switch語句中必須使用default(可以沒有) C) break語句必須與switch語句中的case配對使用(不一定要配對,可以沒有) D) 在switch語句中不一定使用break語句,8下列程序運行后的結(jié)果是 。 #include main()

18、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; printf(a=%d,b=%dn,a,b); A. a=2,b=1 B. a=1,b=1 C. a=1,b=0 D. a=2,b=2,switch(x) x=1 case 1 執(zhí)行 switch(y)y=0 case 0后有break執(zhí)行完a+后跳出switch(y) case 1沒有break; case2還要接著執(zhí)行;,9若有定義:float x=1.5; int a=1,b=3,c

19、=2; 則正確的switch語句是 c 。 A) switch(x) B) switch(int)x); case 1.0:printf(*n); case 1:printf(*n); case 2.0:printf(*n); case 2:printf(*n); C) switch(a+b) D) switch(a+b) case 1:printf(*n); case 1:printf(*n); case 2+1:printf(*n); case c:printf(*n); ,二、填空題 1下面的程序段的輸出結(jié)果是 *3 。 int x=3; if(x%2)?printf(*%d,x):pr

20、intf(#%dn,x);,2下面程序的輸出是 * 。 main() int x=3,y=2,z=0; if(x=y+z) printf(“*”); /x=y+z=2(賦值);x=y+z(判斷) else printf(#); ,3下面程序的輸出是 1 0 3 。 main() int a=-1, b=4,k; k=(a+=0) ,4為表示關(guān)系xyz,應(yīng)使用C語言表達式 x=y x=(ax)?x:d; printf(%dn,x); ,循環(huán)程序設(shè)計,補充習題講解 王小瓊,一 選擇題 以下程序中,while循環(huán)的循環(huán)次數(shù)是 main() int i=0; while(i10) if(i1) con

21、tinue; /循環(huán)變量i的值,一直沒有改變; /continue條件為真提前循環(huán),后面的語句都不執(zhí)行 if(i= =5) break; i+; A)1 B)10 C)6 D)死循環(huán),不能確定次數(shù), 有如下程序 main() int n=9; while(n6) n- -; printf(%d,n); 9 8 8 8 7 7 7 6 6 6(條件為假) 該程序的輸出結(jié)果是B)876, 有以下程序段 int k=0; while(k=1) k+; /k=1(賦值)條件永遠為真 k=1(判斷) while循環(huán)執(zhí)行的次數(shù)是 A)無限次 B)有語法錯,不能執(zhí)行 C)一次也不執(zhí)行 D)執(zhí)行1次, 以下敘

22、述正確的是 A)do-while語句構(gòu)成的循環(huán)不能用其它語句構(gòu)成的循環(huán)來代替 B)do-while語句構(gòu)成的循環(huán)只能用break語句退出 C)用do-while語句構(gòu)成的循環(huán),在while后的表達式為非零時結(jié)束循環(huán) D)用do-while語句構(gòu)成的循環(huán),在while后的表達式為零時結(jié)束循環(huán), 有如下程序 main() int x=23; do printf(“%d”,x- -); while(!x); /x為非零,即為真,非真,即為假 該程序的執(zhí)行結(jié)果是 A)321 B)23 C)不輸出任何內(nèi)容 D)陷入死循環(huán),a y 輸出 10 0 12 12 a=12 y=12 14 16 28 a=16

23、 y=28,main() int a=10,y=0; do a+=2; y+=a; printf( a=%d y=%dn, a, y ); if ( y 20 ) break; while( a = 14 ); ,Ex5 下列程序的輸出是什么?, 有以下程序段 int x=3; do printf(%d ,x-=2); while(!(- -x); 其輸出結(jié)果是 A)1 B)3 0 C)1 -2 D)死循環(huán), 以下循環(huán)體的執(zhí)行次數(shù)是 A)3 B)2 C)1 D)0 main() int i,j; for(i=0,j=1; i=j+1; i+=2,j- -) printf(%d n,i);,X=

24、3 X-=2-x=x-2=1 -x-x=x-1=0 !(x)=!0=1為真 繼續(xù)循環(huán) X-=2-x=x-2=0-2= - 2 -x-x=x-1=-3 !(-x)=!(-3)=0為假 退出循環(huán),for 循環(huán)與n+沒有關(guān)系, n+只有執(zhí)行一次,Ex8 執(zhí)行下列語句后,a=? int a = 0, i; for( i = 1; i 5; i+ ) switch( i ) case 0: case 3: a+=2; case 1: case 2: a+=3; default:a+=5; ,1,2,3,4,i i5 執(zhí)行 a,1,真,case 1 a+=3,3,8,a+=5,11,2,真,case 2

25、a+=3,16,a+=5,18,3,真,case 3 a+=2,21,a+=3,26,a+=5,31,4,真,default a+=5,假,5,Ex 9執(zhí)行下列語句后,a=?,main() int i = 0,a = 0; while( i 20 ) for( ; ; ) if( i % 10 ) = 0 ) break; else i-; i += 11; a += i; ,i a i20 i%10= =0 break,0,0,真,0,真,11,11,真,1,假,10,0,真,假,21,32, 有如下程序 main() int i,sum; for(i=1; i=3; sum+) sum+=

26、i; /i+ printf(%dn,sum); 結(jié)果是 A)6 B)3 C)死循環(huán) D)0, 以下程序執(zhí)行后sum的值是 A)15 B)14 C)不確定 D)0 main() int i,sum; /sum=0; for(i=1; i6; i+) sum+=i; printf(%dn,sum); ,i的值沒有改變,循環(huán)控制變量一直是 i=3,永遠為真,sum 的值沒有初始化,里面 的初值是個隨機的數(shù)字, 有以下程序 main() int i,n=0; for(i=2;i5;i+) do if(i%3) continue; n+; while(!i); n+; printf(n=%dn,n);

27、程序執(zhí)行后的輸出結(jié)果是 A)n=5 B)n=2 C)n=3 D)n=4,i i5 if( i%3) continue n+ while(!i) n+ 真 真 執(zhí)行 不執(zhí)行 0 1 真 假 不執(zhí)行 2 0 3 真 真 執(zhí)行 0 4 假(不執(zhí)行for語句),二 填空題 若輸入字符串:abcde,則以下while循環(huán)體將執(zhí)行0 次。 while(ch=getchar()= =e) printf(“*”); /a=e(條件為假), 以下while循環(huán)執(zhí)行的次數(shù)是 無數(shù)次 。 k=0; while(k=10) k=k+1; /k=10(賦值)條件永遠為真, 下列程序的輸出結(jié)果是3,2,-1 。 main

28、() int x=0,y=5,z=3; while(z-0 ,z x y 0 5 1 4 2 3 0 3 2 -1(條件為假,后面都不執(zhí)行), 下面程序的功能是:計算1到10之間的奇數(shù)之和及偶數(shù)之和,請?zhí)羁铡?#include main() int a,b,c,i; a=c=0; for(i=0; i=10; i+=2) a+=i; b =i+1 ; c+=b; printf(偶數(shù)之和=%dn,a); printf(奇數(shù)之和=%dn,c-11); ,6 以下程序的輸出結(jié)果是1 3 。 main() int s,i; for(s=0,i=1; i3; i+,s+=i); printf(%dn,s

29、); ,5 下面程序的功能是:輸出100以內(nèi)能被3整除且個位數(shù)為6的所有整數(shù),請?zhí)羁铡?#include main() int i,j; for(i=0; _i10 ; i+) j=i*10+6; if(_j%3!=0 )continue; printf(%dn,j); ,i i3 i=i+1 s=s+i 1 條件為真 2 s=0+1=1 條件為真 3 s=1+2=3 3 條件為假, 要使以下程序段輸出10個整數(shù),請?zhí)钊胍粋€整數(shù)。 for(i=0; i=_18 ; printf(%d n,i+=2) ;, 程序的功能是根據(jù)以下近似公式求值: (*)/6=1+1/(2*2)+1/(3*3)+1/

30、(n*n) 填空,完成求的功能。 #include math.h main() int n=30000; double s=0.0; long i; for(i=1; i=n; i+) s=s+1/i*i ; printf(pi=%fn,_sqrt(6s); ,循環(huán)次數(shù)=(終止-初始)/步長+1; 10=(終止-0)/2 +1,三 程序填空題 1 下列程序是求 的值。 #include stdio.h main() int i=2; float sum=1; while( i=50 ) sum=sum+1.0/i; i=i+2 ; printf(sum=%fn, sum ); ,2以下程序的功

31、能是從鍵盤輸入若干個學生的成績,統(tǒng)計最高成績和最低成績, 當輸入為負數(shù)時,結(jié)束輸入。 main() float x,max,min; scanf(%f, ,Ex,算法,1 定義變量n、i、j、k 2 n從100到999做循環(huán),將n的各位數(shù)字(i、j、k)分離出來 3 判斷:若n是水仙花數(shù)則輸出,#include main() ,1 定義變量n、i、j、k,int n,i,j,k;,將n的各位數(shù)字(i、j、k)分離出來,i=n/100;,n的百位數(shù)字,設(shè)n=153,j=n/10%10;,n的十位數(shù)字,i=n/100=153/100=1,j=n/10%10=153/10%10=5,3 判斷:若n是

32、水仙花數(shù)則輸出,2 n從100到999做循環(huán),,if(n=i*i*i+j*j*j+k*k*k) printf(%dn,n);,如果只要求一個水仙花數(shù),可在if語句后加上break語句終止循環(huán),k=n%10;,n的個位數(shù)字,k=n%10=153%10=3,break語句只能用在switch語句或循環(huán)語句中,用以終止它所在的 switch語句或循環(huán)語句的執(zhí)行,水仙花數(shù):一個3位數(shù)的各位數(shù)字的立方和恰好等于它本身, 這樣的3位數(shù)稱為水仙花數(shù)。編程求出所有的水仙花數(shù)。, break與continue語句,第七章 數(shù)組,補充習題講解 王小瓊,1、以下對一維整型數(shù)組a的正確定義(說明)的是 D 。 A.

33、int a(10); /a10; B. int n=10;an; /多個變量用逗號隔開 C. int n; D. #define SIZE 10 Scanf(“%d”,2、若有定義(說明)int a10; 則對數(shù)組a的元素正確引用的是 D 。 A. a10 B. a3.5 C. a(5) D. a10-10,3、以下對一維整型數(shù)組a初始化的語句中正確的是 D 。 A. int a10 (0,0,0,0,0); B. int a10 (); / C. int x=2,a10=10*x ; D. int a10 0;,數(shù)組int a10 a0a1a9,4、下列程序運行后的輸出結(jié)果是 。 #incl

34、ude #define MAX 10 void main() int i,sum,a=1,2,3,4,5,6,7,8,9,10; sum=1; for(i=0;iMAX;i+) sum-=ai; printf(“sum=%dn”,sum); A. sum=55 B. sum= -54 C. sum= -55 D. sum=54,i i10 sum=sum-ai i+,0 真 sum=1-0=1,1 真 sum=1-2=-1,2 真 sum=-1-3=-1,sum=1-1-2-3-4-5-6-7-8-9-10=-54,5、下面的程序運行后,其輸出結(jié)果是_i 沒有定義,少分號程序有問題_。 #in

35、clude main() int y=18,j=0,j,a8 do ai=y%2; i+; y=y/2; while(y=1); for(j=i-1;j0;j-) printf(%d,aj); A.1000 B.1001 C.1010 D.1100,6、閱讀以下程序,寫出該程序?qū)崿F(xiàn)的功能? #include main() int a30,i,j,n,temp; scanf(%d, ,功能:將輸入的數(shù)組元素逆置,7、閱讀以下程序,寫出該程序?qū)崿F(xiàn)的功能? #include main() int r30,i,j,n,temp,flag; printf(Please input the number:

36、 n=); scanf(%d, ,前面的元素大就交換,功能:從小到大排序n個元素,8、以下對二維數(shù)組a的正確定義(說明)的是 C 。 A. int a3; B. float a(3,4); C. double a14; D. float a(3)(4);,9、若有定義(說明)int a34; 則對數(shù)組a的元素的引用非法的是 D 。 A. a22*1 B. a13 C. a4-20 D. a04,10、以下不能對二維數(shù)組a進行正確初始化的語句是 c 。 A. int a23 0; B. int a3 1,2,0; C. int a23 1,2, 3,4, 5,6 ; D. int a3 1,2,

37、3,4,5,6;,an 下標最大是n-1,int a23表示2行3列,11、閱讀以下程序,寫出程序的運行結(jié)果 #include main() int a66,i,j; for(i=1;i6;i+) for(j=1;j6;j+) aij=(i/j)*(j/i); for(i=1;i6;i+) for(j=1;j6;j+) printf(%2d,aij); printf(nn); ,1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1,i=j 時 aij=1 i!=j時 aij=0,12、下列程序的功能是求出矩陣x的上三角元素之積。其中矩陣x的行列數(shù)

38、和元素的值均由鍵盤輸入。請?zhí)羁铡?#include #define M 10 main() int xMM; int n,i,j; long s=1; printf(Enter a integer( i)s*=xij; printf(%ld,s); ,13、寫出下列程序中錯誤的地方。 main() char s10; s=program C; /stycpy(s,” program C”) printf(“ %c,s); /%s scanf(%s, /%c ,14、運行下面程序,其輸出結(jié)果是_D_。 #include main() static char s30=abcdefg; static

39、 char t =abcd; int i=0,j=0; while(si!=0) i+; /計算si的長度 while(tj!=0) si+j=tj;j+; /在字符串sj的后面加上tj si+j=0; printf(%sn,s); A.abcdabcdefg B.abcdefg C.abcd D.abcdefgabcd,15、閱讀以下程序,寫出該程序?qū)崿F(xiàn)的功能? #include void main() char a80; int i,j; printf(Enter the string:);scanf(%s,a); i=0; while(ai!=0) /字符串尚為結(jié)束 if(ai=A ,功

40、能:將鍵盤輸入的字符串中的大寫字母換成小寫字母,然后顯示該字符串,16、閱讀以下程序,寫出該程序?qū)崿F(xiàn)的功能? #include main() char a40,b40; int i,j; printf(Enter the string:);scanf(%s,a); i=j=0; while(ai!=0) /字符串尚為結(jié)束 if(!(ai=0 ,功能:將鍵盤輸入的字符串a(chǎn)中的數(shù)字字符刪除后,復(fù)制給字符串b,然后顯示字符串b,第八章 函數(shù),補充習題講解 王小瓊,1.以下正確的函數(shù)定義是 D 。 A)double fun(int x, int y) B)double fun(int x,y) /in

41、t y z=x+y ; return z ; /z沒有定義 int z ; return z ; C)fun (x,y) /類型說明 D)double fun (int x, int y) int x, y ; double z ; double z ; z=x+y ; return z ; return z ; ,2.以下正確的說法是 A 。 A)實參和與其對應(yīng)的形參各占用獨立的存儲單元 B)實參和與其對應(yīng)的形參共占用一個存儲單元 C)只有當實參和與其對應(yīng)的形參同名時才共占用相同的存儲單元 D)形參時虛擬的,不占用存儲單元,3.若調(diào)用一個函數(shù),且此函數(shù)中沒有return語句,則正確的說法是

42、A 。 A)該函數(shù)沒有返回值 /void類型 B)該函數(shù)返回若干個系統(tǒng)默認值 C)能返回一個用戶所希望的函數(shù)值 D)返回一個不確定的值,4.以下正確的描述是 B 。 A)函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套 B)函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套 C)函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套 D)函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套,5.若用數(shù)組名作為函數(shù)調(diào)用的實參,傳遞給形參的是 A 。 A)數(shù)組的首地址 B)數(shù)組中第一個元素的值 C)數(shù)組中的全部元素的值 D)數(shù)組元素的個數(shù),6.以下不正確的說法是 D 。 A)在不同函數(shù)中可以使用相同名字的變量 B)形式參數(shù)是局部變量 C)在函數(shù)內(nèi)定義

43、的變量只在本函數(shù)范圍內(nèi)有定義 D)在函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有定義/復(fù)合語句,7.已知一個函數(shù)的定義如下: double fun(int x, double y) 則該函數(shù)正確的函數(shù)原型聲明為: A)double fun (int x,double y) B)fun (int x,double y) C)double fun (int ,double ); D)fun(x,y) ;,8.關(guān)于函數(shù)聲明,以下不正確的說法是 。 C)函數(shù)再調(diào)用之前,一定要聲明函數(shù)原型,保證編譯系統(tǒng)進行全面的調(diào)用檢查 /1.被調(diào)用函數(shù)在調(diào)用函數(shù)之前定義;2.被調(diào)函數(shù)類型是int,9調(diào)用函數(shù)的實參與被

44、調(diào)用函數(shù)的形參應(yīng)有如下關(guān)系 D 。 A. 只要求實參與形參個數(shù)相等 B. 只要求實參與形參順序相同 C. 只要求實參與形參數(shù)據(jù)類型相同 D. 上述三點均需具備,10凡在函數(shù)中未指定存儲類別的變量,其隱含的存儲類別是 A 。 A. 自動 /auto B .靜態(tài) C. 外部 D. 寄存器,11在源程序的一個文件中定義的全局變量的作用域是 D 。 A. 在本文件的全部范圍 B. 該程序的全部范圍 C. 一個函數(shù)的范圍 D. 從定義該變量的位置開始至該文件的結(jié)束,12下列程序運行后的輸出的數(shù)據(jù)是 c 。 int sum(int n) int p=1,s=0,i; for(i=1;i=n;i+) s+=

45、(p*=i); return s; main() printf(sum(5)=%dn,sum(5) ); A. sum(5)=151 B. sum(5)=152 C. sum(5)=153 D. sum(5)=155,i s 1 1+1*2 1+1*2+1*2*3 1+1*2+1*2*3+1*2*3*4 1+1*2+1*2*3+1*2*3*4+1*2*3*4*5,13下列程序運行后的輸出結(jié)果是 。 int c=1; main() static int a=5;int b=6; printf(a=%d,b=%d,c=%dn,a,b,c); func(); printf(a=%d,b=%d,c=%

46、dn,a,b,c); func(); fumc() static int a=4;int b=10; a+=2;c+=10;b+=c; printf(a=%d,b=%d,c=%dn,a,b,c); ,A. a=5,b=6,c=1 a=6,b=21,c=11 a=5,b=6,c=11 a=8,b=31,c=21,14運行下面的程序后,其輸出結(jié)果是 。 main() int a=6,b=2,c; c=f(a)/f(b); printf(%dn,c); int f(int x) int y; y=x+*x+; return y; A. 9,f(a)=f(6)=6*6=36 f(b)=f(2)=2*2

47、=4,15下列程序輸出結(jié)果是 D.6 。 #include my() static int x=3; x+; return(x); main() int i,x; for(i=0;i=2;i+) x=my(); printf(%dn,x); ,i x 0 4 5 6,16下列程序的輸出結(jié)果是 。 #include int abc(int u,int v) int w; while(v) w=u%v; u=v; v=w; return u; main() int a=24,b=16,c; c=abc(a,b); printf(%dn,c); ,abc(u=24,v=16) while(16)w=

48、u%v=8;u=v=16;v=8; while(8)w=0;u=8;v=0; while(0) return(u=8),17下列程序運行后的輸出結(jié)果是 。 main() static char s=abcdefgca; p(s); printf(s=%sn,s); p(s) char s; int i,j; for(i=j=0;si!= 0;i+) if(si!=a+2) sj+=si; sj= 0; As=abcdefgca Bs=abdefga C. s=bcdefgc D. 程序有錯,18. 下列程序運行后的輸出結(jié)果是 。 void main() int m=4,n=2,k; k=fun

49、(m,n); printf(%dn,k); k=fun(m,n); printf(%dn,k); fun(x,y) int x,y; static int n=3,i=2; i+=n+1; n=i+x+y; return(n); ,19. 下列程序運行后的輸出結(jié)果是 D 。 #include int x=1; main() int i=5; fun(i); printf(%d,%dn,i,x); fun(m) int m; m+=x; x+=m; char x=A; printf(%dn,x); printf(%d,%dn,m,x); A 65 B. A C. A D. 65 6,1 6,1 6,7 6,7 6,1 6,1 6,7 5,7,21運行下面程序,其輸出結(jié)果是 。 #include main() int i,j,k; int func(); i=1;j=2;k=3; printf(%dn,func(j+=k,j+),(i,i+,+i); int func(int x,

溫馨提示

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

評論

0/150

提交評論