電大《C語言程序設(shè)計(jì)課程》期末考試復(fù)習(xí)資料_第1頁
電大《C語言程序設(shè)計(jì)課程》期末考試復(fù)習(xí)資料_第2頁
電大《C語言程序設(shè)計(jì)課程》期末考試復(fù)習(xí)資料_第3頁
電大《C語言程序設(shè)計(jì)課程》期末考試復(fù)習(xí)資料_第4頁
電大《C語言程序設(shè)計(jì)課程》期末考試復(fù)習(xí)資料_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C語言程序設(shè)計(jì)課程期末復(fù)習(xí)練習(xí)一、單選題.在每個(gè)C語言程序中都必須包含有這樣一個(gè)函數(shù),該函數(shù)的函數(shù)名為()。A.main2.每個(gè)C語言程序文件的編譯錯(cuò)誤分為()類。B.2字符串a(chǎn)+b=12n的長(zhǎng)度為()。B.7在switch語句的每個(gè)case塊中,假定都是以break語句結(jié)束的,則此switch語句容易被改寫為()語句。B.if在下面的do-while循環(huán)語句中,其循環(huán)體語句被執(zhí)行的次數(shù)為()。inti=0;doi+;while(i10);D.10將兩個(gè)字符串連接起來組成一個(gè)字符串時(shí),選用的函數(shù)為()。C.strcat()若用數(shù)組名作為函數(shù)調(diào)用的實(shí)參,傳遞給形參的是()。A.數(shù)組的首地址假定a

2、為一個(gè)整數(shù)類型的數(shù)組名,整數(shù)類型的長(zhǎng)度為4,則元素a4的地址比a數(shù)組的首地址大()個(gè)字節(jié)。C.16假定s被定義為指針類型char*的變量,初始指向的字符串為Helloworld!,若要使變量p指向s所指向的字符串,則p應(yīng)定義為()。A.char*p=s;從一個(gè)數(shù)據(jù)文件中讀入以換行符結(jié)束的一行字符串的函數(shù)為()B.fgets()由C語言目標(biāo)文件連接而成的可執(zhí)行文件的缺省擴(kuò)展名為()B.exe設(shè)有兩條語句為inta=12;a+=a*a;,則執(zhí)行結(jié)束后,a的值為()。C.156帶有隨機(jī)函數(shù)調(diào)用的表達(dá)式rand()%20的值在()區(qū)間內(nèi)。C.019for循環(huán)語句for(i=0;i0&x=10)的相反表

3、達(dá)式為()。A.x10當(dāng)處理特定問題時(shí)的循環(huán)次數(shù)已知時(shí),通常采用()循環(huán)來解決。A.for假定i的初值為0,則在循環(huán)語句while(ib|b=5的相反表達(dá)式為a5)的相反表達(dá)式為(x!=0|y=5)或:(x|y5的相反表達(dá)式為_x+yname等價(jià)的訪問表達(dá)式為(*p).name。三、寫出下列每個(gè)程序運(yùn)行后的輸出結(jié)果#includevoidmain()intx=5;switch(2*x-1)case4:printf(%d,x);break;case7:printf(%d,2*x);break;case10:printf(%d,3*x);break;default:printf(%s,defaul

4、t);printf(%sn,switchend.);defaultswitchend.#includevoidmain()intf1,f2,i巾=1;printf(%d,f1);for(i=2;i=5;i+)f2=3*f1+1;printf(%d”,f2);f1=f2;printf(n);141340121#includevoida10=12,39,26,41,55,63,72,40,83,95;inti,i1=0,i2=0;for(i=0;i10;i+)i1+;elsei2+;printf(%d%dn,i1,i2);64main() intif(ai%2=1)#include#include

5、voidmain()chars15=567891234”;inti,n=strlen(s);for(i=0;in/2;i+)charc=si;si=sn-1-i;sn-1-i=c;printf(%sn,s);432198765#includeintLB(int*a,intn)inti,s=1;for(i=0;in;i+)s*=*a+;returns;voidmain()inta=1,2,3,4,2,4,5,2;intb=LB(a,4)+LB(a+3,3);printf(b=%dn,b);b=56#includevoidmain()inti,s=0;for(i=1;i6;i+)s+=i*i;pr

6、intf(s=%dn”,s);s=55#include#defineN6voidmain()inti,aN=2,5,8,10,15,21;for(i=0;iN;i+)if(ai%5)printf(%d,ai);printf(n);2821#include#includevoidmain()inti;unsignedintlen;char*a5=student,worker,cadre,soldier,zzeasan123;len=strlen(a0);for(i=1;ilen)len=strlen(ai);printf(%dn,len);10#includevoidmain()inta,b;f

7、or(a=2,b=3;b20;)printf(%d%d”,a,b);a=a+b;b=a+b;printf(%d%dn,a,b);23581321#includevoidLE(int*a,int*b)intx=*a;*a=*b;*b=x;voidmain()intx=15,y=26;printf(%d%dn,x,y);LE(&x,&y);printf(%d%dn,x,y);1526261511.#includevoidmain()inti,s=0;for(i=1;i+)if(s30)break;if(i%2=0)s+=i;printf(s=%dn,s);s=42#includevoidmain(

