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

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

1、国家二级( C+)机试模拟试卷 146及答案与解析 一、选择题 1 下列数据结构中,不能采用顺序存储结构的是 ( )。 ( A)非完全二叉树 ( B)堆 ( C)队列 ( D)栈 2 下列叙述中错误的是 ( )。 ( A)二 -X链表是二叉树的存储结构 ( B)循环链表是循环队列的存储结构 ( C)栈是线性结构 ( D)循环队列是队列的存储结构 3 设一棵树的度为 4,其中度为 4, 3, 2, 1的结点个数分别为 2, 3, 3, 0。则该棵树中的叶子结点数为 ( )。 ( A) 16 ( B) 15 ( C) 17 ( D)不可能有这样的树 4 循环队列的存储空间为 Q(1: 100),初

2、始状态为 front=rear=100。经过一系列正常的人队与退队操作后, front=rear=99,则循环队列中的元素个数为 ( )。 ( A) 1 ( B) 2 ( C) 99 ( D) 0或 100 5 某系统结构图如下图所示 该系统结构图的宽度是 ( )。 ( A) 5 ( B) 4 ( C) 2 ( D) 1 6 软件测试用例包括 ( )。 ( A)被测程序和测试规程 ( B)测试计划和测试数据 ( C)输入数据和预期 输出结果 ( D)输入数据和输出数据 7 软件生存周期中,解决软件 “怎么做 ”的阶段是 ( )。 ( A)软件设计 ( B)需求分析 ( C)软件测试 ( D)可

