大学C语言期末考试练习题带详解答案.pdf

上传人:文*** 文档编号:93396871 上传时间:2023-07-04 格式:PDF 页数:58 大小:7.15MB
返回 下载 相关 举报
大学C语言期末考试练习题带详解答案.pdf_第1页
第1页 / 共58页
大学C语言期末考试练习题带详解答案.pdf_第2页
第2页 / 共58页
点击查看更多>>
资源描述

《大学C语言期末考试练习题带详解答案.pdf》由会员分享,可在线阅读,更多相关《大学C语言期末考试练习题带详解答案.pdf(58页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、一、单 项 选 择 题 1.(A)是 构 成 C 语 言 程 序 的 基 本 单 位。A、函 数 B、过 程 C、子 程 序 D、子 例 程 2.C 语 言 程 序 从 C 开 始 执 行。A)程 序 中 第 条 可 执 行 语 句 B)程 序 中 第 一 个 函 数 C)程 序 中 的 m ain函 数 D)包 含 文 件 中 的 第 一 个 函 数 3、以 下 说 法 中 正 确 的 是(C)0A、C 语 言 程 序 总 是 从 第 一 个 定 义 的 函 数 开 始 执 行 B、在 C 语 言 程 序 中,要 调 用 的 函 数 必 须 在 m ain()函 数 中 定 义 C、C 语

2、言 程 序 总 是 从 m ain()函 数 开 始 执 行 D、C 语 言 程 序 中 的 main()函 数 必 须 放 在 程 序 的 开 始 部 分 4.下 列 关 于 C 语 言 的 说 法 错 误 的 是(B)。A)C程 序 的 工 作 过 程 是 编 辑、编 译、连 接、运 行 B)C语 言 不 区 分 大 小 写。C)C 程 序 的 三 种 基 本 结 构 是 顺 序、选 择、循 环 D)C 程 序 从 m ain函 数 开 始 执 行 5.下 列 正 确 的 标 识 符 是(C)oA.-al B.ai C.a2_i D.int t5 8题 为 相 同 类 型 题 考 点:标

3、识 符 的 命 名 规 则(1)只 能 由 字 母、数 字、下 划 线 构 成(2)数 字 不 能 作 为 标 识 符 的 开 头(3)关 键 字 不 能 作 为 标 识 符 选 项 A 中 的,选 项 B 中“与 不 满 足(1);选 项 D 中 的 in t为 关 键 字,不 满 足(3)6.下 列 C 语 言 用 户 标 识 符 中 合 法 的 是(B)。A)3ax B)x C)case D)-e2 E)union选 项 A 中 的 标 识 符 以 数 字 开 头 不 满 足(2);选 项 C,E 均 为 为 关 键 字,不 满 足(3);选 项 D 中 的 不 满 足(1);7.下 列

4、 四 组 选 项 中,正 确 的 C 语 言 标 识 符 是(C)。A)%x B)a+b C)al23 D)123选 项 A 中 的“”,选 项 B 中“+”不 满 足(1);选 项 D 中 的 标 识 符 以 数 字 开 头 不 满 足 8、下 列 四 组 字 符 串 中 都 可 以 用 作 C 语 言 程 序 中 的 标 识 符 的 是(A)。A、print _3d db8 aBc B、Iam one half startSit 3paiC、str_l Cpp pow while D、Pxq My-book line#His.age选 项 B 中 的,选 项 D 中 不 满 足;选 项 C

5、 中 的 w hile为 关 键字,不 满 足(3)9.C语 言 中 的 简 单 数 据 类 型 包 括(D)。A、整 型、实 型、逻 辑 型 B、整 型、实 型、逻 辑 型、字 符 型 C、整 型、字 符 型、逻 辑 型 D、整 型、实 型、字 符 型 10.在 C 语 言 程 序 中,表 达 式 5%2 的 结 果 是 C。A)2.5 B)2 C)1 D)3详 见 教 材 P52-53.%为 求 余 运 算 符,该 运 算 符 只 能 对 整 型 数 据 进 行 运 算。且 符 号 与 被 模 数 相 同。5%2=1;5%(-2)=1:(-5)%2=-1;(-5)%(-2)=-1;/为 求

