试卷编号:10578所属语言:C语言试卷方案:TC_150522153552试卷总分:440分共有题型:1种一、程序改错共44题(共计440分)第1题(10.0分)题号:380 难度:中第2章/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:输入两个双精度数,函数返回它们的平方和的平方根值。
例如:输入:22.936 和 14.121,输出为:y = 26.934415。
------------------------------------------------------*/#include <stdio.h>#include <conio.h>#include <math.h>/**********FOUND**********/double fun (double *a, *b)//double fun(double *a,double *b) {double c;/**********FOUND**********/c = sqr(a*a + b*b);//sqrt/**********FOUND**********/return *c;}main ( ){double a, b, y;printf ( "Enter a, b : ");scanf ("%lf%lf", &a, &b );y = fun (&a, &b);printf ("y = %f \n", y );}第2题(10.0分)题号:438 难度:中第2章/*------------------------------------------------【程序改错】--------------------------------------------------功能:编写函数fun,求两个整数的最小公倍数,然后用主函数main()调用这个函数并输出结果,两个整数由键盘输入。
------------------------------------------------*/#include <stdio.h>int fun(int m,int n){int i;/**********FOUND**********/if (m=n)//if(m==n){i=m;m=n;n=i;}for(i=m;i<=m*n;i+=m)/**********FOUND**********/if(i%n==1)//if(i%n==0)return(i);return 0;}main(){unsigned int m,n,q;printf("m,n=");scanf("%d,%d",&m,&n);/**********FOUND**********/q==fun(m,n);//q=fun(m,n);printf("p(%d,%d)=%d",m,n,q);}第3题(10.0分)题号:404 难度:易第2章/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:编写函数求2!+4!+6!+8!+10+12!+14!。
------------------------------------------------------*/#include <stdio.h>long sum(int n){/**********FOUND**********/int i,j//int i,j;long t,s=0;/**********FOUND**********/for(i=2;i<=n;i++)//for(i=2;i<=n;i+=2){t=1;for(j=1;j<=i;j++)t=t*j;s=s+t;}/**********FOUND**********/return(t);//return (s);}main(){printf("this sum=%ld\n",sum(14));}第4题(10.0分)题号:360 难度:中第2章/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:计算正整数num的各位上的数字之积。
例如:若输入:252,则输出应该是:20。
若输入:202,则输出应该是:0。
------------------------------------------------------*/#include <stdio.h>#include <conio.h>long fun (long num){/**********FOUND**********/long k=1//long k=1;do{k*=num%10 ;/**********FOUND**********/num\=10;//num/=10;/**********FOUND**********/}while(!num) ;//while(num)return (k) ;}main( ){long n ;printf("Please enter a number:") ; scanf("%ld",&n) ;printf("\n%ld\n",fun(n)) ;}第5题(10.0分)题号:413 难度:易第2章/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:读取7个数(1-50)的整数值,每读取一个值,程序打印出该值个数的*。
------------------------------------------------------*/#include <stdio.h>main(){int i,a,n=1;/**********FOUND**********/while(n<7)//while(n<=7){do{scanf("%d",&a);}/**********FOUND**********/while(a<1&&a>50);//while(a>=1&&a<=50)/**********FOUND**********/for(i=0;i<=a;i++)//for(i=1;i<=a;i++)printf("*");printf("\n");n++;}}第6题(10.0分)题号:553 难度:中第1章/*-------------------------------------------------------【程序改错】---------------------------------------------------------题目:列程序的功能为:已知圆锥半径r和高h,计算圆锥体积v。
请纠正程序中存在错误,使程序实现其功能。
-------------------------------------------------------*/#include <stdio.h>main(){/***********FOUND***********/float r=10,h=5;//float r=10,h=5,v;/***********FOUND***********/v=1/3*3.14159*r2*h;// v=1.0/3*3.14159*r*r*h;/***********FOUND***********/printf("v=%d\n",v);// printf("v=%f\n",v);}第7题(10.0分)题号:399 难度:易第2章/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:编写函数fun求20以内所有5的倍数之积。
------------------------------------------------------*/#include <stdio.h>#define N 20int fun(int m){/**********FOUND**********/int s=0,i;//int s=1,i;for(i=1;i<N;i++)/**********FOUND**********/if(i%m=0)//if(i%m==0)/**********FOUND**********/s=*i;//s*=i;return s;}main(){int sum;sum=fun(5);printf("%d以内所有%d的倍数之积为: %d\n",N,5,sum);}第8题(10.0分)题号:397 难度:中第2章/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:输入两个实数,按代数值由小到大输出它们,并在fun() 函数中输出。
(输出的数据都保留2位小数)------------------------------------------------------*/#include <stdio.h>fun(){/**********FOUND**********/float t// float t;float a, b ;scanf("%f %f",&a,&b);/**********FOUND**********/if(a<b)// if(a>b){t=a;a=b;b=t;}/**********FOUND**********/printf("%5.2f ,%5.2f\n",&a,&b);// printf("%5.2f ,%5.2f\n",a,b); }main(){fun();}第9题(10.0分)题号:28 难度:中第1章/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:实现两个字符串的连接。