8、)inta9=36,25,48,24,55,40,18,66,20;inti,b1,b2;b1=b2=a0;for(i=1;ib1)b1=ai;if(aib2)b2=ai;printf(%d%dn,b1,b2);6618#includevoidSB(charch)switch(ch)caseA:casea:printf(WW);break;caseB:caseb:printf(GG);break;default:printf(BB);break;voidmain()chara1=a,a2=B,a3=f;SB(a1);SB(a2);SB(a3);printf(n);WWGGBB#include#

9、defineM6voidmain()inti,x;intaM=10,15,22,37,46,58;for(i=0;iM/2;i+)x=ai;ai=aM-1-i;aM-1-i=x;for(i=0;i6;i+)printf(%d,ai);printf(n);584637221510#includestructWorkercharname15;intage;floatpay;voidmain()structWorkerx=wanghua”,52,2350;structWorkery,*p;y=x;p=&x;printf(%d%7.2fn,y.age+p-age,p-pay+20);1042370.0

10、0#includevoidmain()inti,j,k=0;for(i=0;i5;i+)for(j=i;j5;j+)k+;printf(%dn,k);15#includevoidmain()intx=60;inti=2,p=1;while(1)if(x%i=0)p*=i;x/=i;if(ix)i+;elsebreak;printf(%dn,p);30#includevoidmain()inta8=76,63,54,62,40,75,90,58;inti;for(i=0;i70)printf(%d,ai);printf(n);767590#includevoidWF(intx,inty)x=x+

11、y;y+=x;printf(%d%dn,x,y);voidmain()intx=3,y=8;WF(x,y);1119#includeintLA(int*a,intn)inti,s=0;for(i=0;in;i+)s+=ai;returns;voidmain()inta5=3,4,6,10,20;intb=LA(a,5);intc=LA(a+2,3);printf(%d%dn,b,c);4336四、寫出下列每個(gè)函數(shù)的功能#includeintSG(intx)/x為大于等于2的整數(shù)inta=(int)sqrt(x);/sqrt(x)取x的平方根inti=2;while(i=a)if(x%i=0)b

12、reak;i+;if(idata;f=f-next;while(f)if(f-datax)x=f-data;f=f-next;returnx;假定structIntNode的類型定義為:structIntNodeintdata;structIntNode*next;#includeintSA(inta,intb)if(ab)return1;elseif(a=b)return0;elsereturn-1;voidOutput(structIntNode*f)/f為單鏈表的表頭指針if(!f)return;while(f)printf(%d,f-data);f=f-next;printf(n);假

13、定structIntNode的類型定義為:structIntNodeintdata;structIntNode*next;intSC(inta,intb,intc)if(a=b&a=c)returna;if(b=a&b=c)returnb;returnc;int*LI(intn)int*a=malloc(n*sizeof(int);inti;for(i=0;in;i+)scanf(%d,a+i);returna;intWC(inta,intn,intk)inti,c=0;for(i=0;i=k)c+;returnc;voidQA(structWorkera,intn)inti;for(i=0;

14、ib則返回1,若a=b則返回0,若ab則返回-1。遍歷并輸出由f所指向的單鏈表中每個(gè)結(jié)點(diǎn)的值。.求出a,b,c三個(gè)數(shù)中的最大值并返回。.首先建立一個(gè)動(dòng)態(tài)整型數(shù)組an,接著從鍵盤上輸入n個(gè)整數(shù)到an中,最后返回?cái)?shù)組an的首地統(tǒng)計(jì)并返回一維整型數(shù)組an中大于等于k的值的個(gè)數(shù)。從鍵盤上為具有structWorker類型的數(shù)組an輸入n個(gè)記錄。五、按題目要求編寫程序或函數(shù)編寫一個(gè)程序,輸出50以內(nèi)(含50)的、能夠被3或者5整除的所有整數(shù)。編寫一個(gè)遞歸函數(shù)“intFF(inta口,intn)”,求出數(shù)組a中所有n個(gè)元素之積并返回。編寫一個(gè)程序,利用while循環(huán),計(jì)算并打印輸出1+1+1+.+1的值,

15、其中正整數(shù)n值由鍵盤輸23n入。假定求和變量用sum表示,計(jì)數(shù)變量用i表示,suni和n均定義為全局變量,sum和i的初值分別被賦予0和1。根據(jù)函數(shù)原型“voidDD(inta,intn,intMM)編寫函數(shù)定義,利用雙重循環(huán)查找并打印輸出數(shù)組an中任何兩個(gè)元素的值等于MM直的元素值。假定ai+aj等于MM則輸出格式為:(ai,aj)。編寫一個(gè)程序,計(jì)算1+3+32+.+310的值并輸出,假定分別用i,p,s作為循環(huán)變量、累乘變量和累加變量的標(biāo)識(shí)符。根據(jù)函數(shù)原型“intFF(inta,intn)”,編寫函數(shù)定義,計(jì)算并返回?cái)?shù)組an中所有元素之和。根據(jù)函數(shù)原型“doubleMean(double

16、aMN,intm,intn)”,編寫函數(shù)定義,要求返回二維數(shù)組amn中所有元素的平均值。假定在計(jì)算過程中采用變量v存放累加值和最后的平均值。根據(jù)函數(shù)原型“intMM(inta口,intm),編寫函數(shù)定義,計(jì)算并返回?cái)?shù)組am中元素最大值和最小值之差。參考解答:#includevoidmain()inti;for(i=3;i=50;i+)if(i%3=0|i%5=0)printf(%d,i);printf(n);intFF(inta,intn)if(n=0)printf(n值非法n),exit(1);if(n=1)returnan-1;elsereturnan-1*FF(a,n-1);#inclu