6、 商 运 算 符,该 运 算 符 能 够 对 整 型、字 符、浮 点 等 类 型 的 数 据 进 行 运 算,5/2=211.如 果 inta=3,b=4;则 条 件 表 达 式、b?a:b的 值 是 上 一。A)3 B)4 C)0 D)1详 见 教 材 P97.表 达 式 I?表 达 式 2:表 达 式 3先 计 算 表 达 式 1,若 表 达 式 1成 立,则 选 择 计 算 表 达 式 2,并 表 达 式 2 的 值 作 为 整 个 大 表 达 式 的 值;若 表 达 式 1不 成 立,则 选 择 计 算 表 达 式 3,并 将 表 达 式 3 的 值 作 为 整 个 大 表 达 式 的

7、 值 此 题 中 的 ab相 当 于 表 达 式 1,a 相 当 于 表 达 式 2,b 相 当 于 表 达 式 3.a 为 3,b 为 4。ab表 达 式 1成 立,因 此 计 算 表 达 式 2,并 将 表 达 式 2 的 值 即 a 中 的 值,并 作 为 整 个 表 达 式 的 值,因 此 整 个 表 达 式 的 值 为 312.若 int x=2,y=3,z=4 则 表 达 式 x z?y:z 的 结 果 是(B).A)4 B)3 C)2 D)0 E)113.C 语 言 中,关 系 表 达 式 和 逻 辑 表 达 式 的 值 是(B)。A)0 B)0或 1 C)1 口)丁 或 置 1

8、4.下 面(D)表 达 式 的 值 为 4.A)11/3 B)11.0/3C)(float)11/3 D)(int)(11.0/3+0.5)1476题 为 同 一 类 型 详 见 教 材 P54-56.(1)相 同 数 据 类 型 的 元 素 进 行 数 学 运 算(+、-、*、/)得 到 结 果 还 保 持 原 数 据 类 型。(2)不 同 数 据 类 型 的 元 素 进 行 数 学 运 算,先 要 统 一 数 据 类 型,统 一 的 标 准 是 低 精 度 类 型 转 换 为 高 精 度 的 数 据 类 型。选 项 A,11与 3 为 两 个 整 数,11/3结 果 的 数 据 类 型 也

9、 应 为 整 数,因 此 将 3.666666的 小 数 部 分 全 部 舍 掉,仅 保 留 整 数,因 此 11/3=3.选 项 B,11.0为 实 数,3 为 整 数,因 此 首 先 要 统 一 数 据 类 型,将 整 型 数 据 3 转 换 为 3.0,转 换 后 数 据 类 型 统 为 实 型 数 据,选 项 B 变 为 11.0/3.0,结 果 的 数 据 类 型 也 应 为 实 型 数 据,因 此 选 项 B 11.0/3=3.666666选 项 C,先 将 整 数 11强 制 类 型 转 换,转 换 为 实 型 11.0,因 此 选 项 C 变 为 11.0/3,其 后 计 算

10、过 程、结 果 与 选 项 B 同选 项 D,首 先 计 算 1 1.0/3,其 计 算 过 程、结 果 与 选 项 B 同,得 到 3.666666;再 计 算 3.666666+0.5=4.166666,最 后 将 4.166666强 制 类 型 转 换 为 整 型,即 将 其 小 数 部 分 全 部 舍 掉,结 果 为 415.设 整 型 变 量 a=2,则 执 行 下 列 语 句 后,浮 点 型 变 量 b 的 值 不 为 0.5的 是(B)A.b=1.0/a B.b=(float)(l/a)C.b=l/(float)a D.b=l/(a*1.0)16.若“血 心 打(13.8;,则

11、执 行 力=(血)仅 3后,n 的 值 是(A)A.l B.4 C.4.333333 D.4.6“(in t*表 示 将 f 中 的 值 强 制 类 型 转 换 为 整 型,即 将 13.8的 小 数 部 分 舍 掉,转 换 为 13;然 后 计 算 1 3%3,结 果 为 I,再 将 结 果 赋 给 变 量 n,因 此 n 的 值 为 117.以 下 对 一 维 数 组 a 的 正 确 说 明 是:I)A)char a(10);B)int a;C)int k=5,ak;D)char a3=a,b,c;详 见 教 材 P143 144,一 维 数 组 的 定 义、初 始 化 类 型 符 数 组

