改错题题库.docx
- 文档编号:30745667
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:55
- 大小:66.03KB
改错题题库.docx
《改错题题库.docx》由会员分享,可在线阅读,更多相关《改错题题库.docx(55页珍藏版)》请在冰豆网上搜索。
改错题题库
二级C语言考前上机题库
二、改错题
考试做题要求:
1、在/**********found**********/的下一行改正错误。
2、将题目做完之后一定要保存。
3、不能删除/**********found**********/,也不能多行或少行。
1:
数列中,第一项值为3,后一项都比前一项的值增5;给定程序MODI1.C中函数fun的功能是:
计算前n(4 例如,当n的值为20时,该数列为3,8,13,18,23,28,……,93,98。 符合此条件的累加值应为42,126,366,570,1010。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include #defineN20 intfun(intn,int*a) {inti,j,k,sum; /**************found**************/ sum=0;j=0; for(k=3,i=0;i {sum=sum+k; /**************found**************/ if(sum%4==2) a[j++]=sum; } returnj; } main() {inta[N],d,n,i; printf("\nEntern(4 ");scanf("%d",&n); d=fun(n,a); printf("\n\nTheresult: \n"); for(i=0;i } 2: 给定程序MODI1.C中函数fun的功能是: 将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数。 规定输入的字符串最多只能包含5位八进制数字字符。 例如,若输入: 77777,则输出将是: 32767。 请改正程序中的错误,使它能得出正确结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 #include intfun(char*p) {intn; /**********found**********/ n=*p-'0; p++; while(*p! =0){ /**********found**********/ n=n*8+*p-'0'; 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函数,不得增行或删行,也不得更改程序的结构! #include /************found************/ IsPrime(intn); {inti,m; m=1; for(i=2;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函数,不得增行或删行,也不得更改程序的结构! #include #include char*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函数,不得增行或删行,也不得更改程序的结构! #include #defineN20 intfun(int*a,intn) {inti,m,t,k; for(i=0;i<2;i++){ /**********found**********/ m=i; for(k=i+1;k /**********found**********/ if(a[k]>a[m])m=k; t=a[i];a[i]=a[m];a[m]=t; } } main() {intx,b[N]={11,5,12,0,3,6,9,7,10,8},n=10,i; for(i=0;i printf("\n"); fun(b,n); for(i=0;i printf("\n"); } 6: 给定程序MODI1.C中函数fun的功能是: 将字符串中的字符按逆序输出,但不改变字符串中的内容。 例如,若字符串为abcd,则应输出: dcba。 请改正程序中的错误,使它能计算出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include /************found************/ fun(char*a) {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,计算如下公式的值。 1111 y=1+-----+-----+-----+……+----- 2*23*34*4m*m 例如,若m中的值为: 5,则应输出: 1.463611。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include doublefun(intm) {doubley=1.0; inti; /**************found**************/ for(i=2;i<=m;i++) /**************found**************/ y+=1.0/i/i; return(y); } main() {intn=5; printf("\nTheresultis%lf\n",fun(n)); } 8: 由N个有序整数组成的数列已放在一维数组中,给定程序MODI1.C中函数fun的功能是: 利用折半查找算法查找整数m在数组中的位置。 若找到,返回其下标值;反之,返回-1。 折半查找的基本算法是: 每次查找前先确定数组中待查的范围:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 改错 题库