C語言基礎(chǔ)練習(xí)答案_第1頁
C語言基礎(chǔ)練習(xí)答案_第2頁
C語言基礎(chǔ)練習(xí)答案_第3頁
C語言基礎(chǔ)練習(xí)答案_第4頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第1章:C語言基礎(chǔ)ー、選擇題1、以下敘述中正確的是(A)A)C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方B)花括號"{"和"}"只能作為函數(shù)體的定界符C)構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名D)分號是C語句之間的分隔符,不是語句的一部分2,以下敘述中錯(cuò)誤的是(D)A)C語言本身沒有輸入輸出語句B)在ー個(gè)C語言程序中main函數(shù)可以在任何地方出現(xiàn)〇ー個(gè)C語言源程序必須包括ー個(gè),且只能包括ー個(gè)main函數(shù)D)在C語言源程序中,注釋只能放在語句的后面3、以下敘述中正確的是(A)?A)構(gòu)成C程序的基本單位是函數(shù)B)可以在一個(gè)函數(shù)中定義另ー個(gè)函數(shù)C)main()函數(shù)必須放在其它函數(shù)之前D)所有被調(diào)用的函數(shù)一定要在調(diào)用之前進(jìn)行定義4、下列程序中,注釋方法不正確的是(A)A)#incl/?頭文件?/ude<stdio.h>B)#include<stdio.h>main()main(/?主函數(shù)?/)C)#include<stdio.h>D)#include<stdio.h>main()main(){intx/?初始化?/=10;{intx=10;/?輸出?/printf("%d",x);}printf("%d”,x);/?輸出?/}5、下列語句中,符合C語言的書寫規(guī)則的語句是(D)oA)inta;b;c; B)a=2:b=3;x=y+5 D)x+=5;二、填空題1、ー個(gè)C語言程序是由函數(shù)組成的。2、ー個(gè)C語言程序總是從main函數(shù)開始執(zhí)行。3、在C語言里輸入是由scanf函數(shù)實(shí)現(xiàn),輸出是由printf函數(shù)實(shí)現(xiàn)。4、C語言源程序的基本単位是函數(shù)。5、C語言中,當(dāng)復(fù)合語句多于一條時(shí),要求有一對ユ括號。第2章:數(shù)據(jù)類型ー、選擇題1、以下有4組用戶標(biāo)識符,其中合法的ー組是(B)。A)longB)_2Testc)3Dmax D)A.dat4dForf2_G3WORD-subcherswithvoid2、以下選項(xiàng)屮可作為C語言合法整數(shù)的是(C)〇A)10110BB)03860OXffaD)x2a23、以下所列的C語言常量中,錯(cuò)誤的是(B),A)OxFFB)1.2e0.5C)2LD)'\72'4、以下選項(xiàng)中合法的實(shí)型常數(shù)是(〇。A)5E2.0B)E-3〇2.2E11.3E5、在C語言中,合法的長整型常數(shù)是(AB)oA)OLB)4962710C)324562&D)216D6、以下選項(xiàng)中合法的字符常量是(B)?A)"B"B)'\010'C)68D)D7、已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97,則用ハ進(jìn)制表示的字符常量’'102’是(D).A)字符AB)字符aC)字符fD)字符B8、有如下程序段,則該程序運(yùn)行后,m的值是(D)。假定w、x、y、z、m均為int型變量,w=l;x=2;y=3;z=4;m=(w<x)?w: x;m=(m<y)?m:y;m=(m<z)?m:z;A)4B)3C)2D)19、以下非法的賦值語句是(〇〇A)n=(i=2,++i);B)j++;C)++(i+D;D)x=j>0;10、以下非法的賦值語句是(C)?A)nl=(n2=(n3=2));B)j=i=j;C)a=b+c=l;D)x+=l;11、以下合法的賦值語句是(B).A)x=y=100 B)d—; C)x+y;D)c=int(a+b);12、以下程序段的輸出結(jié)果是(A)?Short#include<stdio.h>main(){inti=65536,j=32767;j=j+l;printf("%d,%d”,i,j);A)65536,32768 B)0, 3276800,0D)0,-3276813、設(shè)a和b均為double型常量,且a=5.5、b=2.5,則表達(dá)式(int)a+b/b的值是(D)oA)6.500000B)6C)5.500000D)6.00000014、若有定義:inta=8,b=5,C;,執(zhí)行語句Oa/b+O.4;后,C的值為(B)oA)1.4B)1C)2.0D)215、若變量a是int類型,并執(zhí)行了語句:a='A'+1.6;,則正確的敘述是(D)〇A)a的值是字符C B)a的值是浮點(diǎn)型0不允許字符型和浮點(diǎn)型相加D)a的值是字符‘A'的ASCI!值加上16、以下選項(xiàng)中不屬于C語言的類型的是(D)oA)signedshortintB)unsignedlongintC)unsignedint D)longshort17、假定x和y為double型,則表達(dá)式x=2,y=x+3/2的值是(D)。A)3.500000B)3C)2.000000D)3.00000018、已知字母A的ASCII碼為十進(jìn)制的65,下面程序的輸出結(jié)果是(A)main(){?}A)67,DB)B,CC)C,DD)A2,A319、以下變量x、y、z均為double類型且已正確賦值,下面四個(gè)數(shù)學(xué)式子有3個(gè)相同,不同的表達(dá)式是(A)。A)x/y*zB)x*(l/(y*z))C)x/y*l/zD)x/y/z20、C語言中運(yùn)算對象必須是整型的運(yùn)算符是(A)。A)% B)/ 0=D)〈=21、若已定義x和y為double類型,則表達(dá)式x=l,y=x+3/2的值是(C)?A)1 B)2C)2.0D)2.522、設(shè)有intx=ll;則表達(dá)式(x++*1/3)的值是(A)?A)3 B)4C)11D)12二、填空題1、在turboC中,shortint類型的數(shù)據(jù)所占的字節(jié)數(shù)是ユ_。2、以下程序段的輸出結(jié)果是。main(){printf(uabc\tde\rf\tg\n>>);printf("h\ti\b'bjk"):}3、以下程序的輸出結(jié)果是 「C—。main()(charcl='b',c2='c';printf("%d,%c\n”,c2-cl,c2-'a'+'A');}4、以下程序的輸出結(jié)果是8,16,10main(){intu=010,v=OxlO,w=10;printf(M%d,%d,%d",u,v,w);}5、以下稈序的輸出結(jié)果是ー10,2 “main()inta=10,m;m=a?2:3;printf(w%d,%dw,a,m);6、運(yùn)算符+、ー、?、/、%中,優(yōu)先級最高的是ー?、/、%_,最低的是_+、ー_〇7、有以下定義chari;intj;floatk;double1;則表達(dá)式i+j+k+1值的類型為double 08、以下程序段的輸出結(jié)果是3.600000,3〇main()floatx;inti;x=3.6;i=(int)x;printf("x二%f,i二%d”,x,i);第3章:順序結(jié)構(gòu)ー、選擇題1、有以下程序,運(yùn)行時(shí),從鍵盤輸入ABく回車》,則輸出結(jié)果是(A)〇#includeくstdio.h>main(){charc;c=getchar();putchar(c);A)AB)BC)ABD)BA