12、 名 常 量 表 达 式 类 型 符 是 指 数 组 中 数 组 元 素 的 类 型:数 组 名 要 符 合 标 识 符 命 名 规 则:常 量 表 达 式 是 指 数 组 的 长 度(数 组 中 包 含 元 素 的 个 数),其 值 只 能 是 整 数,不 可 以 是 变 量,而 且 从 1开 始 计 数。选 项 A,常 量 表 达 式 只 能 放 在 中 括 号 门 中 选 项 B,只 有 在 对 数 组 初 始 化(即 赋 值)的 时 候 才 可 以 省 略 数 组 的 长 度,B 中 并 未 对 a 进 行 初 始 化。选 项 C,常 量 表 达 式 不 能 为 变 量。18.以 下

13、能 对 一 维 数 组 a 进 行 初 始 化 的 语 句 是:(C)A.int a5=(0,l,2,3,4,)B.int a(5)=C.int a3=0,l,2 D.int a5=10*l详 见 教 材 P145,一 维 数 组 的 定 义、初 始 化 选 项 B,D,常 量 表 达 式 只 能 放 在 中 括 号 口 中 选 项 A,数 组 可 以 看 做 是 若 干 个 相 同 数 据 类 型 元 素 的 有 序 集 合,因 此 以 集 合 的 形 式 对 其 初 始 化,使 用 对 其 初 始 化,选 项 A 用 了().19.在 C 语 言 中 对 一 维 整 型 数 组 的 正 确

14、 定 义 为 DA)int a(10);B)int n=10,an;C)int n;an;D)#define N 10int aN;20、已 知:int a 1 0;则 对 a 数 组 元 素 的 正 确 引 用 是(D)。A、a10 B、a3.5 C、a(5)D、a0详 见 教 材 P 1 4 4,数 组 元 素 的 引 用 数 组 名 下 标 引 用 数 组 元 素 时,口 中 的 卜 标 为 逻 辑 地 址 卜 标,只 能 为 整 数,可 以 为 变 量,且 从 0 开 始 计 数 int a10表 示 定 义 了 个 包 含 1 0个 整 型 数 据 的 数 组 a,数 组 元 素 的

15、 逻 辑 地 址 下 标 范 围 为 0 9,即 a 0 表 示 组 中 第 1 个 元 素;a l 表 示 组 中 第 2 个 元 素;a 2 表 示 组 中 第 3 个 元素;;a 9 表 示 组 中 第 10个 元 素.选 项 A,超 过 了 数 组 a 的 逻 辑 地 址 下 标 范 围;选 项 B,逻 辑 地 址 下 标 只 能 为 整 数 选 项 C,逻 辑 地 址 下 标 只 能 放 在 口 中 21.若 有 以 下 数 组 说 明,则 i=10;aai元 素 数 值 是(C)。int a12=l,4,7,10,2,5,8,11,3,6,9,12;A.10 B.9 C.6 D.5

16、先 算 aai内 层 的 a i,由 于 i=10,因 此 ai即 a10.a10对 应 下 面 数 组 中 的 元 素 为 9.因 此 aai即 为 a9a9对 应 下 面 数 组 中 的 元 素 为 6.因 此 a9即 为 622.若 有 说 明:int a口 3=1,2,3,4,5,6,7;则 数 组 a 的 第 一 维 的 大 小 为:(B)A.2 B.3 C.4 D.无 确 定 值 5 7 D)3 69二 维 数 组 的 一 维 大 小,即 指 二 维 数 组 的 行 数,在 本 题 中,按 行 对 二 维 数 组 赋 值,因 此 内 层 有 几 个 大 括 号,数 组 就 有 几

17、行 23.对 二 维 数 组 的 正 确 定 义 是(C)详 见 教 材 P149 1 5 2,二 维 数 组 的 定 义、初 始 化 类 型 符 数 组 名 常 量 表 达 式 常 量 表 达 式 二 维 数 组 可 以 看 做 是 矩 阵 类 型 符 是 指 数 组 中 数 组 元 素 的 类 型;数 组 名 要 符 合 标 识 符 命 名 规 则;第 一 个 常 量 表 达 式 是 指 数 组 的 行 数;第 二 个 常 量 表 达 式 是 指 数 组 的 列 数:常 量 表 达 式 的 值 只 能 是 整 数,不 可 以 是 变 量,而 且 从 1开 始 计 数。一 维 数 组 初 始

