



版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
201I年計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言上機(jī)題庫(kù)(1)ー、填空題:程序通過(guò)定義學(xué)生結(jié)構(gòu)體變量,存儲(chǔ)了學(xué)生的學(xué)號(hào)、姓名和3門課的成績(jī)。所有學(xué)生數(shù)據(jù)均以二進(jìn)制方式輸出到文件中。函數(shù)fun的功能是重寫形參filename所指文件中最后ー個(gè)學(xué)生的數(shù)據(jù),即用新的學(xué)生數(shù)據(jù)覆蓋該學(xué)生原來(lái)的數(shù)據(jù),其它學(xué)生的數(shù)據(jù)不變。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include#defineN5typcdcfstructstudent{longsno;charname[10];floatscore[3];}STU;voidfun(char*filename,STUn){FILE*fp;fp=fbpen(_l_,ケb+“);/**********found**********/fseek(_2_,-(long)sizeofi[STU),SEEKEND);/**********f^jund**********/fwrite(&n,sizeof(STU),1,3_);fclose(fp);}main(){STUt[N]={{10001,HMaChaoM,91,92,77},{10002,MCaoKaiM,75,60,88},{10003,MLiSi",85,70,78},{10004,“FangFang”,90,82,87},{10005,“ZhangSan”,95,80,88}};STUn={10006,”ZhaoSi”,55,70,68},ss[N];intij;FILE*fp;fp=fbpen(nstudent.datM,"wbM);fwrite(t,sizeof(STU),N,fp);fclose(fp);fp=fbpen(Mstudent.daf,"rbH);frcad(ss,sizeofKSTU),N,fp);fclose(fp);printfC'XnTheoriginaldata:\n\nM);for(j=0;jo{printf(M\nNo:%ldName:%-8sScores:H,ss[j].sno,ss[j].name);for(i=0;i<3;i-H-)printf("%6.2f”,ss[j].score[i]);printf("\nM);|fun("student.dat",n);printfi("\nThedataaftermodifing:\n\n");fp=fopen("student.dat","rb");fread(ss,sizeofifSTU),N,fp);fclose(fp);for(j=0;jo{printf("\nNo:%ldName:%-8sScores:",ss[j].sno,ss|j].name);for(i=0;i<3;i++)printf("%6.2fM,ss[j].score[i]);printfC'\nH);解題答案:/**********第—?空**********/fp=fopen(filename,Mrb+H);/**********第一空**********/fseek(fp,-(long)sizeof(STU),SEEKEND);fwrite(&n,sizeof(STU),1,fp);二、改錯(cuò)題:給定程序MODILC中的函數(shù)Creatlink的功能是創(chuàng)建帶頭結(jié)點(diǎn)的單向鏈表,并為各結(jié)點(diǎn)數(shù)據(jù)域賦〇到m-1的值。請(qǐng)改正函數(shù)Creatlink中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#inckide#includctypedefstructaa{intdata;structaa*next;}NODE;NODE*Creatlink(intn,intm){NODE*h=NULL,*p,*s;inti;p=(NODE)malloc(sizeofi(NODE));h=p;p->next=NULL;fbr(i=l;i<=n;i-H-){s=(NODE*)malloc(sizeof(NODE));s->data=rand()%m;s->next=p->next;p->next=s;p=p->next;/*********************/returnp;outlink(NODE*h){NODE*p;p=h->next;printf(M\n\nTHELIST:\n\nHEADM);while(p)p=p->next;printff'n”);{NODE*head;hcad=Crcatlink(8,22);outlink(head);解題答案:*********f^jund***********/p=(NODE*)malloc(sizeof(NODE));/*********************/returnh;三、程序題:請(qǐng)編寫函數(shù)ftin,函數(shù)的功能是:統(tǒng)計(jì)一行字符串中單詞的個(gè)數(shù),作為函數(shù)值返回。一行字符串在主函數(shù)中輸入,規(guī)定所有單詞由小寫字母組成,單詞之間由若干個(gè)空格隔開,一行的開始沒(méi)有空格。注意:部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。給定源程序:#include#include#defineN80intfun(char*s)main(){charline[N];intnum=0;voidNONO();printfif'Enterastring:\nM);gets(line);num=fun(line);printff'Thenumberofwordis:%d\n\n",num);NONO();voidNONO(){/?請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;inti,num;charline[N],*p;rf=fbpen(,,in.datM;,rH);wf=fopen(”〇ut.dat",“w”);fbr(i=0;i<10;i-H-){fgets(line,N,rf);p=strchr(line,*\n*);if(p!=NULL)*p=0;num=fun(line);fprintfl(wf,H%d\nM,num);|fclose(rf);fclose(wf);)參考答案:intfim(char*s){intk=1;while(*s){ifi[*s=**)k++;returnk;2011年計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言上機(jī)題庫(kù)(2)一、填空題:給定程序的功能是:從鍵盤輸入若干行文本(每行不超過(guò)80個(gè)字符),寫到文件myfile4.txt中,用ー1作為字符串輸入結(jié)束的標(biāo)志。然后將文件的內(nèi)容讀出顯示在屏幕上。文件的讀寫分別由自定義函數(shù)ReadText和WriteText實(shí)現(xiàn)。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include#include#includevoidWriteText(FILE*);voidReadText(FILE*);main(){FILE*fp;if((fp=fbpenC,myfile4.txtM,"w,,))=NULL){printグopenfail!!\nM);exit(O);}WriteText(fp);fclose(fp);if((fp=fdpen(,,myfile4.txt",,,r,,))=NULL){printffopenfail!!\nH);exit(O);)ReadText(fp);fclose(fp);voidWriteText(FILE 1 ){charstr[81];printfi("\nEnterstringwith-1toend:\nM);gets(str);while(strcmp(str,"-ln)!=0){fputs( 2 ,fw);fputs(H\nM,fw);gets(str);voidReadText(FILE*fr){charstr[81];printf("\nReadfileandoutputtoscreen:\n");fgets(str,81,fr);while(!feofi(fr)){printff%s”,3 );fgets(str,81,fr);解題答案:/********** —.jAr**********/voidWriteText(FILE*fw)/**********第一空**********/fputs(str,fw);fputs("\n",fw);/**********=**********/printf("%s",str);二、改錯(cuò)題:給定程序MODI1.C中函數(shù)fUn的功能是:從低位開始取出長(zhǎng)整型變量s中奇數(shù)位上的數(shù),依次構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當(dāng)s中的數(shù)為:7654321時(shí),I中的數(shù)為:7531。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include/************************/voidfun(longs,longt){longsl=10;*t=s%10;while(s>0){s=s/100;*t=s%10*si+*t;/************************/si=si*100;main(){longs,t;printf("\nPleaseenters:H);scanfifn%ldH,&s);fun(s,&t);printf("Theresultis:%ld\n",t);解題答案:/************^Qund************/voidfiin(longs,long*t)/************************/sl=sl*10;三、程序題:函數(shù)fiin的功能是:將兩個(gè)兩位數(shù)的正整數(shù)a、b合并形成一個(gè)整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的個(gè)位和百位上,b數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的千位和十位匕例如,當(dāng)a=45,b=12時(shí),調(diào)用該函數(shù)后,c=1524。注意:部分源程序存在文件PROG1.C中。數(shù)據(jù)文件IN.DAT中的數(shù)據(jù)不得修改。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。給定源程序://includevoidfun(inta,intb,long*c)main(){inta,b;longc;voidNONO();prin氓"Inputa,b:");scanf(M%d,%dH,&a,&b);fiin(a,b,&c);printfi(*'Theresultis:%ld\nM,c);NONO();voidNONO(){/?本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;inti,a,b;longc;rf=fbpen("in.daロケ”);wf=fbpen(,,out.dat,,,MwM);fbr(i=0;i<10;i-H-){fscanffrf,"%d,%dn,&a,&b);fun(a,b,&c);fprintfifwf,"a=%d,b=%d,c=%ld\nM,a,b,c);fclose(rf);fclose(wf);}解題答案:{*c=(b/10)*l000+(a%10)*100+(b%10)*10+(a/10);|201I年計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言上機(jī)題庫(kù)(3)ー、填空題:給定程序中,函數(shù)fun的功能是:將自然數(shù)1?10以及它們的平方根寫到名為myfile3.txt的文本文件中,然后再順序讀出顯示在屏幕上。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考牛.文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include#includeintfim(char*fiiame){FILE*fp;inti,n;floatx;if((fp=fbpen(fname,HwM))=NULL)return0;/********************/fprintfif 1 ,M%d%f\n**,i,sqrt((double)i));printfC\nSucceed!!\nn);/**********f^jund**********/printf("\nThedatainfile:\nM);/**********^)und**********/if((fp=fbpen( 3 ,"r"))=NULL)return0;fscanf(fp,M%d%f,,&n,&x);while(!feof(fp)){priロ氓"%d%f\n",n,x);fscanR中,”%d%F,&n,&x);}fclose(fp);main(){charfiiame[]=Mmyfile3.txtM;fun(fhame);解題答案:fprintfi(fp,"%d%f\nM,i,sqrt((double)i));printfT\nSucceed!!\n”);fclose(fp);/**********第二月**********/if((fp=fopen(fhame,V))=NULL)二、改錯(cuò)題:給定程序MODILC中firn函數(shù)的功能是:將n個(gè)無(wú)序整數(shù)從小到大排序。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include#includefun(intn,int*a){inti,j,p,t;for(j=0;jo(P=j;/************************/for(冃+1;ioif(a[p]>a[i])/************ d************/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(M%4dM,*z);if(!(i%10))printff'n");}printf(M\nM);)main(){intaa[20]={9,3,0,4,1,2,5,6,8,10,7},n=ll;printft"\n\nBeforesorting%dnumbers:\nn,n);putarr(n,aa);fun(n,aa);printfi["\nAftersorting%dnumbers:\nM,n);putarr(n,aa);解題答案:#include#includefun(intn,int*a){inti,j,p,t;for(j=0;jo(P=j;/************************//************f^)und************/P=i;三、程序題:函數(shù)fim的功能是:將兩個(gè)兩位數(shù)的正整數(shù)a、b合并形成一個(gè)整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的個(gè)位和百位上,b數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的十位和千位上。例如,當(dāng)a=45,例如時(shí),調(diào)用該函數(shù)后,¢=2514.注意:部分源程序存在文件PROG1.C屮。數(shù)據(jù)文件IN.DAT中的數(shù)據(jù)不得修改。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。給定源程序:#inckidevoidfun(inta,intb,long*c)(|main(){inta,b;longc;voidNONO();printfflnputa,b:");scanff%d,%d”,&a,&b);fun(a,b,&c);printff'Theresultis:%ld\n",c);NONO();voidNONO(){/?本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/inti,a,b;longc;rf=fopen("in.dat",nrM);wf=fopen(”〇ut.dat”,W);fbr(i=0;i<10;i-H-){fscanfifrf,,,%d,%d,\&a,&b);fun(a,b,&c);fprintfifwf,Ma=%d,b=%d,c=%ld\nM,a,b,c);fclose(rf);fclose(wf);解題答案:*c=(b%10)*1000+(a%10)*100+(b/l0)*10+a/10;201I年計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言上機(jī)題庫(kù)(4)一、填空題:程序通過(guò)定義學(xué)生結(jié)構(gòu)體變量,存儲(chǔ)了學(xué)生的學(xué)號(hào)、姓名和3門課的成績(jī)。所有學(xué)生數(shù)據(jù)均以二進(jìn)制方式輸出到文件中。函數(shù)fun的功能是從形參filename所指的文件中讀入學(xué)生數(shù)據(jù),并按照學(xué)號(hào)從小到大排序后,再用二進(jìn)制方式把排序后的學(xué)生數(shù)據(jù)輸出到filename所指的文件中,覆蓋原來(lái)的文件內(nèi)容。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include#defineN5typedefstructstudent{longsno;charname[10];floatscore[3];}STU;voidfun(char*filename){FILE*fp;inti,j;STUs[N],t;fp=fbpen(filename,_1_J;fread(s,sizeof(STU),N,fp);fclose(fp);/********************/if(s[i].sno 2 s[j].sno){t=s[i];s[i]=s[j];s[j]=t;}fp=fopen(filename,"wb");/**********^^und**********/二進(jìn)制輸出?/3_(s,sizeo二進(jìn)制輸出?/fclose(fp);main(){STUt[N]={{WOOS/ZhangSan11,95,80,88},{10003,"LiSi",85,70,78},{10002,nCaoKai",75,60,88},{lOOO^'TangFang'',90,82,87},{10001,"MaChao",91,92,77}},ss[N];inti,j;FILE*fp;fp=fopen(Mstudent.datn,"wbM);fwrite(t5sizeof(STU),5,fp);fclose(fp);prints"\n\nTheoriginaldata:\n\nu);for(j=0;jo{printf(TT\nNo:%ldName:%-8sScores:M,t[j].sno,t[j].name);for(i=0;i<3;i++)printf(H%6.2fn,t[j].score[i]);printf("\nM);}fun(nstudent.datM);print"へn'nThedataaftersorting:\n\n");fp=fopen(Mstudent.datM,"rb");frcad(ss,sizeofifSTU),5,fp);fclose(fp);for(j=0;j<>{printfi[n\nNo:%ldName:%-8sScores:M,ss[j].sno,ss[j].name);for(i=0;i<3;i++)printf("%6.2fss[j].score[i]);printf("\nH);解題答案:/**********第一空**********/fp=fopen(filename,Mrbn);if(s[i].sno>s[j].sno)/**********第二月**********/fwrite(s,sizeofifSTU),N,fp);/?二進(jìn)制輸出?/二、改錯(cuò)題:給定程序MODI1.C中函數(shù)ftin的功能是:在字符串的最前端加入n個(gè)?號(hào),形成新串,并且覆蓋原串。注意:字符串的長(zhǎng)度最長(zhǎng)允許為79。請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include#includcvoidfun(chars[],intn)chara[80],*p;s=p;fbr(i=O;i<a[i]=M*"i++)>{a[i]=*P;i++;/**********^Qund***********/while(*p++)a[i]=O;strcpy(s,a);main(){intn;chars[80];printf("\nEnterastring:");gets(s);printfi("\nThestringヽ"%s\”\n”,s);printff’ヽnEntern(numberof*):");scanf(M%d",&n);fun(s,n);printf("\nThestringafterinsert:ヽ"%s\”\nM,s);解題答案:/********** nd***********/P=s;/**********^Qund***********/while(*p++);三、程序題:請(qǐng)編寫函數(shù)ftin,函數(shù)的功能是:統(tǒng)計(jì)各年齡段的人數(shù)。N個(gè)年齡通過(guò)調(diào)用隨機(jī)函數(shù)獲得,并放在主函數(shù)的age數(shù)組中;要求函數(shù)把0至9歲年齡段的人數(shù)放在d[0]中,把10至19歲年齡段的人數(shù)放在d[l]中,把20至29歲年齡段的人數(shù)放在d[2]中,其余依此類推,把100歲(含100)以上年齡的人數(shù)都放在d[10]中。結(jié)果在主函數(shù)中輸出。注意:部分源程序在文件PR0G1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。給定源程序:#include#defineN50#defineM11voidfun(int*a,int*b)doublemd(){statict=29,c=217,m=1024,r=0;r=(r*t+c)%m;rctum((double)r/m);main(){intage[N],i,d[M];voidNONO(intd[M]);fbr(i=O;i<p>printf("Theoriginaldata:\nH);fbr(i=O;iprintfC\n\nH);fun(age,d);fbr(i=0;i<10;i++)printf(,,%4d—%4d:%4d\nM,i*10,i*10+9,d[i]);printfif'Over100:%4d\nn,d[10]);NONO(d);}voidNONO(intd[M]){/?請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*wf;inti;wf=fopen("out?dat"Jw");fbr(i=0;i<10;i-H-)巾rintRwf,"%4d—%4d:%4d\n",i*10,i*10+9,d[i]);fprintfifwf,HOver100:%4d\nn,d[10]);fclose(wf);}參考答案:voidfun(int*a,int*b){inti,j;fbr(i=0;i<M;i++)b[i]=0;for(i=0;i<N;i-H-){j=a[i]/10;if(j>10)b[M-1]-H-;elseb[j]-H-;doublemd(){statict=29,c=217,m=1024,r=0;r=(r*t+c)%m;retum((double)r/m);}201I年計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言上機(jī)題庫(kù)(5)一、填空題:給定程序中已建立一個(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;voidfiin(SLIST*h,intx){SLIST*p,*q,*s;s=(SLIST*)malloc(sizeof(SLIST));/**********f^jund**********/s->data=1p=h->next;while(p!=NULL&&x>p->data){/**********^ound**********/q=一2.p=p->next;s->next=p;q->next=3SLIST*creatlist(int*a){SLIST*h,*p,*q;inti;h=p=(SLIST*)malloc(sizeof(SLIST));fbr(i=O;i<p>{q=(SLIST*)malloc(sizeof(SLIST));q->data=a[i];p->next=q;p=q;}p->next=O;returnh;}voidoutlist(SLIST*h){SLIST*p;p=h->next;if(p==NULL)printff\nThelistisNULL!也”);else{primR”\nHead”);do{printf(n->%d",p->data);p=p->next;}while(p!=NULL);printf("->End\nM);})main(){SLIST*head;intx;inta[N]={l1,12,15,1849,22,25,29};head=creatlist(a);printfif'^nThelistbeforeinserting:\nM);outlist(head);printf("\nEnteranumber:");scanff%d”,&x);fun(head,x);printナヘnThelistafterinserting:\n',);outlist(head);}解題答案:/********** —.jA:*********/s->daa=x;/**********第一空**********/q=p;/**********=**********/q->next=s;二、改錯(cuò)題:給定程序MODI1.C中函數(shù)fbn的功能是:計(jì)算正整數(shù)num的各位上的數(shù)字之積。例如,若輸入:252,則輸出應(yīng)該是:20。若輸入:202,則輸出應(yīng)該是:〇。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#includelongfun(longnum)/************^Qund************/longk;do{k*=num%10;/************^Qund************/num\=10;}while(num);return(k);|main(){longn;printf("\nPleaseenteranumber:n);scanグ%Id”,&n);printf("\n%ld\n",fiin(n));)解題答案:longk=l;num/=10;三、程序題:請(qǐng)編寫ー個(gè)函數(shù)fun,它的功能是:計(jì)算n門課程的平均分,計(jì)算結(jié)果作為函數(shù)值返回。例如:若有5門課程的成績(jī)是:90.5,72,80,61.5,55則函數(shù)的值為:71.80o注意:部分源程序存在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。給定源程序:#includefloatfun(float*a,intn)(}main(){floatscore[30]={90.5,72,80,61.5,55},aver;voidNONO();aver=fiin(score,5);printflf'XnAveragescoreis:%5.2f\nH,aver);NONO();}voidNONO(){/?本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*fp,*wf;inti,j;floataver,score[5];fp=fbpen("in.dat“Jr");wf=fopen(”〇ut.dat",“w”);fbr(i=0;i<10;i-H-){for(j=0;j<5;j++)fscanf(mj%f,”,&score[jD;aver=fun(score,5);fprintfi(wf,M%5.2f\nM,aver);fclose(fp);fclose(wf);解題答案:(inti;floatave=0.0;fbr(i=0;iave=ave/n;returnave;}201I年計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言上機(jī)題庫(kù)(6)ー、填空題給定程序中已建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,在main函數(shù)中將多次調(diào)用fun函數(shù),每調(diào)用一次fun函數(shù),輸出鏈表尾部結(jié)點(diǎn)中的數(shù)據(jù),并釋放該結(jié)點(diǎn),使鏈表縮短。請(qǐng)?jiān)诔绦虻牟?劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序://include#include#defineN8typedcfstructlist{intdata;structlist*next;}SL1ST;voidfun(SLIST*p){SLIST*t,*s;t=p->next;s=p;while(t->next!=NULL){s=t;/********************/t=t-> 1/???*******Cund**********/printff%d",—2_);s->next=NULL;/**********found**********/free( 3 );)SLIST*creatlist(int*a){SLIST*h,*p,*q;inti;h=p=(SLIST*)malloc(sizeof(SLIST));fdr(i=0;i<p>{q=(SLIST*)malloc(sizeof(SLIST));q->data=a[i];p->next=q;p=q;}p->next=0;returnh;voidoutlist(SLIST*h){SLIST*p;p=h->next;if(p==NULL)printf(M\nThelistisNULL!\n");else{printfi(,,\nHeadM);do{printff?>%d”p>data);p=p->next;}while(p!=NULL);printfC',->End\nn);}}main(){SLIST*head;inta[N]={ll,12,15,18,l9,22,25,29};head=creatlist(a);printfi[H\nOutputfromhead:\nM);outlist(head);printf("\nOutputfromtail:\nM);while(head->next!=NULL){fun(hcad);printf("\nOutputfromheadagain:\nH);outlist(head);解題答案:/**********第一空**********/t=t->next;printf("%d”ナ,data);/**********第二月**********/free(t);二、改錯(cuò)題:給定程序MODH.C中函數(shù)fim的功能是:將字符串中的字符按逆序輸出,但不改變字符串中的內(nèi)容。例如,若字符串為abed,則應(yīng)輸出:dcba?請(qǐng)改正程序中的錯(cuò)誤,使它能計(jì)算出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include/************************/fiin(chara){if(*a){fiin(a+l);printf(',%cH*a);main(){chars[10]-,abcdH;printff處理前字符串=%s\n處理后字符串=",s);ftin(s);printfiTW");解題答案:/************f^ound************/voidfun(char*a)/************f^)und************/printf("%c",*a);三、程序題:請(qǐng)編寫ー個(gè)函數(shù)fun,它的功能是:比較兩個(gè)字符串的長(zhǎng)度,(不得調(diào)用C語(yǔ)言提供的求字符串長(zhǎng)度的函數(shù)),函數(shù)返回較長(zhǎng)的字符串。若兩個(gè)字符串長(zhǎng)度相同,則返回第一個(gè)字符串。例如,輸入beijingshanghai(為回車鍵),函數(shù)將返回shanghai。注意:部分源程序存在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。給定源程序:#includechar*fun(char*s,char*t)main(){chara[20],b[20];voidNONO();printfif'Input1thstring:**);gets(a);printf("Input2thstring:**);gets(b);printfi('*%s\n**,fun(a,b));NONO();}voidNONO(){/?本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*fp,*wf;inti;chara[20],b[20];fp=fbpen("in.dat"」ピ);wf=fopcn(Hout.datH,MwH);fbr(i=0;i<10;i++){fscanf(fp,0%s%sM,a,b);mrintRwf,"%s\n”,fun(a,b));|fclose(fp);fclose(wf);參考答案:{inti;char*p=s,*q=t;fbr(i=0;*P&&*q;i++){p-H-;q++;|ifi(*p=0&&*q=0)returns;elsereturnt;}201I年計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言上機(jī)題庫(kù)(7)ー、填空題:給定程序中已建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,鏈表中的各結(jié)點(diǎn)按數(shù)據(jù)域遞增有序鏈接。函數(shù)fun的功能是:刪除鏈表中數(shù)據(jù)域值相同的結(jié)點(diǎn),使之只保留一個(gè)。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include#include#defineN8typedefstructlist{intdata;structlist*next;}SLIST;voidfun(SLIST*h){SLIST*p,*q;p=h->next;if(p!=NULL){q=p->next;while(q!=NULL){if(p->data=q->data){p->next=q->next;/**********^)und**********/free(_1_);/**********^ound**********/else{p=q;q=q->_3SLIST*creatlist(int*a){SLIST*h,*p,*q;inti;h=p=(SLIST*)malloc(sizeof(SLIST));fbr(i=O;io{q=(SLIST*)malloc(sizeofi(SLIST));q->data=a[i];p->next=q;p=q;p->next=0;returnh;voidoutlist(SLIST*h){SLIST*p;p=h->next;if(p==NULL)printfi(H\nThelistisNULL!\nM);else{printff\nHead”);do{printff?>%d”p>data);p=p->next;}while(p!=NULL);printf("->End\nM);I}main(){SLIST*head;inta[N]={1,2,2,3,4,445};head=creatlist(a);printf("\nThelistbeforedeleting:\n");outlist(head);fiin(head);printf("\nThelistafterdeleting:\n");outlist(head);解題答案:free(q);/**********found**********/q=p->next;/**********f^jund**********/q=q->next;二、改錯(cuò)題:給定程序M0DI1.C中函數(shù)fun的功能是:用選擇法對(duì)數(shù)組中的n個(gè)元素按從小到大的順序進(jìn)行排序。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行和刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include#defineN20voidfun(inta[],intn){inti,j,t,p;for(j=0J<n-1u++){for(i=j;i<n;i++)/************************/P=J;t=a[p];a[p]=a[j];a[j]=main()inta[N]={9,6,8,3,-l},i,m=5;printf("排序前的數(shù)據(jù):");for(i=0;i<m;i++)printf(M%dM,a[i]);primff'n");printf("排序后的數(shù)據(jù):");fbr(i=0;i<m;i++)printff'%d",a[i]);printf("\n");解題答案:P=i;三、程序題:請(qǐng)編寫ー個(gè)函數(shù)fiin,它的功能是:求出1到m之間(含m)能被7或11整除的所有整數(shù)放在數(shù)組中,通過(guò)n返回這些數(shù)的個(gè)數(shù)。例如,若傳送給m的值為50,則程序輸出:711142122283335424449注意:部分源程序存在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)屮填入你編寫的若干語(yǔ)句。給定源程序:#inckide//defineM100voidfun(intm,int*a,int*n){}main(){intaa[M],n,k;voidNONO();fun(50,aa,&n);for(k=0;k<n;k卄)if((k+l)%20=0)printff'n”);elseprintグ%4d”,aa[k]);printfC'\nM);NONO();voidNONO(){/?本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*fp,*wf;inti,n,j,k,aa[M],sum;fp=fbpen(Min.datM,Mr,');wf=fopen(,,out.dat,,,MwM);fbr(i=0;i<10;i++){fscanf(巾,”%d,",&j);fun(j,aa,&n);sum=0;fbr(k=0;k<n;k-H-)sum+=aa[k];fprintfifwf,H%d\nM,sum);)fclose(fp);fclose(wf);參考答案:*n=0;fbr(i=7;i<=m;i-H-)if((i%7=0)||(i%11=0))a[(*n)++]=i;|201I年計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言上機(jī)題庫(kù)(8)一、填空題:給定程序中,函數(shù)fun的功能是:在帶有頭結(jié)點(diǎn)的單向鏈表中,查找數(shù)據(jù)域中值為ch的結(jié)點(diǎn)。找到后通過(guò)函數(shù)值返冋該結(jié)點(diǎn)在鏈表中所處的順序號(hào);若不存在值為ch的結(jié)點(diǎn),函數(shù)返回。值。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#includeinclude#defineN8typedefstructlist{intdata;structlist*ncxt;}SLIST;SLIST*creatlist(char*);voidoutlist(SLIST*);intfun(SLIST*h,charch){SLIST*p;intn=0;p=h->next;/**********^)und**********/while(p!=_1_){n++;/**********^^und**********/if(p->data=ch)return 2 :elsep=p->next;return0;main(){SLIST*head;intk;charch;chara[N]=fm?p;g?ソw?x;T,d};head=creatlist(a);outlist(head);printfif'Enteraletter:H);scanfi(”%c”,&ch);/**********^)und**********/k=ftm(_3_);if(k==0)printf(H\nNotfbund!\nM);elseprintff'Thesequencenumberis:%d\nn,k);SLIS
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 銷售總監(jiān)日常工作流程總結(jié)
- 助行老年人的課件
- 校園心理健康服務(wù)方案設(shè)計(jì)
- 教師能力提升遠(yuǎn)程培訓(xùn)心得體會(huì)合集
- 醫(yī)院藥房庫(kù)存管理與成本控制方案
- 財(cái)務(wù)部門稅務(wù)風(fēng)險(xiǎn)防控手冊(cè)
- 電梯維護(hù)實(shí)操課程教學(xué)方案
- 象棋興趣小組比賽組織方案及通知
- 建筑工程項(xiàng)目部崗位職責(zé)說(shuō)明書
- 企業(yè)安全員崗位職責(zé)與實(shí)操
- 父親在女兒婚禮講話稿
- 充電樁的建設(shè)合作方案兩
- 反歧視培訓(xùn)課件
- 膠水培訓(xùn)課件
- 社區(qū)開展康復(fù)護(hù)理知識(shí)講座
- 竣工資料移交清單
- 農(nóng)業(yè)綠色發(fā)展背景下我國(guó)化肥減量增效研究
- 硬質(zhì)合金成型工(三級(jí)高級(jí)工)理論考試題庫(kù)(匯總版)
- 高一1學(xué)生情況調(diào)查表
- 營(yíng)銷經(jīng)理助理歷年真題和模擬試題
- 滇中引水工程
評(píng)論
0/150
提交評(píng)論