2021年河北工程大学考研真题之CC++语言程序设计.pdf
共 4 页 第 1 页 河 北 工 程 大 学二 二 一 年 硕 士 研 究 生 招 生 考 试 试 题 ( 正 题 )考 试 科 目 代 码 806 考 试 科 目 名 称 C/C+语 言 程 序 设 计所 有 答 案 必 须 写 在 答 题 纸 上 , 做 在 试 题 纸 或 草 稿 纸 上 无 效 。一 、 单 项 选 择 题 ( 共 40分 , 每 题 2分 )1. 对 for(表 达 式 1; ;表 达 式 3)可 以 理 解 为 ( ) 。(A)for(表 达 式 1;表 达 式 3;表 达 式 3) (B)for(表 达 式 1;表 达 式 1;表 达 式 3)(C)for(表 达 式 1;1;表 达 式 3) (D)for(表 达 式 1;0;表 达 式 3)2. int a=3,b=2,c=1; if(ab else a=c;则 a 的 值 为 ( ) 。(A)1 (B)0 (C)2 (D)33. 文 件 包 含 中 ,被 包 含 文 件 ( ) 。(A)可 以 是 可 执 行 文 件 (B)可 以 嵌 套 其 它 文 件 (C)可 以 是 目 标 文 件 或 源 文 件 (D)必 须 用 .h为 后 缀4. 为 了 避 免 在 嵌 套 的 条 件 语 句 if-else 中 产 生 二 义 性 , C 语 言 规 定 :else 子 句 总 是 与( ) 配 对 。(A)其 之 前 最 近 的 未 配 对 的 if (B)其 之 后 最 近 的 if(C)同 一 行 上 的 if (D)缩 排 位 置 相 同 的 if5. 设 有 宏 定 义 #define MAX(x,y) (x)(y)?(x):(y),则 F=4*MAX(2,3)的 值 为 ( ) 。(A)3 (B)2 (C)12 (D)86. 设 有 以 下 定 义 :int w34=0,1,2,4,5,8; int (*p)4=w; 则 数 值 为 4的 表 达 式 是 ( ) 。(A)*w1+1 (B)p11 (C)p+,*(p+1) (D)w227. 若 x,i,j,k 都 是 int 型 变 量 ,则 计 算 x=(i=4,j=16,k=32)后 ,x的 值 为 :( ) 。(A)52 (B)16 (C)4 (D)328. 下 面 叙 述 中 错 误 的 是 ( ) 。(A)在 其 它 函 数 中 定 义 的 变 量 在 主 函 数 中 也 不 能 使 用 (B)主 函 数 中 定 义 的 变 量 在 整 个 程 序 中 都 是 有 效 的(C)复 合 语 句 中 定 义 的 变 量 只 在 该 复 合 语 句 中 有 效(D)形 式 参 数 也 是 局 部 变 量9. 若 有 说 明 :int a54;则 数 组 a中 各 元 素 ( ) 。(A)不 能 得 到 确 定 的 初 值 (B)可 在 程 序 的 编 译 阶 段 得 到 初 值 0(C)可 在 程 序 的 运 行 阶 段 得 到 初 值 0 (D)可 在 程 序 的 编 译 或 运 行 阶 段 得 到 初 值 010. 以 下 不 正 确 的 说 法 是 : C语 言 规 定 ( ) 。(A)实 参 可 以 是 常 量 ,变 量 或 表 达 式 (B)实 参 可 以 为 任 何 类 型(C)形 参 可 以 是 常 量 ,变 量 或 表 达 式 (D)形 参 应 与 其 对 应 的 实 参 类 型 一 致11. 已 定 义 char str1,str210;选 择 正 确 的 输 入 语 句 ( ) 。(A)scanf(%c%s, str1,str2); (B)scanf(%c%s,(C)scanf(%c%s, (D)scanf(%c%s, str1,12. 设 函 数 的 调 用 形 式 如 下 : f(x1, x2),(y1,y2,y3),则 函 数 有 ( ) 个 形 参 。(A)2 (B)4 (C)3 (D)5 13. C语 言 的 if 语 句 中 ,用 作 判 断 的 表 达 式 为 ( ) 。(A)任 意 表 达 式 (B)算 术 表 达 式 (C)逻 辑 表 达 式 (D)关 系 表 达 式14. 在 以 下 给 出 的 表 达 式 中 , 与 do-while(E)语 句 中 的 ( E) 不 等 价 的 表 达 式 是 ( ) 。(A)(E0|E0) (B)(E=0) (C)(!E=0) (D)(E!=0) 共 4 页 第 2 页 15. 若 有 说 明 : int a3=1,2,3,4,5,6,7;则 a 数 组 第 一 维 的 大 小 是 ( ) 。(A)2 (B)3 (C)4 (D)516. 下 列 说 法 中 , 正 确 的 是 ( ) 。(A)一 个 对 象 所 占 的 空 间 大 小 取 决 于 该 对 象 中 成 员 函 数 所 占 的 空 间(B)一 个 对 象 所 占 的 空 间 大 小 取 决 于 该 对 象 中 数 据 成 员 与 成 员 函 数 所 占 的 空 间 有 关(C)一 个 对 象 所 占 的 空 间 大 小 取 决 于 该 对 象 中 数 据 成 员 所 占 的 空 间(D)一 个 对 象 所 占 的 空 间 大 小 与 该 对 象 中 数 据 成 员 所 占 空 间 无 关17. 下 列 关 于 对 象 数 组 的 描 述 中 , ( ) 是 错 误 的 。(A)对 象 数 组 的 数 组 名 是 一 个 常 量 指 针(B)对 象 数 组 的 下 标 从 0开 始(C)对 象 数 组 只 能 赋 初 值 而 不 能 再 赋 值(D)对 象 数 组 的 每 个 元 素 都 是 相 同 类 的 对 象18. 有 关 运 算 符 重 载 正 确 的 描 述 是 ( ) 。(A)C+语 言 允 许 在 重 载 运 算 符 时 改 变 运 算 符 原 来 的 功 能 (B)C+语 言 允 许 在 重 载 运 算 符 时 改 变 运 算 符 的 优 先 级(C)C+语 言 允 许 在 重 载 运 算 符 时 改 变 运 算 符 的 操 作 个 数(D)C+语 言 允 许 在 重 载 运 算 符 时 改 变 运 算 符 的 结 合 性19. 在 C+中 , 用 于 实 现 运 行 时 多 态 性 的 是 ( ) 。(A)虚 函 数 (B)内 联 函 数 (C)模 板 函 数 (D)重 载 函 数20. 在 C+类 与 对 象 的 应 用 中 ,运 算 符 new 的 作 用 是 ( ) 。(A)返 回 为 所 创 建 的 对 象 分 配 内 存 的 大 小(B)获 取 一 个 新 类 的 内 存(C)创 建 名 为 new 的 对 象(D)返 回 指 向 所 创 建 对 象 的 指 针 , 并 为 创 建 的 对 象 分 配 内 存 空 间二 、 写 出 下 列 程 序 的 运 行 结 果 ( 共 30分 , 每 题 5 分 )1.下 面 程 序 是 关 于 switch 语 句 的 , 它 的 输 出 结 果 是 :#include void main() char c=b;switch(c) case a:case A: printf(Good!); break;case b: printf(Better!);case c: printf(Best!); break;default: printf(Yes!);2.下 面 程 序 是 关 于 二 维 数 组 的 , 它 的 输 出 结 果 是 :#include int main() int i,sum=0; int x33=1,2,3,4,5,6,7,8,9;for(i=0;i3;i+) sum+=xi2-i;printf(%d,sum );return 0; 共 4 页 第 3 页 3.下 面 程 序 是 关 于 字 符 串 的 , 它 的 输 出 结 果 是 :#include int main() char str160= hebei ;char str220= handan ;int i=0,j=0;while(str1i!=0) i+; while(str2j!=0) str1i+=str2j+; str1i=0;puts(str1);return 0;4.下 面 程 序 是 关 于 函 数 嵌 套 调 用 的 , 它 的 输 出 结 果 是 : #include double fun1(double a) return a+a;int fun2(double x,double y) double a,b;a=fun1(x); b=fun1(y);return (int)(a+b);int main() double w;w=fun2(2.2,3.3);printf(%.2fn,w); return 0;5.下 面 程 序 是 关 于 静 态 局 部 变 量 的 , 它 的 输 出 结 果 是 :#include int fun(int n) static int sum=1; int i;for(i=1; i=n; i+) sum+=i; return sum;int main() int s=0;s=fun(1)+fun(2);printf(%d,s); return 0;6.下 面 程 序 是 关 于 数 组 指 针 的 , 它 的 输 出 结 果 是 :#include int main() int a33=1,2,3,4,5,6,7,8,9;int (*p)3=a,i,sum=0; for(i=0; i3; i+)sum+=*(*(p+i)+i);printf(%d,sum);return 0; 共 4 页 第 4 页 三 、 程 序 填 空 ( 共 30 分 , 每 空 5分 )1.下 面 程 序 的 功 能 是 : 从 键 盘 上 输 入 一 个 正 整 数 n, 判 断 它 是 否 为 素 数 , 请 将 程 序 补 充完 整 。#include #include int main() int n,i,k=sqrt(n); ; /从 键 盘 上 输 入 nfor( ; ; i+) if(n%i=0) ; if(ik) printf(%d是 素 数 ,n); printf(%d 不 是 素 数 ,n);return 0;四 、 编 程 题 , 用 C或 C+编 程 实 现 下 列 要 求 ( 共 50分 , 各 题 分 数 见 每 题 标 注 )1.从 键 盘 上 输 入 一 元 二 次 方 程 (ax2+bx+c=0)的 系 数 : a,b,c ; 计 算 并 输 出 方 程 的 根 ,如果 没 有 实 根 则 输 出 “ No real roots.” 。 (10 分 )例 :( 1) 输 入 : 6,3,1 输 出 : No real roots.( 2) 输 入 : 1.0,-2,1 输 出 : x1=1,x2=12.水 仙 花 数 是 指 一 个 3 位 数 , 其 各 位 数 字 立 方 和 等 于 该 数 本 身 。 请 输 出 所 有 的 水 仙 花 数 。( 10分 ) 3.主 函 数 中 输 入 n, 调 用 递 归 函 数 计 算 n! 并 输 出 。 ( 15 分 )4.从 键 盘 上 输 入 3*4 矩 阵 的 各 个 元 素 ( 空 格 或 者 回 车 间 隔 ) , 求 出 其 中 值 最 大 的 元 素 的值 , 以 及 其 行 号 与 列 号 。 ( 15 分 )例 : ( 1) 输 入 : 1 2 3 4 5 6 7 8 9 10 11 12输 出 : max=12,row=2,col=3