版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
二級C語言程序設計練習題gj.txt45想洗澡嗎?不要到外面等待下雨;想成功嗎?不要空等機遇的到來。摘下的一瓣花能美麗多久?一時的放縱又能快樂多久?有志者要為一生的目標孜孜以求。少年自有少年狂,藐昆侖,笑呂梁;磨劍數(shù)年,今將試鋒芒。自命不凡不可取,妄自菲薄更不宜。重要說明:本習題所有題目均假設上機環(huán)境為TC2.0,而2008年版最新大綱規(guī)定等級考試上機用VC6.0,這主要對筆試的影響在于int類型所占用的字節(jié),原來TC2.0中int類型為2個字節(jié),而最新VC6.0中int類型占用4個字節(jié),所以以下所有題目涉及int數(shù)據類型占用字節(jié)數(shù)的地方請大家把題目和參考答案按新大綱做相應調整即可,用到int類型數(shù)據但不涉及int占字節(jié)數(shù)的所有地方不必調整。(其實需要調整的地方很少的,請大家自己識別)C語言程序設計習題(全國計算機等級考試)第一章程序設計基本概念[1.1]在TURBOC環(huán)境中用RUN命令運行一個C程序時,所運行的程序的后綴是.[L2]C語言源程序文件的后綴是,經過編譯后,生成文件的后綴是,經過連接后,生成文件的后綴是.[1.3]結構化程序由—、—、—三種基本結構組成。第二章C程序設計的初步知識一、選擇題選項中正確的整型常量是A)12 B)-20 01,000 D)456選項中正確的實型常量是A)0 B)3.1415 00.329*102 D).871[2.3]以下選項中不正確的實型常量是A)2.607E-1 B)0.8103e2C)-77.77D)456e-2
A)abc.cC)MainD)PRINTFA)abc.cC)MainD)PRINTF選項中不合法的用戶標識符是TOC\o"1-5"\h\zA)_123 B)printf C)A$ D)DimC語言中運算對象必需是整型的運算符是A)% B)/ C)! D)**C程序中用作用戶標識符的一組標識符是A)void B)as_b3 C)For D)2cdefine 123 -abc DOWORD If case SIG量已正確定義并賦值,符合C語言語法的表達式是A)a=a+7;B)a=7+b+c,a++C)int(12.3%4)D)a=a+7=c+b敘述中正確的是a是實型變量,C允許進行以下賦值a=10,因此可以這樣說:實型變量允許賦值整型值。在賦值表達式中,賦值號左邊既可以是變量也可以是任意表達式。0 執(zhí)行表達式a=b后,在內存中a和b存儲單元中的原有值都將被改變,a的值已由原值改變?yōu)閎的值,b的值由原值變?yōu)?。D)已有a=3,b=5。當執(zhí)行了表達式a=b,b=a之后,已使a中的值為5,b中的值為3。[2.10]以下敘述中正確的是在C程序中無論整數(shù)還是實數(shù),只要在允許的范圍內都能準確無誤的表示。C程序由主函數(shù)組成。C程序由函數(shù)組成。C程序由函數(shù)和過程組成。[2.11]TURBOC中int類型變量所占字節(jié)數(shù)是A)1B)203D)4[2.12]不合法的八進制數(shù)是A)0B)0280077D)01[2.13]不合法的十六進制數(shù)是A)oxffB)OXabc00x11D)0xl9二、填空題[2.14]若k為int整型變量且賦值11。請寫出運算k++后表達式的值A)和變量的值B)。[2.15]若x為double型變量,請寫出運算x=3.2,++x后表達式的值A)和變量的值B).[2.16]函數(shù)體由符號—開始,用符號結束。函數(shù)體的前面是部分,其后是 部分。[2.17]C語言中的標識符可分為、、和預定義標識符三類。[2.18]在C語言程序中,用關鍵字定義基本整型變量,用關鍵字定義單精度實型變量,用關鍵字定義雙精度實型變量。[2.19]把al、a2定義成單精度實型變量,并賦初值1的定義語句是。[2.20]C程序中定義的變量,代表內存中的一個.⑵21]表達式3.5+1/2的計算結果是,[2.22]對以下數(shù)學式,寫出三個等價的C語言表達式、、.aibc[2.23]表達式s=10應當讀做“二機中內存儲器的最小存儲單位稱,其中能容納的數(shù)是。一個字節(jié)包含 一個二進制位。在一個字節(jié)中能存放的最大(十進制)整數(shù)是,它的:進制數(shù)的形代是 ;最?。ú愤M制)整數(shù)是,它的二進制數(shù)的形式是。[2,26]當計算機用兩個字節(jié)存放一個整數(shù)時,其中能存放的最大(十進制)整數(shù)是、最?。ㄊM制)整數(shù)是,它的二進制數(shù)的形式是?[2.27]在C語言中整數(shù)可用進制數(shù)、進制數(shù)和進制數(shù)三種數(shù)制表示。三、上機改錯題(讀者最好在TURBOC環(huán)境下上機試一試,以便熟悉出錯信息)。[2.28]請指出以下C程序的錯誤所在ttincludestdio.h;main(); /*mainfunction*/floatr,s;/*/*risradius*/,/*sisareaofcircular*/*/r=5.0;s=3.14159*r*r;printf("%f\n",s)[2.29]請指出以下C程序的錯誤所在^includestdio.hmain/*mainfunction*/(floata,b,c,v;/*a,b,caresides,visvolumeofcube*/a=2.0;b=3.0;c=4.0v=a*b*c;printf(a%f\n”,v)第三章順序結構選擇題、b、c、d、都是int類型變量且初值為0,以下選項中不正確的賦值語句是A)a=b=c=d=100;B)d++;C)c+b;D)d=(c=22)-(b++);選項中不是C語句的是A){inti;i++;printf(w%d\nM,i);}B):C)a=5,c=10 D){;}[3.3]以下合法的C語言賦值語句是A)a=b=58B)k=int(a+b); C)a=58,b=58D)—i;程序的輸出結果是A)0B)1C)3D)不確定的值main(){intx=10,y=3;printf("%d\n",y=x/y);}量已正確說明為int類型,要給a、b、c輸入數(shù)據,以下正確的輸入語句是A)read(a,b,c); B)scanf(u%d%d%dM,a,b,c);C)scanf("%D%D%Dn,&a,%b,%c);D)scanf(“%d%d%d",&a,&b,&c);量已正確說明為float類型,要通過以下賦值語句給a賦予10、b賦予22、c賦予33,以下不正確的輸入形式是A)10 B)10.0,22.0,33.0C)10.0 D)10 2222 22.033.0 3333scanf(“%f%f%f”,&a,&b,&c);[3.7]若變量已正確定義,要將a和b中的數(shù)進行交換,下面不正確的語句組是A)a=a+b,b=a-b,a=a-b; B)t=a,a=b,b=t;C)a=t;t=b;b=a; D)t=b;b=a;a=t;量已正確定義,以下程序段的輸出結果是A) 輸出格式說明與輸出項不區(qū)配,輸出無定值 B)5.1705.168 D)5.169X=5.16894;Printf(u%f\nw,(int)(x*1000+0.5)/(float)1000);以下程序段,c3中的值是A)0 B)l/2 00.5 D)1intcl=l,c2=2,c3;c3=cl/c2;[3.10]若有以下程序段,其輸出結果是
A)3,0,-10B)0,0,50-10,3,-10 D)3,0,3A)3,0,-10B)0,0,50-10,3,-10 D)3,0,3inta=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf(**%d,%d,%d\n",a,b,c);[3.11]當運行以下程序時,在鍵盤上從第一列開始輸入9876543210<CR>(此處〈CR>代表Enter),則程序的輸出結果是A)a=98,b=765,c=4321 B)a=10,b=432,c=8765C)a=98,b=765.000000,c=4321.000000 D)a=98,b=765.0,c-4321.0main(){inta;floatb,c;scanf(“%2d%3f%4fn,&a,&b,&c);printf("\na=%d,b=%f,c=%f\n”,a,b,c);}[3.12]以下程序的輸出結果是A)a=%2,b=%5 B)a=2,b=5C)a=%%d,b=%%d D)a=%d,b=%dmain(){inta=2,b=5;printf(<<a=%%d,b=%%d\n,',a,b);}[3.13]若int類型占兩個字節(jié),則以下程序段的輸出是B)-1,32767 C)-1,32768 D)-l,65535inta=T;printf(u%d,%u\n",a,a);[3.14]以下程序段的輸出是A)*496* B)*496* 0*000496*D)輸出格式符不合法intx=496;Printf(K*%06d*\n”,x);程序段的輸出是A)|3.1415|B)3.01C)| 3|D)I3.Ifloata=3.1415;Printf(a|%6.Of|\nw,a);[3.16]以下程序段的輸出是A)12345.67800 B)112345.67801C)112345.678001 D)112345.678printf(a%10.5f|\nw,12345.678);[3.17]以下程序段的輸出是A)*0000057.66* B)* 57.66*C)*0000057.67* D)* 57.67*floata=57.666;pirntf("%010.2f\n>,,a);18若從終端輸入以下數(shù)據,要給變量c賦以283.19,則正確的輸入語句是scanf(u%f",c);B)scanf(u%8.4f",&c);scafn("%6.2f”,&c);D)scanf(w%8",&c);283.1900<CR>[3.19]若變量已正確說明,要求用以下語句給a賦予3.12、給b賦予9.0,則正確的輸入形式是(口代表空格)A)3.12UU9.0<CR> B)a=UU3.12b=UUU9〈CR>C)a=3.12,b=9<CR> D)a=3.12UU,b=9UUUU〈CR>scanf(ua-%f,b=%f",&a,&b);程序的輸出結果是A)98 B)89C)66 D)以上三個都不對^include"math,h”main(){doublea=-3.0,b=2;printf(u%3.Of%3.Of\n**,pow(b,fabs(a)),pow(fabs(a),b));)填空題以下定義,請寫出以下程序段中輸出語句執(zhí)行后的輸出結果。(1)(2)(3)inti=-200,j=2500;printf("(1)%d%d",i,j);printf("(2)i=%d,j=%d\nw,i,j);printf(u(3)i=%d\nj=%d\nw,i,j);[3.22]變量i、j、k已定義為int類型并有初值0,用以下語句進行輸入時scanf("%d",&I);scanf(u%dw,&j);scanf("%dw,&k);3<CR><CR>表示Enter鍵則變量i、j、k的值分別是、、o語句在語法上被認為是??照Z句的形式是。C語句的最后用結束。程序段,要求通過scanf語句給變量賦值,然后輸出變量的值。寫出運行時給k輸入100,給a輸入25.81,給x輸入1.89234時的三種可能的輸入形式、、。intk;floata;doublex;scanf(%d%f%lfw,&k,&a,&x);pirntf("k=%d,a=%f,x』f\n”,k,a,x):[3,26]以下程序段的輸出結果是intx=0177;printf("x=%3d,x=%6d,x=%6o,x=%6x,x=%6u\n,*,x,x,x,x,x);[3,27]以下程序段的輸出結果是。intx=0177;printf("x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%%06d\n",x,x,x,x,x);[3.28]以下程序段的輸出結果是doublea=5.13.789215;printf("a=%8.6f,a=%8.2f,a=%14.8f,a=%14.81f\nM,a,a,a,a);編程題和改錯題[3.29]以下程序多處有錯。要按下面指定的形式輸入數(shù)據和輸出數(shù)據時,請對該程序做相應的修改。main{doublea,b,c,s,v;printf(inputa,b,c:\n);scanf(w%d%d%d",a,b,c);s=a*b; /*計算長方形面積*/v=a*b*c; /*計算長方體體積*/printf("%d%d%dn,a,b,c);printf("s=%f\n",s,"v=%d\n”,v);}當程序執(zhí)行時,屏幕的顯示和耍求輸入形式如下:inputa,b,c:2.02.03.0 此處的2.02.03.0是用戶輸入的數(shù)據a=2.000000,b=2.000000,c=3.000000 此處是要求的輸出形式s=4.000000,v=12.000000[3.30]編寫程序,把560分鐘換算成用小時和分鐘表示,然后進行輸出。[3.31]編寫程序,輸入兩個整數(shù):1500和350,求出它們的商數(shù)和余數(shù)并進行輸出。[3.32]編寫程序,讀入三個雙精度數(shù),求它們的平均值并保留此平均值小數(shù)后一位數(shù),對小數(shù)點后第二位數(shù)進行四舍五入,最后輸出結果。[3.33]編寫程序,讀入三個整數(shù)給a、b、c,然后交換它們中的數(shù),把a中原來的值給b,把b中原來的值給c,把c中原來的值給a。第四章選擇結構一、選擇題運算符中優(yōu)先級最高的運算符是A)! B)% C)-= D)&&運算符中優(yōu)先級最低的運算符是A)|| B)!= C)<= D)+示關系x>=y〉=z,應使用的C語言表達式是A)(x>=y)&&(y>=z) B)(x>=y)AND(y>=z)C)(x>=y>=z) D)(x>=y)&(y>=z)、b和c都是int型變量,且a=3,b=4,c=5;則以下的表達式中,值為。的表達式是A)a&&bB)a<=bC)a||b+c&&b-cD)!((a<b)&&!c||D[4.5]以下程序的輸出結果是:A)0 B)1 C)2 D)3main(){inta=2,b=-l,c=2;if(a<b)if(b<0)c=O;elsec+=l;printf("%d\n",c);)程序的輸出結果是:mainO{intw=4,x=3,y=2,z-1;printf(“%d\n”,(w〈x?w:z〈y?z:x));)行以下程序時從犍盤上輸入3和4,則輸出結果是A)14 B)16 018 D)20main(){inta,b,s;scanf(**%d%d",&a,&b);s=a;if(a<b)s=b;s*=s;printf("%d\n",s);}的程序片段所表示的數(shù)學函數(shù)關系是-1(x<0)y=0(x=0)l(x>0)1(x<0)y=-1(x=0)0(x>0)y=-1(x=0)l(x>0)-l(x<0)D)y=l(x=O)0(x>0)y="l;if(x!=0){if(x>0)y=l;}elsey=0;以下程序后,輸出A)ttfttttt B)&&&&0 d)有語法錯誤不能通過編譯main(){intk=-3;if(k<=0)printf("****\n”);elseprintf( ;)[4.10]若a和b均是正整數(shù)型變量,以下正確的switch語句是A) switch(pow(a,2)+pow(b,2)) (注:調用求基的數(shù)學函數(shù)){case1:case3:y=a+b;break;case0:case5:y=a-b;B)switch(a*a+b*b)B)switch(a*a+b*b);{case3:case1:y=a+b;break;case0:y=b-a;break;Iswitcha{default:x=a+b;:y=a-b;break;:y=a*d;break;]switch(a+b){caselO:x=a+b;break;easel1:y=a-b;break;)二、填空題C語言中用表示邏輯值“真”,用表示邏輯值“假”。C語言中的關系運算符按優(yōu)先級別是、.[4.13]C語言中的邏輯運算符按優(yōu)先級別是、、.[4.14]C語言中的關系運算符和邏輯運算符的優(yōu)先級別是_、、 o[4.15]C語言中邏輯運算符的優(yōu)先級高于算術運算符。[4,16]將下列數(shù)學式改寫成C語言的關系表達式或邏輯表達式A), 和B) A)a=b或a<cB)|x|>4出以下程序的輸出結果—。main(){inta=100;if(a>100)printf(<<%d\n>>,a>100);elseprintf(u%d\nw,a<=100);)[4.18]請寫出與以下表達式等價的表達式A)B).A)!(x>0)B)!0[4.19]當a=l,b=2,c=3時,以下if語句執(zhí)行后,a、b、c中的值分別為if(a>c)b=a;a=c;c=b;[4.20]若變量巳正確定義,以下語句段的輸出結果是一 一。x=0,y=2,z=3;switch(x){case0:switch(y=2){case1:printf(;break;case2:printf(u%99);break;}switch(z){case1:printf("$");printf("*");break;default:printf(;[4.21]請將以下語句改寫成switch語句。if(a<30)m=l;elseif(a<40)m=2;elseif(a<50)m=3;elseif(a<60)m=4;elsem=5;并輸入當前的日期(年:[4.22]編寫程序,輸入一位學生的生日(年:yO、月:mO、日:dO);yl、月:ml、日:dl);輸出該生的實足年齡。并輸入當前的日期(年:程序,輸入一個整數(shù),打印出它是奇數(shù)還是偶數(shù)。程序,輸入a、b、c三個數(shù),打印出最大者。函數(shù):x(-5<x<0)y=x-1(x=0)x+1(0<x<10)編寫一程序,要求輸入x的值,輸出y的值。分別用(1)不嵌套的if語句(2)嵌套的if語句(3)if-else語句(4)switch語句第五章循環(huán)結構一.選擇題程序段的輸出結果是A)9B)1C)11D)10intk,j,s;for(k=2:k<6;k++,k++){*1;for(j=k;j<6;j++)s+=j;iprintf("%d\n",s);程序段的輸出結果是A)12 B)15C)20D)25inti,j,m=0;for(I=l;I<=5;I+=4)for(j=3;j<=19;j+=4)m++;printf("%d\n",m);程序段的輸出結果是A)10B)9C)10 D)99 8 9 8intn=10;while(n>7){n—;printf("%d\n",n);}.程序段的輸出結果是A)1 B)3001-2D)死循環(huán)intx=3;do{printf(w%3dw,x-=2);}while(!(-x));程序的輸出結果是A)15B)14C)不確定D)0main(){inti,sum;for(i=l;i<6;i++)sum+二sum;printf("%d\n",sum);)程序的輸出結果是A)741B)8520963D)875421main(){inty=10;for(;y>0;y—)if(y%3=0){printf(u%dn,-y);continue}}是int型變量,以下程序段的輸出結果是A)**3 B)##3 C)##3 D)**3##4##4 **4 **4##5 **5**5 ##5for(x=3;x〈6;x++)printf((x%2)?(“**%d"):(“##%d\n"),x);程序的輸出結果是A)*#*#*#$ B)#*#*#*$C)*#*#$ D)#*#*$main(){inti;for(i=l;i<=5;i++){if(i%2)printf(“*”);elsecontinue;printf(“#”);printf("$\n");敘述正確的是A)do-while語句構成的循環(huán)不能用其他語句構成的循環(huán)代替.B)do-while語句構成的循環(huán)只能用break語句退出0用do-while語句構成循環(huán)時,只有在while后的表達式為非零時結束循環(huán)D)用do-while語句構成循環(huán)時,只有在while后的表達式為零時結束循環(huán)[5,10]以下程序的輸出結果是A)3981B)4284 02668 D)2870main(){intx,i;for(i=l;i<=100;i++){x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)printf("%d",x);}printf(“\n”);)二.填空題行以下程序段后,i的值是一、j的值是一、k的值是inta,b,c,d,i,j,k;a=10;b=c=d=5;i=j=k=O;for(;a〉b;++b)i++;while(a>++c)j++;dok++;while(a>d++);程序段的輸出結果是—intk,n,m;n=10;m=l;k=l;while(k<=n)m*=2;printf("%d\n",m);程序段的輸出結果是一main(){intx=2;while(x--);printf( ,x);)[5,14]以下程序段的輸出結果是—inti=0,sum=l;do{sum+=i++;}while(i<5);printf(唳d\n",sum);[5.15]有以下程序段:s=l.0;for(k=l;k<=n;k++)s=s+l.O/(k*(k+l));printf("%f\n",s);請?zhí)羁?,使下面的程序段的功能完全與之等同。s=0.0;k=0;do{s=s+d;d=1.0/(k*(k+l));)while();printf("%f\n",s);[5.16]以下程序的功能是:從鍵盤上輸入若干學生的成績,統(tǒng)計并輸出最高成績和最低成績,當輸入負數(shù)時結束輸入。main(){floatx,amax,amin;scanf("%f",&x);amax=x;amin=x;while(){if(x>amax)amax=x;if()amin=x;scanf("%f",&x);}printf("\namax=%f\naniin=%f\n”,amax,amin);j三.編程題[5,17]編寫程序,求1-3+5-7+…-99+101的值。[5.18]編寫程序,求e的值。e?l+l/l!+l/2!+l/3!+..+l/n!用循環(huán),計算前50項。(2)用循環(huán),要求直至最后一項的值小于10-4[5.19]編寫程序,輸入從公元1000年至2000年所有閏年的年號。每輸出3個年號換一行。判斷公元年是否為閏年的條件是:(1)公元年數(shù)如能被4整除,而不能被100整除,則是閏年;(2)公元年數(shù)能被400整除也是閏年。[5.20]編寫程序,打印以下圖:*******第六章字符型數(shù)據一、選擇題[6.1]C語言中的簡單類型有A)整型,實型,邏輯型B)整型,實型,字符型C)整型,字符型,邏輯型D)整型,實型,邏輯型,字符型[6.2]C語言中,字符型(char)數(shù)據在微機內存中的存儲形式是A)反碼B)補碼C)EBCDIC碼D)ASCH碼[6.3]設有語句chara='\72';,則變量AA)包含1個字符B)包含2個字符C)包含3個字符D)說明不合法[6.4]C語言中不合法的字符常量是A)'\OXFF'B)'65' C)'&' D)'\28'[6.5]C語言中不合法的字符串常量是B)'Y=' C)"\n'n"D)"ABCD\X6d”[6.6]判斷char型變量C是否為大寫字母的最簡單且正確的表達式是A)4A'<=C=Z B)(C>='A')&(C<='Z')C)CA,<=C)ANDC7!>=C)D)(C>=A')4&(C<=Z*)[6.7]以下程序的輸出結果是A)因輸出格式不合法,無正確輸出B)65,90C)A,YD)65,89C)A,Y{charcl=,a',c2-y,;printf(*%d,%d\n*,cl,c2);]程序的輸出結果是A)AB)a C)Z D)zmain(){charx=,a,x=(x>='A'&&x<=Z,)?(x+32):x;printf("%c\n",x);}程序的輸出結果是A)67,C B)B,C C)C,DD)不確定的值main(){char chi,ch2;chl='A'+'5'-'3';ch2=a'+'5'-'3';printf(*%d,%c\n*,ch2);)[6.10]對以下程序,從第一列開始輸入數(shù)據:2473<CR>,<CR>代表ENTER,程序的輸出結果是A)668977B)668966 066778777D)6688766#include"stdio.h"while((c=getchar())!=,\n){switch(c」2'){case0:putchar(c+4);putchar(c+4);break;putchar(c+3);default:putchar(c+2);break;}}prinf(*\n*);[6.11]若變量已正確說明,要求用以下語句給Cl賦予字符%,給C2賦予字符禮給a賦予2.0,給b賦予4.0,則正確的輸入形式是A)2.0%4.0#<CR> B)2.0%4.0#<CR>C)2%4#<CR> D)2%4<CR>scanfC%f%c%f%c",&a,&cl,&b,&c2);二、填空題[6.12]EOF的十進制值是.[6.14]調用C語言對字符處理的庫函數(shù)時,在#include命令行中應包含的文件是 .[6.15]若輸入字符A,在以下WHILE語句執(zhí)行后ch的值是.while(ch=getchar()='A');[6.16]若要通過以下語句給a,b,c,d分別輸入字符A,B,C,D,給w,x,y,z分別輸入10,20,30,40,正確的輸入形式是,請用〈CR>代表ENTER鍵.scanf("%d%c%d%c%d%c%d%c”,&w,&a,&x,&b,&y,&c,&z,&d);[6.17]若有以下說明和輸入語句,要求給cl,c2輸入字符A,B,給al,a2輸入7.29和101.298,從鍵盤正確輸入數(shù)據的形式是charcl,c2;floatal,a2;scanf&al,&a2);scanf("%c%c”,&cl,&c2);[6.18]若有以下說明和輸入語句,要求給cl,c2輸入字符A,B,給al,a2輸入7.29和101.298,從鍵盤正確輸入數(shù)據的形式是charcl,c2;floatal,a2;scanf("枇%f%c%f”,&c1,&al,&c2,&a2):[6.19]若有以下說明和輸入語句,要求給cl,c2,c3輸入字符A,B,C,從鍵盤正確輸入數(shù)據的形式.charcl,c2,c3;scanf(*%4c*,&cl);scanf("%4c”,&c2);scanf("%4c”,&c3);三、填空題[6.20]請編寫程序,輸入一行字符(用回車結束),輸出每個字符以及與之對應的ASCII代碼值,每行輸出三對.[6.21]請編寫程序,輸入一行數(shù)字字符(用EOF結束),每個數(shù)字字符的前后都有空格.請編程,把這一行中的數(shù)字轉換成一個整數(shù).例如:若輸入:248 3<CR>則輸出整數(shù):2483.[6.22]請編寫程序統(tǒng)計輸入的行數(shù),輸入用EOF結束.[6.23]請編寫程序統(tǒng)計輸入的一行中小寫字母的個數(shù).[6.24]請編寫輸入以下圖案的程序,圖案的行數(shù)由輸入的值確定.ABBBCCCCCDDDDDDDEEEEEEEEE第七章函數(shù)一、選擇題說法中正確的是A)C語言程序總是從第一個定義的函數(shù)開始執(zhí)行B)在C語言程序中,要調用的函數(shù)必須在main函數(shù)中定義C)C語言程序總是從main函數(shù)開始執(zhí)行
D)C語言程序中的main函數(shù)必須放在程序的開始部分函數(shù)的類型是A)與參數(shù)x的類型相同B)void類型C)int類型 D)無法確定fff(floatx){printf("%d\n",x*x);}函數(shù)調用語句中,含有的實參個數(shù)是A)1 B)2 C)4 D)5func((expl,exp2),(exp3,exp4,exp5));程序的輸出結果是A)11 B)20 C)21 D)31func(inta,intb)intcc=a+b;returnc;)main()intx=6,y=7,z=8,r;r=func((x-,y++,x+y),z-);printf("d\n”,r);)程序的輸出結果是A)-lB)001D)2inti=2,p;P=f(i,i+1);printf(*%d*,p);}intf(inta,intb)intc;c=a;if(a>b)c=l;elseif(a=b)c=O;else c=-l;return(c);}程序的輸出結果是A)0 B)1 C)6D)無定值fun(inta,intb,intc)c=a*b; }main()intc;fun(2,3,c);程序的輸出結果是A)5.500000B)3.000000 C)4.000000D)8.25doublef(intn)inti;doubles;s=l.0;for(i=l;i<=n; i++)s+=l.0/i;returns;}main()inti,m=3;floata=0.0;for(i=0;i<m;i++)a+=f(i);printf(zz%f\n,z,a)L;}二、填空題程序的輸出結果是.unsignedfun6(unsignednum)unsignedk=l;do{ k=*=num%10; num/=10; }while(num);returnk;main()unsignedn=26;printf("%d\n",fun6(n);)程序的輸出結果是.doublesub(doublex,doubley,doublez)y-=1.0;z=z+x;returnz;)main()doublea=2.5,b=9.0;printf("%f\n”,sub(b-a,a,a));)[7.10]以下程序的輸出結果是.funl(inta,intb)intc;a+=a;b+=b;c=fun2(a,b);returnc*c;fun2(inta,intb)intc;c=a*b%3;returnc;}main()intx=ll,y=19;printfC%d\nz,,funl(x,y));}[7.11]下面pi函數(shù)的功能是,根據以下公式返回滿足精度要求的的值.請?zhí)羁?pi/2=l+l/3+l/3*2/5+l/3*2/5*3/7+l/3*2/5*3/7*4/9+...doublepi(doubleeps){doubles=0.0,t=l.0;intn;for(;t>eps;n++){ s+=t;t=n*t/(2*n+l);}return(2.0* );)[7.12]以下函數(shù)用以求x的y次方,請?zhí)羁?doublefun(doublex,inty)
inti;doublez=l;for(i=l;i;i++)z=;returnz;[7.13]以下程序的功能是計算$=SK!.請?zhí)羁?longf(intn)K=1longf(intn)K=1inti;longs;s=;for(i=l;i<=n;i++)s=returns;main()longs;intk,n;scanf(*%d,z,&n);s=;for(k=0;k<=n;k++)s=s+printf("%ld\n",s);三、程序調試和編程題[7.14]以下fun函數(shù)用以判斷n是否是素數(shù),fun函數(shù)中有邏輯錯,請調試改正.fun(intn){intk,yes;for(k=2;k<=n/2;k++)if(n%k==O)yes=O;elseyes=l;returnyes;)[7.15]編寫函數(shù)intmymod(inta,intb)用以求a被b除之后的余數(shù).[7.16]編寫程序求:1T/2+1/3T/4+1/5T/6+1/7-...+l/n[7.17]編寫函數(shù),根據整型形參m的值,計算如下公式的值.t=l-l/2*2-l/3*3-..-l/m*m例如,若m=5,則應輸出0.536389.[7.18]編寫函數(shù)用以求表達式x*x-5*x+4,x作為參數(shù)傳送給函數(shù),調用此函數(shù)求:yl=2*2-5*2+4y2=(x+15)*(x+15)-5*(x+15)+4y3=sinx*sinx-5*sinx+4第八章指針一、選擇題定義:intx,*pb;則在以下正確的賦值表達式是A)pb=&xB)pb=xC)*pb=&xD)*pb=*x程序的輸出結果是A)因變量無定義輸出不定值 B)0C)-1D)1Sinclude"stdio.h"main(){printf("%d\n",NULL);}程序的輸出結果是A)5,2,3B)-5,-12,-7C)-5,-12,-7D)5,-2,-7voidsub(intx,inty,int*z){*z=y-x;}main(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%d,%d,%d\n”,a,b,c);}程序的輸出結果是A)4B)6C)8D)10main()intk=2,m=4,n=6;int*pk=&k,*pm=&m,*p;*(p=&n)=*pk*(*pm);printf("%d\n",n);}指針P的指向如圖&5所示,則表達式*P++的值是A)20B)30C)21D)31a[0]a[l]a⑵ a[3]a[4]1020304050P圖8.5指針P的指向如圖8.5所示,則表達式*++P的值是TOC\o"1-5"\h\zA) 20 B) 30 C) 21 D) 31指針P的指向如圖&5所示,則表達式++*P的值A) 20 B) 30 C) 21 D) 31程序的輸出結果是A) 23 B) 24 C) 25 D) 26voidprtv(int*x){ printf("%d\n”,++*x);}main(){ inta=25;prtv(&a);)程序的輸出結果是A)運行出錯B)100C)a的地址D)b的地址main(){int**k,*a,b=100;j=&b;k=&a;printfC%d\n*,**k);}[8.10]以下程序的輸出結果是A)4,3B)2,3C)3,4D)3,2voidfun(float*a,float*b){floatw;*a=*a+*a;w=?a;*a=*b;*b=w;{floatx=2.0,7=3.0;foaat*px=&x,*p7=&y;fun(px,py);printf("%2.Of,%2.Of\n”,x,y);}[8,11]以下程序的輸出結果是A)9.000000B)1.500000C)8.000000D)10.500000voidsub(floatx,float*y,float*z){*y=*y-l.0;*z二*z+x;}main(){floata=2.5,b=9.0,*pa,*pb;pa=&a;pb=&b;sub(b-a,pa,pa);printf(:%f\n*,a);}[8.12]以下四個程序中不能對兩個整型值進行交換的是main(){inta=10,b=20;swap(&a,&b);swap(int*p,int*q);{int*t,a;t=&a;*t=*p;*p=*q;*q=*t;}mainO{inta=10,b=20;swap(&a,&b);printf("%d%d\n”,a,b);}swap(int*p,int*q);{intt;t=*p;*p=*q;*q=t;}main(){int*a,*b;*a=20,*b=20;swap(a,b);printf("%d%d\n/z,*a,*b);)swap(int*p,int*q){int*t;t=p;p=q;q=t;)main0{inta=10,b=20;int*x=&a,*y=&b;swap(x,y);printf("%d%d\n",a,b);)swap(int*p,int*q){intt;t=*p;*p二*q;*q=t;)二、填空題程序段的輸出結果是.int*var,b;ab=100;var=&ab; ab=*var+10;[8.14]以下程序的輸出結果是.intast(intx,inty,int*cp,int*dp){*cp=c+y;*dp=x-y;}main(){inta,b,c,d:a=4;b=3;ast(a,b,&c,&d);printf("肌i%d\n”,c,d);}[8.15]若有定義:charch;(1)使指針P可以指向變量ch的定義語句是.(2)使指針p可以指向變量ch的賦值語句是.(3)通過指針p給變量ch讀入字符的scanf函數(shù)調用語句是一 .(4)通過指針p給變量ch賦字符的語句是.(5)通過指針p輸出ch中字符的語句是.[8.16]若有圖8.5所示五個連續(xù)的int類型的存儲單元并賦值如圖,且P和s的基本類型皆為int,p已指向存儲單元a[l].(1)通過指針p,給s賦值,使其指向最后一個存儲單元a[4]的語句是—.(2)用以移動指針s,使之指向中間的存儲單元a[2]的表達式是.(3)已知k=2,指針s已指向存儲單元a[2],表達式*(S+k)的值是.(4)指針s已指向存儲單元a[2],不移動指針s,通過s引用存儲單元a[3]的表達式是—.(5)指針s指向存儲單元a[2],p指向存儲單元a[0],表達式s-p的值是(6)若p指向存儲單元a[0],則以下語句的輸出結果是.for(i=0;i<5;i++)printfr%d"(*(p+i));printf("\n");三、編程題[8.17]請編寫函數(shù),其功能是對傳送過來的兩個浮點數(shù)求出和值與差值,并通過形參傳送回調用函數(shù).[8.18]請編寫函數(shù),對傳送過來的三個數(shù)選出最大和最小數(shù),并通過形參傳回調用函數(shù).第九章數(shù)組一、選擇題定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0<=i<=9,則對a數(shù)組元素的引用不正確的是A)a[p-a]B)*(&a[i])C)p[i]D)*(*(a+i))[9.2]以下程序段數(shù)組所有元素輸入數(shù)據,應在下劃線填入的是A)a+(i++)B)&a[i+l]C)a+iD)&a[++i]main(){inta[10],i=0;while(i<10)scanf;程序的輸出結果是A)3B)4 C)1D)2main(){inta[10]={l,2,3,4,5,6,7,8,9,10},*p=a;printfC%d\n*,*(p+2));}程序的輸出結果是A)不確定的值B)3 02D)1main(){intn[2]={0},i,j,k=2;for(i=0;i<k;i++)for(j=0;i<k;j++)n[j]=n[i]+l;程序的輸出結果是A)17 B)18C)19 D)20main(){inta[]={2,4,6,8,10),y=l,x,*p;p=&a[l];for(x=0;x<3;x++)y+=*(p+x);printf(飛d\n”,y);)程序的輸出結果是A)6B)8C)4D)2main(){inta[]={2,4,6,8},*p=a,i;for(i=0;ia,4;i++)a[i]=*p++;printf("%d\n",a[2]);)程序的輸出結果是A)720B)120C)24D)6f(intb[],intn){inti,r=l;for(i=0;i<=n;i++)r=r*b[i];returnr;}main(){intx,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n”,x);I[9.8] 以下程序中若第一個printf語句輸出的是194,則第二個printf語句的輸出結果是A)212B)204C)la4D)la6main(){inta[]={l,2,3,4,5,6,7,8,9,0},*p;P=a;printfC%x\n",p);printf("%x\n”,p+9);]程序的輸出結果是A)0987654321B)4321098765C)5678901234D)0987651234fun(int*s,intnl,intn2){inti,j,t;i=nl;j=n2;while(i<j){t=*(s+i);*(s+i)=*(s+j);*(s+j)=t;i++;j-;})main(){inta[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a;fun(p,0,3);fun(p,4,9);fun(p,0,9);for(i=0;i<10;i++)printf*(a+i));}[9.10]以下程序的輸出結果是A)44B)22 C)24D)46main(){inta[5]={2,4,6,8,10},*p,**k;p=a;k=&p;printf(4d”,*(P++));printf("d\n”,**k);)[9.11]當運行以下程序時輸入三行,每行都是在第一列上開始,<CR>代表Enter鍵;a<CR>b<CR>cdef<CR>則程序的輸出結果是A)abcdefB)aC)aD)abbbccdcdefdef#include"stdio.h"#defineN6main(){charc[N];inti=0;for(i=0:i<N;i++)c[i]=getchar();for(i=0;i<N;i++)putchar(c[i]);}[9.12]若有定義和語句:intc[4][5],(*cp)[5];cp=c;則對C數(shù)組元素的引用正確的是D)*(*cp+2)A)cp+1B)*(cp+3)C)*(Cp+l)+3D)*(*cp+2)[9.13]若已定義:inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*prt)[3]=a,*p=a[0];則能夠正確表示數(shù)組元素a[l][2]的表達式是A)*((*prt+l)[2])B)*(*(p+5))C)(*prt+l)+2D)*(*(a+l)+2)[9.14]若有定義和語句:inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*prt)[3]=a,*p[4],i;for(i=0;i<4;i++)p[i]=a[i];則下能夠正確表示a數(shù)組元素的表達式是A)a[4][3]B)p[0][0]C)prt⑵⑵D)(*(p+l))[l][9.15]以下程序的輸出結果是A)23B)26C)33D)36main(){intaa[3][3]={{2},{4},{6}},i,*p=&aa[O][0];for(i=0;i<2;i++){if(i==O)aa[i][i+l]=*P+l;else++p;printfC%d",*p);}printf('\n");[9.16]以下程序的輸出結果是D)108D)108A)60B)68C)99main(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23);int(*p)[4]=a,i,j,k=0;for(i=0;i<3;i++)for(j=0;j<2;j++)k+=*(*(p+i)+j);printf("%d\n",k);}[9.17]以下程序的輸出結果是A)1,5,9,B)1,4,7,C)3,5,7,D)3,6,9,main(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d,",x[i][2-i]);)[9.18]若有定義語句int(*p)[M]:其中的標識符是A)M個指向整型變量的指針B)指向M個整型變量的函數(shù)指針C)一個指向具有M個整型元素的一維數(shù)組指針D)具有M個指針元素的一維指針數(shù)組,每個元素都只能指向整型量二、填空題[9.19]若有以下定義:doublew[10];則數(shù)組元素下標的上限是 ,下限是程序的輸出結果是main(){inta[]={2,4,6},*ptr=&a[0],x=8,y,z;for(y=0;y〈3;y++)z=(*(prt+y)<x)?*(prt+y):x;printf(*%d\n*,z);}程序的輸出結果是 。main(){intarr[10],i,k=0;for(i=0;i<10;i++)arr[i]=i;for(i=0;i<4;i++)k+=arr[i]+i;printf("%d\n",k);)[9.22]以下程序的輸出結果是#defineN5fun(char*s,chara,intn){intj;*s=a;j=n;while(a<a[j])j—;returnj;}main(){chars[N+l];intk,p;for(k=l;k<=N;k++)s[k]=,A*+k+l;printf(飛d\n",fun(s,'E',N));}[9.23]若輸入3個整數(shù)3、2、1,則以下程序的輸出結果是voidsub(intn,intuu[]){intt;t=uu[n—];t+=3*uu[n]; n++;if(t>=10){uu[n-H-]=t/10;uu[n]=t%10;}elseuu[n]=t;}main(){inti,n,aa[10]={0};scanf("%d%d%d",&n,&aa[0],&aa[1]);for(i=l;i<n;i++)sub(i,aa);for(i=0;i<=n;i++)printfC*%d*,aa[i]);printf("\n");}[9,24]以下程序的輸出結果是main(){inti,j,row,col,m;intarr[3][3]={{100,200,300},{28,72,-30},{-850,2,6}};m=arr[0][0];for(i=0;i<3;i++)for(j=0;j<3;j++)if(arr[i][j]<m){m=arr[i][j];row=i;col=j;}printf(,z%d,%d,%d\n”,m,row,col);}[9,25]以下findmax返回數(shù)組s中最大元素的下標,數(shù)組中元素的個數(shù)由t傳入,請?zhí)羁铡indmax(ints[],intt){intk,p;for(p=0,k=p;p<t;p++)if(s[p]>s[k]) ;return[9.26]以下程序統(tǒng)計從終端入的字符中每個大寫字母的個數(shù),中統(tǒng)計字母的個數(shù),其它依次類推。用#號結束輸入,請?zhí)羁?。^include"stdip.h"#include"ctype.h"main(){intnum[26]={0},i;charc;while(一!="#")if(isupper(c))num[_]+=1;for(i=0;i<26;i++)if(num[i])printf(*%c:%d\n*,i+'A',num[i]);}三、編程題[9.27]輸入一行數(shù)字字符,請用數(shù)組元素作為計數(shù)器來統(tǒng)計每個數(shù)字字符的個數(shù)。用下標為0元素統(tǒng)計字符“1”的個數(shù),下標為1的元素統(tǒng)計字符“2”的個數(shù),。[9.28]編寫函數(shù),對具有效期0個整數(shù)的數(shù)組進行如下操作:從第n個元素開始宜到最后一個元素,依次向前移動一個位置。輸出移動后的結果。[9.29]編寫函數(shù)把數(shù)組中所有奇數(shù)放在另一個數(shù)組中返回。[9.30]編寫函數(shù)對字符數(shù)組中的輸入字母,按由大到小的字母順序進行排序。[9.31]輸入若干有序數(shù)放在數(shù)組中。然后輸入一個數(shù),插入到此有序數(shù)列中,插入后,數(shù)組中的數(shù)仍然有序。請對以下三種情況運行你的程序,以便驗證你的程序是否下確。(1)插在最前 (2)插在最后(3)插在中間[9.32]編寫函數(shù)把任意十進制下整數(shù)轉換成二進制數(shù)。提示:把十進制數(shù)不斷被2除余數(shù)放在一個一維數(shù)組中,直到商數(shù)為零。在主函數(shù)中進行輸出,要求不得按逆序輸出。[9.33]編寫函數(shù)調用隨機函數(shù)產生0到19之間的隨機數(shù),在數(shù)組中存入15個互不看復的整數(shù)。要求在主函數(shù)中輸出結果。若已定義為類型,調用隨機函數(shù)步驟如下:^include"stdlib.h"x=rand()%20 /*產生0到19的隨機數(shù)*/[9.34]編寫程序求任意方陣每行、每列、兩對角線一元素之和。[9.35]編寫程序求兩個矩陣的和。[9.36]編寫程序打印出以下形式的乘法九九表。**AMULTIPCATIONTABLE**(2)(3)(4)(5)(6)(7)(8)(9)(1)1 234567892 4 6 81012141618121518212427(4)41216202428323610152025303540456121824303642485471421283542495664(8)81624324048566472(9)91827364554637281121518212427(4)41216202428323610152025303540456121824303642485471421283542495664(8)81624324048566472(9)91827364554637281[9,37]調用隨機函數(shù)為5*4的矩陣置100以內的整數(shù),輸出該矩陣,求出每行元素之和,并把和值最大的那一行與第一行上的元素對調。若已定義x為int類型,調用隨機函數(shù)步驟如下:^include"stdlib.h"x=rand()%100 /*產生0到100的隨機數(shù)*/[9.38]調用隨機函數(shù)為55的矩陣置100以內的整數(shù),輸出該矩陣,然后逆置該矩陣。即將第一列的元素放在第一行上、第二列的元素放在第二行上、其它依次類推。第十章字符串一.選擇題[10.1]以下能正確進行字符串賦值、賦初值的語句組是A) char s[5]={,a,*e ,'i','o','u'};B) char*s;s="good!”;C) char s[5]="good!”; D) char s[5];s="good";[10.2]以下程序的輸出結果是A)68B)0C)字符D的地址D)不能確定的值charstr[]=*ABCD*,*p=str;printf("%d\n”,*(p+4));[10.3]以下程序段的輸出結果是A)11B)10C)9 D)8printf("%d\n”,strlen("ATS\nO12\l\\"));[10.4] 當運行以下程序時輸入OPENTHEDOOR〈CR>(此處<CR>代表Enter鍵),則輸出的結果是A)opENtHEdOOR B)openthedoorC)OPENTHEDOORD)OpenTheDoor#include *stdio.h"charfun(char*c){if(*c<='Z'&&*c>='A')*c-A'-'a';return*c;main(){chars[81], *p=s;gets(s);while(*p){*p=fun(p);putchar(*p); p++ }putchar("\n”);}[10.5]以下程序的輸出結果是A)GFEDCBAB)AGADAGAC)AGAAGAGD)GAGGAGA#include"stdio.h"#include"string,h”voidfun(char*w,intm){ chars,*pl,*p2;pl=w; p2=w+m-l;while(pl<p2){ s=*pl++; *pl=*p2— *p2=s;}main(){ char a[]="ABCDEFG";fun(a,strlen(a));puts(a);[10.6]以下程序的輸出結果是A)ABCDB)AC)DD)ABCDBCDBcABCCDCBABDDAAmain(){chars[]="ABCD",*p;for(p=s;p<s+4;p++)printf("%s\n”,p);}[10.7]設有如下定義:char*aa[2]={"abed","ABCD"};則以下說法正確的是aa數(shù)組元素的值分別是"abed"和"ABCD"aa是指針變量,它指向含有兩個數(shù)組元素的字符型一維數(shù)組0 aa數(shù)組的兩個元素分別存放的是含有四個字符的一維數(shù)組的首地址D) aa數(shù)組的兩個元素中各自存放了字符‘a‘和‘A'的首地址[10.8]以下程序的輸出結果是A)6385 B)69825C)63825D)693825charch[2][5]=(“6937","8254"},*p[2];charint i,j,s=0;for(i=0;i<2;i++) p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>,\0, ;j+=2)s=10*s+p[i][j]-0';printf("%d\n",s);)[10.9]以下程序的輸出結果是A)ABCDEFGHIJKLB)ABCDC)ABCDEFGHIJKLMNOPD)AEIMmain()char *alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};char**P;int i;p=alpha;for(i=0; i<4; i++) printf("%s",p[i]);printf("\n");}[10.10]庫函數(shù)strcpy用以復制字符串。若有以下定義和語句:char
strl[]="stringz/,str2[8],*str3,*str4="string”;則對庫函數(shù)strcpy的不正確調用是strcpy(str2,“HELLO2");strcpy(str4,"HELL04");A) strcpy(strl,“HELL01"); strcpy(str2,“HELLO2");strcpy(str4,"HELL04");strcpy(str3,“HELLO3"); D)二.填空題程序的輸出結果是otfinclude "stdio.h"main(){charb[]="ABCDEFG\*chp=&b[7];while(-chp>&b[0])putchar(*chp);putchar(*\n);)[10.12]以下程序的輸出結果是o#include "stdio.h〃voidfun(char*al,char*a2,intn){intk;for(k=0;k<n;k++)a2[k]=(al[k]-A'-3+26)%26+'A';a2[n]-\n;main(){charsl[5]="ABCD”,s2[5];fun(si,s2,4);puts(s2);}[10.13]以下程序的輸出結果是omain(){char*p[]={〃B00L〃,〃0PK〃,〃H〃,〃SP"};inti;for(i=3;i>=0;i—,I-)printf(*%c*,*p[i]);printf(〃\n");}[10.4] 當運行以下程序時從鍵盤輸入字符串qwerty和abed,則程序的輸出結果是#include *stdio.h"ttinclude "string,h”strle(chara[],charb[]){intnum=0,n=0;while(*(a+num)!='\0') num++;while(b[n]) {*(a+num)=b[n];num++;n++}return(num);{charstrl[81],str2[81],*pl=strl,*p2=str2;gets(pl);gets(p2);printf("%d\n",strle(pl,p2));)[10.15]以下程序的輸出結果是o#include “string,h”#include "ctype.h"voidfun(charstr[]){inti,j;for(i=0,j=0;str[i];i++)if(isalpha(str[i]))str[j++]=str[i];
str[i]='\0';}main(){charss[80]=*Itis!”;fun(ss);printf("%s\n”,ss);[10.16]以下fun函數(shù)的功能是將一個字符串的內容顛倒過來,請?zhí)羁铡?include“string.h"voidfun(charstr[]){inti,j,k;for(i=0,j=;i<j;i++,){k=str[i];str[i]=str[j];str[j]=k;})[10.17]以下程序的輸出結果是oprintf(z,%d\n/z,strlen("s\n\016\0end"));[10,18]以下程序的輸出結果是ochars[20]="goodgood!”,*sp=s;sp=sp+2;”./rsp=to;puts(s);三.編程題[10.19]請編寫函數(shù)mygets和myputs,其功能分別與gets和puts相同,函數(shù)中用getchar和putchar讀入和輸出字符。[10.20]請編寫函數(shù),判斷一字符串是否是回文。若是回文函數(shù)返回值為1;否則返回值為0?;匚氖琼樧x和倒讀都一樣的字符串。寫函數(shù),刪除字符串中指定位置上的字符。刪除成功函數(shù)返回被刪字符;否則返回空值。第十一章對函數(shù)的進一步討論一.選擇題[11.1]以下敘述不正確的是C程序的main函數(shù)可以沒有參數(shù)。C程序的main函數(shù)可以有參數(shù)。0C程序的main函數(shù)可若有參數(shù)時,第一個參數(shù)的值最少是1。D)main函數(shù)的第一個參數(shù)必須是整型,其名字必須是argv;第二個參數(shù)可以定義成:char*argv[],名字必須是argv。以下說明和定義,則對fun函數(shù)的正確調用語句是A)a=fun;a(w); B)a=fun;(*a)(&c);C)b=fun;*b(w); D)fun(b);main(){int(*a)(int*),*b(),w[10],c;敘述正確的是C語言中各函數(shù)之間既允許直接遞歸調用也允許間接遞歸調用C語言中各函數(shù)之間既不允許直接遞歸調用也不允許間接遞歸調用C語言中各函數(shù)之間既允許直接遞歸調用不允許間接遞歸調用C語言中各函數(shù)之間既不允許直接遞歸調用允許間接遞歸調用程序的輸出結果是A)8 B)30C)16D)2longfib(intn){if(n>2)return(fib(n-l)+fib(n-2));elseerturn(2):}main(){printf(4<%ld\nM,fit(6)); }二.填空題[11.5]假定以下程序經過編譯和連接后生成可執(zhí)行文件PROG.EXE,如果在DOS提示符下鍵入:PROGABCDEFGHIJKL<CR>(<CR>表示Enter鍵)則輸出結果是:.main()(intatgc,char*argv[]){while(-argc>0)printfargv[argc]);printf("\n");[11.6]以下程序的輸出結果是.fun(intx){intp;if(x==O||x==l)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n”,fun(9));}[11.7]以下程序的輸出結果是.fun(intn,int*s){intfl,f2;if(n==l||n==2)*s=l;else{fun(n-l,&fi);fun(n-2,&f2);*s=fl+f2;)}main(){intx;fun(6,&x);)程序調用in
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025出租車司機用工合同范本
- 2025商鋪租賃合同簡單的范本
- 全新清算協(xié)議合同-二零二五年度清算與債務重組3篇
- 2025年度全新合同:人工智能輔助駕駛系統(tǒng)研發(fā)與推廣協(xié)議3篇
- 2025年度環(huán)保設備安裝與環(huán)保技術咨詢合同3篇
- 2025年度農村房屋改造裝修與農村光伏發(fā)電項目合同
- 二零二五年度出國工人勞務輸出與職業(yè)規(guī)劃合同
- 二零二五年度智能漁業(yè)養(yǎng)魚設備共享合作協(xié)議3篇
- 2025年度農業(yè)科技賒銷合作協(xié)議3篇
- 2025年度水上安全事故處理與救援合作協(xié)議3篇
- !懸臂式擋土墻計算軟件
- 運維應急預案
- GB 4806.7-2023食品安全國家標準食品接觸用塑料材料及制品
- 工程造價審計投標方案
- 辦公樓裝修環(huán)境與對策分析
- 《web前端技術》課程標準
- 9高考語文透析一題·詩歌鑒賞(手法技巧)《柳梢青 送盧梅坡 》
- 織金縣實興鄉(xiāng)白龍重晶石礦5.0萬t-a(新建)項目環(huán)評報告
- 妊娠期肝內膽汁淤積癥教學課件
- 【航空個性化服務淺析4700字(論文)】
- 保障農民工工資支付條例全文及解讀課件
評論
0/150
提交評論