C语言国二改错与编程.doc_第1页
C语言国二改错与编程.doc_第2页
C语言国二改错与编程.doc_第3页
C语言国二改错与编程.doc_第4页
C语言国二改错与编程.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

一、 改错题:1、给定程序modi.c中fun函数的功能是:根据整型参数m,计算如下公式的值。 y=1+1/根号(2)+1/根号(3)+1/根号(n) 例如,若m中的值为:5,则应输出:3.231671 请改正程序中的错误,或在横线处填上适当的内容并把横线删除,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include /*found*/_double fun(int m) int i;double t,y=0; for (i=1;i=m;i+) t=1/sqrt(i); y=y+t; return y;main() int m;double y; clrscr(); printf(Enter m: );scanf(%d,&m); printf(ny=%fn,fun(m);2、给定程序modi.c中,函数fun的功能是:求出a所指数组中最大数和次最大数(规定最大数和次最大数不在a0和a1中,依次和a0、a1中的数对调。 例如数组中原有的数为:7、10、12、0、3、6、9、11、5、8, 输出的结果为:12、11、7、0、3、6、9、10、5、8。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #include #define N 20void fun(int *a,int n)int k,m1,m2,max1,max2,t; max1=max2=-32768;m1=m2=0; for (k=0;kmax1) max2=max1;m2=m1; max1=ak;m1=k; else if (akmax2) max2=ak;m2=k;/*found*/t=a0;am1=a0;am1=t;/*found*/t=a1;am2=a1;am2=t;main() int x,bN=7,10,12,0,3,6,9,11,5,8,n=10,i;clrscr(); for (i=0;in;i+) printf(%d ,bi);printf(n); fun(b,n); for(i=0;in;i+) printf(%d ,bi);printf(n);3、给定程序中,函数fun的功能是:计算输出high以内最大的10个素数之和。high由主函数传给fun函数。 若high的值为:100,则函数的值为:732。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #include #include int fun(int high)int sum=0,n=0,j,yes;/*found*/ while (high=2)&(n10) yes=1; for (j=2;j=high/2;j+)/*found*/ if (high%j=0)yes=0;break if (yes) sum+=high;n+; high-;return sum;main()clrscr(); printf(%dn,fun(100);4、给定程序中,函数fun的功能是:分别统计字符串中大写字母和小写字母的个数。 例如,给字符串s输入:AAaaBBb123CCccccd,则应输出结果:upper=6,lower=8。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #include /*found*/void fun(char *s,int a,int b) while(*s) if (*s=A & *s=a & *s1) 例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include long fun(int n) int c;/*found*/ if (n=1) c=10; else c=fun(n-1)+2; return(c);main() int n;clrscr(); printf(Enter n: );scanf(%d,&n); printf(The result:%dnn,fun(n);6、给定程序modi.c中,函数fun的功能是:给定n个实数,输出平均值,并统计在平均值以上(含平均值)的实际个数。 例如,n=8时输入:193.199、195.673、195.757、196.051、196.092、196.596、196.579、196.763所得平均值为:195.838745,在平均值以上的实数个数应为:5 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #include int fun(float x,int n)/*found*/ int j,c=0;float xa=0.0; for(j=0;jn;j+) xa+=xj/n; printf(ave=%fn,xa); for(j=0;jxa) c+; return c;main()float x100=193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763; clrscr(); printf(%dn,fun(x,8);7、给定程序modi.c中,函数fun的功能是:输入两个双精度数,函数返回它们的平方和的平方根值。 例如:输入:22.936和14.121,输出为:y=26.934415。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #include #include /*found*/double fun(double *a,*b) double c;/*found*/ c=sqr(a*a+b*b); return c;main() double a,b,y; clrscr(); printf(Enter a,b: ); scanf(%lf%lf,&a,&b); y=fun(&a,&b); printf(y=%fn,y);8、给定程序modi.c中,函数fun的功能是:将字符串tt中的小写字母改为对应的大写字母,其它字符不变。 例如,若输入Ab,cD,则输出AB,CD。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #include #include char *fun(char tt) int i; for(i=0;tti;i+)/*found*/ if(a=tti)|(tti=z)/*found*/ tti+=32; return(tt);main() int i; char tt81; clrscr(); printf(nPlease enter a string:); gets(tt); printf(nThe result string is:n%s,fun(tt);9、给定程序modi.c中,函数fun的功能是:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积。 例如输入圆的半径值:19.527 输出为:s=598.950017。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #include /*found*/fun (r)/*found*/ return 1/2*3.14159*r*r;main() float x; clrscr(); printf(Enter x: );scanf(%f,&x); printf(s=%fn,fun(x);10、给定程序modi.c中,函数fun的功能是:求出数组中最大数和次最大数,并把最大数和a0中的数对调、次最大数和a1中的数对调。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #include #define N 20void fun(int *a,int n) int i,m,t,k; for (i=0;i2;i+) /*found*/ m=0; for (k=i;kam) k=m; t=ai;ai=am;am=t; main() int x,bN=11,5,12,0,3,6,9,7,10,8,n=10,i; clrscr(); for (i=0;in;i+) printf(%d ,bi); printf(n); fun(b,n); for(i=0;in;i+) printf(%d ,bi); printf(n);11、给定程序modi.c中,在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列程序中,函数fun的功能是:计算数组元素中值为正数的平均值(不包括0)。 例如:数组中元素中的值依次为:39,-47,21,2,-8,15,0,则程序的运行结果为:19.250000。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #include double fun(int x)/*found*/ int sum=0.0; int c=0,i=0; while (xi!=0) if (xi0) sum+=xi;c+; i+; /*found*/ sum=c; return sum;main() int x1000;int i=0; clrscr(); printf(nPlease enter some data (end with 0):); do scanf(%d,&xi); while (xi+!=0); printf(%fn,fun(x);12、给定程序modi.c中,fun函数的功能是:读入一个整数m,计算如下公式的值。 1 1 1 1 t = 1 - - - - - 2 3 4 m 例如,若输入5,则应输出-0.283333。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #include double fun(int m) double t=1.0; int i; for(i=2;i=m;i+)/*found*/ t=1.0-1/i;/*found*/ _;main() int m; clrscr(); printf(nPlease enter 1 integer numbers:n); scanf(%d,&m); printf(nnThe result is %lfn,fun(m);13、给定程序modi.c中,fun函数的功能是:判断两个指针所指存储单元中的值的符号是否相同;若相同函数返回1,否则返回0。这两个存储单元中的值都不为0。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #include /*found*/fun(double *a,*b)/*found*/ if(a*b0.0) return 1; else return 0;main() double n,m; clrscr(); printf(Enter n,m:);scanf(%lf%lf,&n,&m); printf(nThe value of function is:%dn,fun(&n,&m);14、给定程序modi.c中,函数fun的功能是:求出以下分数序列的前n项之和。 1 2 3 5 8 13 , 2 3 5 8 13 21 和值通过函数值返回main函数。 例如,若n的值为:5,则应输出:3.007051。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include double fun(int n) int i; double t,s,a,b,c;/*found*/ s=1; a=1;b=2; for(i=0;in;i+) t=a/b; s=s+t;/*found*/ _; a=b; b=c; return s;main() int n; printf(Enter n: );scanf(%d,&n); printf(nThe result: %f n,fun(n);15、给定程序modi.c中,函数fun的功能是:计算正整数num的各位上的数字之积,例如,若输入:445,则输出应该是:80。若输入:202,则输出应该是:0。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #include long fun(long num) /*found*/ long k; do k*=num%10;/*found*/ num=10; while(num); return (k);main() long n; clrscr(); printf(Please enter a number:);scanf(%ld,&n); printf(n%ldn,fun(n);16、给定程序modi.c中,函数fun的功能是:判断一个整数m是否是素数,若是返回1,否则返回0。 在main()函数中,若fun返回1,输出YES,若fun返回0,输出NO!。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #include int fun(int m) int k=2; while (k=m&(m%k)/*found*/ k+/*found*/ if (m=k) return 1; else return 0;main()int n; clrscr(); printf(nPlease enter n:);scanf( %d,&n); if (fun(n) printf(YESn); else printf(NO!n);17、给定程序modi.c中,函数fun的功能是:求出以下分数序列的前n项之和。和值通过函数值返回main函数。 2 3 5 8 13 21 , 1 2 3 5 8 13 例如,若n=5,则应输出:8.391667。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #include /*found*/fun( int n) int a,b,c,k;double s; s=0.0;a=2;b=1; for(k=1;k=n;k+) /*found*/ s=s+(Double)a/b; c=a;a=a+b;b=c; return s;main() int n=5; clrscr(); printf(nThe value of function is:%lfn,fun(n);18、给定程序modi.c中fun函数的功能是:计算1+2+3+n的和值。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include /*found*/fun (int n) double t;/*found*/ if (n=0) return(1); else t=fun(n-1)+n; return t;main() int n; printf(Enter n: ); scanf(%d,&n); printf(ns=%fn,fun(n);19、给定程序modi.c中,函数fun的功能是:把n个数,按由大到小排序。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #include #include #define N 20/*found*/void fun(int a,int n) int i,j,k,t; for(j=0;jn-1;j+) k=j; for(i=j+1;in;i+)/*found*/ if(aiak) k=i; t=aj;aj=ak;ak=t; main() int aN,i; clrscr(); for(i=0;iN;i+) ai=rand()%100; printf(# before sort #nn); for (i=0;iN;i+) printf(i+1)%10 ? %6d:%6dn,ai); fun(a,N); printf(* after sort *nn); for (i=0;iN;i+) printf(i+1)%10 ? %6d:%6dn,ai); printf(n);20、给定程序modi.c中,函数fun的功能是:求两数平方根之和,作为函数值返回。 例如,输入12和20,输出结果是:y=7.936238。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #include /*found*/double fun(double *a,*b) double c;/*found*/ c=sqr(a)+sqr(b); return c;main() double a,b,y; clrscr(); printf(Enter a&b :);scanf(%lf%lf,&a,&b); y=fun(&a,&b); printf(y=%fn,y);21、给定程序modi.c中,函数fun的功能是:把主函数中输入的3个数,最大的放在a中,最小的放在c中。 例如,输入的数为:55 12 34, 输出结果应当是:a=55.0,b=34.0,c=12.0。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include void fun(float *p,float *q,float *s) /*found*/ float *k; if (*p*q) k=*p;*p=*q;*q=k;/*found*/ if (*s*p) k=*s;*s=*p;*p=k; if (*q*s) k=*q;*q=*s;*s=k;main() float a,b,c; printf(Input a b c: ); scanf(%f%f%f,&a,&b,&c); printf(a=%4.1f,b=%4.1f,c=%4.1fnn,a,b,c); fun(&a,&b,&c); printf(a=%4.1f,b=%4.1f,c=%4.1fnn,a,b,c);22、给定程序modi.c中函数 fun 的功能是:输入两个双精度数,函数返回它们的平方根的和。例如输入:22.993612 和84.57629812,输出为:y = 13.991709。 请改正 fun 函数中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!#include #include #include /*found*/double fun(double *a, *b) double c;/*found*/ c = sqrt( a ) + sqrt( b ); return c;main ( ) double a, b, y; clrscr( ); printf ( Enter a, b : ); scanf (%lf%lf, &a, &b ); y = fun (&a, &b); printf (y = %f n, y );23、给定程序modi.c中函数 fun 的功能是:实现两个整数的交换。 例如给a和b分别输入:60和65,则输出为:a = 65 b = 60。 请改正 fun 函数中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #include /*found*/void fun ( int a, b ) int t;/*found*/ t = b; b = a ; a = t;main ( ) int a, b; clrscr( ); printf ( Enter a , b : ); scanf ( %d%d, &a, &b ); fun ( &a , &b ) ; printf ( a = %d b = %dn , a, b );24、文件modi.c中程序的功能是:读入一个整数m,计算如下公式的值。 t = 1 - 1/2 - 1/3 - - 1/m 例如,若输入5,则应输出 -0.283333。 请改正程序中的错误,使它能计算出正确的结果。 注意:不得增行或删行,也不得更改程序的结构!#include #include double MyLim( int m ) double t = 1.0; int i;/*found*/ for( i = 2; i = m; i+ ) t = 1.0 -1.0/t; return( t );main() int m ; clrscr(); printf( nPlease enter 1 integer numbers:n );/*found*/ scanf( %d &m ) printf( nnThe result is %lfn, MyLim( m ) );25、给定程序modi.c中函数 fun 的功能是:根据整型形参 m,计算如下公式的值。 1 1 1 1 y = 1 + + + + + 2*2 3*3 4*4 m*m 例如,若 m = 5,则应输出: 1.463611。 请改正 fun 函数中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!#include #include double fun ( int m ) double y = 1.0 ; int i;/*found*/ for(i = 2 ; i m ; i+)/*found*/ y += 1 / (i * i) ; return( y ) ;main( ) int n = 5 ; clrscr( ) ; printf( nThe result is %lfn, fun ( n ) ) ;26、给定程序modi.c中函数 fun 的功能是:根据整型形参 m 的值,计算如下公式的值。 1 1 1 t = 1 - - - - 2*2 3*3 m*m 例如,若 m = 5,则应输出 0.536389 。 请改正 fun 函数中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!#include #include double fun ( int m ) double y = 1.0 ; int i ;/*found*/ for(i = 2 ; i m ; i+)/*found*/ y -= 1 /(i * i) ; return( y ) ;main( ) int n = 5 ; clrscr( ) ; printf( nThe result is %lfn, fun ( n ) ) ;27、给定程序modi.c中 fun 函数的功能是:求出以下分数序列的前 n 项之和。 2 3 5 8 13 21 , , , , , , 1 2 3 5 8 13和值通过函数值返回 main ( )函数。 例如,若 n = 5,则应输出: 8.391667。 请改正函数 fun 中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!#include #include /*found*/fun ( n )int n ; int a = 2, b = 1, c, k ; double s=0.0 ; for ( k = 1; k = n; k+ ) s = s + 1.0 * a / b ;/*found*/ c = a; a += b; b += c; return(s) ;main( ) int n = 5 ; clrscr( ) ; printf( nThe value of function is: %lfn, fun ( n ) ) ;28、给定程序modi.c中函数 fun 的功能是:求k!(k13)并通过函数名传回主函数。 例如:若k = 10,则应输出:3628800。 请改正 fun 函数中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!#include #include long fun ( int k)/*found*/ if k 0 return (k*fun(k-1);/*found*/ else if ( k=0 ) return 1L;main() int k = 10 ; clrscr() ; printf(%d!=%ldn, k, fun ( k ) ;29、给定程序modi.c中函数 fun 的功能是:计算n!。 例如,给n输入5,则输出120.000000。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #include double fun ( int n ) double result = 1.0 ;/*found*/ if n = = 0 return 1.0 ; while( n 1 & n 170 )/*found*/ result *= n- return result ;main ( ) int n ; printf(Input N:) ; scanf(%d, &n) ; printf(nn%d! =%lfnn, n, fun(n) ;30、给定程序modi.c中函数fun的功能是:根据输入的三个边长(整型值),判断能否构成三角形: 构成的是等边三角形,还是等腰三角形。若能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #includeint fun(int a,int b,int c) if(a+bc & b+ca & a+cb) if(a=b & b=c)/*found*/ return 1; else if(a=b|b=c|a=c) return 2;/*found*/ else return 3; else return 0;main() int a,b,c,shape; printf(nInput a,b,c: ); scanf(%d%d%d,&a,&b,&c); printf(na=%d, b=%d, c=%dn,a,b,c); shape =fun(a,b,c); printf(nnThe shape : %dn,shape);31、给定程序modi.c中,fun函数的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之积。 请改正程序中的错误,或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include void fun() int a33,sum; int i,j;/*

温馨提示

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

评论

0/150

提交评论