收藏 分销(赏)

C语言程序改错总结.doc

上传人:丰**** 文档编号:4311761 上传时间:2024-09-05 格式:DOC 页数:31 大小:171.51KB
下载 相关 举报
C语言程序改错总结.doc_第1页
第1页 / 共31页
C语言程序改错总结.doc_第2页
第2页 / 共31页
C语言程序改错总结.doc_第3页
第3页 / 共31页
C语言程序改错总结.doc_第4页
第4页 / 共31页
C语言程序改错总结.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、难度11、程序D1.c的功能是从键盘读入一个数并在屏幕上显示。int main(void) int xy2; /*Found*/ scanf(%s, &xy2); /改为:scanf(%d, &xy2); /*Found*/ printf(xy2=%5dn, &xy2); /改为:printf(xy2=%5dn,xy2); return 0;2、程序D2.c的功能是调用函数,显示两个实数间最大的一个。#includefloat fmax(float x, float y);int main(void) /*Found*/ float l, 1; /i l = 3.0; i = 5.6f; /*

2、Found*/ printf(fmax(%5.2f, %5.2f)=%5.2fn, i, l, fMax(i, l); / fmaxreturn 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 mi

3、anJi = S(2+3); printf(mian ji=%5.2fn, mianJi);return 0;4、相似题:D3.C,程序D5.c的功能是将字符串yy显示在屏幕上。#includeint main(void) /*Found*/ char yy100 = ok?n, /改为:; /*Found*/ prntf(%s, yy); /改:printfreturn 0;5、考查点:数据类型选择,/运算符的使用功能是计算1/1 + 1/2 + + 1/N之和并显示。#include#define N 10int main(void) /*Found*/ long jieguo = 0;

4、/改:float int fm; for (fm = 1; fm = N; fm+) /*Found*/ jieguo += 1 / fm; /改:(float) 1 / fm printf(%8.6fn, jieguo);return 0;6、考查点:输入分隔格式控制,循环体的定义, D12.c的功能是从键盘读入a和b的值(输入格式限定为仅a,b),在屏幕上显示b行a。#includeint main(void) int a, b; /*Found*/ scanf(%d%d, &a, &b); /中间加, while (b 0) /*Found*/ _ /括号 printf(%dn, a);

5、 b-; /*Found*/ _ /括号 printf(bye bye!n);return 0;7考查点:输入格式控制、变量交换,程序D1000.c的功能是从键盘输入3个浮点数a,b,c(输入时abc之间以空格相隔),首先按照输入顺序显示在屏幕上,然后按从小到大顺序把它们输出到屏幕上。#includeint main(void)float a, b, c, t;printf(please input three numbers:n);/*Found*/scanf(%f%f, &a, &b, &c); /改:%f%f%fprintf(before sort:a=%g,b=%g,c=%gn, a,

6、 b, c);if (a b)t = a;a = b;/*Found*/b = a; /改:tif (a c)t = a;a = c;c = t;if (b c)t = b;b = c;c = t;printf(after sort:a=%g,b=%g,c=%gn, a, b, c);return 0;8考查点:格式化输出、数据类型的正确使用,程序D1001.c的功能是求分数序列:2/1,3/2,5/3,8/5,13/8,21/13,.前20项之和,要求显示的结果中小数部分有4位。#include#define T 20int main(void)int n;/*Found*/long i,

7、j, temp, sum;i = 2;j = 1;sum = 0;for (n=1; n=T; n+)sum = sum + i / j;temp = i;i = i + j;j = temp;/*Found*/printf(2/1+3/2+5/3+8/5+13/8+.=%5.2fn, sum); /改:.4return 0; 9考查点:用算术表达式实现数据交换,程序D1002.c的功能是实现两数交换。#includeint main(void)int x = 5, y = 9;x = x + y;y = x - y;/*Found*/x = y - x; /改:x y;printf(x=%d

8、, y=%dn, x, y);return 0;10考查点:整型常量表示、输出项表示,程序D1003.c的功能是将16进制数100转换为10进制数输出。#includeint main(void)/*Found*/int i = 100; /0x100/*Found*/printf(%dn, &i); /改:去掉&return 0;11、程序D1004.c的功能是输入姓名,屏幕输出问候。#includeint main(void)char s10;printf(please input your name:);/*Found*/scanf(%c, s); /改%sprintf(hello );

9、/*Found*/puts(s10); /改:sreturn 0; 12考查点:输入数据分隔,输出项表示,程序D1005.c的功能是从键盘读入两个整数并在屏幕上显示。要求:输入时限定两数之间仅以逗号隔开。#includeint main(void)int a, b;/*Found*/scanf(%d%d, &a, &b); /改:中间加,/*Found*/printf(a=%d,b=%dn, &a, &b); /去掉&return 0; 13、考查点:输入格式控制、if语句,程序D1006.c的功能是判断输入的数据是否与已经给出的数据j相等。#includeint main(void)long