3、行性研究 8 用树型结构表示实体之间联系的模型是 ( )。 ( A)关系模型 ( B)层次模型 ( C)网状模型 ( D)运算模型 9 关系数据模型的三个组成部分中不包括 ( )。 ( A)关系的完整性约束 ( B)关系的数据操纵 ( C)关系的数据结构 ( D)关系的并发控制 10 现有表示患者和医疗的关系如下: P(P#, Pn, Pg, By),其中脚为患者编号,Pn为患者姓名, Pg为性别, By为出生日期, Tr(P#, D#, Date, Rt),其中 D#为医生编号, Date为就诊日期, Rt为诊断结果。检索在 1号医生处就诊的病人姓名的表达式是 ( )。 ( A) Pn(P#

4、(D#=1(Tr) P) ( B) P#(D#=1(Tr) ( C) Pn(P) ( D) Pn(Tr P) 11 下列选项中,不属于 C+关键字的是 ( )。 ( A) namespace ( B) public ( C) struct ( D) abstract 12 下列数组定义中错误的是 ( )。 ( A) char s5=“ABCDE“; ( B) char s6=“ABCDE“; ( C) char s7=“ABCDE“; ( D) chat s=“ABCDE“; 13 下列语句中,未起到定义作用的是 ( )。 ( A) char ch; ( B) void fun(); ( C)

5、 int y=2015; ( D) typedef double price 14 下列程序段的作用是计算正整数 n的各位数宁的甲方和,则横 线处缺失的内容是 ( )。 int n=1234, sum=0; do sum+=; n=n 10; while(n!=0); ( A) (n 10)*(n 10) ( B) (n 10)*(n 10) ( C) (n 10)*(n 10) ( D) (n 10) 15 有如下函数原型 long f(double d); 则在保持语义不变的前提下,可以省略的部分是 ( )。 ( A) long ( B) f ( C) double ( D) d 16 下

6、列关于函数默认参数的叙述中,正确的是 ( )。 ( A)在调用函数时,默认参数必须省略 ( B)默认参数应从右至左逐个定义 ( C)若有多个默认参数,调用时可以省略其中任何一个或多个 ( D)默认参数必须在函数定义中设置 17 下列关于函数的叙述中,正确的是 ( )。 ( A)函数体中只能出现一条 return语句 ( B)重载函数可以有相同的返回值类型 ( C)函数的默认参数可以随意定义 ( D)函数定义和调用没有先后次序要求 18 下列运算符中,可以重载为非成员函数的是 ( )。 ( A) = ( B) ( C) ( D) () 19 下列关于内联函数的叙述中,错误的是 ( )。 ( A)

7、编译系统有可能将一个声明为内联的函数处理成非内联函数 ( B)只有用 inline声明的函数才是内联函数 ( C)在类体中直接给出函数体的函数是内联函数 ( D)调用内联函数的格式与调用一般函数相同 20 有如下程序; #include using namespace std; void hey(_, int b) int c; c=a; a=b; b=c; int main() int m=14, n=20; hey(m, n); cout using namespace std; void f(int i)cout using namespace std; class Goods货物类 d

8、ouble unit_price;单价 int quantity;数量 public: Goods(double u=0 0, int q=0): unit_price(U), quantity(q) double getPrice()constreturn unit_price; 返回单价 int getQuantity()constreturn quantity; 返回数量 增加数量 Goods operator+(int q)constreturn Goods(unit_price, quantity+q); ; 增加数量 Goods operator+(_)return g+q; 输出

9、货物信息 ostream operator using namespace std; class A public: int data; static int data2; void show() cout using namespace std; class pool public: pool(): sum(0) void add(int cur) sum+=cur: int sum; ; class derived: pool publicl void add(int*atray, int cnt) for(int i=0; i using namespace std; class bas

10、e public: base(int cnt) resource=new intcnt; base() deleteresource; virtual void show() cout class A public: A(int n=2): m_i(n) A()std: cout class A public: A(int n=0): m_n(n) std: cout using namespaee std; ehts$R public: R(int r1, int r2): rl(r1), r2(r2) void print(); void print()eonst; private: in

11、t r1, r2; ; void R: print() cout using namespaee std; class Base public: Base() Fuction(); virtual void Fuction() cout using namespace std; class vehicle public: virtual int wheels()eonstreturn 0; ; class Car: public Vehicle public: int wheels()eonstreturn 4; ; void f1(Vehicle v)coutwheels() T min(T

12、 x, T Y) return x using namespace std; class MyClass public: ERROR*found* MyClass(int i) value=i; cout using namespaee std; class Stack public: virtual void push(char c)=0; virtual char pop()=0; ; class ArrayStack: public Stack char *p; int maxSize; int top; public: ArrayStack(int s) top=0; maxSize=

13、s; * found* p=_; ArrayStack() *found* _; void push(char c) if(top=maxSize) cerr #include using namespace std; class CDeepCopy public: int n;动态数组的元素个数 int *p;动态数组首地址 CDeepCopy(int); CDeepCopy(); CDeepCopy operator=(const CDeepCopy r);赋值运算符函数 ; void writeToFile(char*); main cpp #include“CDeepCopy h“ C

14、DeepCopy: CDeepCopy()deletep; CDeepCopy: CDeepCopy(int k)n=k; p=new intn; 构造函数实现 CDeepCopy CDeepCopy: operator=(const CDeepCopy r)赋值运算符函数实现 *333* *666* int main() CDeepCopy a(2), d(3); a p0=1; d p0=666;对象 a, d数组元素的赋值 CDeepCopy b(3);调用赋值运算符函数 a p0: 88; b=a; cout必须定义为类成员函数,而输入输出操作符可以定义 为非成员函数。故本题答案为 B

15、选项。 19 【正确答案】 B 【试题解析】 内联函数的内联说明对于编译器来说只是一个建议,编译器可以选择忽略这个建议,所以编译系统有可能将一个声明为内联的函数处理成非内联函数,选项 A正确;除了使用 inline声明的函数是内联函数,在类定义体内直接给出函数体的函数也是内联函数,选项 B 错误,选项 C正确;调用内联函数的格式与调用一般函数相同,选项 D正确。故本题答案为 B选项。 20 【正确答案】 C 【试题解析】 题意 main()函数中,首先定义整型变量 m为 14, n为 20,然后调用 hey()函数,传入 m、 n,然后输出时, m的值 14不变, n 的值为 14;再看 he

16、y()函数中,通过临时变量 c,将传入的两个参数 a、 b的值进行交换;再者,参数 b是引用变量,所以 b 的值修改,导致实参 n 的值也被修改,由 main()函数中 m的值不变, n的值变为 14,可知 hey()函数中形参 a(对应实参 m)应该是一个普通变量,而不是引用类型或指针类型,所以选项 A、 B 错误, c正确;另外对于参数,必须给出参数的类型,所以选项 D错误故本题答案为 C选项。 21 【正确答案】 A 【试题解析】 程序定 义两个重载函数 f(),其中一个接受整型参数,输出该参数;另一个接受 double类型参数,输出该参数的 2倍; main()函数中首先调用 f()函

17、数时传入 3 0,输出 3 0的两倍,由于 ANSI C+里规定,一个浮点数若小数部分是 0,则直接输出不带小数点,所以此时程序输出 6,同理,后一个传入参数3,输出 3。故本题答案为 A选项。 22 【正确答案】 C 【试题解析】 题意中, Goods类的构造函数接收一个 double参数 u 和一个整型参数 q,并使用它们初始化两个成员变量: unit_price和 quantity。两个普通常量成员函数: getPrice()常量函数和 getQuantity()常量函数,分别返回 unit_price和quantity 的值;重载加号运算符成员函数接收一个整型 q,将 q 的值加到 q

18、uantity成员上;在类定义体外,还有一个重载输出运算符函数,它通过 Goods对象的成员函数输出 Goods 对象的两个成员; main()函数中,首先构造 Goods对象 g,然后调用重载输出运算符函数输出 g、 g+33和 25+g:输出 g时,输出 g的两个成员变量的值:单价: 35 6,数量: 100;返回值为引用的 os对象;输 出 g+33时,由于第一运算数是 Goods对象,所以调用 Goods类中重载的加号运算符成员函数,将 33累加到 g的 quantity 成员中,再输出:单价: 35 6,数量: 133;返回值为引用的 os对象;输出 25+g时,由于第一运算数为整型

19、,所以无法调用 Goods类中的成员函数,需要使用外部定义的重载加号运算符函数,在函数体内再将第一运算数设置为 g,可知,横线部分的第一个参数肯定是整型 int,第二个参数是Goods类型,即 int q, Goods g。故本题答案为 C选项。 23 【正确答案】 B 【试题解析 】 常对象只能调用常成员函数,普通对象可以调用全部成员函数,包括常成员函数,选项 A错误;常成员函数不能改变所操作对象的数据成员,即常成员函数不能更新对象的状态,选项 B 正确;常数据成员是指在类定义中不能修改其值的数据成员,它和普通类成员一样,不能被所有类对象共享,选项 C错误;类中的常数据成员只能通过构造函数的

20、参数初始化列表进行初始化,选项 D错误。故本题答案为 B选项。 24 【正确答案】 C 【试题解析】 选项 A、 B 都使用 MyClass 类的构造函数,完成数组元素的初始化,数组定义正确;选项 D中,隐式 使用 Myclass 类的构造函数 (接收一个 int型的参数 ),将整数 1、 2、 3转换为 MyClass 类的对象,数组定义正确;选项 C中,数组前 3个元素同选项 D,可以完成初始化,但是第 4个数组元素,需要调用MyClass类的默认构造函数,由于 Myclass 类已经提供了一个构造函数 (非默认构造函数 ),所以编译器不会自动生成默认构造函数,也就无法构造第 4个元素,选

21、项 C错误。故本题答案为 C选项。 25 【正确答案】 C 【试题解析】 静态数据成员也属于类的成员,所以该类的成员函数可以直接访问,选项 A正确;使用类对 象访问类成员时,使用成员运算符 ” ”,选项 B正确;由于 count为 Toy类的静态数据成员,所以可以使用类名来访问,需要加上count的命名空间, Toy: count,选项 D正确。故本题答案为 C选项。 26 【正确答案】 B 【试题解析】 C+中,对于公有继承,基类成员保持自己的访问级别:基类的public成员为派生类的 public成员,基类的 protected 成员为派生类的 protected成员,基类的 private成员对派生类不可见,所以:在公有继承中,基类中的公有成员对派生类对象可见,基类中 的私有成员对派生类对象不可见,选项 A、 C正确;对于私有继承,基类的 public和 protected 成员在派生类中为 private成员,基类的 private成员对派生类不可见,所以在私有继承中,基类中的所有成员对派生类对象都是不可见的,选项 D正确,选项 B 错误。故本题答案为 B 选项。 27 【正确答案】 C

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

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

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