软件开发人员招聘笔试试题、C、C++笔试试题、微软面试题、清华同方华为面试题.pdf

上传人:奔*** 文档编号:92182355 上传时间:2023-05-31 格式:PDF 页数:72 大小:8.27MB
返回 下载 相关 举报
软件开发人员招聘笔试试题、C、C++笔试试题、微软面试题、清华同方华为面试题.pdf_第1页
第1页 / 共72页
软件开发人员招聘笔试试题、C、C++笔试试题、微软面试题、清华同方华为面试题.pdf_第2页
第2页 / 共72页
点击查看更多>>
资源描述

《软件开发人员招聘笔试试题、C、C++笔试试题、微软面试题、清华同方华为面试题.pdf》由会员分享,可在线阅读,更多相关《软件开发人员招聘笔试试题、C、C++笔试试题、微软面试题、清华同方华为面试题.pdf(72页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、2002年 度 软 件 开 发 人 员 招 聘 笔 试 试 题 应 聘 者 资 料:姓 名 性 别 出 生 日 期 出 生 地 地 址 邮 政 编 码 电 话 Email毕 业 院 校 毕 业 时 间 专 业 学 历 学 位 英 语 水 平(资 格)计 算 机 水 平(资 格)要 求 职 位 和 希 望 担 任 的 角 色 待 遇 要 求 简 历(如 已 提 供 可 不 填)其 他 特 长(如 已 提 供 可 不 填)评 估 意 见(由 招 聘 小 组 填 写)试 题 一:基 础 知 识1、从 供 选 择 的 答 案 中,选 出 应 填 入 下 面 叙 述 中 _?_内 的 最 确 切 的 解

2、 答,把 相 应 编 号 写 在 答 卷 的 对 应 栏 内。假 设 某 计 算 机 具 有 1M字 节 的 内 存(目 前 使 用 的 计 算 机 往 往 具 有 64M字 节 以 上 的 内 存),并 按 字 节 编 址,为 了 能 存 取 该 内 存 各 地 址 的 内 容,其 地 址 寄 存 器 至 少 需 要 二 进 制 _A_位。为 使 4 字 节 组 成 的 字 能 从 存 储 器 中 一 次 读 出,要 求 存 放 在 存 储 器 中 的 字 边 界 对 齐,一 个 字 的 地 址 码 应 一 B_。若 存 储 周 期 为 200NS,且 每 个 周 期 可 访 问 4 个 字

3、 节,则 该 存 储 器 带 宽 为 一 C_BIT/S。假 如 程 序 员 可 用 的 存 储 空 间 为 4M字 节,则 程 序 员 所 用 的 地 址 为 D,而 真 正 访 问 内 存 的 地 址 称 为 _E_。供 选 择 的 答 案:A:10 16 20 32B:最 低 两 位 为 00 最 低 两 位 为 10 最 局 两 位 为 00 最 高 两 位 为 10C:20M 40M 80M 160MD:有 效 地 址 程 序 地 址 逻 辑 地 址 物 理 地 址 E:指 令 物 理 地 址 内 存 地 址 数 据 地 址 2、从 供 选 择 的 答 案 中。选 出 应 填 入 下

4、 面 叙 述 中 _?_ 内 的 最 确 切 的 解 答,把 相 应 编 号 写 在 答 卷 的 对 应 栏 内。给 定 结 点 的 关 键 字 序 列(F、B、J、G、E、A、I、D、C、H),对 它 按 字 母 的 字 典 顺 序 进 行 排 列,采 用 不 同 方 法,其 最 终 结 果 相 同。但 中 间 结 果 是 不 同 的。Shell排 序 的 第 一 趟 扫 描(步 长 为 5)结 果 应 为 冒 泡 排 序(大 数 下 沉)的 第 一 趟 起 泡 的 效 果 是 _B_3.快 速 排 序 的 第 一 趟 结 果 是 _ C _。二 路 归 并 排 序 的 第 一 趟 结 局

5、是 _ D _。供 选 择 的 答 案 A:(B、F、G、J、A、D、I、E、H、C)(B、F、G、J,A、E、D、I、C、II)(A、B、D、C、E、F、I、J、G、H)(C、B、D、A、E、F、I、G、J、H)B:(A、B、I)、C、F、E、I、J、H、G)(A、B、D、C、E、F、I、H、G、J)(B、F、G、E、A、I、1)、C、H、J)(B、F、G、J、A、E、D、I、C、H)C:(C、B、D、A、F、E、I、J、G、H)(C、B、D、A、E、F、I、G、J、H)(B、A、D、E、F、G、I、J、H、C)(B、C、D、A、E、F、I、J、G、H)D:(B、F、G、J、A、E、D、I、

6、G、H)(B、A、D、E、F、G、I、J、H、C)(A、B、D、C、E、F、I、J、G、H)(A、B、D、C、F、E、J、I、11、C)3、从 供 选 择 的 答 案 中,选 出 应 填 入 下 面 叙 述 中 _?_ 内 的 最 确 切 的 解 答.把 相 应 编 号 写 在 答 卷 的 对 应 栏 内。进 程 是 操 作 系 统 中 的 一 个 重 要 概 念。进 程 是 一 个 具 有 一 定 独 立 功 能 的 程 序 在 某 个 数 据 集 合 上 的 一 次 _ A 2 _。进 程 是 一 个 _B3的 概 念,而 程 序 是 一 个 _ C 3 _ 的 概 念。进 程 的 最 基

