C语言测试试题及答案.pdf
《C语言测试试题及答案.pdf》由会员分享,可在线阅读,更多相关《C语言测试试题及答案.pdf(98页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序第一章 C 语 言 程 序 设 计 初 步一、主 要 知识点(-)程 序 设 计 语 言 的 发 展1、机器语言 2、汇编语言 3、面 向 过 程 的 语 言 4、面 向 对 象 的 程 序设 计语言(二)C 程 序 设 计 语 言 的 执 行 过 程1、编辑 2,编译 3、连接 4、执行(三)用 库 函 数 组 装 C 程序例 1:计 算 2.17 1 5 的 正 弦 值。#include math.hmain()(float a;/*定 义 a 为 实 型 变 量*/a=sin(2.1715);/*调用 sin 函数*/printf(%fn”,a);/*调用 printf 函 数
2、,输出 a 的值*/)程 序 详 解:1、在 本 例 中 用 到 的 s i n 函 数 称 为 数 学 函 数,它 是 为 了 用 户 使 用 方 便,由一批 厂 家 开 发 编 写 的 函 数,并 不 是 C 语 言 的 部 分。在 使 用 数 学 函 数 时,往往要用 到 函 数 执 行 时 所 需 的 一 些 信 息(例 如 宏 定 义),这 些 信 息 包 含 在“math.h”中。因 此 在 程 序 开 头 用#include“math.h”将 有 关 的 标 头 文 件 包 括 到 程 序 中。2、一 个 C 语 言 源 程 序 文 件 由 一 个 或 多 个 函 数 组 成,C
3、 语 言 的 基 本 组 成 单 位是 函 数 0 个 完 整 的 C 语 言 程 序 有 且 只 有 个 称 为 主 函 数 的 m ain 函 数,程序总是 从 m ain 函 数 开 始 执 行,调 用 其 它 函 数 后 再 回 到 m ain 函 数,在 m ain 函数中结束 整 个 程 序 的 运 行。3、m ain是 函 数 名 称,没 有 参 数 可 以 不 写,但 圆 括 号 不 能 省 略,main()后面 有 对 花 括 号,花 括 号 内 的 部 分 称 为 函 数 体,m a in 函 数 可 以 在 程 序 的 任 意 位置。4、C 规 定 每 个 语 句 以 分
4、 号(;)结 束,分 号 是 语 句 不 可 缺 少 的 组 成 部 分,每行 中 可 以 写 多 条 语 句。5、/*与*/之 间 为 注 释 信 息,对 程 序 运 行 结 果 不 发 生 影 响,也 不 被 编 译,注释 说 明 可 以 放 在 语 句 的 任 意 位 置。6、f l o a t a;此 语 句 是 把 a定 义 为 个 实 型 变 量。7、C语 言 本 身 没 有 输 入、输 出 语 句,本 例 使 用 p r i n f t 函 数 输 出 数 据。p r i n f t函 数 的 括 号 内 包 括 两 部 分 内 容:双 引 号 内 的 部 分、双 引 号 外 的
5、 部 分。双引号内的部 分 是“格 式 字 符 串”,用 于 指 定 输 出 双 引 号 外 的 变 量 的 打 印 格 式。此例中双引号 中 有 一 个“f ,它是输出 个 保 留 小 数 点 后 6 位 数 字 的 格 式 字 符,小数点前的位 数 不 指 定。二、经 典 例 题 详 解例 2:一 个 C程 序 的 执 行 是 从 _ _ _ _。(A)本 程 序 的 m a i n 函 数 开 始,到 m a i n 函数结束(B)本 程 序 文 件 的 第 一 个 函 数 开 始,到 本 程 序 文 件 的 最 后 一 个 函 数 结 束(C)本 程 序 的 m a i n 函 数 开
6、 始,到 本 程 序 文 件 的 最 后 一 个 函 数 结 束(D)本 程 序 文 件 的 第 一 个 函 数 开 始,到 本 程 序 m a i n 函数结束答 案:C详 解:一 个 C 语 言 源 程 序 文 件 由 一 个 或 多 个 函 数 组 成。一 个 完 整 的 C 语言 程 序 有 且 只 有 一 个 称 为 主 函 数 的 m a i n 函 数,程 序 总 是 从 m a i n 函 数 开 始 执 行,调 用 其 它 函 数 后 再 回 到 m a i n 函 数,在 m a i n 函 数 中 结 束 整 个 程 序 的 运 行。例 3、以 下 叙 述 不 正 确 的
7、 是 _ _ _ _。(A)一 个 C源 程 序 可 由 一 个 或 多 个 函 数 组 成(B)一 个 C源 程 序 必 须 包 含 一 个 m a i n 函数(C)C程 序 的 基 本 组 成 单 位 是 函 数(D)在 C程 序 中,注 释 说 明 只 能 位 于 一 条 语 句 后 面答 案:D详 解:/*叮*/之 间 为 注 释 信 息,对 程 序 运 行 结 果 不 发 生 影 响,也 不 被 编 译,注 释 说 明 可 以 放 在 语 句 的 任 意 位 置。三、习题(-)选择题1、以 下 叙 述 正 确 的 是 _ _ _ _。(A)在C程 序 中,m a i n函 数 必
8、须 位 于 程 序 的 最 前 面(B)C程 序 的 每 行 中 只 能 写 一 条 语 句(C)C语 言 本 身 没 有 输 入 输 出 语 句(D)在 对 个C程 序 进 行 编 译 的 过 程 中,可 发 现 注 释 中 的 拼 写 错 误2、C语 言 规 定:在 一 个 源 程 序 中,m a i n函 数 的 位 置 _ _ _ _。(A)必 须 在 最 开 始(B)必 须 在 系 统 调 用 库 函 数 的 后 面(C)可以任意(D)必须在最后3、一 个C语 言 程 序 是 由 _ _ _ _。(A)一 个 主 程 序 和 若 干 子 程 序 组 成(B)函数组成(C)若 干过程组
9、成(D)若 干 子 程 序 组 成(-)填 空 题:I、一 个C源 程 序 中 至 少 包 括 个 _ _ _ _ _ _ _ _ _02、在 一 个C源 程 序 中,注 释 部 分 两 侧 的 分 界 符 分 别 为 _ _ _ _ _ _ _ _ _和第 二 章 数 据 描 述 与 基 本 操 作一、主 要 知识点(-)C的 基 本 数 据 类 型 整型/基 本 类 型 字符型实 型(浮 点 型)J单精度型、枚举类型 1双精度型数据类型构造类型指针类型空类型(二)常 量 和 符 号 常 量1、常 量 定 义:在 程 序 运 行 过 程 中,其 值 不 能 被 改 变 的 量 称 为 常 量
10、。常量常区 分 不 同 的 类 型,如 12、0、-3 为 整 型 常 量,a,、为 字 符 常 量。2、符 号 常 量:用 一 个 标 识 符 代 表 一 个 常 量 的,称 为 符 号 常 量,即标识符形式 的 常 量。常 量 不 同 于 变 量,它 的 值 在 作 用 域 内 不 能 改 变,也 不 能 再 被 赋 值。例 1:已 知 商 品 的 单 价 及 数 量 求 商 品 的 总 价 值。#define PRICE 30main()(int num,total;num=10;total=num*PRICE;printf((大 于)=(大 于 或 等 于)(小 于)=(小 于 或 等
11、 于)=(等 于)是!=(不 等 于)2、优 先 级 别:关 系 运 算 符 的 优 先 级 别 低 于 纯 算 术 类,高 于 值 类。后两个的优 先 级 小 于 前 四 个。如 表 达 式 a+bc+d完 全 等 价 于 表 达 式(a+b)(c+d)。3、运 算 量:关 系 运 算 符 是 双 元 运 算 符,整 型、实 型、字 符 都 可 以 参 预 运 算。4、左 右 结 合 性:从 左 向 右 的 结 合 方 向5、关 于 关 系 运 算 符 的 进 步 说 明:关 系 表 达 式 的 值 是 整 型 数 0 或 1,故 也 可 以 将 其 看 成 一 种 整 型 表 达 式。例
12、如:int i=1 ,j=7,a;a=i+(j%4!=0);a 的 值 为 2。要 说 明 x 在 区 间 a,b 中,普 通 数 学 中 使 用 表 达 式 aW x N b。但 C 语言中应写成 a=x&x278在 数 学 上 是 不 允 许 的,而 在 C 中 是 允 许 的。按 自左至右求解。字 符 数 据 的 比 较 按 其 A SC II码 值 进 行。在 判 定 两 个 浮 点 数 是 否 相 等 时,由 于 存 储 上 的 误 差,会 得 出 错 误 的 结 果。例 如:1.0/3.0*3.0=1.0(十)逻辑运算1、C 语 言 提 供 的 逻 辑 运 算 符:&(逻 辑 与)
13、II(逻 辑 或)!(逻 辑 非)2、优 先 级 别:&与 II的 优 先 级 别 低 于 关 系 运 算 符,高 于 条 件 运 算 符,&的 优 先 级 别 高 于 I I,!的 优 先 级 别 与 自 加 运 算 符(+)、自 减 运 算 符(一)同 级。3、运 算 量:&和 II是 双 元 运 算 符,!是 单 元 运 算 符。例 12:已知 x=43,ch=A,y=0;则 表 达(x=y&chB,&!y)的 值 是 _ _ _ _ _ _ _。(A)0(B)语法错(C)1 (D)“真”答 案:C说 明:C 语 言 不 提 供 逻 辑 性 数 据“真”和“假”,在 进 行 逻 辑 运
14、算 时 则 把“非 零”作 为“真”,把 0 作 为“假”,所 以 表 达 式!y 的 运 算 结 果 是 1。4、左 右 结 合 性:&和 II运 算 符 的 结 合 方 向 为 自 左 至 右,!的结合方向为自右 至 左。5、关 于 逻 辑 运 算 符 的 进 一 步 说 明:在 一 个&表 达 式 中,若&的 一 端 为 0,则 不 必 再 计 算 另 一 端,该表达式的 值 肯 定 为 0。在 一 个 II表 达 式 中,若 II的 一 端 为 0,则 不 必 再 计 算 另 一 端,该 表 达 式 的 值肯 定 为 1。例 13:写 出 下 面 程 序 的 输 出 结 果。m ain
15、()int x,y,z;x=y=z=0;+x&+yll+z;printf(%d,%d,%d”,x,y,z);x=y=z=0;+xll+y&+z;printf(,*%d,%d,%d,x,y,z);)输 出 结 果:1,1,01,0,0程 序 说 明:因 为&的 优 先 级 别 高 于 I I,所 以 表 达 式+x&+yll+z是 一 个 或 表 达式,根 据 II的 端 为 0,则 不 必 再 计 算 另 一 端 的 原 则,先 计 算 表 达 式+x&+y的值 为 1,因 为 1 或 任 何 值 都 为 1,所 以 表 达 式+Z没 有 运 算,输 出 结 果 为:1,1,0o 表 达 式+
16、xl1+y&+z也 是 一 个 或 表 达 式,同 样 根 据 II的 一 端 为 0,则不必 再 计 算 另 端 的 原 则,先 计 算 表 达 式+z 的 值 为 1,因 为 1 或 任 何 值 都 为 1,所以 表 达 式+y&+z没 有 运 算,输 出 结 果 为:1,0 0o(十 一)赋值运算1、基 本 的 赋 值 运 算 符:(将 赋 值 运 算 符 右 侧 的 表 达 式 赋 给 左 侧 的 变 量)2、自 反 算 术 赋 值 运 算 符C语 言 中 有 5个 基 本 自 反 算 术 赋 值 运 算 符,+=(a+=3等价于 a=a+3)=(a =3等价于 a=a 3)*=(a
17、*=3等价于 a=a *3)/=(a *=3等价于 a=a *3)%=(a%=3等 价 于 a=a%3)3、优 先 级 别:赋 值 运 算 符 与 自 反 算 术 赋 值 运 算 符 属 于 同 等 级 别,低于条件运 算 符,高 于 逗 号 运 算 符。如 对 于 表 达 式 x%=y+3 完 全 等 价 于 x%=(y+3)。例 1 4:若 有 以 下 定 义,则 能 使 值 为 3的 表 达 式 是 _ _ _ _ _ _ _。I n t k=7,x=1 2;(A)x%=(k%5)(B)x%=(k-k%5)(C)x%=k-k%5 (D)(x%=k)-(k%=5)答 案:D详 解:表 达
18、式(x%=k)-(k%=5)完 全 等 价 于(x=x%k)-(k=k%5)等 价 于 5-2,此表达 式 的 结 果 为 3。4、运 算 量:双 元 运 算 量,赋 值 运 算 符 与 自 反 算 术 赋 值 运 算 的 第 一 个 量 必 须为 变 量,且 =前 后 必 须 为 整 型 数 据。如 对 于 表 达 式 a*3+=2 是 错 误 的。因为此表 达 式 完 全 等 价 于(a*3)=(a*3)+2。5、左 右 结 合 性:自 右 至 左 参 预 运 算。例 1 5:若 a是 i n t 型 变 量,且 a的 初 值 为 6,则 计 算 表 达 式 后 a的 值 为 _ _ _
19、_ _ _ _。a+=a-=a*a答 案:-60详解:表达式从左向右运算,先计算表达式a=a-3 6后 a 为-3 0,再计算表达式a=a+a 后a 的值变为-60。(十 二)条 件 运 算:1、条 件 运 算 符 的 基 本 形 式 及 功 能:条 件 运 算 是 一 种 在 两 个 表 达 式 的 值 中 选 择 一 个 的 操 作。它 的 一 般 形 式 为:e 1?e 2:e 3它 的 操 作 过 程 为,若 el为 真,则 表 达 式 的 值 为 e 2,若 为 假 表 达 式 的 值 为 e 3。2、优 先 级 别:低 于 逻 辑 运 算,高 于 赋 值 运 算。3、运 算 量:三
20、 元 运 算 量,e l 一 般 为 算 术 表 达 式,e 2、e 3可 以 是 任 意 类 型 的表 达 式,条 件 表 达 式 的 值 的 类 型 为e 2与e 3二 者 中 类 型 较 高 的。例 16:若 有 条 件 表 达 式(e xp)?a+:b-,则 以 下 表 达 式 中 能 完 全 等 价 于 表 达式(e xp)的是_ _ _ _ _ _ _o答 案:e xp!=O说 明:对 于 表 达 式e l?e 2:e 3 ,e l 一 般 为 算 术 表 达 式、逻 辑 表 达 式、关系表达 式,结 果 为1 (真)或0(假)。也 可 以 为 数 值e xp,结 果 为 结 果
21、为 非0(真)或0 (假)在 本 例 中 与e xp完 全 等 价 的 表 达 式 是e xp!=0 o4、左 右 结 合 性:自 右 至 左 运 算。例 17:以 下 程 序 的 运 行 结 果 是 _ _ _ _ _ _ _。m a i n()i n t k=4,a=3,b=2,c=l;p r i n t f(l l%d,k a?k:c b?c:a);)答 案:1程 序 解 析:条 件 表 达 式 是 从 右 向 左 运 算,所 以 在 本 例 中 先 计 算 表 达 式c b?c:a的 值,把 各 数 值 代 入 此 表 达 式 的 值 为1。再 计 算 表 达 式k a?k:1的 值,
22、因 为k m,则 自 动 取n值,即 保 证n个 字 符 正 常 输 出。f格 式:用 来 输 出 实 数(包 括 单、双 精 度),以 小 数 形 式 输 出。有以下几种用 法:%f:不 指 定 宽 度,整 数 部 分 全 部 输 出 并 输 出6位 小 数。%m.n f:输 出 共 占m歹i j,其 中 有n位 小 数,如 数 值 宽 度 小 于m左端补空格。%-m.n f:输 出 共 占n歹U ,其 中 有n位 小 数,如 数 值 宽 度 小 于m右端补空格。e 格 式:以 指 数 形 式 输 出 实 数。可 用 以 下 形 式:%e:数 字 部 分(又 称 尾 数)输 出 6 位 小
23、数,指 数 部 分 占 5 位 或 4 位。%m.n e 和-m.ne:m、n 和 字 符 含 义 与 前 相 同。此 处 n 指 数 据 的 数 字 部分 的 小 数 位 数,m 表 示 整 个 输 出 数 据 所 占 的 宽 度。g 格 式:自 动 选 f 格 式 或 e 格 式 中 较 短 的 一 种 输 出,且 不 输 出 无 意 义 的 零。4、关 于 p rin tf函 数 的 进 一 步 说 明:如 果 想 输 出 字 符“”,则 应 该 在“格 式 控 制”字 符 串 中 用 连 续 两 个 表 示,如:printf(f%”,1.0/3);输出 0.333333%。(十六)s
24、c a n f函数sc an f函 数 可 以 用 来 输 入 任 何 类 型 的 多 个 数 据。1、sc an f函 数 的 一 般 格 式scanf(格 式 控 制,地址表列)“格 式 控 制”的 含 义 同 p rin tf函 数。普 通 字 符 即 需 要 原 样 输 入 的 字 符。地 址 表 列 是 指 由 若 干 个 地 址 组 成 的 表 列,它 们 之 间 用“,”隔 开。2、格 式 控 制 的 完 整 格 式:%*m 1 或 h 格式字符 格 式 字 符 与 p rin tf函 数 中 的 使 用 方 式 相 同,以d、o、x、c、s、f、%e,无u 格 式、g 格 式。
25、可 以 指 定 输 入 数 据 所 占 列 宽,系 统 自 动 按 它 截 取 所 需 数 据。如:scanf(%3d%3d”,&a,&b);输 入:123456系 统 自 动 将 123赋 给 a,4 5 6 赋 给 b。后 的“*”附 加 说 明 符,用 来 表 示 跳 过 它 相 应 的 数 据。例 如:scanf(%2d%*3d%2d”,&a,&b);如 果 输 入 如 下 信 息:1234567。将 1 2 赋 给 a,6 7 赋 给 b。第 二 个 数 据“345”被跳过 不 赋 给 任 何 变 量。输 入 数 据 时 不 能 规 定 精 度,例 如:scanf(“7.2f,&a)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 测试 试题 答案
限制150内