C語(yǔ)言二級(jí)機(jī)試改錯(cuò)_第1頁(yè)
C語(yǔ)言二級(jí)機(jī)試改錯(cuò)_第2頁(yè)
C語(yǔ)言二級(jí)機(jī)試改錯(cuò)_第3頁(yè)
C語(yǔ)言二級(jí)機(jī)試改錯(cuò)_第4頁(yè)
已閱讀5頁(yè),還剩78頁(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)介

下列給定程序中,函數(shù)fun的功能是:計(jì)算S=f(-n)+f(-n+l)+…+f(0)+f(l)+f(2)+…f(n)的值。例如,當(dāng)n為5時(shí),函數(shù)值應(yīng)為10.407143〇f(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>I*************found**************/f(doublex)if(x==0.0llx=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;for(i=-n;i<=n;i++){y=f(1.0*i);s+=y;}/*************found**************/returns)voidmain(){system(“CLS");printf(M%f\nn,fun(5));)【參考答案】(1)錯(cuò)誤:f(doublex) 正確:doublef(doublex)⑵錯(cuò)誤:returns 正確:returns;t=l+l/2+l/3+l/4+...+l/m例如,若輸入5,則應(yīng)輸出2.283333?請(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;for(I=2;I<=m;I++)/*************found**************/t+=1.0/k;/*************found**************/returnI;voidmain(){intm;systemC'CLS0);printf("\nPleaseenter1integernumber:n);scanf("%d”,&m);printf(M\nTheresultis%lf\nM,fun(m));【參考答案】正確:l+=l.0/1;正確:正確:l+=l.0/1;正確:returnt;⑵錯(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>/*********found***********/voidfun(char*s,inta,intb)while(*s)/*********found***********/if(*s>='A'&&*sv=Z)a++;/*********ind***********/if(*s>=a*&&*s<='z')b++;s++;main()(chars[100];intupper=0,lower=0;printf("\npleaseastringゴ);gets(s);fun(s,&upper,&lower);printf(M\nupper=%dlower=%d\nH,upper,lower);)【參考答案】(1)錯(cuò)誤:voidfun(char*s,inta,intb)正確:voidfun(char*s,int*a,int*b)(2)錯(cuò)誤:a++;正確:(*a)++;(3)錯(cuò)誤:b++;正確:(*b)++;ド列給定程序中函數(shù)fun的功能是:計(jì)算正整數(shù)num各位上的數(shù)字之積。例如,若輸入252,則輸出應(yīng)該是20。若輸入202,則輸出應(yīng)該是。。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#include<conio.h>longfun(longnum)/ギ不***********found**************/longk;dok*=num%10;/*************found**************/num\=10;}while(num);retum(k);main()(intn;printf(H\Pleaseenteranumber:n);scanf(H%ld",&n);printf(,,\n%ld\n,,,fun(n));)【參考答案】⑴錯(cuò)誤:longk: 正確:longk=l;⑵錯(cuò)誤:num\=10: 正確:num/=10;下列給定程序中函數(shù)fun的功能是:計(jì)算n!。例如,給n輸入5,則輸出120.000000。請(qǐng)改正程序中的錯(cuò)誤,使程序能輸出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#include<conio.h>doublefun(intn){doubleresult=1.0;/*************"l^ound**************/ifn==0return1.0;while(n>l&&n<170)/*************,ound**************/result=n-;returnresult;voidmain()(intn;printf(MInputN:n);scanf(M%dH,&n);printf("ヽn\n%d!=%lf\n”,n,fun(n));)【參考答案】⑴錯(cuò)誤:ifn==0 正確:if(n==0)⑵錯(cuò)誤:result=n-;正確:result*=n--;下列給定的程序中,函數(shù)fun的功能是:計(jì)算并輸出k以?xún)?nèi)最大的10個(gè)能被13或17整除的自然數(shù)之和。k的值由主函數(shù)傳入,若k的值為500,則函數(shù)的值為46220請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>intfun(intk){intm=0,mc=0,j;while((k>=2)&&(mc<10))/*************,ound**************/if((k%13=0)ll(k%17=0)){m=m+k;mc++;)k-;/*************〔ound**************/returnm;voidmain(){system(',CLSn);printf(M%d\nH,fun(500));}【參考答案】⑴錯(cuò)誤:if((k%13=0)ll(k%17=0))正確:if((k%13=0)ll(k%17==0))(2)錯(cuò)誤:缺少大括號(hào)正確:加}下列給定程序中,函數(shù)fun()的功能是:根據(jù)整型形參m的值,計(jì)算如下公式的值:請(qǐng)改正函數(shù)fun()中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>doublefun(intm){doubley=1.0;intI;/不************found**************/for(I=2;I<m;I++)/*************found**************/y-=l/(I*I);retum(y);voidmain(){intn=5;system("CLS)printf(M\nTheresultis%lf\nM,fun(n));

【參考答案】(1)錯(cuò)誤:for(i=2;i<m;i++)正確:for(i=2;i<=m;i++)⑵錯(cuò)誤:y-=l/(i*i);正確:y-=1.0/(i*i);在主函數(shù)中從健盤(pán)輸入若干個(gè)數(shù)放入數(shù)組中,用0結(jié)束輸入并放在最后ー個(gè)元素中。下列給定程序中,函數(shù)fun的功能是:計(jì)算數(shù)組元素中值為正數(shù)的平均值(不包括0)。例如,數(shù)組中元素的值依次為39,-47,21,2,-8/5,0,則程序的運(yùn)行結(jié)果為19.25(X)00。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<conio.h>#include<stdio.h>doublefun(intx[])/*************found**************/intsum=0.0;intc=0,1=0;while(x[I]!=0)sum+=x[I];C++;)1++;/*************found**************/sum=sum\c;returnsum;【參考答案】(1)【參考答案】(1)錯(cuò)誤:intsum=O.O;(2)錯(cuò)誤:sum\=c;正確:doublesum=0.0;正確:sum/=c;下列給定程序中,函數(shù)fun的功能是:判斷?個(gè)整數(shù)m是否是素?cái)?shù),若是返回1,否則返回。。在main函數(shù)中,若fun()返回1則輸出“YES”,若fun()返回〇則輸出"N0!"。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>intfun(intm){intk=2;while(k<=m&&(m%k))/*************found**************/k++/*************〔ound**************/if(m=k)return1;elsereturn0;voidmain(){intn;system(MCLSM);printf(M\nPleaseentern:n);scanf(H%dn,&n);if(fun(n))printf(MYES\nH);elseprintf(HNO!\nH);【參考答案】⑴錯(cuò)誤:k++ 正確:k++;⑵錯(cuò)誤:if(m=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)。試題程序:#include<stdio.h>/不************found**************/intfun(n)intc;/ギ************found**************/if(n=l)c=10;elsec=fun(n-1)+2;retum(c);voidmain()intn;printf(MEntern:n);scanf(H%dM,&n);printf(MTheresult:%d\n\nM,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,123,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)(/豕************found**************/switch(g);{case0:retum0;/字************found**************/case1;case2:retum1;)return(fun(g-1)+fun(g-2));)voidmain()(longfib;intn;printfC'Inputn:");scanf("%d",&n);printf(Mn=%d\nM,n);fib=fun(n);printf(Hfib=%d\n\nH,fib);)【參考答案】⑴錯(cuò)誤:switch(g);正確:去掉分號(hào)(2)錯(cuò)誤:case1;case2:return1;正確:case1:case2:retum1;下列給定程序中,函數(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<conio.h>#include<stdio.h>#defineN20voidfun(int*a,intn);(intI,m,t,k;for(I=0;I<n;I++)(/*************found*************m=0;for(k=I+l;k<n;k++)if(a[k]>a[m])m=k;t=a[IJ;a[I]=a[m];a[m]=t;))main()(intb[N]={ll,5,12,0,3,6,9,7,10,8},n=10,i;system(,,CLSM);for(i=0;i<n;i++)printf(M%dH,b[i]);printf(”\n");fun(b,n);for(i=0;i<n;i++)printf(H%dヽb[i]);printf(M\nH);}【參考答案】(1)錯(cuò)誤:voidfun(int*a,intn);1E確:voidfun(int*a,intn)⑵錯(cuò)誤:m=0; 正確:mゴ;下列給定程序中,函數(shù)fun的功能是:將十進(jìn)制正整數(shù)m轉(zhuǎn)換成進(jìn)制數(shù),并按位輸出。例如,若輸入8和2,則應(yīng)輸出1000(即十進(jìn)制數(shù)8轉(zhuǎn)換成二進(jìn)制表示是!000)o請(qǐng)改正函數(shù)fun中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#include<conio.h>/ギ************found**************/voidfun(intm,intk);{intaa[20],i;for(i=0;m;i++)/*************found**************/aa[i]=m/k;m/=k;)for(;i;i-)/************ホfound**************/printf(w%dM,aa[i]);main()intb,n;printf(M\nPleaseenteranumberandabase:\nn);scanf("%d%d”,&n,&b);fun(n,b);printf(“ヽn");)【參考答案】(1)錯(cuò)誤:voidfun(intm,intk);正確:voidfun(intm,intk)(2)錯(cuò)誤:aa「]=m/k;正確:aa[i]=m%k;(3)錯(cuò)誤:printf("%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的值為!l,z的值為15時(shí),函數(shù)值為ー3.50。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<stdio.h>#include<math.h>#defineFU(m,n)(m/n)floatfun(floata,floatb,floatc){floatvalue;value=FU(a+b,a-b)+FU(c+b,c-b);/ギ************found**************/return(Value);}voidmain(){floatx,y,z,sum;printf("Inputxyz::");scanf(,,%f%f%f',&x,&y,&z);printf(Mx=%f,y=%f,z=%f\nu,x,y,z);if(x==ylly==z){printf(nDataerror!\nM);exit(O);)sum=fun(x,y,z);printf(MTheresultis:%5.2f\nヽsum);【參考答案】(1)錯(cuò)誤沸defineFU(m,n)(m/n)正確:#defineFU(m,n)(m)/(n)(2)錯(cuò)誤:retum(Value);正確: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>#include<string.h>voidfun(char*s,char*t)(intI,sl;sl=strlen(s);for(I=0;I<sl;I++)/不求***********found**************/t[I]=s[sl-l];for(I=O;I<s1;I++)t[sl+I]=s[I];t[2*sl]=W;)voidmain(){chars[100],t[100];system(nCLSM);printf("\nPleaseenterstrings:'*);scanf(*'%sn,s);fun(s,t);printf(nTheresultis:%s\nn,t);)【參考答案】(1)錯(cuò)誤:t[i]=s[s1-1J;正確: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;/************* nd**************/j=l;t=m=n=1;/*************found**************/while(t!=0&&m!=0&&n!=0)(j=j+>;t=j%x;m=j%y;n=j%z;}returnj;}voidmain()(intxl,x2,x3,j;printf(MInputxlx2x3:”);scanf("%d%d%d”,&x!成x2,&x3);printf(Mx1=%d,x2=%d,x3=%d\n",xI,x2,x3);j=fun(xl,x2,x3);printf(MTheminimalcommonmultipleis:%d\n,,,j);【參考答案】⑴錯(cuò)誤:j=l; 正確:j=0;(2)錯(cuò)誤:while(t!=0&&m!=0&&n!=0)正確:while(t!=0IIm!=0IIn!=0)下列給定程序中,函數(shù)fun的功能是:從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)。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>#defineN20intfun(float*s,intn,float*aver){floatave,t=0.0;intcount=0,k,i;for(k=0;k<n;k++)/豕************found**************/t=s[k];ave=t/n;for(i=0;i<n;i++)if(s[i]<ave)count++;/*************found**************/*aver=&ave;returncount;)voidmain(){floats[30],aver;intm,i;system(MCLSM);printf(M\nPleaseenterm:");scanf(,'%d,',&m);printf("\nPleaseenter%dmark:\n",m);for(i=0;i<m;i++)scanf(,,%f,,s+i);printf(M\nThenumberofstudents:%d\n",fun(s,m,&aver));printf(MAve=%f\n,',aver);}【參考答案】(1)錯(cuò)誤:t=s[k]; 正確:t+=s[k];(2)錯(cuò)誤:*aver=&ave;正確:*aver=ave;

下列給定程序中,函數(shù)fun的功能是:在字符串的最前端加入n個(gè)?號(hào),形成新串,并且覆蓋原串。注意:字符串的長(zhǎng)度最長(zhǎng)允許為79〇請(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;/*************found**************/s=p;for(I=0;I<n;I++)a[I]=do{a[I]=*p;/*************,ound**************/ー填空ー}while(ヤ);/字************found**************/a[I]二0;strcpy(s,a);}voidmain(){intn;chars[8OJ;system(MCLSn);printf(M\nEnterastring:n);gets(s);printf(M\nThestring:%s\nM,s);printf("ヽnEntern(numberof*):");scanf(M%d",&n);fun(s,n);printf(M\nThestringafterinster:%s\nM,s);【參考答案】⑴錯(cuò)誤:s=p⑴錯(cuò)誤:s=p;正確:p=s;(2)應(yīng)填p++;或++p;或p+=l;或p=p+l;(3)錯(cuò)誤:a[i]='O';正確:a[止、(X;或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];for(i=0,t=0;p[i];i++)if(!isspace(*(p+i)))c[t++]=p[i];/*************found**************/c[t]="\0";strcpy(p,c);)voidmain(){charc,s[8OJ;inti=0;printf("Inputastring:");c=getchar();while(c!=胃’){s[i]=c;i++;c=getchar();}s[iZ;fun(s);puts(s);)【參考答案】⑴錯(cuò)誤:c[t]="\O"; 正確:c[t]バ〇';下列給定程序中,函數(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;inti,j;/不************found**************/sum=l;for(i=0;i<3;i++){for(j=O;j<3;j++)/豕************found**************/scanf(”%d”閔iHjl);for(i=0;i<3;i++)sum=sum4-a[i][i];printf(HSum=%d\n,,,sum);)voidmain()(fun();I【參考答案】⑴錯(cuò)誤:sum=l; 正確: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)容為abcdabfabcdx,t中的內(nèi)容為abd時(shí),則程序輸出未找到的信息"Nolfound!"〇請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>#include<string.h>char*fun(char*s,char*t)(char*p,*r,*a;/不************found**************/a=Null;while(*s){p=s;r=t;while(*r)/*************found**************/if(r==p){r++;p++;}elsebreak;if(*r=='\O,)a=s;s++;)returna;voidmain(){chars[100],t[100],*p;system(MCLSn);printf(M\nPleaseenterstringS:");scanf(M%sM,s);printf("\nPleaseentersubstringt:'*);scanf(M%sH,t);p=fun(s,t);if(p)printf(u\nTheresultis:%s\nヽp);elseprintf(M\nNotfound!\n");I【參考答案】(1)錯(cuò)誤:a=Null; 正確:a=NULL;⑵錯(cuò)誤:if(r==p){r++;p++;}正確:if(*r==*p){r++;p++;)下列給定程序中,函數(shù)fun的功能是:將字符串tt中的小寫(xiě)字母都改為對(duì)應(yīng)的大寫(xiě)字母,其他字符不變。例如,若輸入"Ab,cD”,則輸出“AB,CD”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#include<string.h>#include<conio.h>char*fun(chartt[])(intI;/*************found**************/for(I=0;tt[I];I++)if(('a><=tt[I])ll(tt[I]<=^))/*************found**************/tt山+=32;retum(tt);)main()(chartt[81];system(MCLSu);printf(M\nPleaseenterastring:H);gets(tt);printf(n\nTheresultstringis:\n%sM,fun(tt));)【參考答案】(1)錯(cuò)誤:ll正確:&&(2)錯(cuò)誤:tt[i]+=32正確:ttロト=32;ド列給定程序中,函數(shù)fun的功能是:計(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;/*************found**************/p=&s[0];*r=t;while(*p)(if(*r==*p)r++;if(*r==、O)(n++;/*************found'【1】;|)P++;)returnn;)voidmain(){chara[N],b[N];intm;system(MCLSu);printf(M\nPleaseenterstringa:0);gets(a);printf(n\nPleaseentersubstringb:");gets(b);m=fun(a,b);

m=printf(H\nTheresultis:m=%d\nH,m);)【參考答案】(1)錯(cuò)誤:*r=t;正確:r=t;⑵應(yīng)填:匸t;或r=&t[O];下列給定程序中函數(shù)fun的功能是:將長(zhǎng)整型數(shù)中每一位上為奇數(shù)的數(shù)依次取出,構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。例如當(dāng)s中的數(shù)為87653142時(shí)』中的數(shù)為7531?請(qǐng)改正函數(shù)fun中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include#include#include#include#include<stdio.h><conio.h>voidfun(longs,long*t){intd;longsl=l;/*************found**************/t=0;while(s>0){d=s%10;/字************found**************/if(d%2==0){*t=d*sl+*t;sl*=10;}s/=10;voidmain(){longs,t;system(HCLSn);printf(H\nPleaseenters:");scanf(w%ldw,&s);fun(s,&t);printfC'Theresultis:%ld\n",t);【參考答案】⑴錯(cuò)誤:t=0;正確:*t=0;(2)錯(cuò)誤:if(d%2==0) 正確:if(d%2!=〇)下列給定程序中,函數(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>/*************〔ound**************/voidfun(inta,b){intt;I*************found**************/t=b;b=a;a=t;}voidmain(){inta,b;system(HCLSH);printf(MEntera,b:");scanf(M%d%d,',&a,&b);fun(&a,&b);printf(na=%db=%d\nゝa,b);【參考答案】(1)錯(cuò)誤:voidfun(inta,b)正確:voidfun(int*a,int*b)⑵錯(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;/*********found********/n=*p-'o';P++;while(*p!=0)/*********found********/n=n*7+*p?’O';p++;)returnn;main()(chars[6];inti;intn;printf(MEnterastring(octaldigits):");gets(s);if(strlen(s)>5){printf("Error:stringtoolonger!pleaseinputagain!\n\n");exit(O);}for(i=0;s[i];i++)if(s[i]<,0'lls[i]>,7')(printf("Error:%cnotisoctaldigits!\n\n!\n\n",s[i]);exit(O);}printf("Theoriginalstring:");puts(s);n=fun(s);printf("\n%sisconveredtointegenumber:%d\n\n",s,n);}【參考答案】⑴錯(cuò)誤:n=*p?b 正確:n=*p-O⑵錯(cuò)誤:n=n*7+*p,〇' 正確:n=n*8+*p-'〇'下列給定程序中,函數(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>#defineMAXLINE20fun(char*pstr[6]){intl,j;char*p;for(I=0;I<5;I++){for(j=I+l;j<6;j++)/*************found**************/{if(strcmp(*(pstr+I),pstr+j)>O)p=*(pstr+I);I*************found**************/*(pstr+I)=pstr+j;*(pstr+j)=p;)})}voidmain(){inti;char*pstr[6],str[6][MAXLINE];system(HCLSM);for(i=0;i<6;i++)pstr[i]=str[i];printf(M\nEnter6string(1stringateachline):\n");for(i=0;iv6;i++)scanf(H%sM,pstr[i]);fun(pstr);printf(MThestringsaftersorting:\n");for(i=0;i<6;i++)printf(H%s\nn,pstr[i]);)【參考答案】(1)錯(cuò)誤:fun(char*pstr[6])正確:voidfun(char*pstr[6])(2)錯(cuò)誤:if(strcmp(*(pstr+i),pstr+j)>O)正確:if(strcmp(*(pstr+i),*(pstr+j))>0)(3)錯(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)。試題程序:#include<stdio.h>#defineN20voidfun(inta[],intn){intI,j,t,p;for(j=0;j<n-l;j++)/*************found**************/{p=jfor(I=j;I<n;I++)if(a[I]<a[p])I*************found**************/P=j;t=a[p];a[p]=a[j];a[j]=t;}voidmain(){inta[N]={9,6,8,3,-l},i,m=5;printf("排序前的數(shù)據(jù):り;fdr(i=0;i<m;i++)printf(,,%dM,a[i]);printf(n\nn);fun(a,m);printf("排序后的順序:M);for(i=0;i<m;i++)printf("%d",a[i]);printf(H\nn);)【參考答案】⑴錯(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(lowvhigh),然后把m與中間位置(mid)中元素的值進(jìn)行比較。如果m的值大于中間位置元素中的值,則下一次的查找范圍放在中間位置之后的元素中;反之,下次査找范圍落在中間位置之前的元素中。直到low>high,查找結(jié)束。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#defineN10/*************found**************/voidfun(inta口,intm){intlow=0,high=N-l,mid;while(low<=high){mid=(low+high)/2;if(m<a[mid])high=mid-l;/不ホ*********found**************/elseif(m>=a[mid])low=mid+1;elseretum(mid);)retum(-l);}voidmain(){inti,a[N]={-3,4,7,9,l3,24,67,89,100,180},k,m;printf("a數(shù)組中的數(shù)據(jù)如下:");for(i=0;i<N;i++)printf("%dn,a[i]);printf(nEnterm:'*);scanf(,'%d,',&m);k=fun(a,m);if(k>=0)printf(Mm=%d,index=%d\n",m,k);elseprintf(MNotbefound!\nn);}【參考答案】(1)錯(cuò)誤:voidfun(inta[],intm)正確:intfun(inta[],intm)(2)錯(cuò)誤:elseif(m>=a[midj)正確: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>#include<conio.h>#include<stdlib.h>typedefstructaa{intdata;structaa*next;}NODE;intfun(NODE*h){intsum=O;NODE*p;p=h->next;/*************,ound**************/while(p->next){if(p->data%2==0)sum+=p->data;/*************〔ound**************/p=h->next;)returnsum;}NODE*creatlink(intn){NODE*h,*p,*s;inti;h=p=(NODE*)malloc(sizeof(NODE));for(i=l;i<n;i++)(s=(NODE*)malloc(sizeof(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;printf(M\n\nTheLIST:\n\nHEAD");while(p){printf(,,->%d,',p->data);p=p->next;}printf(“ヽn");}voidmain(){NODE來(lái)head;intsum;system("CLS");head=creatlink(10);outlink(head);sum=fun(head);printf("ヽnSUM二%d”,sum);【參考答案】(1)錯(cuò)誤:while(p->next) 正確:while(p!=NULL)(2)錯(cuò)誤:p=h->next;正確:p=p->next;下列給定程序中,函數(shù)fun的功能是:求表達(dá)式s=aa…@@ー???3的忍(此處aa---aa表示n個(gè)a,a和n的值在1至9之間)的值。例如a=3,n=6,則以上表達(dá)式為:s=333333-33333-3333-333-33-3其值是296298ca和n是函數(shù)fun的形參,表達(dá)式的值作為函數(shù)值傳回main函數(shù)。請(qǐng)改正程序中的錯(cuò)誤,使它能計(jì)算出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<conio.h>#include<stdio.h>longfun(inta,intn)(intj;/*************found**************/longs=O,t=l;/*************found**************/for(j=0;j<=n;j++)t=t*10+a;s=t;forQ=l;j<n;j++)(/*************^Qund不*************/t=t%10;s=s-t;)retum(s);)main()(inta,n;printf("\nPleaseenteraandn:");scanf(H%d%dM,&a,&n);printf(M\nThevalueoffunctionis%ld\nn,fun(a,n));)【參考答案】⑴錯(cuò)誤Jongs=O,t=1; 正確:longs=0,t=0;(2)錯(cuò)誤:for(j=O;jv=n;j++)正確:for(j=O;j<n;j++)(3)錯(cuò)誤:t=t%10; 正確: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>#include<stdio.h>doublefun(intm){doubley=1.0;inti;/*************found**************/for(i=2;i<m;i++)/*************foi1nd**************/y+=l/(i*i);return(y);voidmain(){intn=5;system(',CLSM);printf(M\nTheresultis%lf\n",fun(n));【參考答案】(1)錯(cuò)誤:for(i=2;ivm;i++)正確:for(i=2;iv=m;i++)⑵錯(cuò)誤:y+=l/(i*i);正確:y+=L0/(i*i);數(shù)列中,第一項(xiàng)為3,后ー項(xiàng)都比前ー項(xiàng)的值增5〇下列給定程序中,函數(shù)fun的功能是:計(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,1010。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#defineN20intfun(intn,int*a)/*************found**************/{intI,j,k,sum;sum=0;for(k=3,I=0;I<n;I++,k+=5){sum=sum+k;/*************found**************/if(sum%4=2)a[j4-+]=sum;)/*************found**************/returnj;)voidmain(){inta[N],d,n,i;printf(u\nEntern(4<=n<=50):M);scanf("%d",&n);d=fun(n,a);printf(H\n\nTheresultAn");for(i=0;i<d;i++)printf(H%6dM,a[i]);printf(n\n\nM);}【參考答案】(1)錯(cuò)誤:inti,j,k,sum; 正確:intij=0,k,sum;⑵錯(cuò)誤:if(sum%4=2)正確:if(sum%4==2)(3)錯(cuò)誤:returnj; 正確:returnj++;下列給定程序中,函數(shù)fun的功能是:求S的值。設(shè)S=(22/(l*3))*(42/(3*5))*(62/(5*7))*...*(2k)2/((2k-l)*(2k+1))例如,當(dāng)k為10時(shí),函數(shù)的值應(yīng)為1.533852。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<math.h>/*************found**************/fun(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++;/*************found**************/returnsvoidmain(){system(nCLSM);printf(M%f\nn,fun(10));)【參考答案】⑴錯(cuò)誤:fun(intk)正確:doublefun(intk)⑵錯(cuò)誤:returns 正確:returns;下列給定程序中,函數(shù)fun的功能是:給定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,所得平均值為!95.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)/*************found**************/intj,c=0;floatxa=0.0;for(j=O;j<n;j++)xa+=x[j]/n;printf(,,ave=%f\n',,xa);for(j=O;j<n;j++)if(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(nCLSn);printf(n%d\n",fun(x,8));【參考答案】(1)【參考答案】(1)錯(cuò)誤:缺{正確:加{下列給定程序中,函數(shù)fun的功能是:根據(jù)整型形參n,計(jì)算如下公式的值。A1=1,A2=1/(1+A1),A3=1/(1+A2),…,An=l/(1+A(n-1))例如,若n=10,則應(yīng)輸出0.617977,請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>/*************found**************/intfun(intn){floatA=l;intI;/*************found**************/for(I=2;I<n;I++)A=1.0/(l+A);returnA;)voidmain(){intn;systemC'CLS'*);printf(M\nPleaseentern:");scanf("%dM,&n);printf("A%d=%lf\n'\n,fun(n));}【參考答案】⑴錯(cuò)誤:intfun(intn)正確:floatfun(intn)(2)錯(cuò)誤:for(i=2;i<n;i++)iK確: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;for(I=100;I<n;1++)/*************found木*************/k=n;a=k%10;k/=10;/ギ************found**************/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)ゴ);scanf(H%d",&n);}while(n>1000);num=fun(a,n);printf(u\n\nTheresult:\nM);for(i=0;i<num;i++)printf(M%5dM,a[i]);printf(“ヽn\n");}【參考答案】⑴錯(cuò)誤:k=n正確:k=i;⑵錯(cuò)誤:b=k/10; 正確:b=k%10;下列給定程序中,函數(shù)fun的功能是:求k!(k<13),所求階乘的值作為函數(shù)值返回。例如,若k=10,則應(yīng)輸出362880〇。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<conio.h>#include<stdio.h>longfun(intk)〔*************found**************/ifk>lretum(k*fun(k-l));return1;}voidmain(){intk=10;system(“CLS");printf(n%d!=%ld\nn,k,fun(k));}【參考答案】錯(cuò)誤:ifk>l 正確:if(k>l)下列給定程序中,函數(shù)fun的功能是:傳入ー個(gè)整數(shù)m,計(jì)算如下公式的值。t=l/2-l/3-...-l/m例如,若輸入5,則應(yīng)輸出0283333。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>doublefun(intm)doublet=1.0;intI;for(I=2;I<=m;I++)/*************found**************/t=1.0-l/I;/ギ不***********found**************/voidmain(){intm;system(,,CLSu);printf("\nPleaseenter1integernumbers:\n");scanf(M%d",&m);printf("\n\nTheresultis%lf\n",fun(m));【參考答案】(1)錯(cuò)誤:t=1.0?1ハ;正確:t?=1.0/i;(2)錯(cuò)誤:;正確:returnt;下列給定函數(shù)中,函數(shù)fun的功能是:統(tǒng)計(jì)字符串中各元音字母(即A、E、I、0、U)的個(gè)數(shù)。注意:字母不分大小寫(xiě)。例如,輸入THIsisaboot,則應(yīng)輸出是10220。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>/*************found**************/fun(char*s,intnum[5]){intk,i=5;for(k=0;k<i;k++)/*************found**************/num[i]=0;for(;*s;s++){i=-l;/不求***********found**************/switch(s){case'a':case'A":{i=0;break;}case'e':case,E,:{i=l;break;}case'i':caseT:{i=2;break;}case’〇':case’〇':{i=3;break;}case'u':case'U':{i=4;break;})if(i>=0)num[ij++;)voidmain(){charsl[81];intnuml[5],i;system(,,CLSM);printf(M\nPleaseenterastring:M);gets(sl);fun(sl,numl);for(i=0;i<5;i++)printf(M%dn,numl[i]);printf(,'\nn);【參考答案】(1)錯(cuò)誤:fim(char*s,intnum[5])正確:voidfun(char*s,intnum[5J)(2)錯(cuò)誤:num[i]=0;正確:num[k]=0;(3)錯(cuò)誤:switch(s)正確:switches)下列給定程序中,函數(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;for(k=2,i=0;i<SIZE;i++){s[i]=k;k+=2;}sum=0.0;for(k=0,i=0;i<SIZE;i++){sum+=slij;/*ホ***********found**************/if(i+l%5==0){w[k]=sum/5;sum=0;k++;))returnk;}voidmain(){doublea[SIZE],b[SIZE/5];inti,k;k=fun(a,b);printf(MTheoriginaldata:\nH);for(i=0;i<SIZE;i++)(if(i%5==0)printf(“ヽn");printf(H%4.0f;a[i]);}printf(M\n\nTheresult"");for(i=0;i<k;i++)printf("%6.2ド,printf("\n\n");)【參考答案】⑴錯(cuò)誤:if(i+1%5==0)正確:if((i+1)%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;for(I=m+1;;I++){for(k=2;k<I;k++)/*************found**************/if(I%k!=O)break;/字************found**************/if(k<I)retum(I);))voidmain(){intn;system(nCLSM);printf(n\nPleaseentern:");scanf(”%d”,&n);printf("%d\n”,fun(n));)【參考答案】⑴錯(cuò)誤:if(i%k!=O)正確:if(i%k==O)(2)錯(cuò)誤:if(k<i)正確:if(k>=i)下列給定程序中,函數(shù)fun的功能是:計(jì)算并輸出high以?xún)?nèi)最大的I0個(gè)素?cái)?shù)之和。high由主函數(shù)傳給函數(shù)fun。例如high的值為100,則函數(shù)的值為732。請(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++)if(high%j==O)yes=O;break)if(yes)(sum+=high;n++;)high-;)returnsum;}voidmain()(system(MCLSu);printf(H%d\n'\fiin(100));1【參考答案】(1)錯(cuò)誤:break正確:break;下列給定程序中,函數(shù)fun的功能是:計(jì)算整數(shù)n的階乘。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<stdio.h>doublefun(intn)(doubleresult=1.0;while(n>1&&n<170)/*************found**************/result*=—n;/*************found**************/return;)voidmain(){intn;system(“CLS");printf(uEnteraninteger:n);scanf(H%d*',&n);printf(n\n\n%d!=%lg\n\n\n,fun(n));}【參考答案】⑴錯(cuò)誤:result*=--n; 正確:result*=n--;(2)錯(cuò)誤:return; 正確:returnresult;下列給定程序中,函數(shù)fun的功能是;應(yīng)用遞歸算法求某數(shù)a的平方根。求平方根的迭代公式如下:例如,2的平方根為1.414214。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意;不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<math.h>#include<stdio.h>/***************************/fun(doublea,doublexO){doublexl,y;xl=(xO+a/xO)/2.0;/豕************found**************/if(fabs(xl-x0)>0.00001)y=fun(a,xl);elsey=xl;returny;)voidmain(){doublex;printf(MEnterx:");scanf(H%lf\&x);printf("Thesquarerootof%lfis%lf\n'\x,fun(x,1.0));)【參考答案】(1)錯(cuò)誤:fun(doublea,doublexO)正確:doublefun(doublea,doublexO)(2)錯(cuò)誤:if(fabs(x1-x0)>0.00001)正確:if(fabs(xl-x0)>=0.00001)下列給定程序中,函數(shù)fun的功能是根據(jù)輸入的3個(gè)邊長(zhǎng)(整型值),判斷能否構(gòu)成三角形:若能構(gòu)成等邊三角形,則返回3,若是等腰三角形,則返回2,若能構(gòu)成三角形則返回1,若不能,則返回0.請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不

溫馨提示

  • 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)論