C语言改错题库
题号:1
题目:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。
/************FOUND***********/
a[i]=a[i-1];
正确答案:a[i+1]=a[i];
/************FOUND***********/
exit;}
正确答案:break;}
题号:2
题目:以下程序的功能是求如下表达式:
/************FOUND***********/
print("%d",n) ;
正确答案:scanf(“%d”,&n);
/************FOUND***********/
fun(int n)
正确答案:float fun(int n)
题号:3
题目:函数fun的功能是:根据整型形参m的值,计算如下公式的值。
/**********FOUND**********/
y-=1/(i*i);
正确答案:y-=1.0/(i*i);
/**********FOUND**********/
return m;
正确答案:return c;
题号:4
题目:函数fun的功能是:计算并输出该数列的前n项的平方根之和sum,n的值通过形参传入。
/**********FOUND**********/
fun (int n)
正确答案:double fun (int n)
/**********FOUND**********/
sum=0.0;
正确答案:sum=1.0;
/**********FOUND**********/
for(k=0;k<=n;k++)
正确答案:for(k=4;k<=n;k++)
/**********FOUND**********/
return s0;
正确答案:return sum;
题号:5
题目:以下程序把一由小到大的有序数列放在a[1]到a[n]中,a[0]用做工作单元,程序把读入的x值插入到a数组中,插入后,数组中的数仍有序。
/************FOUND***********/
{ a[i]=a[i+1];
正确答案:{ a[i+1]=a[i];
/************FOUND***********/
for(i=0;i<=n;i++)
正确答案:for(i=1;i<=n;i++)
题号:7
题目:函数scopy的功能是:将一个字符串前面n个子字符送到一个字符型数组中去,然后再加上一个'\0'。不用系统提供的函数strcpy。请改正程序中的2个错误,使它能得出正确的结果。
/**************FOUND**************/
scanf("%d",n);
正确答案:scanf("%d",&n);
/**************FOUND**************/
scopy(str1,str2);
正确答案:scopy(str1,str2,n);
题号:8
题目:函数fun的功能是:求n!。主函数的功能是计算: x!+y!+z!的值。请改正程序中的错误,使它能得出正确的结果。
/**********FOUND**********/
scanf("%d,%d,%d",x,y,z);
正确答案:scanf("%d,%d,%d",&x,&y,&z);
/**********FOUND**********/
printf("Sum=%d\ n",sum);
正确答案:printf("Sum=%ld\ n",sum);
题号:10
题目:编写函数fun求整数n以内(不包括n)3的倍数之和,在main函数中由键盘输入n 值,并输出运算结果。
/**********FOUND**********/
scanf("%d",n);
正确答案:scanf("%d",&n);
/**********FOUND**********/
result=fun( );
正确答案:result=fun(n);
题号:14
题目:函数fun的功能是:求1到20的阶乘的和。
/**********FOUND**********/
s+t=s;
正确答案:s+=t;
/**********FOUND**********/
printf("jiecheng=%d\n",s);
正确答案:printf("jiecheng=%f\n ",s);
题号:15
题目:函数fun的功能是:输出Fabonacci数列的前20项,要求变量类型定义成浮点型,输出时只输出整数部分,输出项数不得多于或少于20。
/************FOUND***********/
f2=f1;
正确答案:f1=f2
/************FOUND***********/
f3=f2;
正确答案:f2=f3
题号:18
题目:函数fun的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值
为500,则函数值为4622。
/**********FOUND**********/
while ((k>=2)||(mc<10))
正确答案:while ((2<=k)&&(mc<10))
/**********FOUND**********/
if((k%13=0)||(k%17=0))
正确答案:if((k%17==0)||(k%13==0))
题号:19
题目:函数fun的功能是:计算正整数num的各位上的数字之积。
/**********FOUND**********/
scanf("%ld", n);
正确答案:scanf("%ld", &n);
/**********FOUND**********/
printf("\n%ld\n",fun(long n));
正确答案:printf("\n%ld\n",fun(n));
题号:22
题目:函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。例如,若给num1和num2分别输入49和21,则输出的最大公约数为7。
/************FOUND***********/
r=a/b;}
正确答案:r=a%b;}
/************FOUND***********/
return a;
正确答案:return b;
题号:23
题目:在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。
下列给定程序中,函数fun的功能是:计算数组元素中值为正数的平均值(不包括0)。
/************FOUND***********/
int sum=0.0;
正确答案:double sum=0.0;
/************FOUND***********/
while(s[i] =0)
正确答案:while(s[i] !=0)
题号:24
题目:fun函数的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线上的元素之和sum。
/**********FOUND**********/
a=0;
正确答案:sum=0;
/**********FOUND**********/
scanf("%d",a[i][j]);
正确答案:scanf("%d",&a[i][j]);
题号:25
题目:fun函数的功能是:给定n个实数,输出平均值,并统计在平均值以下(含平均值)的实数个数。
/**********FOUND**********/
for(j=0;j<=n;j++)
正确答案:for(j=0;j /**********FOUND**********/ return xb; 正确答案:return c; 题号:26 题目:fun函数的功能是:找出大于m的最小素数,并将其作为函数值返回。 /**********FOUND**********/ for(k=1;k 正确答案:for(k=2;k /**********FOUND**********/ if(i%k!=0) break; 正确答案:if(i%k= =0) break; 题号:27 题目:fun函数的功能是:实现3行3列矩阵的转置,即行列互换。 /**********FOUND**********/ a[i][j]=t; 正确答案:t=a[j][i]; /**********FOUND**********/ t=a[j][i]; 正确答案:a[i][j]=t; 题号:28 题目:fun函数的功能是:求一个3行4列矩阵的外框的元素值之和矩阵元素为1,2,3,4,5,6,7,8,9,10,时…… /**********FOUND**********/ int i,j,s,s1=s2=s3=s4=0; 答案:int i,j,s,s1=0,s2=0,s3=0,s4=0; /**********FOUND**********/ s2=s2+a[m][j]; 正确答案:s2=s2+a[m-1][j]; 题号:29 题目:fun函数的功能是:实现两个字符串的连接。例如:输入dfdfqe和12345时,则输出dfdfqe12345. /**********FOUND**********/ s2[j]=s1[i]; 正确答案:s[i]=s2[j]; /**********FOUND**********/ s2[j]='\ 0'; 正确答案:s1[i]='\0'; 题号:31 题目:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。例如:当s所指的字符串的内容为"ABCD"时,t所指数组中的内容为"DCBAABCD"。 /**********FOUND**********/ void fun (char s, char t) 答案:void fun (char s[], char t[]) /**********FOUND**********/ d = len(s); 正确答案:d = strlen(s); 题号:249 题目:下面程序的功能是:从键盘输入十个学生的成绩,统计最高分,最低分和平均分。max代表最高分,min代表最低分,avg代表平均分。 /***********FOUND***********/ max=min=avg=a[1]; 正确答案:max=min=avg=a[0]; /***********FOUND***********/ if(min 正确答案:if(min>a[i]) 题号:250 题目:以下程序输出前六行杨辉三角形,既 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 ………… ………… /***********FOUND***********/ if(j==0&&j==i) 正确答案:if(j==0||j==i) /***********FOUND***********/ a[i][j]=a[i-1][j-1]+a[i][j-1]; 答案:a[i][j]=a[i-1][j-1]+a[i-1][j]; 题号:251 题目:有一数组内放10个整数,要求找出最小数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置. /***********FOUND***********/ scanf("%d", a[i]); 正确答案:scanf("%d", &a[i]); /***********FOUND***********/ for(i=3;i<10;i++) 正确答案:for(i=1;i<10;i++) 题号:253 题目:有一数组内放10个整数,要求求出所有元素的平均值. /***********FOUND***********/ for(i=0;i<10;i++) 正确答案:for(i=1;i<10;i++) /***********FOUND***********/ int score[10],aver ; 正确答案:float score[10],aver ; 题号:254 题目:一个已排好序的一维数组,输入一个数number,要求按原来排序的规律将它插入数组中. /***********FOUND***********/ if(number>end) a[11]=number; 答案:f(number>end) a[10]=number; /***********FOUND***********/ if(a[i] 正确答案:if(a[i]>number) 题号:255 题目:用"起泡法"对输入的十个字符排序后按从小到大的次序输出. /***********FOUND***********/ scanf("%s",&str); 正确答案:scanf("%s",str); /***********FOUND***********/ sort(str[N]); 正确答案:sort(str); 题号:260 题目:函数fun的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。例如,在主函数中从键盘给n输入20后,输出为:s=0.583333。注意:要求n的值不大于100。 /**************FOUND********** float s; 正确答案:double s; /**************FOUND********** scanf("%d",n); 正确答案:scanf("%d",&n); 题号:261 题目:下面的函数delete(s,i,n)可用来从字符串中删除第i个字符开始的n个字符。 /**********FOUND**********/ void delete (char s[],int i,n) 答案void delete (char s[],int i,int n) /**********FOUND**********/ { int j,length,k; 正确答案:{ int j,length=0,k; 下列程序是建立一个包含学生有关数据的单向链表。但该程序有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) 第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; k 1.【程序改错】 题目:在一个一维整型数组中找出其中最大的数及其下标。 程序中共有4条错误语句,请改正错误。 #define N 10 /**********FOUND**********/ float fun(int *a,int *b,int n) int fun(int *a,int *b,int n) { int *c,max=*a; for(c=a+1;cmax) { max=*c; /**********FOUND**********/ b=c-a;} *b=c-a;} return max; } main() { int a[N],i,max,p=0; printf("please enter 10 integers:\n"); for(i=0;i 第1题【程序改错】 功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。 例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”。 ------------------------------------------------------*/ #include 题号:1 题目:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列 /************FOUND***********/ a[i]=a[i-1]; /************FOUND***********/ exit;} 正确答案:a[i+1]=a[i]; break;} 题号:2 题目:以下程序的功能是求如下表达式: /************FOUND***********/ print("%d",n) ; /************FOUND***********/ fun(int n) 正确答案:scanf(“%d”,&n); float fun(int n) 题号:3 题目:函数fun的功能是:根据整型形参m的值,计算如下公式的值。 /**********FOUND**********/ y-=1/(i*i); /**********FOUND**********/ return m; 正确答案:y-=1.0/(i*i); return c; 题号:4 题目:以下程序把一由小到大的有序数列放在a[1]到a[n]中,a[0]用做工作单元,程序把读入的x值插入到a数组中,插入后,数组中的数仍有序。 /************FOUND***********/ { a[i]=a[i+1]; /************FOUND***********/ for(i=0;i<=n;i++) 正确答案:{ a[i+1]=a[i]; for(i=1;i<=n;i++) 题号:5 题目:函数scopy的功能是:将一个字符串前面n个子字符送到一个字符型数组中去 ,然后再加上一个'\0'。不用系统提供的函数strcpy。请改正程序中的2个错误,使它能得出正确的结果。 /**************FOUND**************/ scanf("%d",n); /**************FOUND**************/ scopy(str1,str2); 正确答案:scanf("%d",&n); scopy(str1,str2,n); 题号:6 题目:函数fun的功能是:求n!。主函数的功能是计算: x!+y!+z!的值。请改正程 序中的错误,使它能得出正确的结果。 /**********FOUND**********/ scanf("%d,%d,%d",x,y,z); /**********FOUND**********/ printf("Sum=%d\ n",sum); 正确答案:scanf("%d,%d,%d",&x,&y,&z); printf("Sum=%ld\ n",sum); 题号:7 题目:编写函数fun求整数n以内(不包括n)3的倍数之和,在main函数中由键盘输 入n值,并输出运算结果。 /**********FOUND**********/ scanf("%d",n); /**********FOUND**********/ result=fun( ); 正确答案:scanf("%d",&n); result=fun(n); 题号:8 题目:函数fun的功能是:求1到20的阶乘的和。 /**********FOUND**********/ s+t=s; /**********FOUND**********/ printf("jiecheng=%d\n",s); 程序调试1、 #include /****** 1 ******/ i=1;// i=2; while(n>1) if(n%i==0) { printf("%d\t",i); n/=i; } else /******** 2 *******/ n++;// i++; } 3、 #include C语言程序改错及填空题
C语言程序改错题
程序改错完整版---C语言
齐齐哈尔大学C语言题库 程序改错(部分)
C语言程序改错题
C语言改错题
C语言程序改错题及答案
C语言程序改错练习题