10、 int i = 79870, j = 23;/*Found*/scanf(%f, &i); /改:%ld/*Found*/if (j = i);printf(Equal!);elseprintf(Not equal!);return 0;14、考查点:字符输入函数使用,分支条件表示,程序D1007.c的功能是使用getchar方式从键盘读入一个字符,判断该字符是否大写字符。#includeint main(void)char ch;/*Found*/getchar(ch); / ch = getchar();/*Found*/if (A = ch, ch = Z) /&printf(yes)

11、;elseprintf(no);return 0; 15、考查点:switch语句结束、case后常量表示,程序D1008.c的功能是判断用户是不是输入的整数0。#includeint main(void)int n;scanf(%d, &n);/*Found*/switch (n); /去掉;/*Found*/case0: /中间加空格printf(Zeron);break;default:printf(Non-Zero);break;return 0;16、考查点:switch语句、case后常量表示,程序D1009.c的功能是输入一个整数,如果为1时输出100,为2时输出200,其它输出

12、0。#includeint main(void)int x, y;scanf(%d, &x);switch (x)/*Found*/case x = 1: /改:1y = 100;break;/*Found*/case x = 2: /改:2y = 200;break;default:/*Found*/y = 500; /改:0break;printf(%dn, y);return 0;17、考查点:switch语句case常量表示,循环条件表示,程序D1010.c的功能是输入若干字符数据(回车表示输入结束),分别统计其中A、B、C的个数。#includeint main(void)char

13、c;int k1 = 0, k2 = 0, k3 = 0;/*Found*/while (c = getchar() != n) /加括号()switch (c)/*Found*/case A: /加k1+;break;case B:k2+;break;case C:k3+;break;default :;printf(A=%d,B=%d,C=%dn, k1, k2, k3);return 0;18、考查点:一维数组定义、数组元素引用、输入和输出,程序D1016.c的功能是从键盘输入5个整数,保存到一整型数组变量中(此数组只能保存5个数),并在屏幕上按逆序输出。#includeint main

14、(void)/*Found*/int n=5, i, an; /改为5printf(ninput 5 numbers:);/*Found*/for (i=1; i=0; i-)printf(%dt, ai);return 0;19、考查点:数组的输入和数组元素的引用,程序D1017.c的功能是输入10个浮点数,并输出这组数中的最大值和最小值。#includeint main(void)float a10, max, min;int i;printf(Please input 10 floats);for (i=0; i10; i+)/*Found*/scanf(%f, _); / &aimax

15、 = min = a0;for (i=1; i10; i+)/*Found*/if (_) / max ai)min = ai;printf(Max number is:%.2fnMin number is:%.2fn, max, min);return 0;20、考查点:函数声明,静态变量使用,程序D1021.c的功能是依次输出31到35。#include/*Found*/int f(n); /用定义形式:int nint main(void)int i;for (i=1; i=5; i+)printf(%dn, f(3);return 0;int f(int n)/*Found*/int

16、p = 1; /改: static intp = p * n;return p;21、考查点:静态变量使用,函数调用,程序D1023.c的功能是函数outnum输出自己是第几次被调用。#includevoid outnum(void);int main(void)int i;for (i=0; i5; i+)/*Found*/outnum(i); /改: outnum()return 0;void outnum(void)/*Found*/int i = 0; /改:static int i = 0;i+;printf(%dn, i);22、考查点:函数调用、函数定义,程序D1024.c的功能

17、是调用子函数Average()求两数的平均值,并输出到屏幕上。#include/*Found*/int Average(x, y); /用定义形式:int x, int yint main(void)int a = 12;int b = 24;int ave;/*Found*/ave = Average(int a, int b); /用使用形式:a, bprintf(Average of %d and %d is %d.n, a, b, ave);return 0;/*Found*/int Average(x, y) /int x, int yint result;result = (x +

18、 y) / 2;return result;23、考查点:函数一般调用和静态变量,程序D1025.c的功能是输入一整数n(n0),main()函数中调用子函数Func()n次,并在屏幕上打印出每次调用该子函数的次数。#includevoid Func(void);int main(void)int i, n;printf(ninput a data:);scanf(%d, &n);for (i=0; in; i+)/*Found*/_ / Func()return 0;void Func(void)/*Found*/_ / static int times = 0;times+;printf(

19、Func() was called %d time(s).n, times);难度21、考查点:用指针访问字符数组元素,程序D3.c的功能是将字符串yy在屏幕上输出。#includeint main(void) /*Found*/ char yy200 = ok?n; /改为:*yy /*Found*/ fol (; *yy; yy+) /改为:for putchar(*yy); return 0;2、考查点:字符数组定义,字符串输出控制,标准字符串函数的使用,程序D6.c的功能是从键盘读入一行字符(包括空格、TAB等字符)并在屏幕上显示。#includeint main(void) /*Fo

