您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 进出口许可 > c语言程序设计(第2部分)二、改错题
二、改错题考试做题要求:1、在/**********found**********/的下一行改正错误。2、将题目做完之后一定要保存。3、不能删除/**********found**********/,也不能多行或少行。1:数列中,第一项值为3,后一项都比前一项的值增5;给定程序MODI1.C中函数fun的功能是:计算前n(4n50)项的累加和;每累加一次把被4除后余2的当前累加值放入数组中,符合此条件的累加值的个数作为函数值返回主函数。例如,当n的值为20时,该数列为3,8,13,18,23,28,……,93,98。符合此条件的累加值应为42,126,366,570,1010。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#includestdio.h#defineN20intfun(intn,int*a){inti,j,k,sum;/**************found**************/sum=j==0;for(k=3,i=0;in;i++,k+=5){sum=sum+k;/**************found**************/if(sum%4=2)a[j++]=sum;}returnj;}main(){inta[N],d,n,i;printf(\nEntern(4n=50):);scanf(%d,&n);d=fun(n,a);printf(\n\nTheresult:\n);for(i=0;id;i++)printf(%6d,a[i]);printf(\n\n);}2:给定程序MODI1.C中函数fun的功能是:将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。例如,若输入:77777,则输出将是:32767。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。#includestdio.hintfun(char*p){intn;/**********found**********/n=*P-'o';p++;while(*p!=0){/**********found**********/n=n*8+*P-'o';p++;}returnn;}main(){chars[6];inti;intn;printf(Enterastring(Ocataldigits):);gets(s);if(strlen(s)5){printf(Error:Stringtoolonger!\n\n);exit(0);}for(i=0;s[i];i++)if(s[i]'0'||s[i]'7'){printf(Error:%cnotisocataldigits!\n\n,s[i]);exit(0);}printf(Theoriginalstring:);puts(s);n=fun(s);printf(\n%sisconveredtointegernumber:%d\n\n,s,n);}3:给定程序MODI1.C的功能是:读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。例如,若输入整数:2310,则应输出:2、3、5、7、11。请改正程序中的语法错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#includestdio.h/************found************/IsPrime(intn);{inti,m;m=1;for(i=2;in;i++)/************found************/if!(n%i){m=0;break;}return(m);}main(){intj,k;printf(\nPleaseenteranintegernumberbetween2and10000:);scanf(%d,&k);printf(\n\nTheprimefactor(s)of%dis(are):,k);for(j=2;j=k;j++)if((!(k%j))&&(IsPrime(j)))printf(\n%4d,j);printf(\n);}4:给定程序MODI1.C中函数fun的功能是:将tt所指字符串中的小写字母都改为对应的大写字母,其它字符不变。例如,若输入Ab,cD,则输出AB,CD。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#includestdio.h#includestring.hchar*fun(chartt[]){inti;for(i=0;tt[i];i++)/**********found***********/if(('a'=tt[i])||(tt[i]='z'))/**********found***********/tt[i]+=32;return(tt);}main(){chartt[81];printf(\nPleaseenterastring:);gets(tt);printf(\nTheresultstringis:\n%s,fun(tt));}5:给定程序MODI1.C中函数fun的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#includestdio.h#defineN20intfun(int*a,intn){inti,m,t,k;for(i=0;i2;i++){/**********found**********/m=0;for(k=i+1;kn;k++)/**********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;in;i++)printf(%d,b[i]);printf(\n);fun(b,n);for(i=0;in;i++)printf(%d,b[i]);printf(\n);}6:给定程序MODI1.C中函数fun的功能是:将字符串中的字符按逆序输出,但不改变字符串中的内容。例如,若字符串为abcd,则应输出:dcba。请改正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#includestdio.h/************found************/fun(chara){if(*a){fun(a+1);/************found************/printf(%c*a);}}main(){chars[10]=abcd;printf(处理前字符串=%s\n处理后字符串=,s);fun(s);printf(\n);}7:给定程序MODI1.C中函数fun的功能是:根据整型形参m,计算如下公式的值。1111y=1+-----+-----+-----+……+-----2*23*34*4m*m例如,若m中的值为:5,则应输出:1.463611。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#includestdio.hdoublefun(intm){doubley=1.0;inti;/**************found**************/for(i=2;im;i++)/**************found**************/y+=1/(i*i);return(y);}main(){intn=5;printf(\nTheresultis%lf\n,fun(n));}8:由N个有序整数组成的数列已放在一维数组中,给定程序MODI1.C中函数fun的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,返回其下标值;反之,返回-1。折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(lowhigh),然后把m与中间位置(mid)中元素的值进行比较。如果m的值大于中间位置元素中的值,则下一次的查找范围落在中间位置之后的元素中;反之,下一次的查找范围落在中间位置之前的元素中。直到lowhigh,查找结束。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。#includestdio.h#defineN10/************found************/voidfun(inta[],intm){intlow=0,high=N-1,mid;while(low=high){mid=(low+high)/2;if(ma[mid])high=mid-1;/************found************/elseIf(ma[mid])low=mid+1;elsereturn(mid);}return(-1);}main(){inti,a[N]={-3,4,7,9,13,45,67,89,100,180},k,m;printf(a数组中的数据如下:);for(i=0;iN;i++)printf(%d,a[i]);printf(Enterm:);scanf(%d,&m);k=fun(a,m);if(k=0)printf(m=%d,index=%d\n,m,k);elseprintf(Notbefound!\n);}9:给定程序MODI1.C中函数fun的功能是:按以下递归公式求函数值。┌10(n=1)fun(n)=┥└fun(n-1)+2(n1)例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。#includestdio.h/************found************/fun(n){intc;/************found************/if(n=1)c=10;elsec=fun(n-1)+2;return(c);}main(){intn;printf(Entern:);scanf(%d,&n);printf(Theresult:%d\n\n,fun(n));}10:给定程序MODI1.C中函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。例如,若给num1和num2分别输入49和21,则输出的最大公约数为7;若给num1和num2分别输入27和81,则输出的最大公约数为27。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。#includestdio.hintfun(inta,intb){intr,t;if(ab){/************found************/t=a;b=a;a=t;}r=a%b;while(r!=0){a=b;b=r;r=a%b;}/************found************/return(a);}main(){intnum1,num2,a;printf(Inputnum1num2:);scanf(%d%d,&num1,&num2);printf(num1=%dnum2=%d\n\n,num1,num2);a=fun(num1,num2);printf(Themaximuncommondivisoris%d\n\n,a);}11:给定程序M
本文标题:c语言程序设计(第2部分)二、改错题
链接地址:https://www.777doc.com/doc-5924724 .html