C語言上機(jī)操作題及答案_第1頁
C語言上機(jī)操作題及答案_第2頁
C語言上機(jī)操作題及答案_第3頁
C語言上機(jī)操作題及答案_第4頁
已閱讀5頁,還剩285頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1套填空題請(qǐng)補(bǔ)充FUN函數(shù),FUN函數(shù)的功能是求10的階乘。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)屮的任何內(nèi)容,僅在fun函數(shù)的橫線上填入所編寫的若干表達(dá)式或語句。試題程序:#includelongfun(intn)(if(一I一)return(n*fun( 2 ));return 3 ;)main()(printf("10!=%ld\n",fun(10));)第1處填空:n>l或1第2處填空:n-1第3處填空:1或11或1L改錯(cuò)題下列給定程序的功能是:讀入ー個(gè)整數(shù)K(2(=K<=10000),打印它的所有因子(即所有為素?cái)?shù)的因子)。例如,若輸入整數(shù)2310,則應(yīng)輸出:2、3、5、7、11。請(qǐng)改正程序中的錯(cuò)誤,使程序能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#include/********f^ound********/IsPrime(intn);(inti,m;m=1;/********found********/for(i=2;iif!(n%i)(m=0;break;)retum(m);main()intj,k;printf("\npleaseenteranintegernumberbetween2and10000:");scanf("%d",&k);printf("\n\nTheprimefactor(s)of%dis(are):",k);for(j=2;jif((!(k%j))&&(IsPrime(j)))printf("M,",j);printf("\n");)第1處:Isprime(intn);應(yīng)改為Isprime(intn)第2處:if!(n%i)應(yīng)該為if(!(n%i))編程題M個(gè)人的成績(jī)存放在score數(shù)組中,請(qǐng)編寫函數(shù)fun,它的功能是:返回低于平均分的認(rèn)輸,并將低于平均分的分?jǐn)?shù)放在below所指的數(shù)組中,例如,當(dāng)score數(shù)組中的數(shù)據(jù)為10、20、30、40、50、60、70、80、90時(shí),函數(shù)返回的認(rèn)輸應(yīng)該是4,below中的數(shù)據(jù)應(yīng)我10、20、30、40。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fijn的花括號(hào)中填入所編寫的若干語句。試題程序:#include#include#includeintfun(intscore[],intm,intbelow[])main()(inti,n,below[9];intscore[9]={10,20,30,40,50,60,70,80,90);FILE*out;n=fun(score,9,below);printf("\nBelowtheaveragescoreareout=fopen(,'out.dat",for(i=0;i(printf(**%dn,below[i]);fprintf(out,"%d\n",below[i]);Ifclose(out);}答案是:intfun(intscore[],intm,intbelow[])intLk=O,aver=O;fbr(i=O;iaver+=score[i];aver/=m;for(i=0;iif(score[i](below[k]=score[i];k++;)returnk;}ー、填空題:程序通過定義學(xué)生結(jié)構(gòu)體變量,存儲(chǔ)了學(xué)生的學(xué)號(hào)、姓名和3門課的成績(jī)。所有學(xué)生數(shù)據(jù)均以二進(jìn)制方式輸出到文件中。函數(shù)fim的功能是重寫形參filename所指文件屮最后一個(gè)學(xué)生的數(shù)據(jù),即用新的學(xué)生數(shù)據(jù)覆蓋該學(xué)生原來的數(shù)據(jù),其它學(xué)生的數(shù)據(jù)不變。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include#defineN5typedefstructstudent{longsno;charname[10];floatscore[3];}STU;voidfun(char*filename,STUn){FILE*fp;/**********found*******ホ**/fp=fopen(_l_,"rb+");/**********砧und**********/fseek(_2_,-(long)sizeof(STU),SEEK_END);/**********nd**********/fwrite(&n,sizeof(STU),fclose(fp);}main(){STUt[N]={{10001,"MaChao",91,92,77},{10002,"CaoKai1',75,60,88},{10003,MLiSi",85,70,78},{10004,TangFang1,,90,82,87},{10005,“ZhangSan”,95,80,88}};STUn={10006,“ZhaoSi”,55,70,68},ss[N];inti,j;FILE*fp;fp=fopen("student.dar‘,"wb");fwrite(t,sizeof(STU),N,fp);fclose(fp);fp=fopen(,,student.dat'\"rb1');fread(ss,sizeof(STU),N,fp);fclose(fp);printf(n\nTheoriginaldata:\n\n");for(j=0;jo{printf(u\nNo:%ldName:%-8sScores:n,ss[j].sno,ss[j].name);for(i=0;i<3;i++)printf("%6.2f”,ss[j].score[i]);printf("\n");)fun("student.dat",n);printf("\nThedataaftermodifing:\n\n");fp=fopen("student.dat","rb");fread(ss,sizeof(STU),N,fp);fclose(fp);for(j=0;jo{printf("\nNo:%IdName:%-8sScores:",ss[j].sno,ss[j].name);for(i=0;i<3;i++)printf("%6.2f",ss[j].score[i]);printf("\n");}}解題答案:fp=fopen(filename,,,rb+,');fseek(fp,-(long)sizeof(STU),SEEK_END);/**********=**********/fwrite(&n,sizeof(STU),1,fp);******************************************ー改錯(cuò)題.給定程序MOD]]C中的函數(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)!給定源程序:#include#includetypedefstructaa{intdata;structaa*next;}NODE;NODE*Creatlink(intn,intm){NODE*h=NULL,*p,*s;inti;/**********砧und***********/p=(NODE)malloc(sizeof(NODE));h=p;p->next=NULL;for(i=l;i<=n;i++){s=(NODE*)malloc(sizeof(NODE));s-xlata=rand()%m;s->next=p->next;p->next=s;p=p->next;)/********** nd*******ホ***/returnp;)outlink(NODE*h){NODE*p;p=h->next;printf(M\n\nTHELIST:\n\nHEAD”);while(p){printf(H->%du,p->data);p=p->next;)printf(An");)main(){NODE*head;head=Creat!ink(8,22);outlink(head);解題答案:/**********found***********/p=(NODE*)malloc(sizeof(NODE));/**********found***********/returnh;三、程序題:請(qǐng)編寫函數(shù)fun,函數(shù)的功能是:統(tǒng)計(jì)一行字符串中單詞的個(gè)數(shù),作為函數(shù)值返回。一行字符串在主函數(shù)中輸入,規(guī)定所有單詞由小寫字母組成,單詞之間由若干個(gè)空格隔開,一行的開始沒有空格。注意:部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)firn的花括號(hào)中填入你編寫的若干語句。給定源程序:#include#include#defineN80intfun(char*s)()main(){charline[N];intnum=0;voidNONO();printf("Enterastring:\n");gets(line);num=fun(line);printf("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=fopen("in.dat","r,');wf=fopen("〇ut.dat","w");for(i=0;i<10;i++){fgets(line,N,rf);p=strchr(line,ヽn');if(p!=NULL)*p=0;num=fun(line);fprintf(wf,"%d\n",num);}fclose(rf);fclose(wf);)參考答案:intfun(char*s)while(*s){if(*s=,')k++;s++;)returnk;)第2套填空題請(qǐng)?jiān)诤瘮?shù)FUN的橫線上填寫若干表達(dá)式,使從健盤上輸入ー個(gè)整數(shù)N,輸出斐波納契數(shù)列。斐波納契數(shù)列是一種整數(shù)數(shù)列,其中每數(shù)等于前面兩數(shù)之和,如:011235813…請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在fun函數(shù)的橫線上填入所編寫的若干表達(dá)式或語句。試題程序:#includeintfun(intn);main()(inti,n=0;scanf("%d”,&n);for(i=0;ivN;&NBSP;I++)printf(M%dfun(i));intfun(intn)if(—1—)return0;elseif(—2—)return1;elsereturn 3 ;)第1處填空:n==0或〇=n或!n第2處填空:n==l或l=n第3處填空:fun(n-l)+fun(n-2)或fun(n-2)+fun(n-l)改錯(cuò)題下列給定程序中,函數(shù)FUN的功能是:逐個(gè)比較a、b兩個(gè)字符串對(duì)應(yīng)位置中的字符,把ASCH值大或相等的字符依次存放到c數(shù)組中,形成一個(gè)新的字符串。例如,若a中的字符串為aBCDeFgH,b中的字符串為:ABcd,則c中的字符串應(yīng)為:aBcdeFgHo請(qǐng)改正程序中的錯(cuò)誤,使程序能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#includevoidfun(char*p,char*q,char*c)intk=1;/********価und********/while(*p!=*q)(if(*p<*q)c[k]=*q;elsec[k]=*p;if(*P)P++;if(*q)q++;k++;))main()(chara[10J二"aBCDeFgH”,b[10]="ABcd”,c[80]={‘、〇'};fun(a,b,c);printf('Thestringa:");puts(a);printf(”Thestringb:");puts(b);printfCTheresult:M);puts(c);}第1處:intk=l應(yīng)改為!ntk=0;第2處:while(*p!=*q)應(yīng)改為while(*pll*q)編程題請(qǐng)編寫函數(shù)fun,它的功能是:求出1至リ1000之內(nèi)能被7或11整除、但不能同時(shí)被7或11整除的所有整數(shù)并將它們放在a所指的數(shù)組中,通過n返回這些數(shù)的個(gè)數(shù)。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。試題程序:#include#includevoidfun(int*a,int*n)()main()(intaa[1000],n,k;FILE*out;fun(aa,&n);out=fopen(,'out.datH,Mw");for(k=0;kiR(k+l)=0){printf("]\n”,aa[k]);fprintf(outn%d\n'\aa[k]);}else(printfC'];;aa[k]);fprintf(out,n%d/\aa[k]);)fclose(out);)答案是:voidfun(int*a,int*n)(inti,j=0;for(i=2;i<1000;i++)if((i%7=0||i=0)&&iw!=0)a[j++]=i;*n=j;ー、填空題:給定程序的功能是:從鍵盤輸入若干行文本(每行不超過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=fopen(,,myfile4,txt,V,wM))=NULL){primf("openfail!!\n");exit(O);)WriteText(fp);fclose(fp);if((fp=fopen(Mmyfile4.txt,,,"r,,))=NULL){printf(Mopenfail!!\n");exit(O);)ReadText(fp);fclose(fp);/**********砧und**********/voidWriteText(FILE_1_){charstr[81J;printfC^XnEnterstringwith-1toend:\n");gets(str);while(strcmp(str;'-r')!=O){/**********found**********/fputs(—2—,iw);fputs(”\n”,fw);gets(str);voidReadText(FILE*fr){charstr[81];printf(H\nReadfileandoutputtoscreen:\n");fgets(str,81,fr);while(!feof(fr)){/**********found*******ホ**/printf("%s",—3—);fgets(str,81,fr);解題答案:/********** .4ヌ**********/voidWriteText(FILE*fw)fputs(str,fw);fputs(,'\nM,fw);/**********=**********/printf(M%sn,str);二、改錯(cuò)題:給定程序MODI1.C中函數(shù)fun的功能是:從低位開始取出長(zhǎng)整型變量s屮奇數(shù)位上的數(shù),依次構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當(dāng)s中的數(shù)為:7654321時(shí),t中的數(shù)為:753k請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include/************found************/voidfun(longs,longt){longsl=10;*t=s%10;while(s>0){s=s/100;*si+*t;/************nd************/si=si*100;main(){longs,t;printf(n\nPleaseenters:M);scanf(H%ld",&s);fun(s,&t);printf(MTheresultis:%ld\nM,t);解題答案:/************nd************/voidfun(longs,long*t)/************found************/sl=sl*10;三、程序題:函數(shù)firn的功能是:將兩個(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=1524o注意:部分源程序存在文件PROG1.C屮。數(shù)據(jù)文件IN.DAT中的數(shù)據(jù)不得修改。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。給定源程序:voidfun(inta,intb,long*c)!)main(){inta,b;longc;voidNONO();printf("Inputa,b:");scanf("%d,%d",&a,&b);fun(a,b,&c);printf("Theresultis:%ld\n",c);NONO();)voidNONO(){/?本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;inti,a,b;longc;rf=fopen("in.dat","rM);wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d,%d",&a,&b);fun(a,b,&c);fprintf(wf,"a=%d,b=%d,c=%ld\nu,a,b,c);)fclose(rf);fclose(wf);)解題答案:(*c=(b八〇)*1000+(a)*100+(b)*10+(a/10);)第3套填空題請(qǐng)補(bǔ)充函數(shù)FUN(CHAR*S),該函數(shù)的功能是把字符串中的內(nèi)容逆置.例如:字符串中原有的字符串為abcde,則調(diào)用該函數(shù)后,串中的內(nèi)容為edcba.請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在fun函數(shù)的橫線上填入所編寫的若干表達(dá)式或語句。試題程序:#include<string.h>#include<conio.h>#include<stdio.h>#defineN81inti,n=strlen(s)-l;chart;for(i=0;i<n;i++, 1 )(t=s[i];―2_;―3—;))main()(chara[N];printf(,FEnterastring:'*);gets(a);printf('Theoriginalstringis:1');puts(a);fun(a);printf(H\nn);printf('Thestringaftermodified:'1);puts(a);第1處填空:nー或ー-n或n-=l或n=n-1第2處填空:s「]=s[n]或?(s+i)=*(s+n)第3處填空:s[n]=t或?(s+n)=t改錯(cuò)題下列給定的程序中,函數(shù)fun的功能是:依次取出字符串中所以數(shù)字字符,形成新的字符串,并取代原字符串。請(qǐng)改正函數(shù)fun中的錯(cuò)誤,使程序能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#include<conio.h>voidfiin(char*s)(inti,j;/********砧und********/for(i=0,j=0;s[i]!='ゝ〇';i++)if(s[j]>='O'&&s[i]<='9')s|j]=s[i];/********found********/sQ]二"'0”;}main()charitem[8OJ;printf(u\nEnterastringゴ);gets(item);printf(M\n\nThestringis:%s\nu,item);fun(item);printf(u\n\nThestringofchangingis:%s\n",item);)第1處:s[j]=s[i];應(yīng)改為s[j++]=s[i]第2處:s[j]ゴ/0”;應(yīng)改為s(j]='\O';編程題請(qǐng)編寫函數(shù)voidfun(intx,intpp[],int*n),它的功能是:求出能整除x且不是偶數(shù)的各整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個(gè)數(shù)通過形參n返回.例如,若x中的值為30,則有4個(gè)數(shù)符合要求,它們是1,3,5,は注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>voidfun(intx,intpp[],int*n)()main()intx,aa[1000],n,i;FILE*oul;printf(u\nPleaseenteranintegernumber:\nn);scanf("%d",&x);fun(x,aa,&n);for(i=0;i<n;i++)printf("%d二aa[i]);printf(“ヽn");fun(73O,aa,&n);out=fopen("out.dat'\"w");for(i=0;i<n;i++)fprintf(out,1,%d\nH,aa[i]);fclose(out);)答案是:voidfun(intx,intpp山nt*n)(inti=l,j=O,k=O,*t=pp;for(i=0;i<=x;i++)if(i%2!=0)(tfj]=i;j++;fbr(i=0;i<j;i+4-)if(x%t[i|==O)(pp[k]=t[i];k++;1*n=k;)一、填空題:給定程序中,函數(shù)fun的功能是:將自然數(shù)1?10以及它們的平方根寫到名為myflle3.txt的文本文件中,然后再順序讀出顯示在屏幕上。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include#includeintfun(char*fname){FILE*fp;inti,n;floatx;if((fp=fopen(fname,,,w,,))==NULL)return0;for(i=l;i<=10;i++)/**********found**********/fprintf(—1—,M%d%f\n,1,i,sqrt((double)i));printf("\nSucceed!!\n");/**********佑und**********/printf(',\nThedatainfileAn");/**********found**********/if((fp=fopen(_3二"))==NULL)return0;fscanf(fp,H%d%f',&n,&x);while(!feof(fp)){printf(M%d%f\n",n,x);fscanf(fp;'%d%f;&n,&x);)fclose(fp);return1;)main(){charfname[]=,'myfile3.txtH;fun(fname);)解題答案:第一空********fprintf(fp,"%d%f\nM,i,sqrt((double)i));printf("XnSucceed!!\nu);fclose(fp);/**********金ニ生**********/? シ!jif((fp=fopen(fname/,r,,))==NULL)二、改錯(cuò)題:給定程序MODI1.C中fun函數(shù)的功能是:將n個(gè)無序整數(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;/************found************/if(a[p]>a[i])/************ nd************/if(pH){t=a[j];a(j]=a[p];a[p]=t;))putarr(intn,int*z){inti;for(i=1;i<=n;i++,z++){printf(,,M,\*z);if(!(iAprintff。");}printf(,,\nM);}main(){intaa[20]={9,3,0A1,2,5,6,8,10,7),n=ll;printf("\n\nBeforesorting%dnumbers:\nn,n);putarr(n,aa);fun(n,aa);printf(H\nAftersorting%dnumbers:\nM,n);putarr(n,aa);)解題答案:#include#includefun(intn,int*a){inti,j,p,t;for(j=0;jo{p=j;for(i=j+1;i<N;1++)<p>/************nd************/p=i;三、程序題:函數(shù)fun的功能是:將兩個(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=2514。注意:部分源程序存在文件PROG1.C中。數(shù)據(jù)文件IN.DAT中的數(shù)據(jù)不得修改。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。給定源程序:#includevoidfun(inta,intb,long*c)()main(){inta,b;longc;voidNONO();printf(HInputa,b:つ;scanf("%d,%d“,&a,&b);fun(a,b,&c);printf(MTheresultis:%ld\n",c);)voidNONO(){/?本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;inti,a,b;longc;rf=fopen(Min.datM,V);wf=fopen(^ut.dat'V'w");for(i=0;i<10;i++){fscanf(rf,"%d,%d“,&a,&b);fun(a,b,&c);fprintf(wf,,,a=%d,b=%d,c=%ld\nu,a,b,c);)fclose(rf);fclose(wf);)解題答案:(*c=(b)*1000+(a)*100+(b/10)*10+a/10;)第4套