2、有以下程序,程序運(yùn)行后的輸出結(jié)果是(B)〇main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf(*%d%d%3.If%3.lf\n*,a,c,f,x);)A)16516.5 B)1651.56.5C)1651.06.5D)2651.56.53、有定義語句:intx,y;?若要通過scanf("%d,%d",&x,&y);語句使變量x得到數(shù)值11,變量y得到數(shù)值12,下面四組輸入形式中,錯(cuò)誤的是(A)oA)1112く回車)B)11,12<回車)C)11,12く回車) D)11,く回車》12<回車》4、若變量已正確說明為float類型,要通過語句scanf(*%f%f%f”,&a,&b,&c);給a賦于10.0,b賦予22.0,c賦予33.0,不正確的輸入形式是:(B)。A)10〈回車〉 B)10.0,22.0,33.0〈回車〉〈回車》〈回車〉〇10.0〈回車> D)1022<回車》.033.0〈回車〉 33〈回車〉5、設(shè)有如下程序段,則以下敘述中正確的是(D)。intx=2002,y=2003;printf(*%d\n*,(x,y));A)輸出語句中格式說明符的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),不能正確輸出B)運(yùn)行時(shí)產(chǎn)生出錯(cuò)信息〇輸出值為2002D)輸出值為20036、設(shè)變量x為float型且已賦值,則以下語句中能將x中的數(shù)值保留到小數(shù)點(diǎn)后兩位,并將第三位四舍五入的是(C).A)x=x*100+0.5/100.0; B)x=(x*100+0.5)/100.0;C)x=(int)(x*100+0.5)/100.0;D)x=(x/100+0.5)*100.0;7、有以下程序段,若從鍵盤上輸入:10A10C回車〉,則輸出結(jié)果是(A),intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);10,A,10B)10,a,10C)10,a,0D)10,A,08、已知i、j、k為int型變量,若從鍵盤輸入:1,2,3〈回車〉,使i的值為1、j的值為2、k的值為3,以下選項(xiàng)中正確的輸入語句是(C).A)scanf("%2d%2d%2d”,&i,&j,&k);scanf(飛d%d%d”,&i,&j,&k);C)scanf("%d,%d,%d",&i,&j,&k);D)scanf("i=%d,j=%d,k=%d",&i,&j,&k9、與數(shù)學(xué)式子3乘以x的n次方/(2xT)對應(yīng)的C語言表達(dá)式是(〇?A)3*x'n/(2*x-l)3*x**n/(2*x-l)3*pow(x,n)*(l/(2*x-D)3*pow(n,x)/(2*x-l)10、設(shè)有定義:longx=T23456L;,則以下能夠正確輸出變量x值的語句是(C).printf(*x=%d\n*,x):printf(*x=%ld\n*,x);printf(*x=%8dL\n*,x);printfCx=%LD\n*,x);11、若有以下程序,執(zhí)行后的輸出結(jié)果是(〇〇main(){intk=2,i=2,m;m=(k+=i*=k);printf(*%d,%d\n*(m,i);A)8,6B)8,3C)6,4D)7,412、以下程序的輸出結(jié)果是(C).main(){inta=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:c):(b));)A>5B)4C)6D)不確定13、設(shè)正x、y均為整型變量,且x=10y=3,則以下語句的輸出結(jié)果是(D)。printf("%d,%d\n”,x--,--y);A)10,3 B)9,3 C)9,2 D)10,214、x、y、z被定義為int型變量,若從鍵盤給x、y、z輸入數(shù)據(jù),正確的輸入語句是(B)。A)INPUTx、y、z;B)scanf('t%d%d%d,t,&x,&y,&z);C)scanf(H%d%d%dH,x,y,z);D)read("%d%d%d”,&x,&y,&z);15、以下程序的輸出結(jié)果是(A)。main(){inta=3;printf(t,%d\n'\(a-=a*a));A)-6 B)12 C)0 D)-12二、填空題1、下列程序的輸出結(jié)果是QJー。main(){doubled=3:2;intx,y,z;x=1.2;y=(x+3.8)/5.O;z=(1.2+3.8)/5.0;printf("y=%d,z=%d”,y,z);}2、以下程序段輸出的結(jié)果是:〇intx=017;printf(**x=%3d,x=%6d,x=%3o,x=%3x,x=%3u,,,x,x,x,x,x);3、以下程序段輸出的結(jié)果是:* 10?-10 レointa=10;printf(*4*%6d*,*%-06d*M,a,a);4、以下程序的結(jié)果是 a二%d斥%d。main(){inta=2,b=2;printf(tta=%%d,b=%%d\n,\a,b);5、以下程序段輸出的結(jié)果是:。。5—inta=O,b=O,c=O;c=(a-=a-5),(a=b,b+3);printf(€4%d,%d,%d\n,,,a,b,c);6、以下程序的結(jié)果是 ユ21。#include<stdio.h>main(){intx=Oll,y=Oxll;printf(4t%x,%o\nv,++x,y++);)7、以下程序的結(jié)果是A,65,a,97〇#include<stdio.h>main(){charcl='A',c2;printf("%c,%d;',cl,cl);c2=cl+32;printf(ifc%c,%d';c2,c2);1、設(shè)圓的半徑為r,求圓的周長和面積。要求用scanf輸入數(shù)據(jù);用printf輸岀結(jié)果,輸出時(shí)要有文字說明:結(jié)果取小數(shù)點(diǎn)后2位數(shù)字。請編寫程序。#include"stdio.h"#include^,math.h,,voidmain()floata=3.14,r,c,area;scanf(M%f,,&r);c=2*a*r;//area=a*r*r;area=a*pow(r,2);printf("半徑為%.2f的圓的'n周長c=%.2f\n面積area=%.2f\n",r,c,area);2、已知x,y是二個(gè)整數(shù),求x和y的平方和。耍求用scanf輸入數(shù)據(jù):用printf輸出結(jié)果,輸出時(shí)要有文字說明。請編寫程序。#include"stdio.h"#includenmath.hHvoidmain()intx,y,sum;scanf(,,%d,%d,',&x,&y);//sum=x*x+y*y;sum=pow(x,2)+pow(y,2);printf("%d的平方和%d的平方和為:%d",x,y,sum);3、請編寫程序,用getchar函數(shù)讀取兩個(gè)字符給變量Cl、C2,然后分別用putchar函數(shù)和printf函數(shù)輸出這兩個(gè)字符。并思考以下問題:(1)媚C1、C2應(yīng)定義為字符變量,還是整型變量。(2)如果要求輸出C1和C2的ASC碼,應(yīng)怎樣實(shí)現(xiàn)。(3)整型變量和字符變量是否在任何情況下都可以替代。include"stdio.h"voidmain()charcl,c2;cl=getchar();c2=getchar();putchar(cl);printf(',\n%c,,,c2);printf(H\n%d,%d",cl,c2);第4章:選擇結(jié)構(gòu)ー、選擇題1、設(shè)a、b、C、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2.則邏輯表達(dá)式(m=a>b)&&(n=c>d)運(yùn)算后,n的值為(C)?A)0B)1 C)2D)32、能正確表示邏輯關(guān)系:“a2=10或aWO”的C語言表達(dá)式是(D)。A)a>=10ora<=0 B)a〉=0|a<=10C)a>=10&&a<=0 D)a>=10IIa<=03、與y=(x>O?l:x<O?-l:O);的功能相同的if語句是(A)。if(x>0){y=i;}else{

if(x<0){y=-1;}else{y=0;A)if(x>0)y=l;elseif(x<0)y=-l;A)if(x>0)y=l;elseif(x<0)y=-l;elsey=0;y=-i;B)if(x)if(x>0)y=l;elseif(x<0)y=-l;if(x)y=-l;if(x)if(x>0)y=l;elseif(x==0)elsey=0;y=0;if(x>=0)if(x>0)y=l;elsey=-l;elsey="l;4、閱讀以下程序:main(){intx;scanf("%d”,&x);if(x—<5)printf("%dM,x);elseprintf(M%dM,x++);程序運(yùn)行后,如果從鍵盤上輸人5,則輸出結(jié)果是(B).A)3 B)4 C)5 D)65、有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=l.0;printf(“%f\n”,y);該程序的輸出結(jié)果是(〇〇A)0.000000B)0.250000C)0.500000D)1.0000006,有如下程序main(){inta=2,b=-l,c=2;if(a=b<0)c=0;elsec++;printf(“肌i\n”,c);該程序的輸出結(jié)果是(A)。A)0B)1C)2D)37、若執(zhí)行以下程序時(shí)從鍵盤上輸入9則輸出結(jié)果是(B)。A)llB)10 C)9 D)8main()(intn;scanf&n);if(n++<10)printf(*%d\n*,n);elseprintf(“刎、n”,n-);8、有定義語句:inta=l,b=2,c=3,x;,則以下選項(xiàng)中各程序段執(zhí)行后,x的值不為3的是().A)if(c<a)x=l;B)if(a<3)x=3;elseif(b<a)x=2;elseif(a<2)x=2;elsex=3;elsex=l;C)if(a<3)x=3;D)if(a<b)x=b;if(a<2)x=2;if(b<c)x=c;if(a<l)x=l;if(c<a)x=a;9、有以下程序main()inti=l,j=l,k=2;if((j++llk++)&&i-H-)printf(,,%d,%d,%d\n',,i,j,k);執(zhí)行后輸出的結(jié)果是(C)oA)1,1,2B)2,2,1C)2,2,2D)2,2,310、有以下程序main()inta=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n”,d);elseif((c-l>=d)==l)printf("%d\n”,d+l);elseprintf(u%d\n,,,d+2);執(zhí)行后輸出的結(jié)果是(B)。A)2 B)3 C)4D)編譯時(shí)有錯(cuò),無結(jié)果11、有如下程序main(){intx=l,a=O,b=0;switch(x)case0:b++;a++;a++;b++;printf(wa=%d,b=%d\nw,a,b);該程序的輸出結(jié)果是(A),A)a=2,b=lB)a=l,b=lC)a=l,b=0D)a=2,b=212、若a、b、cl、c2、x、、、均是整型變量,正確的switch語句是()〇A)swich(a+b); B)switch(a*a+b*b){case 1:y=a+b; break;{case3:case 0:y=a-b; break;case1:y=a+b;break;case3:y=b-a;break;C)switcha D)switch(a-b){casecl :y=a-b;break;{default:y=a*b;break;casec2:x=a*d;break;case3:case4:x=a+b;break;default:x=a+b;case10:case11:y=a-b;break;13、有以下程序main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;caseI:m++;switch(b%2){default:m++;case0:m++;break;printf("%d\n",m);程序運(yùn)行后的輸出結(jié)果是(A。A)1B)2〇3D)414>main(){inti=l;switch(i){case1:printf('*%d,',i++);case2:printf(u%dM,i-H-);default:prinlf("%d”,i++);執(zhí)行后輸出的結(jié)果是(A)。A)123B)1C)234D)215、以下程序的輸出結(jié)果是(A)main(){inta=0,i;for(i=l;i<5;i++){switch(i)

{case0:

case3:a+=2;

case1:

case2:a+=3;

default:a+=5;})printf("%d\n”,a);}A)31B)13C)10D)20二、填空題1、以下程序運(yùn)行后的輸出結(jié)果是が。main(){intx=10,y=20,t=0;if(xニニy)t=x;x=y;y二t;printf(zz%d,%d\nzz,x,y);)2、若從鍵盤輸入58,則以下程序輸出的結(jié)果是585858ロmain(){inta;scanf(zz%dz\&a);if(a>50)printfa);if(a>40)printfa);if(a>30)printfa);}3、以下程序運(yùn)行后的輸出結(jié)果是BBBB。main()inta=0,b=l;if(a=0)printf("AAAA,");if(b=3)printf("BBBB");4ヽa=l,b=2,c=3,d=4,則表達(dá)式:a<b?a:c<d?a:d的結(jié)果是丄。三、編程題1、輸入三個(gè)整數(shù)a,b,c,要求按由小到大的順序輸出。2、給出某學(xué)生的百分制成績,要求輸出A、B、C、D、E五個(gè)等級。90分以上為A級,80-89分為B級,70-79分為C級,60-69分為D級,60分以下為E級。要求:3)用if語句編寫程序。(2)用switch語句編寫程序。3、有一個(gè)函數(shù)-X (X<1)y= y2x-l (l^x<10)^3x-ll (x210)寫ー程序,要求輸入x,輸出y的值。第5章:循環(huán)結(jié)構(gòu)ー、選擇題1、有以下程序,程序運(yùn)行后的輸出結(jié)果是(D)omain(){inti=1,sumニ〇;while(i<=4)sum=sum+i;i=i+l;printf(“刎、n",sum);}A)4 B)5C)1OD)死循環(huán)2、執(zhí)行下面程序片段的結(jié)果是(B)。intx=23;do{printf(t4%2d,\x-);}while(!x);A)打印出321 B)打印出23C)死循環(huán) D)其它結(jié)果3、執(zhí)行語句for(i=3;i>0;i-);i一;后,變量i的值是(0。A)0 B)10 0-1D)14、若有如下程序段,其中s、a、b、c均已定義為整型變量,且a、c均已賦值(c大于0)s=a;for(b=l;b<=c;b++)s+=l;則與上述程序段功能等價(jià)的賦值語句是(B)oA)s=a+b;B)s=a+c;C)s=s+c;D)s=b+c;5、有以下程序,程序運(yùn)行后的輸出結(jié)果是(〇〇main(){intk=4,n=0;for(;n<k;){n++;if(n%3!=0)continue;k—;printf("%d,%d\n”,k,n);A)1,1B)2,2C)3,3D)4,46、執(zhí)行下面程序片段的結(jié)果是(A)。intx;fc)r(x=3;xv6;x++)printf((x%2)?(4<**%d,,):(,,##%d\n,,),x);A)**3##4 B)##3**5 **4##5C)##3**4 D)**3##4**5 ##57、執(zhí)行下面程序片段的結(jié)果是(D)。#include<stdio.h>main(){inta,b;for(a=l,b=1;a<=100;a++)if(b<=20)break;if(b%3==l)b+=3;continue;b-=5;printf(k4%d\n,,,a);A)7 B)8 C)9 D)18、有以下程序,若運(yùn)行時(shí)輸入3.62.4<冋車,,則輸出的結(jié)果是()?#include<math.h>#include<stdio.h>main(){floatx,y,z;scanf(<4%f%f;&x,&y);z=x/y;while(l)if(fabs(z)>1.0)x=y;y=z;z=x/y;elsebreak;printfC4%f\n*\y);}A)1.500000 B)1.600000C)2.000000 D)2.4000009、運(yùn)行以下程序,如果從鍵盤上輸入china#〈回車〉,則輸出結(jié)果是(C),A)2,0B)5,0C)5,5D)2,5#include<stdio.h>main(){intvl=0,v2=0;charch;while((ch二getchar())!='#')switch(ch){case'a':;case、h':;default:;vl++;case’〇':;v2++;print("%d,%d\n",vl,v2);10、ン以下程序,執(zhí)行后輸出的結(jié)果是(A)omain(){inti=0,s=0;do{if(i%2){i++;continue;}i++;s+=i;while(i<7);printf("%d\n",s);A)16B)12C)28D)2111、以下程序的輸出結(jié)果是(B)o#include<stdio.h>main(){inti=0,a=0;while(i<20){for(;;){if((i%10)==0)break;elsei—;i+=ll;a+=i;printh(線d\n”,a);A)21B)32C)33D)1112、有以下程序,執(zhí)行后輸出的結(jié)果是(A)omain(){inti;for(i=0;i<3;i++)

switch(i){case1:printf("%d”,i);case2:printf("%d",i);default:printf("%d",i);A)011122B)012C)012020D)12013、有以下程序,若要使程序的輸出值為2,則應(yīng)該從鍵盤給n輸入的值是(B)。main(){ints=0,a=l,n;scanf("%d",&n);do{s+=l;a=a-2;}while(a!=n);printf(%s);}A)-1B)-3C)-5D)0二、填空題1、以下程序的輸出結(jié)果是力。main(){ints,i;for(s=0,i=l;i<3;i++,s+=i);printfs);)2、閱讀下面程序,程序的結(jié)果是2丄00main(){inti=7;for(i=2;i>0;i--)printf("%d,”,i);printf("%d'',i);}3、閱讀下面程序,程序的結(jié)果是144。main(){inti,j,m=0;for(i=2;i<=10;i+=4)for(j=3;j<=4;j++){m++;i++;)printf("%d,%d",i,m);)4、閱讀下面程序,程序的結(jié)果是1978。main(){intj,a=2,n=4;longs=O,t=O;for(j=O;j<n;j++)t=t*10+a;s=t;for(j=l;j<n-l;j-H-){t=t/10;s=s-t;}printf(,,%d,,,s);5、以下程序的功能是:按順序讀入10名學(xué)生4門課程的成績,計(jì)算出每位學(xué)生的平均分并輸出,程序如下:main(){intn,k;floatscore,sum,ave;sum二〇.0;for(n=l;n<=10;n++)for(k=l;k<=4;k++){scanf('%f”,&score);sum+=score;}ave=sum/4.0;printf("NO%d:%f\n",n,ave);}上述程序運(yùn)行后結(jié)果不正確,調(diào)試中發(fā)現(xiàn)有一條語句出現(xiàn)在程序的位置不正確。這條語句是〇三、改錯(cuò)題1、下列程序是計(jì)算如下公式的值1t=l 2例如,若輸入5,則應(yīng)輸出ー〇.283333?在程序中有2處錯(cuò)誤(每個(gè)注釋行下有一處錯(cuò)誤),請改正,使它能計(jì)算出正確結(jié)果。注意:不得增行或刪行,也不得改變程序結(jié)構(gòu)。4include<stdio.h>main()(inti,m;doublet=l.0;/*******found***********/scanf(v,&m);/*******found**********/for(i=2;i<=m;i++)t=l.0-1/1;printf( ,t);)改正后:#include"stdio.h"voidmain()(inti,m;doublet=l.0;scanf("刎",&m);for(i=2;i<=m;i++){t-=1.0/i;TOC\o"1-5"\h\zprintf t);2、下列程序是求出以下分?jǐn)?shù)序列的前n項(xiàng)之和。2 3 5 8 13 211 2 3 5 8 13例如,若"例則應(yīng)輸出8.3916670在程序中有2處錯(cuò)誤(每個(gè)注釋行下有一處錯(cuò)誤),請改正,使它能計(jì)算出正確結(jié)果。注意:不得增行或刪行,也不得改變程序結(jié)構(gòu)。#include<stdio.h>main(){inta=2,b=l,c,k,n;doubles=0.0;/*******fotind***********/scanf刎”,&n);for(k=l;k<=n;k++){s=s+a/b;/*******found**********/c=a;a+=b;b+=c;printf("s=%f”,s);正確寫法:#include"stdio.h"voidmain()(inti,t,n;floata=2,b=l,s=0;scanf("%d",&n);for(i=l;i<=n;i++){s=s+a/b;t=a;a=a+b;/*將前ー項(xiàng)分子與分母之和作為下ー項(xiàng)的分子?/b=t;/*將前ー項(xiàng)的分子作為下ー項(xiàng)的分母?/printf("s=%f\n”,s);3、下列程序是求正整數(shù)num的各位上的數(shù)字之積。例如,輸入252,則輸出20:若輸入202(則輸出〇。在程序中有2處錯(cuò)誤(每個(gè)注釋行下有一處錯(cuò)誤),請改正,使它能計(jì)算出正確結(jié)果。注意:不得增行或刪行,也不得改變程序結(jié)構(gòu)。#include<stdio.h>main()(intnum;/*******found***********/longk;scanf(w%d”,&num);do{k*=num%10;/*******found**********/num\=10;while(num);printf(wk=%dw,k);改正后:#include"stdio.h"voidmain()intnum;longk=1;scanf("%d",&num);do{k*=num%10;num/=10;}while(num);printf("k=%d",k);}四、編程題1、請編寫ー個(gè)程序,程序的功能是:從鍵盤輸入ー個(gè)整數(shù)叫求出1到m(含m)能被7或11整除的所有整數(shù),并計(jì)算出這些數(shù)的個(gè)數(shù)。例如:如果m為50,則程序輸出7、11、14、21、22、28、33、35、42、44、49共11個(gè)數(shù)。#include"stdio.h"voidmain()inti,m;scanf(を%d”,&m);for(i=l;iく=m;i++){if((i%7==0)II(i%ll==0)){printf("%d",i);2、請編寫ー個(gè)程序,程序的功能是:打印以下圖案****#include"stdio.h"voidmain()inti,j;for(i=l;i<=4;i++){for(j=l;j<=2*i-l;j++){

printf(ヽ");printf('\n");********#include“stdio.h"voidmain()(inti,j,k;for(i=l;i<=3;i++){for(j=l;j<=3-i;j++){

printfC");)for(k=l;k<=2*i-l;k++){printf(〃?");)printf("\n");)for(i=l;iく=2;i++){for(j=l;j<-i;j++){printfCつ;)for(k=l;k<=5-2*i;k++){printf(〃*?);}printf('\n");3、請編寫ー個(gè)程序,程序的功能是:求Sn=a+aa+aaa+??,+aaa,,,a,最后ー項(xiàng)為n個(gè)a,其中a是ー個(gè)數(shù)字。例如:a為2、n為5時(shí),則S5=2+22+222+2222+22222o要求a和n都要從鍵盤輸入。#include“stdio.h"voidmain()inta,n,i=l;longsn=0,tnニ〇;scanf("%d,%d",&a,&n);printf("a=%d,n=%d\n”,a,n);while(i<=n)tn=tn+a;sn=sn+tn;a=a*10;i++;printf("a+aa+???=%ld\n”,sn);第6章:數(shù)組ー、選擇題1、以下能正確定義一維數(shù)組的選項(xiàng)是(B).A)intnum(5*2);B)intnum[5*2];C)intlong[10]; D)intnum(10);2、以下不能正確定義二維數(shù)組的選項(xiàng)是(D)oA)inta[2][2]={{1},{2}};B)inta[][2]={l,2,3,4};C)inta[2][2]={{1},2,3};D)inta⑵ロ={{1,2},{3,4}};3、下列選項(xiàng)中不正確的語句組是(C)A)chars[8]={,B',7,'Y};chars[8]={"Beijing"};C)chars[8];s=“Beijing”;D)chars[]={"Beijing"};4、有以下程序,執(zhí)行后輸出結(jié)果是(C)。main()intm[3][3]={1,4,7,2,5,83,6,9);inti,j,k=2;for(i=0;i<3;i++)printf(n%du,m[k][i]);A)456B)258C)369D)7895、若以下說明,則數(shù)值為4的表達(dá)式是(D)ointa[12]={l,2,3,4,5,6,7,8,9,10};charc='a',d,g;A)a[g-c]B)a[4] C)a[*d'-'c']D)d-c]6、有以下程序,執(zhí)行后輸出的結(jié)果是(D)。main()intp[7]={ll,13,14,15,16,17,18},i=0,k=0;while(i<7&&p[i]%2){k=k+p[i];i++;printf("%d\n”,k);A)58B)56C)45D)247、有以下程序,程序運(yùn)行后的輸出結(jié)果是(B)omain(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][1];printf("%d\n',s);A)11B)19C)13D)208、有以下程序,程序運(yùn)行后的輸出結(jié)果是(D)o#include<stdio.h>#include<string.h>main()charw[][10]={“ABCD",”EFGH""IJKL",“MNOP”};intk;for(k=l;k<3;k++)printf(w%s\nw,&w[k][k]);A)ABCDB)ABCDC)EFGD)FGHFGH EFG JKKLKL IJ 0M9、當(dāng)執(zhí)行下列程序時(shí),如果輸入ABC,則輸出結(jié)果是(A)o#include<stdio.h>#includeくstring.h>main()charss[10]=”12345”;gets(ss);strcat(ss,6789");printf("%s\n",ss);A)ABC6789 B)ABC67C)12345ABC6 D)ABC4567810、有以下程序,程序運(yùn)行后的輸出結(jié)果是(A)〇#include<stdio.h>#include<string.h>main()chararr[2][4];strcpy(arr,Myou);strcpy(arr[1],"me");arr[0][3]= ;printf(a%s\n",arr);A)you&meB)youC)meD)err11、有以下程序,程序運(yùn)行后的輸出結(jié)果是(C)〇main()inta[3][3]={1,3,5,7,9,11,13,15,17),sum=0,i,j;for(i二〇;iく3;i++)for(j=0;j<3;j++)a[i][j]=i+j;if(i==j)sum=sum+a[i][j];printf("sum=%d",sum);A)sum=26B)sum=lC)sum=6D)sum=2512、有以下程序,程序運(yùn)行后的輸出結(jié)果是(B)omain()inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+l)];//026for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);

A)20 B)21 C)22 D)2313、有以下程序,程序運(yùn)行后的輸出結(jié)果是(A)omain(){chars[10]二”12134211”;intv[4]={0,0,0,0},k,i;for(k=0;s[k];k++)(switch(s[k])caseI9:i=0;break;casecasecaseI9:i=0;break;casecasecase'4':i=l;break;:i=2;break;:i=3;break;v[i]++;)for(k=0;k<4;k++)printf("%d99,v[k]);)A)4211B)0008 04678D)888814、以下程序的輸出結(jié)果是(C)。main(){ int i,x[3][3]={1,2,3,4,5,6,7,8,9);for(i=0;i<3;i++)printf(*%d,*,x[i][2-i]);A)1,5,9B)1,4,7C)3,5,7D)3,6,9(15)以下程序的輸出結(jié)果是(A)omain(){ inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=l;i<3;i++){for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);A)18B)19C)20D)2116、以下程序的輸出結(jié)果是(A)。main()inta[4][4]={{l,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0|[3],a[l][2],a[2][l],a[3][0]);A)0650B)1470C)5430D)輸出值不定17、以下程序的輸出結(jié)果是(B)。#include<stdio.h>#include<string.h>#include<ctype.h>main()charst[20]=Hhello\0\t\\M;printf(%d%d\n'\strlen(st),sizeof(st));A)99 B)520C)1320D)202018、以下程序的輸出結(jié)果是(B)。main0intb[3][3]={0,1,2,0,1,2,0,l,2},i,j,t=l;for(i二〇;iく3;i++)for(j=i;j<=i;j++)t=t+b[i][b[j][j]];printf("%d\n”,t);A)3B)4C)1D)919、有以下程序main()intaa[4][4]={{l,2(3,4},{5,6>7,8},{10,2},{4,2,9,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][1];printf("籾、n”,s);程序運(yùn)行后的輸出結(jié)果是(B).A)11B)19〇!3D)20二、填空題1、若已定義:inta[10],i;,以下fun函數(shù)的功能是:在第一個(gè)循環(huán)中給前10個(gè)數(shù)組元素依次賦1、2、3、4、5、6、7、8、9、10:在第二個(gè)循環(huán)中使a數(shù)組前10個(gè)元素中的值對稱折疊,變成1、2、3、4、5、5、4、3、2、1。請?zhí)羁铡un(inta[]){inti;for(i=l;i<10;i++)=i;for(i=0;i<5;i++) =a[i];}a[i]=i+1:a[9—i]=a[i];2、以下程序的輸出結(jié)果是abcー〇main()(charsロニabcdef”;s[3]=‘、0';printf("%s\n”,s);)3、程序的功能是使ー個(gè)字符串按逆序存放,請?zhí)羁铡?include<stdio.h>#include<string.h>#include<ctype.h>main()(charstr[]={ttabcdefghijF,},m;inti,j;for(i=0,j=strlen(str);i<;i++,j-){m=str[i];str[i]=;str[j-l]=m;)printf("%s\n",str);stHen(str1/2,_LStf[j-I]4、下列程序的輸出結(jié)果是CDABC—0#include<string.h>#include<ctpye.h>main()charb[30];strcpy(&b⑼JCH');strcpy(&b[1],MDEF*);strcpy(&b[2],,,ABC,);primf("%s\n”,b);5、用起泡法對10個(gè)數(shù)據(jù)進(jìn)行排序,請?zhí)羁?讓程序能正確運(yùn)行。main(){inta[ll],i,j,t;printf(**input10numbersiW);for(i=l;i<ll;i++)scanf(*'%d,,,&a[i]);for(j=l;j<10;j++)for()if(a[i]>a[i+l])t=a[i];a[i]=a[i+l];a[i+l]=t;printf("thesortednumbers:\n^^);for(i=l; ;i++)printf(**%d,,,a[i]);6、矩陣轉(zhuǎn)置,請?zhí)羁?讓程序能正確運(yùn)行。main(){inta[2H3]={1,2,3,4,5,6};intb[3][2],ij;printf("arraya:\rT);for(i=0;i<=l;i++){for(j=0;j<=2;j++){ =a[i皿;printf("arrayb:\n");for(i=0;i<=2;i++){for(j=0;j<=lj++)printf("%5d”,b[i]UD;7、函數(shù)YangHui的功能是把楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,形式如下L133114641.其構(gòu)成規(guī)律是:(1)第0列元素和主對角線元素均為1(2)其余元素為其左上方和正上方元素之和(3)數(shù)據(jù)的個(gè)數(shù)每行遞增1請將程序補(bǔ)充完整。#defineN6voidyanghui(intx[N][N]){intiJ;x[0][0]=l;for(i=l;i<N;i++){x[i][0]==1;for(j=l;j<i;j++)x[i][j]=;})楊輝三角:inti,j,x[N][N];x[0][0]=l;for(i=l;i<N;i++){x[i][0]=x[i][i]=l;for(j=l;j<i;j++){x[i][j]=x[i-l][j-1]+x[i-l][j];))for(i=0;i<N;i++){for(j=0;j<=i;j++){printf(*%d*,x[i][j]);printf('\n");8、程序的功能是:例如輸入字符串:abcl23edf456gh,執(zhí)行程序后輸出:123456,即將字符串中的數(shù)字字符輸出。請?zhí)羁铡?include<stdio.h>#include<ctype.h>main(){chars[80],d[80];inti,j;gets(s);for(i=j=0;s[i]!=\0*;i++)if(){d[j]=s[i];j++;}d[j]=、0';puts(d);、“>=’〇'&&sHk='9'第7章:函數(shù)ー、選擇題1、若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯(cuò)誤的是A)函數(shù)調(diào)用可以作為獨(dú)立的語句存在B)函數(shù)調(diào)用可以作為ー個(gè)函數(shù)的實(shí)參〇函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中D)函數(shù)調(diào)用可以作為ー個(gè)函數(shù)的形參2、若有以下程序ttinclude<stdio.h>voidf(intn);main(){voidf(intn);f(5);voidf(intn){printf("d\n”,n);}則以下敘述中不正確的是A)若只在主函數(shù)中對函數(shù)f進(jìn)行說明,則只能在主函數(shù)屮正確調(diào)用函數(shù)fB)若在主函數(shù)前對函數(shù)f進(jìn)行說明,則在主函數(shù)和其后的其它函數(shù)中都可以正確調(diào)用函數(shù)f0對于以上程序,編譯時(shí)系統(tǒng)會提示出錯(cuò)信息:提示對對f函數(shù)重復(fù)說明D)函數(shù)f無返回值,所以可用void將其類型定義為無值型3、有以下函數(shù)定義:voidfun(intn,doublex){ }若以下選項(xiàng)中的變量都已正確定義并賦值,則對函數(shù)fun的正確調(diào)用語句是A)fun(6,2.5);B)k=fun(10,12.5);C)fun(x,n);D)voidfun(n,x);4、有以下程序voidf(intx,inty){intt;if(x<y){t=x;x=y;y=t;}main(){inta=4,b=3,c=5;f(a,b);a=4,b=3,c=5f(a,c);a=5,b=3,c=4f(b,c);a=5,b=4,c=3printf("%d,%d,%d\n",a,b,c);執(zhí)行后輸出的結(jié)果是A)3,4,5B)5,3,4C)5,4,3D)4,3,55、有以下程序fun(inta,intb){if(a>b)return(a);elsereturn(b);main(){intx=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%d\n”,r);程序運(yùn)行后的輸岀結(jié)果是A)3B)6C)8D)126、以下敘述中正確的是A)全局變量的作用域一定比局部變量的作用域范圍大B)靜態(tài)(static)類別變量的生存期貫穿于整個(gè)程序的運(yùn)行期間C)函數(shù)的形參都屬于全局變量D)未在定義語句中賦初值的auto變量和static變量的初值都是隨機(jī)值7、設(shè)有以下函數(shù):f(inta){intb=0;staticintc=3;b++;C++;return(a+b+c);)如果在下面的程序中調(diào)用該函數(shù),則輸出結(jié)果是main(){inta=2,i;foKi=0;iv3;i++)printf(n%d\nM,f(a));A)7B)7C)7D)7891079111378、有以下程序voidfun(int*a,inti,intj){intt;ifg){t=a[i];a[i]=a[j];a[jl=t;fun(a,++i,-j);))main(){int*={1,2,3,4,5,6},i;fun(a,0,5);for(i=0;i<6;i++)printfC%吊,a[i]);執(zhí)行后輸出結(jié)果是A)654321B)432156C)456123D)1234569、有以下程序main(intargc,char*argv[]){intn,i=O;while(argv[l]ロ]!=*\0){n=fun();i++;}printf(M%d\n",n*argc);intfun(){staticints=0;s+=l;returns;ン設(shè)程序編譯、連接后生成可執(zhí)行文件exam.exe,若鍵入以下命令exam123〈回車〉則運(yùn)行結(jié)果為A)6B)8〇3D)410、以下程序運(yùn)行后的輸出結(jié)果是f(intb[],int叫intn)inti,s=0;for(i=m;i<n;i=i+2)s=s+b[i];returns;main(){intx,a[]={l,2,3,4,5,6,7,8,9};x=f(a,3,7);printf("刎、n”,x);A)10B)18C)8D)15二、填空題1、請?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫適當(dāng)內(nèi)容,使程序能正確運(yùn)行。doublemax(doublea,doubleb);main(){doublex,y;scanf("%1f%lf",&x,&y);printf("%lf\n",max(x,y));{return(a>b?a:b);

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論