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

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

1、国家二级( C+)机试模拟试卷 143及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)算法的时间复杂度与算法程序中的语句条数成正比 ( B)算法的时间复杂度与计算机的运行速度有关 ( C)算法的时间复杂度与运行算法时特定的输入有关 ( D)算法的时间复杂度与算法程序编制者的水平有关 2 下列各排序法中,最坏情况下的时间复杂度最低的是 ( )。 ( A)希尔排序 ( B)快速排序 ( C)堆排序 ( D)冒泡排序 3 设栈的存储空间为 s(1: 50),初始状态为 top=51。现经过一系列正常的入栈与退栈操作后, top=50,则栈中的元素个数为 ( )。 ( A) 1 (

2、 B) 0 ( C) 50 ( D) 49 4 某二叉树共有 399个结点,其中有 199个度为 2的结点,则该二叉树中的叶子结点数为 ( )。 ( A)不存在这样的二叉树 ( B) 200 ( C) 198 ( D) 199 5 结构化程序的三种基本结构是 ( )。 ( A)递归、迭代和回溯 ( B)过程、函数和子程序 ( C)顺序、选择和循环 ( D)调用、返回和选择 6 某系统结构图如下图所示 (n5) 该系统结构图的最大扇出数是 ( )。 ( A) n ( B) 3 ( C) 2 ( D) n+1 7 软件需求规格说明的内容不包括 ( )。 ( A)运行环境 ( B)软件的主要功能 (

3、 C)软件的性能 ( D)算法详细设计 8 在数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是( )。 ( A)人工管理阶段 ( B)文件系统阶段 ( C)文件系统阶段和数据库阶段 ( D)人工管理阶段和文件系统阶段 9 建立表示学生选修课程活动的实体联系模型,其中的两个实体分别是 ( )。 ( A)课程和课程号 ( B)学生和课程 ( C)学生和学号 ( D)课程和成绩 10 定义学生、教师和课程的关系模式 S(S#, Sn, sd, Dc, SA)(其属性分别为学号、姓名、所在系、所在系的系主任、年龄 ); c(C#, cn, P#)(其属性分别为课程号、课程名、先修课 )

4、; SC(S#, C#, G)(其属性分别为学号、课程号和成绩 ),则该关系为 ( )。 ( A)第二范式 ( B)第一范式 ( C)第三范式 ( D) BCNF范式 11 下列语句中,能够进行正确赋值的是 ( )。 ( A) char str=abcde; ( B) char str=“abede“; ( C) char str4=“abcde“; ( D) char str6=“abcde“; 12 有如下枚举类型定义: enum DAYSUN, MON=10, TUE, WED, THU, FRI=20, SAT; 执行下列程序段 for(int i=0: i using namespa

5、ce std; int main() int i=1, s=0; while(s using namespace std; int fun(char x, char y) if(xy) return x; return y; int main() int a(9), b(8), c(7); cout using namespaee std; double add(double a, double b, double c=1) return a+b+c: int main() int result=add(2, 3); cout using namespaee std; class clock

6、public: clock(): seeonds(0); clock: operator+() this-seconds+: return*this; void display() coutsecondsf() ( B) rx f() ( C) xx f() ( D) pp-f() 29 有如下类定义: class Piano public: int GetPrice()eonst; private: int price; ; 若要在类体外定义常成员函数 GetPrice,下列选项中正确的是 ( )。 ( A) int GetPrice()return price; ( B) int GetP

7、rice()eonstreturn price; ( C) int Piano: GetPrice()return price; ( D) int Piano: GetPrice()eonstreturn price; 30 有如下程序: #include using namespaee std; class Apartment public: Apartment(int Rum=2): bedroom(num)cout #include using namespace std; class Bedroom public: Bedroom(int s=12): size(s)cout usin

8、g namespace std; class Apple public: Apple()cout #include using namespace std; class Publication public: Publication(string n=“Unknown“): name(n) const string getName()constreturn name; virtual const string getType()constreturn“Unknown“; private: string name; ; class Book: public Publication public:

9、 Book(string name): Publication(name) virtual const string getType()constreturn“Book“; ; void showPublication(Publication p) cout #include using namespace std; class Power 幂类 double base;底数 double expo;指数 public: Power(double v, double p): base(v), expo(p) double getBase()constreturn base; double ge

10、tExponent()constreturn expo; ; class Square: public Power public: Square(double x): Power(x, 2 0) ; class Cubic: public Power public: Cubic(double x): Power(x, 3 0) ; ostream operator T max(T x, T y) return xy?x: y; 下列叙述中,错误的是 ( )。 ( A)此函数模板有一个模板形参 ( B)此模板实参类型必须可以用运算符 比较大小 ( C)此函数模板实例化时,模板实参只能是基本类型

11、( D)编译时遇到对 max的调用表达式,将生成模板实例 二、基本操作题 41 请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 proj1,该工程中包含程序文件 main cpp,其中有类 Door(“门 ”)和主函数 main的定义。程序中位于每个 “ ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为: 打开 503号门 门是锁着的,打不开。 打开 503号门的锁 锁开了。 打开 503号门 门打开了。 打开 503号门 门是开着的,无须再开门。 锁上 503号门 先关门 门锁上了。 注意:只修改每个 “ ERROR*found*”下的

12、 那一行,不要改动程序中的其他内容。 #include using namespace std; class Door int num;门号 bool closed; true表示门关着 bool locked; true表示门锁着 public: Door(int num) ERROR*found* num=this-num: closed=locked: true; bool isClosed()constreturn closed; 门关着时返回 true,否则返回 false bool isOpened()constreturn!closed; 门开着时返回 true,否则返回 fal

13、se bool isLocked()constreturn locked; 门锁着时返回 true,否则返回 false bool isUnlocked()constreturn!locked; 门未锁时返回 true,否则返回 false void open() 开门 cout #include #include #include using namespace std; void writeToFile(const char*path); class StringVar public: StringVar(int size);构造函数, size为字符串长度 (字符个数 )初始值;字符串内

14、容初始化为空串 StringVar(const char a);构造函数,用参数数组 a的内容初始化当前对象 StringVar(const StringVar strobj);复制构造函数 StringVar()deletevalue; ;析构函数 int length()constreturn strlen(value); 从输入流 ins输入一个字符串,其中可以包括空格 void inputline(istream ins); 返回字符串 首地址 char*getValue()constreturn value; private: char*value;字符串首地址 int max_le

15、ngth;字符串最大长度 (字符个数最大值 ) ; 将 the_string通过输出流 outs输出 ostream operator #include #include“StringVar h“ *333* *666* int main() StringVar namel(30), name2(“Borg“); namel input_line(cin); StringVar name3(name2); cout #include #include #include using namespace std; #include“StringVar h“ void writeToFile(con

16、st char*path) char filename30; strcpy(filename, path); strcat(filename, “out dat“); ofstream fout(filename); istringstream is(string(“Jenny Zheng“); StringVar namel(40), name2(“John“); namel input_line(is); StringVar name3(name2); foutb,bc,所以 fun(fun(a, b), fun(b, c)等价于: fun(a, b),也就等价于 a。本题答案为 B选项。

17、 22 【正确答案】 C 【试题解析】 题意中, add()函数接收 3个 double类型的参数,最后一个形参 c具有默认值 1,函数将三个参数相加,返回相加的结果; main()函数中,调用 add()函数,传入两个参数,所以形参 c使用默认值 1,对应参数的值为: 2, 3, 1,函数将 a、 b、 c转换为 douhle类型后,相加,并将结果 6 0作为函数值返回,返回值转换为 int赋给 result,最终输出 result的值。本题答案为 C选项。 23 【正确答案】 B 【试题解析】 题意中, clock类重载了前缀增量运算符 “+”,前缀增量运算符“+”函数中,首先将成员 se

18、conds自增 l,然后返回对象本身。 main()函数中,首先定义 clock类对象 c,使用 clock类的默认构造函数,将成员 seconds初始化为0,然后调用前缀自增运算符完成 seconds的增 1操作,再返回 c本身,所以此时c seconds的值为 1,调用 display()输出值为 1;再连续两次调用 c的自增运算符 ,完成 seconds的两次增 1操作,此时 c seconds的值为 3,再调用 display()输出值为 3;最后再次调用 display()函数输出 3,所以本题输出: 13 3。本题答案为B选项。 24 【正确答案】 B 【试题解析】 构造函数的名字

19、和类的名字相同,选项 A正确;构造函数没有返回值,小能指定返回类型,选项 B错误;构造函数可以被重载,选项 C正确;每个类都有构造函数,如果类定义中不提供任何构造函数,那么编译器会在需要时,自动生成一个构造函数,选项 D正确。本题答案为 B选项。 25 【正确答案】 D 【试题解析】 静态数据成员和静态成员函数不属于任何对象,所以成员函数没有this形参, this指针只能在类的非静态成员函数中使用,而不能在静态成员函数中使用,选项 A正确; this指针是指向该类对象的一个指针,存放该对象的地址,由编译器隐含地定义,成员函数的函数体可以显示的使用 this指针,但不是必须这么做,选项 B、

20、C正确;构造函数属于类的非静态成员函数,也可以使用 this指针,选项 D错误。本题答案为 D选项。 26 【正确答案】 B 【试题解析】 C+中,对于公有继承,基类成员保持自 己的访问级别:基类的public成员为派生类的 public成员,基类的 protected成员为派生类的 protected成员,基类的 private成员对派生类不可见,所以:在公有继承中,基类中的公有成员对派生类对象可见,基类中的私有成员对派生类对象不可见;对于私有继承,基类的 public和 protected成员在派生类中为 private成员,基类的 private成员对派生类不可见,选项 B正确。本题答案

21、为 B选项。 27 【正确答案】 C 【试题解析】 友元机制允许一个类将对其非公有成员的访问权授予指 定的函数或类,类和类之间可以互为友元关系,选项 A正确;类代表某一种事物 (对象 )的共性和特征,用于描述事物的属性 (数据成员 )和对事物的操作 (成员函数 ),选项 B正确;类和类之间可以通过封装而具有相对独立性,选项 D正确;类和类之间的关系有:继承、实现、依赖、关联、组合、聚合等,选项 C错误。本题答案为 C选项。 28 【正确答案】 C 【试题解析】 C+中,多态调用必须满足两个条件:被调用的成员函数是虚函数;必须通过基类类型的引用或指针进行函数调用。题意中 f()函数是虚函数,满足

22、条件之一,所以只需要看调用 对象是引用或指针。 px是 xx类型的指针,通过px调用 f()函数,满足多态性,选项 A正确; rx是 XX类型的引用,通过 rx调用f()函数,满足多态性,选项 B正确; pp是。 XX类型的指针,通过 pp调用 f()函数,满足多态性,选项 D正确; xx是: XX类型的对象,通过 Xx调用 f()函数,不满足多态性,选项 C错误;本题答案为 C选项。 29 【正确答案】 D 【试题解析】 首先,题意需要定义常成员函数 GetPrice(),所以需要在函数定义体的大括号前、形参表的小括号后使用 const关键字,选项 A、 C错误;另外 由于需要在类定义外定义

23、成员函数,所以需要在函数名 GetPrice()前,给出类名 Piano的这个限定名,限定作用域在 Piano中,选项 B错误。本题答案为 D选项。 30 【正确答案】 C 【试题解析】 Apartment类提供了一个默认构造函数,形参默认值为 2,所以main()函数中 Apartment类对象的构造都是使用该默认构造函数,其中 Alice在构造时,参数使用默认值 2,所以构造函数中的语句输出 2; Bill在构造时,参数传入 3,所以输出 3; Twins数组中的两个元素都是用默认参数 2,所以调用两 次默认构造函数,输出 22,所以本例输出: 2322。本题答案为 C选项。 31 【正确答案】 D

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

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

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