全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)音上機(jī)題庫(kù)2011年3月1_第1頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)音上機(jī)題庫(kù)2011年3月1_第2頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)音上機(jī)題庫(kù)2011年3月1_第3頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)音上機(jī)題庫(kù)2011年3月1_第4頁(yè)
已閱讀5頁(yè),還剩161頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

下列給定程序中,函數(shù)fun的功能是:計(jì)算S=H-n)+f(-n+l)+...+f(0)+f(l)+f(2)+...f(n)的值。例如,當(dāng)n為5時(shí),函數(shù)值應(yīng)為10.407143of(x)函數(shù)定義如下:f(x尸請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<math.h>fi;doublex)(ifi(x=0.0||x=2.0)return0.0;elseif(x<0.0)return(x-l)/(x-2);elseretum(x+l)/(x-2);)doublefun(intn)|inti;doubles=0.0,y;fbr(i=-n;i<=n;i-H-){y=fi[1.0*i);s+=y;}/*************'f^und**************/returns}voidmain(){system(”CLS”);printf(n%f\nM,fun(5));}【參考答案】(1)錯(cuò)誤:fifdoublcx) 正確:doubleRdoublcx)⑵錯(cuò)誤:returns 正確:returns;t=l+l/2+l/3+l/4+…+l/m例如,若輸入5,則應(yīng)輸出2.283333o請(qǐng)改正程序中的錯(cuò)誤,使它能計(jì)算出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>doublefun(intm){doublet=1.0;intI;fbr(I=2;l<=m;l-H-)t+=1.0/k;

return1;voidmain(){intm;system(HCLSn);printfiC'^nPleaseenter1integernumber:");scanf(n%dn,&m);printfi(H\nThcresultisfun(m));}【參考答案】正確:t+=1.0/I;正確:returnt;正確:t+=1.0/I;正確:returnt;(2)錯(cuò)誤:returnI;下列給定程序中,函數(shù)fun的功能是:分別統(tǒng)計(jì)字符串中大寫(xiě)字母和小寫(xiě)字母的個(gè)數(shù)。例如,給字符串s輸入:AaaaBBbl23CCccccd,則應(yīng)輸出結(jié)果:upper=5,lower=9。請(qǐng)改正程序中的錯(cuò)誤,使它能計(jì)算出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<conio.h>#include<stdio.h>voidfiin(char*s,inta,intb)while(*s)/*********命und***********/if(*s>=,A,&&*sv=Z)a++;/*********tound***********/ifi(*s>=,a'&&?s<=,z,)b++;s++;)main()chars[100];intupper=0,lower=0;printfif^npleaseastringgets(s);ftin(s,&upper,&lower);printfl(,,\nupper=%dlower=%d\n'\upper,lower);【參考答案】(1)錯(cuò)誤:voidftin(char*s,inta,intb)正確:voidfun(char*s,int*a,int*b)⑵錯(cuò)誤:正確:(*a)++;⑶錯(cuò)誤:b++; 正確X*b)++;

下列給定程序中函數(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)。試題程序:#include<stdio.h>#include<conio.h>longfun(longnum)/*************^^und**************/longk;dok*=num%10;/*************tound**************/num\=10;}while(num);retum(k);main()intn;printff'\Plcaseenteranumber:");scanf(n%ldn,&n);printf(M\n%ld\nn,fun(n));)【參考答案】⑴錯(cuò)誤longk;正確:longk=l;(2)錯(cuò)誤:(2)錯(cuò)誤:num\=10;正確:num/=10;下列給定程序中函數(shù)fun的功能是:計(jì)算n!。例如,給n輸入5,則輸出120.000000。請(qǐng)改正程序中的錯(cuò)誤,使程序能輸出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#includc<stdio.h>#include<conio.h>doublefun(intn){doubleresult=1.0;/*************^Qund**************/ifn=0return1.0;while(n>1&&n<170)/*************tound**************/result=n-;returnresult;voidmain(){intn;printf(MInputN:M);scanf(M%d",&n);printf(M\n\n%d!=%lf\nM,n,fiin(n));}【參考答案】⑴錯(cuò)誤:ifn==0 正確:if(n==0)(2)錯(cuò)誤:result=n-;正確:result*=n-;下列給定的程序中,函數(shù)ftm的功能是:計(jì)算并輸出k以內(nèi)最大的10個(gè)能被13或17整除的自然數(shù)之和。k的值由主函數(shù)傳入,若k的值為500,則函數(shù)的值為4622o請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>intfiin(intk){intm=0,mc=0,j;while((k>=2)&&(mc<10))…**************if((k%13=0)||(k%17=0)){m=m+k;mc++;}k??;/***************************/returnm;)voidmain(){system(,,CLSM);printff%d\nM,fiin(500));)【參考答案】⑴錯(cuò)誤M(k%13=0)||(k%17=0))正確:if((k%13==0)||(k%17=0))(2)錯(cuò)誤:缺少大括號(hào)正確:加}下列給定程序中,函數(shù)ftin()的功能是:根據(jù)整型形參m的值,計(jì)算如下公式的值:請(qǐng)改正函數(shù)ftin()中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>doublefun(intm){doubley=1.0;

int1;/*************f^)und**************/fbr(I=2;I<m;I-H-)/***************************/y-=l/(I*I);retum(y);voidmain(){intn=5;system(nCLSM);printf(n\nTheresultis%lf\nn,ftin(n));}【參考答案】⑴錯(cuò)誤:fbr(i=2;i〈m;iH)正確:fbr(i=2;iv=m;i++)(2)錯(cuò)誤:y=l/(i*i);正確:y?=L0/(i*i);在主函數(shù)中從鍵盤(pán)輸入若干個(gè)數(shù)放入數(shù)組中,用0結(jié)束輸入并放在最后一個(gè)元素中。下列給定程序中,函數(shù)fun的功能是:計(jì)算數(shù)組元素中值為正數(shù)的平均值(不包括0)。例如,數(shù)組中元素的值依次為39,-47,21,2,-8,15,0,則程序的運(yùn)行結(jié)果為19.250000=請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<conio.h>#include<stdio.h>doublefun(intx[])/*************tound**************/intsum=0.0;intc=0,1=0;while(x[I]!=0)sum+=x[I];c++;I++;/*************向und**************/sum=sum\c;returnsum;【參考答案】(1)錯(cuò)誤:【參考答案】(1)錯(cuò)誤:intsum=0.0;(2)錯(cuò)誤:sum\=c;正確:doublesum=0.0;正確:sum/=c;下列給定程序中,函數(shù)fun的功能是:判斷一個(gè)整數(shù)m是否是素?cái)?shù),若是返回1,否則返回0。在main函數(shù)中,若ftm()返回1則輸出“YES”,若ftm()返回0則輸出“NO!”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#includc<stdio.h>intfun(intm){intk=2;while(k<=m&&(m%k))if(m=k)return1;elsereturn0;voidmain(){intn;system(nCLSH);printf(M\nPleaseentern:**);scanf(H%dH,&n);if(ftin(n))printf(,,YES\nM);elseprintfi(,,NO!\nH);【參考答案】(1)【參考答案】(1)錯(cuò)誤:k++(2)錯(cuò)誤:if(m=k)正確:k++;正確:if(m=k)下列給定程序中,函數(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)。試題程序:#includc<stdio.h>/*************^)und**************/intfun(n)intc;if(n=l)c=10;elsec=fun(n-l)+2;retum(c);intn;printfif1Entern:");scanfC%d”,&n);printffTheresult:%d\n\nn,fun(n));}【參考答案】⑴錯(cuò)誤:intfun(n) 正確:intfun(intn)(2)錯(cuò)誤:if(n=l) 正確:if(n==l)下列給定程序中,函數(shù)fun的功能是:用遞歸算法計(jì)算斐波拉契級(jí)數(shù)列中第n項(xiàng)的值。從第一項(xiàng)起,斐波拉契級(jí)數(shù)序列為1,1,2,3,5,8,13,21,…例如,若給n輸入7,該項(xiàng)的斐波拉契級(jí)數(shù)值為13。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>longfun(intg)/***************************/switch(g);{case0:return0;case1;case2:return1;return(fun(g-1)+fun(g-2));voidmain()longfib;intn;printtflnputn:");scanff%d”,&n);printf(Mn=%d\nM,n);fib=fun(n);printfi(Hfib=%d\n\nn,fib);}【參考答案】⑴錯(cuò)誤:switch(g);正確:去掉分號(hào)⑵錯(cuò)誤:casel;case2:return1;正確:case1:case2:return1;下列給定程序中,函數(shù)fun的功能是:求出數(shù)組中最大數(shù)和次最大數(shù),并把最大數(shù)和a[0]中的數(shù)對(duì)調(diào)、次最大數(shù)和a[l]中的數(shù)對(duì)調(diào)。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果.注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序://include#include//include#include#define<stdio.h>N20/*************向und**************/voidfun(int*a,intn);intI,m,t,kfbr(l=O;I<n;I++)/*************eund**************/m=0;fbr(k=I+l;k<n;k++)if(a[k]>a[m])m=k;t=a[I];a[I]=a[m];a[m]=t;))main()(intb[N]={11,5,1203,6,9,7J0,8},n=10,i;system(uCLSM);fbr(i=0;i<n;i-H-)printf(H%d\b[i]);printfi(,,\nH);fun(b,n);fbr(i=0;i<n;i++)printf(n%d",b[i]);printffW");}【參考答案】(1)錯(cuò)誤:voidfiin(int*a,intn);正確:voidfun(int*a,intn)⑵錯(cuò)誤:m=0; 正確:m=i;下列給定程序中,函數(shù)fun的功能是:將十進(jìn)制正整數(shù)m轉(zhuǎn)換成進(jìn)制數(shù),并按位輸出。例如,若輸入8和2,則應(yīng)輸出1000(即十進(jìn)制數(shù)8轉(zhuǎn)換成二進(jìn)制表示是1000)o請(qǐng)改正函數(shù)fun中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#include<conio.h>voidfiin(intm,intk);{intaa[20],i;fbr(i=0;m;i-H-)/*************^Qy|-|J***?***?**?**?/aa[i]=m/k;m/=k;main()intb,n;printff'VnPleaseenteranumberandabase:\nM);scanf(M%d%dM,&n,&b);ftin(n,b);printff\n”);}【參考答案】(1)錯(cuò)誤:voidfun(intm,intk);正確:voidfun(intm,intk)⑵錯(cuò)誤:aa[i]=m/k;正確:aa[i]=m%k;(3)錯(cuò)誤:printfC%d",aa[i]);正確:printf(”%d”,aa[i-l]);下列給定程序中,函數(shù)fun的功能是:計(jì)算函數(shù)F(x,y,z尸(x+y)/(x?y)+(z+y)/(z?y)的值。其中x和y不相等,z和y不等。例如,當(dāng)x的值為9,y的值為U,z的值為15時(shí),函數(shù)值為350。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#includc<stdlib.h>#include<stdio.h>#includc<math.h>/*************8und**************///defineFU(m,n)(m/n)floatfiin(floata,floatb,floatc){floatvalue;value=FU(a+b,a-b)+FU(c+b,c-b);/*************tound**************/retum(Value);)voidmain(){floatx,y,z,sum;printf(HInputxyz::");scanfC'%f%f%f,&x,&y,&z);printfi(,,x=%f,y=%f,z=%f\n”,x,y,z);if(x==y||y=z){printff'Dataerror!\nexit(0);}sum=fiin(x,y,z);printf(HTheresultis:%5.2f\n”,sum);}【參考答案】(1)錯(cuò)誤:#defineFU(m,n)(m/n)正確:#dcfineFU(m,n)(m)/(n)(2)錯(cuò)誤:retum(Vahie);正確:return(value);下列給定程序中函數(shù)fun的功能是:先將在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序連接到t串的后面。例如,當(dāng)s中的字符串為ABCDE時(shí),則t中的字符串應(yīng)為EDCBAABCDEo請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#includc<string.h>voidfun(char*s,char*t)|intI,sl;sl=strlcn(s);for(I=0;I<sl;I++)t[I]=s[sl-l];fbr(I=O;Ksl;R+)t[sl+I]=s[I];t[2*sl]='\0';}voidmain(){chars[100],t[100];system(nCLSH);printf(n\nPleaseenterstrings:");scanflfn%sM,s);fun(s,t);printf(MTheresultis:%s\nn,t);)【參考答案】(1)錯(cuò)誤:t[i]=s[s1-1]; 正確:t[i]=s[s1-1-i];下列給定程序中,函數(shù)fun的功能是:求三個(gè)數(shù)的最小公倍數(shù)。例如,給變量xl、x2、x3分別輸入15、11、2,則輸出結(jié)果應(yīng)當(dāng)是330。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>intfun(intx,inty,intz){intj,t,n,m;t=m=n=1;/*************^Qund**************/while(t!=0&&m!=0&&n!=0)J=J+1;年j%x;m=j%y;n=j%z;returnj;)voidmain()(intxl,x2,x3j;printf(MInputxlx2x3:");scanf(,,%d%d%d,,,&xl,&x2,&x3);printf(Mx1=%d,x2=%d,x3=%d\nM,x1,x2,x3);j=fiin(xl,x2,x3);printf(nTheminimalcommonmultipleis:%d\n"J);}【參考答案】⑴錯(cuò)誤:j=l; 正確:j=0;(2)錯(cuò)誤:while(t!=0&&m!=0&&n!=0)正確:while(t!=0||m!=0||n!=0)下列給定程序中,函數(shù)ftm的功能是:從n個(gè)學(xué)生的成績(jī)中統(tǒng)計(jì)出低于平均分的學(xué)生人數(shù),此人數(shù)由函數(shù)值返回,平均分存放在形參aver所指的存儲(chǔ)單元中。例如輸入8名學(xué)生的成績(jī):80.5607290.59851.58864則低于平均分的學(xué)生人數(shù)為4(平均分為75.5625)o請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#includc<stdio.h>#include<conio.h>#defineN20intfun(float*s,intn,float*aver){floatave,t=0.0;intcount=0,k,i;fbr(k=O;k<n;k++)t=s[k];ave=t/n;for(i=O;i<n;i-H-)if(s[i]<ave)count-H-;/*************f^)und**************/*aver=&ave;returncount;)voidmain(){floats[30],aver;intm,i;system(nCLSM);printfif^VnPleaseenterm:");scanff%d”,&m);printft^VnPleaseenter%dmark:\nM,m);for(i=0;i<m;i++)scanff%F,s+i);printff'VnThenumberofstudents:%d\nM,fun(s,m,&aver));printfi[nAve=%f\nn,aver);【參考答案】⑴錯(cuò)誤:t=s[k]; 正確:t+=s[k];(2)錯(cuò)誤:*aver=&ave;正確:*aver=ave;下列給定程序中,函數(shù)fim的功能是:在字符串的最前端加入n個(gè)*號(hào),形成新串,并且覆蓋原串。注意:字符串的長(zhǎng)度最長(zhǎng)允許為79o請(qǐng)改正函數(shù)fun中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#include<string.h>#include<conio.h>voidfun(chars[],intn){chara[80],*p;intI;/*************8und**************/s=p;fbr(I=O;I<n;I++)a[I]=f*';do{a[I]=*p;—填空_}while(*p);a[I]=O;strcpy(s,a);voidmain(){intn;chars[80];system(nCLSM);printf(M\nEnterastring:M);gets(s);print-\nThestring:%s\nH,s);printfC'XnEntern(numberof*):*');scanff'%d”,&n);fiin(s,n);printf(”\nThestringafterinster:%s\n*',s);}【參考答案】⑴錯(cuò)誤:s=p; 正確:p=s;⑵應(yīng)填p++;或++p;或p+=l;或p=p+l;(3)錯(cuò)誤:a[i]=。;正確:a[i]=2;或a[i]=O下列給定程序中,函數(shù)fun的功能是:刪除字符串s中所有空白字符(包括Tab符、回車(chē)符及換行符)。輸入字符串時(shí)用"#"結(jié)束輸入。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<string.h>

#include<stdio.h>#include<ctype.h>fun(char*p){inti,t;charc[80];fbi(i=O,t=O;p[i];i++)if(!isspace(*(p+i)))c[t-H-]=p[i];c[t]=M\OH;strcpy(p,c);}voidmain(){charc,s[80];inti=0;printfif^Inputastring:'*);c=getchar();while(c!='#'){s[i]=c;i4--l-;c=getchar();}s[i]Wfiin(s);puts(s);【參考答案】⑴【參考答案】⑴錯(cuò)誤:c[t]="\O";正確dan。,;下列給定程序中,函數(shù)fun的功能是:先從鍵盤(pán)上輸入一個(gè)3行、3列的矩陣的各個(gè)元素的值,然后輸出主對(duì)角線元素之和。請(qǐng)改正函數(shù)fun中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:include<stdio.h>voidfun()inta[3][3],sum;intij;sum=l;for(i=0;i<3;i++){for(j=O;j<3j++)/*************Cun(j**************/scanf(M%dM,a[i]O]);}for(i=0;i<3;i++)sum=sum+a[i][i];printf(HSum=%d\nn,sum);voidmain()}【參考答案】正確:sum=0;(1)錯(cuò)誤:正確:sum=0;(2)錯(cuò)誤:scanf("%d",a[i][j]);正確:scanf("%d",&a[i][j]);下列給定程序中函數(shù)fun的功能是:求出字符串中最后一次出現(xiàn)的子字符串的地址,通過(guò)函數(shù)值返回,在主函數(shù)中輸出從此地址開(kāi)始的字符串;若未找到,則函數(shù)值為NULL.,例如,當(dāng)字符串中的內(nèi)容為abcdabfabcdx,t中的內(nèi)容為ab時(shí),輸出結(jié)果應(yīng)是abcdx。當(dāng)字符串中的內(nèi)容為abcdabfabcdxj中的內(nèi)容為abd時(shí),則程序輸出未找到的信息"Notfound!".請(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;/*************tound**************/a=Null;while(*s){P=s;r=t;while(*r)if(r=p){rH-;p-H-;}elsebreak;ifi(*r=,\0,)a=s;S-H-;)returna;)voidmain(){chars[100],t[100],*p;system(MCLSH);printfi[M\nPleascenterstringS:");scanf(M%s,1,s);printfiC'^nPleaseentersubstringt:");scanf(n%sM,t);p=fiin(s,t);if(p)printf(H\nTheresultis:%s\nu,p);elseprintfif'XnNotfound!\n");}【參考答案】⑴錯(cuò)誤:a=Null; 正確:a=NULL;(2)錯(cuò)誤:ifi[Lp){-+;p++;}正確M*r==*p){什+;p++;}下列給定程序中,函數(shù)fun的功能是:將字符串tt中的小寫(xiě)字母都改為對(duì)應(yīng)的大寫(xiě)字母,其他字符不變。例如,若輸入“Ab,cD”,則輸出“AB,CDA請(qǐng)改正程序中的借誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#includc<string.h>#include<conio.h>char*fun(chartt[])intI;/***?**?**??**mqj**************/fbr(I=O;tt[I];R+)tt[I]+=32;retum(tt);)main()(chartt[81];system(MCLS");printfi(H\nPleaseenterastring:");gets(tt);printf(M\nTheresultstringis:\n%sH,fun(tt));)【參考答案】⑴錯(cuò)誤:||正確:&&(2)錯(cuò)誤:tt[i]+=32 正確:tt[i『32;下列給定程序中,函數(shù)firn的功能是:計(jì)算s所指字符串中含有t所指字符串的數(shù)比并作為函數(shù)值返回。請(qǐng)改正函數(shù)fun中的錯(cuò)誤或在橫線處填上適當(dāng)?shù)膬?nèi)容并把橫線刪除,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#include<string.h>#include<stdio.h>#defineN80intfun(char*s,char*t){intn;char*p,*r;n=0;p=&s[0];*r=t;while(*p){if(*r==*p)r-H-;if1*r=W)n-H-;/*************f^jund**************/[1];))p++;)returnn;}voidmain(){chara[N],b[N];intm;system(HCLSn);printf{n\nPlcascenterstringa:");gets(a);printfi(n\nPlcascentersubstringb:");gets(b);m=fiin(a,b);m=printf(H\nTheresultis:m=%d\n",m);}【參考答案】⑴錯(cuò)誤:*r=t; 正確:r=t;⑵應(yīng)填:r=t;或r=&t[O];下列給定程序中函數(shù)fim的功能是:將長(zhǎng)整型數(shù)中每一位上為奇數(shù)的數(shù)依次取出,構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。例如當(dāng)s中的數(shù)為87653142時(shí),t中的數(shù)為7531。請(qǐng)改正函數(shù)fun中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#includc<stdlib.h>#include<stdio.h>#include<conio.h>voidfun(longsjong*t){intd;longsl=l;/*************tound**************/t=0;while(s>0){d=s%10;ifi[d%2=0){*t=d*sl+*t;sl*=10;s/=10;}voidmain(){longs,t;system(,,CLS,');printfi(H\nPleaseenters:");scanf(n%ldM,&s);fun(s,&t);printf("Theresultis:%ld\n",t);)【參考答案】⑴錯(cuò)誤:t=0; 正確:*t=0;⑵錯(cuò)誤Md%2==0)正確:if(d%2!=0)下列給定程序中,函數(shù)fun的功能是:實(shí)現(xiàn)兩個(gè)整數(shù)的交換。例如,給a和b分別輸入60和65,輸出為:a=65b=60請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>/***************************/voidfun(inta,b){intt;t=b;b=a;a=t;voidmain(){inta,b;system(MCLSH);printffEntera,b:”);scanf(M%d%dM,&a,&b);fun(&a,&b);printf(,,a=%db=%d\n",a,b);【參考答案】(1)錯(cuò)誤:voidfun(inta,b)正確:voidfun(int*a,int*b)(2)錯(cuò)誤:t=b;b=a;a=t;正確:t=*b;*b=*a;*a=t;下列給定程序中,函數(shù)fun的功能是:將?個(gè)由八進(jìn)制數(shù)字字符組成的字符串轉(zhuǎn)換為與其面值相等的十進(jìn)制整數(shù)。規(guī)定輸入的字符串最多只能包含5位8進(jìn)制數(shù)字。例如,若輸入77777,則輸出將是32767,,請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#include<stdlib.h>#include<string.h>intfun(char*p)intn;/*********ftjund********/n=*p-'o';p++;while(*p!=O)?**?***/n=n*7+*p-,o,;p++;returnn;main()(chars[6];inti;intn;printf(MEnterastring(octaldigits):");gets(s);ifi(strlen(s)>5){printfifnError:stringtoolonger!pleaseinputagain!\n\nM);exit(O);)fbr(i=O;s[i];i-H-)if(s[i]<,O,||s[i]>,7,){printf(*'EiTor:%cnotisoctaldigits!\n\n!\n\nM,s[i]);exit(O);)printff'Theoriginalstring:**);puts(s);n=fun(s);printf(,,\n%sisconvenedtointegenumber:%d\n\nH,s,n);)【參考答案】⑴錯(cuò)誤:n=*p」o' 正確:n=*p」0'(2)錯(cuò)誤:n=n*7+*p-'o'正確:n=n*8+*p?'O'下列給定程序中,函數(shù)fun的功能是:用冒泡法對(duì)6個(gè)字符串按由小到大的順序進(jìn)行排序。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<string.h>#include<conio.h>#include<stdio.h>#defineMAXLINE20/*************'f^und**************/fun(char*pstr[6]){intI,j;char*p;fbr(I=0;I<5;I-H-){fbr(j=I+l;j<6j-H-){ifi(strcmp(*(pstr+l),pstr+j)>O){p=*(pstr+I);/*************Cund**************/*(pstr+I)=pstr+j;*(pstr+j)=p;))))voidmain(){inti;char*pstr[6],str[6][MAXLINE];system(nCLSn);fbr(i=0;iv6;i++)pstr[i]=str[i];printfi(H\nEntcr6string(1stringateachIine):\n");fbr(i=0;i<6;i++)scanff%s”,pstr[i]);fun(pstr);printfif'Thestringsaftersorting:\n");for(i=0;i<6;i++)print<M%s\nw,pstr[i]);}【參考答案】(1)錯(cuò)誤:fiin(char*pstr[6])正確:voidfiin(char*pstr[6])(2)錯(cuò)誤:ifi[strcmp(*(pstr+i),pstr+j)>O)正確:ifi(strcmp(*(pstr+i),*(pstr+j))>O)⑶錯(cuò)誤:*(pstr+i)=pstr+j;正確:*(pstr+i尸*(pstr+j);下列給定的程序中,函數(shù)fun的功能是:用選擇法對(duì)數(shù)組中的n個(gè)元素按從小到大的順序進(jìn)行排序。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#includc<stdio.h>#defineN20voidfiin(inta[],intn){intfor(j=O;j<n-lj++)/*************Cund**************/<p=jfdr(I=j;I<n;l4-+)/*****]煦?篝pDd**************/p=j;t=a[p];a[p]=a[j];}voidmain(){inta[N]={9,6,8,3,-1},i,m=5;printff排序前的數(shù)據(jù):”);fbr(i=0;i<m;i++)printff%d”,a[i]);primffW);fiin(a,m);printf("排序后的順序:");for(i=0;i<m;i++)printf("%d",a[i]);printf("\n");}【參考答案】⑴錯(cuò)誤:p=j 正確:p=j;⑵錯(cuò)誤:p=j; 正確:p=i;N個(gè)有序整數(shù)數(shù)列已放在一維數(shù)組中,給定下列程序中,函數(shù)fun的功能是:利用折半查找算法查找整數(shù)m在數(shù)組中的位置。若找到,則返回其下標(biāo)值;反之,則返回-1。折半查找的基本算法是:每次查找前先確定數(shù)組中待杳的范圍:low和high(low<high),然后把m與中間位置(mid)中元素的值進(jìn)行比較。如果m的值大于中間位置元素中的值,則下一次的查找范圍放在中間位置之后的元素中;反之,下次查找范圍落在中間位置之前的元素中。直到low>high,查找結(jié)束。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#defineN10voidfiin(inta[],intm){intlow=0,high=N-l,mid;while(low<=high){mid=(low+high)/2;if(m<a[mid])high=mid-l;/*************tound**************/elseif(m>=a[mid])low=mid+1;elseretum(mid);}retum(-l);)voidmain(){inti,a[N]={-3,4,7,9,13,24,67,89,100,180},k,m;printf(Ha數(shù)組中的數(shù)據(jù)如下:");fbr(i=0;i<N;i-H-)printf(M%d,',a[i]);printflt^Enterm:");scanf(H%dn,&m);k=ftin(a,m);if(k>=0)printn,,m=%d,index=%d\n,,,m,k);elseprintff'Notbefound!\nM);}【參考答案】(1)錯(cuò)誤:voidfun(inta[],intm)正確:intfun(inta[],intm)(2)錯(cuò)誤:elseif(m>=a[mid])正確:elseif(m>a[mid])下列給定程序是建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,并用隨機(jī)函數(shù)為各結(jié)點(diǎn)賦值。函數(shù)fun的功能是將單向鏈表結(jié)點(diǎn)(不包括頭結(jié)點(diǎn))數(shù)據(jù)域?yàn)榕紨?shù)的值累加起來(lái),并且作為函數(shù)值返回。請(qǐng)改正函數(shù)fun中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#includc<conio.h>#include<stdlib.h>typedefstructaa{intdata;structaa*next;}NODE;intfun(NODE*h){intsum=0;NODE*p;p=h->next;while(p->next){ifi(p->data%2=0)sum+=p->data;/***************************/p=h->next;)returnsum;)NODE*creatlink(intn)(NODE*h,*p,*s;inti;h=p=(NODE*)malloc(sizeofi(NODE));fb?i=l;i〈n;i++)]s=(NODE*)malloc(sizeofi(NODE));s->data=rand()%16;s->next=p->next;p->next=s;p=p->next;}p->next=NULL;returnh;outlink(NODE*h){NODE*p;p=h->next;printff\n\nTheLIST:\n\nHEAD");while(p){printf("->%dn,p->data);p=p->next;}printfi(M\nM);}voidmain(){NODE*head;intsum;system(HCLSM);head=creatlink(l0);outlink(hcad);sum=fun(head);printftH\nSUM=%dn,sum);}【參考答案】(1)錯(cuò)誤:while(p->next)正確:while(p!=NULL)(2)錯(cuò)誤:p=h?>next;正確:p=p->next;下列給定程序中,函數(shù)fun的功能是:求表達(dá)式s=aa...aa?...-aa-aa-a(此處aa...aa表示n個(gè)a,a和n的值在1至9之間)的值。例如a=3,n=6,則以上表達(dá)式為:s=333333-33333-3333-333-33-3其值是296298。a和n是函數(shù)fun的形參,表達(dá)式的值作為函數(shù)值傳回main函數(shù)。請(qǐng)改正程序中的錯(cuò)誤,使它能計(jì)算出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<conio.h>#includc<stdio.h>longfiin(inta,intn)intj;/*************tound**************/longs=O,t=l;/*************tound**************/forO=Ou<=n;j++)t=t*10+a;fbr(j=l;j<n;j++)t=t%10;s=s-t;retum(s);)main()(inta,n;printfi(,,\nPleaseenteraandn:'*);scanfC%d%d”,&a,&n);printf(n\nThevalueoffunctionis%ld\nH,fun(a,n));【參考答案】(1)錯(cuò)誤:1。叱s=O,t=l; 正確:longs=0,t=0;(2)錯(cuò)誤:fbr(j=OJ<=n;j++)正確:for(j=O;j<n;j++)⑶錯(cuò)誤:t=t%10; 正確:卜.列給定程序中,函數(shù)fun的功能是:根據(jù)整型形參m,計(jì)算如下公式的值。例如,若m的值為5,則應(yīng)輸出:1.463611。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<conio.h>#includc<stdio.h>doublefun(intm){doubley=1.0;inti;/***************************/fbr(i=2;i<m;i-H-)/***************************/y+=l/(i*i);return(y);voidmain(){intn=5;system(nCLSM);printfi[H\nTheresultis%lf\n'\fun(n));}【參考答案】⑴錯(cuò)誤:fbr(i=2;i<m;i++)正確:for(i=2;i<=m;i++)(2)錯(cuò)誤:y+=l/(i*i);正確:y+=1.0/(i*i);數(shù)列中,第一項(xiàng)為3,后一項(xiàng)都比前一項(xiàng)的值增5。下列給定程序中,函數(shù)firn的功能是:計(jì)算前項(xiàng)的累計(jì)和。在累加過(guò)程中把那些被4除后余2的當(dāng)前累加值放入數(shù)組中,符合此條件的累加值的個(gè)數(shù)作為函數(shù)值返回主函數(shù)里。如當(dāng)n的值為20時(shí),該數(shù)列為3,8,13,18,23,28,…,93,98。符合此條件的累加值應(yīng)為42,126,366,570,1010c請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果.注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#defineN20intfiin(intn,int*a)/*************向und**************/{intI,j,k,sum;

sum=0;fbr(k=3,1=0;I<n;I++,k+=5){sum=sum+k;/*************f^)und**************/if(sum%4=2)a[j-H-]=sum;/*************'f^und**************/returnj;}voidmain(){inta[N],d,n,i;printflf^nEntern(4<=n<=50):");scanf(n%d'\&n);d=fun(n,a);printfCWWTheresult:\n”);fbr(i=O;i<d;i++)printf(n%6dM,a[i]);printfif'XnXn");【參考答案】(1)錯(cuò)誤:intij,k,sum;正確:intij=0,k,sum;(2)錯(cuò)誤:ifi(sum%4=2)正確:ifi[sum%4=2)⑶錯(cuò)誤:returnj;正確:returnj++;下列給定程序中,函數(shù)fun的功能是:求S的值。設(shè)S=(22/(l*3))*(42/(3*5))*(62/(5*7))*...*(2k)2/((2k?l)*(2k+l))例如,當(dāng)k為10時(shí),函數(shù)的值應(yīng)為1.533852。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:<stdlib.h><conio.h><stdlib.h><conio.h><stdio.h><math.h>#include#include#includc/*************tound**************/fiin(intk){intn;floats,w,p,q;n=l;s=1.0;while(n<=k){w=2.0*n;p=w-1.0;q=w+1.0;s=s*w*w/p/q;n++;)/*************Cund**************/returnsvoidmain(){system(MCLSH);printf("%ftn",fun(10));}【參考答案】(1)錯(cuò)誤:fun(intk) 正確:doublefun(intk)⑵錯(cuò)誤:returns正確:returns;下列給定程序中,函數(shù)firn的功能是:給定n個(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é)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>intfun(floatx[],intn)/*************Cund**************/intj,c=0;floatxa=0.0;forO=0;j<n;j++)xa+=x[j]/n;printf(Mave=%f\nH,xa);for(j=O;j<n;j++)ifi[x[j]>=xa)C++;returnc;)voidmain(){floatx[100]={193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763};system(',CLSM);printf(n%d\nn,fun(x,8));}【參考答案】(1)錯(cuò)誤:缺{ 正確:加{下列給定程序中,函數(shù)fun的功能是:根據(jù)整型形參n,計(jì)算如下公式的值。Al=l,A2=1/(1+A1),A3=1/(1+A2),…,An=l/(1+A(n-1))例如,若n=10,則應(yīng)輸出0.617977o請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>/*************8und**************/intfiin(intn){floatA=l;intI;/***************************/fbr(I=2;I<n;I++)A=1.0/(l+A);returnA;voidmain(){intn;system("CLSM);printfi(n\nPleaseentern:'*);scanfC%d”,&n);printf(,,A%d=%lf\nn,n,fun(n));}【參考答案】⑴錯(cuò)誤:intfun(intn)正確:floatfun(intn)(2)錯(cuò)誤:fbr(i=2;i〈n;i++)正確:for(i=2;iv=n;i++)下列給定程序中,函數(shù)fun的功能是:找出100到n(不大于1000)之間三個(gè)位上的數(shù)字都相等的所有整數(shù),把這些整數(shù)放在s所指的數(shù)組中,個(gè)數(shù)作為函數(shù)值返回。請(qǐng)改正函數(shù)fun中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#defineN100intfun(int*s,intn)intI,j,k,a,b,c;j=0;fbr(I=100;Kn;I-H-)k=n;a=k%10;k/=10;/***************************/b=k/10;c=k/10;if(a=b&&a==c)s[j++]=I;}returnj;}voidmain()|inta[N],n,num=0,i;do(printf(n\nEntern(<=1000):M);scanfi(H%dn,&n);while(n>1000);num=fiin(a,n);printf(n\n\nTheresult:\n");fbr(i=O;i<num;i-H-)printfC%5d”,a[i]);printff\n\n");}【參考答案】⑴錯(cuò)誤:k=n 正確:k=i;(2)錯(cuò)誤:b=k/10;正確:b=k%10;下列給定程序中,函數(shù)fun的功能是:求k!(k<13),所求階乘的值作為函數(shù)值返回。例如,若k=10,則應(yīng)輸出3628800o請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<conio.h>#include<stdio.h>longfiin(intk)(ifk>lretum(k*fiin(k-1));return1;}voidmain(){intk=10;system(HCLS");printfiCn%d!=%ld\n\k,fun(k));}【參考答案】錯(cuò)誤:ifk>l正確:if(k>l)下列給定程序中,函數(shù)fim的功能是:傳入一個(gè)整數(shù)m,計(jì)算如下公式的值。例如,若輸入5,則應(yīng)輸出?0.283333。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#includc<stdio.h>doublefun(intm)doublet=1.0;intI;fbr(I=2;l<=m;l-H-)t=1.0-1/I;voidmain(){intm;system(HCLS");printfi(n\nPleaseenter1integernumbers:\nM);scanf(M%dM,&m);printfifXnVnThcresultisfun(m));}【參考答案】(1)錯(cuò)誤:t=l 1/i; 正確:t?=LO/i;⑵錯(cuò)誤:;正確:returnt;下列給定函數(shù)中,函數(shù)fun的功能是:統(tǒng)計(jì)字符串中各元音字母(即A、E、I、O、U)的個(gè)數(shù)。注意:字母不分大小寫(xiě)。例如,輸入THIsisaboot,則應(yīng)輸出是10220。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#includc<stdlib.h>#include<conio.h>#includc<stdio.h>fun(char*s,intnum[5]){intk,i=5;fbr(k=0;k<i;k-H-)/***************************/num[i]=0;fbr(;*s;s-H-){i=-l;/*************8und**************/switch(s){case'a':casefA':{i=0;break;}case七':case,E,:{i=l;break;}caseT:case*r:{i=2;break;}case'o':case'O':{i=3;break;}case*u':case'U':{i=4;break;}if(i>=0)num[i]++;)voidmain(){charsl[81];intnuml[5],i;system('rCLSH);printfi(,,\nPleaseenterastring:");gets(sl);fun(sl,numl);fbr(i=0;iv5;i++)printf(H%dM,numl[i]);printfC'n”);}【參考答案】⑴錯(cuò)誤:fun(char*s,intnum[5])正確:voidftin(char*s,intnum[5])⑵錯(cuò)誤:num[i]=0; 正確:num[k]=0;(3)錯(cuò)誤:switch(s)正確:switch's)下列給定程序中,函數(shù)fun的功能是:按順序給s所指數(shù)組中的元素賦予從2開(kāi)始的偶數(shù),然后再按順序?qū)γ?個(gè)元素求一個(gè)平均值,并將這些值依次存放在w所指的數(shù)組中。若s所指數(shù)組中元素的個(gè)數(shù)不是5的倍數(shù),多余部分忽略不計(jì)。例如,s所指數(shù)組有14個(gè)元素,則只對(duì)前10個(gè)元素進(jìn)行處理,不對(duì)最后的4個(gè)元素求平均值。請(qǐng)改正函數(shù)fun中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#defineSIZE20fun(double*s,double*w){intk,i;doublesum;fbr(k=2,i=0;i<SIZE;i++){s[i]=k;k+=2;}sum=0.0;fbr(k=0,i=0;i<SIZE;i++){sum+=s[i];if(i+l%5==0){w[k]=sum/5;sum=0;k-H-;}returnk;}voidmain(){doublea[SIZE],b[SIZE/5];inti,k;k=fun(a,b);printf(nTheoriginaldata:\nM);fbr(i=O;i<SIZE;i++){if(i%5=0)printfi("\n");printf("%4.0f',a[i]);)printf("\n\nTheresult:\n");for(i=0;i<k;i++)printf("%6.2f',b[i]);printf("\n\n");}【參考答案】⑴錯(cuò)誤Mi+l%5=0)正確:if((i+l)%5==0)下列給定程序中,函數(shù)fun的功能是:找出一個(gè)大于給定整數(shù)m且緊隨m的素?cái)?shù),并作為函數(shù)值返回。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>intfun(intm){intI,k;fbr(I=m+l;{for(k=2;k<I;k++)/***************************/if(I%k!=O)break;if(k<I)retum(I);)}voidmain(){intn;system(MCLSH);printfi[,'\nPleaseentern:");scanf(n%dn,&n);printf(M%d\nM,fun(n));}【參考答案】⑴錯(cuò)誤Mi%k!=0)正確:if(i%k=O)⑵錯(cuò)誤Mk<i)正確:if(k>=i)下列給定程序中,函數(shù)fun的功能是:計(jì)算并輸出high以內(nèi)最大的10個(gè)素?cái)?shù)之和。high由主函數(shù)傳給函數(shù)fun。例如high的值為100,則函數(shù)的值為732o請(qǐng)改正程序中的錯(cuò)誤,使程序能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<math.h>intfun(inthigh)intsum=0,n=0,j,yes;while((high>=2)&&(n<10))yes=1;for(j=2;j<=high/2;j++)/*************8und**************/ifi[high%j==O)yes=0;break)iflyes)sum+=high;n++;high-;)returnsum;voidmain()system(,,CLSH);printf(',%d\nn,fim(100));【參考答案】⑴錯(cuò)誤:break 正確:brcak;下列給定程序中,函數(shù)fun的功能是:計(jì)算整數(shù)n的階乘。清改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<stdio.h>doublefiin(intn)doubleresult=1.0;while(n>l&&n<170)result*=-n;return;voidmain(){intn;system(HCLSn);printsHEnteraninteger:");scanf(M%dH,&n);printftH\n\n%d!=%1g\n\n*',n,fun(n));}【參考答案】⑴錯(cuò)誤:result*=??n; 正確:result*=n-;(2)錯(cuò)誤:return; 正確:returnresult;下列給定程序中,函數(shù)fun的功能是:應(yīng)用遞歸算法求某數(shù)a的平方根。求平方根的迭代公式如下:例如,2的平方根為1.414214o請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<math.h>#include<stdio.h>fiin(doublea,doublexO){doublexl,y;xl=(x0+a/x0)/2.0;/*************Cund**************/if(fabs(xl-x0)>0.00001)y=fiin(a,xl);elsey=xl;returny;}voidmain(){doublex;printfi[MEnterx:”);scanf(M%lf,,&x);printffThesquarerootof%lfis%lf\nM,x,fun(x,1.0));【參考答案】⑴錯(cuò)誤:fUn(doublea,doublexO)正確:doublefun(doublca,doublexO)(2)錯(cuò)誤:if(fhbs(x1-x0)>0.00001)正確:ifi(fabs(x1-x0)>=0.00001)下列給定程序中,函數(shù)fun的功能是根據(jù)輸入的3個(gè)邊長(zhǎng)(整型值),判斷能否構(gòu)成三角形:若能構(gòu)成等邊三角形,則返回3,若是等腰三角形,則返回2,若能構(gòu)成三角形則返回1,若不能,則返回0o請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#includc<stdio.h>#include<math.h>intfiin(inta,intb,intc){if(a+b>c&&b+c>a&&a+c>b){ifi[a==b&&b=c)/*************8und**************/return1;elseif(a=b||b=c||a=c)return2;/*************Cun(j**************/elsereturn3;elsereturn0;voidmain()inta,b,c,shape;printfl(H\nInputa,b,c:");scanf(n%d%d%d',,&a,&b,&c);printf(M\na=%d,b=%d,c=%d\nH,a,b,c);shape=fun(a,b,c);printff'\n\nTheshape:%d\nu,shape);)【參考答案】⑴錯(cuò)誤:return1;正確:return3;(2)錯(cuò)誤:return3;正確:return1;下列給定程序中,函數(shù)fun的功能是:在字符串str中找出ASCII碼值最大的字符,將其放在第一個(gè)位置上,并將該字符前的原字符向后順序移動(dòng)。例如,調(diào)用ftm函數(shù)之前給字符串輸入ABCDeFGH,調(diào)用后字符串中的內(nèi)容為eABCDFGHo請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>/*************8und**************/fiin(char*p){charmax,*q;int1=0;max=p[I];while(p[l]!=0){if(max<p[I])/***************************/p=q+I;max=p[I];I++;while(q<p){*q=*(q-l);q??;p[0]=max;}voidmain(){charstr[80];printf(HEnterastring:");gcts(str);printfi(H\nTheoriginalstring:");puts(str);fun(str);printfif^nThestringaftermoving:");puts(str);printff'\n\n");}【參考答案】(1)錯(cuò)誤:fun(char*p)正確:voidfbn(char*p)⑵錯(cuò)誤:p=q+i;正確:q=p+i;⑶錯(cuò)誤:while(q<p)正確:while(q>p)下列給定程序中,函數(shù)fun的功能是:求出兩個(gè)數(shù)的最大公約數(shù),并作為函數(shù)值返回。例如,若給numl和num2輸入49和21,則輸出的最大公約數(shù)為7;若給numl和num2分別輸入27和81,則輸出最大公約數(shù)為27。請(qǐng)改正函數(shù)fun中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>intfun(inta,

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論