17、deintn,i=1;doublesum=0;voidmain()scanf(%d,&n);while(i=n)sum+=(double)1/i+;printf(sum=%lfn,sum);voidDD(inta,intn,intMM)inti,j;for(i=0;in;i+)for(j=i+1;jn;j+)if(ai+aj=MM)printf(%d,%dn,ai,aj);#includevoidmain()inti;intp=1;ints=1;for(i=1;i=10;i+)p*=3;s+=p;printf(%dn,s);intFF(inta,intn)inti,sum=0;for(i=0;

18、in;i+)sum+=ai;returnsum;)doubleMean(doubleaMN,intm,intn)(intij;doublev=0.0;for(i=0;im;i+)for(j=0;jn;j+)v+=aij;v/=m*n;returnv;)注:函數(shù)體的最后兩行可以合并為一條返回語句:returnv/=m*nintMM(inta,intm)(inti,x1,x2;x1=x2=a0;for(i=1;ix1)x1=ai;if(ai0&x=10的相反表達(dá)式為(A)。A.x10B.x10C.x=0|x0&x10.字符串“a+b=12n”的長(zhǎng)度為(B)。A.6B.7C.8D.9.在下列符號(hào)常量

19、定義中。錯(cuò)誤的定義語句格式為(0。A.constM1=10;B.constintM2=20;C.constM310D.constcharmark=3;.帶有隨機(jī)函數(shù)的表達(dá)式rand()%20的值在(C)區(qū)間內(nèi),A.119B,120C,019D.020.當(dāng)處理特定問題時(shí)的循環(huán)次數(shù)已知時(shí),通常采用(A)循環(huán)來解決。A.forB.whileC.do-whileD.switch13.在switch語句的每個(gè)case塊中,假定都是以break語句結(jié)束的,則此switch語句容易被改寫為(B)語句。A.forB.ifC.doD.while.for語句能夠被改寫為(D)語句。A.復(fù)合B.ifC.switch

20、D.while.下面循環(huán)語句執(zhí)行結(jié)束后輸出的i值為(B)。for(inti=0;in/2)coutiendl;break;A.n/2B.n/2+1C.n/2-1D.n-1.在下面循環(huán)w語句中內(nèi)層循環(huán)體S語句的執(zhí)行次數(shù)為3for(inti=0;in;i+)for(intj=i;jn;j+)S;A.n2B.(n+1)/2C.n(n-1)/2D.n(n+1)/2.在下面的do循環(huán)語句中,其循環(huán)體被執(zhí)行的次數(shù)為(A)。inti=0;doi+;while(i*i5的相反表達(dá)式為x+yb|b=5的相反表達(dá)式為-a5|by邏輯值為false。.若x=5,y=10,貝Ux=y邏輯值為true。.假定x=5,則

21、執(zhí)行“a=(x?10:20);”語句后a的值為_10_。.執(zhí)行typedefintDataType;”語句后,在使用int定義整型變量的地方都可以使用DataType來定義整型變量。.在switch語句中,每個(gè)語句標(biāo)號(hào)所含保留字case后面的表達(dá)式必須是整型_。.作為語句標(biāo)號(hào)使用的C保留字case和default只能用于_switch_語句的定義體中。.在switch語句時(shí),在進(jìn)行作為條件的表達(dá)式求值后,將從某個(gè)匹配的標(biāo)號(hào)位置起向下執(zhí)行,當(dāng)碰到下一個(gè)標(biāo)號(hào)位置時(shí)(停止/不停止)不停止執(zhí)行。.若do循環(huán)的尾為while(+ib).與結(jié)構(gòu)成員訪問表達(dá)式(*fp).score等價(jià)的表達(dá)式是_fp-sc

22、ore。三、寫出下列每個(gè)程序運(yùn)行后的輸出結(jié)果.#includevoidmain()intx=5;switch(2*x-3)case4:printf(%d,x);case7:printf(%d,2*x+1);case10:printf(%d,3*x-1);break;default:printf(%s,defaultn);printf(%sn,switchend.);輸出結(jié)果為:14switchend.Pressanykeytocontinue#includevoidmain()inti,s=0;for(i=1;i=6;i+)s+=i*i;printf(s=%dn,s);輸出結(jié)果為:s=91.P

23、ressanykeytocontinue#includevoidmain()inti,s1=0,s2=0;for(i=0;i10;i+)if(i%2)s1+=i;elses2+=i;printf(%d%dn,s1,s2);輸出結(jié)果為:2520.Pressanykeytocontinue#includevoidmain()intn=10,y=1;while(n-)y+;y+;printf(y=%dn,y);輸出結(jié)果為:y=21.Pressanykeytocontinue#includevoidmain()intf,f1,f2,i;f1=f2=1;printf(%d%d巾,f2);for(i=3;

24、i=10;i+)f=f1+printf(%d,f);if(i%5=0)printf(n);f1=f2;f2=f;printf(n);輸出結(jié)果為:1235813213455Pressanykeytocontinue#include#includevoidmain()inti,n;for(n=2;n=20;n+)inttemp=(int)sqrt(n);sqrt(n)求出n的平方根并取整for(i=2;itemp)printf(%d,n);printf(n);輸出結(jié)果為:235711131719Pressanykeytocontinue#include#includeconstintM=20;vo

25、idmain()inti,c2,c3,c5;c2=c3=c5=0;for(i=1;i=M;i+)if(i%2=0)c2+;if(i%3=0)c3+;if(i%5=0)c5+;printf(%d%d%dn,c2,c3,c5);輸出結(jié)果為:1064Pressanykeytocontinue#include#includeconstintM=20;voidmain()inti,s;for(i=1,s=0;i15;i+)if(i%2=0|i%3=0)continue;printf(%d,i);s+=i;printf(%dn,s);輸出結(jié)果為:157111337Pressanykeytocontinue

26、#includevoidmain()inta10=12,39,26,41,55,63,72,40,83,95;inti,i1=0,i2=0;for(i=0;i10;i+)if(ai%2=1)i1+;elsei2+;printf(%d%dn,i1,i2);輸出結(jié)果為:64Pressanykeytocontinue#include#includevoidmain()inti;char*a5=student,worker,cadre,soldierpeasant;char*p1,*p2;p1=p2=a0;for(i=0;i0)p1=ai;if(strcmp(ai,p2)0)p2=ai;printf(

27、%s%sn,p1,p2);輸出結(jié)果為:workercadrePressanykeytocontinue#includeinta10=4,5,6,15,20,13,12,7,8,9;voidmain()inti,s0,s1,s2;s0=s1=s2=0;for(i=0;i10;i+)switch(ai%3)case0:s0+=ai;break;case1:s1+=ai;break;case2:s2+=ai;break;printf(%d%d%dn,s0,s1,s2);輸出結(jié)果為:422433Pressanykeytocontinue#includevoidmain()chara=abcdbfbga

28、cd;inti1=0,i2=0,i=0;while(ai)if(ai=a)i1+;if(ai=b)i2+;i+;printf(%d%d%dn,i1,i2,i);輸出結(jié)果為:2311Pressanykeytocontinue#includevoidmain()inta34=1,2,7,8,5,6,10,6,9,12,3,4;intm=a00;intii=0,jj=0;inti,j;for(i=0;i3;i+)for(j=0;jm)m=aij;ii=i;jj=j;printf(%d%d%dn,ii,jj,aii皿);輸出結(jié)果為:2112Pressanykeytocontinue#includevo

29、idmain()inta,b;for(a=1,b=2;b50;)printf(%d%d,a,b);a=a+b;b=a+b;printf(n);輸出結(jié)果為:12358132134Pressanykeytocontinue三、寫出下列每個(gè)程序運(yùn)行后的輸出結(jié)果#includevoidSB(charch)switch(ch)caseA:casea:printf(WW);break;caseB:caseb:printf(GG);break;caseC:casec:printf(PP);break;default:printf(BB);break;voidmain()chara1=b,a2=C,a3=f;

30、SB(a1);SB(a2);SB(a3);SB(A);printf(n);輸出結(jié)果為:GGPPBBWWPressanykeytocontinue#include#includedoubleSD(inta,intb,charop)doublex;switch(op)case+:x=a+b;break;case-:x=a-b;break;case*:x=a*b;break;case/:if(b)x=(double)a/b;elseexit(1);break;default:(運(yùn)算符錯(cuò)!n);exit(1);returnx;voidmain()intx=20,y=8;printf(%3.2lf,SD

31、(x,y,-);printf(%3.2lf,SD(x,y,*);printf(%3.2lf,SD(x,y,/);輸出結(jié)果為:12.00160.002.50Pressanykeytocontinue#includevoidWF(intx,inty)x=x+y;y=x+y;printf(subs:x,y=%d,%dn,x,y);voidmain()intx=18,y=23;printf(main:x,y=%d,%dn,x,y);WF(x,y);x=2*x;printf(main:x,y=%d,%dn,x,y);輸出結(jié)果為:main:x,y=18,23subs:x,y=41,64main:x,y=3

32、6,23Pressanykeytocontinue#include#includevoidfun(charss口);voidmain()chars15=567891234”;fun(s);printf(%sn,s);voidfun(charss)inti,n=strlen(ss);for(i=0;in/2;i+)charc=ssi;ssi=ssn-1-i;ssn-1-i=c;輸出結(jié)果為:432198765Pressanykeytocontinue#includevoidInsertSort(inta口,intn)inti,j,x;for(i=1;i=0;j-)為x順序向前尋找合適的插入位置if

33、(xaj)aj+1=aj;elsebreak;aj+1=x;voidmain()inti;inta6=20,15,32,47,36,28;InsertSort(a,6);for(i=0;i6;i+)printf(%d,ai);printf(n);輸出結(jié)果為:473632282015Pressanykeytocontinue#includevoidmain()inta8=3,5,7,9,11,13,15,17;inti,*p=a;for(i=0;i8;i+);printf(%5d,*p+);if(i+1)%4=0)printf(n);輸出結(jié)果為:357911131517Pressanykeyto

34、continue#includeintLA(int*a,intn)inti,s=0;for(i=0;in;i+)s+=ai;returns;voidmain()inta尸5,10,15,20,25,30;intb=LA(a,4);intc=LA(a+2,3);printf(%d%dn,b,c);輸出結(jié)果為:5060Pressanykeytocontinue#includeintLB(int*a,intn)inti,s=1;for(i=0;in;i+)s*=*a+;returns;voidmain()inta=1,2,3,4,2,4,5,2;intb=LB(a,4)+LB(&a3,4);prin

35、tf(b=%dn,b);輸出結(jié)果為:b=184Pressanykeytocontinue#includestructWorkercharname15;/姓名intage;年齡floatpay;/工資;voidmain()structWorkerx=wanghua,52,23.50;structWorkery,*p;y=x;p=&x;printf(%s%d%6.2fn,y.age,y.pay);printf(%s%d%6.2fn,p-name,p-age,p-pay);輸出結(jié)果為:wanghua5223.50wanghua5223.50Pressanykeytocontinue#include#

36、includestructWorkercharname15;/姓名intage;年齡floatpay;/工資;voidmain()structWorkerx;char*t=louting;intd=38;floatf=493;strcpy(,t);x.age=d;x.pay=f;x.age+;x.pay*=2;printf(%s%d%6.2fn,x.age,x.pay);輸出結(jié)果為:louting39986.00Pressanykeytocontinue#include#includestructWorkercharname15;/姓名intage;年齡floatpay;/工資;intLess

37、(structWorkerr1,structWorkerr2)if(r1.ager2.age)return1;elsereturn0;voidmain()structWorkera4=abc”,25,420,def,58,638,ghi”,49,560,jkl,36,375;structWorkerx=a0;inti;for(i=1;i4;i+)if(Less(x,ai)x=ai;printf(%s%d%6.2fn,x.age,x.pay);輸出結(jié)果為:def58638.00Pressanykeytocontinue四、寫出下列每個(gè)函數(shù)的功能#includeintSA(inta,intb)if

38、(ab)return1;elseif(a=b)return0;elsereturn-1;函數(shù)功能為:根據(jù)實(shí)參a大于、等于或小于實(shí)參b,返回1,0或-1#includeintSC(inta,intb,intc)if(a=b&a=c)returna;if(b=a&b=c)returnb;returnc;函數(shù)功能為:返回實(shí)參a、b、c中的最大數(shù)doubleSF(doublex,intn)/n為大于等于0的整doublep=1,s=1;for(i=1;i=n;i+)p*=x;s+=p/(i+1);returns;函數(shù)功能為:計(jì)算x+x2/2+x3/3+,+xn/(n+1)的值#includeintSC

39、(intx)inta=(int)sqrt(x);inti=2;while(i=a)if(x%i=0)break;i+;if(i=0)return0;elsereturn1;函數(shù)功能為:判斷一個(gè)整數(shù)是否是素?cái)?shù)#includevoidtrans(intx)chara10;inti=0,rem;dorem=x%16;x=x/16;if(rem0)printf(%c”,a-i);printf(n);函數(shù)功能為:將一個(gè)整數(shù)化成十六進(jìn)制數(shù)#includeintWB(inta,intn,intx)for(inti=0;in;i+)if(ai=x)return1;return0e;函數(shù)功能為:根據(jù)整型數(shù)組元素

40、中是否能找到整數(shù)x,返回1或0#includeintWC(inta,intn,intk)intc=0;for(inti=0;i=k)c+;returnc;函數(shù)功能為:返回?cái)?shù)組中前n個(gè)其值大于等于k的元素之和#include#include#includeconstintN=10;intff(intx,inty)intz;printf(%d+%d=,x,y);scanf(%d,&z);if(x+y=z)return1;elsereturn0;voidmain()inti,a,b,c=0;srand(time(0);/初始化隨機(jī)數(shù)系列for(i=0;iN;i+)a=rand()%20+1;/ran

41、d90函數(shù)產(chǎn)生0-32767之間的一個(gè)隨機(jī)數(shù)b=rand()%20+1;c+=ff(a,b);printf(得分:dn,c*10);函數(shù)功能為:函數(shù)ff讓兩個(gè)數(shù)相加,要求輸入其和,判斷結(jié)果是否正確。在主函數(shù)中用隨機(jī)函數(shù)產(chǎn)生兩個(gè)20以內(nèi)的隨機(jī)整數(shù),通過10次調(diào)用這個(gè)函數(shù),算對(duì)一次得10分,計(jì)算所得分intfun6(intm,intn,intb=2)if(mb&nb)returnm*n;elseif(m%b=0&n%b=0)returnb*fun6(m/b,n/b,b);elsereturnfun6(m,n,+b);函數(shù)功能為:此函數(shù)帶有一個(gè)默認(rèn)參數(shù),若使用默認(rèn)值,則通過遞歸調(diào)用,返回前2參數(shù)的最

42、小公倍數(shù);不使用默認(rèn)值時(shí),若最后一個(gè)參數(shù)不小于前2個(gè)參數(shù),則返回前2參數(shù)之乘積;否則,通過遞歸調(diào)用,返回前2參數(shù)最小公倍數(shù)的n倍數(shù)。#include#includevoidLI(intn)int*a=(int*)電腦商場(chǎng)特別版2malloc(n*sizeof(int);inti;for(i=0;i=0;i-)printf(%d,*(a+i);printf(n);free(a);函數(shù)功能為:將從鍵盤輸入的n個(gè)整數(shù)逆序輸出#includeintLK(doublea,intn)doubles=0;inti,m=0;for(i=0;in;i+)s+=ai;s/=n;for(i=0;i=s)m+;ret

43、urnm;函數(shù)功能為:求不小于數(shù)組元素之平均值的各元素之和(前n個(gè))五、根據(jù)下列每個(gè)題目要求編寫程序.編寫一個(gè)函數(shù),函數(shù)頭格式為voidfun4(char*a,intb)”,分別求出由字符指針a所指向的字符串中包含的每種十進(jìn)制數(shù)字出現(xiàn)的次數(shù),把統(tǒng)計(jì)結(jié)果保存在數(shù)組b的相應(yīng)元素。#includevoidfun4(char*a,intb)doif(*a=0&*a=9)b*a-48+;while(*a+);/*voidmain()char*a=122333444499888”;intb10=0;fun4(a,b);for(inti=0;i10;i+)printf(%d,bi);*/編寫一個(gè)函數(shù),函數(shù)頭

44、格式為doubleMean(doubleaMN,intm,intn)”,要求返回二維數(shù)組amn中所有元素的平均值,假定for(int i=1;i=n;i+) s+=i*i;printf(n=%d,s=%d,n,s);在計(jì)算過程是采用變量v存放平均值。#includeconstintM=2,N=3;doubleMean(doubleaMN,intm,intn)doublev=0;for(inti=0;im;i+)for(intj=0;jn;j+)v+=aij;returnv/(m*n);/*voidmain()doublea23=1,2,3,4,5,6;printf(%lfn,Mean(a,2,

45、3);*/編寫一個(gè)遞歸函數(shù)“intFF(inta,intn)”,求出數(shù)組a中所有元素n個(gè)元素之積并返回。#includeintFF(inta口,intn)intmul=1;if(n=1)mul*=a0;elsemul=an-1*FF(a,n-1);returnmul;/*voidmain()inta6=1,2,3,4,5,6;printf(%dn,FF(a,6);*/編寫一個(gè)主函數(shù),利用while循環(huán),求出并顯不滿足不等式1+1/2+1/3+,+1/n5的最小n值。#includevoidmain()doublesum=0;intn=1;while(true)if(sum+1/(double)

46、n5)break;elsesum+=1/(double)n;n+;printf(%d,%lfn,n,sum);編寫一個(gè)主函數(shù),求滿足不等式22+42+,+n21000的最大n值,假定分別用i和s為取偶數(shù)值和累加值的變量,并限定使用do循環(huán)編程。#includevoidmain()ints=0,i=2;dos+=i*i;if(s+(i+2)*(i+2)=1000)break;elsei+=2;while(true);printf(i=%d,s=%d,i,s);編寫一個(gè)主函數(shù),計(jì)算并輸出n的值,其中n值由鍵盤輸入。#includevoidmain()ints=0,n;printf(請(qǐng)輸入n的值:)

47、;scanf(%d,&n);C+語言程序設(shè)計(jì)補(bǔ)充綜合練習(xí)題及參考答案一、單選題.枚舉類型中的每個(gè)枚舉常量的值都是一個(gè)(A)值。A.整數(shù)B.浮點(diǎn)數(shù)C.字符D.邏輯.在每個(gè)C+程序中都必須包含有這樣一個(gè)函數(shù),該函數(shù)的函數(shù)名為(A)。A.mainB.MAINC.nameD.function.C+源程序文件的缺省擴(kuò)展名為(A)。A.cppB.exeC.objD.lik.設(shè)x和y均為bool量,則x&y為真的條件是(D)。A.其中一個(gè)為假B.其中一個(gè)為真C.它們均為假D.它們均為真.設(shè)x和y均為bool量,則x|y為假的條件是(C)。A.它們均為真B.其中一個(gè)為真C.它們均為假D.其中一個(gè)為假.聲明或定

48、義一個(gè)內(nèi)聯(lián)函數(shù)時(shí),必須在函數(shù)開始使用保留字(C)。A.staticB.constC.inlineD.extern.在下面的函數(shù)聲明中,存在著語法錯(cuò)誤的是(D)。A.BC(inta,int);B.BC(int,int);C.BC(int,int=5);D.BC(intx;inty);.下面的哪一個(gè)保留字不能作為函數(shù)的返回類型?(C)。A.voidB.intC.newD.long.假定a為一個(gè)數(shù)組名,則下面的哪一種表示有錯(cuò)誤。(B)。A.aiB.*+aC.*aD.*(a+1).在下面的二維數(shù)組定義中,哪一個(gè)是正確的。(D)。A.inta5;B.inta(10);C.inta;D.inta5=1,2

49、,3,4,5;.在下面的一維數(shù)組定義中,哪一個(gè)有語法錯(cuò)誤。(C)A.inta口=1,2,3;B.inta10=0;C.inta;D.inta5;.在下面的二維數(shù)組定義中,哪一個(gè)是正確的。(B)A.inta5;B.inta5;C.inta;D.inta(10);.假定a為一個(gè)數(shù)組名,則下面的哪一種表示有錯(cuò)誤(B)。A.aiB.*a+C.*aD.*(a+1).假定a為一個(gè)整型數(shù)組名,則元素a4的字節(jié)地址為(C)。A.a+4B.a+8C.a+16D.a+32.假定a為一個(gè)整型數(shù)組名,則元素a4的字節(jié)地址彳I等于a的字節(jié)地址值(char*)a加上(C)。A.4B.8C.16D.32.假定p是一個(gè)指向f

50、loat型數(shù)據(jù)的指針,則p+1所指數(shù)據(jù)的地址比p所指數(shù)據(jù)的地址大(C)。A.1B.2C.4D.8 TOC o 1-5 h z 17.假定AB為一個(gè)類,則執(zhí)行“ABa(4),b5,*p2;”語句時(shí),自動(dòng)調(diào)用該類構(gòu)造函數(shù)的次數(shù)為(A)。A.6B.7C.9D.1118.假定AB為一個(gè)類,px為指向該類動(dòng)態(tài)對(duì)象數(shù)組的指針,該數(shù)組長(zhǎng)度為n,則執(zhí)行“delete口px;”語句時(shí),自動(dòng)調(diào)用該類析構(gòu)函數(shù)的次數(shù)為(B)。A.1B.nC.n-1D,n+119.下面的哪一個(gè)函數(shù)頭的格式不正確。(D)。A.AA(inta,intb)B.AA(inta=0,intb)B.AA(inta=0,intb=0)D.AA(in

51、ta,intb=0)20.假定要對(duì)類AB定義加號(hào)操作符重載成員函數(shù),實(shí)現(xiàn)兩個(gè)AB類對(duì)象的加法,并返回相加結(jié)果,則成員函數(shù)的聲明語句為(B)。A.ABoperator+(AB&a,AB&b);ABoperator+(AB&a);operator+(ABa);AB&operator+();.當(dāng)需要使用ostrstream流類定義一個(gè)流對(duì)象并聯(lián)系一個(gè)字符串時(shí),應(yīng)在文件開始使用#include命令,使之包含(A)文件。A.strstrea.hB.stdlib.hC.iostream.hD.fstream.h TOC o 1-5 h z .當(dāng)使用fstream流類定義一個(gè)流對(duì)象并打開一個(gè)磁盤文件時(shí),文件

52、的隱含打開方式為(D)。A.ios:inB.ios:outC.ios:in|ios:outD.沒有23.當(dāng)使用ifstream流類定義一個(gè)流對(duì)象并打開一個(gè)磁盤文件時(shí),文件的隱含打開方式為(D)。A.ios:binaryB.ios:in|ios:outC.ios:outD.ios:in24.假定AB為一個(gè)類,則執(zhí)行“ABa(4),b3,*p2;”語句時(shí),自動(dòng)調(diào)用該類構(gòu)造函數(shù)的次數(shù)為(B)。A.3B.4C.6D.925.假定AB為一個(gè)類,px為指向該類動(dòng)態(tài)對(duì)象數(shù)組的指針,該數(shù)組長(zhǎng)度為n,則執(zhí)行“deletepx;”語句時(shí),自動(dòng)調(diào)用該類析構(gòu)函數(shù)的次數(shù)為(C)。A.0B.1C.nD.n+1.C+程序的

53、基本功能模塊為(D)。A.表達(dá)式B.標(biāo)識(shí)符C.語句D.函數(shù).存儲(chǔ)以下數(shù)據(jù),占用存儲(chǔ)字節(jié)最多的是(A)。A.0B.0C.0D.n28.在下面的一維數(shù)組定義中,哪一個(gè)有語法錯(cuò)誤。(C)A.int1,2.3B.infC.int虱口ini29.在下面的語句中,不正確的是(B)。A*M式3B,imM=C.inr=(),5tlQ,45mn滯ii.C+語言小的每條簡(jiǎn)單語句以(B)作為結(jié)束符。A.逗號(hào)B.分號(hào)C.空格D.換行符.含隨機(jī)函數(shù)的表達(dá)式rand()%20的值在(D)區(qū)間內(nèi)。A.119B.120C.019D,020.邏輯表達(dá)式x0|y=5的相反表達(dá)式為(B)A.x=0|y!=5B.x0|y!=5D.x

54、0&y!=5.枚舉類型中的每個(gè)枚舉常量的值都是一個(gè)(A)A.整數(shù)B.浮點(diǎn)數(shù)C.字符D.邏輯值.循環(huán)體至少被執(zhí)行一次的語句為(C)語句。A.for循環(huán)B.while循環(huán)C.do循環(huán)D.任何一種循環(huán).在下面的字符數(shù)組定義中,(D)語句有語法錯(cuò)誤。A.chara20=abcdefg”;B.chara=x+y=55;C.chara15=,1?2務(wù)D.chara10=?5?.若用數(shù)組名作為函數(shù)調(diào)用的實(shí)參,傳遞給形參的是(A)。A.數(shù)組的首地址B.數(shù)組中的第一個(gè)元素C.數(shù)組全部元素的值D.數(shù)組元素的個(gè)數(shù).由C+目標(biāo)文件連接而成的可執(zhí)行文件的缺省擴(kuò)展名為(B)。A.cppB.exeC.objD.lik.假定

55、AB為一個(gè)類,則該類的拷貝構(gòu)造函數(shù)的聲明語句為(C)。A.AB&(ABx);B.AB(ABx)C.AB(AB&);D.AB(AB*x).對(duì)于結(jié)構(gòu)中定義的成員,其隱含訪問權(quán)限為(A)。A.publicB.protectedC.privateD.static.在下面構(gòu)造函數(shù)的聲明中,存在著語法錯(cuò)誤的是(D)A.BC(inta,int);B.BC(int,int);C.BC(int,int=5);D.BC(intx;inty);.下面的函數(shù)聲明中,哪一個(gè)是“voidBC(inta,intb);的重載函數(shù)?(B)A.intBC(inta,intb)B.viodBC(inta,charb)C.float

56、BC(inta,intb,intc=0)D.viodBC(inta,intb=0)二、填空題.執(zhí)行coutchar(,A?+2)endl;”語句后得到的輸出結(jié)果為C。.若要在程序文件中進(jìn)行文件輸入輸出操作,則必須在開始的#inlude命令中使用必ream.h頭文件。.已知?A?寵淵ASCII碼為6590,當(dāng)執(zhí)行“intx=,C?+5;”語句后x的值為_72_。.表達(dá)式float(25)/4和int(14.6)%5的值分別為6.25和4。.若需要定義一個(gè)標(biāo)識(shí)符常量,并且使C+能進(jìn)行類型檢查,則應(yīng)在定義語句的開始使用保留字const。.執(zhí)行coutx1=18*3y&x!=10的相反表達(dá)式為x=yI

57、Ix=10.邏輯表達(dá)式ab&b!=15_。.邏輯表達(dá)式x10的相反表達(dá)式為x=-5&x3&x10的相反表達(dá)式為x=10_。.假定x=5,則執(zhí)行a=(xy和x!=y的邏輯值分別為false或0和true或1。.已知?A?在淵ASCII碼為6590,當(dāng)執(zhí)行“charch=14*5+2;coutch5的相反表達(dá)式為x+yb)或*(*p).b)_.假定一個(gè)一維數(shù)組的定義為“char*a8;”,則該數(shù)組所含元素的個(gè)數(shù)為8,所占存儲(chǔ)空間的字節(jié)數(shù)為32字節(jié)。.假定p所指對(duì)象的值為25,p+1所指對(duì)象的值為46,則*p+的值為25。.假定p所指對(duì)象的值為25,p+1所指對(duì)象的值為46,則執(zhí)行“(*p)+;”語