18、 化 时 可 以 省 略 数 组 长 度 二 维 数 组 初 始 化 时 可 以 省 略 行 数,但 不 能 省 略 列 数 选 项 A,B,都 省 略 了 列 数 选 项 D,不 符 合 二 维 数 组 定 义 的 一 般 形 式,行、列 常 量 表 达 式 应 该 放 在 不 同 的 口 中 A.int a=1,2,3,4,5,6;B.int a=1,2,3,4,5,6;C.inta 3=1,2,3,4,5,6;D.int a2,3=l,2,3,4,5,6;24.已 知 inta34;则 对 数 组 元 素 引 用 正 确 的 是 一 A)a24 B)al,3 C)a20 D)a(2)(l

19、)详 见 教 材 P 1 5 0,数 组 元 素 的 引 用 数 组 名 下 标 下 标 引 用 数 组 元 素 时,口 中 的 卜 标 为 逻 辑 地 址 卜 标,只 能 为 整 数,可 以 为 变 量,且 从 0 开 始 计 数 第 一 个 下 标 表 示 行 逻 辑 地 址 下 标,第 二 个 下 标 表 示 列 逻 辑 地 址 下 标。本 题 图 示 详 见 P I4 9图 6.7因 此 a 的 行 逻 辑 地 址 范 围 J 2;a 的 列 逻 辑 地 址 范 围 0-3;选 项 A,列 逻 辑 地 址 下 标 超 过 范 围选 项 B,D,的 引 用 形 式 不 正 确。25.C语

20、 言 中 函 数 返 回 俏 的 类 型 是 山 A 决 定 的.A)函 数 定 义 时 指 定 的 类 型 B)return语 句 中 的 表 达 式 类 型 C)调 用 该 函 数 时 的 实 参 的 数 据 类 型 D)形 参 的 数 据 类 型 26.在 C 语 言 中,函 数 的 数 据 类 型 是 指(A)A 函 数 返 回 值 的 数 据 类 型 B.函 数 形 参 的 数 据 类 型 C 调 用 该 函 数 时 的 实 参 的 数 据 类 型 D.任 意 指 定 的 数 据 类 型 27.在 函 数 调 用 时,以 下 说 法 正 确 的 是(B)A.函 数 调 用 后 必 须

21、 带 回 返 回 值 B.实 际 参 数 和 形 式 参 数 可 以 同 名 C.函 数 间 的 数 据 传 递 不 可 以 使 用 全 局 变 量 D.主 调 函 数 和 被 调 函 数 总 是 在 同 一 个 文 件 里 28.在 C 语 言 中,表 示 静 态 存 储 类 别 的 关 键 字 是:(C)A)auto B)register C)static D)extern29.未 指 定 存 储 类 别 的 变 量,其 隐 含 的 存 储 类 别 为(A)。A)auto B)static C)extem D)register30.若 有 以 下 说 明 语 句:struct studen

22、t int num;char name;float score;stu;则 下 面 的 叙 述 不 正 确 的 是:(D)A.struct是 结 构 体 类 型 的 关 键 字 B.struct student是 用 户 定 义 的 结 构 体 类 型 C.num,score都 是 结 构 体 成 员 名 D.stu是 用 户 定 义 的 结 构 体 类 型 名 31.若 有 以 下 说 明 语 句:struct date int year;int month;int day;Jbrithday;则 下 面 的 叙 述 不 正 确 的 是 _.A)struct是 声 明 结 构 体 类 型 时

23、 用 的 关 键 字 B)struct d a te是 用 户 定 义 的 结 构 体 类 型 名 C)brithday是 用 户 定 义 的 结 构 体 类 型 名 D)year,day都 是 结 构 体 成 员 名 32.以 下 对 结 构 变 量 stu l中 成 员 a g e的 非 法 引 用 是 Bstruct student int age;int num;)stul,*p;p=&stu 1;A)stu l.age B)student.age C)p-age D)(*p).age33.设 有 如 下 定 义:struck sk int a;float b;data;int*p;若

24、 要 使 P 指 向 d ata中 的 a 域,正 确 的 赋 值 语 句 是 一 CA)p=&a;B)p=data.a;C)p=&data.a;D)*p=data.a;34.设 有 以 下 说 明 语 句:typedef struct stu int a;float b;stutype;则 下 面 叙 述 中 错 误 的 是(D)。A、struct是 结 构 类 型 的 关 键 字 B、struct s tu是 用 户 定 义 的 结 构 类 型 C、a 和 b 都 是 结 构 成 员 名 D、stutype是 用 户 定 义 的 结 构 体 变 量 名 35.语 句 int*p;说 明 了

