二级C语言改错 二级C语言编程题 汇总整理篇
360教育在线 宇创IT培训07年9月内部资料
内部资料,请勿公开传播
二、改错题
考试做题要求:
1、在/**********found**********/的下一行改正错误。
2、将题目做完之后一定要保存。
3、不能删除/**********found**********/,也不能多行或少行。
1: 数列中,第一项值为3, 后一项都比前一项的值增5;给定程序MODI1.C中函数fun的功能是: 计算前n(4
例如, 当n的值为20时,该数列为3,8,13,18,23,28,……,93,98。符合此条件的累加值应为42,126,366,570,1010。
请改正函数fun中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
#include
#define N 20
int fun(int n,int *a)
{ int i,j,k,sum;
/**************found**************/
sum=j==0;
for(k=3,i=0;i
{ sum=sum+k;
/**************found**************/
if(sum%4=2)
a[j++]=sum;
}
return j;
}
main()
{ int a[N],d,n,i;
printf("\nEnter n (4
d=fun(n,a);
printf("\n\nThe result :\n");
for(i=0; i
}
2: 给定程序MODI1.C中函数fun的功能是:将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。
例如,若输入:77777,则输出将是:32767。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include
int fun( char *p )
{ int n;
/**********found**********/
n= *P-'o';
p++;
while( *p!=0 ) {
/**********found**********/
n=n*8+*P-'o';
p++;
}
return n;
}
main()
{ char s[6]; int i; int n;
printf("Enter a string (Ocatal digits): "); gets(s);
if(strlen(s)>5){ printf("Error: String too longer !\n\n");exit(0); }
for(i=0; s[i]; i++)
if(s[i]'7')
{ printf("Error: %c not is ocatal digits!\n\n",s[i]);exit(0); }
printf("The original string: "); puts(s);
n=fun(s);
printf("\n%s is convered to integer number: %d\n\n",s,n);
}
3: 给定程序MODI1.C的功能是:读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。
例如,若输入整数:2310,则应输出:2、3、5、7、11。
请改正程序中的语法错误,使程序能得出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
#include
/************found************/
IsPrime ( int n );
{ int i, m;
m = 1;
for ( i = 2; i < n;