7、 本 状 态 有 _ D 4 _。在 一 个 单 处 理 机 中,若 有 6 个 用 户 进 程,在 非 管 态 的 某 一 时 刻,处 于 就 绪 状 态 的 用 户 进 程 最 多 有 _E5个。供 选 择 的 答 案 A:单 独 操 作 关 联 操 作 运 行 活 动 并 发 活 动 B:静 态 动 态 逻 辑 物 理 C:物 理 逻 辑 动 态 静 态 D:就 绪、运 行、隐 蔽 停 止、就 绪、运 行 运 行、就 绪、阻 塞 就 绪、撤 消、运 行 E:5 6 1 44、软 件 设 计 中 划 分 模 块 的 一 个 准 则 是 _A2一 两 个 模 块 之 间 的 耦 合 方 式

8、中,_ B 3 _ 耦 合 的 耦 合 度 最 高,_ C 4 耦 合 的 耦 合 度 最 低。一 个 模 块 内 部 的 内 聚 种 类 中 _ D 4 _ 内 聚 的 内 聚 度 最 高,_ E1_ 内 聚 的 内 聚 度 最 低。供 选 择 的 答 案 A:低 内 聚 低 耦 合 低 内 聚 高 耦 合 高 内 聚 低 耦 合 高 内 聚 高 耦 合 B:数 据 非 直 接 控 制 内 容 C:数 据 非 直 接 控 制 内 容 D:偶 然 逻 辑 功 能 过 程 E:偶 然 逻 辑 功 能 过 程 5、从 供 选 择 的 答 案 中 选 出 应 填 入 下 面 叙 述 中 _?内 的

9、最 确 切 的 解 答,把 相 应 编 号 写 在 答 卷 的 对 应 栏 内。最 常 用 的 一 种 基 本 数 据 模 型 是 关 系 数 据 模 型,它 用 统 一 的 _ A 1 _ 结 构 来 表 示 实 体 及 实 体 之 间 的 联 系。关 系 数 据 库 的 数 据 操 作 语 言(D M L)主 要 包 括 _ B 2两 类 操 作。关 系 运 算 以 关 系 代 数 为 理 论 基 础,关 系 代 数 的 最 基 本 操 作 是 并、差、笛 卡 尔 积、_ C 4 _。用 R|X|S 表 示 关 系 R 和 关 系 S 的 _ D 1 _。设 关 系 R 和 关 系 S 图

10、 示 如 下:R:A B C S:B C D T:A B C D则 关 系 T 是 关 系 R 和 关 系 S _ E _的 结 果。供 选 择 的 答 案 A:树 网 络 图 二 维 表 B:插 入 和 删 除 检 索 和 更 新 查 询 和 编 辑 统 计 和 修 改 C:投 影、联 接 联 接、选 择 选 择、投 影 交、选 择 D:联 接 笛 卡 尔 积 I I联 接 自 然 联 接 E:自 然 联 接 联 接 笛 卡 尔 积 并 试 题 二:程 序 设 计 用 你 所 熟 悉 的 任 意 一 种 程 序 语 言,编 写 一 个 完 整 的 过 程,将 一 个 字 符 串 插 入 到

