c语言程序改错题(共14页).doc
《c语言程序改错题(共14页).doc》由会员分享,可在线阅读,更多相关《c语言程序改错题(共14页).doc(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(
2、a,p,N); printf(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; prin
3、tf(please input 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(numbe
5、ra0) a0=number; 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(
6、n);/*FOUND*/fun(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题目:输入一行英文文本,将每一个单词的第一个字母变成大写。例
7、如:输入This is a 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); p
8、rintf(The original 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;
9、/*FOUND*/ fun= 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;
11、ii;i+) 3 if(m%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题目:下
12、列给定程序中,函数fun的功能是:求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+f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 改错 14
限制150内