版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
國家二級(jí)C語言機(jī)試(操作題)模擬試卷13(共9套)(共27題)國家二級(jí)C語言機(jī)試(操作題)模擬試卷第1套一、程序填空題(本題共1題,每題1.0分,共1分。)1、下列給定程序中,函數(shù)fun的功能是:找出100~x(x≤999)之間各位上的數(shù)字之和為15的所有整數(shù),并在屏幕輸出;將符合條件的整數(shù)的個(gè)數(shù)作為函數(shù)值返回。例如,當(dāng)n值為500時(shí),各位數(shù)字之和為15的整數(shù)有:159、168、177、186、195、249、258、267、276、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492,共有26個(gè)。請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并將下畫線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:1#include<stdio.h>2intfun(intx)3{intn,s1,s2,s3,t;4/*********found*********/5n=【1】;6t=100;7/*********found*********/8while(t<=【2】)9{s1=t%10;s2=(t/10)%10;10s3=t/100;11if(s1+s2+s3==15)12{printf(’’%d’’,t);13n++;14}15/*********found*********/16【3】;17}18returnn;19}20main()21{intx=-1;22while(x>999||x<0)23{printf(’’Pleaseinput(0<x<=999):’’);24scanf(’’%d’’,&x);}25printf(’’\nTheresultis:%d\n’’,fun(x));26}標(biāo)準(zhǔn)答案:(1)0(2)x(3)t++知識(shí)點(diǎn)解析:填空1:變量n用于存放符合條件的整數(shù)的個(gè)數(shù),應(yīng)賦初值為0。填空2:根據(jù)題目要求,確定循環(huán)變量t的取值范圍為t<=x。填空3:循環(huán)變量t自增1操作。二、程序修改題(本題共1題,每題1.0分,共1分。)2、給定程序MODI1.C中,fun函數(shù)的功能是:在任意給定的N個(gè)正整數(shù)中,從左到右依次逐個(gè)取三個(gè)數(shù)作為一組,按值大小找出該組數(shù)的中值,用該中值替換與該組數(shù)對(duì)應(yīng)的原三個(gè)數(shù)中的中間位置的數(shù)。處理后原數(shù)列中首尾2個(gè)數(shù)不變。處理后數(shù)列在主函數(shù)中輸出。例如,有10個(gè)正整數(shù)如下:初始數(shù)列為:657231858214538第1組數(shù)為:657中值為:6替換后的數(shù)列為:667231858214538第2組數(shù)為:5723中值為:7替換后的數(shù)列為:667231858214538第3組數(shù)為:72318中值為:18替換后的數(shù)列為:667181858214538第4組數(shù)為:23185中值為:18替換后的數(shù)列為:667181858214538第5組數(shù)為:1858中值為:8替換后的數(shù)列為:6671888214538第6組數(shù)為:5821中值為:8替換后的數(shù)列為:667181888214538第7組數(shù)為:82145中值為:21替換后的數(shù)列為:66718188214538第8組數(shù)為:214538中值為:38替換后的數(shù)列為:667181888213838最終結(jié)果為:667181888213838請(qǐng)改正程序中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:1#include<stdio.h>2#defineN103intfindmid(inta,intb,intc)4{intt;5t=(a>b)?(b>c?b:(a>c?c:a)):((a>c)?a:((b>c)?c:b));6/*********found*********/7returnb;8}9voidfun(intx[])10{inti,a,b,c,t[N];11/*********found*********/12for(i=0;i<N;i++)t[i]=x[i]13for(i=0;i<N-2;i++)14{a=t[i];b=t[i+1];c=t[i+2];15/*********found*********/16t[i+1]=findmid(a,b,c);17}18}19main()20{inti,x[N]={6,5,7,23,18,5,8,21,45,38};21for(i=0;i<N;i++)22printf(’’%d’’,x[i]);23printf(’’\n’’);24fun(x);25for(i=0;i<N;i++)26printf(’’%d’’,x[i]);27printf(’’\n’’);28}標(biāo)準(zhǔn)答案:(1)returnt;(2)for(i=0;i知識(shí)點(diǎn)解析:(1)函數(shù)findmid的功能是找到a、b、c三個(gè)數(shù)中的中間數(shù),并存放在變量t中,因此應(yīng)返回t。(2)語法錯(cuò)誤,句末缺少分號(hào)。(3)本程序是對(duì)數(shù)組x進(jìn)行操作,數(shù)組t只是用來暫時(shí)存放數(shù)組x中的元素,因此此處應(yīng)為x[i+1]=findmid(a,b,c)。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、請(qǐng)編寫函數(shù)fun,其功能是:將一個(gè)數(shù)字字符串轉(zhuǎn)換為一個(gè)整數(shù)(不得調(diào)用C語言提供的將字符串轉(zhuǎn)換為整數(shù)的函數(shù))。例如,若輸入字符串“-1234”,則函數(shù)把它轉(zhuǎn)換為整數(shù)值-1234。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。試題程序:1#include<stdio.h>2#include<string.h>3longfun(char*p)4{56}7voidmain()8{9chars[6];10longn;11printf("Enterastring:\n’’);12gets(s);13n=fun(s);14printf(’’%1d\n’’,n);15}標(biāo)準(zhǔn)答案:1longfun(char*p)2{3longn=0;4intflag=1;5if(*p==’0’)/*負(fù)數(shù)時(shí)置flag為-1*/6(p++;flag=-1;}7elseif(*p==’+’)/*正數(shù)時(shí)置flaq為1*/8p++;9while(8p!=’\0’)10{n=n*10+*p-’0’;/*將字符串轉(zhuǎn)成相應(yīng)的整數(shù)*/11p++;12}13returnn*flag;14}知識(shí)點(diǎn)解析:if語句的作用是判斷該字符串為正數(shù)還是負(fù)數(shù),while循環(huán)的作用是將字符串轉(zhuǎn)成相應(yīng)的整數(shù)。注意:*p是一個(gè)字符(例如’9’、’4’),并不是一個(gè)數(shù),要將其轉(zhuǎn)成相應(yīng)的數(shù)字需令其減去’0’(不是’\0’),即*p-’0’就得到*p這個(gè)字符的相應(yīng)數(shù)字,例如’0’-’0’=0、’8’-’0’=8等。必須在程序的前面加#include,函數(shù)atol的作用是將字符串轉(zhuǎn)換成長整型數(shù),它是一個(gè)庫函數(shù)。國家二級(jí)C語言機(jī)試(操作題)模擬試卷第2套一、程序填空題(本題共1題,每題1.0分,共1分。)1、給定程序中,函數(shù)fun的功能是:將形參s所指字符串中所有ASCII碼值小于97的字符存入形參t所指字符數(shù)組中,形成一個(gè)新串,并統(tǒng)計(jì)出符合條件的字符個(gè)數(shù)作為函數(shù)值返回。例如,形參s所指的字符串為:Abe@lx56*,程序執(zhí)行后t所指字符數(shù)組中的字符串應(yīng)為:A@156*。注意:部分源程序在文件BIANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>intfun(char*s,char*t){intn=0;while(*s){if(*s<97){/*********found*********/*(t+n)=【1】;n++;}/*********found*********/【2】;}*(t+n)=0;/*********found*********/return【3】;}main(){chars[81],t[81];intn;printf("\nEnterastring:\n");gets(s);n=fun(s,t);printf("\nThereare%dletterwhichASCIIcodeislessthan97:%s\n",n,t);}標(biāo)準(zhǔn)答案:(1)*s(2)s++(3)n知識(shí)點(diǎn)解析:填空1:判斷s所指向的字符串中的字符符合條件時(shí),將當(dāng)前字符存放到t指向的字符串中,所以應(yīng)填*s。填空2:判斷完一個(gè)字符之后,將字符串的指針移到下一個(gè)位置,所以應(yīng)填s++。填空3:題目要求函數(shù)要返回符合條件的字符個(gè)數(shù)n,所以應(yīng)填n。二、程序修改題(本題共1題,每題1.0分,共1分。)2、下列給定程序中,函數(shù)fun的功能是:給定r1個(gè)實(shí)數(shù),輸出平均值,并統(tǒng)計(jì)平均值以上(含平均值)的實(shí)數(shù)個(gè)數(shù)。例如,n=8時(shí),輸入193.199、195.673、195.757、196.051、196。092、196.596、196.579、196.763、所得平均值為195.838745,在平均值以上的實(shí)數(shù)個(gè)數(shù)應(yīng)為5。請(qǐng)改正程序中的錯(cuò)誤,使其能得出正確的結(jié)果。注意:部分源程序在文件MODll.C中,不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#1nclude<stcllib.h>#include<conio.h>#include<Stdio.h>intfun(floatx[],intn)/*********found*********/intj,c=0;floatxa=0.0;for(j=0;j<n;j++)xa+=x[j]/n;printf("ave=%f\n",xa);for(j=0;j<n;j++)/*********found*********/if(x[j]=>xa)C++:returnc;}main(){floatx[100]={193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763);system("cls");printf("%d\n",fun(x,8));}標(biāo)準(zhǔn)答案:(1){intj,c=0;floatxa=0.0;(2)if(x[j]>=xa)知識(shí)點(diǎn)解析:(1)本題著重考查考生對(duì)C語言基本語法以及比較運(yùn)算符的掌握情況。(2)本題中的第一個(gè)錯(cuò)誤:在c語言中,{}應(yīng)成對(duì)出現(xiàn),所以程序中的語句"intj,c=0;floatxa=0.";"應(yīng)改為"{intj,c=0;floatxa=0.0;"或相同作用的語句;本題中的第二個(gè)錯(cuò)誤:在C語言中,判斷大于或等于的運(yùn)算符應(yīng)為>=,所以程序中的語句"if(x[j]=>xa)"應(yīng)改為"if(x[j]>=xa)"或相同作用的語句。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、編寫函數(shù)fun,其功能是:根據(jù)以下公式求P的值,結(jié)果由函數(shù)值帶回。m與n為兩個(gè)正整數(shù)且要求m>n。例如:m=12,n=8時(shí),運(yùn)行結(jié)果為495.000000。注意:部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdio.h>floatfun(intm,intn){}main()/*主函數(shù)*/{voidNONO();printf("P=%f\n",fun(12,8));NONO();}voidNONO(){/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*fp,*wf;inti,m,n;floats;fp=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(fp,"%d,%d",&m,&n);s=fun(m,n);fprintf(wf,"%f\n",s);}fclose(fp);fclose(wf);}標(biāo)準(zhǔn)答案:longjc(intm)。{longs=1;inti;for(i=1,i<=m;i++)s=s*i;returns;}floatfun(intm,intn){floatp;p=1.0*jc(m)/jc(n)/jc(m—n);returnp;}知識(shí)點(diǎn)解析:本題考查算術(shù)運(yùn)算的算法,先建立一個(gè)jc函數(shù)來計(jì)算m的階乘,函數(shù)中使用一個(gè)for循環(huán)來計(jì)算m的階乘,并將計(jì)算結(jié)果作為函數(shù)的返回值。在fun函數(shù)中調(diào)用jc函數(shù),來計(jì)算三個(gè)階乘的除法。國家二級(jí)C語言機(jī)試(操作題)模擬試卷第3套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,函數(shù)fun的功能是:將形參s所指字符串中的所有字母字符順序前移,其他字符順序后移,處理后將新字符串的首地址作為函數(shù)值返回。例如,若s所指字符串為“asdl23fgh543df”,處理后新字符串為“asdfghdf123543”。請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并將下畫線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#include<stdlib.h>#include<string.h>char*fun(char:tos){inti,j,k,n;char*p,*t;n=strlen(s)+1;t=(char*)malloc(n*sizeof(char));p=(char*)malloc(n*sizeof(char));j=0;k=0;for(i=0;i<n;i++){if(((s[i]>=’a’)&&(s[i]<=’z’))||((s[i]>=’A’)&&(s[i]<=’Z’))){/*********found*********/t[j]=【1】;j++;}else{p[k]=s[i];k++;}}/*********found*********/for(i=0;i<【2】;i++)t[j+i]=p[i];/*********found*********/t[j+k]=【3】;returnt;}main(){chars[80];printf("Pleaseinput:");scanf("%s",s);printf("\nTheresultis:%s\n",fun(s));}標(biāo)準(zhǔn)答案:(1)s[i](2)k(3)’\0’或0知識(shí)點(diǎn)解析:填空1:將字符串s中所有字母元素賦給數(shù)組t。填空2:字符串中所有非字母元素放到字母元素后面,所以i的取值范圍是0~k。填空3:最后給字符串加入結(jié)束標(biāo)識(shí)‘\0’。二、程序修改題(本題共1題,每題1.0分,共1分。)2、使用VC++2010打開考生文件夾下modil中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,函數(shù)fun的功能是:計(jì)算并輸出k以內(nèi)最大的10個(gè)能被13或17整除的自然數(shù)之和。k的值由主函數(shù)傳入,若k的值為500,則函數(shù)的值為4622。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODI1.C中,不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>intfun(intk){intm=0,mc=0,j;while((k>=2)&&(mc<10)){/*********found*********/if((k%13=0)||(k%17=0)){m=m+k;mc++;}k--;/*********found*********/returnm;}voidmain(){system("CLS");printf("%d\n",fun(500));}標(biāo)準(zhǔn)答案:(1)if((k%13==0)||(k%17==0))(2)}returnm;知識(shí)點(diǎn)解析:(1)C語言中,x能被y整除的表示方法是x%y=0,而不是題目中所表示的x%y=0。所以,if((k%13=0)||(k%17=0))修改后的結(jié)果應(yīng)該是答案所示信息。(2)程序中缺少程序完整所需的"}",此類信息在做題時(shí)一定要注意,可以在做題前先運(yùn)行一下程序,這樣明顯的錯(cuò)誤一般都會(huì)有錯(cuò)誤信息顯示出來。比如丟失"}"的錯(cuò)誤信息是"Compoundstatementmissing}infunctionfun"。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun,其功能是:實(shí)現(xiàn)兩個(gè)字符串的連接(不要使用庫函數(shù)strcat),即把p2所指的字符串連接到p1所指的字符串的后面。例如,分別輸入下面兩個(gè)字符串:“FirstString--”“SecondStfing”程序輸出:“FirstString--SecondString”注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>voidfun(charp1[],charp2[]){}voidmain(){chars1[80],s2[40];system("CLS");printf("Enters1ands2:\n");scanf("%s%s",s1,s2);printf("s1=%s\n",s1)?printf("s2=%s\n",s2);printf("Invokefun(s1,s2):\n");fun(s1,s2);printf("Afterinvoking:\n");printf("%s\n",s1);}標(biāo)準(zhǔn)答案:voidfun(charp1[],charp2[]){inti,j;for(i=0;p1[i]!=’\0’;i++);/*求出的i為p1字符串的總長度,包括結(jié)束標(biāo)記符*/for(j=0;p2[j]!=’\0’;j++)p1[i++]=p2[j];/*將p2字符串連在p1字符串后面*/p1[i]=’\0’;/*在字符串最后加上結(jié)束標(biāo)記符*/}知識(shí)點(diǎn)解析:本題用兩個(gè)循環(huán)完成操作,第1個(gè)循環(huán)的作用是求出第1個(gè)字符串的長度,即將i指到第1個(gè)字符串的末尾;第2個(gè)循環(huán)的作用是將第2個(gè)字符串的字符連到第1個(gè)字符串的末尾。最后在第1個(gè)字符串的結(jié)尾加上字符串結(jié)束標(biāo)識(shí)‘\0’。國家二級(jí)C語言機(jī)試(操作題)模擬試卷第4套一、程序填空題(本題共1題,每題1.0分,共1分。)1、給定程序中,函數(shù)fun的功能是:計(jì)算形參x所指數(shù)組中N個(gè)數(shù)的平均值(規(guī)定所有數(shù)均為正數(shù)),作為函數(shù)值返回;并將大于平均值的數(shù)放在形參y所指數(shù)組中,在主函數(shù)中輸出。例如,有10個(gè)正數(shù):4630324061745154826,平均值為:30.500000主函數(shù)中輸出:4632404548請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!1#include<stdlib.h>2#include<stdio.h>3#defineN104doublefun(doublex[],double*y)5{inti,j;doubleav;6/**********found**********/7av=___1__;8/**********found**********/9for(i=0;i<N;i++)av=av+__2__;10for(i=j=0;i<N;i++)11/**********found**********/12if(x[i]>av)y[__3__]=x[i];13y[j]=-1;14returnav;15}16main()17{inti;doublex[N],y[N];18for(i=0;i<N;i++){x[i]=rand()%50;printf(’’%4.0f’’,x[i]);}19printf(’’\n’’);20printf(’’\nTheaverageis:%f\n’’,fun(x,y));21for(i=0;y[i]>=0;i++)printf(’’%5.1f’’,y[i]);22printf(’’\n’’);23}標(biāo)準(zhǔn)答案:(1)0(2)x[i]/N(3)j++知識(shí)點(diǎn)解析:函數(shù)fun的功能是計(jì)算形參x所指數(shù)組中N個(gè)數(shù)的平均值,同時(shí)利用傳址參數(shù)傳回平均值。第一空:“returnav;”可知變量av保存了平均值,故第一空處aV初始化應(yīng)為0,即第一空處應(yīng)填“0”。第二空:“for(i=0;i<N;i++)av=av+__2__;”后面的循環(huán)就是比較比平均值大的元素,因此這個(gè)循環(huán)結(jié)束后av中的值就是平均值。由“av=(x[0]+x[1]+…x[N-1])/N=x[0]/N+x[1]/N+…+x[N-1]/N”可知,第二空處應(yīng)為“x[i]/N”。第三空:“if(x[i]>av)y[__3__]=x[i];”是將x[i]保存在y所指的數(shù)組中,i是循環(huán)變量,j初始化為0,故y[]的計(jì)數(shù)變量為j,故第三空處應(yīng)為“j++”。二、程序修改題(本題共1題,每題1.0分,共1分。)2、給定程序MODI1.C中函數(shù)fun的功能是:計(jì)算S所指字符串中含有t所指字符串的數(shù)目,并作為函數(shù)值返回。請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!1#include<stdio.h>2#include<string.h>3#defineN804intfun(char*s,char*t)5{intn;6char*p,*r;7n=0;8while(*s)9{p=s;10/**********found**********/11r=p;12while(*r)13if(*r==*p){r++;p++;}14elsebreak;15/**********found**********/16if(*r=0)17n++;18s++;19}20return0;21}22main()23{chara[N],b[N];intm;24printf(’’\nPleaseenterstringa:’’);gets(a);25printf(’’\nPleaseentersubstringb:’’);gets(b);26m=fun(a,b);27printf(’’\nTheresultis:m=%d\n’’,m);28}標(biāo)準(zhǔn)答案:(1)r=t;(2)if(*r==0)知識(shí)點(diǎn)解析:函數(shù)的功能是計(jì)算字符串中含有某子串的數(shù)目。(1)根據(jù)“while(*r)if(*r===*p){r++;p++;}”可知該循環(huán)是比較r和p指向的字符串是否相等,本題的要求是計(jì)算字符串中含有某子串的數(shù)目,p指向的源字符串s,所以r應(yīng)指向的是字符串t,故第一標(biāo)識(shí)下應(yīng)改成“r==t;”。(2)根據(jù)題意第二標(biāo)識(shí)下“if(*r=0)”應(yīng)該是判斷r是否指向字符串尾,在C語言中,等于是用“==”標(biāo)識(shí),因此第二標(biāo)識(shí)下應(yīng)改成“if(*r==0)”。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、請(qǐng)編寫函數(shù)fun,函數(shù)的功能是求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。例如:二維數(shù)組中的值為:13579299946999813570則函數(shù)值為61。注意:部分源程序存在文件PROG1.C文件中。請(qǐng)勿改動(dòng)主函數(shù)mare和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。l#include<stdio.h>2#defineM43#defineN54intfun(inta[M][N])5{67}8main()9{Intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};10inti,j,y;voidNONO();11printf(’’Theoriginaldatais:\n’’);12for(i=0;i<M;i++)13{for(j=0;j<N;j++)printf(’’%6d’’,aa[i][j]);14printf(’’\n’’);15}16y=fun(aa);17printf(’’\nThesum:%d\n’’,y);18printf(’’\n’’);19NONO();20}21voidNONO()22{/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/23inti,j,y,k,aa[M][N];24FILE*rf,*wf;25rf=fopen(’’in.dat’’,’’r’’);26wf=fopen(’’out.dat’’,’’w’’);27for(k=0;k<10;k++){28for(i=0;i<M;i++)29for(j=0;j<N;j++)fscanf(rf,’’%d’’,&aa[i][j]);30y=fun(aa);31fprintf(wf,’’%d\n’’,y);32}33fclose(rf);34fclose(wf);35}標(biāo)準(zhǔn)答案:1inttot=0,i,j;2for(i=0;i<N;i++){3tot+=a[0][i];4tot+=a[M-1][i];5}6for(i=1;i<M-1;i++){7tot+=a[i][0];8tot+=a[i][N-1];9}10returntot;知識(shí)點(diǎn)解析:進(jìn)入fun函數(shù),根據(jù)前面的分析:求周邊元素的和,可以采用兩個(gè)循環(huán)分別把行元素和列元素相加。但要避免把周邊元素重復(fù)相加。國家二級(jí)C語言機(jī)試(操作題)模擬試卷第5套一、程序填空題(本題共1題,每題1.0分,共1分。)1、給定程序中已建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,鏈表中的各結(jié)點(diǎn)按結(jié)點(diǎn)數(shù)據(jù)域中的數(shù)據(jù)遞增有序鏈接。函數(shù)fun的功能是:把形參x的值放入一個(gè)新結(jié)點(diǎn)并插入到鏈表中,插入后各結(jié)點(diǎn)數(shù)據(jù)域的值仍保持遞增有序。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include#include#defineN8typedefstructlist{intdata;structlist*next;}SLIST;voidfun(SLIST*h,intx){SLIST*p,*q,*s;s=(SLIST*)malloc(sizeof(SLIST));/**********found**********/s->data=【1】;q=h;p=h->next;while(p!=NULL&&x>p->data){/**********found**********/q=【2】;p=p->next;}s->next=p;/**********found**********/q->next=【3】;}SLIST*creatlist(int*a){SLIST*h,*p,*q;inti;h=p=(SLIST*)malloc(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)printf("\nThelistisNULL!\n");else{printf("\nHead");do{printf("->%d",p->data);p=p->next;}while(p!=NULL);printf("->End\n");}}main(){SLIST*head;intx;inta[N]={11,12,15,18,19,22,25,29};head=creatlist(a);printf("\nThelistbeforeinserting:\n");outlist(head);printf("\nEnteranumber:");scanf("%d",&x);fun(head,x);printf("\nThelistafterinserting:\n");outlist(head);}標(biāo)準(zhǔn)答案:(1)x(2)p(3)s知識(shí)點(diǎn)解析:第一空:“s=(SLIST*)malloc(sizeof(SLIST));”顯然s是一個(gè)新結(jié)點(diǎn),第一空處是給新結(jié)點(diǎn)的數(shù)據(jù)域賦值x,因此,第一空處應(yīng)該是“s->data=x;”。第二空:循環(huán)“while(p!=NULL&&x>p->data)”是用來尋找插入位置,當(dāng)鏈表沒有結(jié)束且x仍然大于p所指向的結(jié)點(diǎn)的數(shù)據(jù)時(shí),就不斷的向鏈表后面搜索。在循環(huán)體內(nèi),語句“p=p->next;”是找到下一個(gè)結(jié)點(diǎn)的地址,變量q用來保存當(dāng)前結(jié)點(diǎn)的地址,因此,第二空處應(yīng)該是“q=p;”。第三空:“s->next=p;”將s插入鏈表當(dāng)中,s指向p,此時(shí)s結(jié)點(diǎn)已經(jīng)指向需要插入位置的下一個(gè)節(jié)點(diǎn),因此,在需要插入s結(jié)點(diǎn)的位置的上一個(gè)結(jié)點(diǎn)需要指向s結(jié)點(diǎn),故第三處應(yīng)該為“q->next=s;”。二、程序修改題(本題共1題,每題1.0分,共1分。)2、給定程序MODI1.C中函數(shù)fun的功能是:計(jì)算正整數(shù)num的各位上的數(shù)字之積。例如,若輸入:252,則輸出應(yīng)該是:20。若輸入:202,則輸出應(yīng)該是:0。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#includelongfun(longnum){/************found************/longk;do{k*=num%10;/************found************/num\=10;}while(num);return(k);)main(){longn;printf("\nPleaseenteranumber:")scanf("%ld",&n);printf("\n%ld\n",fun(n));}標(biāo)準(zhǔn)答案:(1)longk=1;(2)num/=10;知識(shí)點(diǎn)解析:(1)第一個(gè)錯(cuò)誤標(biāo)識(shí)下的k是函數(shù)的返回值,子函數(shù)fun中在執(zhí)行“k*=num%10:”之前,只進(jìn)行了定義,卻沒有賦初值,編譯時(shí)會(huì)警告變量在使用之前沒有初始化k。k代表了各個(gè)位上的數(shù)字之積,其初值應(yīng)為1。因此,第一個(gè)標(biāo)識(shí)下的“l(fā)ongk;”改為“l(fā)ongk=1:”。(2)第二個(gè)標(biāo)識(shí)下的符號(hào)“\”是非法字符,根據(jù)題意,這里應(yīng)該是進(jìn)行除法運(yùn)算,所以“num\=10:”應(yīng)該改為“num/=10;”。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、請(qǐng)編寫一個(gè)函數(shù)fun,它的功能是:計(jì)算n門課程的平均分,計(jì)算結(jié)果作為函數(shù)值返回。例如:若有5門課程的成績是:90.5,72,80,61.5,55。則函數(shù)的值為:71.80。注意:部分源程序存在文件PROGI.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。#includefloatfun(float*a,intn){}main(){floatscore[30]={90.5,72,80,61.5/55},aver;voidNONO();aver=fun(score,5);printf("\nAveragescoreis:%5.2f\n",aver);NONO();}voidNONO()(/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*fp,*wf;inti,j;floataver,score[5];fp=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){for(j=0;j<5;j++)fscanf(fp,"%f,",&score[j]);aver=fun(score,5);fprintf(wf,"%5.2f\n",aver);}fclose(fp);fclose(wf);}標(biāo)準(zhǔn)答案:inti;floatave=0.0;for(i=0;i知識(shí)點(diǎn)解析:(1)在函數(shù)中首先定義平均分的變量,并將其初始化值置為0。(2)然后在for循環(huán)中,求得所有成績的總分,并在總分的基礎(chǔ)上求得平均分。國家二級(jí)C語言機(jī)試(操作題)模擬試卷第6套一、程序填空題(本題共1題,每題1.0分,共1分。)1、給定程序中,函數(shù)fun的功能是:利用指針數(shù)組對(duì)形參ss所指字符串?dāng)?shù)組中的字符串按由長到短的順序排序,并輸出排序結(jié)果。ss所指字符串?dāng)?shù)組中共有N個(gè)字符串,且串長小于M。請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并把下畫線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#include<string.h>#defineN5#defineM8voidfun(char(*ss)[M]){char*ps[N],*tp;inti,j,k;for(i=0;i<N;i++)ps[i]=ss[i];for(i=0;i<N一1;i++){/*********found*********/k=【1】;for(j=i+1;j<N;j++)/*********found*********/if(strlen(ps[k])<strlen(【2】))k=j;/*********found*********/tp=ps[i];ps[i]=ps[k];ps[k]=【3】;}printf("\nThestringaftersortingbylength:\n\n");for(i=0;i<N;i++)puts(ps[i]);}main(){charch[N][M]={"red","green","blue","yellow","black");inti;printf("\nTheoriginalstring\n\n");for(i=0;i<N;i++)puts(ch[i]);printf("\n’);fun(ch);}標(biāo)準(zhǔn)答案:(1)i(2)ps[j](3)tp知識(shí)點(diǎn)解析:本題是按字符串的長短進(jìn)行排序。填空1:外循環(huán)每循環(huán)一次,k應(yīng)保存當(dāng)前的i值,所以應(yīng)填i。填空2:使用內(nèi)循環(huán)對(duì)i+1后面的字符串長度進(jìn)行比較,所以應(yīng)填ps[j]。填空3:此處的作用是交換兩個(gè)變量的值,所以應(yīng)填tp。二、程序修改題(本題共1題,每題1.0分,共1分。)2、下列給定程序中,函數(shù)fun的功能是:求出s所指字符串中最后一次出現(xiàn)的t所指字符串的地址,并通過函數(shù)值返回,在主函數(shù)中輸出從此地址開始的字符串;若未找到,則函數(shù)值為NULL。例如,當(dāng)字符串中的內(nèi)容為“abcdabfabcdx”,t中內(nèi)容為“ab”時(shí),輸出結(jié)果應(yīng)是“abedx”。當(dāng)字符串中的內(nèi)容為“abcdabfabcdx”,t中內(nèi)容為“abd”時(shí),則程序輸出未找到信息“notbefound!”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>#include<string.h>char*fun(char*s,char*t){char*p,*r,*a;/*********found*********/a=Null;while(*s){p=s;r=t;while(*r)/*********found*********/if(r==P){r++,P++,}elsebreak;if(*r==’\0’)a=s;s++;}returna;}voidmain(){chars[100],t[100],*P;system("CLS");printf("\nPleaseenterstrings:");scanf("%s",s);printf("\nPleaseentersubstringt:");scanf("%s",t);p=fun(s,t);if(p)printf("\nTheresultis:%s\n",p);elseprintf("\nNotfound!\n");}標(biāo)準(zhǔn)答案:(1)a=NULL;(2)if(*r==*p)知識(shí)點(diǎn)解析:(1)a=Null;是個(gè)明顯的語法錯(cuò)誤,指針指向空值的關(guān)鍵字應(yīng)為NULL。(2)r和p均為指針變量,分別指向兩個(gè)字符串中的字符變量,循環(huán)條件是當(dāng)r和p所指向的字符相同時(shí),進(jìn)行指針后移操作,故此處應(yīng)為if(*r==*p)。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、請(qǐng)編寫函數(shù)fun,該函數(shù)的功能是:判斷字符串是否為回文,若是,則函數(shù)返回1,主函數(shù)中輸出"YES",否則返回0,主函數(shù)中輸出"NO"?;匚氖侵疙樧x和倒讀都一樣的字符串。例如,字符串LEVEL是回文,而字符串123312就不是回文。注意:部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdio.h>#defineN80intfun(char*str){}main(){chars[N];FILE*out;char*test[]={"1234321","123421","123321","abcdCBA"};inti;printf("Enterastring:");gets(s),printf("\n\n");puts(s);if(fun(S))printf("YES\n");elseprintf("NO\n");/******************/out=fopen("out.dat","w");for(i=0;i<4;i++)if(fun(test[i]))fprintf(out,"YES\n");elsefprintf(out,"NO\n");fclose(out);/******************/}標(biāo)準(zhǔn)答案:intfun(char*str){inti,n=0,fg=1;char*p=str;while(*p)/*將指針p置位到字符串末尾,并統(tǒng)計(jì)字符數(shù)*/{n++;p++;}for(i=0;i<n/2;i++)/*循環(huán)比較字符*/if(str[i]=str[n一1一i]);/*相同,什么都不作*/else/*不同,直接跳出循環(huán)*/{fg=0;break;}returnfg;}知識(shí)點(diǎn)解析:判斷回文就是將第一個(gè)字符與最后一個(gè)字符比較,第二個(gè)字符與倒數(shù)第二個(gè)字符進(jìn)行比較,依此類推,直到中間的字符,如果比較的結(jié)果都相同,那么這個(gè)字符串就是回文,否則不是。程序中循環(huán)語句用來遍歷字符串,條件語句用來判斷當(dāng)前字符與對(duì)應(yīng)位置的字符是否相同。國家二級(jí)C語言機(jī)試(操作題)模擬試卷第7套一、程序填空題(本題共1題,每題1.0分,共1分。)1、給定程序中,函數(shù)fun的功能是:將形參std所指結(jié)構(gòu)體數(shù)組中年齡最大者的數(shù)據(jù)作為函數(shù)值返回,并在main函數(shù)中輸出。請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并把下畫線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>typeclefstruct{charname[10];intage;}STD;STDfun(STDstd[],intn){STDmax;int:i;/*********found*********/max=【1】;for(i=1;i<n;i++)/*********found*********/if(max.a(chǎn)ge<【2】)max=std[i];returnmax;}main(){STDstd[5]={"aaa",17,"bbb",16,"ccc",18,"ddd",17,"eee",15};STDmax;max=fun(std,5);printf("\nTheresult:\n");/*********found*********/printf("\nName:%s,Age:%d\n",【3】,max.a(chǎn)ge);}標(biāo)準(zhǔn)答案:(1)std[0](2)std[i].a(chǎn)ge(3)max.name知識(shí)點(diǎn)解析:填空1:變量一用于存儲(chǔ)數(shù)組中年齡組大的元素。首先將數(shù)組的第一個(gè)元素賦給nmx,然后依次向后比較,得到年齡最大的元素,因而在給max賦初值時(shí),應(yīng)為:max=std[0]。填空2:if條件判斷語句表達(dá)的是max.a(chǎn)ge應(yīng)該和結(jié)構(gòu)體數(shù)組中的每個(gè)年齡進(jìn)行比較,從而得到最大者的年齡。填空3:從printf的表達(dá)式可看出,要輸出的值應(yīng)為年齡最大者的name。二、程序修改題(本題共1題,每題1.0分,共1分。)2、下列給定程序中,函數(shù)fun的功能是:將n個(gè)無序整數(shù)從小到大排序。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<conio.h>#include<stdio.h>#include<stdlib.h>fun(intn,int*a){inti,j,p,t;for(j=0,j<n-1;j++){p=j;/*********found*********/for(i=j+1;i<n-1;i++)if(a[p]>a[i])/*********found*********/t=i;if(p!=j){t=a[j];a[j]=a[p];a[p]=t;}}}putarr(intn,int*z){inti;for(i=1;i<=n;i++,z++){printf("%4d",*z);if(!(i%10))printf("\n");}printf("\n”);}voidmain(){intaa[20]={9,3,0,4,1,2,5,6,8,10,7),n=11;system("CLS");printf("\nBeforesortirig%dnumbers:\n",n);putarr(n,aa);fun(n,aa);printf("\nAftersorting%dnumbers:\n",n);putarr(n,aa);}標(biāo)準(zhǔn)答案:(1)for(i=j+1;i<n;i++)(2)p=i;知識(shí)點(diǎn)解析:該程序是對(duì)n個(gè)無序數(shù)實(shí)現(xiàn)從小到大的排序,先找出整數(shù)序列的最小項(xiàng),置于指針第1個(gè)元素的位置;再找出次小項(xiàng),置于第2個(gè)元素的位置;之后順次處理后續(xù)元素。(1)數(shù)組的長度為n,所以最后一個(gè)元素的下標(biāo)值為n一1,i的取值范圍應(yīng)該包括此下標(biāo)值。(2)p是中間變量,存放值較小的元素下標(biāo)。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、請(qǐng)編寫函數(shù)fun,其功能是:移動(dòng)字符串中的內(nèi)容,移動(dòng)的規(guī)則是把第1~m個(gè)字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。例如,字符串中原有的內(nèi)容為"ABCDEFGHIJK",m的值為3,移動(dòng)后,字符串中的內(nèi)容應(yīng)該是”DEFGHIJKABC”。注意:部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<string.h>#defineN80voidfun(char*w,intm){}voidmain(){FILE*wf;chara[N]="ABCDEFGHIJK",b[N]="ABCDEFGHIJK";intm;printf("Theoriginastring:\n");puts(a);printf("\n\nEnterm:");scanf("%d",&m);fun(a,m);printf("\nThestringaftermoving:\n");puts(a);printf("\n\n");/*********found*********/wf=fopen("out.dat","w");fun(b,3);fprintf(wf,"%s",b);fclose(wf);/*********found*********/}標(biāo)準(zhǔn)答案:voidfun(char*w,Intm){inti,j;chart;for(i=1;i<=m;i++)/*進(jìn)行m次的循環(huán)左移*/{t=w[0];for(j=1;w[j]!=’\0’;j++)/*從第2個(gè)字符開始以后的每個(gè)字符都依次前移一個(gè)字符*/w[j一1]=w[j];w[j一1]=t;/*將第1個(gè)字符放到最后一個(gè)字符中*/}}知識(shí)點(diǎn)解析:本題應(yīng)采用“循環(huán)左移”的算法,多層循環(huán)用于控制移動(dòng)的字符的個(gè)數(shù),即需進(jìn)行多少次循環(huán),內(nèi)嵌循環(huán)的作用是將從第2個(gè)字符以后的每個(gè)字符依次前移一個(gè)位置,最后將第1個(gè)字符放到最后一個(gè)字符中。國家二級(jí)C語言機(jī)試(操作題)模擬試卷第8套一、程序填空題(本題共1題,每題1.0分,共1分。)1、下列給定程序中,函數(shù)fun的功能是:把形參a所指數(shù)組中的偶數(shù)按原順序依次存放到a[o]、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<stdio.h>#defineN9intfun(inta[],intr1){inti,j;j=0;for(i=0;i<n;i++)/*********found*********/if(【1】==0){/*********found*********/【2】=a[i];j++;}/*********found*********/return【3】;}main(){intb[N]={9,1,4,2,3,6,5,8,7},i,n;printf("\nTheoriginaldata:\n");for(i=0;i<N;i++)printf("%4d",b[i]);printf("\n");n=fun(b,N);printf("\nThenumberofever1:%d\n",n);printf("\nTheever1:\n");for(i=0;i<n;i++)printf("%4d",b[i]);printf("\n");}標(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ù)。二、程序修改題(本題共1題,每題1.0分,共1分。)2、下列給定程序中,函數(shù)fun的功能是:按以下遞歸公式求函數(shù)的值。例如,當(dāng)給n輸入5時(shí),函數(shù)值為18;當(dāng)給n輸入3時(shí),函數(shù)值為14。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>/*********found*********/fun(n){intc;/*********found*********/if(n=1)c=10;elsec=fun(n一1)+2;return(c);}main(){intn;printf("Entern:");scanf("%d",&n);printf("Theresult:%d\n\n",fun(n));}標(biāo)準(zhǔn)答案:(1)intfun(intn)(2)if(n==1)知識(shí)點(diǎn)解析:本題考查:有參函數(shù)定義;if語句條件表達(dá)式中==與=的區(qū)別。(1)定義有參函數(shù)時(shí),形參變量要分別定義其類型,根據(jù)主函數(shù)中的調(diào)用函數(shù)可知,此處形參變量應(yīng)定義為int型。(2)if條件判斷表達(dá)式中,n=1是賦值表達(dá)式,表達(dá)式的值永遠(yuǎn)為真,不能形成判斷條件,應(yīng)將n=1改為n==1。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、規(guī)定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun,其功能是:使字符串中尾部的*號(hào)不多于n個(gè),若多于n個(gè),則刪除多余的*號(hào);若少于或等于n個(gè),則不做任何操作,字符串中間和前面的*號(hào)不刪除。例如,字符串中的內(nèi)容為“****A*BC*DEF*G*******”,若n的值為4,刪除后,字符串中的內(nèi)容應(yīng)為“****A*BC*DEF*G****”;若n的值為7,則字符串中的內(nèi)容仍為“****A*BC*DEF*G*******”。n的值在主函數(shù)中輸入。編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdio.h>voidfun(char*a,intn){}main(){chars[81];intn;printf("Enterastring:\n");gets(s);printf("Entern:");scanf("%d",&n);fun(s,n);printf("Thestringafterdeleted:\n");puts(s);}標(biāo)準(zhǔn)答案:voidfun(char*a,intn){inti=0,k=0;char*p,*t;p=t=a;/*將指針移動(dòng)到字符串末尾*/while(*t)t++;t一一;/*從后往前如果是‘*’則使k++,找到最后一個(gè)*所在的位置,并記錄‘*’的個(gè)數(shù)*/while(*t==’*’)/*指針t指向前一個(gè),同時(shí)標(biāo)量k增加一*/{k++,t一一,)/*如果最后*的個(gè)數(shù)大于允許的個(gè)數(shù)*/if(k>n)/*循環(huán)次數(shù)不大于前面的字符與最大允許*的個(gè)數(shù)之和*/{while(*p&&p<t+n+1)/*把字符保存到數(shù)組a中*/{a[i]=*p;i++;p++;}a[i]=’\0’;}}知識(shí)點(diǎn)解析:本題考查:循環(huán)判斷語句;字符串的操作。字符串中尾部*號(hào)不能多于n個(gè),多余的要?jiǎng)h除。首先需要通過while循環(huán)統(tǒng)計(jì)字符串尾部*號(hào),然后通過if條件語句完成尾部*號(hào)數(shù)和n的比較,若尾部*號(hào)數(shù)多于n個(gè),則需要把n個(gè)*號(hào)和其余字符重新保留。國家二級(jí)C語言機(jī)試(操作題)模擬試卷第9套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,函數(shù)fun的功能是:利用指針數(shù)組對(duì)形參ss所指字符串?dāng)?shù)組中的字符串按由長到短的順序排序,并輸出排序結(jié)果。ss所指字符串?dāng)?shù)組中共有N個(gè)字符串,且串長小于M。請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并把下畫線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#include<string.h>#defineN5#defineM8voidfun(char(*ss)[M]){char*ps[N],*tp;inti,j,k;for(i=0;i<N;i++)ps[i]=ss[i
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024民房買賣合同:城市住宅小區(qū)民房產(chǎn)權(quán)交易范本12篇
- 2024年環(huán)保管家技術(shù)服務(wù)全面合作協(xié)議
- 2025版專業(yè)打印設(shè)備年度維保及備件供應(yīng)合同3篇
- 福建省南平市外屯中學(xué)高一化學(xué)測(cè)試題含解析
- 業(yè)務(wù)員與公司合作協(xié)議書
- 2024橋涵施工勞務(wù)合同
- 2024-2025學(xué)年初升高銜接-文言句式(判斷句)說課稿
- 旅途迎風(fēng):業(yè)務(wù)全紀(jì)實(shí)
- 科技數(shù)碼:融資與未來
- 基金協(xié)議書范本(2篇)
- 2025年中國誠通控股集團(tuán)限公司校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 《Unit 5 What do we eat 》(說課稿)-2024-2025學(xué)年滬教版(2024)英語三年級(jí)上冊(cè)
- 2024年加油站的年度工作總結(jié)范文(2篇)
- 私募股權(quán)投資基金管理公司部門劃分與職責(zé)
- 福建省晉江市松熹中學(xué)2024-2025學(xué)年七年級(jí)上學(xué)期第二次月考語文試題
- (新版)廣電全媒體運(yùn)營師資格認(rèn)證考試復(fù)習(xí)題庫(含答案)
- 智慧人力引領(lǐng)未來-2024年生成式AI賦能人力資源管理研究報(bào)告
- 教師及教育系統(tǒng)事業(yè)單位工作人員年度考核登記表示例范本1-3-5
- 《產(chǎn)業(yè)鏈基礎(chǔ)理論》課件
- 殘疾兒童(孤獨(dú)癥)康復(fù)服務(wù)機(jī)構(gòu)采購項(xiàng)目招標(biāo)文件
- ISO27001信息安全管理體系培訓(xùn)資料
評(píng)論
0/150
提交評(píng)論