58、句后,p所指對(duì)象的值為26。.假定一個(gè)結(jié)構(gòu)類型的定義為“structBinta5;char*b;廠,則該類型的大小為_24_字節(jié)。.假定一個(gè)結(jié)構(gòu)類型的定義為“structAdoublea,b;A*c;,則該類型的大小為_20字節(jié)。.對(duì)一個(gè)類中的數(shù)據(jù)成員的初始化可以通過構(gòu)造函數(shù)中的初始化表實(shí)現(xiàn),也可以通過構(gòu)造函數(shù)中的函數(shù)體實(shí)現(xiàn)。.當(dāng)一個(gè)類對(duì)象離開它的作用域時(shí),系統(tǒng)將自動(dòng)調(diào)用該類的析構(gòu)函數(shù)。.當(dāng)一個(gè)類對(duì)象被撤消時(shí)將自動(dòng)調(diào)用該類的_析構(gòu)函數(shù)_。.假定AB為一個(gè)類,則執(zhí)行“ABa8;”語句時(shí),系統(tǒng)自動(dòng)調(diào)用該類構(gòu)造函數(shù)的次數(shù)為8。.在定義類對(duì)象的語句執(zhí)行時(shí),系統(tǒng)在建立每個(gè)對(duì)象的過程中將自動(dòng)調(diào)用該類的_構(gòu)

