國(guó)家二級(jí)C語言程序設(shè)計(jì)機(jī)試(程序填空題)模擬試卷1(共20題)_第1頁
國(guó)家二級(jí)C語言程序設(shè)計(jì)機(jī)試(程序填空題)模擬試卷1(共20題)_第2頁
國(guó)家二級(jí)C語言程序設(shè)計(jì)機(jī)試(程序填空題)模擬試卷1(共20題)_第3頁
國(guó)家二級(jí)C語言程序設(shè)計(jì)機(jī)試(程序填空題)模擬試卷1(共20題)_第4頁
國(guó)家二級(jí)C語言程序設(shè)計(jì)機(jī)試(程序填空題)模擬試卷1(共20題)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

國(guó)家二級(jí)C語言程序設(shè)計(jì)機(jī)試(程序填空題)模擬試卷1(共5套)(共20題)國(guó)家二級(jí)C語言程序設(shè)計(jì)機(jī)試(程序填空題)模擬試卷第1套一、程序填空題(本題共4題,每題1.0分,共4分。)1、下列給定程序中,函數(shù)fun的功能是:將NXN矩陣主對(duì)角線元素的值與反向?qū)蔷€對(duì)應(yīng)位置上元素的值進(jìn)行交換。例如,若N=3,有下列矩陣:123456789交換后為:321456987請(qǐng)?jiān)谙庐嬀€處填入正確的內(nèi)容并將下畫線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#defineN4/******found******/voidfun(int___1___,intn){inti,s;/******found******/for(___2___;i++){s=t[i][i];t[i][i]=t[i][n—i一1];/******found******/t[i][n一1一i]=___3___;}}main(){intt[][N]=t21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;prinff(“\nTheoriginalarray:\n”);for(i=0;i標(biāo)準(zhǔn)答案:(1)t[][N](2)i=0;i知識(shí)點(diǎn)解析:本題考查:函數(shù)定義;for循環(huán)語句;數(shù)組元素的引用和賦值;變量值交換算法。填空1:根據(jù)main函數(shù)中的函數(shù)調(diào)用語句,可以填寫fun函數(shù)定義中的形參內(nèi)容。填空2:由于是N×N矩陣,所以for語句中循環(huán)變量i的取值范圍是0到N。填空3:for循環(huán)體中是變量值交換算法。2、下列給定程序中,函數(shù)fun的功能是:在形參ss所指字符串?dāng)?shù)組中查找與形參t所指字符串相同的串,找到后返回該串在字符串?dāng)?shù)組中的位置(即下標(biāo)值),若未找到則返回一1。ss所指字符串?dāng)?shù)組中共有N個(gè)內(nèi)容不同的字符串,且串長(zhǎng)小于M。請(qǐng)?jiān)谙庐嬀€處填入正確的內(nèi)容并將下畫線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#include#defineN5#defineM8intfun(char(*ss)[M],char*t){inti;/******found******/for(i=0;i<____1____;i++)if(stremp(ss[i],t)==0)/****found****/return____2____;return一1;}main(){charch[N][M]={.if“,”while”,”switch”,”int“,”for”},t[M];intn,i;printf(“\nTheoriginalstring\n\n”);for(i=0;i標(biāo)準(zhǔn)答案:(1)N(2)i(3)一1知識(shí)點(diǎn)解析:本題考查:for循環(huán)語句;函數(shù)返回值;if語句條件表達(dá)式。填空1:變量i是循環(huán)變量,它的取值范圍是在0到N之間。填空2:如果ss所指字符串?dāng)?shù)組中的字符串和t所指字符串相同的話,則返回其下標(biāo)值,即returni;否則返回一1,即return一1;。填空3:在ma,in函數(shù)中輸出最后結(jié)果,判斷函數(shù)返回值n,如果n=一1,說明沒有找到,否則輸出n。3、人員的記錄由編號(hào)和出生年、月、日組成,N名人員的數(shù)據(jù)已在主函數(shù)中存入結(jié)構(gòu)體數(shù)組std中。函數(shù)fun的功能是:找出指定出生年份的人員,將其數(shù)據(jù)放在形參k所指的數(shù)組中,由主函數(shù)輸出,同時(shí)由函數(shù)值返回滿足指定條件的人數(shù)。請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并把下畫線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#defiReN8typedefstruet{intnum;intyear,month,day;}STU;intfun(STU*std,STU*k,intyear){inti,n=0;f10r(i=0;i標(biāo)準(zhǔn)答案:(1)std[i].year(2)std[i](3)n知識(shí)點(diǎn)解析:本題考查:數(shù)組變量判斷;for循環(huán)語句;函數(shù)返回值。本題要求從給定的人員數(shù)據(jù)中找出與指定出生年份相同的記錄存入k中,并返回符合條件的人數(shù)。填空1:此空判斷結(jié)構(gòu)體變量中的年份與year是否相等,所以應(yīng)填std[i].year。填空2:把符合條件的記錄依次存入實(shí)參k中,所以應(yīng)填std[i]。填空3:函數(shù)返回滿足條件的人數(shù),所以應(yīng)填n。4、給定程序中,函數(shù)fun的功能是:將形參指針?biāo)附Y(jié)構(gòu)體數(shù)組中的三個(gè)元素按num成員進(jìn)行升序排列。請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并把下畫線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#includetypedefstruet{intnum;charname[10];}PERSON;/******found******/voidfun(PERSON___1___){/******found******/___2___temp:if(std[0].num>std[1],num){temp=std[0];std[0]=std[1];std[1]=temp;}if(std[0].num>sta[2].num){temp=std[0];std[0]=std[2];std[2]=temp;}if(std[1].num>std[2].num){temp=std[1];std[1]=std[2];std[2]=temp;}}main(){PERSONstd[]={5,“Zhanghu”,2,“WangLi”,6,“Linblin”};inti;/******found******/fun(___3___);prinffI=“\nTheresultis:\n”);for(i=0;i<3;i++)printf(“%d,%s\n”,std[i],num,std[i].name);}標(biāo)準(zhǔn)答案:(1)std[](2)PERSON(3)std知識(shí)點(diǎn)解析:本題考查:數(shù)據(jù)類型的定義;數(shù)組元素的操作;函數(shù)參數(shù)的傳遞。要使用函數(shù)對(duì)整個(gè)數(shù)組進(jìn)行操作時(shí),應(yīng)使用數(shù)組名作為函數(shù)的實(shí)參。當(dāng)使用數(shù)組名作實(shí)參時(shí),函數(shù)傳遞的實(shí)際上是數(shù)組的首地址,而并非數(shù)組本身,此時(shí)形參除了可以定義為指針變量外,還可以定義為數(shù)組,并且數(shù)組可以不指定大小。但無論用哪種形式,程序在編譯時(shí)都將其作為一個(gè)指針變量處理。填空1:定義形參變量引用數(shù)組std,此時(shí)形參可以定義為指針變量,也可以定義為數(shù)組。由下文可知,程序是通過數(shù)組下標(biāo)對(duì)數(shù)組元素進(jìn)行操作的,因此形參應(yīng)使用數(shù)組形式,而非指針形式。填空2:程序使用變量temp交換結(jié)構(gòu)體數(shù)組元素的值,因而temp應(yīng)定義為PERSON型。填空3:程序通過函數(shù)fun對(duì)數(shù)組std進(jìn)行操作,因此函數(shù)的實(shí)參應(yīng)為std。國(guó)家二級(jí)C語言程序設(shè)計(jì)機(jī)試(程序填空題)模擬試卷第2套一、程序填空題(本題共4題,每題1.0分,共4分。)1、下列給定程序中,函數(shù)fun的功能是:在帶頭結(jié)點(diǎn)的單向鏈表中,查找數(shù)據(jù)域中值為eh的結(jié)點(diǎn)。找到后通過函數(shù)值返回該結(jié)點(diǎn)在鏈表中所處的順序號(hào);若不存在值為ch的結(jié)點(diǎn),函數(shù)返回0值。請(qǐng)?jiān)谙庐嬀€處填入正確的內(nèi)容并將下畫線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#include#defineN8typedefstruetlistintdata;struetlist*next;}SLIST;SLIST*creatlist(char*);voidouflist(SLIST});intfun(SLIST*h,charch){SLIST*P;intn=0;P=h一>next;/******found******/while(P!=__1__){n++:if(P一>data:=ch)/******found******/return__2__;elseP=P一>next:}return0;}main()iSLIST$head:intk;chareh;chae:a[N]=;‘m’,‘P’,’g‘,’a’,‘w’;‘x’.‘r’,‘d’;;head:creatlist(a);outhst(nead);printf(“Enteraletter:”);scanf(“%c,&chj:k:fun(___3___);if(k==0)prinff(“\nNotfound!\n”);elseonnff(Thesequencenumberis:%d\n”,k):}SLIST*creatlist(char*a){SLIST*h,*P,*q;inti;h=P=(SLIST*)malloe(sizeof(SLIST));for(i=0;idata=a[i];P一>next=q;p=q;}P一>next=0:returnh:}voidoutlist(SLIST*h){SLIST*p;P=h一>next;if(P==NULL)prinff(“\nThelistisNULL!\n”);else{printf(“\nHead”);do{prinff(“一>%c”,P一>data);P=p一>next;}while(P!=NULL);printf(“一>End\n”);}}標(biāo)準(zhǔn)答案:(1)NULL(2)n(3)llead,ch知識(shí)點(diǎn)解析:本題考查:鏈表相關(guān)知識(shí);while循環(huán)語句;函數(shù)返回值。填空1:while循環(huán)語句判斷是否到達(dá)鏈表結(jié)尾,鏈表結(jié)尾結(jié)點(diǎn)指針域是NULL。填空2:若找到指定字符,則通過return語句將該結(jié)點(diǎn)在鏈表的順序號(hào)返回給main函數(shù)。填空3:函數(shù)調(diào)用語句,其形式是:函數(shù)名(實(shí)際參數(shù)表),因此根據(jù)函數(shù)定義語句,填入:heaqd,ch。2、給定程序中,函數(shù)fun的功能是將形參給定的字符串、整數(shù)、浮點(diǎn)數(shù)寫到文本文件中,再用字符方式從此文本文件中逐個(gè)讀入并顯示在終端屏幕上。請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并把下畫線刪除,使程序得出正確的結(jié)果。注意:請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的橫線上填入所編寫的若干表達(dá)式或語句。試題程序:#includevoidfun(char*s,inta,doublef){/******found******/__1__fp;chareh;fp=fopen(“filel.txt”,“w”);fprinff(fp,“%s%d%f\n”,s,a,f);fclose(fp);fp=fopen(“filel.txt”,“r”);prinff(“\nTheresult:\n\n”);eh=fgetc(fr,);/******found******/while(!feof(___2___)){/******found******/putchar(___3___);ch=fgetc(fp);}putchar(‘\n’);felose(fp);}main(){chara[10]=“Hello!”;intb=12345;doublec=98.76;fun(a,b,c);}標(biāo)準(zhǔn)答案:(1)FILE*(2)fp(3)ch知識(shí)點(diǎn)解析:填空1:由語句fopen(“filel.txt”,“r”)可知,fp應(yīng)該是文件類型指針,因此本空應(yīng)該填寫FILE*。填空2:feof函數(shù)只能對(duì)文件類型數(shù)據(jù)進(jìn)行操作,因此本空填寫fp。填空3:putchar()代表輸入一個(gè)字符,從ch=fgetc(fp)可以看出本題應(yīng)該填寫ch。3、下列給定程序的功能是:調(diào)用函數(shù)fun將指定源文件中的內(nèi)容復(fù)制到指定的目標(biāo)文件中,復(fù)制成功時(shí)函數(shù)返回1,失敗時(shí)返回0。在復(fù)制的過程中,把復(fù)制的內(nèi)容輸出到屏幕。主函數(shù)中源文件名放在變量8fname中,目標(biāo)文件名放在變量tfname中。請(qǐng)?jiān)谙庐嬀€處填入正確的內(nèi)容并將下畫線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#includeintfun(char*source,char*target){FILE*s,*ft;chareh;/******found******/if((fs=fopen(80uree,__1__))==NULL)retum0;if((ft=fopen(target,“w”))==NULL)retum0;printf(“\nThedatainfile:\n”);eh=fgetc(fs);/******found******/while(!feof(___2___)){putchar(eh);/******found******/fputc(ch,___3___);ch=fgetc(fs);}fclose(fs);fclose(ft);prinff(“\n”);return1;}main(){charsfname[20]=“myfilel”,tfname[20]=“myfile2”:FILE*myf;inti;charc;myf=fopen(sfname,“w”);prinff(“\nThe9riginaldata:\n”);for(i=1;i<30;i++){c=‘A’+rand()%25;fprinff(myf,“%e”,c);prinff(“%c”,c);;;fclose(myf);prinff(“\n\n”);if(fun(sfname,tfname))prinff(“Succeed!”);elseprinff(“Fail!”);}標(biāo)準(zhǔn)答案:(1)“r”(2)fS(3)ft知識(shí)點(diǎn)解析:本題考查:打開文件操作,fopen函數(shù)用來打開一個(gè)文件,其一般形式為“文件指針名=fopen(文件名,使用文件方式);”;文件結(jié)束檢測(cè)函數(shù)feof函數(shù);寫字符函數(shù)fputc,功能是把一個(gè)字符寫入指定的文件中,函數(shù)調(diào)用的形式為“fputc(字符量,文件指針);”。其中,待寫入的字符量可以是字符常量或變量,被寫入的文件可以用寫、讀/寫、追加方式打開。文件一旦使用完畢,需使用關(guān)閉文件函數(shù)fclose將文件關(guān)閉,以避免文件的數(shù)據(jù)丟失等錯(cuò)誤。填空1:本題考查對(duì)文件操作的掌握。打開一個(gè)文件的調(diào)用方式是:fs=fopen(文件名,使用文件方式),以只讀的方式打開文件,所以文件打開方式為“r”。填空2:while循環(huán)語句中,循環(huán)條件通過feof()函數(shù)來檢測(cè)是否到文件結(jié)尾。填空3:fputc()函數(shù)用于將一個(gè)字符寫到磁盤文件上,調(diào)用形式為:fputc(要輸出的字符,文件指針)。4、給定程序中,函數(shù)fun的功能是:調(diào)用隨機(jī)函數(shù)產(chǎn)生20個(gè)互不相同的整數(shù)放在形參a所指數(shù)組中(此數(shù)組在主函數(shù)中已置0)。請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并把下畫線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#include#defineN20voidfun(int*a){inti,x,n=0;x=rand()%20:/******found******/while(n<__1__)for(1=0;1<n;i++/******found******/if(X==a[i])___2___;/******found******/if(==___2___)ja[n]==x;n++;x=rand()%20:}main.(){intx[N]=}0},i;fun(x);pfinff(“Theresult:\n”);for(i=0;i標(biāo)準(zhǔn)答案:(1)N或20(2)brefitk(3)n知識(shí)點(diǎn)解析:填空1:變量n用于存儲(chǔ)數(shù)組的下標(biāo),要通過while語句對(duì)數(shù)組進(jìn)行賦值,數(shù)組的容量為20,因此循環(huán)條件應(yīng)為n<20。填空2:通過一個(gè)for循環(huán)判斷x是否與數(shù)組中已存的元素重復(fù),若重復(fù)則跳出for循環(huán)結(jié)束。填空3:若for循環(huán)是由break語句結(jié)束的,則x與數(shù)組中的元素重復(fù),此時(shí)i必然小于n:若for循環(huán)是因?yàn)檠h(huán)變量i遞增到某值,而不再滿足循環(huán)條件結(jié)束的,說明x的值與數(shù)組中的元素不重復(fù),則此時(shí)i的值等于n。國(guó)家二級(jí)C語言程序設(shè)計(jì)機(jī)試(程序填空題)模擬試卷第3套一、程序填空題(本題共4題,每題1.0分,共4分。)1、給定程序的主函數(shù)中,已給出由結(jié)構(gòu)體構(gòu)成的鏈表結(jié)點(diǎn)a、b、c,各結(jié)點(diǎn)的數(shù)據(jù)域中均存入字符,函數(shù)fun()的作用是:將a、b、c三個(gè)結(jié)點(diǎn)鏈接成一個(gè)單向鏈表,并輸出鏈表結(jié)點(diǎn)中的數(shù)據(jù)。請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并把下畫線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#includetypedefstructlist{chardam;structlist*next:}Q;voidhn(Q*pa,Q*pb,Q*pc){Q*p;/******found******/pa一>next=___1___;pb一>next=pc;P=pa;while(P){/******found******/printf(“%c”,___2___);/******found******/P=___3___;}pfinff(“\n”);}main(){Qa,b,c;a.dam=‘E’;b.data=‘F’;c.data=‘G’:C.next=NULL;hn(&a,&b,&c);}標(biāo)準(zhǔn)答案:(1)pb(2)p一>data(3)p一>next知識(shí)點(diǎn)解析:填空1:將三個(gè)結(jié)點(diǎn)連接起來,即將pa的指針域指向pb,pb的指針域指向pc。填空2:輸出鏈表結(jié)點(diǎn)中的數(shù)據(jù),表示為p一>data。填空3:指針后移,指向下一個(gè)結(jié)點(diǎn),即p=p一>next。2、程序通過定義學(xué)生結(jié)構(gòu)體變量,存儲(chǔ)了學(xué)生的學(xué)號(hào)、姓名和三門課的成績(jī)。所有學(xué)生數(shù)據(jù)均以二進(jìn)制方式輸出到文件中。函數(shù)fun的功能是從形參filename所指的文件中讀入學(xué)生數(shù)據(jù),并按照學(xué)號(hào)從小到大排序后,再用二進(jìn)制方式把排序后的學(xué)生數(shù)據(jù)輸出到filename所指的文件中,覆蓋原來的文件內(nèi)容。請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并把下畫線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:nclude#defineN5typedefstructstudent{longsno;charname[10];floatscore[3];}STU;voidfun(char*filename){FILE*fp;inti,j;STUs[N],t;/******found******/fp=fopen(filename,___1___);fread(s,sizeof(STU),N,fp);felose(fp);for(i=0;i標(biāo)準(zhǔn)答案:(1)“r”(2)>(3)fwrite知識(shí)點(diǎn)解析:填空1:題目中要求從形參fiename所指的文件中讀入學(xué)生的數(shù)據(jù),以此可以看出本空應(yīng)該填寫“r”。填空2:此處的if語句是比較學(xué)號(hào)的大小,如果學(xué)號(hào)大就和學(xué)號(hào)小的換位,以此本空填寫>。填空3:題目要求所有的學(xué)生數(shù)據(jù)均以二進(jìn)制方式輸出到文件中,因此本空填寫fwrite。3、函數(shù)fun的功能是:在有n個(gè)元素的結(jié)構(gòu)體數(shù)組std中,查找有不及格科目的學(xué)生,找到后輸出學(xué)生的學(xué)號(hào);函數(shù)的返回值是有不及格科目的學(xué)生人數(shù)。例如,主函數(shù)中給出了4名學(xué)生的數(shù)據(jù),則程序運(yùn)行的結(jié)果為:學(xué)號(hào):N1002學(xué)號(hào):N1006共有2位學(xué)生有不及格科目請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容,并把下畫線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#ineludetypedefstruet{charnllm[8];double81201"e[2];/******found******/}(1);intfun(STUstd[],intn){inti,k=0;for(i=0;i標(biāo)準(zhǔn)答案:(1)STU(2)11(3)k知識(shí)點(diǎn)解析:本題考查:對(duì)結(jié)構(gòu)體的定義和使用,以及邏輯運(yùn)算符的使用。填空1:STU結(jié)構(gòu)體別名,通過main()中的語句可知。填空2:11只要學(xué)生兩門課成績(jī)有不及格的,就算不及格,因此使用或運(yùn)算。填空3:k返回的是不及格的學(xué)生個(gè)數(shù),有題意可知k是累計(jì)個(gè)數(shù)的。4、用篩選法可得到2~n(n<10000)之間的所有素?cái)?shù),方法是:首先從素?cái)?shù)2開始,將所有2的倍數(shù)的數(shù)從數(shù)表中刪去(把數(shù)表中相應(yīng)位置的值置成0);接著從數(shù)表中找下一個(gè)非0數(shù),并從數(shù)表中刪去該數(shù)的所有倍數(shù);依此類推,直到所找的下一個(gè)數(shù)等于n為止。這樣會(huì)得到一個(gè)序列:2,3,5,7,11,13,17,19,23,……。函數(shù)fun的作用是:用篩選法找出所有小于等于n的素?cái)?shù),并統(tǒng)計(jì)素?cái)?shù)的個(gè)數(shù)作為函數(shù)值返回。請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并把下畫線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#includeinthn(intn){inta[10000],i,j,count=0;for(i=2;i<=n;i++)a[i]=i;i=2;while(i標(biāo)準(zhǔn)答案:(1)a[i](2)a[i](3)0知識(shí)點(diǎn)解析:填空1:因?yàn)楸绢}的方法是首先從素?cái)?shù)2開始,將所有2的倍數(shù)的數(shù)從中刪去(把數(shù)表中相應(yīng)位置置零),可知本空應(yīng)填a[i]。填空2:while循環(huán)表示接著從數(shù)表中找下一個(gè)非零數(shù),并從表中刪去該數(shù)的所有倍數(shù),此空填a[i]。填空3:因?yàn)橐y(tǒng)計(jì)表中素?cái)?shù)個(gè)數(shù),因而只需把置零的數(shù)排除開來,此空填寫0。國(guó)家二級(jí)C語言程序設(shè)計(jì)機(jī)試(程序填空題)模擬試卷第4套一、程序填空題(本題共4題,每題1.0分,共4分。)1、給定程序中,函數(shù)fun的功能是:把形參s所指字符串中最右邊的n個(gè)字符復(fù)制到形參t所指字符數(shù)組中,形成一個(gè)新串。若s所指字符串的長(zhǎng)度小于n,則將整個(gè)字符串復(fù)制到形參t所指字符數(shù)組中。例如,形參s所指的字符串為:abedefgh,n的值為5,程序執(zhí)行后t所指字符數(shù)組中的字符串應(yīng)為:defgh。請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并把下畫線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#include#defineN80voidfun(char*s,intn,char*t){intlen,i,j=0;len=strlen(s);/******found******/if(n>=len)strepy(____1____);else{for(i=len—n;i<=len一1;i++)/******found******/t[j++]=__2__;/******found******/t[i]=____3____;}}main(){chars[N],t[N];intn;printf(“Enterastring:”);gets(s);printf(“Entern:”);seanf(“%d”,&n);fun(s,n,t);printf(“Thestringt:”);puts(t);標(biāo)準(zhǔn)答案:(1)t,s(2)s[i](3)0或’\0’知識(shí)點(diǎn)解析:本題考查:在矩陣中找出在行上最大、在列上最小的那個(gè)元素。填空1:當(dāng)給定的長(zhǎng)度n大于該字符串s的長(zhǎng)度,那么把該字符串直接復(fù)制到t就可以了,所以應(yīng)填t,s。填空2:使用for循環(huán)語句,把最右邊n個(gè)字符依次添加到t中,所以應(yīng)填s[i]。填空3:字符串操作結(jié)束,需要給t加一個(gè)字符串結(jié)束符,所以應(yīng)填0或’\0’。2、給定程序中,函數(shù)fun的功能是:統(tǒng)計(jì)形參s所指的字符串中數(shù)字字符出現(xiàn)的次數(shù),并存放在形參t所指的變量中,最后在主函數(shù)中輸出。例如,若形參S所指的字符串為”abcdef35adgh3kjsdf7”,則輸出結(jié)果為4。請(qǐng)?jiān)谙庐嬀€處填入正確內(nèi)容并將下畫線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#includevoidfun(char*s,int*t){inti,n;n=0;/******found******/for(i=0;___1___!=0;i++)/******found******/if(S[i]>=‘0’&&s[i]<=___2___)n++:/******found******/____3____;}main(){chars[80]=“abcdef35adgh3kjsdf7”;intt;prinff(“\nTineoriginalstringis:%s\n”,s);fun(S,&t);printf(“\nTheresultis:%d\n”,t);}標(biāo)準(zhǔn)答案:(1)s[i](2),9,(3)*t=n知識(shí)點(diǎn)解析:本題考查:for循環(huán)語句;if語句條件表達(dá)式;指針變量。填空1:通過for循環(huán)語句,來判斷是否到字符串結(jié)尾,變量i用于存放字符串?dāng)?shù)組下標(biāo),則應(yīng)填入s[i]。填空2:題目要求判斷數(shù)字字符,所以此處應(yīng)填入,9,。填空3:將數(shù)字字符個(gè)數(shù)存入變量t中,這里需注意變量t是指針變量。說明:if語句的條件表達(dá)式一般會(huì)考查三方面的內(nèi)容:(1)條件判斷,即>與>=、<與<=、=:與!=的區(qū)別,需要仔細(xì)分析題干的意思,確定條件表達(dá)式的內(nèi)容。(2)邏輯判斷,即&&(邏輯與)與‖(邏輯或)的區(qū)別,需要根據(jù)題干確定if條件中若干個(gè)條件表達(dá)式的并存關(guān)系。(3)=(賦值號(hào))與==(等于號(hào))的區(qū)別,注意在if條件中不會(huì)出現(xiàn)=(賦值號(hào))。3、函數(shù)fun的功能是:根據(jù)所給的年、月、日,計(jì)算出該日是這一年的第幾天,并作為函數(shù)值返回。其中函數(shù)isleap用來判別某一年是否為閏年。例如,若輸入:200851,則程序輸出:2008年5月1日是該年的第122天。請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容,并把下畫線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#includeintisleap(intyear){intleap;leap=fyear%4==0&&year%100!=0‖year%400==0);return___1___;}intfun(intyear,intmonth,intday){inttable[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};intdays=0,i;for(i=1;i2)/******found******/days=days+___3___;returndays;}main(){intyear,month,day,days;prinff(“請(qǐng)輸入年、月、日:”);scanf(“%d%d%dtt,year,&month,&day);days=fun(year,month,day);prinff(“%d年%dB%d日是該年的第%d天\n”,year,month,day,days);標(biāo)準(zhǔn)答案:(1)leap(2)day(3)1知識(shí)點(diǎn)解析:本題考查:對(duì)循環(huán)結(jié)構(gòu)的理解和掌握。填空1:leapisleap()函數(shù)判斷是否是閏年,由于初始化2月為28天,但是閏年是29,所以閏年要多加1天,isleap()應(yīng)該返回0或者1,leap的表達(dá)式為邏輯運(yùn)算,得到的結(jié)果剛好是0或1。填空2:day前面累加了平年月份的天數(shù),還需要加上日的天數(shù)。填空3:如果是閏年并且累加月份大于2月,需要多加1天。4、給定程序中,函數(shù)fun的功能是:利用指針數(shù)組對(duì)形參ss所指字符串?dāng)?shù)組中的字符串按由長(zhǎng)到短的順序排序,并輸出排序結(jié)果。ss所指字符串?dāng)?shù)組中共有N個(gè)字符串,且串長(zhǎng)小于M。請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并把下畫線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#inelude#include#deftneN5#deftneM8voidfun(char(*ss)[M]){char*ps[N],*tp;inti,j,k;for(i=0;i標(biāo)準(zhǔn)答案:(1)i(2)ps[j](3)tp知識(shí)點(diǎn)解析:本題考查:按字符串的長(zhǎng)短進(jìn)行排序。填空1:外循環(huán)每循環(huán)一次,k應(yīng)保存當(dāng)前的i值,所以應(yīng)填i。填空2:使用內(nèi)循環(huán)對(duì)i+1后面的字符串長(zhǎng)度進(jìn)行比較,所以應(yīng)填ps[j]。填空3:此處的作用是交換兩個(gè)變量的值,所以應(yīng)填tp。國(guó)家二級(jí)C語言程序設(shè)計(jì)機(jī)試(程序填空題)模擬試卷第5套一、程序填空題(本題共4題,每題1.0分,共4分。)1、下列給定程序中,函數(shù)fun的功能是:把形參a所指數(shù)組中的偶數(shù)按原順序依次存放到a[0]、a[1]、a[2]…中,把奇數(shù)從數(shù)組中刪除,偶數(shù)的個(gè)數(shù)通過函數(shù)值返回。例如,若a所指數(shù)組中的數(shù)據(jù)最初排列為:9,1,4,2,3,6,5,8,7,刪除奇數(shù)后a所指數(shù)組中的數(shù)據(jù)為:4,2,6,8,返回值為4。請(qǐng)?jiān)谙庐嬀€處填入正確的內(nèi)容并將下畫線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#defineN9intfun(inta[],intn){inti,j;j=0;for(i=0;i標(biāo)準(zhǔn)答案:(1)a[i]%2(2)a[j](3)j知識(shí)點(diǎn)解析:本題考查:if語句條件表達(dá)式;數(shù)組變量賦值;函數(shù)返回值。填空1:if語句條件表達(dá)式,判斷數(shù)組元素是否為偶數(shù),對(duì)2求余,結(jié)果為0,則為偶數(shù);結(jié)果為1則為奇數(shù)。填空2:如果該數(shù)組元素是偶數(shù),則將其值保存。填空3:最后按要求將偶數(shù)個(gè)數(shù)通過return語句返回給main函數(shù)。2、下列給定程序中,函數(shù)fun的功能是:在形參s所指字符串中尋找與參數(shù)c相同的字符,并在其后插入一個(gè)與之相同的字符,若找不到相同的字符則不做任何處理。例如,若s所指字符串為“baacda”,c中的字符為a,執(zhí)行后s所指字符串為“baaaacdaa”。請(qǐng)?jiān)谙庐嬀€處填入正確的內(nèi)容并將下畫線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#includevoidfun(char*s,charc){inti,j,n;/******found******/for(i=0;8[i]!=____0_____;i++)if(s[i]==c){/******found******/n=Z______;while(s[i+1+n]!=‘\0’)n+;for(j=i+n+1;j>i;j一一)s[j+1]=s[j];/******found******/s[j+1]=____3____;i=i+1:}}main(){charS[80]=“baacda”,c;printf(“\nThestring:%s\n”,s);prinff(“\nlnputacharacter:”);scanf(“%e”,&c);fun(s,e);prinff(“\n

溫馨提示

  • 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. 人人文庫網(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)論