已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 下列叙述中正确的是 A 栈是 先进先出 的线性表 B 队列是 先进后出 的线性表 C 循环队列是非线性结构 D 有序线性表既可以采用顺序存储结构 也可以采用链式存储结构 栈是一种特殊的线性表 这种线性表只能在固定的一端进行插入和删除操作 允许插入和删除的一端 称为栈顶 另一端称为栈底 一个新元素只能从栈顶一端进入 删除时 只能删除栈顶的元素 即刚刚被 插入的元素 所以栈又称 后进先出 表 所以选项A是错误的 队列可看作是插入在一端进行 删除在另一端进行的线性表 允许插入的一端称为队尾 允许删除的 一端称为队头 在队列中 只能删除队头元素 队列的最后一个元素一定是最新入队的元素 因此队列又 称 先进先出 表 所以选项B是错误的 循环队列是将队列存储空间的最后一个位置绕到第一个位置 形成逻辑上的环状空间 供队列循环使 用 它的逻辑结构仍然是线性结构 所以选项C是错误的 有序线性表既可以采用顺序存储结构 也可以采用链式存储结构 所以选项D是正确的 故本题答案为 D 2 将 E R 图转换为关系模式时 实体和联系都可以表示为 A 属性 B 键 C 关系 D 域 将E R图转换为关系模式时 实体和联系都可以表示成关系 E R图中属性也可以转换成关系的属性 实体集也可以转换成关系 故本题答案为 C 3 下面叙述中错误的是 A 软件测试的目的是发现错误并改正错误 B 对被调试的程序进行 错误定位 是程序调试的必要步骤 C 程序调试通常也称为Debug D 软件测试应严格执行测试计划 排除测试的随意性 1983年IEEE将软件测试定义为 使用人工或自动手段来运行或测定某个系统的过程 其目的在于检验 它是否满足规定的需求或是弄清预期结果与实际结果之间的差别 因此选项A的叙述是错误的 软件测试的基本准则为 所有测试都应追溯到需求 严格执行测试计划 排除测试的随意性 充分注意测试中的群集现象 程序员应避免检查自己的程序 穷举测试不可能 妥善保存测试计划 测试用例 出错统计和最终分析报告 为维护提供方便 因此选项D正确 在对程序进行了成功的测试之后将进入程序调试 通常称Debug 即排错 因此选项C正确 程序调试的任务是诊断和改正程序中的错误 程序调试的基本步骤 错误定位 修改设计和代码 以排除错误 进行回归测试 防止引进新的错误 因此选项B是正确的 故本题答案为A 4 下列排序方法中 最坏情况下比较次数最少的是 A 冒泡排序 B 简单选择排序 C 直接插入排序 D 堆排序 1 冒泡排序法 是一种最简单的交换类排序法 它是通过相邻数据元素的交换逐步将线性表变成 QQ374289236QQ374289236 有序 假设线性表的长度为n 则在最坏情况下 冒泡排序需要经过n 2遍的从前往后的扫描和n 2遍的从 后往前的扫描 需要比较的次数为n n 1 2次 2 简单插入排序法 在简单插入排序法中 每一次比较后最多移掉一个逆序 因此 这种排序方 法的效率与冒泡排序法相同 在最坏情况下 简单插入排序需要n n 1 2次比较 3 简单选择排序法 对于长度为n的序列 选择排序需要扫描n 1遍 每一遍扫描均从剩下的子表 中选出最小的元素 然后将该最小的元素与子表中的第一个元素进行交换 简单选择排序法在最坏情况下 需要比较n n 1 2次 4 堆排序法 堆排序的方法为 首先将一个无序序列建成堆 然后将堆顶元素 序列中的最 大项 与堆中最后一个元素交换 最大项应该在序列的最后 在最坏情况下 堆排序需要比较的次数为 假设线性表的长度为16 那么冒泡排序 直接插入排序 简单选择排序都需要比较120次 而堆排序 需要比较64次 故本题答案为D 5 耦合性和内聚性是对模块独立性度量的两个标准 下列叙述中正确的是 A 提高耦合性降低内聚性有利于提高模块的独立性 B 降低耦合性提高内聚性有利于提高模块的独立性 C 耦合性是指一个模块内部各个元素间彼此结合的紧密程度 D 内聚性是指模块间互相连接的紧密程度 内聚性 内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量 耦合性 耦合性是模块间互 相连接的紧密程度的度量 因此选项C D是错误的 在程序结构中 各模块的内聚性越强 则耦合性越弱 一般较优秀的软件设计 应尽量做到高内聚 低耦合 即减弱模块之间的耦合性和提高模块内的内聚性 有利于提高模块的独立性 因此选项A是错误的 应该降低耦性合提高内聚性 所以选项B是正确的 故本题答案为B 6 有两个关系R S如下 R S 由关系R通过运算得到关系S 则所使用的运算为 A 选择 B 投影 C 插入 D 连接 专门的关系运算包括 选择 投影和连接 1 选择 从关系中找出满足给定条件的元组的操作称为 选择 选择是从行的角度进行的运算 即从水平方向抽取记录 2 投影 从关系模式中指定若干个属性 组成新的关系 投影是从列的角度进行的运算 相当于对关系进行垂直分解 3 连接 连接是关系的横 向结合 连接运算将两个关系模式拼接成一个更宽的关系模式 生成的新关系中包含满足连接条件的元组 连接过程是通过连接条件来控制的 连接条件中将出现两个表中的公共属性名 或者具有相同语义 可比 的属性 选择和投影运算的操作对象只是一个表 相当于对一个二维表进行切割 连接运算需要两个表作 为操作对象 由图可知关系R通过运算得到关系S 关系S与关系R相比 记录的条数没有发生变化 属性的个数发生 QQ374289236QQ374289236 了变化 因此所使用的运算应该是投影 选项C插入运算会增加记录的条数 所以选项B是正确的 故本题答案为B 7 数据库应用系统中的核心问题是 A 数据库设计 B 数据库系统设计 C 数据库维护 D 数据库管理员培训 数据库应用系统是数据库系统再加上应用软件及应用界面这三者所组成 具体包括 数据库 数据库 管理系统 数据库管理员 硬件平台 软件平台 应用软件 应用界面 在数据库应用系统中的一个核心 问题就是设计一个能满足用户要求 性能良好的数据库 这就是数据库设计 所以选项A是正确的 故本题答案为 A 8 支持子程序调用的数据结构是 A 栈 B 树 C 队列 D 二叉树 子程序调用是一种层次关系 子程序调用功能模块 调用功能模块的个数也不确定 可以是一个 也 可以是多个 选项A C中元素之间是一种前后件关系 前后元素之间没有层次之分 每个结点有一个前件 也只有一个后件 二叉树是一种很有用的非线性结构 二叉树不同于树形结构 二叉树具有以下两个特点 非空二叉树只有一个根结点 每一个结点最多有两棵子树 且分别称为该结点的左子树与右子树 选 项D规定每个结点只能有两个后件 在子程序调用中 调用的功能模块可以是多个 可以调用超过两个功 能模块 所以选项A C D均不正确 故本题答案为 B 9 某二叉树有 5 个度为 2 的结点 则该二叉树中的叶子结点数是 A 10 B 8 C 6 D 4 在任意一棵二叉树中 度为0的结点 即叶子结点 总是比度为2的结点多一个 本题中度为2的结点 数为5 故叶子结点数为5 1 6个 故本题答案为 C 10 软件按功能可以分为 应用软件 系统软件和支撑软件 或工具软件 下面属于应用软件的是 A 编译程序 B 操作系统 C 教务管理系统 D 汇编程序 软件按功能可以分为 应用软件 系统软件 支撑软件 或工具软件 应用软件是为解决特定领域 的应用而开发的软件 例如 事务处理软件 工程与科学计算软件 实时处理软件 嵌入式软件 人工智 能软件等应用性质不同的软件 因此选项C教务管理系统属于应用软件 系统软件是计算机管理自身资源 提高计算机使用效率并为计算机用户提供各种服务的软件 如操作系统 编译程序 汇编程序 网络软件 数据库管理系统等 因此选项A B D都属于系统软件 故本题答案为 C 11 有如下程序 QQ374289236QQ374289236 include using namespace std class ONE int c public ONE c 0 cout 1 ONE int n c n cout 2 class TWO ONE one1 ONE one2 public TWO int m one2 m cout 3 int main TWO t 4 return 0 运行时的输出结果是 A 3 B 23 C 123 D 213 本题主要考查了成员对象 当一个类的成员是另外一个类的对象时 该对象就称为成员对象 建立一个类的对象时 要调用它的 构造函数 如果这个类有成员对象 要首先执行所有的成员对象的构造函数 当全部成员对象的初始化都 完成之后 再执行当前类的构造函数体 当类中有多个成员对象时 要按照定义成员对象的顺序建立各个 子对象 即成员对象构造函数的执行顺序仅与成员对象在类中声明的顺序有关 而与成员初始化列表中给 出的成员对象的顺序无关 如果在构造函数的成员初始化列表中没有给出对成员对象的初始化 则表示使 用成员对象的缺省构造函数 如果所有的成员对象都是调用缺省构造函数建立的 那么该类的构造函数的 成员初始化列表可以省略 类TWO的数据成员是类ONE的对象one1和one2 main 函数中首先创建类TWO的 对象t并提供初始值4 先执行成员对象one1的构造函数体 输出1 再执行成员对象one2的构造函数体 输出2 最后执行类TWO的构造函数体 输出3 因此本题程序运行时的输出结果是123 故本题答案为C 12 假设下列语句都是程序运行后首次执行的输出语句 其中输出结果与另外三条语句不同的语句是 A cout setfill 123 setw 9 321 B cout setfill setw 6 left 123 setw 6 right 321 C cout 123 setfill setw 6 321 D cout setfill setw 9 left 123 321 本题主要考查了输出格式控制 操纵符setw为紧随其后的输出项指定输出宽度 在一个域输出完后 域宽度恢复成它的默认值0 输 出项默认对齐方式为右对齐 操纵符setfill的作用是设置填充字符 因此选项A 选项B和选项D的输出结 果都为123 321 而选项C的输出结果为123 321 QQ374289236QQ374289236 故本题答案为C 13 已知表达式 a中的 是作为成员函数重载的运算符 则与 a等效的运算符函数调用形式为 A a operator 1 B operator a C operator a 1 D a operator 本题主要考查了运算符重载 C 把重载的运算符视为特殊的函数 称为运算符函数 函数名就是在运算符前加上保留字 operator 一般而言 如果a是类X的对象 在类X中重载前置单目运算符 则下列两种函数调用方法是等 价的 第一种是通过运算符构成表达式的形式进行调用 即 a 第二种是像一般函数那样用函数名进行调用 当把 作为成员函数重载时 调用形式为a operator 当把 作为非成员函数重载时 调用形式为operator a 本题是把前置单目运算符 重载为成员函数 因此与表达式 a等效的表示为a operator 故本题答案为D 14 已知有数组定义 char a 3 4 下列表达式中错误的是 A a 2 WIN B strcpy a 2 WIN C a 2 3 W D a 0 1 a 0 1 本题主要考查了数组 如果把二维数组a 3 4 看作3行4列矩阵 a 2 是第三行数据的首地址 是一个常量 不能对其赋值 本题答案为 A 15 运算符重载时不需要保持的性质是 A 操作数个数 B 操作数类型 C 优先级 D 结合性 本题主要考查了运算符重载 重载的运算符应尽可能保持其原有的基本语义 重载的运算符应该体现为原运算符的功能在新的数据 类型上的延伸 重载的运算符应尽可能保持其原有的特性 运算符的操作数个数 优先级和结合性是三个 最基本的特性 因此运算符重载时不需要保持的性质是操作数类型 故本题答案为 B 16 当使用 ifstream 流类定义一个流对象并打开一个磁盘文件时 文件的默认打开方式为 A ios base in B ios base in ios base out C ios base out D ios base in private int privateData class ChildA public Parents 类体略 class ChildB private Parents 类体略 ChildA a ChildB b 下列语句中正确的是 A cout a publicData endl B cout a privateData endl C cout b publicData endl D cout b privateData endl 本题主要考查了派生类对基类成员的访问 基类中公有成员在派生类中的访问控制属性将随着继承方式而改变 派生类从基类公有继承时 基类 的公有成员在派生类中仍然是公有成员 派生类从基类私有继承时 基类的公有成员在派生类中改变为私 有成员 通过类的对象只能访问类的公有成员 故选项A是正确的 故本题答案为 A 18 有如下程序段 int i 4 int j 1 int main int i 8 j i cout i j endl 运行时的输出结果是 A 44 B 41 C 88 D 81 本题主要考查了变量的作用域与可见性 在C 中 作用域可见性的规则之一是 如果在两个或多个具有包含关系的作用域中声明了同名标识 符 则外层标识符在内层不可见 本题中 在main 函数之前声明的变量i和j具有文件作用域 它的有效 范围是整个源代码文件 在main 函数中又声明了同名变量i和j并赋初值均为8 其作用域为函数块 有 效范围为整个函数体 因为具有块作用域的变量隐藏了具有文件作用域的同名变量 所以main 函数中第 二条输出语句中的变量i和j指的是在main 函数中声明的变量i和j 故程序运行时的输出结果是88 故本题答案为 C 19 已知类MyClass声明如下 class MyClass int n public QQ374289236QQ374289236 MyClass int k n k int getValue const return n 在下列数组定义中正确的是 A MyClass x1 2 B MyClass x2 2 new MyClass 1 new MyClass 2 C MyClass x3 2 D MyClass x4 2 MyClass 1 MyClass 2 本题主要考查了对象数组 指针数组和new运算符 new运算符返回指向指定类型的一个指针 对象数组是指数组元素为对象的数组 该数组中的每一个 元素都是同一个类的对象 定义对象数组时 系统将自动调用构造函数创建每一个对象元素 因为类 MyClass中定义了一个有一个整型参数的构造函数 编译器将不再为其生成缺省构造函数 所以定义对象 数组时必须分别调用有参构造函数为每一个数组元素指定初始值 因此选项A错误 没有初始化对象数组 选项B中 用指向对象的指针初始化对象数组 类型不匹配 因此选项B错误 指针数组是由指针组成的数 组 即数组中的每一个元素都是指向同一类型对象的指针 选项C定义了指向MyClass类对象的指针数组 x3 该定义语句正确 选项D中 只能用指向MyClass类对象的指针或用已有的MyClass类对象的地址来初 始化指针数组x4的每一个元素 不能用对象进行初始化 因此选项D错误 故本题答案为C 20 有如下程序 include include using namespace std class XCF int a public XCF int aa 0 a aa cout 1 XCF XCF cout 2 XCF cout a int Geta return a int main XCF d1 5 d2 d1 XCF pd new XCF 8 cout Geta delete pd return 0 运行时的输出结果是 A 1215588 B 1218855 C 12185 D 128512 本题主要考查了构造函数 拷贝构造函数和析构函数 构造函数在对象被创建的时候由系统自动调用 析构函数在对象的生存期即将结束的时刻被系统自动 QQ374289236QQ374289236 调用 拷贝构造函数发生在用一个已知的对象初始化一个正在创建的同类对象的时候 在main 函数中 语句XCF d1 5 d2 d1 先后创建了两个对象d1和d2 在创建对象d1时 系统自动调用了构造函数 d1数 据成员a的值为5 输出字符1 在创建对象d2时是用已创建的对象d1初始化 系统自动调用拷贝构造函数 对象d2数据成员a的值为5 输出字符2 然后执行语句XCF pd new XCF 8 系统再次调用构造函数通过 new运算符动态创建了一个XCF类的对象 该对象的数据成员a的值为8 输出字符1 并将首地址赋给XCF类 的指针pd 成员函数Geta 的功能是获取数据成员a 因此执行语句cout Geta 输出8 接着执行 语句delete pd 系统自动调用析构函数 输出指针pd所指向对象的数据成员a 即输出8 当main 函数结 束时 系统先自动调用析构函数删除对象d2 输出对象d2的数据成员a的值5 然后再次调用析构函数删除 对象d1 输出对象d1的数据成员a的值5 因此程序输出结果为1218855 故本题答案为B 21 已知函数fun的原型为 int fun int int int 下列重载函数原型中错误的是 A char fun int int B double fun int int double C int fun int clar D float fun int int int 本题主要考查了函数重载 函数重载允许用同一个函数名定义多个函数 被重载的函数必须要有不同的形参列表 即参数个数不 同或参数类型不同 不可以根据函数返回值类型来重载函数 故本题答案为 D 22 下列关于函数模板的描述中 错误的是 A 从模板实参表和从模板函数实参表获得信息矛盾时 以模板实参的信息为准 B 对于常规参数所对应的模板实参 任何情况下都不能省略 C 虚拟类型参数没有出现在模板函数的形参表中时 不能省略模板实参 D 模板参数表不能为空 本题主要考查了函数模版 在调用一个模板函数时 编译系统需要足够的信息来判别每个虚拟类型参数所对应的实际类型 可以 从两个不同的渠道获得这样的信息 从模板实参表 用括起来的参数表 或从模板函数实参表 用 和 括起来的参数表 模板实参的信息优先于函数实参的信息 因此选项A正确 如果从后者获得的信 息已经能够判定其中部分或全部虚拟类型参数所对应的实际参数 而且它们又正好是参数表中最后的若干 参数 则模板实参表中的那几个参数可以省略 如果模板实参表中的实参都被省略了 则空表也可以不 要 因此选项D错误 反之 对于某个模板实参 如果从模板函数的实参表中无法获得同样的信息 就不 能省略 或者虽然能够获得同样的信息 但在它后面还有其他不能省略的实参 则其自身还是不能省略 下面列举几种模板实参不能省略的情况 从模板函数实参表获得的信息有矛盾 需要获得特定类型的 返回值 而不管参数的类型如何 虚拟类型参数没有出现在模板函数的形参表中 因此选项C正确 函数模板含有常规形参 因此选项B正确 故本题答案为D 23 有如下程序 include using namespace std class Pair int m int n QQ374289236QQ374289236 public Pair int i int j m i n j bool operator Pair p const 须在类体外给出定义 int main Pair p1 3 4 p2 4 3 p3 4 5 cout p2 p1 p3 p2 return 0 运算符函数operator 的功能是比较两个Pair对象的大小 当左边对象大时 返回true 否则返回false 比较规则是首先比较两对象的m成员 m大者为大 当m相等时比较n n大者为大 程序输出0101 下列对 运算符重载函数的正确定义是 A bool Pair operator Pair p const if m p m return m p m return n p n B bool Pair operator Pair p if m p m return m p m return n p n C bool Pair operator Pair p const if m p m return true return n p n D bool Pair operator Pair p if m p m return true return n p n 本题主要考查了常成员函数和运算符重载 因为const关键字可以用于对重载函数的区分 所以在类外定义常成员函数时不能省略const关键字 因此选项B和选项D错误 选项C中 如果mp n返回值为true 但题目要求返回值应为false 因此 选项C错误 故本题答案为A 24 有如下类定义 class XX int xx public XX xx 0 cout A XX int n xx n cout B class YY public XX int yy public YY yy 0 cout yy YY int n XX n 1 yy n cout yy YY int m int n XX m yy n cout yy 下列选项中 输出结果为A0的语句是 A YY y1 0 0 B YY y2 1 C YY y3 0 D YY y4 QQ374289236QQ374289236 本题主要考查了派生类构造函数执行顺序 建立派生类对象时 构造函数的执行顺序为 执行基类的构造函数 调用顺序按照各个基类被继承 时声明的顺序 自左向右 执行成员对象的构造函数 调用顺序按照各个成员对象在类中声明的顺序 自上而下 执行派生类的构造函数 根据声明类YY的对象时提供的初始值个数和类型 确定和其匹配的构造函数 再根据该构造函数中在 初始化基类时给出的初始值的个数和类型 确定和其匹配的基类的构造函数 选项A中构造函数的执行顺 序为 先执行基类XX的有一个整型参数的构造函数 输出字符B 再执行派生类YY的有两个整型参数的构 造函数 输出数据成员yy的值0 因此选项A的输出结果为B0 选项B中构造函数的执行顺序为 先执行基 类XX的有一个整型参数的构造函数 输出字符B 再执行派生类YY的有一个整型参数的构造函数 输出数 据成员yy的值1 因此选项B的输出结果为B1 选项C的输出结果为B0 选项D中构造函数的执行顺序为 先 执行基类XX的缺省构造函数 输出字符A 再执行派生类YY的缺省构造函数 输出数据成员yy的值0 因此 选项D的输出结果为A0 故本题答案为D 25 有下列程序 include include using namespace std class XCD char a int b public XCD char aa int bb a new char strlen aa 1 strcpy a aa b bb char Geta return a int Getb return b int main char p1 abcd p2 weirong int d1 6 d2 8 XCD x p1 d1 y p2 d2 cout strlen x Geta y Getb endl return 0 运行时的输出结果是 A 12 B 16 C 14 D 11 本题主要考查了构造函数 构造函数在对象被创建的时候由系统自动调用 在mian 函数中 语句XCD x p1 d1 y p2 d2 创 建了两个对象x和y 在创建对象x时系统自动调用类的构造函数 使对象x的数据成员字符指针a指向的内 QQ374289236QQ374289236 存空间的值为字符串 abcd 成员函数Geta的功能是获取数据成员a 库函数strlen 的功能是获取字符 串的长度 故strlen x Geta 的值为4 在创建对象y时系统自动调用类的构造函数 使对象y的数据成 员b的值为8 成员函数Getb的功能是获取数据成员b 故y Getb 的值为8 因此程序运行的输出结果是 4 8 即12 故本题答案为 A 26 下列描述中 不属于面向对象思想主要特征的是 A 封装性 B 跨平台性 C 继承性 D 多态性 本题主要考查了面向对象思想 C 是一种面向对象的程序设计语言 它充分支持面向对象思想中的三个主要特征 封装性 继承性 多态性 故本题答案为 B 27 有如下程序 include using namespace std class AA int k protected int n void setK int k this k k public void setN int n this n n class BB public AA 类体略 int main BB x x n 1 1 x setN 2 2 x k 3 3 x setK 4 4 return 0 在标注号码的四条语句中正确的是 A 1 B 2 C 3 D 4 本题主要考查了派生类对象对基类成员的访问 类BB公有继承类AA 类AA的公有成员函数setN 成为类BB的公有成员 类AA的保护数据成员n和保护 成员函数setK 成为类BB的保护成员 通过派生类对象只能访问派生类的公有成员 因此选项B正确 不 能访问派生类的私有成员和保护成员 因此选项A和选项D错误 无论哪种继承方式 派生类BB的对象都不 能访问基类AA中的私有成员 因此选项C错误 QQ374289236QQ374289236 故本题答案为 B 28 在定义一个类模板时 模板形参表是用一对括号括起来的 所采用的括号是 A B C D 本题主要考查了类模版 类模板声明的语法形式是 template class 类名 类成员声明 因此本题答案为 C 29 对 C 编译器区分重载函数无任何意义的信息是 A 参数类型 B 参数个数 C 返回值类型 D 常成员函数关键字 const 本题主要考查了函数重载 进行函数重载时 要求同名函数在参数个数上不同 或者参数类型上不同 不可以根据函数返回值类 型来重载函数 const关键字可以用于参与对重载函数的区分 因此对C 编译器区分重载函数无任何意义 的信息是返回值类型 故本题答案为 C 30 有如下程序段 int i 5 while int i 0 cout i 运行时输出 的个数是 A 0 B 1 C 5 D 无穷 本题主要考查了while循环语句的使用 while语句的语法格式为 while 表达式 while语句的执行过程是 1 计算的值 如果此值不等于0 即循环条件为 真 则转向步骤 2 如果此值等 于0 即循环条件为 假 则转向步骤 4 2 执行一遍循环体 3 转向步骤 1 4 结束while循环 本题的表达式声明了变量i并赋初值0 因此循环条件为 假 结束while循环 故while语句循环了0 次 因此输出 的个数是0 故本题答案为 A 31 建立一个类对象时 系统自动调用 A 析构函数 B 构造函数 C 静态函数 D 友元函数 QQ374289236QQ374289236 本题主要考查了构造函数 构造函数的作用是在对象被创建时利用特定的值构造对象 将对象初始化为一种特定的状态 使该对 象具有区别于其他对象的特征 构造函数在对象被创建的时候由系统自动调用 故本题答案为 B 32 有如下类定义和变量定义 class A public A data 0 A int GetData const return data void SetData int n data n private int data const A a A b 下列函数调用中错误的是 A a GetData B a SetData 10 C b GetData D b SetData 10 本题主要考查了常对象和常成员函数 使用const关键字修饰的对象称为常对象 使用const关键字说明的成员函数称为常成员函数 由于常 对象不能被更新 因此 在将一个对象说明为常对象后 通过这个常对象只能调用它的常成员函数 而不 能调用其他成员函数 一般对象既可以调用常成员函数 也可以调用一般成员函数 选项B中对象a为常对 象 而成员函数SetData 不是常成员函数 所以这样调用会发生编译错误 故本题答案为 B 33 有如下程序 include using namespace std class A public virtual void f cout 1 void g cout 2 class B public A public virtual void f cout 3 void g cout open file dat 本题主要考查了文件输入流的建立 每个文件流都应当与一个打开的文件相联系 可以用两种不同的方式打开文件 在建立文件流对象 的同时打开文件 故选项B正确 先建立文件流对象 再在适当的时候打开文件 因此选项C和D正确 对于公有的静态成员函数 可以通过类名或对象名来调用 而一般的非静态成员函数只能通过对象名来调 用 因为open成员函数是一般的非静态成员函数 故不能通过类名来调用 因此选项A错误 36 数据库系统的核心是 标准答案为 数据库管理系统 或 DBMS 数据库管理系统是数据库的机构 它是一种系统软件 负责数据库中的数据组织 数据操纵 数据维 护 控制及保护和数据服务等 数据库管理系统是数据库系统的核心 37 软件测试可分为白盒测试和黑盒测试 基本路径测试属于 测试 标准答案为 白盒 软件测试的方法和技术是多种多样的 若从是否需要执行被测软件的角度 可以分为静态测试和动态 测试方法 若按功能划分可以分为白盒测试和黑盒测试 白盒测试方法也称结构测试或逻辑驱动测试 白 QQ374289236QQ374289236 盒测试的主要方法有逻辑覆盖 基本路径测试 黑盒测试方法也称功能测试或数据驱动测试 黑盒测试方 法主要有等价类划分法 边界值分析法 错误推测法 因果图等 主要用于软件确认测试 38 在 E R 图中 图形包括矩形框 菱形框 椭圆框 其中表示实体联系的是 框 标准答案为 菱形 E R模型可以用一种非常直观的图的形式表示 这种图称为E R图 在E R图中我们分别用下面不同的 几何图形表示E R模型中的三个概念与两个联接关系 1 实体集表示法 在E R图中用矩形表示实体集 在矩形内写上该实体集的名字 2 属性表示法 在E R图中用椭圆形表示属性 在椭圆形内写上该属性的名称 3 联系表示法 在 E R 图中用菱形 内写上联系名 表示联系 39 符合结构化原则的三种基本控制结构是 选择结构 循环结构和 标准答案为 顺序结构 结构化程序设计方法是程序设计的先进方法和工具 其中结构化程序设计的三种基本控制结构是 选 择结构 循环结构 顺序结构 40 假设用一个长度为 50 的数组 数组元素的下标从 0 到 49 作为栈的存储空间 栈底指针 bottom 指 向栈底元素 栈顶指针 top 指向栈顶元素 如果 bottom 49 top 30 数组下标 则栈中具有 个 元素 标准答案为 20 或 或 二十 栈是限定在一端进行插入与删除的线性表 在栈中 允许插入与删除的一端称为栈顶 而不允许插入 与删除的另一端称为栈底 栈顶元素总是最后被插入的元素 从而也是最先能被删除的元素 栈底元素总 是最先被插入的元素 从而也是最后才能被删除的元素 即栈是按照 先进后出 或 后进先出 的原则组织 数据的 因此 栈也被称为 先进后出 表或 后进先出 表 通常用指针 top 来指示栈顶的位置 用指针 bottom 指向栈底 由题意可知栈顶指针 top 30 bottom 49 则栈中具有的元素应该为 bottom top 1 即 49 30 1 20 41 有如下程序段 for int i 1 i 50 i if i 3 0 continue else if i 5 0 continue cout i 执行这个程序段的输出是 标准答案为 15 30 45 或 或 或 15 30 45 本题主要考查了for循环语句和continue语句 本题程序的功能是找出 1 50 中既能被 3 整除又能被 5 整除的数 每找到一个满足条件的数则输出该 数 然后紧随其后输出逗号 故本题程序段的输出是 15 30 45 42 下面的函数利用递归实现了求1 2 3 n的功能 int sum int n if n 0 return 0 else return n sum n 1 QQ374289236QQ374289236 在执行sum 10 的过程中 递归调用sum函数的次数是 标准答案为 10 或 或 十 或 十次 本题主要考查了递归函数 递归函数即自调用函数 在函数体内部直接或间接地自己调用自己 即函数嵌套调用的是函数本身 本题中 sum 函数共被调用了 11 次 第一次是由其它函数调用 不属于递归调用 以后的 10 次由自己调 用自己 属于递归调用 43 非成员函数应该声明为类的 函数才能访问该类的私有成员 标准答案为 友元 本题主要考查了友元函数 C 规定 一个类的私有成员和保护成员 只能由其本身的成员来访问 不能被其他函数访问 这样 就形成了封装的概念 也保护了类本身的数据不被破坏 但是如果想让类中的私有成员可以被其它函数访 问 可以通过友元函数声明 来分享类中的资源 44 有如下程序 include using namespace std class Animal public virtual char getType const return Animal virtual char getVoice const return Voice class Dog public Animal public char getType const return Dog char getVoice const return Woof void type Animal void speak Animal a cout a getVoice int main Dog d type d cout speak speak d cout endl return 0 运行时的输出结果是 标准答案为 Dog speak Voice 本题主要考查了虚函数和多态性 基类Animal中声明了两个虚函数getType 和getVoice 这两个虚函数在派生类Dog中被重定义 无 论是否用virtual修饰 重定义的函数仍然是一个虚函数 对虚函数的调用有两种方式 非多态调用和多 态调用 非多态调用是指不借助于指针或引用的直接调用 多态调用是指借助于指向基类的指针或引用的 调用 在C 中 一个基类指针 或引用 可以用于指向它的派生类对象 而且通过这样的指针 或引用 调 用虚函数时 被调用的是该指针 或引用 实际所指向的对象类的那个重定义版本 在main 函数中首先定 义派生类Dog的对象d 然后以派生类对象d作为实参调用type 函数 执行type 函数体语句 cout a getType 因为type 函数的形参是基类Animal的引用 因此a getType 为多态调用虚函数 getType 调用的是派生类Dog中的那个重定义版本 故此处输出字符串Dog 然后执行语句cout speak 输出字符串 speak 然后执行语句speak d 以派生类对象d作为实参调用speak 函数 因为 speak 函数的形参是基类Animal的对象 不是指向基类的指针或引用 因此a getVoice 为非多态调用 QQ374289236QQ374289236 调用的是基类Animal中的那个版本 故此处输出字符串Voice 故本题程序执行后的输出结果是Dog speak Voice 45 补充完整下面的类定义 class XCH char a public XCH char aa 构造函数 a new char strlen aa 1 strcpy a aa XCH a new char strlen x a 1 strcpy a x a XCH delete a 标准答案为 return this 本题主要考查了this指针 根据题意知该题缺少部分应为返回成员函数所属对象 this 指针是一个隐含的指针 它隐含于每个 类的非静态成员函数中 它明确表示出了成员函数当前操作的数据所属的对象 当对一个对象调用成员函 数时 编译程序先将对象的地址赋值给 this 指针 然后调用成员函数 故本题应填 return this 46 补充完整下面的类定义 const double PI 3 14 class Circle 圆形物体的抽象基类 protected double r 半径 public Circle double radius 0 r radius 计算圆形物体表面积的纯虚函数声明 class Cylinder public Circle 圆柱体类 double h 高度 public Cylinder double radius 0 double height 0 Circle radius h height virtual double Area 计算圆柱体的表面积 return 2 PI r r h 标准答案为 virtual double Area 0 本题主要考查了纯虚函数 为了将一个虚函数声明为纯虚函数 需要在虚函数原形的语句结束符 之前加上 0 故本题应填 QQ374289236QQ374289236 virtual double Area 0 47 补充完整下面的模板定义 template Type为类型参数 class Xtwo 由两个Type类型的数据成员构成的模板类 Type a Type b public Xtwo Type aa 0 Type bb 0 a aa b bb int Compare 比较a和b的大小 if a b return 1 else if a b return 0 els
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 游戏生态平衡分析-洞察与解读
- 防爆电气考试题库及答案
- 2025年现场培训师岗位招聘面试参考题库及参考答案
- 2025年反欺诈分析师岗位招聘面试参考题库及参考答案
- 2025年赛事策划经理岗位招聘面试参考题库及参考答案
- 2025年企业运作者岗位招聘面试参考试题及参考答案
- 2025年特许财务分析师岗位招聘面试参考试题及参考答案
- 磨损与强度协同提升-洞察与解读
- 田园装饰画考试题及答案
- 2025年模式识别工程师岗位招聘面试参考题库及参考答案
- 重症医学科体温管理措施培训
- 骨科骨折复位技术操作规范
- 北师大版五年级数学上册期中测试卷(带答案)
- 2025年湖南外贸职业学院单招职业技能测试题库附参考答案详解夺分金
- 2025高三英语应用文写作满分范例
- 2025年广东普宁市公安局公开招聘警务辅助人员80人模拟试卷附答案详解(完整版)
- 中建永临结合做法选用图册2024
- DB11-T 2483-2025 水务行业反恐怖防范要求
- 生物课程标准解读
- 爆破作业分级管理办法
- 硅胶生产车间管理办法
评论
0/150
提交评论