11、另 一 个 字 符 串的 某 个 位 置 后 面(例 如:将“ab c”插 入 到“abcdef”的 第 三 个 字 符 位 置 后 面,结 果 为“abcabcdef)。编 写 程 序 时,请 在 必 要 的 地 方 加 以 注 释(注:不 能 用 该 程 序 语 言 的 内 置 函 数 或 过 程)。用 你 所 熟 悉 的 任 意 一 种 程 序 语 言,编 写 个 完 整 的 过 程,完 成 从 一 个 给 定 的 完 整 的 文 件 路 径(如 C:My DocumentsSoftware Test 1.0 0.d o c)中,析 取 文 件 名,扩 展 名 和 文 件 所 处 目 录

12、 的 功 能,编 写 程 序 时,请 在 必 要 的 地 方 加 以 注 释(注:不 能 用 该 程 序 语 言 的 内 置 函 数 或 过 程)。试 题 三:数 据 库 设 计*城 市 和 街 道 联 合 做 主 键 卜 面 的 表 有 问 题 吗?如 果 有,如 1可 改 进?城 市*街 道*邮 政 编 码 佛 山 金 鱼 街 528000佛 山 大 福 路 528000佛 山 季 华 路 528000广 州 北 京 路 510000广 州 三 元 里 510000广 州 中 山 路 510000 分 成 二 个 表,第 一 个 表 有 以 下 字 段:城 市 和 街 道,以 城 市 作

13、为 主 键;第 二 个 表:街 道 和 邮 政 编 码,以 街 道 为 主 键.通 过 街 道 与 第 一 个 表 的 街 道 相 关 联 2、假 设 有 以 下 的 两 个 表:表 Cus_A和 表 Cus_B的 结 构 完 全 相 同,表 Cus_A和 表 Cus_B中 既 存 在 ID相 同 的 记 录,也 存 在 ID不 同 的 记 录。现 要 求 将 ID只 存 在 于 表 Cus A中 而 不 存 在 于 表 Cus-B中 的 记 录 全 部 插 入 到 Cus_B表 中,并 用 表 Cus_A中 的 记 录 更 新 表 Cus_B中 相 同 的 II)的 记 录,请 写 出 完

14、成 这 功 能 的 存 储 过 程。C reate or procedure te s t isDeclare id l CusA.id%type;BeginS e lec t id in to id l from CusA a,CusB b where a.id=b.id;3、某 公 司 正 在 开 发 一 个 档 案 管 理 系 统,要 求 在 关 系 数 据 库 中 实 现 和 Windows文 件 系 统 完 全 一 致 的 树 状 文 件 目 录。为 了 实 现 这 一 目 录 结 构,至 少 需 求 哪 些 表?请 详 细 描 述 这 些 表 的 用 途 和 结 构(如 有 必 要

15、,可 用 图 表 进 行 描 述)。最 后,请 用 伪 编 码(或 自 然 语 言)描 述 按 树 状 结 构 遍 历 所 有 档 案 的 算 法。试 题 四:系 统 设 计 简 述“面 向 对 象”的 概 念,并 设 计 一 个 学 校 选 课 系 统 的 对 象 模 型。简 述“软 件 系 统 的 两 层 和 多 层 体 系 结 构”的 概 念(如 有 必 要,可 用 图 表 进 行 描 述),并 指 出 两 者 的 主 要 区 别。3、简 述 一 个 软 件 工 程 的 主 要 步 骤,并 指 出 每 个 步 骤 的 明 确 目 标 及 实 施 办 法。最 后 分 析 哪 些 是 关 键

16、 步 骤。试 题 五:综 合 你 认 为 在 团 队 开 发 中,你 能 发 挥 自 己 的 能 力 吗?为 什 么?当 个 人 意 见 与 主 管 出 现 矛 盾 时 J 你 用 什 么 方 法 解 决?基 础 知 识 1.下 列 那 种 语 言 是 面 向 对 象 的(CD)A.C B.PASCAL C.C+D.JAVA2.下 面 哪 些 是 面 向 对 象 的 基 本 特 性(ABC)A 多 态 B 继 承 C 封 装 D 接 口 3.下 面 有 关 计 算 机 操 作 系 统 的 叙 述 中,不 正 确 的 是(B)A 操 作 系 统 属 于 系 统 软 件 B 操 作 系 统 只 负

