二級(jí)C語(yǔ)言上機(jī)題庫(kù)2_第1頁(yè)
二級(jí)C語(yǔ)言上機(jī)題庫(kù)2_第2頁(yè)
二級(jí)C語(yǔ)言上機(jī)題庫(kù)2_第3頁(yè)
二級(jí)C語(yǔ)言上機(jī)題庫(kù)2_第4頁(yè)
已閱讀5頁(yè),還剩151頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

科益題庫(kù)說(shuō)明:本題庫(kù)是根據(jù)教育部考試中心制定修改計(jì)劃進(jìn)行修改后的計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言機(jī)試題庫(kù)。對(duì)于題庫(kù)的解答來(lái)自考試中心的答題系統(tǒng)?!?1套:給定程序中,函數(shù)fun的功能是:將形參n所指變量中,個(gè)位上為偶數(shù)的數(shù)去除,剩余的數(shù)按原來(lái)從高位到低位的順序組成一個(gè)新的數(shù),并通過(guò)形參指針n傳回所指變量。例如,輸入一個(gè)數(shù):27638496,新的數(shù):為739。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把卜劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANKLC中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include<stdio.h>voidfun(unsignedlong*n){unsignedlongx=0,i;intt;i=1;while(*n)/**********found**********/{t=*n%_1_;/**********found**********/if(t%2!=_2_){x=x+t*i;i=i*10;}*n=*n/10;}/**********found**********/?n=_3_;)mainO{unsignedlongn=-l;while(n>99999999lln<0){printfCTIeaseinput(0<n<10(KHM)000): “);scanf(n%id';&n);)fun(&n);printf(*'\nTheresultis:%ld\n'\n);}解題思路:第一處:t是通過(guò)取模的方式來(lái)得到*n的個(gè)位數(shù)字,所以應(yīng)填:10o第二處:判斷是否是奇數(shù),所以應(yīng)填:0o第三處:最后通形參n來(lái)返回新數(shù)X,所以應(yīng)填:X。***************************************************給定程序MODI1.C中函數(shù)fun的功能是:計(jì)算n!。例如,給n愉入5,則愉出120.000000。請(qǐng)改正程序中的錯(cuò)誤,使程序能輸出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include<stdio.h>doublefun(intn){doubleresult=1.0;/************found************/ifn==Oreturn1.0;while(n>1&&n<170)/************found************/result*=n-returnresult;)main(){intn;printfC'InputN:H);scanf("%dn,&n);printf("\n\n%d!=%lf\n\nM,n,hin(n));)解題思路:第一處:條件語(yǔ)句書(shū)寫(xiě)格式錯(cuò)誤,應(yīng)改為:if(n==O).第二處:語(yǔ)句后缺少分號(hào)。請(qǐng)編寫(xiě)一個(gè)函數(shù)fun,它的功能是:將一個(gè)數(shù)字字符串轉(zhuǎn)換為一個(gè)整數(shù)(不得調(diào)用C語(yǔ)肅提供的將字符串轉(zhuǎn)換為整數(shù)的函數(shù))。例如,若輸入字符串"-1234”,則函數(shù)把它轉(zhuǎn)換為整數(shù)值-1234。函數(shù)fun中給出的語(yǔ)句僅供參考。注意:部分源程序存在文件PROG1.C文件中。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。給定源程序:#include<stdio.h>#include<string.h>longfun(char*p){/*以下代碼僅供參考*/inti,len,t;/*len為串長(zhǎng),t為正負(fù)標(biāo)識(shí)*/longx=0:len=strlen(p);if(p[0D{t=-l;len-;p++;}else1=1;/?以下完成數(shù)字字符串轉(zhuǎn)換為一個(gè)數(shù)字?/returnx*t;}main()/*主函數(shù)?/{chars⑹;longn;printf("Enterastring:\n");gets(s);n=fiin(s);printf("%ld\n".n);NONO();}NONO(){/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*fp,*wf;inti;chars[20];longn;fjp=fopenC'ciWtestWin.dat'V'r");wf=fopen("c:\Mesi\\oul.dal","w");for(i=0;i<IO;i++){fscanf(fp."%s",s);n=fun(s);fprintf(wf,"%ld\nH,n);}fclose(fp);fclose(wf);}解題思路:本題是將一個(gè)數(shù)字字符小轉(zhuǎn)換為一個(gè)整數(shù)。※※※※※※※※※※※※※※※※※※※※※※※※※第02套:給定程序中,函數(shù)fun的功能是將形參給定的字符串、整數(shù)、浮點(diǎn)數(shù)寫(xiě)到文本文件中,再用字符方式從此文本文件中逐個(gè)讀入并顯示在終端屏幕上。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include<stdio.h>voidfun(char*s,inta,doublef)(/**********found**********/_1_fp;charch:fp=fopen(',filel.txf,,"w");fprintf(fp."%s%d%f\n",s,a,f);fclose(fp);fp=fopen("filel.txt","r");printfCAnTheresult:\n\n");ch=fgelc(fp);voidfun(chars[][N],char*b)(intij.n=O;for(i=0;i<N:i++〃*請(qǐng)?zhí)顚?xiě)相應(yīng)語(yǔ)句完成其功能?/{/**********found**********/while(!feof(_2_)){putchar(_3_);ch=fgetc(fp);)putcharC\n');fclose(fp);)}b[n]=V)';1main(){chara[l(X)],w[M]|Nl={{,W;,W,,,W,/W,}4,SVS,,'SVS'M,H,:H,,,H,,,H,H;intij;printf("Thematrix:\n");main(){chara[10]="Hello!";intb=12345;doublec=98.76;for(i=0;i<M;i++){fbr(j=O;j<N;j++)printf("%3c",w[i][j]):printf("\n");fun(a,b,c);}}fun(w.a);***************************************************解題思路:木題是考察先把給定的數(shù)據(jù)寫(xiě)入到文本文件中,再?gòu)脑撐募x出并顯示在屏幕上.第一處:定義文本文件類(lèi)型變量,所以應(yīng)填:FILE*。第二處:判斷文件是否結(jié)束,所以應(yīng)填:fpe第三處:顯示讀出的字符,所以應(yīng)填:ch。***************************************************給定程序MODI1.C中函數(shù)fun的功能是:依次取出字符串中所有數(shù)字字符,形成新的字符串,并取代原字符串。請(qǐng)改正函數(shù)中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:printf("TheAstring:\n");puts(a);printf("\n\n°);NONOO;}NONO(){/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;intij,k:chara(100bw[Ml[N],b;rf=fopenC'czWtestWin.dat",^");wf=fopen("c:\\les(\\out.dat".''w");for(k=0;k<10:k+4-){for(i=0;i<M;i++){for(j=0;j<N;j++)fscanf(rf."%c",&w[i]|j]);fscanf(rf,M%c",&b);)#include<stdio.h>voidfun(char*s){intij;for(i=0,j=0;s(i]!=\O';i++)if(s[i]>='0,&&s[i]v=9)fun(w,a);fprinif(wf, a);Ifclose(rf):fclose(wf);}/**********found**********/s[j]=s[i];/**********Cund**********/s|jl=AOH;}解題思路:本題是把二維數(shù)組中的字符數(shù)據(jù)按列存放到一個(gè)字符串中。.計(jì)算存放到?維數(shù)組中的位置。.取出二維數(shù)組中的字符存放到一維數(shù)組(已計(jì)算出的位置)中。參考答案:main(){charitem[80];printf("\nEnterastring:");gets(item);#include<s(dio.h>#defineM3#deGneN4printf("\n\nThestringis:V%s\"\n".item);fun(item);printf("\n\nThestringofchangingis:V'%sV\n",ilem);voidfun(char char*b)(解題思路:intij,n=O;第一處:要求是取出原字符串中所有數(shù)字字符組成一個(gè)新的字符串,程序中是使用變量j來(lái)控制新字符串的位置,所以應(yīng)改為:s|j++]=sli];1.第二處:置新字符串的結(jié)束符,所以應(yīng)改為:s[j]=\(y;.***************************************************for(i=0;i<N:i++)/*請(qǐng)?zhí)顚?xiě)相應(yīng)語(yǔ)句完成其功能?/{for(j=0;j<M;j++){b[n]=s[j][i];n=i*M+j+1;請(qǐng)編寫(xiě)函數(shù)fun.函數(shù)的功能是:將M行N列的二維數(shù)組中的字符數(shù)據(jù),按列的順序依次放到一個(gè)字符串中。例如,二維數(shù)組中的數(shù)據(jù)為:WWWWSSSSHHHH則字符串中的內(nèi)容應(yīng)是:WSHWSHWSH.注意:部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編”的若干語(yǔ)句。給定源程序:#include<stdio.h>#defineM3#deGneN4I1b[n]=\0';1main(){chara[100],w[M][N>{{W/WVW?W'},{S'.S,S',S},{H,H,H'.H}};intij;printf("Thematrix:\n");for(i=0;i<M;i++){for(j=0:j<N;j++)printf("%3c,,,w[i][j]);printf("\n");1fun(w.a);printf('TheAstring:\nM);puts(a);printf("\n\n*);NONO();}NONOO{/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;iniij,k;chara[l(X)Lw[M][NLb;rf=fopenC'ciWtestWin.dat'W);wf=fopen("c:\\test\\out.dat","w");for(k=0;k<10;k++){for(i=0;i<M;i-H-){for(j=0;j<N;j++)fscanf(rf,"%c",&w[i][j]);fscanf(rf,"%c",&b);Ifun(w,a);fprintf(wf,"%s\nM,a);)fclose(rf):fclose(wf):}※※※※※※※※※※※※※※※※※※※※※※※※※第03套:程序通過(guò)定義學(xué)生結(jié)構(gòu)體變量,存儲(chǔ)了學(xué)生的學(xué)號(hào)、姓名和3門(mén)課的成績(jī)。所有學(xué)生數(shù)據(jù)均以二進(jìn)制方式輸出到文件中。函數(shù)fun的功能是重寫(xiě)形參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<stdio.h>#defineN5typedefstructstudent{longsno;charname[10];floatscore[3];}STU;voidfun(char*filename,STUn){FILE*fp;fp=fopen(_1_,Mrb+");fseek(_2_,-lL*sizeof(STU),SEEK_END);/**********found**********/fwrite(&n.sizeofi(STU),I,_3_);fclose(fp);}main(){STUt[N]={{IOOOI,"MaChao",91.92.77).(l0002."CaoKai",75,60,88),{10003JLiSi”,85.70,78),(10004.HFangFang",90,82.87}.{10005."ZhangSan”,95,80,88});STUn={lOOt^:'ZhaoSi",55,70.68),ss(N];intij:FILE*lp;fp=fopenCstudent.dat","wb1');fwri(e(t,sizeof(STU),N,fp);fclose(fp);fp=fopenCstudent.dat","rbH);fread(ss,sizeof(STU),N,fp);fclose(fp);printf('r\nTheoriginaldata:\n\n");for(j=0;j<N;j++){printf("\nNo:%ldName:%-8sScores:'\ss[j].sno,);for(i=0;i<3;i++)printf(H%6.2f",ss[j].score[i]);printf("\n");1funCstudent.dat",n);printf("\nThedataaftermodifing:\n\nH);fp=fopen("student.dat","rb");fread(ss,sizeof(STU).N,fp);fclose(fp);for(j=0;j<N;j++){printf("\nNo:%ldName:%-8sScores:",ss[j].sno,ss(j].name);for(i=0;i<3;i++)printf("%6.2f",ss[j].score[i]);printf("\n");)}解題思路:本題是考察如何從文件中讀出數(shù)據(jù),再把結(jié)構(gòu)中的數(shù)據(jù)寫(xiě)入文件中。第一處:從指定的文件中讀出數(shù)據(jù),所以應(yīng)填:filename.第二處:讀取文件fp的最后一條記錄,所以應(yīng)填:fp。第三處:再把讀出的記錄,寫(xiě)入文件fp指定的位置上,所以應(yīng)填:fp。***************************************************給定程序MODILC中的函數(shù)CreaUink的功能是創(chuàng)建帶頭結(jié)點(diǎn)的單向鏈表,并為各結(jié)點(diǎn)數(shù)據(jù)域賦0到m-1的值。請(qǐng)改正函數(shù)Creatlink中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include<stdio.h>#include<stdlib.h>typedefstructaa{intdata:structaa*next;}NODE;NODE*Creatlink(m){NODE*h=NULL,*p,*s;inti;/**********Cund***********/p=(NODE)malloc(sizeof(NODE));h=p;p->nexl=NULL;for(i=l;i<=n;i++){s=(NODE?)malloc(sizeof(NODE));s->data=rand()%m;s->nex(=p->nex(;p->next=s;p=p->next;}/**********found***********/returnp;}outlink(NODE*h){NODE*p;p=h->next;printf(,r\n\nTHELIST:\n\nHEADM);while(p){printf(H->%d",p->data);p=p->next;}printfCAn");)main(){NODE*head;head=Creatlink(8,22);outlink(head);解題思路:第一處:指向剛分配的結(jié)構(gòu)指針,所以應(yīng)改為:p=(NODE*)malloc(sizeof(NODE));第二處:在動(dòng)態(tài)分配內(nèi)存的下一行語(yǔ)句是,使用臨時(shí)結(jié)構(gòu)指針變量h保存p指針的初始位置,最后返回不能使用P,是因?yàn)閜的位置已經(jīng)發(fā)生了變化,所以應(yīng)改為返回h。***************************************************請(qǐng)編寫(xiě)函數(shù)ftin,函數(shù)的功能是:統(tǒng)計(jì)一行字符串中單詞的個(gè)數(shù),作為函數(shù)值返回。一行字符串在主函數(shù)中輸入,規(guī)定所有單詞由小寫(xiě)字母組成,單詞之間由若干個(gè)空格隔開(kāi).?行的開(kāi)始沒(méi)有空格。注意:部分源程序在文件PROGI.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)ftin的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。給定源程序:#include<stdio.h>#include<string.h>#deGneN80intfun(char*s)[}main(){charline[N];intnum=0;printf("Enterastring:\n");gets(line);num=fun(line);printfCThenumberofwordis:%d\n\n",num);NONOO;}NONO(){/?請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;inti,num:charline(N],*p;rf=fopen("c:\\test\\in.dat",',r'');wf=fopen("c:\\test\\out.dar',"w");for(i=0;i<10;i++){fgets(line,N,rf):p=strchr(line,An');if(p!=NULL)*p=0;num=fun(line);fprintf(wf,"%d\n",num);Ifclose(rf):fclose(wf);1解題思路:本題是統(tǒng)計(jì)字符串中的單詞數(shù)。.利用while循環(huán)語(yǔ)句和指針變量,當(dāng)字符為空格時(shí),則單詞數(shù)k加1。.循環(huán)結(jié)束返回匕參考答案:/include<stdio.h>#include<string.h>#defineN80intfun(char*s)]intk=1;while(*s){if(*s=")k++;s-H-;}returnk:)main(){charline|N];intnum=0;prinlf("Enterastring:\n");gels(line);num=fun(line):printf("Thenumberofwordis:%d\n\n".num);NONOO;}NONOO{/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf:inti.num:charline[N],*p:rf=fopenC'ciWtestWin.dat'^'V");wf=fopen(',c:\\tesi\\out.dat,,,',w,');for(i=0:i<10:i++){fgets(line,N,rf);p=strchr(line,\n');if(p!=NULL)*p=0;num=hin(line):fprintf(wf,num);fclose(rf);fclose(wf):}※※※※※※※※※※※※※※※※※※※※※※※※※第04套:程序通過(guò)定義學(xué)生結(jié)構(gòu)體變量,存儲(chǔ)r學(xué)生的學(xué)號(hào)、姓名和3門(mén)課的成績(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)!給定源程序:#inc!ude<stdio.h>#defineN5typedefstructstudent{longsno;charname(10];floatscore(3];}STU:voidfun(char*filename){HLE*fp;inti.j;STUs(NJ,t;/**********found**********/fp=fopen(filename,_I_);fread(s,sizeof(STU),N,fp);fclose(fp);for(i=0;i<N-l;i++)for(j=i+l;j<N;j++)/**********found**********/if(s[i].sno2s[j].sno){t=s[i];s[i]=slj];s[j]=t;}fp=fopen(filename."wbM);/**********Cund**********/_3_(s,sizeof(STU),N.fp);/?二進(jìn)制輸出*/fclose(fp);}main(){STUt[N]={“0005.NhangSan”,95,80,88}.{10003,"LiSi>;85,70,78},(l0002,"CaoKai,,,75,60,88},{10004."FangFang",90,82.87},{10001,"MaChao",91,92,77}},ss[N];intij;FILE*fp;fp=fopenC'student.dat","wb");fwri(e(t,sizeof(STU),5.fp);fclose(fp);printf("\n\nTheoriginaldata:\n\n");for(j=0;jvN:j++){printfCAnNo:%ldName:%-8sScores:",t[j].sno,t[j].name);for(i=0;i<3;i++)prin〔f("%6.2f",t[j].score[i]);printf("\nM);}fun("student.dat");printf("\n\nThedataaftersorting:\n\nH);fp=fopenC'student.dat",^rb*');fread(ss,sizeof(STU),5,fp);fclose(fp);for(j=O;j<N;j++){printf("\nNo:%ldName:%-8sScores:",ss[j].sno,ss[j].name);for(i=0;i<3;i++)printf(M%6.2fss(j].score[i]);prinlf("\n,');I}解題思路:本題是考察把結(jié)構(gòu)中的數(shù)據(jù)寫(xiě)入文件。#defineN50本題是考察把結(jié)構(gòu)中的數(shù)據(jù)寫(xiě)入文件。#defineM11voidfun(int*a.ini*b)第一處:建立文件的類(lèi)型,考慮到是把結(jié)構(gòu)中的數(shù)據(jù)(結(jié)構(gòu)中的數(shù)據(jù)包含不打印的字符)從文件中讀出,所以應(yīng)埴:“rb".第二處:判斷當(dāng)前學(xué)號(hào)是否大于剛讀出的學(xué)號(hào)進(jìn)行相比,如果大于,則進(jìn)行交換,所以應(yīng)填:第三處:把已排序的結(jié)構(gòu)數(shù)據(jù),重新寫(xiě)入文件,所以應(yīng)填:fwrite。***************************************************給定程序MODI1.C中函數(shù)fun的功能是:在字符串的最前端加入n個(gè)*號(hào),形成新串,并且覆蓋原串。注意:字符串的長(zhǎng)度最長(zhǎng)允許為79。請(qǐng)改正函數(shù)firn中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include<stdio.h>#include<string.h>voidfun(chars[],intn)(chara[80],*p;inti;/**********found***********/s=p;for(i=0;i<n;i++)a[i]='*';do(a[i)=*p;i++;}while(*p++)a(i]=O;strcpy(s.a);Imain(){intn;chars|80];printfCAnEmerastring:");gets(s);printf("\nThestring\"%sV'\n",s);printf("\nEntern(numberof*):");scanf("%d".&n);fun(s,n);printf("\nThestringafterinsert:\"%s\"\n",s);I解題思路:第一處:指針p應(yīng)指向s,所以應(yīng)改為:p=s;。第二處:死循環(huán),當(dāng)d。while循環(huán)執(zhí)行一次,臨時(shí)變量p應(yīng)該指向字符串的下位置,所以應(yīng)改為:while(*p++);o請(qǐng)編寫(xiě)函數(shù)fun,函數(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]中,其余依此類(lèi)推.把100歲(含100)以上年齡的人數(shù)都放在d[IO]中。結(jié)果在主函數(shù)中輸出。注意:部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。給定源程序:#include<stdio.h>doublemd(){statict=29.c=217,m=1024.r=0;r=(r*t+c)%m;retum((double)r/m);)main(){intage(N],i,d(MJ;for(i=0;i<N:i++)age[i]=(int)(l15*md());printfCTheoriginaldata:\nM);fdr(i=0;i<N;i++)printf((i+l)%10==0?"%4d\n,':"%4d",age[il);printf("\n\n");fun(age,d);for(i=0;i<IO;i++)printf(',%4d—%4d:%4d\n",i*10.i*10+9,d[i]);printf("Over100:%4d\n",d[10]);NONO(d);}NONO(intd(M]){/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/HLE*wf;inti;wf=fopen("c:\\(est\\out.dat,rw");for(i=0;i<10;i++)fprintf(wf,"%4d一%4d:%4d\n*\i*10,i*10+9,d[i]);fprintf(wf,"Over100:%4d\n",d[10]);fclose(wf);}解題思路:本題是統(tǒng)計(jì)各年齡段的人數(shù)。.初始化各年齡段人數(shù)為0。.使用for循環(huán)以及求出各年齡的十位數(shù)字作為存放人數(shù)的地址,如果大于值大于10,則存入d[10]中(大于110歲的人)。參考答案:#include<stdio.h>#defineN50#defineM11voidfun(int*a,int*b)]inti,j;for(i=0;i<M;i++)b[iJ=O;for(i=0;i<N;i++){j=a(i]/IO;if<j>10)b[M-1J++;elseb[j]++;}}doublemd(){statict=29,c=217.m=IO24.r=O:r=(r*t+c)%m:retum((double)r/m);}main(){intage[NLi,d[M];for(i=0;i<N;i++)age[i]=(int)(l15*md());printf("Theoriginaldata:\n");for(i=0;i<N;i-H-)printft(i+l)%IO==O?"%4d\nM:',%4d",age(i]);printf("\n\n");fun(age.d):for(i=0;i<10;i++)printf("%4d---%4d:%4d\n",i*10,i*10+9,d[i]);printfCOver100:%4d\n,,,d[10]);NONO(d);}NONO(intd[M]){/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*wf;inti;wf=fopen("c:\\test\\out.dat","w");for(i=0;i<10;i++)fprintf(wf,,,%4d—%4d:%4d\n",i*IO,i*IO+9.d[ij);fprintf(wf,"Over100:%4d\nM.d[10]);fclose(wf);I※※※※※※※※※※※※※※※※※※※※※※※※派第05套:給定程序中,函數(shù)mn的功能是將參數(shù)給定的字符中、整數(shù)、浮點(diǎn)數(shù)寫(xiě)到文本文件中,再用字符串方式從此文本文件中逐個(gè)讀入,并調(diào)用庫(kù)函數(shù)atoi和atof將字符串轉(zhuǎn)換成相應(yīng)的整數(shù)、浮點(diǎn)數(shù),然后將其顯示在屏幕上。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include<stdio.h>#include<stdlib.h>voidfun(char*s,inta,doublef)(/**********found**********/_1_?。籧harstr[IOO],strl[100Lstr2[IOO];intal;doublefl;fp=fopen("filel.txt","w");fprintf(fp."%s%d%f\n",s,a.f);/**********found**********/_2_;fp=fopen("filel.txt",V);/**********found**********/fscanf(_3_,"%s%s%s",str,strI,str2);fclose(fp);al=atoi(strl);fl=atof(str2);printf("\nTheresult:\n\n%s%d%f\nH,str,al,fl):}main(){charallO]="Hello!";intb=12345;doublec=98.76;fun(a,b,c);}解題思路:本題是考察先把給定的數(shù)據(jù)寫(xiě)入到文本文件中,再?gòu)脑撐募x出并轉(zhuǎn)換成相應(yīng)的整數(shù)、浮點(diǎn)數(shù)顯示在屏幕上。第一處:定義文本文件類(lèi)型變量,所以應(yīng)填:FILE*?第二處:關(guān)閉剛寫(xiě)入的文件,所以應(yīng)填:fclose(fp)o第三處:從文件中讀出數(shù)據(jù),所以應(yīng)填:fp0***************************************************給定程序MODI1.C中函數(shù)fun的功能是:對(duì)N名學(xué)生的學(xué)習(xí)成績(jī),按從高到低的順序找出前m(mW10)名學(xué)生來(lái),并將這些學(xué)生數(shù)據(jù)存放在?個(gè)動(dòng)態(tài)分配的連續(xù)存儲(chǔ)區(qū)中,此存儲(chǔ)區(qū)的首地址作為函數(shù)值返回。請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include<stdio.h>#include<alloc.h>#include<string.h>#deHneN10typedefstructss{charnum[10];ints;)STU;STU*fun(STUa[].in(m){STUb(N],*t;intij.k;/**********found**********/t=(STU*)ca)loc(sizeof(STU).m)for(i=0;i<N;i++)b[i]=a[i|;for(k=0;k<m;k-H-){fbr(i=j=O;i<N;i++)if(b[i].s>b[jl.s)j=i;/**********found**********/Kk)=b(j);b(j].s=O;1returnI;}outresuk(STUa[],FILE*pf){inti;for(i=0;i<N;i++)fprintf(pf.HNo=%sMark=%d\nM,a[i].num,a[i].s);fprintf(pf;"\n\n*);}main(){ STUa[N]={{"A01”,81},{“A02”,89|J"A03",66M"A04",87},("A05,\77},{"A06",90},{"A07",79},{"A08H,61},{"A09",80},{"A10'1,71)};STU*pOrder;inti,m;printfC'*****TheOriginaldata*****\n");outresult(a,stdout);printf("\nGivethenumberofthestudentswhohavebetterscore:");scanf("%d",&m);while(m>10){printf("\nGivethenumberof(hestudentswhohavebetterscore:"):scanf(,,%d,,,&m);}pOrder=fun(a,m);primfT*****THERESULT*****");printf("Thetop:\n");for(i=0;i<m;i++)printf("%s%d\n".pOrder[i].num,pOrder[i].s);free(pOrder);|解題思路:第一處:語(yǔ)句最后缺少分號(hào)。第二處:應(yīng)該使用方括號(hào),而不是圓括號(hào)。像此類(lèi),使用編譯,即可發(fā)現(xiàn)。***************************************************請(qǐng)編寫(xiě)函數(shù)fun,函數(shù)的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。數(shù)組中的數(shù)已按由小到大的順序排列.函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。例如,一維數(shù)組中的數(shù)據(jù)是:2223445666677899101010.刪除后,數(shù)組中的內(nèi)容應(yīng)該是:2345678910o注意:部分源程序在文件PROGI.C中.請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。給定源程序:#include<stdio.h>#defineN80intfiin(inta[],intn)Imain(){inta(N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10J0,10J0},i,n=20;printf("Theoriginaldata:\nM);for(i=0;i<n:i++)printf("%3d",a[i]);n=fun(a,n);printf("\n\nThedataafterdeleted:\n");for(i=O;i<n;i++)printf("%3d*',a[i]);printf("\n\n");NONOO;請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。1NONOO(/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;inta[N],n,i,j;rf=fbpen("c:\\(est\\in.dat".',rM);wf=fopen("c:\\test\\out.dat","w");for(i=0;i<5;i++){注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include<stdio.h>doublefl(doublex){returnx*x;}doublef2(doublex,doubley)fscanf(rf."%d",&n);for(j=0;j<n;j++)fscanf(rf, &a[j]);n=fun(a,n);for(j=0;j<n;j++)fprintf(wf,"%4d",a[j]);fprintf(wf."\n");}{returnx*y;}/**********Cund**********/_1_fun(inti.doublex,doubley){if(i==D/**********found**********/return_2_(x);fclose(rf):fclose(wf):else/**********found**********/J解題思路:本題是刪除已排序過(guò)數(shù)組中的相同數(shù)。.取出數(shù)組中的第1個(gè)數(shù)存放在臨時(shí)變量k中,再利用for循環(huán)來(lái)依次判斷所有的數(shù)。.如果取出的數(shù)和k相比,如果不相同,則仍存放在原數(shù)組中,其中存放的位置由j來(lái)控制,接著把這個(gè)數(shù)重新存入k0如果相同,則取F-數(shù)。參考答案:#include<stdio.h>#deHneN80intfun(inta(],intn)(return_3_(x,y);)main(){doublexl=5.x2=3.r;r=fun(1,xl,x2);r+=fun(2,xl,x2);printf("\nxl=%f,x2=%f,xl*xl+xl*x2=%f\n\n",xl,x2,r);}解題思路:本題是根據(jù)給定的公式來(lái)計(jì)算函數(shù)的值。第一處:程序中使用雙精度double類(lèi)型進(jìn)行計(jì)算,所以函數(shù)的返回值inti,j=l.k=a[O];fbr(i=1;i<n;i++)if(k!=a[i]){a[j++]=a[i];類(lèi)型也為double,所以應(yīng)填:doubleo第二處:當(dāng)i等于1時(shí),則返回n函數(shù)的值,所以應(yīng)填:fl?第三處:如果i不等于1,則返回&函數(shù)的值,所以應(yīng)填:f2=k=a(i];***************************************************IaU]=O;returnj;}給定程序MODI1.C中函數(shù)fun的功能是:比較兩個(gè)字符串,將長(zhǎng)的那個(gè)字符串的首地址作為函數(shù)位返回。main(){inta[N]=(2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10),i,n=20;printfCTheoriginaldata:\n");請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include<stdio.h>/**********found**********/for(i=0;i<n;i++)printf("%3d",a[i]);n=fun(a,n);printf("\n\nThedataafterdeleted:\n");for(i=0;i<n;i++)prinlf("%3di]);prinlf("\n\n");NONOO;}charfun(char*s.char*t){intsl=O,tl=O;char*ss,*tt;ss=s;tt=(;while(*ss){sl-H-;/**********Cund**********/NONOO(*ss)++;(/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/HLE*rf,*wf;inta[N],n,iJ;rf=fopenC'ciWtestWin.dat'V'r");wf=fopen("c:\\test\\out.dat,',',w");|while(*tt)(tl-H-;/**********於un(l**********/(*?)++;for(i=0;i<5;i++){fscanf(rf,"%d",&n);for(j=0:j<n;j+4-)fscanf(rf."%d".&a[j]);n=fiin(a,n);for(j=0;j<n;j++)fprintf(wf,"%4d",a(j]);fprintf(wf,"\n");1Iif(ti>sl)return(;elsereturns;)main(){chara[80],b(80],*p,*q;inti;printf("\nEnterastring:");gets(a);fclose(rf);fclose(wf);)printf('AnEnterastringagain:"):gets(b);printf("\nThelongeris:\n\n\"%s\"\n*,ftin(a,b));※※※※※※※※※※※※※※※※※※※※※※※※※第06套:給定程序中,函數(shù)fun的功能是根據(jù)形參i的值返回某個(gè)函數(shù)的值。當(dāng)調(diào)用正確時(shí),程序輸出:x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000(X)01解題思路:第一處:試題要求返回字符串的首地址,所以應(yīng)改為:char*fun(char*s,char*t)第二處:取字符串指針SS的下一個(gè)位置,所以應(yīng)改為:SS++;。第三處:取字符串指針11的下一個(gè)位置,所以應(yīng)改為:11++;。

***************************************************請(qǐng)編寫(xiě)函數(shù)ftin.函數(shù)的功能是:移動(dòng)字符串中的內(nèi)容,移動(dòng)的規(guī)則如下:把第1到第m個(gè)字符,平移到字符串的最后.把第m+l到最后的字符移到字符串的前部。例如,字符串中原有的內(nèi)容為:ABCDEFGHUKm的值為3,則移動(dòng)后,字符串(=w[0];for(i=0;i<strlen(w)-1;i++)w[i]=w[i+l];w[strlen(w)-l]=t;}voidfun(char*m)/?可調(diào)用funl函數(shù)左移字符*/{inti;for(i=0;i<m:i++)funl(w);}main(){chara[N]="ABCDEFGHIJK中的內(nèi)容應(yīng)該是:DEFGHIJKABCe注意:部分源程序在文件PR0G1.C中.請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若F語(yǔ)句。給定源程序:#include<sld沁.h>#include<string.h>#defineN80voidfun1(char*w)/?本函數(shù)的功能是將字符中中字符循環(huán)左移一個(gè)位置*/1intm;printfCTheoriginalstring:\nM);puis(a);printf("\n\nEnterm:");scanf("%d".&m);fun(a.m);printf("\nThestringaftermoving:\n,,);puts(a);printf("\n\n*);NONO();}NONOO{/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;chara[N];intm,i;inti;chart;(=w[0];for(i=0;i<strlen(w)-l;i++)w[i]=w[i+l];w[strlen(w)-l]=t;}rf=fopen(czWtestWin.datVV1');wf=fopen("c:\\test\\out.dal"."w");for(i=0:i<10;i++)(fscanf(rf,"%d%s'\&m,a);fun(a,m);fprintf(wf,"%s\n",a);voidfun(char*w,intm)/*可調(diào)用funl函數(shù)左移字符*/]|fclose(rf);fclose(wf);1main(){chara[N]="ABCDEFGHIJK";inim;printf("Theoriginalstring:\n,,);puts(a);printf("\n\nEnterm:");scanf("%d",&m);J※※※※※※※※※※※※※※※※※※※※※※※※※第07套:程序通過(guò)定義并賦初值的方式,利用結(jié)構(gòu)體變量存儲(chǔ)了?名學(xué)生的信息。函數(shù)fun的功能是輸出這位學(xué)生的信息。fun(a.m);printf("\nThestringaftermoving:\n");puts(a);prinlf("\n\n,r);NONO();i請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。NONO()(/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf:chara[N]:intm.i;rf=fopen("c:\\test\\in.dat",Mr");不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include<s(dio.h>wf=fopen("c:\Mes〔\\oul.dalY'w");for(i=0;i<10;i++){fscanf(rf,*%d%s",&m,a);fun(a,m);fprintf(wf,M%s\nM,a);}(ypedefstruct{intnum;charname[9]:charsex;struct{intyear,month.day;}birthday;floatscore(3];fclose(rf);fclose(wf);}STU;/**********Cund**********/解題思路:本題是考察字符串的操作。.由于函數(shù)funl是將字符串中字符循環(huán)左移?個(gè)位置,并通過(guò)實(shí)參w返回循環(huán)左移一個(gè)位置的字符串。.利用循環(huán)for語(yǔ)句來(lái)操作多少個(gè)字符(m)需要循環(huán)左移。參考答案:voidshow(STU 1 ){inti;printf("\n%d%s%c%d-%d-%d",,tt.sex,(t.birthday,year.tt.birthday,month,tt.birthday.day):for(i=0;i<3;i++)/**********found**********/printf("%5.ir 2一);printfCXn");Imain()##include<stdio.h>#include<string.h>#defineN80voidfunl(char*w)/?本函數(shù)的功能是將字符串中字符循環(huán)左移一個(gè)位置?/{STUstd={1."Zhanghua",^'.1961,.};printf("\nAstudentdata:\n");/**********found**********/show( 3 );}解題思路:inti;charl;本題是利用結(jié)構(gòu)體變量存儲(chǔ)了一名學(xué)生的信息。第一處:tt變量在函數(shù)體fun已經(jīng)使用,所以應(yīng)填:L第二處:利用循環(huán)分別輸出學(xué)生的成績(jī)數(shù)據(jù),所以應(yīng)填:(t.score[i]<>第三處:函數(shù)的調(diào)用,所以應(yīng)填:std。***************************************************給定程序MODU.C中函數(shù)fun的功能是:求出數(shù)組中最大數(shù)和次最大數(shù),并把最大數(shù)和a[0]中的數(shù)對(duì)調(diào)、次最大數(shù)和a[l]中的數(shù)對(duì)調(diào)。清改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include<stdio.h>#defineN20intfun(int*n){inti,m,t,k;for(i=0y<2;i++)(/**********Cund**********/m=0;for(k=i+l;k<n:k-H-)/**********found**********/if(a[k]>a[m])k=m;t=a[i];a[i]=a(m];a|m]=t;)main(){intx,b[N]={11,5,12.0.3,6.9,7,10.8).n=10.i;for(i=0;i<n;i++)printf("%d",b[i]);printf("\n");fun(b,n);for(i=0;i<n:i++)printf("%d",b(i]);printfCAn");)解題思路:第?處:外循環(huán)每循環(huán)?次,把當(dāng)前位置i賦值給m,所以應(yīng)改為:m=i;o第二處:通過(guò)內(nèi)循環(huán)來(lái)找出最大的一個(gè)數(shù)的位置k,所以應(yīng)改為:if(a[k]>a[m])m=k;o***************************************************請(qǐng)編寫(xiě)一個(gè)函數(shù)unsignedfun(unsignedw),w是一個(gè)大于10的無(wú)符號(hào)整數(shù),若w是n(n22)位的整數(shù),函數(shù)求出w的低n-1位的數(shù)作為函數(shù)值返回。例如:w值為5923,則函數(shù)返回923:w值為923則函數(shù)返回23。注意:部分源程序存在文件PROGI.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)ftin的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。給定源程序:#include<stdio.h>unsignedfun(unsignedw)I}main(){unsignedx;prinlf("Enteraunsignedintegernumber:");scanf("%u",&x);printf('Theoriginaldatais:%u\n",x);if(x<10)printf("Dataerror!M);elseprintf("Theresult:%u\nH,fun(x));NONO();}NONO(){/?請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/unsignedx;inti;FILE*ff,*wf;rf=fopen("c:\\test\\in.dat",',r,');wf=fopen("c:\\(est\\out.datM,°w");for(i=0;i<20;i++)(fscanf(rf,"%u",&x);fprintf(wf,"%u\n",fun(x));}fclose(rf);fclose(wf);I解題思路:本題是考察考生怎樣獲取一個(gè)符合要求的無(wú)符號(hào)整數(shù)。本題是應(yīng)用if條件語(yǔ)句首先判斷給出的數(shù)是幾位數(shù),再模相應(yīng)的值,最后得出的余數(shù)就是結(jié)果。參考答案:#include<stdio.h>unsignedfun(unsignedw)(if(w>10000)w%=10000;elseif(w>1000)w%=1(X)0;elseif(w>100)w%=100:elseif(w>10)w%=10;returnw;Imain(){unsignedx;printf("Enteraunsignedintegernumber:");scanf("%u",&x);printf("Theoriginaldatais:%u\n",x);if(x<10)printf("Dataerror!");elseprinlf("Theresult:%u\nM,fun(x));NONO();INONO(){/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/unsignedx:inti;HLE*rf,*wf;rf=fopenC'cAVestWin.dat",'?");wf=fopen(',c:\\test\\out.dat","w,');for(i=0;i<20;i++)(fscanf(rf,M%u",&x);fprintftwf."%u\n'\fun(x));}fclose(rf);fclose(wf);}※※※※※※※※※※※※※※※※※※※※※※※※※第08套:給定程序通過(guò)定義并賦初值的方式,利用結(jié)構(gòu)體變量存儲(chǔ)/一名學(xué)生的學(xué)號(hào)、姓名和3門(mén)課的成績(jī)。函數(shù)fun的功能是將該學(xué)生的各科成績(jī)都乘以一個(gè)系數(shù)a。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include<stdio.h>(ypedefstruct{intnum:charname|9];floatscore[3];}STU;voidshow(STUtt){inti;printf("%d%s:",tt.num,);for(i=0;i<3;i-H-)printf("%5.1f',tt.score[i]);printfCXn*');I/**********found**********/voidmodify( 1 *ss,floata){inti;for(i=0;i<3;i-H-)/**********found**********/ss-> 2 *=a;Imain(){STUstd={17'Zhanghua",76.5,78.0,82.0};floata;printf("\nThcoriginalnumberandnameandscores:\n");show(std);printf("\nlnputanumber:H);scanf(M%f',&a);/**********found**********/modify( 3 ,a);printf("\nAresultofmodifying:\n");show(std);}解題思路:本題是利用結(jié)構(gòu)體存儲(chǔ)學(xué)生記錄并由實(shí)參SS返回。第一處:實(shí)參SS是一個(gè)結(jié)構(gòu)型指針變量,所以應(yīng)填:STUo第二處:該學(xué)生的各科成績(jī)都乘以?個(gè)系數(shù)a,所以應(yīng)填:score。]。第三處:函數(shù)的調(diào)用,由于函數(shù)定義時(shí)使用的指針結(jié)構(gòu)型變量,所以應(yīng)填:&std?***************************************************給定程序MOD11.C中函數(shù)fun的功能是:求k!(kvl3),所求階乘的值作為函數(shù)值返回。例如:若k=10,則應(yīng)輸出:3628800。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include<sld沁.h>longfun(intk)(/************found************/ifk>0return(k*fun(k-l));elseif(k=0)returnIL;}main(){intk=10;prinlf("%d!=%ld\n",k.fun(k));I解題思路:第一處:條件判斷缺少圓括號(hào)。第二處:判斷相等的符號(hào)是==?***************************************************程序定義了NXN的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編月函數(shù)fun(intintn),函數(shù)的功能是:使數(shù)組左下二角元素中的值乘以no例如:若n的值為3,a數(shù)組中的值為I197113971a=l238l則返回主程序后a數(shù)組中的值應(yīng)為169811456111215181注意:部分源程序存在文件PROG1.C中.請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。給定源程序:#include<stdio.h>#include<stdlib.h>#defineN5intfun(inta[][N],intn)main(){inta[N][N],n,i,j;printf("*****Thearray*****\nM);for(i=0;i<N;i++){for(j=0;j<N;j++){a[i][j]=rand()%10;printf("%4d';a[i][j]);}printf("\n");}don=rand()%10:while(n>=3);printf("n=%4d\n",n);fun(a,n);printf("???**THERESULTfor(i=0;i<N;i++)(for(j=0;j<N;j-H-)printf("%4dH.a[i][jl);printf("\n");1NONO();INONO(){/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*1FILE?ff,*wf;inti,j,n,a[5H5];rf=fopen("c:\\test\\in.dat",Y*);wf=fopen("c:\\tes(\\out.dat","w");fbr(i=0;iv5;i++)for(j=0;j<5;j++)fscanf(rf,"%d",&a[i]|j]);fscanf(rf,M%d",&n);fun(a,n);for(i=0;i<5;i++)(for(j=0:j<5:j++)fprintf(wf,n%W,a[i][j]);fprintf(wf,"\n");}fclose(rf);fclose(wf);}解題思路:本題是利用兩重循環(huán)給二維數(shù)組左下三角元素中的值乘以n。參考答案:/include<std沁.h>#include<stdlib.h>#defineN5intfiin(inta|][N],intn)(inti.j;for(i=0;i<N;i++)for(j=0;j<=i;j++)a[i]|j]?=n;Imain(){inta[N][N],n,ij;printf("*****Thearray*****\n");for(i=0;i<N;i++){for(j=0;j<N;j++){a[i][j]=rand()%10;printf("%4d,',a[i][j]);}prinlf("\nM);Idon=rand()%10;while(n>=3);printf("n=%4d\n",n);fun(a,n);prinif("*****THERESULT*****\n");for(i=0;i<N;i++){for(j=0;j<N;j-H-)printf(H%4dN,a[i]|j]);printf("\nM);}else{p->next=q:p=q;|NONO();)}returnh;1voidoutlist(NODE*h){NODE*p;p=h;NONO(){/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;if(p==NULL)printf('ThelistisNULL!\n");else{printf("\nHead,r);dointi,j,n,a[5H5];{printf("->%d".p-xlata);p=p->next;}rf=fopen("c:\\test\\in.dat",V);wf=fopen(*'c:\\test\\out.dat",''wn);for(i=0;i<5;i++)fbr(j=0;j<5;j++)fscanf(rf,"%d",&a[i][jl);fscanf(rf."%d",&n);fun(a,n);while(p!=NULL):prinlfC'->End\n");1}main(){NODE*head;inta[N]={0,10,4,2,8,6):for(i=0;i<5;i++){for(j=0;j<5;j++)fprinif(wf, a[i][jj);fprintf(wf,"\n");}head=creatlist(a);printf("\nTheoriginallisl:\n");outlist(head);fun(head);fclose(rf);fclose(wf);\printf("\nThelistafterinverting:\n");outlist(head);1i※※※※※※※※※※※※※※※※※※※※※※※※※第09套:給定程序中,函數(shù)fun的功能是將不帶頭節(jié)點(diǎn)的單向鏈表結(jié)點(diǎn)數(shù)據(jù)域中的數(shù)據(jù)從小到大排序。即若原鏈表結(jié)點(diǎn)數(shù)據(jù)域從頭至尾的數(shù)據(jù)為:10、4、2、8、6,排序后鏈表結(jié)點(diǎn)數(shù)據(jù)域從頭至尾的數(shù)據(jù)為:2、4、6、8、10。請(qǐng)?jiān)诔绦虻牟穭澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾卜的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include<stdio.h>#include<stdlib.h>#deGneN6typedef

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論