2022年全国计算机等级考试C语言程序设计真题试卷
全 2022 年 国 计 计算 算 机 机 等 等级 级 考 考试 试 《 《 二 二 级 级 C 语 语言 言 程 程序 序 设 设计 计 》 》 真真 题 题 及 及 详 详解 解题 选 选择 择 题 1 . 有 以下 定义 : structdata { inti ; charc ; doubled ; } x ; 以下 叙述 中 错误 的 是 A . x 的 内存 地址 与 x . i 的 内存 地址 相同 B . structdata 是 一个 类型 名 C . 初始 化 时 , 可以 对 x 的 所有 成员 同时 赋 初值 D . 成员 i 、 c 和 d 占用 的 是 同 一个 存储 空间 【 答案 】 : D 【 解析 】 : 变量 i 、 c 、 d 是 结构 体 变量 x 中 三 个 不同 的 成员 , 占用 不同 的 存储 空间 。 答案 选择 D 选项 。 补充 : 区分 struct 和 union , union 的 各个 数据 成员 共享 一 块 存储 空间 , struct 不同 的 成员 , 占用 不同 的 存储 空间 。 2 . 以下 函数 的 功能 是 : 计算 a 的 n 次方 作为 函数 值 返回 。 doublefun ( doublea , intn ) { inti ; doubles = 1 . 0 ; for ( i = 1 ; i < = n ; i + + ) s = _ ; returns ; } 为 实现 上述 功能 , 函数 中 下划线 处 应 填 入 的 是 A . s * iB . s * aC . s + i * i D . s + a * a 【 答案 】 : B 【 解析 】 : s 为 a 的 ( i - 1 ) 次方 的 结果 , 所以 令 s = s * a 即可 得到 a 的 i 次方 。 答案 选择 B 选项 。 3 . 有 以下 程序 : # include < stdio . h > # include < string . h > main ( ) { charstr [ ] = { " Hello , Beijing " } ; printf ( " % d , % d \ n " , strlen ( str ) , sizeof ( str ) ) ; } 程序 的 运行 结果 是 A . 13 , 13 B . 13 , 14 C . 13 , 15 D . 14 , 15 【 答案 】 : B 【 解析 】 : strlen 返回 字符 串 的 长度 , 不 包含 字符 串 末尾 的 结束 字符 ' \ 0 ' , 结果 为 13 ; sizeof 返回 字符 串 所 占 存储 空间 的 大小 , 由于 字符 串 最后 要 加上 一个 ' \ 0 ' , 所以 结果 为 13 + 1 = 14 。 答案 选择 B 选项 。 , 则 以下 叙述 正确 的 是 4 . 若 有 说明 : typedefstruct { inta ; charc ; } w ; 个 字节 A . 编译 后 系统 为 w 分配 5B . 编译 后 系统 为 w 分配 6 个 字节 C . 编译 后 系统 为 w 分配 58 个 字节 D . 编译 后 系统 不 为 w 分配 存储 空间 【 答案 】 : D 【 解析 】 : w 是 一个 自 定义 类型 , 不是 变量 , 故 编译 后 系统 不 为 w 分配 存储 空间 。 当 w 定义 为 结构 体 变量 时 才 会 为 其 分配 存储 空间 。 答案 选择 D 选项 。 5 . 以下 叙述 中 错误 的 是 A . 同 一个 数 组 中 所有 元素 的 类型 相同 B . 不 可以 跳 过 前面 的 数 组 元素 , 给 后面 的 元素 赋 初值 0 C . 定义 语句 : int a [ 10 ] = { 0 } ; , 给 a 数 组 中 所有 元素 赋 初值 0 D . 若 有 定义 语句 : int a [ 4 ] = { 1 , 2 , 3 , 4 , 5 } ; , 编译 时 将 忽略 多余 的 初值 【 答案 】 : D 【 解析 】 : 数 组 初始 化 时 , 若 赋