C语言程序改错题.doc_第1页
C语言程序改错题.doc_第2页
C语言程序改错题.doc_第3页
C语言程序改错题.doc_第4页
C语言程序改错题.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【第1题】给定程序MODI1.C中函数fun的功能是:将长整数中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为87654时,t中的数为:864.#include #include Void fun (long s, long *t)int d ; long sL=1*t=0While (s0)d=s%10/*FOUND*/if (d%2=0) 答案 if(d%2= =0)/*FOUND*/*t=d*sl+t; 答案 *t=d*sl+*t;sl*=10/*FOUND*/s=10; 答案 s/=10 ;main()long s, t;clrscr();printf (“nplease enters:”).【第2题】题目:编写函数fun其功能是:根据整型参m,计算如下公式的值:Y=1+1/3+1/5+1/7+.+1/(2m-3)include “stdio.h”double fun (int m)/*FOUND*/double y=1 答案double y=1; int i/*FOUND*/for (i=1; im; i+) 答案 for (i=1; i=m; i+)/*FOUND*/ y+1.0/2i-3) 答案 y+=1.0/2*i-3)return(y).【第3题】题目函数fun的功能是:根据整形参m的值,计算如下公式的值。 1 1 1 t=1- 2x2 - 3x3 - mxm 例如若m=5 则应输出 :0.536389double fun (int m )double y=1.0;Int i /*FOUND*/ for (i=2;im;i- -) 答案For (i=2;im;i+)/*FOUND*/y-=1/(i*i); 答案y-=1.0/(i*i);/*FOUND*/return m; 答案 return y; main()【第4题】题目:编写一个函数,判断一个数字是否在一个正整数中,若在则函数返回值为1,否则函数返回值为0.输入输出由主函数完成。Int fun ( int m,int n )int k, z=0;do k=m%10/*FOUND*/if (n=k ) z=1; 答案 if (n= =k ) z=1;/*FOUND*/n=m/10 答案 m=m/10 /*FOUND*/ while (m= =0); 答案 while (m! =0); /*FOUND*/return(m); 答案 return(z); mian()【第5题】题目:函数fun的功能是:输出fabonacci 数列的前20项,要求变量类型定义成浮点型,输出时只输出整数部分,输出项数不得多于或少于20.fun ()int ifloat f1=1,f2=1,f3;/*FOUND*/printf(“%8d”,f1); 答案 printf(“%8f”,f1);/*FOUND*/for(i=1:i=20;i+) 答案 for(i=1:i20;i+) f3=f1+f2;/*FOUND*/f2=f1; 答案 f1=f2; /*FOUND*/f3=f2; 答案 f2=f2printf(“%8.0f”,f1);.【第6题】题目:以下程序的功能是统计400499这些数中“4”这个数字出现的次数,判断一个数有几位4用函数fun实现。#includeint fun (int x)int fun (int x)int y,k=0;/*FOUND*/ while (x= =0) 答案 while (x!=0)y=x%10;/*FOUND*/if(y=4 ) k+; 答案if(y= =4 ) k+;x=x/10;/*FOUND*/return(y); 答案 return(k)main()int i,k=0;for(i=400;i=499;i+)/*FOUND*/k=fun(i); 答案k=k+fun(i);prinktf(“number=%dn”,k);【第7题】题目:用起泡法对10个整数从小到大排序。void sort (int x,int n)int i,j,k,t;for(i=0;in-1;i+)/*FOUND*/for(j=0;jn-i;j+) 答案for(j=0;jxi+1) 答案if(xjxj+1)t=xj;xj=xj+1;xj+1=t;./*FOUND*/scanf(“%d”,ai); 答案scanf(“%d”,&ai); /*FOUND*/sort (n,a); 答案sort (a,n);printf(out.【第8题】题目:将s所指字符的反序和正序进行连接形成一个新串放在t所指的数组中。例如当s所指的字符串的内容为“ABCD”时,t所指数组中的内容为“DCBAABCD”。#include#include#include/*FOUND*/void fun (char s , char t) 答案 void fun (char s, char t)int i, d;/*FOUND*/d=len(s); 答案d=strlen (s); /*FOUND*/for(i=1;id;i+) 答案 for (i=0;id;i+)ti=s./*FOUND*/t2*d=”/0” 答案t2*d=”0”main().【第9题】题目:将一个字符串中第m个字符开始的全部字符复制成为另一个字符串。#include#includevoid strcopy(char*str1,char*str2,int m)/*FOUND*/char p1,p2; 答案char *p1,*p2; int i,j; /*FOUND*/p1=str1+m; 答案p1=str1+m-1;/*FOUND*/if(*p1); 答案while(*p1)./*FOUND*/strcat(str10,star20,m); 答案 strcopy(str1,str2,m);. .【第10题】题目:函数fun的 功能是:计算正整数mun的各位的数字之积。例如,输入252,则输出应该是20。Long fun (long num)/*FOUND*/long k; 答案:long k=1;do k*=num%10;/*FOUND*/ num=10; 答案:num/=10;或num=num/10; while(num); return k;main() long n; printf(nPlease enter a number:);/*FOUND*/ scanf(%ld,n); 答案:scanf(%ld,&n);/*FOUND*/ printf(n%ldn,fun(long n); 答案:printf(n%ldn,fun(n);【第11题】题目:函数fun的功能是:用下面的和式求圆周率的近似值。直到最后一项的绝对值小于等于0.0001。 =1- 1 + 1 - 1 + . 4 3 5 7 /*FOUND*/#include stdio.h 答案:#includemath.h或#include fun() int i=1;/*FOUND*/ int s=0,t=1,p=1; 答案:float s=0,t=1,p=1;/*FOUND*/ While(fabs(t)le-4) s=s+t;p=-p;i=i+2;t=p/i;/*FOUND*/ printf(pi=%dn,s*4); 答案:printf(pi=%fn,s*4); main() fun();【第12题】题目:下面程序的功能是:从键盘输入十个学生的成绩,统计最高分,最低分和平均分。max代表最高分,min代表最低分,avg代表平均分。main() int i;/*FOUND*/ float a8,min,max,avg; 答案: float a10,min,max,avg; printf(input 10 score:); for(i=0;i=9;i+) printf(input a score of student:);/*FOUND*/ Scanf(%f,a); 答案:scanf(%f,&ai);/*FOUND*/ max=min=avg=a1; 答案:max=min=avg=a0; for(i=1;i=9;i+) /*FOUND*/ if(minai) min=ai;if(maxai) max=ai;avg=avg+ai; avg=avg/10; printf(max:%fnmin:%fnavg:%fn,max,min,avg);【第13题】题目:fun函数的功能是:实现3行3列矩阵的转置,即行列互换。 例如原矩阵为: 1 2 3 4 5 6 7 8 9 则转置后的矩阵为: 1 4 7 2 5 8 3 6 9fun(int a33,int n) int i,j,t; for(i=0;in;i+) for(j=0;jn;j+)/*FOUND*/ scanf(%d,aij); 答案:scanf(%d,&aij); for(i=0;in;i+);.for(i=o;i,;i+)/*FOUND*/for(j=0;jn;j+) 答案: for(j=0;ji;j+)/*FOUND*/aij=t; 答案:t = aij;/*FOUND*/t=aji; 答案: aji =t;/*FOUND*/.【第14题】题目:奖数组元素逆顺序存放。如数组元素为1,2,3,4,5,则逆序存放后数组元素的值为5,4,3,2,1.void inv(int x,int n)int i ,j,t,m=(n-1)/2;/*FOUND*/for(i=o;im;i+) 答案:for(i=o;i=m;i+)/*FOUND*/xj=xi; 答案:xi=xj; xj=t/*FOUND*/void inv(int a10,10) 答案:inv(a,10);.for (i=0;i10;i+)/*FOUND*/ printf(“%3f”,ai); 答案:printf(“%3d”,ai); 【第15题】题目:函数fun的功能是:根据以下公式求n值,并作为函数值返回,例如,给制定精度的变量eps输入0.0005时,应当输出Pi=3.140578. 1 1 2 1 2 3 1 2 3 4 = 1+ + x + x x + x x + + 2 3 3 5 3 5 7 3 5 7 9double fun(double eps)double s,t; int n=1;s=0.0;t=1;/*FOUND*/while(teps);s+=t;/*FOUND*/t=n/(2*n+1)*t 答案:t=t*n/(2*n+1)*tn+;/*FOUND*/return s; 答案:return 2*s;main().【第16题】题目:给定程序MOD11.C中函数fun的功能是:极炫正整数num的个位数字之积。例如,若输入:252,则输出应该是20.#include#includelong/*FOUND*/long k=1 答案:long k=1;dok*=num%10;/*FOUND*/ num=10; 答案:num/=10;/*FOUND*/while(!num); 答案:while(num);return(k);.【第17题】题目:用“起泡法”对输入的十个字符排序后按从大到小的次序输出#define N 10 #include #include main( )int i;char strN;for(i=0;iN;i+)/*FOUND*/ scanf(“%c”,stri); 答案:scanf(“%c”,&stri); /*FOUND*/sort(strN); 答案:sort(str);for(i=0;iN;i+); printf(“%c”,stri); printf(“n”);sort(char strN)【第18题】题目:以下程序输出前六行杨辉三角形,既 111 1 2 1 1 3 3 1 1 4 6 4 1 . .mian() static int a66;int i,j,k;/*FOUND*/ for(i=1;i=6;i+) 答案 for(i=0;i6;i+) for(k=0;k10-2*i;k+) Printf(“ ”); for(j=0;j=I;j+) /*FOUND*/ If(j=0&j=i) 答案 if(j=|j=i) aij=1; else/*FOUND*/ aij=aj-1j-1+aij-1; aij=ai-1j-1+ai-1aj; printf(“ ”); printf(“%-3d”,aij); /*FOUND*/ Printf(“t”); 【第19题】题目:给定程序MODI1.C中函数fun的功能是:求两数平方根之和,作为函数值返回。例如:输入12和20,输出结果是:y=7.936238。#include#include/*FOUND*/double fun (double*a,*b) 答案 double fun(double*a,double*b) double c;/*FOUND*/ c=sqr(a)+sqr(b); 答案 c=sqrt(*a)+sqrt(*b);/*FOUND*/ Return a; 答案 return c;或return(c);mian() double a,b,y; clrscr(); printf (“Enter a&b:”); scanf (“%lf%lf”,&a,&b);y=fun(&a,&b,);printf(“y=%fn”,y); getch();【第20题】题目:将一个字符串中的大写字母转换成小写字母。例如:+输入aSdFG输出为asdfg。#include/*FOUND*/bool fun(char *c) 答案 char fun(char *c)if(*c=A) *c-=A-a;/*FOUND*/ Fun=c; 答案 return*c;或 return (*c);Mian()/*FOUND*/ char s81.*p=s; 答案 char s81.*p=s; gets(s); while(*p) *p=fun(p);/*FOUND*/ Puts(*p); 答案putchar(*p);或printf(“%c”,*p); P+; putchar(n);【第21题】题目:在主题函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数fun的功能是;计算数组元素中值为正数的平均值(不包括0)。例如,数组中元素的值一次为39,-47,21,2,-8,15,0.则程序的运行结果为19.250000double fun (int s)/*FOUND*/ int sum=0.0; 答案 double sum=0.0; int c=0,i=0;/*FOUND*/ while(si =0) 答案 while(si!=0)或while(si) if (si0) sum+=si;c+; i+; /*FOUND*/ sum=c 答案 sum/=c;或 sum=sum/c;/*FOUND*/ return c; 答案 return sum或 return (sum);mian()int x1000;int i=0; do scanf(%d,&xi); while(xi+!=0); pintf(%fn,fun(x);【第22题】题目:给定程序MODI1.C中函数fun的功能是:求广义斐波那契级数的第n项。广义斐波那契级数的前n项为:1,1,1,3,5,9,17,31,.,项值通过函数值返回mian()函数。例如,若n=15,则应输出:The value is:2209.#include #include long fun(int n) long a=1,b=1,c=1,d=1,k;*FOUND* for(k=4;kn;k+) 答案:for(k=4;k=n;k+)d=a+b+c;*FOUND* a=b;b=c;c=d 答案:a=b;b=c;c=d;*FOUND* Return k; return d;main() int n=15; clrscr(); printf(“the value is: %ldn”fun(n);【第23题】题目:有一数组内放10个整数,要求找出最小数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置。main() int i a10,min,k=0; printf(“n please input array 10 elementsn”); for(i=0;i10;i+)*FOUND*scanf(“%d”,ai); 答案:scanf(“%d”,&ai);for(i=0;i10;i+) Printf(“%d”,ai);min=a0;*FOUND*for(i=3;i10;i+) 答案:for(i=1;imin) min=ai; k=i; *FOUND*ak=ai;a0=min;printf(“n after eschange:n”);for(i=0;i10;i+) printf(“%d”,ai);printf(“nk=%dn”,k,min);【24题】题目:下列程序中,函数fun的功能是:找出一个大于给定整数m的最小的素数,并作为函数值返回#include#includeint fun(int m)*FOUND*int i;k; 答案 int i,k; for(i=m+1;i+)for(k=2;k=i)return(i);main() int n;clrscr();printf(“n please enter n:”);scanf(“%d”,&n);printf(“%dn”,fun(n);【25题】题目:下列给定程序中,函数fun的功能是:求1到10的阶乘的和。main() int i;float t,s=0;float fac(int n);*FOUND*for(i=1;i10;i+) 答案:for(i=1;i=10;i+)*FOUND*s=fac(i); 答案: s=s+fac(i);或s+=fac(i);s=fac(i);printf(“%fn”,s);float fac(int n)*FOUND* int y=1; 答案: float y=1; int i; for(i=1;i=n;i+) y=y*i;*FOUND*return; 答案: return y;或return(y);【26题】题目:以下程序的功能是求如下表达式: S=1+#include main() int n; float fun(); printf(“please input a number:”);*FOUND*print(“%d”,n): 答案: scanf(“%d”,&n);printf(“%10.6fn”,fun(n);*FOUND*fun(int n) 答案:float fun(int n) int i,j,t; float s;s=0;*FOUND*while(i=1;i=n;i+) 答案: for(i=1;i=n;i+) t=0;for(j=1;j=i;j+)t=t+j;*FOUND*s=s+1t; 答案:s+=1.0/t或s=s+1.0/t; return s;【第27题】题目:用指针作函数参数,编程序求一堆数组中的最大和最小的元素值。#define N 10/*FOUND*/Void maxmin(int arr ,int *pr1, *pt2, n) Void maxmin(int arr ,int *pt1,int *pt2,int n)int 1:/*FOUND*/*pt1=*pt2=&arr0; *pt1=*pt2=arr0;for(i=1;in;i+)/*FOUND*/if(arri*rt1) *pt1=arri;if(arri*pt2) *pt2=arri;Main() int array n=10,7,19,29,4,0,7,35,-16,21,*p1,*p2,a,ab;/*FOUND*/ *p1=&a;*p2=&b; maxmin(array,p1,p2,N); printf(”max=%d,min=%d”,a,b);【第28题】111题目:编写一个函数,该函数可以统计一个长度为3的字符串在另一个字符串中出现的次数。例如,假定输出的主字符串为:asdasasdfgasdaszx67asdmklo,子字符串为:asd,则应输出n=4。#include#include#includeInt fun (char *str,char *substr) /*FOUND*/Int I, n=0 int I,n=0;/*FOUND*/for(i=0;istrlen(str);i+) for(i=0;i=strlen(str)-3;i+) if(stri=substr0)&(stri+1=substr1) &(stri+2=substr2)/*FOUND*/ +I; n+;或 +nreturn n;main( )char str81,substr4; Int n ;clrscr( );printf(”输出主字符串: ”); gets(str);printf(”输出子字符串: ”); gets(substr);puts(str); puts(substr);n=fun(str,substr);printf(”n=%dn”,n);【第29题】题目:已知一个数列从第0项开始的前三项分别为0、0、1,以后的各项都是相邻的前三项的和。下列给定程序中,函数fun的功能是:求该数列的前n项的平方根之和sum,n的值通过形参传入。输出有主函数完成。例如,当n=10时,程序的输出结果为23.197745.#unclude math.h/*FOUND*/fun(int n) double fun (int n)double sum,s0,s1,s2,s;int k;/*FOUND*/sum=0.0; sum=1.0或sum=1;if(nn;k+) for(k=4;k=n;k+) s=s0+s1+s2;sum+sqrt(s);s0=s1;s1=s2;s2=sreturn sum;main()int n;scanf(%d,&n);printf(%1fn,fun(n);【第30题】题目:函数fun的功能是:求二分之一的园面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积。例如输入圆的半径值:19.527输出为:s=598.950017。#include#include/*FOUND*/float fun(r) float fun(float r)float ?/*FOUND*/s=1/2*3.14159*r*r s=1.0/2*3.14159*r*r;/*FOUND*/return r; return s;或return (s);main()float x;clrscr();printf(Enter x:);scanf(%f,&x);printf(s=%fn,fun(x);getch()【第31题】题目:从键盘输入一个数,是3为数就加上100.是1位数就除以100,其他情况不变。int fun(int x)/*FOUND*/int k,d; 答案:int k=0,d;/*FOUND*/while(x=0) 答案:while(x!=0)d=x%10;k+;/*FOUND*/d=x/10 答案:x=x/10return k;main()int m,n;./*FOUND*/ if(n=4) m=m/100; 答案:if(n=4) m=m/100;【第32题】题目:下面程序的功能是将十进制数转换成二进制数。#include ”stdio.h”#include ”string.h”fun (char p , int b) int j,i=0;/*FOUND*/ while (b=0) 答案 while(b0) j=b%2; Pi+=j+0;/*FOUND*/ b=b/2; 答案 b=b/2;或b/=2;Pi= 0 ;main()int a,I; char s20; prin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论