17、 责 管 理 内 存 储 器,而 不 管 理 外 存 储 器 CU N IX是 一 种 操 作 系 统 D 计 算 机 的 处 理 器、内 存 等 硬 件 资 源 也 由 操 作 系 统 管 理 高 级 编 程 1、进 程 和 线 程 的 区 别 答 案:进 程 是 系 统 进 行 资 源 分 配 和 调 度 的 单 位;线 程 是 C P U调 度 和 分 派 的 单 位,一 个 进 程 可 以 有 多 个 线 程,这 些 线 程 共 享 这 个 进 程 的 资 源。说 法 一:进 程 是 具 有 一 定 独 立 功 能 的 程 序 关 于 某 个 数 据 集 合 上 的 一 次 运 行 活

18、 动,进 程 是 系 统 进 行 资 源 分 配 和 调 度 的 一 个 独 立 单 位.线 程 是 进 程 的 一 个 实 体,是 C PU调 度 和 分 派 的 基 本 单 位,它 是 比 进 程 更 小 的 能 独 立 运 行 的 基 本 单 位.线 程 自 己 基 本 上 不 拥 有 系 统 资 源,只 拥 有 一 点 在 运 行 中 必 不 可 少 的 资 源(如 程 序 计 数 器,一 组 寄 存 器 和 栈),但 是 它 可 与 同 属 一 个 进 程 的 其 他 的 线 程 共 享 进 程 所 拥 有 的 全 部 货 源.一 个 线 程 可 以 创 建 和 撤 销 另 一 个

19、线 程;同 一 个 进 程 中 的 多 个 线 程 之 间 可 以 并 发 执 行 2 malloc和 n ew的 区 别 答 案:new是 C+的 关 键 字。malloc在 分 配 内 存 时 必 须 按 给 出 的 字 节 分 配,new可 以 按 照 对 象 的 大 小 自 动 分 配,并 且 能 调 用 构 造 函 数。可 以 说 n e w是 对 象 的 对 象,而 m alloc不 是。本 质 上 new分 配 内 存 时,还 会 在 实 际 内 存 块 的 前 后 加 上 附 加 信 息,所 以 new所 使 用 的 内 存 大 小 比 m alloc多。1、n e w 是 C

20、+中 的 操 作 符,malloc是 c 中 的 一 个 标 准 库 函 数;2,n e w可 以 按 照 对 象 的 大 小 自 动 分 配,并 且 n e w在 分 配 内 存 时 还 会 在 实 际 内 存 块 的 前 后 加 上 附 加 信 息,所 以 n e w所 使 用 的 内 存 大 小 会 比 m alloc多,而 且 n e w在 分 配 内 存 的 同 时 会 调 用 类 的 构 造 函 数,而 malloc在 分 配 内 存 时 必 须 按 给 出 的 字 节 分 配,也 不 会 进 行 初 始 化 类 成 员 的 工 作,即 不 能 够 把 执 行 构 造 函 数 任

21、务 强 加 于 malloc。3、内 存 泄 漏 对 于 malloc或 者 new都 可 以 检 查 出 来 的,区 别 在 于 new可 以 指 明 是 那 个 文 件 的 那 行,而 malloc没 有 这 些 信 息。3、头 文 件 中 的 ifndef/define/endif干 什 么 用 答 案:防 止 该 头 文 件 被 重 复 引 用。4、在 C+程 序 中 调 用 被 C 编 译 器 编 译 后 的 函 数,为 什 么 要 加 extern“C”声 明答 案:C+语 言 支 持 函 数 重 载,C 语 言 不 支 持 函 数 重 裁。函 数 被 C+编 译 后 在 库 中

