C语言程序改错总结 下载本文

难度1

1、程序D1.c的功能是从键盘读入一个数并在屏幕上显示。

int main(void) {

int xy2;

/*********Found************/

scanf(\改为:scanf(\ /*********Found************/

printf(\改为:printf(\

return 0;

}

2、程序D2.c的功能是调用函数,显示两个实数间最大的一个。 #include

float fmax(float x, float y);

int main(void) {

/*********Found************/ float l, 1; //i

l = 3.0; i = 5.6f;

/*********Found************/

printf(\fMax(i, l)); // fmax

return 0;

}

/*********Found************/

int fmax(float x, float y) //改:float {

if (x < y) return y; else return x;

}

3、程序D4.c的功能是计算半径为2+3的圆的面积。 #include

#define PI 3.14

/*********Found************/

#define S(bj) PI*bj*bj //改: PI*(bj)*(bj)

int main(void) {

/*********Found************/ int mianJi; //改为:double

mianJi = S(2+3);

printf(\

return 0;

}

4、相似题:D3.C,程序D5.c的功能是将字符串yy显示在屏幕上。

#include

int main(void) {

/*********Found************/

char yy[100] = \, //改为:;

/*********Found************/ prntf(\改:printf

return 0; }

5、考查点:数据类型选择,/运算符的使用功能是计算1/1 + 1/2 + … + 1/N之和并显示。

#include

#define N 10

int main(void) {

/*********Found************/ long jieguo = 0; //改:float int fm;

for (fm = 1; fm <= N; fm++) {

/*********Found************/

jieguo += 1 / fm; //改:(float) 1 / fm }

printf(\

return 0; }

6、考查点:输入分隔格式控制,循环体的定义, D12.c的功能是从键盘读入a和b的值(输入格式限定为仅a,b),在屏幕上显示b行a。 #include

int main(void) {

int a, b;

/*********Found************/

scanf(\%d%d\中间加’,’ while (b > 0)

/*********Found************/ ___________ //括号’{’

printf(\ b--;

/*********Found************/ ___________ //括号’}’

printf(\

return 0;

}

7考查点:输入格式控制、变量交换,程序D1000.c的功能是从键盘输入3个浮点数a,b,c(输入时abc之间以空格相隔),首先按照输入顺序显示在屏幕上,然后按从小到大顺序把它们输出到屏幕上。 #include

int main(void) {

float a, b, c, t;

printf(\ /*********Found************/

scanf(\%f%f\改:%f%f%f

printf(\ if (a > b) {

t = a; a = b;

/*********Found************/ b = a; //改:t }

if (a > c)