c语言改错题

2018-12-05 13:24

二级C语言《上机改错题》100道:

第一类 第一章至第七章 共36题

10、给定程序modi.c中,函数fun的功能是:计算正整数num的各位上的数字之积,例如,若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。 请改下程序中的错误,使其得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序结构! long fun(long num) { long k;

do { k*=num; num\\=10; } while(num); return (k); }

main(){ long n; …… scanf(\ printf(\

85、文件modi.c中程序的功能是:读入一个整数m,计算如下公式的值。 t = 1 - 1/2 - 1/3 - …… - 1/m

例如,若输入5,则应输出 -0.283333。 double MyLim( int m ) { double t = 1.0; int i;

for( i = 2; i <= m; i++ ) t = 1.0 - 1/t; ; }

main(){ int m;scanf(“%d”&m); prinf(\\n\\nThe result is %lf\\n”); mylim(m); }

98、已知一个数列的前三项分别为0,0,1, 以后的各项都是其相邻的前三项之和。给定程序modi.c中函数fun的功能是:计算并输出该数列前n项的平方根之和sum。n的值通过形参传入。

例如,当n=10时,程序的输出结果应为:23.197745。 fun(int n)

{ double sum,s0,s1,s2,s; int k; sum = 1.0;

if (n <= 2) sum = 0.0;

s0 = 0.0; s1 = 0.0; s2 = 1.0; for(k = 4;k <= n; k++)

{s = s0 + s1 + s2; sum += sqrt(s); s0 = s1; s1 = s2; s2 = s;} return sum }

20、给定程序modi.c中函数fun的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。 例如,当s中的数为:7654321时,t中的数为:7531。 void fun (long s, long t) { long sl=10; *t = s % 10;

while ( s > 0) { s = s/100; *t = s * sl + *t; sl = sl*100; } }

26、给定程序modi.c中函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,

依次构成一个新数放在t中。 例如,当s中的数为:7654321时,t中的数为:642。 void fun (long s, long t)

{ long sl=10; s /= 10; *t = s % 10;

while ( s < 0) { s = s/100; *t = s*sl + *t; sl = sl * 10; } }

5、给定程序modi.c中函数fun的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为:87653142时,t中的数为:7531。 void fun (long s, long *t) { int d; long sl=1; t = 0;

while ( s > 0) { d = s; if (d%2 == 0) { *t = d * sl + *t;sl *= 10; } s /= 10; } }

70、给定程序modi.c中函数fun的功能是:计算n的5次方的值(规定n的值大于2、小于8),通过形参指针传回主函数。并计算该值的个位、十位、百位上数字之和作为函数值返回。例如,7的5次方是16807,其低3位数的和值是15。 int fun( int n ,int *value ) { int d,s,i; d=0; s=1; for(i=1; i<=5; i++) d=d*n; *value=d;

for(i=1; i<=3; i++){ s=s+d; s=s/10; } return s; }

main(){ int n, sum, v; …… sum=fun( n,&v ); ……}

72、给定程序modi.c中函数fun的功能是:统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数:并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字值最大的是8。 int fun(unsigned n, int *zero) { int count=0,max=0,t;

do { t=n; if(t=0) count++; if(max

67、给定程序modi.c中函数fun的功能是:从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是15。程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。 int fun()

{ int i,j,k,sum=0; for(i=0; i<=3; i++) { for(j=1; j<=5; j++) { k=8-i-j;

if(k>=1 && k<=6)

{sum=sum+1; printf(\ }

} return sum;

}

74、给定程序modi.c中函数fun的功能是:根据输入的三个边长(整型值),判断能否构成三角形:构成的是等边三角形,还是等腰三角形。若能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。 int fun(int a,int b,int c)

{ if(a+b>c && b+c>a && a+c>b) { if(a==b && b==c) return 1;

else if(a==b||b==c||a==c) return 2; else return 3; } else return 0; }

75、给定程序modi.c中函数fun的功能是:首先将大写字母转换为对应小写字母;若小写字母为a~u,则将其转换为其后的第5个字母;若小写字母为v~z,使其值减21。转换后的小写字母作为函数值返回。例如,若形参是字母A,则转换为小写字母f;若形参是字母W,则转换为小写字母b。 char fun(char c)

{ if( c>='A' && c<='Z') c=c-32; if(c>='a' && c<='u' ) c=c-5; else if(c>='v'&&c<='z') c=c-21; return c; }

57、给定程序modi.c的功能是:读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。例如,若输入整数:2310,则应输出:2、3、5、7、11。 Isprime(int n);

{ int i,m; m=1; for(i=2;i

if !(n%i) { m=0; break; } return(m); }

60、给定程序modi.c中,函数fun的功能是:实现两个整数的交换。 例如给a和b分别输入:60和65,输出为:a=65 b=60 void fun(int a,b) {int t; t=b; b=a; a=t; } main(){int a,b; …… fun(&a,&b); …… }

96、给定程序modi.c中,函数fun的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数值为4622。 int fun(int k) {int m=0 ,mc=0;

while ((k>=2)&&(mc<10))

{ if ((k=0)||(k=0)) { m=m+k; mc++; } k--; return m; } main(){ printf(\

92、函数fun的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。 int fun(int m) { int i,k;

for (i=m+1;;i++)

{ for(k=2;k

}

43、给定程序modi.c中,函数fun和funx的功能是:用二分法求方程2x^3-4x^2+3x-6=0的一个根,并要求绝对误差不超过0.001。 例如,若给m输入-100,给n输入90,则函数求得的一个根值为2.000。

double funx(double x){ return(2*x*x*x-4*x*x+3*x-6); } double fun(double m,double n) int r;

r=(m+n)/2;

while (fabs(n-m)<0.001) { if(funx(r)*funx(n)<0) m=r; else n=r; r=(m+n)/2; } return r; }

91、给定程序modi.c中,函数fun和funx的功能是:根据整型型参m的值,计算如下公式的值

例如:若m中的值为:5,则应输出:0.536389。 double fun(int m)

{ double y=1.0; nt i; for (i=2;i

33、给定程序modi.c中,函数fun的功能是:根据整型型参m的值,计算如下公式的值: t=1+1/(2*2)+1/(3*3)+……+1/(m*m) 例如:m的值为5,则应输出1.463611 double fun ( int m ) { double y = 1.0 ; int i; for(i = 2 ; i < m ; i++) y += 1 / (i * i) ; return( y ) ; }

main( )

{ int n = 5 ; printf( \

17、给定程序modi.c中,函数fun的功能是:将长整型数中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为:87653142时,t中的数为:8642。 void fun(long s,long *t) { int d; long s1=1; *t=0;

while (s>0){d=s; if (d%2=0) { *t=d*s1+*t; s1*=10;} s\\=10; } }

4、给定程序modi.c中函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。 例如,若给num1和num2分别输入49和21,则输出的最大公约数为7;若给num1和num2分别输入27和81,则输出的最大公约数为27。 int fun(int a,int b) { int r,t;

if(a

r=a%b;

while(r!=0) { a=b; b=r; r=a%b;} return(a); }

22、给定程序modi.c中,函数fun的功能是:求三个数的最小公倍数。 例如,给变量x1、x2、x3分别输入15 11 2,则输出结果应当是:330。 fun(int x, y, z) { int j,t,n,m; j=0;

t=j%x; m=j%y; n=j%z;

while(t!=0||m!=0||n!=0) {j=j+1; t=j%x; m=t%y; n=j%z; } return i; }

47、给定程序modi.c中,函数fun的功能是:计算n! 例如,给n输入5,则输出120.000000。 double fun(int n) { double result=1.0; if n==0 return 1.0;

while(n>1 && n<170) result*=n--; return result; }

21、给定程序modi.c中函数fun的功能是:计算S=f(-n)+f(-n+1)+?+f(0)+f(1)+f(2)+?+f(n)的值。例如,当n为5时,函数值应为:10.407143。f(x)函数定义如下: f(double x)

{ if(x==0.0||x==2.0) return 0.0; else if (x<0.0) return (x-1)/(x-2); else return (x+1)/(x-2); }

double fun (int n) { int i;double s=0.0,y;

for (i=-n;i<=n;i++) {y=f(1.0*i); s+=y;} return s }

main(){ printf(\ } 18、给定程序modi.c中函数fun的功能是:计算并输出high以内最大的10个素数之和。high的值由主函数传给fun函数。若high的值为100,则函数的值为732。 int fun( int high )

{ int sum = 0, n=0, j, yes; while ((high >= 2) && (n < 10) { yes = 1;

for (j=2; j<=high/2; j++ )

if (high % j ==0 ) {yes=0; break } if (yes) { sum +=high; n++; } high--;


c语言改错题.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:社会主义核心价值观之一富强教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: