计算机二级C++考试测试卷及答案
A.文件流只能完成针对磁盘文件的输入、输出
B.建立一个文件流对象时,必须同时打开一个文件
C.若输入流要打开的文件不存在,将建立一个新文件
D.若输出流要打开的文件不存在,将建立一个新文件
35.有如下程序:
#include
usingnamespacestd;
classPair{
intm,n;
public;
Pair(intj,intk):m(j),n(k){}
intget(){returnm;}
intget()const{returnm+n;}
};
intmain(){
Paira(3,5);
constPairb(3,5);
cout< return0;
}
运行时的输出结果是( )。
A.33
B.38
C.83
D.88
36.有如下程序:
#include
usingnamespacestd;
voidf1(int&X,int&y){intz=x;x=y;y=z;}voidf2(intX,inty){intz=x;x=y;y=z;}intmain(){
intx=10,y=26;
f1(x,y);
f2(x,y);
cout< return0;
}
运行时的输出结果是( )。
A.10
B.16
C.26
D.36
37.有如下程序:
#include
usingnamespacestd;
classXA{
inta;
public:
staticintb;
XA(intaa):a(aa){b++;}
~XA(){}
intget(){returna;}
};
intXA::b=0
intmain(){
XAd1(1),d2(3);
cout< return0;
}
运行时的输出结果是( )。
A.5
B.6
C.7
D.8
38.有如下程序:
#include
usingnamespacestd;
classPoint{
intX,y;
public:
Point(intx1=0,inty1=0):X(x1),y(y1){}
intget(){returnx+y;}
};
classCircle{
Pointcenter;
intradius;
public:
Circle(intCX,intcy,intr):center(CX,cy),radius(r)
{}
intget(){returncenter.get()+radius;}
};
intmain(){
Circlec(3,4,5);
cout< return0;
}
运行时的输出结果是( )。
A.5
B.7
C.9
D.12
39.若是对类BigNumber中重载的类型转换运算符long进行声明,下列选项中正确的是( )。
A.operatorlong()const;
B.operatorlong(BigNumber);
C.10ngoperatorlong()const;
D.longoperatorlong(BigNumber);
40.有如下函数模板定义:
template
T1FUN(T2n){returnn*5,0;}
若要求以int型数据9作为函数实参调用该模板,并返回一个double型数据,则该调用应表示为( )。
A.FUN(9)
B.FUN<9>
C.FUN(9)
D.FUN<9>(double)
【参考答案及解析】
1.A。【解析】栈是限定在一端进行插入删除的先入后出的线性表数据结构,栈顶元素最后插入到栈中,但是最先被删除;而栈底元素最先插入,最后被删除。
2.D。【解析】线性表的特点是:在数据元素的非空有限集合中1)存在唯一的一个被称为”第一个”的数据元素2)存在唯一个被称为”最后一个”的数据元素3)除第一个以外,集合中的每个数据元素均只有一个后继4)除最后一个以外,集合中的每个数据元素均只有一个后继。因此,双向表是非线性结构。
3.D。【解析】对于任意一棵二叉树T,如果叶子节点数为nO,度为2的结点数为n2,二者之间的关系是nO=n2+1,该题中度为2的结点数为0,且只有一个叶子节点,因此,树中度为1的结点有6个,很容易想到树的深度为7。
4.D。【解析】需求分析阶段只能产生需求分析规格说明书,A测试说明书是软件测试阶段生成的,B软件详细设计说明数是设计阶段生产,C用户手册是软件发布时随软件一同交付给用户的。
5.B。【解析】结构化程序设计的三种结构是顺序、分支和循环,不包括goto跳转,它只是分支结构的一种,也是一个关键字。
6.A。【解析】软件系统的总体结构图是软件架构设计的依据,它并不能支持软件的详细设计。
7.C。【解析】数据库操纵语言专门负责查询,增加,删除等数据操作。
8.D。【解析】一个教师可以上多门课程,一门课程也可以由多个教师教授,这是典型的多对多的E-R关系。
9.C。【解析】S中的关系全部出现在R中,只有做除法操作才会出现关系T。
10.B。【解析】A是有符号数,C是浮点数,D是集合,并不是类的实例化对象,只有B完全符台。
11.D。【解析】函数声明的时候,是不需要实现部分的,也就是函数体。
12.D。【解析】类的非静态成员都是有this指针的。可以通过obj非静态成员访问。
13.B。【解析】需要实现父类构造函数。
14.B。【解析】赋值运算符只能作为重载函数的成员函数,其他运算符都可以作为友元函数重载。
15.D。【解析】函数模板只是声明,一个函数的描述即模板,不是一个可以直接执行的函数,只有根据实际情况用实参的数据类型参数标识符之后,才能产生真正的.函数。