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

times++;

printf(\} 难度2 1、考查点:用指针访问字符数组元素,程序D3.c的功能是将字符串yy在屏幕上输出。 #include

int main(void) {

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

char yy[200] = \改为:*yy

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

fol (; *yy; yy++) //改为:for {

putchar(*yy); }

return 0;

}

2、考查点:字符数组定义,字符串输出控制,标准字符串函数的使用,程序D6.c的功能是从键盘读入一行字符(包括空格、TAB等字符)并在屏幕上显示。

#include

int main(void) {

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

char yy<128>; //改为:yy[128]

/*********Found************/ getchar(yy); //改为:gets

/*********Found************/ printf(\%y\改为:%s

return 0;

}

3、考查点:if-else形式条件的分析,数据类型选择,程序D7.c的功能是判断x和y是否相等,相等则显示x=y,不等则显示x<>y。

#include

int main(void) {

/*********Found************/ char x, y; //改为:int

x = 39270; y = 41001;

/*********Found************/ if (x != y) //改为:== {

printf(\ }

/*********Found************/ else;; //去掉;; {

printf(\ }

return 0;

}

4、考查点:文件路径名表示,文件打开方式选择,文件打开成功判断,程序D8.c的功能是打开文件d:\\te.c用于读并判断打开是否成功。

#include

int main(void) {

FILE *fp;

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

char fileName[] = \\\te.c\改为:\\\\

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

fp = fopen(fileName, \w\改为:r

/*********Found************/ if (fp is NULL) //改为:== {

puts(\ return 1; }

putchar(fgetc(fp)); fclose(fp);

return 0;

}

5、考查点:指针,内存分配、内存释放函数的使用,程序D9.c的功能是申请100个字节的内存空间,显示其首地址,然后释放申请到的内存空间。 #include

#include

int main(void) {

/*********Found************/ char pch[2]; //改为:*pch

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

if (pch = (char *)malloc(100) == NULL) //将红色部分括起来 {

printf(\ return 1; }

printf(\

/*********Found************/ close(pch); //改为:free

return 0;

}

6、考查点:指针作函数参数,函数调用,程序D14.c的功能是调用函数swap,将a和b的值交换,最后在屏幕上显示交换后的a,b之值。 #include

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

void swap(int x, int y); //改为:int *x, int *y

int main(void) {

int a = 3, b = 4;

/*********Found************/ swap(a, b); //改为:&a, &b printf(\

return 0;

}

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

void swap(int x, int y) //改为:int *x, int *y

{

int tmpX;

/*********Found************/ ___________ // tmpX =*x; *x = *y;

/*********Found************/ *y = x; //改为:*y = tmpX;

}

7、考查点:结构体变量定义,结构体成员的输入、输出,程序D16.c的功能是worker2的信息使用结构体存储,从键盘读入其各项信息并显示。 #include

int main(void) {

struct WKER {

long ID;

long int num; char name[20]; char sex;

/*********Found************/ } ; //改为:worker2;

worker2.ID = 1L;

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

scanf(\%s %s %s\

//改:%ld%s%c

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

printf(\%s name=%s sex=%s\\n\

worker2.num, worker2.name, worker2.sex); //改为:%ld %c

return 0;

}

8、考查点:复合语句、变量作用域,程序D18.c的功能是从键盘上读入10个大于0的数,调用函数dispMaxNum显示其中最大的一个。

#include

int maxiNum = 0;

void dispMaxNum();