《c语言程序改错题.docx》由会员分享,可在线阅读,更多相关《c语言程序改错题.docx(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【程序改错】功能:根据整型形参m的值,计算如下公式的值。 1 1 1 t = 1- - - . - 2x2 3x3 mxm例如:若m=5,则应输出:0.536389#include double fun(int m)double y=1.0;int i; /*FOUND*/for(i=2;im;i-) for(i=2;i=m;i+) /*FOUND*/y-=1/(i*i); y-=1.0/(i*i) /*FOUND*/return m; return ymain()int n=5;printf(nthe result is %lfn,fun(n);【程序设计】题目:编程求所有4位数,这些数具有
2、以下特点:这数本身是平方数,且其低2位和高2位所组成的2个2位数也是平方数。要求:使用程序中定义的变量#include #include main()int qw,bw,sw,gw; / qw千位数bw百位数sw十位数gw个位数int a,b; /a 高两位低两数int i; /循环变量 /*Program*/for(i=1000;i10000;i+) qw=i/1000; bw=i/100%10; sw=i/10%10; gw=i%10;a=qw*10+bw;b=sw*10+gw;if(sqrt(i)=(int)sqrt(i)&sqrt(a)=(int)sqrt(a)&sqrt(b)=(in
3、t)sqrt(b)printf(“%dn”,i); /* End */【程序设计】功能:从键盘为一维整型数组输入10个整数,调用fun 函数找出其中最小的数,并在main函数中输出。#include stdio.hvoid wwjt();int fun(int x,int n) /*Program*/ int z,k;z=x0;for(k=1;kxk)z=xk;return(z); /* End */ void main()int a10,i,min;for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i10;i+)printf(%3d,ai);printf(n);min
4、=fun(a,10);printf(%dn,min); wwjt();void wwjt() FILE *IN,*OUT;int in4,out; IN=fopen(in.dat,r);if(IN=NULL) printf(Read ); OUT=fopen(out.dat,w);if(OUT=NULL) printf(Write );for(int j=0;j5;j+)for(int i=0;i4;i+)fscanf(IN,%d,&ini);out=fun(in,4);fprintf(OUT,%dn,out);fclose(IN);fclose(OUT);【程序设计】题目:求Sn=a+aa+
5、aaa+aaa之值,其a中代表1到9中的一个数字。例如:a代表2,则求2+22+222+2222+22222(此时n=5),a和n由键盘输入。#include void wwjt();int fun(int a,int n)int t=a,i,s; /* t 表示每个项 */*Program*/s=0;for(i=1;i=n;i+) s=s+t; t=t*10+a;return s;/* End */void main( )int a, n, s ;printf(输入a和n的值:);scanf(%d%d, &a, &n) ;printf(a=%d, n=%d:n, a, n) ; s=fun(
6、a,n);printf(a+aa+aaa+.+aa.a=%dn, s);wwjt();void wwjt() FILE *IN,*OUT;int j;inta,n; IN=fopen(in.dat,r);if(IN=NULL)printf(Please Verify The CurrerntDir.It May Be Changed); OUT=fopen(out.dat,w);if(OUT=NULL)printf(Please Verify The Current Dir. It May Be Changed);for(j=0;j3;j+)fscanf(IN,%d,&a);fscanf(IN
7、,%d,&n);fprintf(OUT,%dn,fun(a,n);fclose(IN);fclose(OUT);【程序设计】题目:已知某班5名学生的三门课成绩。试编写程序,输入这5个学生的三门课成绩 a53,输出每门课成绩的平均分vag3。#include void main( )/*Program*/int a53;float vag3;int i,j;for(i=0;i5;i+) for(j=0;j3;j+)scanf(%d,&aij);for(i=0;i5;i+) for(j=0;j3;j+)printf(%3d,aij);printf(n); for(j=0;j3;j+) vagj=0
8、;for(i=0;i5;i+) for(j=0;j3;j+) vagj=vagj+aij/5.0;for(i=0;i3;i+)printf(%.2fn,vagi);/* End */【程序改错】功能:有一数组内放10个整数,要求找出最小数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置.#include 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+)print
9、f(%d,ai); min=a0; /*FOUND*/for(i=3;i10;i+) for(i=1;imin) if(aimin)min=ai; k=i; /*FOUND*/ak=ai; ak=a0;a0=min;printf(n after eschange:n);for(i=0;i10;i+) printf(%d,ai);printf(nk=%dnmin=%dn,k,min);【程序填空】功能:分别求出一批非零整数中的偶数、奇数的平均值,用零作为终止标记。#include main()int x,i=0,j=0;float s1=0,s2=0,av1,av2;scanf(%d,&x);
10、/*SPACE*/ while(【?】) x!=0if(x%2=0) s1=s1+x;i+; /*SPACE*/【?】 if(x%2=1) s2=s2+x;j+; /*SPACE*/【?】; scanf(%d,&x);if(i!=0) av1=s1/i;else av1=0;if(j!=0) /*SPACE*/【?】 ; av2=s2/jelse av2=0;printf(oushujunzhi:%7.2f,jishujunzhi:%7.2fn,av1,av2);【程序改错】功能:根据整型形参 m,计算某一数据项的值。 y = 1/(100*100)+1/(200*200)+1/(300*30
11、0)+ +1/(m*m)例如:若m = 2000,则应输出: 0.000160。#include #include /*FOUND*/fun ( int m ) float fun ( int m )double y = 0, d ;int i ; /*FOUND*/for( i = 100, i = m, i += 100 ) for( i = 100; i = m; i += 100 ) d = (double)i * (double)i ; /*FOUND*/ y += 1.0 d ; y += 1.0/d ;return( y ) ;main( )int n = 2000 ;print
12、f( nThe result is %lfn, fun ( n ) ) ;【程序填空】题目:求100以内个位数为6且能够被3整除的所有数#includevoid main()Int i,j;/*SPACE*/ for(i=0;【?】;i+) i=9 j=i*10+6;/*SPACE*/ if(【?】) j%3!=0continue;printf(%dt,j);【程序填空】功能:下面程序的功能是用do-while语句求1至1000之间满足 用3除余2;且用5除余3的数,且一行只打印五个数。#include main()int i=1,j=0;do/*SPACE*/ if(【?】) i%3=2&i
13、%5=3printf(%4d,i); j=j+1;/*SPACE*/ if(【?】) printf(n); j%5=0 i=i+1;while(i1000);【程序填空】题目:下列程序从键盘输入所需数据,求出z的值并输出,要求输出结果保留2位小数。#include /*SPACE*/【?】 #includemain() int x;double y,z;/*SPACE*/scanf(【?】,&x,&y); %d%lf z=2*x*sqrt(y);/*SPACE*/printf(z=【?】,z); %lf【程序改错】功能:实现3行3列矩阵的转置,即行列互换。#include fun(int a3
14、3,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(j=0;jn;j+)printf(%4d,aij);printf(n);for(i=0;in;i+) /*FOUND*/for(j=0;jn;j+) for(j=0;ji;j+) /*FOUND*/aij=t; t=aij;aij=aji; /*FOUND*/ t=aji; aji=t;for(i=0;in;i+)for(j=0;jn;j+)printf(%4d,aij);printf(n
15、);main()int b33;fun(b,3);【程序改错】功能:实现两个字符串的连接。例如:输入dfdfqe和12345时,则输出dfdfqe12345.#include main()char s180,s280;void scat(char s1,char s2);gets(s1);gets(s2);scat(s1,s2);puts(s1);void scat (char s1,char s2)int i=0,j=0; /*FOUND*/while(s1i=0) while(s1i!=0)i+; /*FOUND*/while(s2j=0) while(s2j!=0) /*FOUND*/s2j=s1i; s1i=s2j;i+;j+; /*FOUND*/s2j=0; s1i=0;【程序填空】功能:下面的程序是求1!+3!+5!+n!的和。#include main()long int f,s;int i,j,n; /*SPACE*/【?】; s=0scanf(%d,&n); /*SPACE*/ for(i=1;i=n; 【?】) i+=2 f=1; /*SPACE*/ for(j=1; 【?】;j+) j=i /*SPACE*/【?】; f=f*j s=s+f;printf(n=%d,s=%ldn,n,s);第 14 页