25、 CA)p是 指 向 一 维 数 组 的 指 针 B)p是 指 向 函 数 的 指 针,该 函 数 返 回 一 in t型 数 据 C)p是 指 向 in t型 数 据 的 指 针 指 针 的 定 义 教 材 P223D)p是 函 数 名,该 函 数 返 回 一 指 向 in t型 数 据 的 指 针 36.下 列 不 正 确 的 定 义 是(A)。A.int*p=&i,i;B.int*p,i;C.int i,*p=&i;D.int i,*p;选 项 A 先 定 义 一 个 整 型 指 针 变 量 p,然 后 将 变 量 i 的 地 址 赋 给 p。然 而 此 时 还 未 定 义 变 量 i

26、因 此 编 译 器 无 法 获 得 变 量 i 的 地 址。(A 与 C 对 比,选 项 C 先 定 义 变 量 i,则 在 内 存 中 为 i 分 配 空 间,因 此 i 在 内 存 空 间 的 地 址 就 可 以 确 定 了;然 后 再 定 义 p,此 时 可 以 为 p 赋 i 的 地 址,C 正 确)37.若 有 说 明:int n=2,*p=&n,*q=p,则 以 下 非 法 的 赋 值 语 句 是:(D)A)p=q B)*p=*q C)n=*q D)p=np,q同 为 整 型 指 针 变 量,二 者 里 面 仅 能 存 放 整 型 变 量 的 地 址。选 项 A,q 中 为 地 址

27、,因 此 可 将 此 地 址 赋 给 p选 项 B,*p表 示 p 所 指 向 对 象 n 的 内 容,即 一 个 整 数;*q 表 示 q 所 指 向 对 象 的 内 容,由 于 在 定 义 q 时 为 其 初 始 化,将 p 中 n 的 地 址 给 q,因 此 p 中 存 放 n 的 地 址,*q表 示 q 所 指 向 对 象 n 的 内 容.因 此*p=*q相 当 于 n=n;选 项 C,n=*q 等 价 于 n=n;选 项 D,p 中 只 能 存 放 地 址,不 能 将 n 中 的 整 数 值 赋 给 p38.有 语 句:inta10,;则 是 对 指 针 变 量 P 的 正 确 定

28、义 和 初 始 化。A)int p=*a;B)int*p=a;C)int p=&a;D)int*p=&a;选 项 A,a 是 数 组 名,不 是 指 针 变 量 名,因 此 不 可 用*标 注 数 组 名 a选 项 C,a 是 数 组 名,数 组 名 就 是 地 址,无 需 再 用 地 址 符 号。而 且 在 定 义 指 针 变 量 p 时,应 在 变 量 名 前 加*,标 明 p 是 指 针 变 量 选 项 D,a 是 数 组 名,数 组 名 就 是 地 址,无 需 再 用 地 址 符 号。39.若 有 说 明 语 句“int a5,*p=a;,则 对 数 组 元 素 的 正 确 引 用 是

29、(C)。A.ap B.pa C*(p+2)D.p+2首 先 定 义 一 个 整 型 数 组 a,a 的 长 度 为 5,然 后 定 义 一 个 指 针 变 量 p,并 同 时 对 p 进 行 初 始 化,将 数 组 a 的 地 址 赋 给 p。因 此 此 时 p 中 存 放 的 数 组 a 的 首 地 址,即 数 组 中 第 一 个 元 素 a0的 地 址。对 于 数 组 元 素 下 标 的 引 用(详 见 P144),一 般 形 式 数 组 名 下 标 其 中 下 标 为 逻 辑 地 址 下 标,从 0 开 始 计 数,方 括 号 中 的 下 标 可 以 是 变 量,可 以 是 表 达 式,

30、但 结 果 一 定 要 是 整 数。选 项 A,p 中 存 放 的 是 地 址,不 是 整 数,不 能 做 数 组 元 素 的 下 标 选 项 B,a 是 数 组 名,数 组 名 就 是 地 址,不 是 整 数,不 能 做 数 组 元 素 的 下 标 选 项 C,(重 点!详 见 p231 234)p+2表 示 指 向 同 数 组 中 的 下 两 个 元 素 的 地 址,当 前 p 指 向 a 0,则 p+2表 示 a 的 地 址,因 此*(p+2)表 示 a2的 内 容 40.有 如 下 程 序 int a 10=1,2,3,4,5,6,7,8,9,10,*P=a;则 数 值 为 9 的 表

