收藏 分销(赏)

c语言程序改错题.doc

上传人:丰**** 文档编号:3066162 上传时间:2024-06-14 格式:DOC 页数:14 大小:82KB
下载 相关 举报
c语言程序改错题.doc_第1页
第1页 / 共14页
c语言程序改错题.doc_第2页
第2页 / 共14页
c语言程序改错题.doc_第3页
第3页 / 共14页
c语言程序改错题.doc_第4页
第4页 / 共14页
c语言程序改错题.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、 程序改错-1题目:在一个一维整型数组中找出其中最大的数及其下标。 程序中共有4条错误语句,请改正错误。-*/#define N 10/*FOUND*/float fun(int *a,int *b,int n) int *c,max=*a; for(c=a+1;cmax) max=*c;/*FOUND*/ b=c-a; return max;main() int aN,i,max,p=0; printf(please enter 10 integers:n); for(i=0;iN;i+)/*FOUND*/ scanf(%d,ai);/*FOUND*/ m=fun(a,p,N); print

2、f(max=%d,position=%d,max,p);-错误答案: 1 int fun(int *a,int *b,int n) 2 *b=c-a; 3 scanf(%d,&ai); 4 max=fun(a,&p,N); /*-2题目:用起泡法对10个整数从小到大排序。 程序中共有4条错误语句,请改正错误。-/*FOUND*/void sort(int x,int n) int i,j,k,t; for(i=0;in-1;i+)/*FOUND*/ for(j=0;jxi+1) t=xj;xj=xj+1;xj+1=t;main() int i,n,a100; printf(please inp

3、ut the length of the array:n); scanf(%d,&n); for(i=0;in;i+) scanf(%d,&ai); sort(a,n); printf(output the sorted array:n); for(i=0;i=n-1;i+) printf(%5d,ai); printf(n);- 错误答案: 1 void sort(int x,int n) 2 for(j=0;jj;j+) 或 for(j=0;jj;j+) 3 if(xjxj+1) 或 if(xj+1xj) -3题目:在一个已按升序排列的数组中插入一个数,插入后,数 组元素仍按升序排列。 程

4、序中共有4条错误语句,请改正错误。#define N 11main() int i,j,t,number,aN=1,2,4,6,8,9,12,15,149,156; printf(please enter an integer to insert in the array:n);/*FOUND*/ scanf(%f,&number) printf(The original array:n); for(i=0;i=0;i-) if(number=ai)/*FOUND*/ ai=ai-1; else ai+1=number;/*FOUND*/ exit; if(numbera0) a0=numbe

5、r; printf(The result array:n); for(i=0;i=0;i-) 或 for(i=N-2;0=i;i-) 3 ai+1=ai; 4 break; -4【程序改错】题目:以下程序的功能是求如下表达式: S = 1 + 1/(1+2)+1/(1+2+3)+1/(1+2+3+4) 请改正程序中的错误,使程序能得到正确的运行结果。#include main() int n; float fun(); printf(Please input a number:);/*FOUND*/ printf(%d,n) ; printf(%10.6fn,fun(n);/*FOUND*/f

6、un(int n) int i,j,t; float s; s=0;/*FOUND*/ for(i=1;i=n;i+); t=0; for(j=1;j=i;j+) t=t+j;/*FOUND*/ s=s+1/t; return s;错误答案: 1 scanf(%d,&n); 2 float fun(int n) 3 for(i=1;i=i;i+) 或 for(i=1;ii;i+) 4 s+=1.0/t 或 s=s+1.0/(float)t; 或 s=s+1.0/t; 或 s+=1.0/(float)t/*-5题目:输入一行英文文本,将每一个单词的第一个字母变成大写。例如:输入This is a

7、 C program.,输出为This Is A C Program.。-#include #include #include /*FOUND*/fun(char p) int k=0;/*FOUND*/ while(*p=0) if(k=0&*p!= ) *p=toupper(*p);/*FOUND*/ k=0; else if(*p!= ) k=1; else k=0;/*FOUND*/ *p+; main() char str81; clrscr(); printf(please input a English text line:); gets(str); printf(The ori

8、ginal text line is :); puts(str); fun(str); printf(The new text line is :); puts(str);错误答案: 1 fun(char *p) 或 fun(char p) 2 while(*p!=0) 或 while(*p) 3 k=1; 4 p+; 或 p=1+p; 或 +p; 或 p=p+1; -6【程序改错】题目:将一个字符串中的大写字母转换成小写字母。 例如:输入aSdFG输出为asdfg。-#include/*FOUND*/char fun(char c) if(*c=A)*c-=A-a;/*FOUND*/ fun

