[计算机类试卷]国家二级(C++)机试模拟试卷18及答案与解析.doc

上传人:eventdump275 文档编号:502464 上传时间:2018-11-29 格式:DOC 页数:27 大小:85KB
下载 相关 举报
[计算机类试卷]国家二级(C++)机试模拟试卷18及答案与解析.doc_第1页
第1页 / 共27页
[计算机类试卷]国家二级(C++)机试模拟试卷18及答案与解析.doc_第2页
第2页 / 共27页
[计算机类试卷]国家二级(C++)机试模拟试卷18及答案与解析.doc_第3页
第3页 / 共27页
[计算机类试卷]国家二级(C++)机试模拟试卷18及答案与解析.doc_第4页
第4页 / 共27页
[计算机类试卷]国家二级(C++)机试模拟试卷18及答案与解析.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、国家二级( C+)机试模拟试卷 18及答案与解析 一、选择题 1 下列数据结构中,属于非线性结构的是 ( )。 ( A)循环队列 ( B)带链队列 ( C)二又树 ( D)带链栈 2 下列数据结构中,能够按照 “先进后 ffJ”原则存取数据的是 ( )。 ( A)循环队列 ( B)栈 ( C)队列 ( D)二叉树 3 对于循环队列,下列叙述巾正确的是 ( )。 ( A)队头指针是固定不变的 ( B)队头指针一定大于队尾指针 ( C)队头指针一定小于队尾指针 ( D)队头指针可以大于队尾指 针,也可以小于队尾指针 4 算法的空间复杂度是指 ( )。 ( A)算法在执行过程中所需要的计算机存储空间

2、 ( B)算法所处理的数据量 ( C)算法程序巾的语句或指令条数 ( D)算法在执行过程中所需要的临时工作单元数 5 软件设计中划分模块的一个准则是 ( )。 ( A)低内聚低耦合 ( B)高内聚低耦合 ( C)低内聚高耦合 ( D)高内聚高耦合 6 下列选项中不属于结构化程序没计原则的是 ( )。 ( A)可封装 ( B)自顶向下 ( C)模块化 ( D)逐步求精 7 软件详 细设计产生的如图所示。该图是 ( )。 ( A) N-S图 ( B) PAD图 ( C)程序流程图 ( D) E-R图 8 数据库管理系统是 ( )。 ( A)操作系统的一部分 ( B)在操作系统支持下的系统软件 (

3、C)一种编译系统 ( D)一种操作系统 9 在 E-R图中,用来表示实体联系的图形是 ( )。 ( A)椭网图 ( B)矩形 ( C)菱形 ( D)三角形 10 有 3个关系 R, S和 T如下表所示:其中关系 T由关系 R和 S通过某种操作得到,该操作为 ( )。 ( A)选择 ( B)投影 ( C)交 ( D)并 11 在结构化分析方法中,数据字典的作用是 ( )。 ( A)存放所有需要处理的原始数据 ( B)存放所有处理的结果 ( C)存放所有程序文件 ( D)描述系统中所用到的全部数据和文件的有关信息 12 一个关系中属性个数为 1时,称此关系为 ( )。 ( A)对应关系 ( B)单

4、一关系 ( C)一元关系 ( D)二元关系 13 线性表进行二分法检索,其前提条件是 ( )。 ( A)线性表以顺序方式存储,并按关键码值排序 ( B)线性表以顺序方式存储,并按关键码的检 索频率排序 ( C)线性表以链式方式存储,并按关键码值排序 ( D)线性表以链式方式存储,并按关键码的检索频率排序 14 两个关系在没有公共属性时,其自然连接操作表现为 ( )。 ( A)笛卡儿积操作 ( B)等值连接操作 ( C)空操作 ( D)无意义操作 15 在数据表视图中,不可以 ( )。 ( A)增加字段 ( B)删除字段 ( C)修改字段名称 ( D)修改字段类型 16 已知函数 FA调用 FB

