全国计算机二级C语言程序改错题必过
目录
题目一前N项和问题 (3)
题目二SS字符串问题 (4)
题目三变量互换问题1 (4)
题目三变量互换问题2 (5)
题目三变量互换问题3 (5)
题目四最大公约数问题 (6)
题目五长数变短数1 (7)
题目五长数变短数2 (7)
题目五长数变短数3 (8)
题目五长数变短数4 (9)
题目五长数变短数5 (9)
题目五长数变短数6 (10)
题目五长数变短数7 (11)
题目五长数变短数8 (11)
题目五长数变短数9 (12)
题目六斐波拉契数列 (13)
题目七链表1 (14)
题目七链表2 (15)
题目七链表3 (16)
题目七链表4 (17)
题目八非素数问题 (19)
题目九排序问题1 (19)
题目九排序问题2 (20)
题目九排序问题3 (21)
题目九排序问题4 (22)
题目九排序问题5 (23)
题目九排序问题6 (24)
题目九排序问题6 (25)
题目九排序问题7 (26)
题目十平均值问题1 (26)
题目十平均值问题2 (27)
题目十平均值问题3 (28)
题目十平均值问题4 (29)
题目十平均值问题5 (30)
题目十一字符串连接1 (30)
题目十一字符串连接2 (31)
题目十一字符串连接3 (32)
题目十一字符串连接4 (32)
题目十二求和问题1 (33)
题目十二求和问题2 (34)
题目十二求和问题3 (35)
题目十二求和问题4 (36)
题目十二求和问题6 (37)
题目十二求和问题7 (38)
题目十二求和问题8 (39)
题目十二求和问题9 (39)
题目十二求和问题10 (40)
题目十二求和问题11 (41)
题目十二求和问题12 (42)
题目十二求和问题13 (42)
题目十二求和问题14 (43)
题目十二求和问题15 (44)
题目十二求和问题16 (44)
题目十二求和问题17 (45)
题目十二求和问题18 (45)
题目十二求和问题19 (46)
题目十三整数问题 (47)
题目十四字符串逆置 (48)
题目十五进制转换1 (48)
题目十五进制转换2 (49)
题目十六素数问题1 (50)
题目十六素数问题2 (50)
题目十六素数问题3 (51)
题目十六素数问题4 (52)
题目十六素数问题5 (53)
题目十七删除字符串中指定项1 (53)
题目十七删除字符串中指定项2 (54)
题目十八最小公倍数问题 (55)
题目十九字符串替换问题1 (55)
题目十九字符串替换问题2 (56)
题目二十找最长字符串 (57)
题目二十一数组问题1 (58)
题目二十一数组问题2 (59)
题目二十一数组问题3 (60)
题目二十二求平方根问题 (61)
题目二十三短字符串变长字符串1 (61)
题目二十三短字符串变长字符串2 (62)
题目二十三短字符串变长字符串3 (63)
题目二十三短字符串变长字符串4 (64)
题目二十四字符串s问题1 (64)
题目二十四字符串s问题2 (65)
题目二十四字符串s问题3 (66)
题目二十五求方程的根 (67)
题目二十六求阶乘1 (68)
题目二十六求阶乘2 (69)
题目二十七方阵问题 (70)
题目二十八查找字符串中某元素的数目 (71)
题目二十九最大值问题1 (72)
题目二十九最大值问题2 (72)
题目二十九最大值问题3 (73)
题目三十大小写转换1 (74)
题目三十大小写转换2 (75)
题目三十大小写转换3 (76)
题目三十一:计算数字位数的问题1 (77)
题目三十一:计算数字位数的问题2 (78)
题目三十一:计算数字位数的问题3 (79)
题目三十一:计算数字位数的问题4 (80)
题目三十二统计字母数字个数问题1 (81)
题目三十二统计字母数字个数问题2 (82)
题目三十二统计字母数字个数问题3 (83)
题目三十二统计字母数字个数问题4 (83)
题目三十三对角线问题 (84)
题目三十四比较字符串大小 (85)
题目一前N项和问题
.下列给定程序中函数fun的功能是:求出如下分数序列的前n项之和。和值通过函数值返回。
23581321
…
,,,,,,
1235813
例如,若n=5,则应输出8.391667。
请改正程序中的错误,使其得出正确的结果。
#include
/************found************/
void fun ( int n )
{ int a, b, c, k; double s;
s = 0.0; a = 2; b = 1;
for ( k = 1; k <= n; k++ ) {
/************found************/
s = s + (Double)a / b;
c = a; a = a + b; b = c;
}
return s;
}
main( )
{ int n = 5;
printf( "\nThe value of function is: %lf\n", fun ( n ) );
(1)double fun(int n)
(2)s=s+(double)a/b;
题目二SS字符串问题
2.下列给定程序中函数fun的功能是:统计substr所指的子符串在str所指的字符串中出现的次数。
例如,若字符串为aaas 1kaaas,子字符串为as,则应输出2。
请改正程序中的错误,使它能得出正确的结果。
#include
int fun (char *str,char *substr)
{ int i,j,k,num=0;
/************found************/
for(i = 0, str[i], i++)
for(j=i,k=0;substr[k]==str[j];k++,j++)
/************found************/
If(substr[k+1]=='\0')
{ num++;
break;
}
return num;
}
main()
{
char str[80],substr[80];
printf("Input a string:") ;
gets(str);
printf("Input a substring:") ;
gets(substr);
printf("%d\n",fun(str,substr));
(1)for(i=0;str[i];i++)
(2)if(substr[k+1]== '\0')
题目三变量互换问题1
2. 下列给定程序中函数fun的功能是:实现两个变量值的交换,规定不允许增加语句和表达式。
例如,变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。
请改正程序中的错误,使它得出正确的结果。
#include
int fun(int *x,int y)
{
int t ;
/**************found**************/
t = x ; x = y ;
/**************found**************/
return(y) ;
}
main()
{
int a = 3, b = 8 ;
printf("%d %d\n", a, b) ;
b = fun(&a, b) ;
printf("%d %d\n", a, b) ;
(1)t = *x ; *x = y ;
(2)return(t) ;或return t;
题目三变量互换问题2
1.下列给定程序中,函数fun的功能是:实现两个整数的交换。例如,给a和b分别输入60
和65,输出为:a=65 b=60。
#include
#include
#include
/*************found**************/
void fun(int a,b)
{ int t;
/*************found**************/
t=b;b=a;a=t;
}
void main()
{int a,b;
system("CLS");
printf("Enter a, b: "); scanf("%d%d",&a,&b);
fun(&a, &b);
printf("a=%d b=%d\n ", a,b);
}
(1)void fun(int *a,int *b)
(2)t=*b; *b=*a; *a=t;
题目三变量互换问题3
2.下列给定程序中,函数fun的功能是:将主函数中两个变量的值进行交换。例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。
#include
/*************found**************/
void fun(int x,int y)
{ int t;
/*************found**************/
t=x;x=y;y=t;
}
void main()
{ int a,b;
a=8;
b=3;
fun(&a, &b);
printf("%d %d\n ", a,b);
}
(1)void fun(int *x, int *y)
(2)t=*x; *x=*y; *y=t;
题目四最大公约数问题
2. 下列给定程序中函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。
例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。
#include
int fun(int a,int b)
{ int r,t;
if(a
/************found************/
t=a; b=a; a=t;
}
r=a%b;
while(r!=0)
{ a=b; b=r; r=a%b; }
/************found************/
return(a);
}
main()
{ int num1, num2,a;
printf("Input num1 num2: "); scanf("%d%d",&num1,&num2);
printf("num1= %d num2= %d\n\n",num1,num2);
a=fun(num1,num2);
printf("The maximun common divisor is %d\n\n",a);
(1)t=a;a=b;b=t;
(2)return(b);或return b;
题目五长数变短数1
2. 下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为87653142时,t中的数为7531。
#include
void fun (long s, long *t)
{ int d;
long sl=1;
/************found************/
t = 0;
while ( s > 0)
{ d = s%10;
/************found************/
if (d%2 == 0)
{ *t = d * sl + *t;
sl *= 10;
}
s /= 10;
}
}
main()
{ long s, t;
printf("\nPlease enter s:"); scanf("%ld", &s);
fun(s, &t);
printf("The result is: %ld\n", t);
(1)*t=0;
(2)if(d%2!=0)或if(d%2==1)
题目五长数变短数2
2.下列给定程序中函数fun的功能是:将长整型数中各位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为87653142时,t中的数:8642。
#include
void fun (long s, long *t)
{ int d;
long sl=1;
*t = 0;
while ( s > 0)
{ d = s%10;
/************found************/
if (d%2=0)
{ *t=d* sl+ *t;
sl *= 10;
}
/************found************/
s \= 10;
}
}
main()
{ long s, t;
printf("\nPlease enter s:"); scanf("%ld", &s);
fun(s, &t);
printf("The result is: %ld\n", t);
}
(1)if(d%2==0)
(2)s/=10;
题目五长数变短数3
2.下列下列给定程序中,函数fun的功能是:从低位开始依次取出长整型变量s中奇数位上的数,构成一个新数存放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为7654321时,t中的数为7531。
#include
/************found************/
void fun (long s, long t)
{ long sl=10;
*t = s % 10;
while ( s > 0)
{ s = s/100;
*t = s%10 * sl + *t;
/************found************/
sl = sl*100;
}
}
main()
{ long s, t;
c语言程序改错题
程序改错------------------------------------- 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语言程序改错2
C语言程序改错题
程序改错完整版---C语言
齐齐哈尔大学C语言题库 程序改错(部分)