9、= c;main()/*FOUND*/char s81,*p=s; gets(s); while(*p) *p=fun(p);/*FOUND*/ puts(*p); p+; putchar(n);-错误答案: 1 char fun(char *c) 2 return *c; 或 return (*c); 或 return(*c); 3 char s81,*p=s; 4 putchar(*p); 或 printf(%c,*p); -7【程序改错】-题目:下列给定程序中,函数fun的功能是:判断m是否为素数,若是返回1,否则返回0。主函数的功能是:按每行5个输出1-100之间的全部素数。 请改正程

10、序中的4个错误,使它能得出正确的结果。-main() int m,k=0; for(m=1;m100;m+) if(fun(m)=1) printf(%4d,m);k+; if(k%5=0)printf(n); /*FOUND*/void fun( int m) int i,k=1; if(m=1) k=0;/*FOUND*/ for(i=1;im;i+)/*FOUND*/ if(m%i=0) k=0;/*FOUND*/ return m;错误答案: 1 int fun( int m) 或 fun( int m) 2 for(i=2;ii;i+) 或 for(i=2;ii;i+) 3 if(m

11、%i=0) k=0; 4 return k;-8题目:函数fun的功能是:用下面的和式求圆周率的近似值。直到最后一项的绝对值小于等于0.0001。 1 1 1 = 1 - + - + . 4 3 5 7 请改正程序中的错误,使它能得出正确的结果。-/*FOUND*/#include stdio.hfun() int i=1;/*FOUND*/ int s=0,t=1,p=1;/*FOUND*/ while(fabs(t)1e-4) 或 while(0.0001fabs(t) 或 while(1e-40.0001) 4 printf(pi=%fn,s*4); 9题目:下列给定程序中,函数fun的

12、功能是:求1到10的阶乘的和。主函数和fun函数中,各有两个错误,请改正,使其能得到正确的运行结果。-main() int i; float t,s=0; float fac(int n);/*FOUND*/ for(i=1;i10;i+)/*FOUND*/ s=fac(i); printf(%fn,s); float fac(int n)/*FOUND*/ int y=1; int i; for(i=1 ;i=n;i+) y=y*i;/*FOUND*/ return;- 错误答案: 1 for(i=1;i=i;i+) 或 for(i=1;ii;i+) 2 s=s+fac(i); 或 s+=f

13、ac(i); 3 float y=1.0; 或 float y=1; 4 return y; 或 return(y); 或 return (y); 10题目:函数fun的功能是:求1到20的阶乘的和。请改正程序中的错误,使它能得出正确的结果。-fun() int n,j; float s=0.0,t; for(n=1;n=20;n+) /*FOUND*/ s=1; for(j=1;j=n;j+)/*FOUND*/ t=t*n;/*FOUND*/ s+t=s; /*FOUND*/ printf(jiecheng=%dn,s);main() fun();-错误答案: 1 t=1; 或 t=1.0;

14、 2 t=t*j; 或 t*=j; 3 s=s+t; 或 s+=t; 4 printf(jiecheng=%fn,s); -11题目:函数fun的功能是:求1到20的阶乘的和。 请改正程序中的错误,使它能得出正确的结果。- fun() int n,j; float s=0.0,t; for(n=1;n=20;n+) /*FOUND*/ s=1; for(j=1;j=n;j+)/*FOUND*/ t=t*n;/*FOUND*/ s+t=s; /*FOUND*/ printf(jiecheng=%dn,s);main() fun();-错误答案: 1 t=1; 或 t=1.0; 2 t=t*j;

