程序改错
更新时间:2023-09-26 14:55:01 阅读量: 综合文库 文档下载
试卷编号: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 { int i=1; /**********FOUND**********/ int s=0,t=1,p=1; /**********FOUND**********/ while(fabs(t)<=1e-4) { s=s+t; p=-p; i=i+2; t=p/i; } /**********FOUND**********/ printf(\} main() { fun(); } 答案: =======(答案1)======= #include \=========或========= #include =======(答案2)======= float s=0,t=1,p=1; =========或========= float s=0,p=1,t=1; =========或========= float p=1,s=0,t=1; =========或========= float p=1,t=1,s=0; =========或========= float t=1,p=1,s=0; =========或========= float t=1,s=0,p=1; =======(答案3)======= while(fabs(t)>1e-4) =========或========= while(0.0001 =======(答案4)======= printf(\ 第6题 (10.0分) 题号:13 难度:中 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:求1到20的阶乘的和。 ------------------------------------------------------*/ #include int n,j; float s=0.0,t=1.0; for(n=1;n<=20;n++) { /**********FOUND**********/ s=1; for(j=1;j<=n;j++) /**********FOUND**********/ t=t*n; /**********FOUND**********/ s+t=s; } /**********FOUND**********/ printf(\} main() { fun(); } 答案: =======(答案1)======= t=1; =========或========= t=1.0; =======(答案2)======= t= t * j ; =========或========= t*=j; =========或========= t=j*t; =======(答案3)======= s= s + t ; =========或========= s+=t; =========或========= s=t+s; =======(答案4)======= printf(\ 第7题 (10.0分) 题号:444 难度:易 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:编写函数fun计算下列分段函数的值: x*20 x<0且x≠-3 f(x)= sin(x) 0≤x<10且x≠2及x≠3 x*x+x-1 其它 ------------------------------------------------------*/ #include double fun(double x) { /**********FOUND**********/ double y /**********FOUND**********/ if (x<0 || x!=-3.0) y=x*20; else if(x>=0 && x<10.0 && x!=2.0 && x!=3.0) y=sin(x); else y=x*x+x-1; /**********FOUND**********/ return x; } main() { double x,f; printf(\ scanf(\ f=fun(x); printf(\} 答案: =======(答案1)======= double y; =======(答案2)======= if (x<0 && x!=-3.0) =======(答案3)======= return y; 第8题 (10.0分) 题号:380 难度:中 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:输入两个双精度数,函数返回它们的平方和的平方根值。 例如:输入:22.936 和 14.121,输出为:y = 26.934415。 ------------------------------------------------------*/ #include /**********FOUND**********/ double fun (double *a, *b) { double c; /**********FOUND**********/ c = sqr(a*a + b*b); /**********FOUND**********/ return *c; } main ( ) { double a, b, y; printf ( \ scanf (\ y = fun (&a, &b); printf (\} 答案: =======(答案1)======= double fun (double *a, double *b) =======(答案2)======= c = sqrt(*a * *a + *b * *b); =======(答案3)======= return c; 第9题 (10.0分) 题号:4 难度:易 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:在一个已按升序排列的数组中插入一个数,插入后,数 组元素仍按升序排列。 ------------------------------------------------------*/ #include int i,number,a[N]={1,2,4,6,8,9,12,15,149,156}; printf(\ /**********FOUND**********/ scanf(\ printf(\ for(i=0;i /**********FOUND**********/ for(i=N-1;i>=0;i--) if(number<=a[i]) /**********FOUND**********/ a[i]=a[i-1]; else { a[i+1]=number; /**********FOUND**********/ exit; } if(number =======(答案1)======= scanf(\ =======(答案2)======= for(i=N-2;i>=0;i--) =========或========= for(i=N-2;0<=i;i--) =======(答案3)======= a[ i + 1 ]=a[i]; =======(答案4)======= break; 第10题 (10.0分) 题号:400 难度:中 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:编写函数fun求20以内所有5的倍数之积。 ------------------------------------------------------*/ #define N 20 #include int fun(int m) { /**********FOUND**********/ int s=0,i; for(i=1;i /**********FOUND**********/ if(i%m=0) /**********FOUND**********/ s=*i; return s; } main() { int sum; sum=fun(5); printf(\以内所有%d的倍数之积为: %d\\n\} 答案: =======(答案1)======= int s=1,i; =======(答案2)======= if(i%m==0) =======(答案3)======= s*=i; 第11题 (10.0分) 题号:397 难度:中 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:输入两个实数,按代数值由小到大输出它们,并在fun() 函数中输出。(输出的数据都保留2位小数) ------------------------------------------------------*/ #include /**********FOUND**********/ float t float a, b ; scanf(\ /**********FOUND**********/ if(a /**********FOUND**********/ printf(\} main() { fun(); } 答案: =======(答案1)======= float t; =======(答案2)======= if(a>b) =======(答案3)======= printf(\ 第12题 (10.0分) 题号:21 难度:中 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:求出两个非零正整数的最大公约数,并作为函数值返回。 例如:若给num1和num2分别输入49和21,则输出的最大公约数为7。 ------------------------------------------------------*/ #include int r,t; if(a /**********FOUND**********/ b=a; /**********FOUND**********/ a=t; } r=a%b; while(r!=0) { a=b; b=r; /**********FOUND**********/ r=a/b; } /**********FOUND**********/ return a; } main() { int num1,num2,a; scanf(\ a=fun(num1,num2); printf(\} 答案: =======(答案1)======= a=b; =======(答案2)======= b=t; =======(答案3)======= r=a%b; =======(答案4)======= return b; =========或========= return (b); =========或========= return(b); 第13题 (10.0分) 题号:3 难度:难 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:用起泡法对10个整数从小到大排序。 ------------------------------------------------------*/ #include /**********FOUND**********/ void sort(int x,int n) { int i,j,t; for(i=0;i /**********FOUND**********/ for(j=0;j /**********FOUND**********/ if(x[i]>x[i+1]) { t=x[j]; x[j]=x[j+1]; x[j+1]=t; } } main() { int i,n,a[100]; printf(\ scanf(\ for(i=0;i printf(\ for(i=0;i<=n-1;i++) printf(\ printf(\} 答案: =======(答案1)======= void sort(int *x,int n) =========或========= void sort(int x[],int n) =======(答案2)======= for(j=0;j< n -1 -i ;j++) =========或========= for(j=0; n -1 -i >j;j++) =========或========= for(j=0;j =======(答案3)======= if(x[j]>x[ j + 1 ]) =========或========= if(x[ j + 1] =======(答案4)======= sort(a,n); 第14题 (10.0分) 题号:253 难度:易 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:以下程序把两个数按由大到小的顺序输出来. ------------------------------------------------------*/ #include /***********FOUND***********/ swap( int *p1,*p2) { int p; p=*p1; *p1=*p2; *p2=p; } main( ) { int a,b, *p,*q; printf(\ /***********FOUND***********/ scanf(\ p=&a; q=&b; if(a printf(\ /***********FOUND***********/ printf(\} 答案: =======(答案1)======= swap( int *p1,int *p2) =========或========= void swap( int *p1,int *p2) =======(答案2)======= scanf(\ =======(答案3)======= printf(\=========或========= printf(\ 第15题 (10.0分) 题号:23 难度:中 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输 出主对角线上的元素之和sum。 ------------------------------------------------------*/ #include int a[3][3],sum; int i,j; /**********FOUND**********/ a=0; for(i=0;i<3;i++) for(j=0;j<3;j++) /**********FOUND**********/ scanf(\ for(i=0;i<3;i++) /**********FOUND**********/ sum=sum+a[i][j]; /**********FOUND**********/ printf(\} main() { fun(); } 答案: =======(答案1)======= sum=0; =======(答案2)======= scanf(\ =======(答案3)======= sum= sum + a[i][i] ; =========或========= sum+=a[i][i]; =======(答案4)======= printf(\ 第16题 (10.0分) 题号:10 难度:中 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:判断m是否为素数,若是返回1,否则返回0。 ------------------------------------------------------*/ #include /**********FOUND**********/ void fun( int n) { int i,k=1; if(m<=1) k=0; /**********FOUND**********/ for(i=1;i /**********FOUND**********/ if(m%i=0) k=0; /**********FOUND**********/ return m; } void main() { int m,k=0; for(m=1;m<100;m++) if(fun(m)==1) { printf(\ if(k%5==0) printf(\ } } 答案: =======(答案1)======= int fun( int m) =========或========= fun( int m) =======(答案2)======= for(i=2;i =======(答案3)======= if( m%i == 0 ) k=0; =======(答案4)======= return k; 第17题 (10.0分) 题号:31 难度:易 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:从键盘输入十个学生的成绩,统计最高分,最低分和平均分。 max代表最高分,min代表最低分,avg代表平均分。 ------------------------------------------------------*/ #include /***********FOUND***********/ float a[8],min,max,avg; printf(\ for(i=0;i<=9;i++) { printf(\ /***********FOUND***********/ scanf(\ } /***********FOUND***********/ max=min=avg=a[1]; d=x0/10; e=x; /**********FOUND**********/ if (a==0) printf(\ else if (b!=0) printf(\ else if (c!=0) printf(\ else if (d!=0) printf(\ else if (e!=0) printf(\} 答案: =======(答案1)======= long a,b,c,d,e,x; =======(答案2)======= b=x000/1000; =======(答案3)======= if (a!=0) =========或========= if (!a) 第38题 (10.0分) 题号:410 难度:易 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:输入一行字符,分别统计出其中英文字母、空格、数字和 其它字符的个数。 ------------------------------------------------------*/ #include char c; int letters=0,space=0,digit=0,others=0; printf(\ /**********FOUND**********/ while((c=getchar())=='\\n') { /**********FOUND**********/ if(c>='a'&&c<='z'&&c>='A'&&c<='Z') letters++; /**********FOUND**********/ else if(c=!' ') space++; else if(c>='0'&&c<='9') digit++; else others++; } printf(\ space,digit,others); } 答案: =======(答案1)======= while((c=getchar())!='\\n') =======(答案2)======= if( c>='a'&&c<='z' || c>='A'&&c<='Z' ) =========或========= if( c<='z'&&c>='a' || c>='A'&&c<='Z' ) =========或========= if( c <= 'z' && c >= 'a' || c >= 'A' && c<='Z' ) =======(答案3)======= else if(c==' ') 第39题 (10.0分) 题号:412 难度:难 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半, 还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉 一半,又多吃了一个。以后每天早上都吃了前一天剩下的一 半零一个。到第10天早上想再吃时,见只剩下一个桃子了。 求第一天共摘了多少。 ------------------------------------------------------*/ #include int day,x1,x2; day=9; /**********FOUND**********/ x2==1; while(day>0) { /**********FOUND**********/ x1=(x2+1)/2; x2=x1; /**********FOUND**********/ day++; } printf(\} 答案: =======(答案1)======= x2=1; =======(答案2)======= x1= ( x2 + 1 ) * 2 ; =======(答案3)======= day--; =========或========= day-=1; =========或========= day=day-1; 第40题 (10.0分) 题号:439 难度:易 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:求100以内(包括100)的偶数之和. ------------------------------------------------------*/ #include /**********FOUND**********/ int i,sum=1; /**********FOUND**********/ for(i=2;i<=100;i+=1) sum+=i; /**********FOUND**********/ printf(\} 答案: =======(答案1)======= int i,sum=0; =======(答案2)======= for(i=2;i<=100;i+=2) =======(答案3)======= printf(\ 第41题 (10.0分) 题号:404 难度:易 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:编写函数求2!+4!+6!+8!+10+12!+14!。 ------------------------------------------------------*/ #include long sum(int n) { /**********FOUND**********/ int i,j long t,s=0; /**********FOUND**********/ for(i=2;i<=n;i++) { t=1; for(j=1;j<=i;j++) t=t*j; s=s+t; } /**********FOUND**********/ return(t); } main() { printf(\} 答案: =======(答案1)======= int i,j; =======(答案2)======= for(i=2;i<=n;i=i+2) =========或========= for(i=2;i<=n;i+=2) =========或========= for(i=2;i<=n;i++,i++) =======(答案3)======= return(s); 第42题 (10.0分) 题号:553 难度:中 第1章 /*------------------------------------------------------- 【程序改错】 --------------------------------------------------------- 题目:列程序的功能为:已知圆锥半径r和高h,计算圆锥体积v。请纠正程序中存在错误, 使程序实现其功能。 -------------------------------------------------------*/ #include
正在阅读:
程序改错09-26
项目生产安全事故应急救援预案03-02
盐城市2018届高三上学期期中考试英语试题 - 图文09-13
儿童支气管哮喘诊断与防治指南200808-10
公司销售2022年度个人工作报告范文03-24
安全文明驾驶行车常识10-16
王顾左右而言他10-20
全国技能大赛Photoshop平面设计 -- 预赛题目答案06-02
化学必修2第四章 非金属及其化合物03-20
杨玉环秘史02-17
- 家长会发言稿(体育中考重要性)
- 矿山工程施工及验收规范
- 招商银行可转债发行方案风波透视
- 智慧树知到2019博弈论:策略的艺术章节测试答案
- 二维码项目介绍
- 三年级奥数教案
- 2015中国自助服务终端市场发展研究报告
- How to create a harmonious dormitory life
- (全国通用版)2018 - 2019高中物理第三章相互作用2弹力学案新人教版必修1
- 华为公司企业管理调研报告
- 成本实训报告 - 图文
- 最新电大国家开放大学《民事诉讼法学》网络核心课形考网考作业试题及答案
- 财务管理习题与参考答案
- 民间非营利组织会计报表附注
- 华为交换机和存储绑定对接配置案例
- 机械设计1
- 第3章从业财德税收法律制度练习
- 进口废塑料环境保护管理规定
- 保安公司设立承诺书
- 浅析CL建筑体系在多层建筑中的应用