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

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

1、国家二级( C+)机试模拟试卷 83及答案与解析 一、选择题 1 在软件开发中,需求分析阶段产生的主要文档是 ( )。 ( A)可行性分析报告 ( B)软件需求规格说明书 ( C)概要设计说明书 ( D)集成测试计划 2 在函数中,可以用 auto、 extern、 register和 static这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是 ( )。 ( A) auto ( B) extern ( C) register ( D) static 3 有如下程序: #include using namespace std; class Sample frie

2、nd long fun(Sample s); public: Sample(long a) x = a; private: long x; ; long fun(Sample s) if (s.x using namespace std; class Point public: Point(int xx=0,int yy=0):x(xx),y(yy) void SetX(int xx) x=xx; void SetY(int yy) y=yy; private: int x,y; ; class Circle:public Point public: Circle(int r):radius(

3、r) int GetRadius() return radius; private: void SetRadius(int r) radius=r; int radius; ; int main() Circle c1(5); c1.SetX(1); / c1.SetY(2); / c1.SetRadius(10); / cout #include using namespace std; class Animal public: virtual string GetType() const return “Animal“; virtual string GetVoice() const re

4、turn “Voice“; ; class Dog:public Animal public: string GetType() const return “Dog“; string GetVoice() const return “Woof“; ; class Cat:public Animal public: string GetType() const return “Cat“; string GetVoice() const return “Miaow“; ; void Type(Animal 若执行函数调用表达式 P(1.3,2),函数 P被调用的次数是 ( A) 1 ( B) 2

5、( C) 3 ( D) 4 12 若目前 E盘根目录下不存在 data.txt文件,则下列打开文件 方式不会自动创建data.txt文件的是 ( A) ifstreamfin;fin.open(“e:data.txt“,ios_base:in); ( B) fstreamfio;fio.open(“e:data.txt“,ios_base:out); ( C) ofstreamfout;fout.open(“e:data.txt“,ios_base:out); ( D) ofstreamfout;fout.open(“e:data.txt“,ios_base:app); 13 已知数组 arr

6、的定义如下: int arr5 = 1,2,3,4,5; 下列语句中输出结果不是 5的是 ( A) cout using namespace std; class Base public: void output() coutoutput(); ptr-Print(); delete ptr; return 0; 执行这个程序的输出结果是 ( )。 ( A) 1B ( B) 1D ( C) 2B ( D) 2D 23 有如下程序: #include using namespace std; int main() int sum; for(int i = 0; i using namespace

7、 std; class Base public: void fun() coutfun(); ( C) Base:fun(); ( D) fun(); 25 下列关于栈的叙述中,正确的是 ( A)栈底元素一定是最后入栈的元素 ( B)栈顶元素一定是最先入栈的元素 ( C)栈操作遵循先进后出的原则 ( D)以上说法均错误 26 计算斐波那契数列第 n 项的函数定义如下: int fib(int n) if (n = 0) return 1; else if (n = 1) return 2; else return fib(n-1)+fib(n-2); 若执行函数调用表达式 fib(4),函数

8、fib 被调用的次数是 ( A) 6 ( B) 7 ( C) 8 ( D) 9 27 有如下程序: #include using namespace std; class Appliance public: Appliance() Appliance() cout using namespace std; class A public: virtual void func1() coutfunc1(); p-func2(); delete p; return 0; 执行这个程序的输出结果是 ( )。 ( A) B1B2 ( B) A1A2 ( C) B1A2 ( D) A1B2 35 语句 i

9、nt*p=定义了指针 p,与这个语句等效的语句序列是 ( )。 ( A) int*p;p= ( B) int*p;p=k; ( C) int*p;*p= ( D) int*p;*p=k; 36 有如下类定义: class MyClass int value; public: MyClass(int n): value (n) int getValue()const return value; ; 则类 MyClass的构造函数的个数是 ( )。 ( A) 1个 ( B) 2个 ( C) 3个 ( D) 4个 37 下面不属于需求分析阶段任务的是 ( )。 ( A)确定软件系统的功能需求 ( B

10、)确定软件系统的性能需求 ( C)需求规格说明书评审 ( D)制定软件集成测试计划 38 下列关于派生类构造函数和析构函数的叙述中,错误的是 ( A)如果基类中没有缺省构造函数,那么派生类必须定义构造函数 ( B)派生类的构造函数会隐含调用基类的构造函数 ( C)在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数 ( D)在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数 39 下面属于白盒测试方法的是 ( A)等价类划分法 ( B)逻辑覆盖 ( C)边界值分析法 ( D)错误推测法 40 有如下类声明: class Wd int a; public: int b;

11、 int c; private: int d; protected: int e; ; 其中访问权限为私 有的成员变量有 ( A) a和 b ( B) b和 c ( C) a和 d ( D) d和 e 二、基本操作题 41 请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 pmjl,此工程中含有一个源程序文件 proj1 cpp。其中位于每个注释 “ERROR*found*”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: False 注意:请勿更改参数名。只修改注释 “ ERROR*found*”的下一行语句,不要改动程序中的其他内容。 proj1 cpp #i

12、nclude usingnamespacestd; classMyClass public: ERROR*found* 请勿更改参数名 voidMyClasS(intx): flag(x) voidjudge(); private: intflag; ; ERROR*found* voidjudge() switch(flag) case0: coutdraw(); coutdistance(*pt2) 四、综合应用题 43 请使用 “答题 ”菜单或使用 VC6打开考生文件夹下的工程 proj3,其中声明了 List类,它是一个用于表示整数列表的类。 List的成员函数 insert的功能是将

13、一个指定的整数插入到列表的指定位置处,原位置处的及其后的所有元素依次向后顺移一个位置。请补充完整成员函数 insert。在 main函数中给出了一组测试数据,此情况下程序的输出应该是: 53791326810 5371326810 52337132619810 注意:只需在 *333*和 *666*之间填入所编写的若干语句,不要改动程序中的其他内容。 #include“List h“ intmain() intdat=5, 3, 7, 9, 13, 2, 6, 8, 1, 0); List1ist(dat, 10); list show(); list remove(3); list show

14、(); list insert(一 23, 1); list insert(一 19, 7); 1ist show(); writeToFile(“C: test “); return0; proj3 list.cpp #inClude“LiSt h“ List: List(intd, intsize) intmin=(MAXSIZEsize?size: MAX_SIZE); for(inti=0; i=MAX_SIZE)return; 指定的插入位置在最后元素之后,紧贴最后元素之后插入新元素。 if(pos=count)elemcount+=data; return; 指定的插入位置未超过最

15、后元素处,须移动有关元素以便腾空指定的插入位置,然后插入新元素。 *333* *666* voidList: remove(intpos) if(pos=count)return; for(inti=pos; i usingnamespacestd; #defineMAX_SIZE100 classListt intelemMAXSIZE;存放列表元素的数组 intcount;列表中元素的个数 public: List(): count(0) List(intd, intsize); intsize()constreturncount; ) 将数据元素 data插入到位置 pos处。 注意第一

16、个元素的位置是 0。 voidinsert(intdata, intpos); 删除位置 pos处的数据元素。 voidremove(intpos); 输出列表内容 voidshow(ostreamType(d)时,执行类class 的 Type函数,输出 Dog,然后输出 speak,然后执行派生类的 Speak 函数输出 Voice,最后输出 -,同理 cat输出类似,所以结果为 B选项正确。 10 【正确答案】 A 【试题解析 】 用来表示变量、符号常量、函数、数组类型等实体名字的有效字符序列称为标识符,标识符由字母、数字、和下划线 3种字符组成,且第一个字符必须为字母或者下划线,只有

17、A选项正确。 11 【正确答案】 C 【试题解析】 内联函数的函数定义必须出现在内联函数第一次被调用之前;内联函数可以避免函数频繁调用时的开销,提高程序运行效率;在类定义体内部定义的成员函数,编译器都将其视为内联函数; A、 B、 C正确;内联函数也可以有参数, D错误,答案为 D。 12 【正确答案】 A 【试题解析】 定义文件流对文件进行 操作时,需要指定文件模式,选项 B、 C中, ios_base:out是打开文件进行写操作,删除文件所有数据,如果文件不存在则创建它,不符合题意;选项 D中, ios_base:app 是打开文件进行写操作,在文件尾部追加数据,由于文件与 ofstrea

18、m流关联,当文件不存在时创建文件,也不符合题意,选项 A正确, ios_base:in 是打开文件做读操作,文件不存在时打开文件失败。答案为 A。 13 【正确答案】 D 【试题解析】 程序定义含有五个整型元素的数组 arr,并初始化为: 1,2,3,4,5,数组名 arr为数组首地址。选项 A中输出第一个元素与 4之和,即 1+4,结果为5;选项 B、 C都是输出第五个元素 5;选项 D中输出第二个元素与 5之和,即2+5,结果为 7, D错误;答案为 D。 14 【正确答案】 A 【试题解析】 一个类,如果没有显示定义的构造函数,那么编译器自动生成一个构造函数;一个类,如果显示定义了构造函

19、数,无论个数多少,编译器也不会再生成任何构造函数,所以一个类所拥有的构造函数至少有 1个,答案为 A。 15 【正确答案】 C 【试题解析】 在数据流图中,用标有名字的箭头表示数据流。在程 序流程图中,用标有名字的箭头表示控制流。所以选择 C)。 16 【正确答案】 C 【试题解析】 程序首先定义一个整型变量 i并初始化为 0, while循环条件为 1,所以循环结束时,必然执行 break 语句; while循环体中,首先对 i自增 1,接着判断 i=30时退出循环,最后判断 i/20=0(即, ioperator-(ClassName 【试题解析】 (1)主要考查考生对构造函数定义的掌握

20、,构造函数前不能有返回类型。 (2)类的成员函数在类外定义时要加上类名和作用域符。 (3)主要考查考生对 switch 语句的掌握 ,在 switch 语句中 ,使用 break 跳出。 三、简单应用题 42 【正确答案】 (1)virtual void draw() const =0; (2)const Point (4)x_ =pos; i-) elemi+1=elemi; elempos=data; count+; 【试题解析】 主要考查考生对对象处理的掌握,函数 insert的功能是将一个指定的整数 data插入到列表的指定位置 pos 处,原位置处的及其后的所有元素依次向后顺移一个位置。首先通过比较 count与 MAX_SIZE 判断存储空间是否已满,若存储空间已满,直接返回;然后判断插入的位置是否在当前数组最后元素之后,若是,则紧贴最后元素之后插入新元素即可;最后使用 for循环,将 pos位置及其之后的所有元素向后顺移一位,再将 data 插入 pos位置,同时更新 count的值。

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

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

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