收藏 分享(赏)

C语言程序改错总结.doc

上传人:cjc2202537 文档编号:5445416 上传时间:2019-03-03 格式:DOC 页数:31 大小:218.50KB
下载 相关 举报
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“, /改 为 : scanf(“%d“, /*Found*/printf(“xy2=%5dn“, /改 为 : printf(“xy2=%5dn“,xy2);return 0;2、 程 序 D2.c 的 功 能 是 调 用 函 数 , 显 示 两 个 实 数 间 最 大 的 一 个 。#includefloat fmax(float x, float y);int main(void)/*Found*/

2、float l, 1; /il = 3.0;i = 5.6f;/*Found*/printf(“fmax(%5.2f, %5.2f)=%5.2fn“, i, l, fMax(i, l); / fmaxreturn 0;/*Found*/int fmax(float x, float y) /改 :floatif (x #define PI 3.14/*Found*/#define S(bj) PI*bj*bj /改 : PI*(bj)*(bj)int main(void)/*Found*/int mianJi; /改 为 :doublemianJi = S(2+3);printf(“mian

3、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

4、)/*Found*/long jieguo = 0; /改 :floatint fm;for (fm = 1; fm int main(void)int a, b;/*Found*/scanf(“%d%d“, /中 间 加 ,while (b 0)/*Found*/_ /括 号 printf(“%dn“, a);b-;/*Found*/_ /括 号 printf(“bye bye!n“);return 0;7 考 查 点 : 输 入 格 式 控 制 、 变 量 交 换 , 程 序 D1000.c 的 功 能 是 从 键 盘 输 入 3 个 浮 点 数a,b,c(输 入 时 abc 之 间 以

5、空 格 相 隔 ), 首 先 按 照 输 入 顺 序 显 示 在 屏 幕 上 , 然 后 按 从 小 到大 顺 序 把 它 们 输 出 到 屏 幕 上 。#includeint main(void)float a, b, c, t;printf(“please input three numbers:n“);/*Found*/scanf(“%f%f“, /改 :%f%f%fprintf(“before sort:a=%g,b=%g,c=%gn“, a, b, c);if (a b)t = a;a = b;/*Found*/b = a; /改 :tif (a c)t = a;a = c;c =

6、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, j, temp, su

7、m;i = 2;j = 1;sum = 0;for (n=1; nint main(void)int x = 5, y = 9;x = x + y;y = x - y;/*Found*/x = y - x; /改 :x y;printf(“x=%d, y=%dn“, x, y);return 0;10 考 查 点 : 整 型 常 量 表 示 、 输 出 项 表 示 , 程 序 D1003.c 的 功 能 是 将 16 进 制 数 100 转换 为 10 进 制 数 输 出 。#includeint main(void)/*Found*/int i = 100; /0x100/*Found*/p

8、rintf(“%dn“, /改 :去 掉 11、 程 序 D1004.c 的 功 能 是 输 入 姓 名 , 屏 幕 输 出 问 候 。#includeint main(void)char s10;printf(“please input your name:“);/*Found*/scanf(“%c“, s); /改 %sprintf(“hello “);/*Found*/puts(s10); /改 :sreturn 0;12 考 查 点 : 输 入 数 据 分 隔 , 输 出 项 表 示 , 程 序 D1005.c 的 功 能 是 从 键 盘 读 入 两 个 整数 并 在 屏 幕 上 显

9、示 。 要 求 : 输 入 时 限 定 两 数 之 间 仅 以 逗 号 隔 开 。#includeint main(void)int a, b;/*Found*/scanf(“%d%d“, /改 :中 间 加 ,/*Found*/printf(“a=%d,b=%dn“, /去 掉 13、 考 查 点 : 输 入 格 式 控 制 、 if 语 句 , 程 序 D1006.c 的 功 能 是 判 断 输 入 的 数 据 是 否与 已 经 给 出 的 数 据 j 相 等 。#includeint main(void)long int i = 79870, j = 23;/*Found*/scanf(

10、“%f“, /改 :%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 int main(v

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

12、 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 m

13、ain(void)char 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 的 功 能 是 从键 盘 输 入

14、5 个 整 数 , 保 存 到 一 整 型 数 组 变 量 中 ( 此 数 组 只 能 保 存 5 个 数 ) , 并 在 屏 幕上 按 逆 序 输 出 。#includeint main(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 个 浮 点数 ,并 输 出 这 组 数

15、中 的 最 大 值 和 最 小 值 。#includeint main(void)float a10, max, min;int i;printf(“Please input 10 floats“);for (i=0; i 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); /用 定 义 形 式

16、 : int nint main(void)int i;for (i=1; ivoid outnum(void);int main(void)int i;for (i=0; i/*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;/*

17、Found*/int Average(x, y) /int x, int yint result;result = (x + 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

18、:“);scanf(“%d“, for (i=0; iint main(void)/*Found*/char yy200 = “ok?n“; /改 为 : *yy/*Found*/fol (; *yy; yy+) /改 为 : forputchar(*yy);return 0;2、 考 查 点 : 字 符 数 组 定 义 , 字 符 串 输 出 控 制 , 标 准 字 符 串 函 数 的 使 用 , 程 序 D6.c 的功 能 是 从 键 盘 读 入 一 行 字 符 (包 括 空 格 、 TAB 等 字 符 )并 在 屏 幕 上 显 示 。#includeint main(void)/*Fou

19、nd*/char yy; /改 为 : yy128/*Found*/getchar(yy); /改 为 : gets/*Found*/printf(“%y“, yy); /改 为 : %sreturn 0;3、 考 查 点 : if-else 形 式 条 件 的 分 析 , 数 据 类 型 选 择 , 程 序 D7.c 的 功 能 是 判 断 x 和y 是 否 相 等 , 相 等 则 显 示 x=y, 不 等 则 显 示 xyn“);return 0;4、 考 查 点 : 文 件 路 径 名 表 示 , 文 件 打 开 方 式 选 择 , 文 件 打 开 成 功 判 断 , 程 序 D8.c

20、的功 能 是 打 开 文 件 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);return 0;5、 考 查 点 : 指 针 ,内 存 分 配 、 内 存 释

21、 放 函 数 的 使 用 , 程 序 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);

22、/改 为 : freereturn 0;6、 考 查 点 : 指 针 作 函 数 参 数 , 函 数 调 用 , 程 序 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); /改 为 : return 0;/*Found*/void swap(int x, int

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

24、Found*/ ; /改 为 : worker2;worker2.ID = 1L;/*Found*/scanf(“%s %s %s“, /改 : %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 显 示 其

25、 中 最 大 的 一 个 。 #include int maxiNum = 0;void dispMaxNum();int main(void)int i, oneNumber, maxNumber = 0;printf(“Please input 10 int number:“);int maxNumber = 0;/*Found*/_ /for (i = 0; i maxNumber)maxNumber = oneNumber;/*Found*/_ / maxiNum = maxNumber/*Found*/_ /dispMaxNum();return 0;void dispMaxNum(

26、)/*Found*/printf(“maxNumber=%dn“, maxiNum);9、 考 查 点 : 循 环 条 件 表 示 , 循 环 体 中 改 变 循 环 条 件 , 程 序 D1011.c 的 功 能 是 从 输 入数 据 中 统 计 正 整 数 和 负 整 数 的 个 数 。 用 输 入 0 来 结 束 输 入 , 变 量 i 存 放 正 整 数 个 数 ,变 量 j 存 放 负 整 数 的 个 数 。#includeint main(void)int i = 0, j = 0, n;printf(“ninput numbers:“);scanf(“%d“, /*Found*/

27、while (_) / n 或 者 n != 0if (n 0)i+;if (n int main(void)int i, j, k;/*Found*/for (i=1; ; i+) /改 为 : i #define N 10int main(void)int aN, i, temp;printf(“please input %d integer numbers:n“, N);for (i=0; i#include int main(void)int i, j, k;char a = “language“, t;k = strlen(a);for (i=0; i aj) /改 为 : ai v

28、oid input(int a, int n);int main(void)int a10, i;/*Found*/input(a10, 10); /改 为 : afor (i=0; i#includevoid vowel(char str1, char str2);int main(void)char str181, str281;printf(“please input the string:n“);gets(str1);/*Found*/vowel(_); /改 为 : str1, str2printf(“the vowel string is:n“);puts(str2);if (st

29、rlen(str2) = 0)printf(“NONE!n“);return 0;void vowel(char str1, char str2)int i, j = 0;/*Found*/for (i=0; _; i+) /改 为 : str1iif (str1i=A | str1i=E | str1i=I| str1i=O | str1i=U | str1i=a| str1i=e | str1i=i | str1i=o| str1i=u)str2j = str1i;j+;str2j = 0;15、 考 查 点 : 函 数 声 明 、 函 数 定 义 、 函 数 调 用 , 表 达 式 统

30、计 , 程 序 D1019.c 的 功 能 是计 算 输 出 10 个 学 生 的 平 均 成 绩 。#include/*Found*/average(double x, y); /改 为 : double average 和 int yint main(void)int i;double score, total;double aver;printf(“Please enter the 1s graden“);scanf(“%lf“, for (i=2; iint f(int n);/*Found*/int main(void); /改 为 : 去 掉 ; printf(“F(7)=%dn“

31、, f(7);return 0;int f(int n)if (n /*Found*/int add(float x, float y); /改 为 : floatint main(void)float a, b;scanf(“%f%f“, /*Found*/printf(“sum=%fn“, add(x, y); /改 为 : a, breturn 0;/*Found*/float add(float x, float y); /改 为 : 去 掉 ;return x + y;18、 程 序 D1054.C 的 功 能 是 : 从 键 盘 读 入 两 个 整 数 , 对 它 们 进 行 按

32、位 异 或 操 作 , 把 操 作结 果 按 二 进 制 位 放 在 字 符 数 组 str 中 , 最 后 输 出 该 字 符 串 。 提 示 : 第 2 个 空 建 议 使 用条 件 表 达 式 (? 表 达 式 )实 现 !Please input num1 and num2 : 127 0127 0 = 00000000000000000000000001111111图 1 程序运行效果示例Please input num1 and num2 : 123 456123 456 = 00000000000000000000000110110011#include int main(voi

33、d) unsigned long int number, num1, num2, mask;int i;char str33;printf(“Please input num1 and num2 : “);scanf(“%lu %lu“, /*Found*/mask = _; /改 为 : 0x80000000number = num1 num2;for(i=0; i= 1;str32 = 0;printf(“%lu %lu = %sn“, num1, num2, str);return 0;难 度 31、 考 查 点 : 符 号 常 量 定 义 , const 常 量 的 使 用 , 指 针

34、 变 量 的 移 位 操 作 , 程 序 D10.c的 功 能 是 将 字 符 串 str2 显 示 在 屏 幕 上 。#include/*Found*/#define START /改 为 : #define START /*Found*/#define NEXT /改 为 : #define NEXT int main(void)char *str2 = “13125176247“;const int i = 0;for (printf(“n“); str2i; )STARTputchar(str2i);/*Found*/i+; /改 为 : str2+NEXTreturn 0;2、 考

35、查 点 : 字 符 数 组 下 标 控 制 , 字 符 串 结 束 标 志 , 条 件 表 达 , 程 序 D13.c 的 功 能 是从 键 盘 输 入 最 多 10 个 字 符 (遇 换 行 则 停 止 输 入 )到 数 组 Buf 中 , 然 后 在 屏 幕 上 显 示 。#includeint main(void)char c, Buf11;int pos;/*Found*/for (pos = 1; pos void swap(int *x, int *y);int main(void)int a = 3, b = 4;/*Found*/swap(*a, *b); /改 为 : /去

36、掉 void swap(int *x, int *y)int *tmp, tsX;/*Found*/*tmp = x; /改 为 : tsX = *x*x = *y;/*Found*/*y = *tmp; /改 为 : tsX4、 考 查 点 : 函 数 定 义 、 字 符 数 组 、 静 态 变 量 的 使 用 、 指 针 作 函 数 参 数 , 函 数 调 用 ,程 序 D17.c 的 功 能 是 函 数 userLogin 的 功 能 主 要 是 统 计 并 返 回 登 录 的 用 户 数 , 用 户 名最 长 30 字 节 。#include long userLogin(char *

37、userName);int main(void)/*Found*/char *userName31; /改 为 : userName3131long curUserCnt = 0;while (1)printf(“user %ld, input your Name: “, curUserCnt+1);scanf(“%s“, userName31);curUserCnt = userLogin(userName31);return 0;long userLogin(char *userName)/*Found*/long userNum = 0; /改 为 : static longuserNu

38、m+;printf(“welcome user %s. There have %ld users in system.n“,userName, userNum);/*Found*/return ; /改 为 : userNum;5、 考 查 点 : 函 数 返 回 值 、 字 符 变 量 、 字 符 指 针 变 量 、 字 符 串 结 束 , 程 序 D19.c 的 功能 是 将 inBuf 中 字 符 串 拆 分 成 一 个 个 的 单 词 。程 序 说 明 :(1)单 词 之 间 的 分 隔 符 由 串 divChar, 程 序 中 定 义 为 “;?!,./”。(2)函 数 getStr

39、FromBuf 的 功 能 是 从 Buf 的 开 始 处 寻 找 第 一 个 单 词 , 将 找 到 的单 词 作 为 一 个 字 符 串 复 制 到 Str 处 , divStr 指 明 单 词 间 的 分 隔 符 。 GetStrFromBuf 的返 回 值 指 向 已 找 到 单 词 的 下 一 个 字 符 。(3)函 数 charInStr 的 功 能 是 判 断 字 符 t 是 否 出 现 在 串 Str 中 。(4)主 程 序 的 功 能 是 将 inBuf 中 的 所 有 单 词 在 屏 幕 上 显 示 出 来 。#include#define Yes 1#define No

40、0char *getStrFromBuf(char *Buf, char *Str, char *divStr);int charInStr(char *Str, char t);int main(void)char inBuf100 = “how old are/ you?“, *point, oneWord20;char divChar = “ ;?!,./“;point = inBuf;while (*point)/*Found*/getStrFromBuf(point, oneWord, divChar); /右 边 加 上 :point=if (*oneWord)puts(oneWo

41、rd);return 0;int charInStr(char *Str, char t)for (; *Str; Str+)/*Found*/if (*Str = *t) /改 为 : t/*Found*/return No; /改 为 : Yes/*Found*/return Yes; /改 为 : Nochar *getStrFromBuf(char *Buf, char *Str, char *divStr)for (; *Buf; Buf+)if (charInStr(divStr, *Buf) = No)break;for (; *Buf; Buf+)if (charInStr(d

42、ivStr, *Buf) = Yes)break;/*Found*/Str = *Buf; /改 为 : * StrStr+;/*Found*/*Str = 0; /改 为 : 0/*Found*/return ; /改 为 : Buf6、 考 查 点 : 折 半 查 找 算 法 、 函 数 调 用 、 数 组 作 参 数 , 程 序 D1026.c 的 功 能 是 函 数binary 为 折 半 查 找 key 值 。 数 组 中 元 素 值 已 递 增 排 序 , 若 找 到 key 则 返 回 对 应 的 下标 , 否 则 返 回 1。 主 函 数 对 该 函 数 进 行 验 证 。#includeint binary(int a , int n, int key);int main(void)int data10 = 2, 5, 7, 13, 16, 18, 23, 26, 28, 35

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 工作总结

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报