15、或 t*=j; 3 s=s+t; 或 s+=t; 4 printf(jiecheng=%fn,s); -12【程序改错】题目:函数fun的功能是:根据整型形参m的值,计算如下公式的值。 1 1 1 t = 1- - - . - 2x2 3x3 mxm 例如,若m=5,则应输出:0.536389 请改正程序中的错误,使它能得出正确的结果。-double fun(int m) double y=1.0; int i;/*FOUND*/ for(i=2;im;i-)/*FOUND*/ y-=1/(i*i);/*FOUND*/ return m;main() int n=5; printf(nthe

16、result is %lfn,fun(n);-错误答案:1 for(i=2;i=i;i+) 或 for(i=2;im+1;i+) 或 for(i=2;ii;i+) 或 for(i=2;1+mi;i+) 2 y-=1.0/(i*i); 或 y=y-1.0/(i*i); 或 y-=1.0/(float)(i*i); 或 y=y-1.0/(float)(i*i); 或 y=y-1.0/i/i; 或 y=y-1.0/(float)i/(float)i; 3 return y; 或 return (y); 或 return(y);【程序改错】12题目:函数fun的功能是:实现交换两个整数的值。例如给a和

17、b 分别输入3和6 ,输出为a=6 b=3 请改正程序中的4个错误,使它能得出正确的结果。-/*FOUND*/void fun (int a, b) int t;/*FOUND*/ t=a;/*FOUND*/ a=b;/*FOUND*/ b=t;main() int a,b; printf(enter a,b:);scanf(%d%d,&a,&b); fun(&a,&b); printf(a=%d b=%dn,a,b);-错误答案: 1 void fun (int *a,int *b) 或 fun (int *a,int *b) 2 t=*a; 3 *a=*b; 4 *b=t; -13【程序改

18、错】题目:函数fun的功能是:计算并输出k以内最大的10个能被13 或17整除的自然数之和。k的值由主函数传入,若k的值 为500,则函数值为4622。 请更改程序中的错误,使它能得出正确的结果。-int fun(int k) int m=0,mc=0,j;/*FOUND*/ while (k=2)|(mc10) /*FOUND*/ if(k%13=0)|(k%17=0) m=m+k; mc+;/*FOUND*/ k+; /*FOUND*/ return ; main() printf(%dn,fun(500);-错误答案: 1 while (2=k)&(mc=2)&(10mc) 或 whil

19、e (2=k)&(10=2)&(mc10) 或 while (2=k)&(mc=2)&(9=mc) 或 while (2=k)&(9=2)&(mc=9) 2 if (k%17=0)|(k%13=0) 或 if !(k%17!=0)&(k%13!=0) 3 k-; 4 return m; 或 return(m); -14【程序改错】题目:函数fun的功能是:计算正整数num的各位上的数字之积。 例如,输入252,则输出应该是20。 请改正程序中的错误,使它能得出正确的结果。-long fun (long num)/*FOUND*/ long k; do k*=num%10;/*FOUND*/ n

20、um=10; while (num); return k;main() long n; printf(nPlease enter a number:);/*FOUND*/ scanf(%ld, n);/*FOUND*/ printf(n%ldn,fun(long n);-错误答案: 1 long k=1; 2 num/=10; 或 num=num/10; 3 scanf(%ld,&n); 4 printf(n%ldn,fun(n); -15题目:函数fun的功能是:求出两个非零正整数的最大公约数, 并作为函数值返回。例如,若给num1和num2分别输入49 和21,则输出的最大公约数为7。 请

21、改正程序中的错误,使它能得出正确的结果。-int fun(int a,int b) int r,t; if(a0) sum+=si;c+; i+; /*FOUND*/ sum=c;/*FOUND*/ return c;main() int x1000;int i=0; do scanf(%d,&xi); while(xi+!=0); printf(%fn,fun(x);错误答案: 1 double sum=0.0; 2 while(si!=0) 或 while!(si=0) 或 while!(0=si) 3 sum/=c; 或 sum=sum/c; 4 return sum; 或 return

22、 (sum); -17【程序改错】-题目:fun函数的功能是:先从键盘上输入一个3行3列矩阵的各 个元素的值,然后输出主对角线上的元素之和sum。请改正程序中的错误,使它能得出正确的结果。-#include stdio.hint fun() int a33,sum; int i,j;/*FOUND*/ a=0; for(i=0;i3;i+) for(j=0;j3;j+)/*FOUND*/ scanf(%d,aij); for(i=0;i3;i+)/*FOUND*/ sum=sum+aij;/*FOUND*/ printf(sum=%fn,sum);main() fun();-错误答案: 1 s

23、um=0; 2 scanf(%d,&aij); 3 sum=sum+aii; 或 sum+=aii; 4 printf(sum=%dn,sum); -18【程序改错】-题目:fun函数的功能是:给定n个实数,输出平均值,并统计 在平均值以下(含平均值)的实数个数。例如,n=6时, 输入23.5, 45.67, 12.1, 6.4,58.9, 98.4所得平均值 为40.828335,在平均值以下的实数个数应为3。 请改正程序中的错误,使它能得出正确的结果。-int fun(float x,int n) int j,c=0;/*FOUND*/ float j=0;/*FOUND*/ for(j=

24、0;j=n;j+) xa+=xj; xa=xa/n; printf(ave=%fn,xa);/*FOUND*/ for(j=0;j=n;j+) if(xj=xa) c+;/*FOUND*/ return xa;main() float x=23.5,45.67,12.1,6.4,58.9,98.4; printf(%dn,fun(x,6);错误答案: 1 float xa=0; 或 float xa=0.0; 2 for(j=0;jj;j+) 或 for(j=0;n-1=j;j+) 或 for(j=0;j=n-1;j+) 3 for(j=0;jj;j+) 或 for(j=0;j=j;j+) 4 return c; 或 return (c); -

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服