22、的 名 字 与 C语 言 的 不 同。假 设 某 个 函 数 的 原 型 为:void foo(int x,int y);该 函 数 被 C 编 译 器 编 译 后 在 库 中 的 名 字 为 _砧。,而 C+编 译 器 则 会 产 生 像 _foo_int_int之 类 的 名 字。C+提 供 了 C 连 接 交 换 指 定 符 号 extern“C”来 解 决 名 字 匹 配 问 题。作 为 一 种 面 向 对 象 的 语 言,C+支 持 函 数 重 载,而 过 程 式 语 言 C 则 不 支 持。函 数 被 C+编 译 后 在 符 号 库 中 的 名 字 与 C 语 言 的 不 同。例

23、如,假 设 某 个 函 数 的 原 型 为:voidfoo(intx,int y);该 函 数 被 C 编 译 器 编 译 后 在 符 号 库 中 的 名 字 为 _fo。,而 C+编 译 器 则 会 产 生 像 _fo o _in t_in t之 类 的 名 字(_fo o _in t_in t这 样 的 名 字 包 含 了 函 数 名、函 数 参 数 数 量 及 类 型 信 息,C+就 是 靠 这 种 机 制 来 实 现 函 数 重 载 的。例 如,在 C+中,函 数 void foo(int x,iniy)1 j void foo(int x,float y)编 译 生 成 的 符 号

24、是 不 相 同 的,后 者 为 _foo_int_float。)。为 此 C+提 供 了 C 连 接 交 换 指 定 符 号 extern C,被 extern”C”修 饰 的 变 量 和 函 数 是 按 照 C语 言 方 式 编 译 和 连 接 的,如 此 来 解 决 名 字 匹 配 问 题。5、指 明 以 下 const的 作 用 void GetValue(const char*in_szName,char*out_szValue);答 案:in-szN am e被 强 制 保 护,函 数 中 不 允 许 对 其 做 修 改,可 以 预 防 意 外 的 变 动,程 序 中 使 用 con

25、st有 利 于 提 高 程 序 的 健 壮 性。6、请 填 写 flo a t,指 针 变 量 与“零 值”比 较 的 i f 语 句 提 示:这 里“零 值”可 以 是 0,0.0或 者“空 指 针 例 如 i n t变 量 n 与“零 值”比 较 的 i f 语 句 为:if(n=0)if(n!=0)以 此 类 推。请 写 出 float x 与“零 值”比 较 的 i f 语 句:答 案:const float EPSIN ON=0.00001;if(x=-EPSINON)&(x v=EPSINON)不 可 将 浮 点 变 量 用 或“!=”与 数 字 比 较,应 该 设 法 转 化 成

26、“=或“=”此 类 形 式。请 写 出 char*p 与“零 值”比 较 的 i f 语 句:答 案:if(p=N ULL)if(p!=N ULL)7、以 下 为 Windows N T下 的 32位 C+程 序,请 计 算 sizeof的 值 char strlJ=Hello”;char*p=str;int n=10;请 计 算 sizeof(str)=6sizeof(p)=4sizeof(n)=4void Func(char strflOO)(请 计 算 sizeof(s tr)=4)void*p=malloc(100);请 计 算 sizeof(p)=48、有 关 内 存 的 思 考 v

27、oid GetMemory(char*p)p=(char*)malloc(100);)void Test(void)(char*str=NULL;GetMemory(str);strcpy(str,nhello world*1);printf(str);请 问 运 行 T e s t函 数 会 有 什 么 样 的 结 果?答 案:程 序 崩 溃。因 为 GetMemory并 不 能 传 递 动 态 内 存,T est函 数 中 的 str 一 直 都 是 NULLostrcpy(str,uhello world);将 使 程 序 崩 溃。char*GetMemory(void)(char p=

28、hello world11;return p;)void Test(void)(char*str=NULL;str=GetMemoryO;printf(str);)请 问 运 行 Test函 数 会 有 什 么 样 的 结 果?答 案:可 能 是 乱 码。因 为 GetM emory返 回 的 是 指 向“栈 内 存”的 指 针,该 指 针 的 地 址 不 是 N U L L,但 其 原 现 的 内 容 已 经 被 清 除,新 内 容 不 可 知。void GetMemory2(char*p,int num)*p=(char*)malloc(num);)void Test(void)(char

29、*str=NULL;GetMemory(&str,100);strcpy(str,HhelloH);printf(str);请 问 运 行 T e st函 数 会 有 什 么 样 的 结 果?答 案:(1)能 够 输 出 hello(2)内 存 泄 漏 void Test(void)(char*str=(char*)malloc(lOO);strcpy(str,hello”);free(str);if(str!=NULL)(strcpy(str,world”);printf(str);)请 问 运 行 T e st函 数 会 有 什 么 样 的 结 果?答 案:篡 改 动 态 内 存 区 的

30、内 容,后 果 难 以 预 料,非 常 危 险。因 为 free(str);之 后,str成 为 野 指 针,if(str!=NULL)语 句 不 起 作 用。9、找 错 题 void test 1()(char stringflO;char*strl=0123456789”;strcpy(string,strl);)答 案:字 符 串 s trl需 要 11个 字 节 才 能 存 放 已 有 内 容,因 为 字 符 串 是 以 0作 为 结 束 的,而 string只 分 配 了 10个 字 节 的 空 间,strcpy将 导 致 数 组 越 界。10、编 写 strcpy函 数 已 知 s

31、trc p y函 数 的 原 型 是 char*strcpy(char*strDest,const char*strS rc);其 中 strD e st是 目 的 字 符 串,s trS rc是 源 字 符 串。不 调 用 C+/C的 字 符 串 库 函 数,请 编 写 函 数 strcpy答 案:char*strcpy(char*strDest,const char*strSrc);(assert(strDest!=NULL)&(strSrc!=NULL);/a s s e rt()用 于 判 断 括 号 内 的 条 件 是 否 为 真,为 真 时 继 续 执 行 程 序,为 假 时 就

32、终 止 该 程 序。char*address=strDest;while(*strDest+=*strSrc+)!=0)return address;C+/C试 题 本 试 题 仅 用 于 考 查 C+/C程 序 员 的 基 本 编 程 技 能。内 容 限 于 C+/C常 用 语 法,不 涉 及 数 据 结 构、算 法 以 及 深 奥 的 语 法。考 试 成 绩 能 反 映 出 考 生 的 编 程 质 量 以 及 对 C+/C的 理 解 程 度,但 不 能 反 映 考 生 的 智 力 和 软 件 开 发 能 力。笔 试 时 间 9 0分 钟。请 考 生 认 真 答 题,切 勿 轻 视。一、请

33、填 写 BOOL,flo a t,指 针 变 量 与“零 值”比 较 的 i f 语 句。(10分)提 示:这 里“零 值”可 以 是 0,0.0,FALSE或 者“空 指 针”。例 如 i n t变 量 n 与“零 值”比 较 的 i f 语 句 为:i f(n=0)i f(n!=0)以 此 类 推。请 写 出 BOOL f la g与“零 值”比 较 的 i f 语 句:请 写 出 float x 与“零 值”比 较 的 i f 语 句:请 写 出 char*p 与“零 值”比 较 的 i f 语 句:二、以 下 为 Windows N T下 的 3 2位 C+程 序,请 计 算 size

34、of的 值(1 0分)char str=Hello”;void Func(char strflOO)char*p=str;(int n=10;请 计 算 请 计 算 sizeof(s tr)=sizeof(str)=)sizeof(p)=void*p=malloc(100);请 计 算 sizeof(n)=sizeof(p)=三、简 答 题(2 5分)1、头 文 件 中 的 ifndef/define/endif干 什 么 用?2、#include 和#include filename.h”有 什 么 区 别?3、c o n s t有 什 么 用 途?(请 至 少 说 明 两 种)4、在 C+

35、程 序 中 调 用 被 C 编 译 器 编 译 后 的 函 数,为 什 么 要 加 extern“C”声 明?5、请 简 述 以 下 两 个 fo r循 环 的 优 缺 点/第 一 个 fo r(i=0;iN;i+)(i f(condition)DoSomethingO;e lseDoOtherthingO;)/第 二 个 i f(condition)(fo r(i=0;iN;i+)DoSomethingO;)e lse(fo r(i=0;iN;i+)DoOtherthingO;)优 点:优 点:缺 点:缺 点:四、有 关 内 存 的 思 考 题(20分)void GetMemory(char

36、*p)char*GetMemory(void)tp=(char*)m alloc(100);tchar p=h ello world”;)void Test(void)(re tu rn p;)void T est(void)char*str=N U L L;GetMemory(s tr);strcpy(str,hello world);p r in tf(s tr);)(char*str=N U L L;s tr=GetMemory();p r in tf(s tr);)请 问 运 行 T e st函 数 会 有 什 么 样 的 结 果?答:请 问 运 行 T e st函 数 会 有 什 么

