C語(yǔ)言綜合練習(xí)題_第1頁(yè)
C語(yǔ)言綜合練習(xí)題_第2頁(yè)
C語(yǔ)言綜合練習(xí)題_第3頁(yè)
C語(yǔ)言綜合練習(xí)題_第4頁(yè)
C語(yǔ)言綜合練習(xí)題_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

.z.綜合練習(xí)題一、從以下四個(gè)供選擇的答案中選出正確的一個(gè)答案1、語(yǔ)句printf("%%d%d〞,123);將輸出: A)%123%dB)%%d123C)%d123D)上述語(yǔ)句語(yǔ)法有錯(cuò)"%%〞格式表示輸出一個(gè)"%〞。2、執(zhí)行以下程序段后,a值為: inta,b; a=15;b=12; a=(a--==b++)"a%5:a/5; A)0B)2.8C)4D)2先計(jì)算a--==b++的值:a--的值為15,執(zhí)行后a=14;b++的值為12,執(zhí)行后b=13;15==12為假執(zhí)行a/5即14/5值為2結(jié)果:a=23、判斷字符變量c的值為數(shù)字(’0’’9’)則返回1,否則返回0,可用表達(dá)式: A)‘0’<=c<=‘9’B)‘0’<=c&&c<=‘9’C)‘0’<=c||c<=‘9’D)以上均不是4、對(duì)于int*,y;語(yǔ)句if(*<0)y=-1;elseif(!*)y=0;elsey=1;等價(jià)于: A)y=0;if(*>=0)if(*)y=1;elsey=-1;B)if(*!=0)if(*>0)y=1;elsey=-1;elsey=0; C)if(*<0)y=-1;if(*!=0)y=1;elsey=0; D)y=-1;if(*!=0)if(*>0)y=1;elsey=0;即:-1*<0y=0*=01*>05、循環(huán)for(i=0,j=5;++i!=--j;)printf("%d%d〞,i,j);將執(zhí)行 A)6次B)3次C)0次D)無(wú)限次i=0,j=5,(++i1)!=(--j4)成立:i=1,j=4i=1,j=4,(++i2)!=(--j3)成立:i=2,j=3i=2,j=3,(++i3)!=(--j2)成立:i=3,j=2……6、以下程序段執(zhí)行后s值為: inti=5,s=0; doif(i%2)continue;elses+=i;while(--i); A)15B)9C)6D)以上均不是寫(xiě)成標(biāo)準(zhǔn)形式:doif(i%2)continue;elses+=i;while(--i);i=5,s=0:i%2=1:i=4i=4,s=0:i%2=0:s=0+4=4;i=3i=3,s=4:i%2=1:i=2i=2,s=4:i%2=0:s=4+2=6;i=1i=1,s=6:i%2=1:i=07、對(duì)于以下宏定義: #defineN3 #defineY(n)((N+1)*n)執(zhí)行語(yǔ)句"z=2*(N+Y(5+1))〞后z的值為:A)48B)42C)25D)以上均不是宏定義的執(zhí)行是先替換再參與運(yùn)算z=2*(N+(N+1)5+1)=2*(3+(3+1)*5+1)=488、以下宏替換的表達(dá)不正確的選項(xiàng)是A)宏替換時(shí)不占運(yùn)行時(shí)間B)宏名無(wú)類(lèi)型C)宏替換只是字符替換D)宏名必須用大寫(xiě)字母表示9、語(yǔ)句if(a>b)k=0;elsek=1;(inta,b,k)等價(jià)于: A)k=(a>b)"1:0;B)k=a>b;C)k=a<=b;D)以上均不是10、對(duì)于inti;charc,s[20];從輸入序列123ab45efg中將123讀入i;’b’讀入c;"45efg〞讀入s,則scanf語(yǔ)句應(yīng)寫(xiě)為: A)scanf("%da%c%s〞,i,c,s)B)scanf("%d%*c%c%s〞,&i,&c,s); C)scanf("%da%c%s〞,&i,&c,&s)D)scanf("%d%c%c%s〞,&i,&c,s);11、對(duì)于以下程序段,運(yùn)行后i值為: enumWEEKS{1,2,3,4,5,6,7}; enumWEEKSa=1; inti=0; switch(a){ case1:i=1; case2:i=2; default:i=3; } A)1B)0C)3D)上述程序有語(yǔ)法錯(cuò)誤12、*一程序TEST.C,編譯后運(yùn)行:TEST123456ABC則相應(yīng)的argc及argv[3]分別為:A)3"456〞B)3"ABC〞C)4"456〞D)4"ABC〞argv[0]"TEST〞argv[1]"123〞argv[2]"456〞argv[3]"ABC〞13、如下程序段:intc[]={1,7,12};int*k;k=c;printf("ne*tkis%d",*++k);其輸出應(yīng)為:A)2B)7C)1D)以上均不對(duì)k1c[0]c[1]k1c[0]c[1]12c[2]14、如果變量**有如下類(lèi)型:struct{chara1;1inta2;2}**;如果sizeof(**)的值為3,則:union{chara1;inta2;inta3;}yy;則sizeof(yy)函數(shù)的返回值應(yīng)為:A)2B)4C)5D)定義有錯(cuò)15、執(zhí)行以下程序:#defineMA(*,y)((*)*(y))i=5;i=MA(i,i+1)-7;后變量i的值應(yīng)為:A)30B)19C)23D)1MA(i,i+1)-7((i)*(i+1))–7(5*6)–72316、執(zhí)行以下程序:inti,j;i=3/2+7/2==5;j=45%11+(((7>8)"14:21)==14);后變量i,j的值應(yīng)為:A)i=0j=1B)i=1j=1C)i=0j=2D)i=1j=2i=((3/2+7/2)==5)=((1+3)==5)=(4==5)=0;j=1+(21==14)=1+0=117、如果charcc[]="12345",做sizeof(cc)后的返回值應(yīng)為A)2B)5C)6D)1sizeof()返回參數(shù)對(duì)象的字節(jié)數(shù):這里的參數(shù)是字符數(shù)組cc,有6個(gè)元素.18、如果inti=16,j=23;執(zhí)行printf("%*--%o",i,j)后輸出為:A)10--23B)10--27C)16--23D)16--2719、執(zhí)行以下程序:#defineMA(*,y)(*)*(y)inti=2;i=3/MA(i,i+1)+5;printf("%d\n〞,i);其輸出應(yīng)為:A)5B)8C)0D)以上都錯(cuò)3/MA(i,i+1)+53/(i)*(i+1)+53/2*3+5820、有一函數(shù):intf(inta){autointb=0;staticintc=3;b=b+1;c=c+1;return(a+b+c);}如果有inti,j;則執(zhí)行兩次調(diào)用:i=f(2);j=f(2)后,i,j值為:A)i=7,j=7B)i=7,j=8C)i=8,j=7D)i=8,j=8注意靜態(tài)局部變量staticintc;的含義第一次調(diào)用f(2):開(kāi)場(chǎng)時(shí):b=0,c=3執(zhí)行:b=0+1=1,c=3+1=4;返回:a+b+c=2+1+4=7;調(diào)用完畢后:靜態(tài)局部變量c=4保持不變;第二次調(diào)用f(2):開(kāi)場(chǎng)時(shí):b=0,c=4執(zhí)行:b=0+1=1,c=4+1=5;返回:a+b+c=2+1+5=8;調(diào)用完畢后:靜態(tài)局部變量c=5保持不變;21、有一函數(shù):intf(char*s){intk=0;while(*s)k=k*10+*s++-’0’;return(k);}調(diào)用f("1234〞)的返回結(jié)果是:A)"1234〞B)1234C)"4321〞D)4321while循環(huán)等價(jià)于:while(*s)k=k*10+(*s++)–‘0’;該函數(shù)的作用:將數(shù)字字符串轉(zhuǎn)換成相應(yīng)的整數(shù).22、以下正確的描述是CC語(yǔ)言的預(yù)處理能力是指完成宏替換和包含文件的調(diào)用預(yù)處理命令智能位于C源程序文件的首部但凡C源程序中首行以#標(biāo)識(shí)的控制行都是編譯預(yù)處理命令C語(yǔ)言的編譯預(yù)處理就是對(duì)源程序進(jìn)展初步的語(yǔ)法檢查23、使用fseek()函數(shù)可以實(shí)現(xiàn)的操作是A)改變文件位置指針的當(dāng)前位置B〕文件的順序讀寫(xiě)C〕文件的隨機(jī)讀寫(xiě)D)以上都不是24、inta[]={1,2,3,4,5,6,7,8,9,10},*p=a,i;數(shù)組元素地址的正確表示:

A〕&(a+1)B〕a++C〕&pD〕&p[i]二、填空題1、用for循環(huán)打印147101316192225,其語(yǔ)句應(yīng)為: for(i=1;i<=9;i++)printf("%3d〞,_3*i-2__);2、執(zhí)行完以下語(yǔ)句段后,i,j值分別為:___355,350__ inti,j; j=10*(i=5); i+=j*=i+2;第一條語(yǔ)句執(zhí)行后:i=5,j=50執(zhí)行第二條語(yǔ)句:i+=j*=i+2i+=(j*=(i+2))i+=(j*=7)i+=(j=50*7)i=5+350=355,j=3503、執(zhí)行完以下語(yǔ)句段后,i值為:__5__ staticinta[3][4]={{1,2,3},{4,5,6}},i; i=a[0][5];a[0][0]1*a[0][1]2*+2a[0][2]3*+4a[0][3]"*+6a[1][0]4*+8a[1][1]5*+10a[1][2]6*+12a[1][3]"*+14a[2][0]"*+16a[2][1]"*+18a[2][2]"*+20a[2][3]"*+22a[0][5]的地址:*+(0*4+5)*2=*+10,即對(duì)應(yīng)于a[1][1]。4、執(zhí)行完以下語(yǔ)句段后,i值為:__4___ inti; intf(int*) { staticintk=0; *+=k++; return*; } i=f(2); i=f(3);5、執(zhí)行完以下語(yǔ)句段后,i值為:__18__ inti; intf(int*) { return((*>0)"**f(*-1):3);} i=f(f(1));調(diào)用f(1):成立,執(zhí)行1*f(0)=f(0),調(diào)用f(0)=3所以,f(1)=3;調(diào)用f(3):f(3)=3*f(2)f(2)=2*f(1)=2*3=6所以f(3)=3*6=186、文件函數(shù)rewind()的功能是:使文件fp的位置指針指向文件開(kāi)場(chǎng)7、對(duì)于charc;假設(shè)其值為小寫(xiě)字母,將其轉(zhuǎn)換為相應(yīng)大寫(xiě)字母的表達(dá)式為_(kāi)__c–‘a(chǎn)’+‘A’______8、將p說(shuō)明為字符數(shù)組指針,數(shù)組大小為10,可寫(xiě)為:__char(*p)[10];__9、feof函數(shù)可用于文本文件和二進(jìn)制文件,它用來(lái)判斷即將讀入的文件是否為文件完畢標(biāo)志,假設(shè)是,函數(shù)值為非零值。10、在對(duì)文件進(jìn)展操作的過(guò)程中,假設(shè)要求文件的位置回到文件的開(kāi)頭,應(yīng)當(dāng)調(diào)用的函數(shù)是rewind()11.設(shè)有以下定義:#defineWIDTH80#defineLENGTH(WIDTH+40)則執(zhí)行賦值語(yǔ)句:a=LENGTH*20;后a的值為:240012、head為指向以下構(gòu)造的鏈表指針,統(tǒng)計(jì)鏈表中所有inf域值之和(s)的程序段為: structnlist{ intinf; structnlist*ne*t; }*head,*p; longs; for(p=head,s=0;_p!=NULL_;p=p->ne*t) s+=__p->inf__;13、下面是用二分法從數(shù)組v[n]中查找數(shù)*的函數(shù),返回值為*所在下標(biāo)(假設(shè)找到)或-1(沒(méi)找到): binsearch(int*,intv[],intn) { intlow,high,mid; low=0;high=n-1; while(low<=high){ mid=_(low+high)/2_; if(*<v[mid])high=mid-1; elseif(*>v[mid])low=mid+1; elsereturn__mid_; } return-1; }14、下面程序驗(yàn)證哥德巴赫猜測(cè),即尋找2到1000間滿足"偶數(shù)=素?cái)?shù)1+素?cái)?shù)2〞(如10=3+7)的所有偶數(shù)。素?cái)?shù)指只能被1和自身整除的正整數(shù),如1,2,3,17等。 #include<stdio.h> #defineMA*500 intprime(intn)/*判斷n是否為素?cái)?shù)*/ { inti; for(i=2;i<=n-1;i++) if(!(n%i))break; return_i==n_; } main() { inti,j; for(i=1;i<=500;i++) for(j=1;j<2*i;j+=2) if(_prime(j)&&prime(2*i-j)_){ printf("%d=%d+%d\n〞,2*i,j,2*i-j);/*假設(shè)2*i為兩個(gè)素?cái)?shù)之和*/ break; } }15、對(duì)于整型變量i,j執(zhí)行scanf("%d%*d%d",&i,&j);當(dāng)輸入23456后i=_2_j=_4__16、對(duì)于int*p,*q,i=5,j=6;執(zhí)行:p=&i;q=p;p=&j;后(*p)=_6_,(*q)=__5__17、f(intm){inti,j;for(i=0;i<m;i++)for(j=m-1;j>=0;j--)printf("%1d%c",i+j,j"'*':'#');}如果調(diào)用f(3)將輸出__2*1*0#3*2*1#4*3*2#__18、voidf(int*a,intb){staticintk=0;*a+=++k;b+=2;}假設(shè)執(zhí)行i=2;j=4;f(&i,j);f(&j,i)后i=__3__,j=__6___i23j4i3j46k01k12ab46ab3519、用for循環(huán)打印012012012;for(i=1;i<=9;i++)printf("%2d",__(i-1)%3__);20、定義一個(gè)返回整型的函數(shù)指針p,應(yīng)寫(xiě)為_(kāi)int(*p)();_21、定義字符指針數(shù)組arr,數(shù)組大小為20,應(yīng)寫(xiě)為_(kāi)_char*arr[20];__22、程序Avoidf(charcc[]){ charch; inti=0,j=0; while(cc[i]!=NULL)i++; i--; for(;j<i;i--,j++){ ch=cc[j]; cc[j]=cc[i]; cc[i]=ch; } }等價(jià)于程序Bvoidf(char*cc){ char*p1,*p2,ch;p1=p2=cc; while(_*p2_)p2++; p2--; while(p1<p2){ch=*p2;_*p2_=*p1;_*p1_=ch;_p1++_;p2--;}}23、程序A:intf(intn){if(n<=1)returnn;elsereturnf(n-1)+f(n-2);}等價(jià)于程序B:intf(intn){_intt0,t1,t_;t0=0;t1=1;t=n;while(_n>=2_){t=_t0+t1_;t0=t1;t1=t;n--;}return_t_;}24、以下函數(shù)strcmp(s1,s2)是字符串比擬,根據(jù)s1,s2大小分別返回負(fù)數(shù)(s1<s2),0(s1=s2),正數(shù)(s1>s2).請(qǐng)將缺少的局部補(bǔ)上。strcmp(_char*s1,char*s2_){for(;s1!=_‘\0’_;++s1,++s2)if(*s1!=*s2)break;return(_*s1-*s2_);}25、下面程序輸出結(jié)果是9#definePOWER(*)(*)*(*)main(){inta=1,b=2,t;t=POWER(a+b);printf("%d\n〞,t);}三、程序閱讀理解,并答復(fù)相應(yīng)問(wèn)題1、 #include<stdio.h> inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; main() { ints,i; for(s=0,i=0;i<3;i++) s+=*(*a+i); printf("%d〞,s); for(s=0,i=0;i<3;i++) s+=**(a+i); printf("%d〞,s); }問(wèn)題:上述程序運(yùn)行后,將輸出__615__a[][0]a[][1]a[][2]a[][3]a[0]1234a[1]5678a[2]9101112由于:*(a+i)a[i],*a+ia[0]+i*(*a+i)*(a[0]+i)a[0][i],所以,第一個(gè)循環(huán)是將數(shù)組a的第0行的前3個(gè)元數(shù)相加,值為6;**(a+i)*a[i]a[i][0]所以,第一個(gè)循環(huán)是將數(shù)組a的第0列所有的元數(shù)相加,值為15。2、 #include<stdio.h>#defineF(k)k+3.14#defineP(a) printf("a=%d\n",(int)(a))#defineP1(a)P(a);putchar('\n');#defineP2(a,b)P(a);p1(b);main(){int*=1;{int*=2;P(**F(2));}{for(;*<10;*+=50)P2(*,9.15**+32); }}請(qǐng)寫(xiě)出該程序中有關(guān)宏定義的展開(kāi)式,并給出該程序的運(yùn)行結(jié)果。有關(guān)展開(kāi):P(**F(2));printf("a=%d\n〞,(int)(**F(2)));printf("a=%d\n〞,(int)(**2+3.14));P2(*,9.15**+32);P(*);P1(9.15**+32);P(*);printf("a=%d\n〞,(int)(*));P1(9.15**+32)P(9.15**+32);putchar(‘\n’);P(9.15**+32);printf("a=%d\n〞,(int)(9.15**+32));printf("a=%d\n〞,(int)(*));printf("a=%d\n〞,(int)(9.15**+32));putchar(‘\n’);全部展開(kāi),并整理,得:main(){ int*=1; { int*=2; printf("a=%d\n〞,(int)(**2+3.14)); } { for(;*<10;*+=50) printf("a=%d\n〞,(int)(*)); printf("a=%d\n〞,(int)(9.15**+32)); putchar(‘\n’); }運(yùn)行結(jié)果:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論