填空題請(qǐng)補(bǔ)充函數(shù)FUN,它的功能是:計(jì)算并輸出N(包括N)以內(nèi)能被3或7整除的所有自然數(shù)的倒數(shù)之和。例如,在主函數(shù)中從鍵盤給N輸入30后,輸出為:S=1.226323〇請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在fun函數(shù)的橫線上填入所編寫的若干表達(dá)式或語句。試題程序:#includedoublefun(intn)(inti;doublesum=0.0;for(i=l; 1 ;i++)if(i%3==0—2—i%7==0)sum+= 3 /i;returnsum;)main()(intn;doubles;printf(”ヽnlnputn:");scanf(,'%d,*,&n);s=fun(n);printf("\n\ns=%f\n",s);)第1處填空:i<=n或n>=i第2處填空:II第3處填空:1.0或(double)l改錯(cuò)題下列給定程序中,fun函數(shù)的功能是:分別統(tǒng)計(jì)字符串中大寫字母和小寫字母的個(gè)數(shù)。例如,給字符串s輸入:AaaaBBbl23CCccccd,則應(yīng)輸出結(jié)果:upper=6,lower=8請(qǐng)改正程序中的錯(cuò)誤,使程序能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#include*******found********/voidfun(char*s,inta,intb)(while(*s)(/********ft)und********/if(*s>='A'&&*s<=,Z,)a++;/********砧und********/if(*s>=,a,&&*s<=,z,)b++;s++;})main()(chars[100];intupper=0,lower=0;printf(u\nPleaseastring:");gets(s);fun(s,&upper,&lower);printf("\nupper=%dlower=%d\nH,upper,lower);)第1處:voidfun(char*s,inta,intb)應(yīng)改為voidfun(char*s,int*a,int*b)第2處:a++;應(yīng)改為(*a)++;第3處:b++;應(yīng)改為(*b)++;編程題請(qǐng)編寫ー個(gè)函數(shù)voidfun(char*tt,intpp|]).統(tǒng)計(jì)在tt字符串中"a"到セ''26個(gè)字母各自出現(xiàn)的次數(shù),并依次存放在pp所指數(shù)組中。例如,當(dāng)輸入字符串a(chǎn)bcdefgabcdeabc后,程序的輸出結(jié)果應(yīng)該是:注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。試題程序:#include#includevoidfun(char*tt,intpp[|)()main()(charaaflOOO];intbb[26],k;FILE*out;printf("\nPleaseenteracharstring:");scanf("%s",aa);fun(aa,bb);for(k=0;k<26;k++)printf("%d",bb[k]);printf("\n");fun("abosomfriendafarbringsadistantlandnear",bb);out=fopen("out.dat","w");for(k=0;k<26;k++)fprintf(out,H%d\nM,bb[k]);fclose(out);)答案是:voidfun(char*tt,intpp[]){intI;for(i=0;i<26;i++)Pp[i]=0;while(*tt){switch(*tt){case,a,:pp[O]++;break;case'b':pp[l]++;break;case,c,:pp[2J++;break;case'd':pp[3]++;break;case'e':pp[4]++;break;caseY:pp[5]++;break;case,g':pp[6]++;break;case,h,:pp[7]++;break;case'i':pp[8]++;b「eak;case'j':pp[9]++;break;case,k,:pp[10]++;break;caseT:pp[ll]++;break;case5 :pp112]-H-;break;case'n':pp[13]++;break;case,o,:pp[14]++;break;case,p,:pp[15]++;break;case七’:pp[16]++;break;caseT:pp[17]+十;break;case's':pp[18]十+;break;caseT:pp[19]十十;break;case'u':pp[20]十十;break;case'v':pp[21]十十;break;case'w':pp[22]+十;break;case,x':pp[23]+十;break;case'y':pp[24]十十;break;case'z':pp[25]十十;break;)tt十十;ー、填空題:程序通過定義學(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所指的文件中,覆蓋原來的文件內(nèi)容。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果〇注意:源程序存放在考生文件夾下BLANKLC中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include#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);fclose(fp);for(i=0;i<p>for(j=i+1;joif(s[i].sno_2—s|j].sno){t=s[i];s[i]=sU];s|j]=t;}fp=fopen(filename,"wb,1);/**********found**********/_3_(s,sizeof(STU),N,fp);/?二進(jìn)制輸出?/fclose(fp);)main(){STUt[N]={{10005,nZhangSan';95,80,88},{10003,"LiSi",85,70,78},{10002,,'CaoKai",75,60,88},{10004,TangFang'1,90,82,87},{10001,“MaChao”,91,92,77}},ss[N];inti,j;FILE*fp;fp=fopen("student.daピ,"wb");fwrite(t,sizeof(STU),5,fp);fclose(fp);printf(',\n\nTheoriginaldata:\n\nH);for(j=O;j<>{printf("\nNo:%ldName:%-8sScores: t|j].name);for(i=0;i<3;i++)printf(H%6.2fH,t|j].score[i]);printf(M\nu);}fun(Hstudent.dat");printf("\n\nThedataaftersorting:\n\nM);fp=fopen(Mstudent.dat';''rb1');fread(ss,sizeof(STU),5,fp);fclose(fp);for(j=0;jo{primf("\nNo:%ldName:%-8sScores:n,ss[j].sno,ss[j].name);for(i=0;i<3;i++)printf("%6.2f\ss|j].score[i]);printf(,,\n,');解題答案:/**********第—空**********/fp=fopen(filename,"rb");/**********~**********/if(s[i].sno>s[j].sno)/**********第二空**********/fwrite(s,sizeof(STU),N,fp);/?二進(jìn)制輸出?/二、改錯(cuò)題:給定程序MODI1.C中函數(shù)fun的功能是:在字符串的最前端加入n個(gè)?號(hào),形成新串,并且覆蓋原串。注意:字符串的長(zhǎng)度最長(zhǎng)允許為フ9。請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include#includevoidfun(chars[],intn)chara[80],*p;/**********found*******ホ***/s=p;for(i=0;i<a[i]=,,*,,i++)>do{a[i]=*p;i++;)/**********ほund*****'while(*p++)a[i]=0;strcpy(s,a);)main(){intn;chars[80];printfC*\nEnterastringゴ’);gets(s);printf(,f\nThestringド%s'%”,s);printf("\nEntern(numberof*)ゴ');scanf("%d”,&n);fun(s,n);printf("\nThestringafterinsert:\"%s\"\n",s);)解題答案:/**********found***********/P=s;/**********found***********/while(*p++);三、程序題:請(qǐng)編寫函數(shù)fun,函數(shù)的功能是:統(tǒng)計(jì)各年齡段的人數(shù)。N個(gè)年齡通過調(diào)用隨機(jī)函數(shù)獲得,并放在主函數(shù)的age數(shù)組中;要求函數(shù)把0至9歲年齡段的人數(shù)放在仇〇]中,把10至19歲年齡段的人數(shù)放在d[l]中,把20至29歲年齡段的人數(shù)放在d[2]中,其余依此類推,把100歲(含100)以上年齡的人數(shù)都放在仇10]中。結(jié)果在主函數(shù)中輸出。注意:部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。給定源程序:#include#defineN50#defineM11voidfun(int*a,int*b))doublemd(){statict=29,c=217,m=1024,i^O;r=(r*t+c)%m;retum((double)r/m);)main(){intage[N],i,d[M];voidNONO(intd[M]);for(i=0;i<p>printf("Theoriginaldata:\nM);for(i=0;iprintfCMXn");fun(age,d);for(i=0;i<10;i++)printf("M—M:M\nu,i*10,i*10+9,d[i]);printfC'Over100:M\nM,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(^ut.dat'V'w");for(i=0;i<10;i++)fprintf(wf,MM—M:M\n';i*10,i*10+9,d[i]);fprintf(wf,°Over100:M\n”,d[10]);fclose(wf);}參考答案:voidfun(int*a,int*b){inti,j;for(i=0;i<M;i++)b[i]=0;for(i=0;i<N;i++){j=a[i]/10;if(j>10)b[M-1]++;elseb[j]++;})doublemd(){statict=29,c=217,m=1024,r=0;匸(r*t+c)%m;return((double)r/m);}第5套填空題給定程序的功能是求二分之一的圓面積,函數(shù)通過形參得到圓的半徑,函數(shù)返回二分之一的圓面積(注:圓面積公式為:S=kR,在程序中定義的變量名要與公式的變量相同)。例如,輸入圓的半徑值:19.527,輸出為:S=598.950017。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在fun函數(shù)的橫線上填入所編寫的若干表達(dá)式或語句。試題程序:#includedoublefun(doubler)(return3.14159*_1_/2.0;)main()(doublex;printf("Enterx:");scanf("%lf,—2一);printf("s=%lf\n",fun(_3__));)第1處填空:r*r第2處填空:&x第3處填空:x改錯(cuò)題假定整數(shù)數(shù)列中的數(shù)不重復(fù),并存放在數(shù)組中。下列給頂程序中,函數(shù)fiin的功能是刪除數(shù)列中值為x的元素,同時(shí)將其他元素前移。N中存放的是數(shù)列中元素的個(gè)數(shù)。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#defineN20fun(int*a,intn,intx)(intp=0,i;a[n]=x;while(x!=a[p])p=p+1;if(p==n)(return-1;)else(/********found********/for(i=p;ia[i+l]=a[i];returnn-1;I)main()intw[N]={30,1,5,7,99,10,15,30,90},x,n,i;n=10;printf(nTheoriginaldata:\nH);for(i=0;iprint",w[i]);printf("\nlnputx(todelete):,1);scanf("%d",&x);printf("Delete:%d\n",x);n=fun(w,n,x);if(n==-1)(printf("***Notbefound!***\n\n");}else{printf("Thedataafterdelete:\n");for(i=0;iprintfC']",w[i]);printf("\n\n");)第1處:a[i+l]=a[i];應(yīng)改為a[i]=a[i+l]編程題請(qǐng)編寫ー個(gè)函數(shù)voidfun(intm,intk,intxx[])?該函數(shù)的功能是:將大于整數(shù)mPし緊靠m的k個(gè)素?cái)?shù)存入xx所指的數(shù)組中。例如,若輸入:17,5,則應(yīng)輸出:19,23,29,31,37〇注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。試題程序:#include#includevoidfun(intm,intk,intxx[])main()(intm,n,zz[1000];FILE*out;printfC'AnPleaseentertwointegers:*1);scanf(**%d,%d**,&m,&n);fun(m,n,zz);for(m=0;mprintf(**%d**,zz[m]);printf(**\n**);fun(28,20,zz);out=fopen("out.dat","w");for(m=0;m<20;m++)fprintf(out,"%d\n”,zz[m]);fclose(out);}答案是:voidfun(intm,intk,intxx|])(intg=OJ,j,flag=l;for(i=m+l;i(for(j=2;j(if(i%j!=O)flag=l;else(flag=0;break;if(flag==l&&j>=i)if(k>=0)xx[g++]=I;k-;)elsebreak;一、填空題:給定程序中已建立一個(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(SL!ST*h,intx){SLIST*p,*q,*s;s=(SLIST*)malloc(sizeof(SLIST));/**********found**********/s->data= 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;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)printf(M\nThelistisNULLM");else{printf("\nHeadH);do{printf(n->%dn,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(H\nThelistbeforeinserting:\nM);outlist(head);printf("\nEnteranumber:n);scanf(M%d'\&x);fun(head,x);printf("\nThelistafterinserting:\nM);outlist(head);}解題答案:/**********第??空*********/s-xlaa=x;/**********第一空**********/q=p;/********************/q->next=s;二、改錯(cuò)題:給定程序MODI1.C中函數(shù)fun的功能是:計(jì)算正整數(shù)num的各位上的數(shù)字之積。例如,若輸入:252,則輸出應(yīng)該是:20。若輸入:202,則輸出應(yīng)該是:〇〇請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#includelongfun(longnum)/************'found************/longk;do{k*=num;/************ nd************/num\=10;}while(num);return(k);)main(){longn;printf(n\nPleaseenteranumber:u);scanf(M%ldu,&n);printf(',\n%ld\n,\fun(n));)解題答案:longk=1;/************Ind************/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)屮填入你編寫的若干語句。給定源程序:#includefloatfun(float*a,intn)()main(){floatscore[30]={90.5,72,80,61.5,55},aver;voidNONO();aver=fun(score,5);printf(,f\nAveragescoreis:%5.2f\nM,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(nout.datn,"w");for(j=0;j<5;j++)fscanf(fp/'%f;\&score(j]);aver=fun(score,5);fprintf(wf,n%5.2f\nM,aver);}fclose(fp);fclose(wf);解題答案:(inti;floatave=0.0;for(i=0;iave=ave/n;returnave;)第6套填空題給定程序的功能是計(jì)算并輸出下列級(jí)數(shù)的前N項(xiàng)之和Sn,直到Sn大于Q為止,Q的值通過形參傳入。例如,若Q的值為50.0,則函數(shù)值為50.416687.請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在fun函數(shù)的橫線上填入所編寫的若干表達(dá)式或語句。試題程序:#includedoublefun(doubleq)intn;doubles;n=2;s=2.0;while(s 1 q)(s=s4-(double)(n+l)/n;―2_;)printf("n=%d\nu,n);―3—;}main(){printf(',%f\n'\fun(50));}第1處填空:v=第2處填空:n++或n+=l或n=n+l第3處填空:returns或return(s)改錯(cuò)題下列給定程序屮,函數(shù)fun的功能是:根據(jù)整型參m的值,計(jì)算如下公式的值。T=l-2*23*3例如,若m中的值為5,則應(yīng)輸出:0.536389請(qǐng)改正程序中的錯(cuò)誤,使程序能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#includedoublefun(intm)(doubley=1.0;inti;/********found********/for(i=2;i<M;&NBSP;I++)/********found********/y-=l/(i*i);return(y);)main(){intn=5;printf(H\nTheresultis\nM,fun(n));第1處:for(i=2;i<=M;J++)第2處:y-=l/(i*i);應(yīng)改為y-=1.0/(i*i)編程題請(qǐng)編寫一ー個(gè)函數(shù)voidfun(charaロ,charbロ,intn),其功能是:刪除ー個(gè)字符串中指定下標(biāo)的字符。其中,a指向原字符串,刪除后的字符串存放在b所指的數(shù)組中,n中存放指定的下標(biāo)。例如,輸入一個(gè)字符串World,然后輸入3,則調(diào)用該函數(shù)后的結(jié)果為Word。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。試題程序:#includeincludedefineLEN20voidfun(chara[],charb[],intn)main()(charstrl[LEN],str2[LENJ;intn;FILE*out;printf(uEnterthestring:\nM);gets(strl);printf(,rEnterthepositionofthestringdeleted:0);scanf(H%d",&n);fun(strl,str2,n);printf('Thenewstringis:%s\n",str2);fun("HelloWorld!",str2,9);out=fopen("out.dat","w");fprintf(out,"%s",str2);fclose(out);}答案是:voidfun(chara[],charb[],intn)(intIJ=0;for(i=0;iif(i!=n)(b[j]=a[i];j++;)b[j]='、0';、填空題給定程序中已建立一個(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#defineN8typedefstructlist{intdata;structlist*next;}SLIST;voidfun(SLIST*p){SLIST*t,*s;t=p->next;s=p;while(t->next!=NULL){s=t;/**********nd**********/t=t-> 1 ;)printf(H%d",―2-);s->next=NULL;/**********nd**********/free(—3-);}SLIST*creatlist(int*a){SLIST*h,*p,*q;inti;h=p=(SLIST*)malloc(sizeof(SLIST));for(i=0;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)printf(H\nThelistisNULL!\n");else{printf("\nHeadH);do{printf(n->%dn,p->data);p=p->next;}while(p!=NULL);printf(M->End\nM);)}main(){SLIST*head;inta[N]={11,12,15,18,19,22,25,29);head=creatlist(a);printf(M\nOutputfromhead:\nK);outlist(head);printf(H\nOutputfromtail:\nH);while(head->next!=NULL){fun(head);printf("\n\n");printf(H\nOutputfromheadagain:\n");outlist(head);})解題答案:/**********第—<空**********/t=t->next;/**********第一空**********/printf(H%dH,t->data);/**********第二空**********/free(t);二、改錯(cuò)題:給定程序M0DI1.C中函數(shù)fun的功能是:將字符串中的字符按逆序輸出,但不改變字符串中的內(nèi)容。例如,若字符串為abed,則應(yīng)輸出:deba請(qǐng)改正程序中的錯(cuò)誤,使它能計(jì)算出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!給定源程序:#include/************found************/fun(chara){if(*a){fun(a+l);/************f6und************/printf("%c”*a);main(){chars[10]="abcdM;printf("處理前字符串二%s\n處理后字符串メ,s);fun(s);printf(n\n");解題答案:voidfun(char*a)/************found************/printf("%cH,*a);三、程序題:請(qǐng)編寫ー個(gè)函數(shù)fun,它的功能是:比較兩個(gè)字符串的長(zhǎng)度,(不得調(diào)用C語言提供的求字符串長(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)中填入你編寫的若干語句。給定源程序:#includechar*fun(char*s,char*t){)main(){chara[20],b[20];voidNONO();printf("Input1thstring:");gets(a);printf("Input2thstring:");gets(b);printf(M%s\n,,,fun(a,b));NONO();}voidNONO(){/?本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/HLE*fp,*wf;inti;chara[20],b[20];fp=fopen(Min.dat,,,,,rM);wf=fopen(,'out.dat',;'wn);for(i=0;i<10;i++){fscanf(fp,M%s%sM,a,b);fprintf(wf,H%s\nn,fun(a,b));)fclose(fp);fclose(wf);參考答案:{inti;char*p=s,*q=t;for(i=0;*p&&*q;i++){p++;q++;)if(*p=0&&*q==0)returns;if(*p)returns;elsereturnt;)第7套填空題函數(shù)fun的功能是:統(tǒng)計(jì)長(zhǎng)整數(shù)n的各個(gè)位上出現(xiàn)數(shù)字1,2,3的次數(shù),并通過外部(全局)變量cl,c2,c3返回主函數(shù)。例如,當(dāng)=123114350時(shí),結(jié)果應(yīng)該為:cl=3,c2=l,c3=2.注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在fun函數(shù)的橫線上填入所編寫的若干表達(dá)式或語句。試題程序如下:#include<stdio.h>intcl,c2,c3;voidfun(longn)(cl=c2=c3=0;while(n)switch( 1 )cl++;_2__;c2++;―3—;c3++;)n/=10;))main()(longn=123114350L;fun(n);printf("\nTheresult:\nM);printf(Hn=%ldcl=%dc2=%dc3=%d\n",n,cl,c2,c3);)第1處填空:n%10笫2處填空:break第3處填空:break改錯(cuò)題下列給定程序中函數(shù)fun的功能是:用選擇法對(duì)數(shù)組中的n個(gè)元素按從小到大的順序進(jìn)行排序。請(qǐng)改正程序中的錯(cuò)誤,使程序能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#defineN20voidfun(inta[],intn)(inti,j,t,p;for(j=0;j<n-l;j++)(/********f^jund********/p=jfor(i=j;i<n;i++)if(a[i]<a[p]){/********nd********/P=i;t=a[p];a[p]=a[i];a[i]=t;main()(inta[N]={9,6,8,3,-l},i,m=5;printfCAADoC0100);for(i=0;i<m;i++)printf("%d,“,a[i]);printf(,'\nM);fun(a,m);printf("AADd06£°");for(i=0;i<m;i++)printf(,,%d,n,a[i]);printf("\nH);)第1處:p=j應(yīng)改為p=j;第2處:p=i應(yīng)改為p=j;編程題請(qǐng)編寫ー個(gè)函數(shù)intfun(int*s,intt,int*k),用來求出數(shù)組的最大元素在數(shù)組中的下標(biāo)并存放在k所指的存儲(chǔ)單位中。例如,輸入如下整數(shù):876 675896101301401980431451777則輸出結(jié)果為:6,980o注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)屮的任何內(nèi)容,僅在函數(shù)firn的花括號(hào)屮填入所編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>voidfun(int*s,intt,int*k)main()inta[10]={876,675,896,101,301,401,980,431,451,777),k;FILE*out;fun(a,10,&k);printf(H%d,%d\n",k,a[k]);out=fopen(Mout.datM,nwn);fprintf(out,M%d\n%d",k,a|k|);fclose(out);答案是:voidfun(int*s,inttjnt*k)intI,max;max=s[0];for(i=0;i<t:i++)if(s[i]>max)(max=s[i];*k=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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論