37、 样 的 结 果?答:Void GetMemory2(char*p,int num)(*p=(char*)malloc(num);void Test(void)(char*str=N U L L;void Test(void)(char*str=(char*)malloc(100);strcpy(str,hello);free(s tr);if(s tr!=N U L L)(GetMemory(&str,100);strcpy(str,h ello);p r in tf(s tr);)请 问 运 行 T e st函 数 会 有 什 么 样 的 结 果?答:strcpy(str,world);p

38、 r in tf(s tr);)i请 问 运 行 T e st函 数 会 有 什 么 样 的 结 果?答:五、编 写 strcpy函 数(10分)已 知 strcpy函 数 的 原 型 是 char*strcpy(char*strDest,const char*strSrc);其 中 strDest是 目 的 字 符 串,strSrc是 源 字 符 串。(1)不 调 用 C+/C的 字 符 串 库 函 数,请 编 写 函 数 strcpy(2)strcpy能 把 strSrc的 内 容 复 制 到 strDest,为 什 么 还 要 char*类 型 的 返 回 值?六、编 写 类 Strin

39、g的 构 造 函 数、析 构 函 数 和 赋 值 函 数(2 5分)已 知 类 String的 原 型 为:class Stringpublic:String(const char*str=NULL);/普 通 构 造 函 数 String(const String&other);/拷 贝 构 造 函 数 String(void);/析 构 函 数 String&operate=(const String&other);/赋 值 函 数 private:char*m_data;/用 于 保 存 字 符 串;请 编 写 String的 上 述 4 个 函 数。C+/C试 题 的 答 案 与 评

40、分 标 准 一、请 填 写 BOOL,float,指 针 变 量 与“零 值”比 较 的 if语 句。(10分)请 写 出 BOOL flag与“零 值”比 较 的 if语 句。(3 分)标 准 答 案:如 下 写 法 均 属 不 良 风 格,不 得 分。if(flag)if(flag=TRUE)if(Iflag)if(flag=1)if(flag=FALSE)if(flag=0)请 写 出 float x 与“零 值”比 较 的 if语 句。(4 分)标 准 答 案 示 例:const float EPSINON=0.00001;如 下 是 错 误 的 写 法,不 得 分。if(x=-EPS

41、INON)&(x=”或“=”此 类 形 式。if(x!=0.0)请 写 出 char*p 与“零 值”比 较 的 if语 句。(3 分)标 准 答 案:如 下 写 法 均 属 不 良 风 格,不 得 分。if(p=NULL)if(p=0)if(p!=NULL)if(p!=0)if(p)if(!)二、以 下 为 Windows N T下 的 3 2位 C+程 序,请 计 算 sizeof的 值(1 0分)char str=Hello”;void Func(char str100)char*p=str;(int n=10;请 计 算 请 计 算 sizeof(str)=4(2 分)sizeof(s

42、tr)=6(2 分)sizeof(p)=4(2 分)void*p=malloc(100);请 计 算 sizeof(n)=4(2 分)sizeof(p)=4(2 分)三、简 答 题(2 5分)1、头 文 件 中 的 ifndef/define/endif干 什 么 用?(5 分)答:防 止 该 头 文 件 被 重 复 引 用。2、#include 和#include filename.h”有 什 么 区 别?(5 分)答:对 于#include,编 译 器 从 标 准 库 路 径 开 始 搜 索 filename.h对 于#include“filename.h”,编 译 器 从 用 户 的 工

43、 作 路 径 开 始 搜 索 filename.h3、const有 什 么 用 途?(请 至 少 说 明 两 种)(5 分)答:(1)可 以 定 义 const常 量(2)const可 以 修 饰 函 数 的 参 数、返 回 值,甚 至 函 数 的 定 义 体。被 const修 饰 的 东 西 都 受 到 强 制 保 护,可 以 预 防 意 外 的 变 动,能 提 高 程 序 的 健 壮 性。4、在 C+程 序 中 调 用 被 C 编 译 器 编 译 后 的 函 数,为 什 么 要 加 extern“C”?(5 分)答:C+语 言 支 持 函 数 重 载,C 语 言 不 支 持 函 数 重 载

44、。函 数 被 C+编 译 后 在 库 中 的 名 字 与 C语 言 的 不 同。假 设 某 个 函 数 的 原 型 为:void foo(int x,int y);该 函 数 被 C 编 译 器 编 译 后 在 库 中 的 名 字 为 一 foo,而 C+编 译 器 则 会 产 生 像 一 foo_int_int之 类 的 名 字。C+提 供 了 C 连 接 交 换 指 定 符 号 extern C 来 解 决 名 字 匹 配 问 题。5、请 简 述 以 下 两 个 for循 环 的 优 缺 点(5 分)for(i=0;iN;i+)(if(condition)DoSomethingO;else

45、DoOtherthingO;if(condition)(for(i=0;iN;i+)DoSomethingO;)elsefor(i=0;iN;i+)DoOtherthingO;)优 点:程 序 简 洁 缺 点:多 执 行 了 N T 次 逻 辑 判 断,并 且 打 断 了 循 环“流 水 线”作 业,使 得 编 译 器 不 能 对 循 环 进 行 优 化 处 理,降 低 了 效 率。优 点:循 环 的 效 率 高 缺 点:程 序 不 简 洁 四、有 关 内 存 的 思 考 题(每 小 题 5 分,共 20分)void GetMemory(char*p)char*GetMemory(void)t

46、p=(char*)malloc(100);tchar p=hello world”;return p;void Test(void)(void Test(void)char*str=NULL;(GetMemory(str);strcpy(str,hello world);printf(str);请 问 运 行 Test函 数 会 有 什 么 样 的 结 果?答:程 序 崩 溃。因 为 GetMemory并 不 能 传 递 动 态 内 存,Test函 数 中 的 str 一 直 都 是 NULL。strcpy(str,hello world);将 使 程 序 崩 溃。char*str=NULL;

47、str=GetMemory();printf(str);)请 问 运 行 Test函 数 会 有 什 么 样 的 结 果?答:可 能 是 乱 码。因 为 GetMemory返 回 的 是 指 向“栈 内 存”的 指 针,该 指 针 的 地 址 不 是 NULL,但 其 原 现 的 内 容 已 经 被 清 除,新 内 容 不 可 知。void GetMemory2(char*p,int num)(*p=(char*)malloc(num);void Test(void)(char*str=NULL;GetMemory(&str,100);strcpy(str,hello);printf(str)

48、;)请 问 运 行 Test函 数 会 有 什 么 样 的 结 果?答:(1)能 够 输 出 hello(2)内 存 泄 漏 void Test(void)(char*str=(char*)malloc(100);strcpy(str,hello);free(str);if(str!=NULL)(strcpy(str,“world”);printf(str);)请 问 运 行 Test函 数 会 有 什 么 样 的 结 果?答:篡 改 动 态 内 存 区 的 内 容,后 果 难 以 预 料,非 常 危 险。因 为 free(str);之 后,str成 为 野 指 针,if(str!=NULL)

49、语 句 不 起 作 用。五、编 写 strcpy函 数(10分)已 知 strcpy函 数 的 原 型 是 char*strcpy(char*strDest,const char*strSrc);其 中 strDest是 目 的 字 符 串,strSrc是 源 字 符 串。(1)不 调 用 C+/C的 字 符 串 库 函 数,请 编 写 函 数 strcpychar*strcpy(char*strDest,const char*strSrc);(assert(strDest!=NULL)&(strSrc!=NULL);/2分 char*address=strDest;/2分 while(*st

50、rDest+=*strSrc+)1=0)/2分 NULL;return address;/2分(2)strcpy能 把 strSrc的 内 容 复 制 到 strDest,为 什 么 还 要 char*类 型 的 返 回 值?答:为 了 实 现 链 式 表 达 式。/2 分 例 如 int length=strlen(strcpy(strDest,uhello world);六、编 写 类 String的 构 造 函 数、析 构 函 数 和 赋 值 函 数(2 5分)J 知 类 String的 原 型 为:class String(public:String(const char*str=NU

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

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

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

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