31、 达 式 是 A)*P+9 B)*(P+8)C)*P+=9 D)P+8(重 点!!详 见 p231234)首 先 定 义 一 个 整 型 数 组 a,a 的 长 度 为 5,然 后 定 义 一 个 指 针 变 量 P,并 同 时 对 P 进 行 初 始 化,将 数 组 a 的 地 址 赋 给 P。因 此 此 时 P 中 存 放 的 数 组 a 的 首 地 址,即 数 组 中 第 一 个 元 素 aO的 地 址。数 组 中 9对 应 的 是 a 8,选 项 B,P+8表 示 数 组 中 后 8个 元 素 的 地 址,即 a8的 地 址。*(P+8)则 表 示 该 地 址 内 所 存 放 的 内

32、容,即 a8的 值。选 项 A,*P表 示 P 所 指 向 对 象 的 内 容,此 时 P 指 向 a,*P 即 a0的 值 1.*P+9=l+9=10选 项 C,*P表 示 P 所 指 向 对 象 的 内 容,此 时 P 指 向 a0,*P即 a0的 值。因 此*P+=9即*p=*p+%等 价 于 a0=a0+9.选 项 D,P+8表 示 数 组 中 后 8 个 元 素 的 地 址,即 a网 的 地 址,而 非 a8中 的 值。41.在 C 语 言 中,以 D 作 为 字 符 串 结 束 标 志 A)n B)C)O D),0,42.下 列 数 据 中 属 于“字 符 串 常 量”的 是(AA

33、.a B.ABC C.abc0 D.a若 干 个 字 符 构 成 字 符 串 在 C 语 言 中,用 单 引 号 标 识 字 符;用 双 引 号 标 识 字 符 串 选 项 B,C,分 别 用 和“标 识 字 符 串 选 项 D,标 识 字 符。43.已 知 charx=hello,y=h,e,a;b,e);,则 关 于 两 个 数 组 长 度 的 正 确 描 述 是 B.A)相 同 B)x大 于 y C)x小 于 y D)以 上 答 案 都 不 对 C 语 言 中,字 符 串 后 面 需 要 一 个 结 束 标 志 位 通 常 系 统 会 自 动 添 加。对 一 维 数 组 初 始 化 时

34、可 采 用 字 符 串 的 形 式(例 如 本 题 数 组 x),也 可 采 用 字 符 集 合 的 形 式(例 如 本 题 数 组 y)。在 以 字 符 串 形 式 初 始 化 时,数 组 x 不 尽 要 存 储 字 符 串 中 的 字 符,还 要 存 储 字 符 串 后 的 结 束 标 志 位,因 此 数 组 x 的 长 度 为 6;在 以 字 符 集 合 形 式 初 始 化 时,数 组 y,仅 存 储 集 合 中 的 元 素,因 此 数 组 y 长 度 为 5二、读 程 序 基 本 输 入 输 出 及 流 程 控 制#include main()int a=l,b=3,c=5;if(c=

35、a+b)printf(MyesnM);elseprintf(Mnonu);运 行 结 果 为:no详 见 教 材 P8 9 选 择 结 构 详 见 教 材 P9 1关 系 符 号 详 见 附 录 D p378符 号 的 优 先 级=表 示 判 断 符 号 两 边 的 值 是 否 相 等;=表 示 将 符 号 右 边 的 值 赋 给 左 边 的 变 量 本 题 考 点 是 选 择 结 构 3 种 基 本 形 式 的 第 二 种 选 择 结 构 三 种 一 般 形 式 中 的“语 句”皆 为 复 合 语 句,复 合 语 句 要 用 括 起 来,只 有 当 复 合 语 句 中 只 包 括 一 条 语

36、 句 时 可 以 省 略,此 题 即 如 此,因 此 两 个 printf操 作 没 有 加 若 c=a+b 成 立,则 执 行 printf(yesn);否 则(即 c=a+b不 成 立),执 行 printf(non);+的 优 先 级 高 于=,因 此 先 算 a+b,值 为 4,表 达 式 5=4 不 成 立,因 此 执 行 printf(non);BP输 出 字 符 串 no2.#include main()int a=12,b=-34,c=56,min=0;min=a;if(minb)min=b;if(minc)min=c;printf(nmin=%dn,min);)运 行 结 果

37、 为:min=-34详 见 教 材 p 8 9选 择 结 构 本 题 考 点 是 选 择 结 构 3 种 基 本 形 式 的 第 一 种 一 共 包 含 了 两 个 选 择 结 构(两 个 i f语 句)定 义 变 量,并 赋 值 此 时 a=12,b=-34,c=56,min=O将 a 中 值 拷 贝,赋 给 m in,覆 盖 了 m in中 的 0,此 时 m in中 的 值 被 更 新 为 12。若 minb成 立,则 执 行 min=b;若 minc成 立,则 执 行 min=c;输 出 m in中 的 值 12大 于-34,第 一 个 if语 句 的 表 达 式 成 立,因 此 执

