试卷编号:10766 所属语言:C语言
试卷方案:TC_150604083824 试卷总分:440分 共有题型:1种
一、程序改错 共44题 (共计440分)
第1题 (10.0分) 题号:360 难度:中 第2章 /*------------------------------------------------------ 【程序改错】
--------------------------------------------------------
功能:计算正整数num的各位上的数字之积。 例如:若输入:252,则输出应该是:20。 若输入:202,则输出应该是:0。
------------------------------------------------------*/
#include
long fun (long num) {
/**********FOUND**********/ long k=1 do {
k*=num ;
/**********FOUND**********/ num\\=10;
/**********FOUND**********/ }while(!num) ; return (k) ; } main( ) {
long n ;
printf(\ printf(\} 答案:
=======(答案1)======= long k=1;
=======(答案2)======= num/=10;
=======(答案3)======= } while(num) ; =========或========= }while(num!=0);
第2题 (10.0分) 题号:554 难度:中 第2章 /*------------------------------------------------------- 【程序改错】
---------------------------------------------------------
题目:以下程序输入一个整数n,计算累加和(1+2+3+…+n)并输出。请找出错误并改正。 如输入 5↙
输出:The sum from 1 to 5 is 15
-------------------------------------------------------*/ #include
{
/***********FOUND***********/ int i, n, sum; /***********FOUND***********/ scanf( \
for ( i = 0; i <= n; i++ ); /***********FOUND***********/
sum += n; printf( \} 答案:
=======(答案1)======= int i, n, sum=0;
=======(答案2)======= scanf( \
=======(答案3)======= sum += i;
第3题 (10.0分) 题号:551 难度:中 第1章 /*------------------------------------------------------- 【程序改错】
---------------------------------------------------------
题目:下列程序从键盘输入一个数n,求1~n之和并输出。请纠正程序中存在错误,使程 序实现其功能。
如输入 5↙
输出:The sum from 1 to 5 is 15
-------------------------------------------------------*/
#include
int i=1,n;
/***********FOUND***********/ float sum;
/***********FOUND***********/ scanf(\
/***********FOUND***********/ for(;i printf(\ } 答案: =======(答案1)======= float sum=0; =======(答案2)======= scanf(\ =======(答案3)======= for(;i<=n;i++) 第4题 (10.0分) 题号:22 难度:易 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:计算数组元素中值为正数的平均值(不包括0)。 例如:数组中元素的值依次为39,-47,21,2,-8,15,0, 则程序的运行结果为19.250000。 ------------------------------------------------------*/ #include /**********FOUND**********/ int sum=0.0; int c=0,i=0; /**********FOUND**********/ while(s[i] =0) { if (s[i]>0) { sum+=s[i]; c++; } i++; } /**********FOUND**********/ sum\\=c; /**********FOUND**********/ return c; } main() { int x[1000];int i=0; do { scanf(\ while(x[i++]!=0); printf(\} 答案: =======(答案1)======= double sum=0.0; =========或========= double sum=0; =======(答案2)======= while( s[i] != 0 ) =========或========= while(!s[i]==0) =========或========= while(!0==s[i]) =========或========= while(s[i]) =======(答案3)======= sum/=c; =========或========= sum=sum/c; =======(答案4)======= return sum; =========或========= return (sum); 第5题 (10.0分) 题号:11 难度:中 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:用下面的和式求圆周率的近似值。直到最后一项的绝对值 小于等于0.0001。 π 1 1 1 — = 1 - — + — - — + ... 4 3 5 7 ------------------------------------------------------*/ #include /**********FOUND**********/ #include