5、,若要把这两个函数定义在同一个文件中,则 ( )。 ( A) FA必须定义在 FB之前 ( B) FB必须定义在 FA之前 ( C)若 FA定义在 FB之后,则 FA的原型必须出现在 FB的定义之前 ( D)若 FB定义在 FA之后,则 FB的原型必须出现在 FA的定义之前 17 有如下两个类定义: class AA; class BB AA v1, v2; BB v3; int*v4; ; 其中有一个成员变量的定义是错误的,这个变量是 ( )。 ( A) vl ( B) v2 ( C) v3 ( D) v4 18 有如下类定义: class XX int xdata; public: XX(

6、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 19 下列关于运算符函数的描述中,错误的是 ( )。 ( A)运算符函数的名称总是以 operator为前缀 ( B)运算符函数的参数可以是对象 ( C)运算符函数只能定义为类的成 员函数 ( D)在表达式中使用重载的运算符相当于调用运算符重载函数 20 下列关于模板形参的描述中,错误的是 ( )。

7、( A)模板形参表必须在关键字 template之后 ( B)模板形参表必须用括弧 ()括起来 ( C)可以用 class修饰模板形参 ( D)可以用 typename修饰模板形参 21 在下列枚举符号中,用来表示 “相对于当前位置 ”文件定位方式的是 ( )。 ( A) ios_base: cur ( B) 10s_base: beg ( C) ios_base: out ( D) ios_base: end 22 下列字符串中可以用做 C+标识符的是 ( )。 ( A) 2009var ( B) goto ( C) test-2009 ( D) -123 23 下列枚举类型的定义中,包含枚

8、举值 3的是 ( )。 ( A) enum testRED, YELLOW, BLUE, BLACK; ( B) enum testRED, YELLOW=4, BLUE, BLACK; ( C) enum testRED=-1, YELLOW, BLUE, BLACK; ( D) enum testRED, YELLOW=6, BLUE, BLACK; 24 有如下程序段: int i=1: while(1) i+; if(i=10) break: if(i 2=0)coutA表达式中输出字符 A ( B) eof函数可以检测是否到达文件尾 ( C)对磁盘文件进行流操作时,必须包含头文件 f

9、stream ( D)以 ios_base: out模式打开的文件不存在时,将自动建立一个新文件 32 有如下程序: #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 name10; static int count; ; int Toy: count=0; int main() T

10、oy tt(“snoopy“), t2(“Mickey“), t3(“Barbie“); tout using namespace std; class A public: A(int i): r1(i) void print()cout using namespace std; class Name char name20; public: Name() strcpy(name, “) ; cout using namespace std; class AA public; AA()cout using namespace std; class C1 public: C1()cout! #i

11、nclude struct TC0 *error* virtual void fun(); ; ClaSS TC1: public TC0 void fun() cout #define N 10 void sort(int AN, int n) int main() int AN=1, 50, 17, 69, 87, 42, 90, -6, 0, -11; sort(A, 10); for(int i=0; i class Co * * * * * * * * 1 * * * * * * * * ; * * * * * * * * 2 * * * * * * * * class C1: pu

12、blic: void print() cout”,其中 具有 typename、 class、 三种形式,形参用 “”,输出用 “cout”。 32 【正确答案】 C 【试题解析】 析构函数主要用于最后函数的释放空间。本题在已输出t1 get(20unt()后才调用即不影响所输结果。 33 【正确答案】 B 【试题解析】 const关键字可以用于参与对重载函数的区分。重载的原则是常对象调用常成员函数,一般对象调用一般成员函数。 34 【正确答案】 D 【试题解析】 对 有参与无参构造函数的调用。当 names2为空时调无参构造函数,而 names0, names1调用有参构造函数,即输出 3个

13、 “?”。 35 【正确答案】 A 【试题解析】 当基类的构造函数默认或无参时,派生类可省略对基类构造函数的显示调用,但系统会自动调用该类的默认构造函数,且先调用基类的构造函数后调用派生类的构造函数。 36 【正确答案】 B 【试题解析】 在基类与派生类中,析构函数在派生类先调用,而本题有两个不同类对象,对于 cb2需先调 c2的析构函数,再调 cl析构函数。而对于 *cbl由于没有指针性析构函数,它将不参加传递数据。 37 【正确答案】 D 【试题解析】 因为 getl“ype是虚函数,所以 p getType()执行继承类的 getType函数,输出 “书 ”; p getName()执行

14、基类的 getName函数,输出 “精彩人生 ”。总共输出 “书:精彩人生 ”,故选 D。 38 【正确答案】 C 【试题解析】 除了、 *、 * 、:、 ?:这五个运算符外,其他运算符都可以重载。 =、 、 ()、 以及所有的类型转换运算符只能作为成员函数重载。 作为成员函数重载时, 应完成 “下标访问 ”操作,使得向指定下标处的元素赋值或取值成为可能。 39 【正确答案】 B 【试题解析】 setw()为填充字符控制,仅对紧接着它的字符起作用,当输出的字符宽度小于 setw()预留的字符数时,需用 setw()设置的字符给予填充。 40 【正确答案】 A 【试题解析】 对动态分配存储空间的

15、考查,在 C+中,回车键需计一字符,即总的长度为 strlen(aa)+1。 二、基本操作题 41 【正确答案】 (1)应改为 “virtual void fun()=0; ”。 (2)应改为 “p=&obj1; ”。 (3)应傲为 “p=&obj2; ”。 【试题解析】 如果在基类中不使用这个虚函数,其返回值也是没有意义的,它应该被定义为纯虚函数。所以虚函数 fun应该是纯虚函数,也就是声明虚函数时初始化为 0的函数。即第 1处的 “virtual void fun()=0; ”。第 2处的 p为指针变量,将对象 obj1赋值给 p,实际上是 p指向对象 obj1的地址,所以将 “p=*ob

16、j1; ”修改为 “p=&obj1; ”。第 3处的 “p=*obj2; ”修改为 “p=&obj2; ”。 三、简单应用题 42 【正确答案】 int i, j, k, t; for(i=0; in=1; i+) for(k=i, j=i+1; jn; j+) if(Ak(ai) 如果前面的比后面的小则需要交换 k=j; if(k! =i) 交换 t=Ai; Ai=Ak; Ak=t; 【试题解析】 以数组 “A=3, 8, 7, 6, 5, 0, 1, 2, 9, 4)”为例来说明具体的排序过程,第一次选择:第一步,从 A0-A9中找最大值 max及下标 k,max=9, k=8;第二步,交

17、换 a0与最大值 a8的值;第一次结束后 a0已存放了最大值,下一次比较就不必再经过它了,而从 a1开始,如此循环。从例中可以看出 10个元素要进行 9次比较, n个元素要进行 n-1次比较。设置两层循环,外层循环变量 i从 0到 n-1,内层循环变量从 i开始到 n-1,在内层循环中找最大值,如果最大值的下标 k和 i不同,则交换,实现选择法排序。在内层循环体内,如果最大值的下标 k和 i不同,则用一个临时变量记录第 i个元素,然后将第 k个元素赋值给第 i个元素, 临时变量值赋给第 k个元素,如此完成两个元素的交换。 四、综合应用题 43 【正确答案】 (1)应添加 “virtual vo

18、id print()=0; ”。 (2)“class C1: ”应改为 “class C1: virtual private C0”。 (3)“class C2: ”应改为 “class C2: public C0”。 (4)“class C3: ”应改为 “class C3: public C2, public C1”。 【试题解析】 本题考查了类的继承。根据题意,第 1处 应该添加 “virtual void print()=0; ”。第 2处根据题意,在冒号后面应添加 “virtual private C0”。第 3处根据题意,冒号后应添加 “public C0”。第 4处根据题意,冒号后应添加 “public C2, publicC1”。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1