38、行 m in=b;执 行 后 m in中 的 值 被 更 新 为-34.-3 4小 于 56,第 二 个 i f语 句 的 表 达 式 不 成 立,因 此 不 执 行 min=c;最 后 输 出 m in中 的 值,为-34.3.#include main()int x=2,y=-l,z=5;if(xy)if(y0)z=0;elsez=z+l;printf(dn,z);)运 行 结 果 为:5遇 到 选 择 结 构,首 先 要 明 确 条 件 表 达 式 成 立 时 执 行 哪 些 操 作。本 题 中,第 一 个 i f语 句,其 后 的 复 合 语 句 没 有 大 括 号,说 明 复 合 语

39、 句 中 只 包 含 一 条 语 句,进 而 省 略 了。内 层 的 if.else.是 选 择 结 构 的 第 二 种 基 本 形 式,在 结 构 上 视 为 一 条 语 句。因 此 内 层 的 if.else.作 为 第 一 个 if语 句 的 复 合 语 句。若 表 达 式 x v y成 立,则 继 续 判 断 若 y=0),执 行 z=z+l;输 出 Z2-1,表 达 式 x v y不 成 立,因 此 不 执 行 内 层 的 ifelse.进 而 z 中 的 值 没 有 被 改 变。输 出 z 中 的 值 为 54.#include main()float a,b,c,t;a=3;b=

40、7;c=l;if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;printf(n%5.2f,%5.2f,%5.2fn,a,b,c);运 行 结 果 为:1.00,2.00,7.00详 见 教 材 p72数 据 的 输 出 形 式 本 题 包 含 了 3 个 i f语 句,每 个 i f语 句 后 的 都 不 可 省 略,因 为 每 个 中 都 包 含 了 多 条 语 句 若 表 达 式 a b成 立,则 执 行 t=a;a=b;b=t;若 表 达 式 a c成 立,则 执 行 t=a;a=c;c=t;若 表 达 式 b c成 立,则 执

41、行 t=b;b=c;c=t;输 出 a,b,c中 的 值,要 求 输 出 的 每 个 数 据 宽 度 为 5 个 空 格,小 数 部 分 保 留 2 位,数 据 右 对 齐 3 小 于 7,因 此 表 达 式 a b不 成 立,因 此 不 执 行 t=a;a=b;b=t;3 大 于 1,因 此 表 达 式 a c成 立,则 执 行 t=a;a=b;b=t;。第 一 句,将 a 中 的 3 拷 贝,粘 贴 到 t 中;第 二 句,将 c 中 的 1拷 贝,粘 贴 到 a 中,覆 盖 掉 先 前 的 3;第 三 句。将 t 中 的 3 拷 贝 到 c 中,覆 盖 掉 c 中 先 前 的 1.执 行

42、 完 复 合 语 句 后 实 现 了 a,c元 素 的 值 的 互 换,a 为 1,c 为 3,t 为 3,。7 大 于 c 中 的 3,因 此 b c成 立,执 行 则 执 行 t=b;b=c;c=t;,过 程 同 上,执 行 后 b 为 3,c 为 7,t 为 7此 时 输 出 a,b,c中 的 值 为 1.00,2.00,7.005.#include main()float c=3.0,d=4.0;if(cd)c=5.0;elseif(c=d)c=6.0;else c=7.0;printf(;)运 行 结 果 为:7.0此 题 为 if.else.语 句 的 嵌 套,第 二 if.els

43、e.作 为 第 一 个 if.else 语 句 else部 分 的 复 合 语 句。若 表 达 式 c d成 立,则 执 行 c=5.0;否 则(表 达 式 c d不 成 立)若 表 达 式 c=d 成 立,则 执 行 c=6.0;否 则,执 行 c=7.0;输 出 c 中 的 值 3.0小 于 4 0,因 此 表 达 式 c d不 成 立,执 行 第 二 个 ifelse。3.0不 等 于 4.0,因 此 表 达 式 c=d 不 成 立,执 行 c=7.0,将 7.0赋 给 c,覆 盖 掉 c 中 的 3.0,此 时 c 中 的 值 为 7.0输 出 此 时 的 c 中 的 值 6.#inc

