1、国家二级(C+)机试模拟试卷 156 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下列叙述中正确的是( )。(分数:2.00)A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D.线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性2.下列叙述中正确的是( )。(分数:2.00)A.栈是一种先进先出的线性表B.队列是一种后进先出的线性表C.栈与队列都是非线性结构D.以上三种说法都不对3.软件测试
2、的目的是( )。(分数:2.00)A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误4.在软件开发中,需求分析阶段产生的主要文档是( )。(分数:2.00)A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书5.软件生命周期是指( )。(分数:2.00)A.软件产品从提出、实现、使用维护到停止使用退役的过程B.软件从需求分析、设计、实现到测试完成的过程C.软件的开发过程D.软件的运行维护过程6.面向对象方法中,继承是指( )。(分数:2.00)A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间
3、共享属性和操作的机制7.层次型、网状型和关系型数据库划分原则是( )。(分数:2.00)A.记录长度B.文件的大小C.联系的复杂程度D.数据之间的联系方式8.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。(分数:2.00)A.一对一B.一对多C.多对多D.多对一9.数据库设计中反映用户对数据要求的模式是( )。(分数:2.00)A.内模式B.概念模式C.外模式D.设计模式10.有三个关系 R、S 和 T 如下: (分数:2.00)A.自然连接B.差C.交D.并11.下列符号中能够作为 C+标识符的是( )。(分数:2.00)A.con
4、stB.2aC.一 shapeD.一 count12.已知枚举类型声明语句为: enum COLORWHITE,YELLOW,GREEN=5,RED,BLACK=10; 则下列说法中错误的是( )。(分数:2.00)A.枚举常量 YELLOW 的值为 IB.枚举常量 RED 的值为 6C.枚举常量 BLACK 的值为 10D.枚举常量 WHITE 的值为 113.执行下列语句段后,输出字符“*”的个数是( )。 for(int i=50;i1;i-=2) cout*;(分数:2.00)A.24B.25C.26D.5014.有如下定义: int a5=1,3,5,7,9,*p=a; 下列表达式中
5、不能得到数值 5 的是( )。(分数:2.00)A.a2B.a3C.*(p+2)D.*p+415.下列语句中错误的是( )。(分数:2.00)A.const int a;B.const int a=10;C.const int*point=0;D.const int*point=new int(10);16.已知函数 FA 调用函数 FB,若要把这两个函数定义在同一个文件中,则( )。(分数:2.00)A.FA 必须定义在 FB 之前B.FB 必须定义在 FA 之前C.若 FA 定义在 FB 之后,则 FA 的原型必须出现在 FB 的定义之前D.若 FB 定义在 FA 之后,则 FB 的原型必
6、须出现在 FA 的定义之前17.下列关于运算符函数的描述中,错误的是( )。(分数:2.00)A.运算符函数的名称总是以 operator 为前缀B.运算符函数的参数可以是对象C.运算符函数只能定义为类的成员函数D.在表达式中使用重载的运算符相当于调用运算符重载函数18.为了提高函数调用的实际运行速度,可以将较简单的函数定义为( )。(分数:2.00)A.内联函数B.重载函数C.递归函数D.函数模板19.若要对 Data 类中重载的加法运算符成员函数进行声明,下列选项中正确的是( )。(分数:2.00)A.Data+(Data);B.Data operator+(Data);C.Data+op
7、erator(Data);D.operator+(Data,Data);20.已知函数 f 的原型是 void f(int*a,longb);,变量 v1、v2 的定义是: int v1;long v2; 下列调用语句中正确的是( )。(分数:2.00)A.f(v1, class Rectangle:publ ic CharShape public: Rectangle(char ch,int r,int c):CharShape(ch),_rows(r),_cols(c) voio Show();private: int rows,cols;行数和列数 ; void Triangle:Sho
8、w() 输出字符组成的三角形 for(int i=1;i= rows;i+)*found*for(int j=1;j=_;j+) cout ch; coutendl; void Rectangle:Show() 输出字符组成的矩形 *found*for(int i=1;i=_;i+ *found* for(int j=1;j=_;j+) cout ch;coutendl; *found* 为 fun 函数添加形参 VOid fun(_)CSShow();)int main()Triangle tri(*,4);Rectangle rect(#,3,8);fun(tri);fun(rect);r
9、eturn 0;(分数:2.00)_四、综合应用题(总题数:1,分数:2.00)43.请使用 VC6 或使用【答题】菜单打开考生目录 proj3 下的工程文件 proj3,此工程包含一个源程序文件 proj3cpp,其中定义了用于表示二维向量的类 MyVector;程序应当显示(6,8)。但程序中有缺失部分,请按照以下提示,把缺失部分补充完整: (1)在“* 1* *found*”的下方是构造函数的定义,它用参数提供的坐标对 x 和 y 进行初始化。 (2)在“*2* *found*”的下方是减法运算符函数定义中的一条语句。两个二维向量相减生成另一个二维向量:其 X 坐标等于两向量 X 坐标之
10、差,其 Y 坐标等于两向量 Y 坐标之差。 (3)在“*3* *found*”的下方,语句的功能是使变量 v3获得新值,它等于向量 v1 与向量 v2 之和。 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“*found*”。proj 3cpp#includeiostreamusing std:ostream;using std:cout;using std:endl;class MyVector 表示二维向量的类double X;x 坐标值 double y; Y 坐标值 public:MyVector(double i=00,double j=00);构造函数
11、MyVector operator+(MyVector j); 重载运算符+ friend MyVector operator 一(MyVector i,MyVector j); 重载运算符一 friend ostream *1* *found* _(double i,double j):X(i), Y(j) MyVector MyVector:operator+(MMVecor j) return MyVector(x+jX,Y+jy); MyVector operator 一(MyVector i, MyVector J) *2* *found*return MyVector(_); os
12、tream class Rectangle:publ ic CharShape public: Rectangle(char ch,int r,int c):CharShape(ch),_rows(r),_cols(c) voio Show();private: int rows,cols;行数和列数 ; void Triangle:Show() 输出字符组成的三角形 for(int i=1;i= rows;i+)*found*for(int j=1;j=_;j+) cout ch; coutendl; void Rectangle:Show() 输出字符组成的矩形 *found*for(in
13、t i=1;i=_;i+ *found* for(int j=1;j=_;j+) cout ch;coutendl; *found* 为 fun 函数添加形参 VOid fun(_)CSShow();)int main()Triangle tri(*,4);Rectangle rect(#,3,8);fun(tri);fun(rect);return 0;(分数:2.00)_正确答案:(正确答案:(1)i*2 一 1 (2)_rows (3)_cols (4)CharShapeusing std:endl;class MyVector 表示二维向量的类double X;x 坐标值 double
14、 y; Y 坐标值 public:MyVector(double i=00,double j=00);构造函数 MyVector operator+(MyVector j); 重载运算符+ friend MyVector operator 一(MyVector i,MyVector j); 重载运算符一 friend ostream *1* *found* _(double i,double j):X(i), Y(j) MyVector MyVector:operator+(MMVecor j) return MyVector(x+jX,Y+jy); MyVector operator 一(M
15、yVector i, MyVector J) *2* *found*return MyVector(_); ostream&operator(ostream&OS, MyVector V) OS(vX,vY);输出向量 v 的坐标 return OS; int main() MyVector vl(2,3),v2(4,5),v3; *3* *found* v3=_; coutv3end1; return 0; (分数:2.00)_正确答案:(正确答案:(1)MyVector:MyVector (2)ixjx,iyjy (3)v1+v2)解析:解析:(1)主要考查的是构造函数,在类外定义构造函数时要使用类名和作用域,即MyVector:MyVectoro (2)主要考查重载运算符“一”的返回语句,返回值应为向量 i 和 j 的差,即MyVector(ixjx,iyjy);。 (3)主要考查重载运算符“+”的使用,由题目可知 v3 是 vl 和v2 的和,前面我们已经重新定义了运算符“+”,所以在这里直接使用语句 v3=v1+V2;即可。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1