59、造函數(shù)使其初始化。.假定一個(gè)類對(duì)象數(shù)組為AN,當(dāng)離開它的作用域時(shí),系統(tǒng)自動(dòng)調(diào)用該類析構(gòu)函數(shù)的次數(shù)為_N。.假定一個(gè)類AB中有一個(gè)靜態(tài)整型成員bb,在類外為它進(jìn)行定義并初始化為0,所使用的語句為staticintAB:bb=0:。.在一個(gè)派生類中,對(duì)基類成員、類對(duì)象成員和非類對(duì)象成員的初始化次序是先基類成員后_1對(duì)象成員一最后為非類對(duì)象成員。.假定用戶沒有名一個(gè)名為AB的類定義構(gòu)造函數(shù),則系統(tǒng)為其隱含定義的構(gòu)造函數(shù)為AB()。.若需要把一個(gè)函數(shù)“voidF();定義為一個(gè)類AB的友元函數(shù),則應(yīng)在類AB的定義中加入一條語句friendvoidF();。.假定一個(gè)結(jié)構(gòu)類型的定義為“structDin

60、ta;unionintb;doublerc;D*d2;:則該類型的大小為20字節(jié)。.假定要?jiǎng)討B(tài)分配一個(gè)類型為Worker的具有n個(gè)元素的數(shù)組,并由r指向這個(gè)動(dòng)態(tài)數(shù)組,則使用的語句為Worker*r=newWorkern;.當(dāng)撤消一個(gè)含有基類和類對(duì)象成員的派生類對(duì)象時(shí),將首先完成的析構(gòu)函數(shù)定義體的執(zhí)行,接著完成類對(duì)象成員所屬類的析構(gòu)函數(shù)定義體的執(zhí)行,最后完成基類的析構(gòu)函數(shù)定義體的執(zhí)行。.設(shè)px是指向一個(gè)類動(dòng)態(tài)對(duì)象的指針變量,則執(zhí)行“deletepx;”語句時(shí),將自動(dòng)調(diào)用該類的析構(gòu)函數(shù)。.C+語言中每條復(fù)合語句以作為結(jié)束符。.假定一個(gè)枚舉類型的定義為“enumRAab,ac,ad,ae;”,貝Ua

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論