44、lude main()int m;scanf(n%dn,&m);if(m=0)if(m%2=0)printf(M%d is a positive evenll,m);else printf(*%d is a positive oddnn,m);else if(m%2=0)printf(n%d is a negative evenll,m);else printf(M%d is a negative oddnn,m);)若 键 入 一 9,则 运 行 结 果 为:-9 is a negative odd7.#include main()int num=0;while(num=2)num+;pri

45、ntf(n%dnn,num);)运 行 结 果 为:23详 见 教 材 P115循 环 结 构 当 循 环 条 件 num=2成 立 的 时 候,执 行 循 环 体 num+;printf(n%dnn,num);中 的 语 句。循 环 初 值 n u m 为 0;循 环 条 件 numv=2成 立 第 1次 循 环:执 行 num;即 将 n u m 中 的 值 加 1,执 行 后 n u m 为 1;执 行 printf(dn”,num);在 屏 幕 上 输 出 n u m 中 的 值,即 输 出 1,之 后 换 行 此 时 n u m 中 的 值 为 1,循 环 条 件 num=2成 立

46、第 2 此 循 环:执 行 num;即 将 n u m 中 的 值 加 1,执 行 后 n u m 为 2:执 行 printf(dn”,num);在 屏 幕 上 输 出 n u m 中 的 值,即 输 出 2,之 后 换 行 此 时 n u m 中 的 值 为 2,循 环 条 件 num=2成 立 第 3 此 循 环:执 行 num+;即 将 n u m 中 的 值 加 1,执 行 后 n u m 为 3;执 行 printf(M%dn*,num);在 屏 幕 上 输 出 n u m 中 的 值,即 输 出 3,之 后 换 行 此 时 n u m 中 的 值 为 3,循 环 条 件 num=

47、2不 成 立,结 束 循 环。8.#include main()int sum=10,n=l;while(n3)sum=sum-n;n-H-;printf(w%d,%dM,n,sum);运 行 结 果 为:3,7当 循 环 条 件 n3成 立 的 时 候,执 行 循 环 体 sum=sum-n;n+;中 的 语 句。循 环 初 值 sum为 10再 为 1;循 环 条 件 n3成 立 第 1 次 循 环:执 行 sum=sum-n=10-1=9;执 行 n+,即 将 n 中 的 值 加 1,执 行 后 n 为 2;此 时 n 中 的 值 为 2,sum中 的 值 为 9,循 环 条 件 n3成

48、 立,继 续 执 行 循 环 第 2 次 循 环:执 行 sum=sum-n=9-2=7;执 行 n+,即 将 n 中 的 值 加 1,执 行 后 n 为 3;输 出 此 时 n,sum中 的 值,即 为 3,7。需 要 注 意,在 printf(“%d,%d”,n,sum);中 要 求 输 出 的 数 据 彼 此 间 用 逗 号 间 隔,因 此 结 果 的 两 个 数 据 间 一 定 要 有 逗 号#include main()int num,c;scanf(n%dn,&num);do c=num%10;printf(n%dfc);while(num/=10)0);printf(nnM);)

49、从 键 盘 输 入 2 3,则 运 行 结 果 为:32详 见 教 材 P117循 环 结 构;p 60复 合 的 赋 值 运 算 符 d o(卜 vhile(表 达 式);先 无 条 件 执 行 循 环 体,再 判 断 循 环 条 件。注 意 while(表 达 式)后 有 分 号 定 义 整 型 变 量 num,c;为 num赋 个 整 型 值;执 行 c=num%10;printf(%d,c);直 到 循 环 条 件(num/=10)0 不 成 立;输 出 换 行 已 知 为 num赋 值 23第 1次 执 行 循 环 体 执 行 c=num%10=23%10=3;执 行 printff

50、%d,c);输 出 3判 断 循 环 条 件 num/=10等 价 于 num=num/10;因 此 num=23/10=2,2 大 于 0,因 此 循 环 条 件(num/=10)0成 立,继 续 执 行 循 环 体。执 行 完 第 1次 循 环 时,num为 2,c 为 3第 2 次 执 行 循 环 体 执 行 c=2%10=2;执 行 printff%d,c);再 输 出 2判 断 循 环 条 件 num=2/l0=0,0等 于 0,因 此 循 环 条 件(num/=10)0不 成 立。结 束 循 环 10#include main()int s=0,a=5,n;scanf(%d,&n)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