程序改错C
程序改错
==================================================
题号:7471
/*------------------------------------------------------
【程序改错】:只允许修改错误代码,其他代码不允许修改!
--------------------------------------------------------
功能:计算正整数num的各位上的数字之积。
例如:若输入:252,则输出应该是:20。
若输入:202,则输出应该是:0。
------------------------------------------------------*/
#include
#include
long fun (long num)
{
/**********ERROR**********/
long k=1
do
{
k*=num%10 ;
/**********ERROR**********/
num\=10;
/**********ERROR**********/
}while(!num) ;
return (k) ;
}
void main( )
{
long n ;
printf("\Please enter a number:") ; scanf("%ld",&n) ;
printf("\n%ld\n",fun(n)) ;
}
答案:
位置 1:
long k=1;
位置 2:
num/=10; 【或】 num=num/10;
位置 3:
} while(num) ; 【或】 while(num!=0)
题号:7383
/*------------------------------------------------------ 【程序改错】:只允许修改错误代码,其他代码不允许修改!
--------------------------------------------------------
功能:统计出若干个学生的平均成绩,最低分以及得最低分的人数。例如:输入10名学生的成绩分别为92,87,68,56,92,84,67,
75,92,66,则输出平均成绩为77.9,最低高分为56,得最低分的人数为1人。
------------------------------------------------------*/
#include "stdio.h"
float Min=0;
int J=0;
float fun(float array[],int n)
{
int i;float sum=0,ave;
Min=array[0];
for(i=0;i { if(Min>array [i]) Min=array [i]; /**********ERROR**********/ sum=+array [i]; } /**********ERROR**********/ ave=sum\n; for(i=0;i /**********ERROR**********/ if(array [i]=Min) J++; return(ave); } void main( ) { float a[10],ave; int i=0; for(i=0;i<10;i++) scanf("%f",&a[i]); ave=fun(a,10); printf("ave=%f\n",ave); printf("min=%f\n",Min); printf("Total:%d\n",J); } 答案: 位置 1: sum+=array[i]; 【或】 sum=sum+array [i]; 位置 2: ave=sum/n; 位置 3: if(array [i]==Min) J++; 题号:1698 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:用下面的和式求圆周率的近似值。直到最后一项的绝对值小于等于0.0001。 π 1 1 1 - = 1 - - + - - - + ... 4 3 5 7 ------------------------------------------------------*/ #include "stdio.h" /**********ERROR**********/ #include "math" void fun() { int i=1; /**********ERROR**********/ int s=0,t=1,p=1; /**********ERROR**********/ while(fabs(t)<=1e-4) { s=s+t; p=-p; i=i+2; t=p/i; } /**********ERROR**********/ printf("pi=%d\n",s*4); } main() { fun(); } 答案: 位置 1: #include "math.h" 【或】 #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 while(fabs(t)>0.0001) 位置 4: printf("pi=%f\n",s*4); 题号:7244 /*------------------------------------------------------ 【程序改错】:只允许修改错误代码,其他代码不允许修改! -------------------------------------------------------- 功能:有5个人坐在一起,问第五个人多少岁?他说比第4个人 大2岁。问第4个人岁数,他说比第3个人大2岁。问第三 个人,又说比第2人大两岁。问第2个人,说比第一个人 大两岁。最后问第一个人,他说是10岁。请问第五个人 多大? ------------------------------------------------------*/ #include"stdio.h" int age(int n) { int c; /**********ERROR**********/ if(n=1) c=10; else /***********FOUND***********/ c=age(n)+2; return(c); } void main() { /**********ERROR**********/ printf("%d",age5); } 答案: 位置 1: if(n==1) 位置 2: c=age(n-1)+2; 位置 3: printf("%d",age(5)); 题号:3230 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 题目:从键盘输入的整数中找出最小值,输入负数时结束。 -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include "stdio.h" main() { int min,a; scanf("%d",&a); min=a; /**********ERROR**********/ while (a<0 ) { /**********ERROR**********/ if(a>min) min=a; scanf("%d",&a); } } 答案: 位置 1: while(a>=0) 位置 2: if(a 题号:1900 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 题目:从键盘输入的正整数中找出最大值,输入0时结束。 -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include "stdio.h" main() { int max=0,a; do { scanf("%d",&a); /**********ERROR**********/ if(a>max) a=max; /**********ERROR**********/ while(a==0); printf("%d",max); } 答案: 位置 1: if(a>max) max=a; 位置 2: while(a!=0); 题号:5672 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 题目:输入两个正整数,并由小到大排列。输入负数或0则重新输入。 -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include "stdio.h" main() { int a,b,t; do { scanf("%d,%d",&a,&b); } /**********ERROR**********/ while(a>=0&&b>=0); if(a>=b) /**********ERROR**********/ t=a;a=b;b=t; printf("a=%d,b=%d",a,b); } 答案: 位置 1: while(a<=0||b<=0); {t=a;a=b;b=t;} 题号:7282 /*------------------------------------------------------ 【程序改错】:只允许修改错误代码,其他代码不允许修改! -------------------------------------------------------- 功能:从m个学生的成绩中统计出高于和等于平均分的学生人数,此人数由函数值返回。平均分通过形参传回,输入学生成 绩时,用-1结束输入,由程序自动统计学生人数。 例如:若输入 8 名学生的成绩,输入形式如下: 80.5 60 72 90.5 98 51.5 88 64 -1 结果为: The number of students :4 Ave = 75.56。 ------------------------------------------------------*/ #include #include #define N 20 int fun ( float *s, int n, float *aver ) { float av, t ; int count , i; count = 0; t=0.0; for ( i = 0; i < n; i++ ) t += s [ i ]; av = t / n; printf( "ave =%f\n",av ); for ( i = 0; i < n; i++ ) /**********ERROR**********/ if ( s[ i ] < av ) count++; /**********ERROR**********/ aver = av; /**********ERROR**********/ return count } void main() { float a, s[30], aver; 程序改错------------------------------------- 1题目:在一个一维整型数组中找出其中最大的数及其下标。 程序中共有4条错误语句,请改正错误。 -----------------*/ #define N 10 /**********FOUND**********/ float fun(int *a,int *b,int n) { int *c,max=*a; for(c=a+1;cmax) { max=*c; /**********FOUND**********/ b=c-a;} return max; } main() { int a[N],i,max,p=0; printf("please enter 10 integers:\n"); for(i=0;i 下列程序是建立一个包含学生有关数据的单向链表。但该程序有2个错误,错误出现在每个注释行附近,请调试改正。调试改正中,不得改变程序结构,也不得增删语句。 #define NULL 0 struct stud { long num; char name[10]; float score; struct stud *next; }; /* …………… comment …………… */ int n; struct stud create() 序中有两处错误代码,请改正.注意,不得改变程序结构。 #include <> main() { int a[8],*p=a; int i,j; int tempmin,tempcode; printf("\n input the numbers:\n"); for (i=0;i<8;i++) scanf("%d",p+i); tempmin=*p; for (i=0;i<7;i++) { for (j=i;j<8;j++) if (j==i||*(p+j) 【程序改错】 1.功能:利用递归函数调用方式,将所输入的5个字符,以相反顺序 打印出来。 char next; next=getchar(); palin(n-1); 2.功能:求广义菲玻那契级数的第n项。广义菲玻那契级数的前n 项为: 1,1,1,3,5,9,17,31,…… 项值通过函数值返回 main ( )函数。 例如:若 n = 15,则应输出:The value is: 2209。 for (k=4; k<=n; k++) a=b; return d; 3.功能:根据整型形参m,计算如下公式的值: y=1/2+1/8+1/18+...+1/2m*m double y=0.0; 4.功能:编制统计营业员一天的营业额的程序,设程序采用一个循环 实现,每次循环输入一笔交易金额并累计营业额。由于营 业员一天完成的交易次数是不确定的,为此以最后附加输 入一笔0或负数交易额作为交易金额已全部输入结束的标志。 float sale,sigma; scanf("%f",&sale); sigma=sigma+sale; 5.功能:读取7个数(1-50)的整数值,每读取一个值,程序打印出该值个数的*。while(n<8) while(a<1||a>50); for(i=0;i 1、以下程序的功能是求如下表达式: 1 1 1 S = 1 + ——+ ———+ ...... + ——————— 1+2 1+2+3 1+2+3+......+n 『答案』:1 scanf("%d",&n); 2 float fun(int n) 3 for(i=1;i<=n;i++) 4 s+=1.0/t 或s= s + 1.0 /t; 2、题目:函数fun的功能是:根据整型形参m的值,计算如下公式的值。 1 1 1 t = 1- ——- ——- ... - —— 2x2 3x3 mxm 例如,若m=5,则应输出:0.536389 『答案』:1 for(i=2;i<=m;i++)或for(i=2;i 第12次上机程序改错第1题 【程序改错】 -------------------------------------------------------- 功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积。 例如:输入圆的半径值:19.527 输出为:s = 598.950017。 ------------------------------------------------------*/ #include printf ( "Enter x: "); scanf ( "%f", &x ); printf (" s = %f\n ", fun ( x ) ); } 第2题【程序改错】 功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。 例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”。 ------------------------------------------------------*/ #include (一)功能:用选择法对数组中的n个元素按从小到大的顺序进行排序。#include "stdio.h" #define N 20 void fun(int a[], int n) { int i, j, t, k; for (j = 0 ;j < n-1 ;j++) { /**********ERROR**********/ k = j for (i = j+1;i < n; i++) /**********ERROR**********/ if(a[i] >a[k]) /**********ERROR**********/ k=j; t = a[k] ; a[k] = a[j] ; a[j] = t; } } main() { int a[N]={9,6,8,3,-1},i, m = 5; printf("排序前的数据:") ; for(i = 0;i < m;i++) printf("%d ",a[i]); printf("\n"); fun(a,m); printf("排序后的数据:") ; for(i = 0;i < m;i++) printf("%d ",a[i]); printf("\n"); } 【参考答案】 k = j; 【参考答案】 if(a[i] < a[k]) if(a[k] > a[i]) 【参考答案】 k = i; (二)功能:求广义菲玻那契级数的第n项。广义菲玻那契级数的前n 项为: 1,1,1,3,5,9,17,31,…… 项值通过函数值返回 main ( )函数。 例如:若 n = 15,则应输出:The value is: 2209。 #include "conio.h" #include "stdio.h" long fun ( int n ) { long a=1, b=1, c=1, d=1, k; /**********ERROR**********/ for (k=4; kc语言程序改错题
C语言程序改错及填空题
c语言程序改错
C语言程序改错2
C语言程序改错题
程序改错完整版---C语言
齐齐哈尔大学C语言题库 程序改错(部分)