20、und*/ char yy; /改为:yy128 /*Found*/ getchar(yy); /改为:gets /*Found*/ printf(%y, yy); /改为:%sreturn 0;3、考查点:if-else形式条件的分析,数据类型选择,程序D7.c的功能是判断x和y是否相等,相等则显示x=y,不等则显示xy。#includeint main(void) /*Found*/ char x, y; /改为:int x = 39270; y = 41001; /*Found*/ if (x != y) /改为:= printf(x=y); /*Found*/ else; /去掉; p

21、rintf(xyn); return 0;4、考查点:文件路径名表示,文件打开方式选择,文件打开成功判断,程序D8.c的功能是打开文件d:te.c用于读并判断打开是否成功。#includeint main(void) FILE *fp; /*Found*/ char fileName = d:te.c; /改为: /*Found*/ fp = fopen(fileName, w); /改为:r /*Found*/ if (fp is NULL) /改为:= puts(File Open Error!); return 1; putchar(fgetc(fp); fclose(fp);retur

22、n 0;5、考查点:指针,内存分配、内存释放函数的使用,程序D9.c的功能是申请100个字节的内存空间,显示其首地址,然后释放申请到的内存空间。#include#includeint main(void) /*Found*/ char pch2; /改为:*pch /*Found*/ if (pch = (char *)malloc(100) = NULL) /将红色部分括起来 printf(malloc memory fail!n); return 1; printf(%pn, pch); /*Found*/ close(pch); /改为:freereturn 0;6、考查点:指针作函数参

23、数,函数调用,程序D14.c的功能是调用函数swap,将a和b的值交换,最后在屏幕上显示交换后的a,b之值。#include/*Found*/void swap(int x, int y); /改为:int *x, int *yint main(void) int a = 3, b = 4; /*Found*/ swap(a, b); /改为:&a, &b printf(a=%d b=%dn, a, b);return 0;/*Found*/void swap(int x, int y) /改为:int *x, int *y int tmpX; /*Found*/ _ / tmpX =*x;

24、*x = *y; /*Found*/ *y = x; /改为:*y = tmpX;7、考查点:结构体变量定义,结构体成员的输入、输出,程序D16.c的功能是worker2的信息使用结构体存储,从键盘读入其各项信息并显示。#includeint main(void) struct WKER long ID; long int num; char name20; char sex; /*Found*/ ; /改为:worker2; worker2.ID = 1L; /*Found*/ scanf(%s %s %s, &worker2.num, worker2.name, &worker2.sex)

25、; /改:%ld%s%c /*Found*/ printf(workers info: num=%s name=%s sex=%sn, worker2.num, worker2.name, worker2.sex);/改为:%ld %creturn 0;8、考查点:复合语句、变量作用域,程序D18.c的功能是从键盘上读入10个大于0的数,调用函数dispMaxNum显示其中最大的一个。 #include int maxiNum = 0;void dispMaxNum();int main(void) int i, oneNumber, maxNumber = 0; printf(Please

26、input 10 int number:); int maxNumber = 0; /*Found*/ _ / for (i = 0; i maxNumber) maxNumber = oneNumber; /*Found*/ _ / maxiNum = maxNumber /*Found*/ _ / dispMaxNum();return 0;void dispMaxNum() /*Found*/ printf(maxNumber=%dn, maxiNum);9、考查点:循环条件表示,循环体中改变循环条件,程序D1011.c的功能是从输入数据中统计正整数和负整数的个数。用输入0来结束输入,变

27、量i存放正整数个数,变量j存放负整数的个数。#includeint main(void)int i = 0, j = 0, n;printf(ninput numbers:);scanf(%d, &n);/*Found*/while (_) / n 或者n != 0if (n 0)i+;if (n 0)j+;/*Found*/_ / scanf(%d, &n);printf(i=%d,j=%d, i, j);return 0;10、考查点:枚举算法,for语句条件,条件判断,程序D1012.c的功能是显示用1、2、3、4个数字组成的互不相同且无重复数字的三位数。#includeint main

28、(void)int i, j, k;/*Found*/for (i=1; ; i+) /改为:i 5for (j=1; j5; j+)for (k=1; k5; k+)/*Found*/if (i!=k & i!=j & _) /j != kprintf(%d%d%d , i, j, k);return 0;11、考查点:数组逆序存放,循环次数控制,换位操作的实现,程序D1013.c的功能是将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1,要求改为1,4,5,6,8。#include#define N 10int main(void)int aN, i, temp;printf(please input %d integer numbers:n, N);for (i=0; iN; i+)scanf(%d, &ai);printf(the array before reverse:n);for (i=0; iN; i+)printf(%d , ai);printf(n);/*Found*/for (i=0; iN; i+) /改为:iN-1-i;temp = ai;/*Found*/

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服