




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
20102010年年3 3月考试真题 第月考试真题 第3131次 次 1 数据流程图 DFD图 是 A 软件概要设计的工具 B 软件详细设计的工具 C 结构化方法的需求分析工具 D 面向对象方法的需求分析工具 常见的需求分析方法有 结构化分析方法和面向对象的分析方法 结构化分析就是使用数据流图 DFD 数据字典 DD 结构化英语 判定表和判定树等工具 来建立一种新的 称为结构化规格说明的目标文 档 故本题答案为C 2 软件 程序 调试的任务是 A 诊断和改正程序中的错误 B 尽可能多地发现程序中的错误 C 发现并改正程序中的所有错误 D 确定程序中错误的性质 程序调试的任务是诊断和改正程序中的错误 它与软件测试不同 软件测试是尽可能多地发现软件中的错 误 先要发现软件的错误 然后借助于一定的调试工具去执行找出软件错误的具体位置 软件测试贯穿整 个软件生命期 调试主要在开发阶段 故本题答案为A 3 软件按功能可以分为 应用软件 系统软件和支撑软件 或工具软件 下面属于系统软件的是 A 编辑软件 B 操作系统 C 教务管理系统 D 浏览器 软件按功能可以分为 应用软件 系统软件 支撑软件 或工具软件 应用软件是为解决特定领域的应 用而开发的软件 例如 事务处理软件 工程与科学计算软件 实时处理软件 嵌入式软件 人工智能软 件等应用性质不同的各种软件 系统软件是计算机管理自身资源 提高计算机使用效率并为计算机用户提 供各种服务的软件 如操作系统 编译程序 汇编程序 网络软件 数据库管理系统等 所以选项B属于 系统软件 故本题答案为B 4 软件生命周期可分为定义阶段 开发阶段和维护阶段 详细设计属于 A 定义阶段 B 开发阶段 C 维护阶段 D 上述三个阶段 软件生命周期可分为软件定义 软件开发及软件运行维护三个阶段 软件开发阶段包括概要设计 详细设 计 实现和测试四个活动阶段 故本题答案为B 5 下列叙述中正确的是 A 对长度为n的有序链表进行查找 最坏情况下需要的比较次数为n B 对长度为n的有序链表进行对分查找 最坏情况下需要的比较次数为 n 2 C 对长度为n的有序链表进行对分查找 最坏情况下需要的比较次数为 D 对长度为n的有序链表进行对分查找 最坏情况下需要的比较次数为 对于长度为n的有序线性表 在最坏情况下 二分查找只需要比较次 而顺序查找需要比较n次 二 分法查找只适用于顺序存储的有序表 如果采用链式存储结构 也只能用顺序查找 所以选项A是正确的 故本题答案为A 6 有两个关系R和T如下 则由关系R得到关系T的操作是 A 选择 B 投影 C 交 D 并 从关系中找出满足给定条件的元组的操作称为选择 选择是从行的角度进行的运算 即从水平方向抽取记 录 由图可知关系R通过运算得到关系T 关系T与关系R相比 属性的个数没有发生变化 记录的条数发生 了变化 因此所使用的运算应该是选择 故本题答案为A 7 算法的时间复杂度是指 A 算法的执行时间 B 算法所处理的数据量 C 算法程序中的语句或指令条数 D 算法在执行过程中所需要的基本运算次数 所谓算法的时间复杂度 是指执行算法所需要的计算工作量 为了能够比较客观地反映出一个算法的效率 在度量一个算法的工作量时 不仅应该与所使用的计算机 程序设计语言以及程序编制者无关 而且还应 该与算法实现过程中的许多细节无关 为此 可以用算法在执行过程中所需基本运算的执行次数来度量算 法的工作量 故本题答案为D 8 数据库设计中 用E R图来描述信息结构但不涉及信息在计算机中的表示 它属于数据库设计的 A 需求分析阶段 B 逻辑设计阶段 C 概念设计阶段 D 物理设计阶段 E R图是E R模型的一种非常直观的图的形式表示 它描述信息结构但不涉及信息在计算机中的表示 它是 数据库概念设计阶段的工具 故本题答案为C 9 在学生管理的关系数据库中 存取一个学生信息的数据单位是 A 文件 B 数据库 C 字段 D 记录 实体是概念世界中的基本单位 属性附属于实体 它本身并不构成独立单位 属性有属性域 每个实体可 取属性域内的值 一个实体的所有属性取值组成了一个值集叫元组 或称记录 在概念世界中 可以用 元组表示实体 也可用它区别不同的实体 所以在学生管理的关系数据库中 存取一个学生信息的数据单 位是元组 或记录 故本题答案为D 10 数据库管理系统中负责数据模式定义的语言是 A 数据定义语言 B 数据管理语言 C 数据操纵语言 D 数据控制语言 数据定义语言 DDL 该语言负责数据的模式定义与数据的物理存取构建 数据操纵语言 DML 该语言负责数据的操纵 包括查询及增 删 改等操作 数据控制语言 DCL 该语言负责数据完整性 安全性的定义与检查以及并发控制 故障恢复等功 能 故本题答案为A 11 有如下两个类定义 class XX private double x1 protected double x2 public double x3 class YY protected XX private double y1 protected double y2 public double y3 在类YY中保护成员变量的个数是 A 1 B 2 C 3 D 4 本题主要考查了类的继承与派生 类的继承方式有三种 公有 public 继承 保护 protected 继承和私有 private 继承 当派 生类从基类保护继承时 基类的公有成员和保护成员在派生类中都为保护成员 本题派生类YY从基类XX保 护继承 因此基类XX的公有成员x3和保护成员x2都成为派生类YY的保护成员 再加上派生类YY自身的保护 成员y2 因此类YY中有3个保护成员 故本题答案为C 12 在C 中 cin是一个 A 类 B 对象 C 模板 D 函数 本题主要考查了I O流 在C 中 数据的输入与输出是通过I O流来实现 cin和cout是预定义的流类对象 故本题答案为B 13 若x和y是程序中的两个整型变量 则下列if语句中正确的是 A if x 0 y 1 else y 2 B if x 0 then y 1 else y 2 C if x 0 y 1 else y 2 D if x 0 y 1 else y 2 本题主要考查了if语句 if语句的语法形式为 if 表达式 语句1 else 语句2 在C 中 if语句中没有then 语句最后必须有一个分号 因此选项A正确 选项B和选项C错误 在选 项D中 表达式x 0应该用圆括号括起来 因此选项D错误 故本题答案为A 14 将运算符 重载为非成员函数 下列原型声明中 错误的是 A MyClock operator MyClock long B MyClock operator MyClock MyClock C MyClock operator long long D MyClock operator long MyClock 本题主要考查了运算符的重载 运算符的重载是针对新类型数据的实际需要 对原有运算符进行适当的改造 一般来讲 重载的功能 应当与原有功能类似 不能改变原运算符的操作对象个数 同时至少要有一个操作对象是自定义类型 选 项A 选项B和选项D的两个参数中至少有一个参数是自定义类型 因此选项A 选项B和选项D正确 选项C 中两个参数都是基本数据类型 没有自定义类型 因此选项C错误 故本题答案是C 15 要定义整型数组x 使之包括初值为0的三个元素 下列语句中错误的是 A int x 3 0 0 0 B int x 0 C static int x 3 0 D int x 0 0 0 本题主要考查了一维数组的定义与初始化 一维数组的定义形式为 数据类型 数组名 数组元素个数 数组的初始化就是在声明数组时给部分或全部元素赋初值 选项A定义了有三个元素的整型数组x 并 初始化三个元素的值为0 因此选项A正确 当声明数组时没有给出数组元素个数 但是有初始化列表 数 组元素个数由列表中元素个数来确定 因此选项D正确 选项B没有给出数组元素个数 并且在初始化列表 中只给一个元素值 因此选项B定义了只有一个元素的整型数组 故选项B错误 对于数值类型数组 如果 给定的数值不够 则没有指定数值的元素将初始化为0 因此选项C正确 故本题答案为B 16 下列控制格式输入输出的操作符中 能够设置浮点数精度的是 A setprecision B setw C setfill D showpoint 本题主要考查了输出流的格式控制 setprecision int n 用于控制输出流显示浮点数的精度 整数n代表显示的浮点数数字的个数 因此 选项A正确 setw int n 用于预设输入输出宽度 setfill char c 用于预设填充字符 showpoint用于给浮点数显示小数点和尾部的0 因此选项B 选项C和选项D不正确 故本题答案为A 17 若MyTemp是一个只有一个虚拟类型参数的类模板 且有如下语句序列 MyTemp p2 MyTemp p3 2 编译系统在处理上面的语句序列时 所生成的模板MyTemp的实例的个数是 A 1 B 2 C 3 D 0 本题主要考核类模板 类模板声明的语法形式为 template class 类名 类成员声明 使用类模板来建立对象时 应按如下形式声明 类名 对象名1 对象名n 在定义对象的过程中 编译系统会自动地根据需要生成相应的类定义 这种依据类模板生成类定义的 过程称为类模板的实例化 类模板实例化所生成的每一个类定义就是相应类模板的一个实例 因此类模板 的实例个数由类型参数的种类决定 本题使用类模板MyTemp定义对象时指定了两种类型参数 double和 long 因此所生成的实例个数是2 故本题答案为B 18 下列代码段声明了3个类 class Person class Student public Person class Undergraduate Student 下列关于这些类之间关系的描述中 错误的是 A 类Person是类Undergraduate的基类 B 类Undergraduate从类Student公有继承 C 类Student是类Person的派生类 D 类Undergraduate是类Person的派生类 本题主要考查了类的继承与派生 在C 中 定义派生类的一般语法形式为 class 派生类名 继承方式 基类名1 继承方式 基类名2 继承方式 基类名n 派生类成员声明 类的继承方式有三种 公有 public 继承 保护 protected 继承和私有 private 继承 如果 不显式地给出继承方式 缺省的类继承方式是私有 private 继承 在声明派生类Undergraduate时缺省 继承方式 因此类Undergraduate从类Student私有继承 故选项B错误 故本题答案为B 19 将前缀运算符 重载为非成员函数 下列原型中 能正确用于类中说明的是 A Decr B Decr operator Decr C friend Decr D friend Decr operator Decr 本题主要考查了运算符的重载 运算符 既可以是前缀运算符 前减1 又可以是后缀运算符 后减1 为了区分这两种情况 重 载这两个运算符时必须在格式上有所区别 重载后缀 时必须多一个虚拟参数 int 如果将前缀 和后 缀 作为非成员函数重载 那个唯一的操作数必须作为第一参数提供 又因为要修改第一操作数 对应的 参数必须声明为引用 前缀 作为非成员函数重载的一般形式为 friend Decr 后缀 作为非成员函数重载的一般形式为 friend Decr operator Decr 当运算符重载为类的成员函数时 函数的参数个数比原来的参数个数少一个 前缀 作为成员函数重载的一般形式为 Decr 后缀 作为成员函数重载的一般形式为 Decr operator int 因此选项C正确 选项D是后缀 作为非成员函数重载的形式 故本题答案为C 20 有如下程序 include using namespace std class Base public Base int x 0 valB x cout valB Base cout valB private int valB class Derived public Base public Derived int x 0 int y 0 Base x valD y cout valD Derived cout valD private int valD int main Derived objl2 2 3 return 0 运行时的输出结果是 A 2332 B 2323 C 3232 D 3223 本题主要考查了派生类的构造函数与析构函数 构造函数在对象被创建的时候由系统自动调用 建立派生类对象时 构造函数的执行顺序如下 1 执行基类的构造函数 调用顺序按照各个基类被继承时声明的顺序 自左向右 2 执行成员对 象的构造函数 调用顺序按照各个成员对象在类中声明的顺序 自上而下 3 执行派生类的构造函 数 析构函数用来完成对象被删除前的一些清理工作 在对象的生存期即将结束的时刻被系统自动调用 派生类的析构函数在执行过程中也要对基类和成员对象进行操作 但它的执行过程与构造函数严格相反 即 1 对派生类新增普通成员进行清理 2 调用成员对象析构函数 对派生类新增的成员对象进行 清理 3 调用基类析构函数 对基类进行清理 main 函数中 第一条语句Derived objl2 2 3 创建派生类对象obj12时 先以第一个实参2初始化 基类Base成员valB 执行基类Base的构造函数 输出valB的值2 然后以第二个实参值3初始化派生类 Derived成员valD 执行派生类Derived的构造函数 输出valD的值3 在对象obj12的生存期即将结束时 先调用派生类Derived的析构函数 输出valD的值3 然后调用基类析构函数 输出valB的值2 因此本程 序运行时的输出结果是2332 故本题答案为A 21 有如下程序 include using namespace std class A public A int i 0 r1 i void print cout E r1 void print const cout C r1 r1 void print int x cout P r1 r1 r1 private int r1 int main A a1 const A a2 4 a1 print 2 a2 print return 0 运行时的输出结果是 A P8 E4 B P8 C16 C P0 E4 D P0 C16 本题主要考查了函数的重载 常对象和常成员函数 使用const关键字修饰的对象称为常对象 使用const关键字说明的成员函数称为常成员函数 通过常 对象只能调用它的常成员函数 而不能调用其他成员函数 两个以上的函数 具有相同的函数名 但是形 参的个数或类型不同 编译器根据实参和形参的类型及个数的最佳匹配 自动确定调用哪一个函数 这就 是函数的重载 const关键字可以用于对重载函数的区分 在main 函数中 第一条语句定义类A的对象a1 系统自动调用类A的构造函数 以默认形参值0初始 化对象a1的数据成员r1 第二条语句定义常对象a2 系统自动调用类A的构造函数 以实参值4初始化对象 a2的数据成员r1 第三条语句通过对象a1调用带一个整型形参的没用const修饰的print 函数 表达式 r1 r1 r1 0 0 0 0 因此输出P0 第四条语句常对象a2调用的是用const修饰的常成员函数print 表 达式r1 r1的值为 4 4 16 因此输出C16 故程序运行时的输出结果是P0 C16 故本题答案 为D 22 若MyClass是一个类名 且有如下语句序列 MyClass c1 c2 MyClass c3 new MyClass MyClass 上面的语句序列所定义的类对象的个数是 A 1 B 2 C 3 D 4 本题主要考查了对象的定义 第1条语句定义了MyClass类的对象c1和MyClass类的对象指针变量c2 因为定义对象指针只是得到了 用于存储对象地址的指针变量 不会创建对象 因此第1条语句只定义了一个类对象c1 第2条语句定义了 对象指针变量c3 并初始化c3指向用new运算符动态创建的对象 因此第2条语句用new运算符动态定义了 一个对象 第3条语句声明了对象引用c4 并将其初始化为对象c1的一个别名 因为创建对象引用只是为 已有对象创建别名 不会创建对象 因此第3条语句没有创建类对象 因此这3条语句所定义的类对象的个 数是2 故本题答案为B 23 下列关于类模板的描述中 错误的是 A 类模板的成员函数都是模板函数 B 可以为类模板参数设置默认值 C 类模板描述了一组类 D 类模板中只允许有一个类型参数 本题主要考查了类模板 使用类模板可以为类声明一种模式 使得类中的某些数据成员 某些成员函数的参数 某些成员函数 的返回值能取任意类型 因此选项C正确 类模板声明的语法形式为 template class 类名 类成员声明 其中 模板参数表 由用逗号分隔的若干类型标识符或常量表达式构成 因此选项D错误 可以为类模 板中的类型参数和非类型参数提供默认值 如果某个类模板参数有默认值 该列表中的所有后续参数也都 必须指定默认值 因此选项B正确 类模板的成员函数都是模板函数 因此选项A正确 故本题答案 为D 24 有如下程序 include using namespace std class Test public Test Test const Test Test fun Test return t int main Test x y x fun y return 0 运行这个程序的输出结果是 A 无输出 B 1 C 11 D 111 本题主要考查了拷贝构造函数 拷贝构造函数是一种特殊的构造函数 具有一般构造函数的所有特性 其形参是本类的对象的引用 作用是使用一个已知的对象初始化一个正在创建的同类对象 拷贝构造函数在以下三种情况下都会被调用 1 当用类的一个对象初始化该类的另一个对象时 2 如果函数的形参是类的对象 调用函数时 进行形参和实参结合时 3 如果函数的返回值是类的对象 函数执行完成返回调用者时 函数fun的形参为类Test的对象的引用 main 函数中 第二条语句x fun y 调用函数fun 使引 用u为实参y的别名 然后执行函数fun 的第一条语句Test t u 即用Test类的对象u去初始化该类的另 一个对象t 系统将自动调用拷贝构造函数 输出1 然后执行函数fun 的第二条语句return t 函数 fun 的返回值为Test类的对象t 函数执行完成返回调用者时 系统将第二次自动调用拷贝构造函数 输 出1 程序执行结束 故运行这个程序的输出结果是11 故本题答案为C 25 要定义一个引用变量p 使用引用类MyClass的一个对象 正确的定义语句是 A MyClass p MyClass B MyClass p new MyClass C MyClass D MyClass a 本题主要考查了引用的声明 引用的声明形式 类型标识符 说明 1 class Test public int fun2 friend int fun3 static int fun4 A fun1 B fun2 C fun3 D fun4 本题主要考查了this指针 this指针是一个隐含于每一个非静态成员函数中的特殊指针 它是一个指向正在被该成员函数操作的 对象 也就是要操作该成员函数的对象 因此类Test的非静态成员函数fun2中具有隐含this指针 故选项 B正确 函数fun1和函数fun3均不是成员函数 因此不具有隐含this指针 故选项A和选项C不正确 静态 成员不属于类的任何一个对象 而是属于整个类 因此静态成员没有this指针 故静态成员函数fun4中没 有this指针 故选项D错误 故本题答案为B 28 下面是类Shape的定义 class Shape public virtual void Draw 0 下列关于Shape类的描述中 正确的是 A 类Shape是虚基类 B 类Shape是抽象类 C 类Shape中的Draw函数声明有误 D 语句 Shape s 能够建立Shape的一个对象s 本题主要考查了纯虚函数和抽象类 声明纯虚函数的语法形式为 virtual 函数类型 函数名 参数表 0 所以函数Draw 是纯虚函数 带有纯虚函数的类是抽象类 所以类Shape是抽象类 因此选项B正确 抽象类不能实例化 即不能定义一个抽象类的对象 因此选项D错误 故本题答案是B 29 关于函数中的 下列表述中错误的是 A 中有可能包含关键字int B 中有可能包含自定义标识符 C 中有可能包含字符 D 中有可能包含 本题主要考查了函数的返回类型 函数的定义形式为 返回类型 函数名 形参列表 函数体 返回类型又称函数类型 表示一个函数所计算 或运行 的结果值的类型 因为函数的结果值可以为 整型 因此返回类型可能包含关键字int 选项A正确 函数的返回类型可以为类 因此返回类型可能包含 自定义标识符 选项B正确 函数的返回类型可以为指针 因此返回类型可能包含字符 选项C正确 但 返回类型不能为数组 因此返回类型中不可能包含 因此选项D错误 故本题答案为D 30 打开文件时可单独或组合使用下列文件打开模式 ios base app ios base binary ios base in ios base out 若要以二进制读方式打开一个文件 需使用的文件打开模式为 A B C D 本题主要考查了I O流 打开一个与输出流关联的文件时 通常要指定文件模式 ios base app模式的功能 以写方式打开 文件 若文件不存在则创建文件 若文件已存在则向文件尾添加数据 ios base binary模式 以二进制 模式打开文件 缺省为文本模式 ios base in模式 以读方式打开文件 ios base out模式 以写 方式打开文件 若文件不存在则创建 若文件已存在则清空原内容 ofstream默认的打开方式 因此若 要以二进制读方式打开一个文件 需使用的文件打开模式为 ios base binary ios base in 故本题答案为C 31 下列关于继承方式的描述中 错误的是 A 如果不显式地指定继承方式 缺省的继承方式是私有 private B 采用公有继承方式时 基类中的公有成员在派生类中仍然是公有成员 C 采用保护继承方式时 基类中的保护成员在派生类中仍然是保护成员 D 采用私有继承方式时 基类中的私有成员在派生类中仍然是私有成员 本题主要考查了类的继承与派生 类的继承方式有三种 公有 public 继承 保护 protected 继承和私有 private 继承 如果 不显式地给出继承方式 缺省的类继承方式是私有 private 继承 因此选项A正确 当派生类从基类公 有继承时 基类的公有成员和保护成员的访问属性在派生类中不变 仍作为派生类的公有成员和保护成员 因此选项B正确 当派生类从基类保护继承时 基类的公有成员和保护成员在派生类中都为保护成员 因 此选项C正确 当派生类从基类私有继承时 基类的公有成员和保护成员在派生类中都改变为私有成员 无论哪种继承方式 派生类中的成员都不能访问基类中的私有成员 因此选项D错误 故本题答案为D 32 下列关于运算符重载的描述中 错误的是 A 可以通过运算符重载在C 中创建新的运算符 B 赋值运算符只能重载为成员函数 C 运算符函数重载为类的成员函数时 第一操作数是该类对象 D 重载类型转换运算符时不需要声明返回类型 本题主要考查了运算符重载 运算符重载 是针对C 中原有运算符进行的 不可能通过重载创造出新的运算符 因此选项A错误 在C 中 运算符的重载方式有两种 1 重载为成员函数 2 重载为友元函数 以及所有的类型转换运算符只能重载为成员函数 因此选项B正确 运算符重载为成员函数时 第 一操作数就是对象本身 并不显式地出现在参数表中 因此选项C正确 重载类型转换运算符的格式为 operator 类型名 其中 类型名 就代表了返回类型 因此重载类型转换运算符时不需要声明返回类型 因此选项D正确 故本题答案为A 33 有以下程序 include using namespace std class B public B int xx x xx count x 10 virtual void show const cout count x endl protected static int count private int x class D public B public D int xx int yy B xx y yy count y 100 virtual void show const cout count y show delete ptr return 0 运行时的输出结果是 A 1 120 B 2 120 C 1 20 D 2 20 本题主要考查了派生类的构造函数 静态成员函数以及虚函数 建立派生类对象时 构造函数的执行顺序如下 1 执行基类的构造函数 调用顺序按照各个基类 被继承时声明的顺序 自左向右 2 执行成员对象的构造函数 调用顺序按照各个成员对象在类中 声明的顺序 自上而下 3 执行派生类的构造函数 用static关键字声明的数据成员为静态数据成员 静态成员在每个类只有一个拷贝 由该类的所有对 象共同维护和使用 在成员函数声明的前面加上virtual修饰 即把该函数声明为虚函数 在C 中 一个基类指针 或引 用 可以用于指向它的派生类对象 而且通过这样的指针 或引用 调用虚函数时 被调用的是该指针 或引用 实际所指向的对象类的那个重定义版本 本题中 函数show在基类B和派生类D中都声明为虚函数 在基类B中把保护成员定义为静态成员 count 派生类D以公有继承方式从基类B继承了保护成员count 它被基类B和派生类D的所有对象所共享 但它不属于类的任何一个对象 在main 函数中 第一条语句通过new运算符创建派生类D的对象 并把对 象的首地址赋给基类指针ptr 即基类指针ptr指向派生类对象 在创建派生类对象时 先执行基类B的构 造函数 count的值为1 然后执行派生类D的构造函数 count的值为2 y的值为120 main 函数的第二 条语句通过基类指针ptr调用虚函数show 被调用的是该指针实际所指向的派生类对象类的重定义版本 即输出2 120 故本题答案为B 34 下列叙述中 错误的是 A false是一个逻辑型常量 B b 是一个字符型常量 C 365是一个int常量 D 3 是一个double常量 本题主要考查了常量 在C 中 逻辑型常量有两个 false 假 和true 真 因此选项A正确 字符型常量是单引号括 起来的一个字符 字符串常量是双引号括起来的字符序列 因此 b 是字符串 不是字符 故选项B错误 整型常量默认为int型 因此选项C正确 实型常量默认为double型 因此选项D正确 故本题答案为B 35 在下列字符中 不允许作为C 标识符的是 A b B B C D 2 本题主要考查了C 中的标识符命名规则 标识符的组成要符合一定的规则 1 标识符是一个以字母或下划线开头的 由字母 数字 下划线组成的字符串 2 标识符不能与任意一个关键字同名 3 标识符中的字母区分大小写 4 标识符不宜过长 在选项D中 标识符的第一个字符是数字 因此不是合法的标识符 不允许作为C 标识符 故本题答案为D 36 软件是 数据和文档的集合 标准答案为 程序 考生答案为 函数 计算机软件是计算机系统中与硬件相互依存的另一部分 是包括程序 数据及相关文档的完整集合 37 有一个学生选课的关系 其中学生的关系模式为 学生 学号 姓名 班级 年龄 课程的关系模 式为 课程 课号 课程名 学时 其中两个关系模式的键分别是学号和课号 则关系模式选课可定义 为 选课 学号 成绩 标准答案为 课号 考生答案为 课号 码也称为关键字 是表中若干属性的属性组 其值惟一标识表中的一个元组 在关系模式选课中能惟一标 识一个元组的是学号 课号 38 设某循环队列的容量为50 如果头指针front 45 指向队头元素的前一位置 尾指针rear 10 指 向队尾元素 则该循环队列中共有 个元素 标准答案为 15 或 十五 或 考生答案为 35 在循环队列中 用队尾指针rear指向队列中的队尾元素 用排头指针front指向排头元素的前一个位置 因此 从排头指针front指向的后一个位置直至队尾指针rear指向的位置之间所有的元素均为队列中的元 素 本题中队列的容量为50 头指针为45 那么从头指针到50之间有46 47 48 49 50 共5个元素 尾指针为10 那么从1到10之间有10个元素 所以共有15个元素 39 设二叉树如下 对该二叉树进行后序遍历的结果为 标准答案为 EDBGHFCA 或 E D B G H F C A 或 E D B G H F C A 或 E D B G H F C A 考生答案为 EDGHFCA 后序遍历是指在访问根结点 遍历左子树与遍历右子树这三者中 首先遍历左子树 然后遍历右子树 最 后访问根结点 并且 在遍历左 右子树时 仍然先遍历左子树 然后遍历右子树 最后访问根结点 40 一个队列的初始状态为空 现将元素A B C D E F 5 4 3 2 1依次入队 然后再依次退队 则元素退 队的顺序为 标准答案为 A B C D E F 5 4 3 2 1 或 A B C D E F 5 4 3 2 1 或 A B C D E F 5 4 3 2 1 或 ABCDEF54321 或 A B C D E F 5 4 3 2 1 或 A B C D E F 5 4 3 2 1 或 A B C D E F 5 4 3 2 1 或 A B C D E F 5 4 3 2 1 考生答案为 A B C D E F 5 4 3 2 1 队列是指允许在一端进行插入 而在另一端进行删除的线性表 允许插入的一端称为队尾 允许删除的一 端称为队头 在队列这种数据结构中 最先插入的元素将最先能够被删除 反之 最后插入的元素将最后 才能被删除 因此 队列又称为 先进先出 或 后进后出 的线性表 41 若x和y是两个整型变量 在执行了语句序列 x 5 y 6 y x 后 x y的值为 标准答案为 15 或 考生答案为 15 本题主要考查了后置减1运算符 后置减1运算符是先使用变量 然后变量再自减 因此语句y x 的功能相当于y y x x x 1 两条语 句 因此执行语句序列x 5 y 6 y x 后x的值为4 y的值为11 故x y的值为15 42 有如下的函数定义 int Xfun int x int y x int x 10 y x return x y 通过表达式Xfun 5 调用该函数 则得到的返回值为 标准答案为 20 或 考生答案为 20 本题主要考查了标识符的作用域与可见性 作用域是一个标识符在程序正文中有效的区域 程序运行到某一点 能够引用到的标识符 就是该处 可见的标识符 如果在两个或多个具有包含关系的作用域中声明了同名标识符 则外层标识符在内层不可 见 函数调用表达式Xfun 5 把实参5传递给函数Xfun的形式参数x 形参x的作用域为整个函数体 Xfun函 数体的第一条语句定义变量y并初始化y的值为5 第二个复合语句中的第一条语句定义同名变量x 并初始 化x的值为10 在复合语句中外层变量x不可见 因此执行复合语句的第二条语句y x 后y的值为15 内层 变量x的作用域结束 然后执行语句return x y 得到函数的返回值5 15 20 43 下面的函数定义是某函数模板能够生成的函数实例 int square int n return n n double square double n return n n 由此可知 该函数模板的定义是 标准答案为 template T square T n return n n 或 template T square T n return n n 考生答案为 template T square T n return n n 本题主要考查了函数模板 函数模板是一系列相关函数的模型或样板 这些函数的源代码形式相同 只是所针对的数据类型不同 对于函数模板 数据类型本身成了它的参数 因而是一种参数化类型的函数 声明一个函数模板的格式是 template 函数声明 其中的模板形参表声明是由一个或多个模板形参组成 如果是多个 需要用逗号隔开 每个模板形 参具有下面几种形式 1 typename 参数名 2 class 参数名 3 类型修饰 参数名 这里的参数名可以是任意的标识符 在这三种形式中 前两种是等价的 在声明模板参数时 关键字 typename与class可以互换 因此该题函数模板定义是template T square T n return n n 或template T square T n return n n 44 在执行语句序列 int i 0 do i while i i 10 时 do后面的循环体语句i 被执行的次数为 标准答案为 4 或 或 四 考生答案为 4 本题主要考查了do while循环语句 第一次执行循环体后i的值为1 i i 10成立 继续执行循环体 第二次执行循环体后i的值为 2 i i 10成立 继续执行循环体 第三次执行循环体后i的值为3 i i 10成立 继续执行循环体 第四 次执行循环体后i的值为4 i i 10不成立 结束循环 故循环语句被执行次数为4 45 假设Xcs是一个类 该类中一个成员函数的原型为 Xcs abc 则在类外定义时对应的函数头为 标准答案为 Xcs Xcs abc 考生答案为 Xcs Xcs abc 本题主要考查了成员函数的类外定义 在类外定义成员函数的语法形式为 返回值类型 类名 成员函数名 参数表 函数体 因此在类Xcs之外定义原型为 Xcs abc 的成员函数对应的函数头为Xcs Xcs abc 46 请将下面的程序补充完整 使得程序输出 飘是张娜的书 include using namespace std class Book public Book char str strcpy title str void PrintInfo cout title endl protected char title 50 class MyBook public Book public MyBook char s1 char s2 张娜 strcpy owner s2 virtual void PrintInfo cout title 是 owner 的书 PrintInfo return 0 标准答案为 virtual 与 Book s1 考生答案为 virtual 与 Book str 本题主要考查了构造函数 虚函数 在成员函数声明的前面加上virtual修饰 即把该函数声明为虚函数 在派生类中可以重新定义从基 类继承下来的虚函数 从而提供该函数的适用于派生类的专门版本 本题在派生类MyBook中重定义了虚函 数PrintInfo 因此第1个空应填virtual 派生类的构造函数必须要以合适的初值作为参数 隐含调用基类和新增成员对象的构造函数 用以初 始化它们各自的数据成员 然后再对新增的其他数据成员进行初始化 派生类构造函数的一般格式如下 参数表1 因此第二个空应填Book s1 调用基类的构造函数以初始化其数据成员 47 有如下的函数定义 int Xfun int a int n int x a for int pa a 1 pax x pa return x 若在执行了语句 int x 5 23 46 78 55 16 后 通过表达式Xfun x 5 调用该函数 则得到的返回值为 标准答案为 78 或 考生答案为 本题主要考查了数组 指针和求最大值算法 函数Xfun的功能是求首地址为a的n个数据的最大数 并把所求的最大数作为函数的返回值 函数调用 表达式Xfun x 5 把数组x的首地址传递给函数Xfun的第一个形式参数指针变量a 常数5传递给函数Xfun的 第二个形式参数n 因此函数调用表达式Xfun x 5 的返回值是数组x的5个元素的最大数78 48 请将下面的类Date的定义补充完整 使得由语句 Date FirstDay 定义的对象FirstDay的值为2010年1月1日 class Date public Date year y month m day d private int year month day 依次表示年 月 日 标准答案为 int y 2010 int m 1 int d 1 考生答案为 int y intm int d 本题主要考查了构造函数 构造函数的作用是在对象被创建时利用特定的值构造对象 将对象初始化为一种特定的状态 无参数 的构造函数称为默认形式的构造函数 如果类中定义构造函数 编译系统将不会再为其生成默认构造函数 构造函数在对象被创建的时候由系统自动调用 类Date中定义了一个构造函数 由类Date的构造函数的初 始化列表可知构造函数的形参应是三个整型变量y m和d 编译系统将不会为类Date建立无参数的默认构 造函数 建立类Date的对象FirstDay时没有给出初始值 若要正确调用有形参的构造函数 使对象 FirstDay的值为2010年1月1日 则构造函数应是带默认形参值 且默认形参值为2010 1和1 故该题应填 int y 2010 int m 1 int d 1 49 在有理数类Rational中重载插入运算符 以便按a q形式输出 请将 运算符函数的定义补充完整 class Rational public Rational int aa int qq a aa q qq friend operator ostream private int a q 标准答案为 ostream 因此该题应填ostream class A public A int i r1 i void print cout E r1 void print const cout C r1 r1 private int r1 int main A a1 2 const A a2 4 a1 print a2 print return 0 运行时的输出结果是 A 运行时出错 B E2 C16 C C4 C16 D E2 E4 12 有如下类定义 class XX int xdata public XX int n 0 xdata n class YY public XX int ydata public YY int m 0 int n 0 XX m ydata n YY类的对象包含的数据成员的个数是 A 1 B 2 C 3 D 4 13 有如下程序段 int i 1 while 1 i if i 10 break if i 2 0 cout 执行这个程序段输出字符 的个数是 A 10 B 3 C 4 D 5 14 有如下程序 include using namespace std class C1 public C1 cout 1 class C2 public C1 public C2 cout 2 int main C2 cb2 C1 cb1 return 0 运行时的输出结果是 A 121 B 21 C 211 D 12 15 有如下程序 include using namespace std class Toy public Toy char n strcpy name n count Toy count char GetName return name static int getCount return count private char name 10 static int count int Toy count 0 int main Toy t1 Snoopy t2 Mickey t3 Barbie cout t1 getCount endl return 0 运行时的输出结果是 A 1 B 2 C 3 D 运行时出错 16 已知函数FA调用FB 若要把这两个函数定义在同一个文件中 则 A FA必须定义在FB之前 B FB必须定义在FA之前 C 若FA定义在FB之后 则FA的原型必须 出现在FB的定义之前 D 若FB定义在FA之后 则FB的原型必须出现在FA的定义之前 17 在下列枚举符号中 用来表示 相对于当前位置 文件定位方式的是 A ios base cur B ios base beg C ios base out D ios base end 18 将运算符重载为类成员函数时 其参数表中没有参数 说明该运算符是 A 不合法的运算符 B 一元运算符 C 无操作数的运算符 D 二元运算符 19 有如下程序 include using namespace std class AA public AA cout 1 class BB public AA int k public BB k 0 cout 2 BB int n k n cout A 表达式可输出字符A B eof 函数可以检测是否到达文件尾 C 对磁盘文件进行流操作时 必须包含头文件fstream D 以ios base out模式打开的文件不存在时 将自动建立一个新文件 21 下列关于虚基类的描述中 错误的是 A 使用虚基类可以消除由多继承产生的二义性 B 构造派生类对象时 虚基类的构造函 数只被调用一次 C 声明 class B virtual public A 说明类B为虚基类 D 建立派生类对象时 首先调用 虚基类的构造函数 22 下列关于运算符函数的描述中 错误的是 A 运算符函数的名称总是以operator为前缀 B 运算符函数的参数可以是对象 C 运算符函数只能定义为类的成员函数 D 在表达式中使用重载的运算符相当于调用运 算符重载函数 23 有如下程序 include include using namespace std int main int s 123 234 cout right setfill setw 6 for int i 0 i 2 i cout s i endl return 0 运行时的输出结果是 A 123 234 B 123 234 C 123 234 D 123 234 24 有如下模板声明 template class A 下列声明中 与上述声明不等价的是 A template class A B template class A C template class A D template class A 25 已知数组arr的定义如下 in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出租车劳动合同范本2篇
- 瓶式氧气吸入课件
- 安全施工培训内容记录课件
- 农业碳汇项目融资策略与风险管理研究报告
- 农业现代化背景下2025年智能农业种植风险防控与绿色生产方案报告
- 球团厂安全规程培训
- 安全教训培训工作通报课件
- 房屋室内拆除工程方案(3篇)
- 以不变的精神面对变化的时代
- 比较教学法在高中语文课堂中的应用
- 手卫生知识答题及答案
- 洁净室区甲醛熏蒸消毒标准操作规程
- 4.1 整式(第1课时 单项式) 课件 七年级数学上册 (人教版2024)
- 中国急性缺血性卒中诊治指南(2023)解读
- 常熟理工学院图书馆考试完整题库
- 招聘诚信承诺书
- 装配式混凝土检查井施工及验收规程
- 2024小红书无货源精细化铺货实战课程
- 任正非的创业故事
- 学生实习家长知情同意书(完美版)
- 涉警网络负面舆情应对与处置策略
评论
0/150
提交评论