本栏目下题库来源于互联网,轻速云承诺对于用户导入平台的题库是严格保密的,不会在此呈现!
轻速云给您提供更好的在线考试系统服务!
2014年全国计算机等级《二级C++》上机考试冲刺试题(3)
1、【 单选题
下列排序方法中,最坏情况下比较次数最少的是(  )。 [1分]
冒泡排序
简单选择排序
直接插入排序
堆排序
答案:
2、【 单选题
下面程序的运行结果为( )。
#include
class A
{
public:
A(){tout<<”1”;}
~A(){tout<<”2”;}
};
class B:public A
{
public:
B(){cout<<”3”;}
~B(){cout<<”4”;}
};
void main()
{
B b;
} [1分]
1234
1324
1342
3142
答案:
3、【 单选题
以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误原因是( )。
#include
void main()
{int * P,* q,a,b;
P=&a:
eout<<”input a:”;
cin>>P: [1分]
* P表示的是指针变量P的地址
P表示的是变量a的地址,而不是变量a的值
*P表示的是指针变量P的值
*P只能用来说明P是一个指针变量
答案:
4、【 单选题
与语句cout<<ENDL;不等价的是(&NBSP;&NBSP;&NBSP; )。 [1分]
cout <<’\n’;
cout<<‘\l2’:
cout <<’\xA’;
cout<<‘\0’:
答案:
5、【 单选题
如果表达式x * y+z中,“*”是作为友元函数重载的,“+”是作为成员函数重载的,则该表达式还可为 ( )。 [1分]
operator+(operator$(X,Y),z)
x.operator+(operator * (x,y),Z)
Y.operator * (operator+(x,Y),z)
x.operator+(operator{(X,Y))
答案:
6、【 单选题
在下列关键字中,不能用来表示继承方式的是( )。 [1分]
private
static
public
protected
答案:
7、【 单选题
下面的(  )选项不能作为函数的返回类型。 [1分]
void
int
new
long
答案:
8、【 单选题
定义无符号整数类为UInt,下面可以作.为类UInt实例化值的是( )。 [1分]
一369
369
0.369
整数集合{1,2,3,4,5}
答案:
9、【 单选题
下列关于类定义的说法中,正确的是(  )。 [1分]
类定义中包括数据成员和函数成员的声明
类成员的缺省访问权限是保护的
数据成员必须被声明为私有的
成员函数只能在类体外进行定义
答案:
10、【 单选题
有如下程序:
#nclude
using namespace std;
int main()
{
void function(double val);
double val;
function(val);
cout<
return 0;
}
void function(double val)
} val=3;}
编译运行这个程序将出现的情况是(  )。 [1分]
编译出错,无法运行
输出:3
输出:3.0
输出一个不确定的数
答案:
11、【 单选题
this指针是C++语言实现( )的一种机制。 [1分]
抽象
封装
继承
重载
答案:
12、【 单选题
下面关于虚函数的描述,错误的是( )。 [1分]
在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数
基类中说明了虚函数后,派生类中对应的函数也必须说明为虚数
虚函数可以是另一个类的友元函数,但不能是静态成员函数
基类中说明的纯虚函数在其任何派生类中都必须实现
答案:
13、【 单选题
面向对象方法中,继承是指( )。 [1分]
一组对象所具有的相似性质
一个对象具有另一个对象的性质
各对象之间的共同性质
类之间共享属性和操作的机制
答案:
14、【 单选题
下列程序的运行结果为( )。 #include
void main() {
int a=2:
int b=a+1: cout< [1分]
0.66667
0
0.7
0.66666666…
答案:
15、【 单选题
有如下定义:
int a[5]={1,3,5,7,9},* P=a;
下列表达式中不能得到数值5的是( )。 [1分]
a[2]
a[3]
*(P+2)
+P+4
答案:
16、【 单选题
C++系统预定义了4个用于标准数据流的对象,下列选项中不属于此类对象的是( )。 [1分]
cout
cin
cerr
cset
答案:
17、【 单选题
有如下程序:
#include
using namespace std;
class GA{
public:
virtual int f()t retum l;}
};
class GB:public GA{
public:
virtual int f(){retum 2;}
};
void show(GA g){eout<<9.f();}
void display(GA&g){cout<<9.f();}
int main()
{
GA a;show(A.;display(A.;
GB b;show(B.;display(B.;
return 0;
}
执行这个程序的输出结果是( )。 [1分]
1111
1211
1112
1212
答案:
18、【 单选题
下列叙述中正确的是( )。 [1分]
有一个以上根结点的数据结构不一定是非线性结构
只有一个根结点的数据结构不一定是线性结构
循环链表是非线性结构
双向链表是非线性结构
答案:
19、【 单选题
下列关于虚函数的说明中,正确的是(  )。 [1分]
从虚基类继承的函数都是虚函数
虚函数不得是静态成员函数
只能通过指针或引用调用虚函数
抽象类中的成员函数都是虚函数
答案:
20、【 单选题
某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)( )。 [1分]
3
4
6
7
答案:
21、【 单选题
在数据库设计中,将E~R图转换成关系数据模型的过程属于( )。 [1分]
需求分析阶段
概念设计阶段
逻辑设计阶段
物理设计阶段
答案:
22、【 单选题
下列关于类模板的模板参数的叙述中,错误的是( )。 [1分]
模板参数可以作为数据成员的类型
模板参数可以作为成员函数的返回类型
模板参数可以作为成员函数的参数类型
模板参数不能作为成员函数的局部变量的类型
答案:
23、【 单选题
在软件开发中,需求分析阶段产生的主要文档是( )。 [1分]
可行性分析报告
软件需求规格说明书
概要没计说明书
集成测试计划
答案:
24、【 单选题
下面关于模板的描述,错误的是( )。 [1分]
函数模板和类模板的参数可以是任意的数据类型
类模板不能直接使用,必须先实例化为相应的模板类,然后定义了模板类的对象后才能使用
函数模板不能直接使用,需要实例化为模板函数后才能使用
类模板的成员函数都是模板函数
答案:
25、【 单选题
数据库系统的三级模式不包括( )。 [1分]
概念模式
内模式
外模式
数据模式
答案:
26、【 单选题
为了取代c中带参数的宏,在c++中使用(  )。 [1分]
重载函数
内联函数
递归函数
友元函数
答案:
27、【 单选题
C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是( )。 [1分]
增加了一些新的运算符
允许函数重载,并允许设置默认参数
规定函数说明符必须用原型
引进了类和对象的概念
答案:
28、【 单选题
派生类的成员函数不能访问基类的(  )。 [1分]
公有成员和保护成员
公有成员
私有成员
保护成员
答案:
29、【 单选题
下列代码段中声明了3个类:
Class Person{};
Class Student:publiC Person{};
Class Undergraduate:Student{};
下列关于这些类之间关系的描述中,错误的是( )。 [1分]
类Person是类Undergraduate的基类
类Undergraduate从类Student公有继承
类Student是类Person的派生类
类Undergraduate是类Person的派生类
答案:
30、【 单选题
若有下面的函数调用:
fun(fl+b,3,max(n一1,B.)
则fun的实参个数是(  )。 [1分]
3
4
5
6
答案:
31、【 单选题
有如下两个类定义:
class XX{
private:
double xl;
protected:
double x2;
public:
double x3;
};
class YY:protected XX{
private:
double yl;
protected:
double y2;
public:
double y3;
在类YY中保护成员变量的个数是( )。 [1分]
1
2
3
4
答案:
32、【 单选题
下列关于运算符重载的描述中,正确的是( )。 [1分]
运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符
一元运算符只能作为成员函数重载
二元运算符重载为非成员函数时,参数表中有一个参数
C++中可以重载所有的运算符
答案:
33、【 单选题
建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、C(派生类)构造函数),这3种构造函数的调用顺序为( )。 [1分]
abC
aCb
Cab
Cba
答案:
34、【 单选题
在下列枚举符号中,用来表示“相对于当前位置”文件定位方式的是(  )。 [1分]
ios_base::cur
ios—base::beg
los_base::0ut
ios—base::end
答案:
35、【 单选题
当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为(  )。 [1分]
ios—base::in
ios—base::in l ios base::0ut
los base;:0ut
ios_base::in&ios_base::0ut
答案:
36、【 单选题
下列有关运算符重载的叙述中,正确的是(  )。 [1分]
运算符重载是多态性的一种表现
C++中可以通过运算符重载创造新的运算符
C++中所有运算符都可以作为非成员函数重载
重载运算符时可以改变其结合性
答案:
37、【 简答题
请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程projl,该工程含有一个源程序文件pn,jl.cpp。其中位于每个注释“//ERROR 木}}水found}}水木”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:
The value is 10
注意:只修改注释“//ERROR **** found****”的下一行语句,不要改动程序中的其他内容。
//pmjl.cpp
#include
using namespace std;
class MyClass{
int value;
public:
//ERROR********found*********
void MyClass(int val):value(val){}
int GetValue()const{return value;}
void SetValue(int val);
};
//ERROR********found********
inline void SetValue(int val){value=val;}
int main()
MyClass obj(O);
obj.SetValue(10);
//ERROR********found********下列语句功能是输出obj的成员value的值
tout<<”The value is”<<OBJ.VALUE<
return 0;
} [18分]
解析:
(1)MyClAss(int vAl):vAluE(vAl){}
(2)voiD MyClAss::SEtVAluE(int vAl){vAluE=vAl;}
(3)Cout“”ThE vAluE is”“oBj.GEtVAluE()“EnD1;
38、【 简答题
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,其中有矩阵基类MatrixBase、矩阵类Matrix和单位阵UnitMatrix的定义,还有main函数的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:
1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//t+++found母
***”。
#nClude using namespaCe std; //矩阵基础类,一个抽象类
Class MatrixBase{ int rows,Cols; publiC:
MatrixBase(int rows,int Cols):roWS(rows),Cow(Cols){} int getRows()Const{retum rows;}//矩阵行数
int getCols()Const{return Cols;}//矩阵列数
virtual double getElement(int r,int C)Const=0;//取第i个元素的值 void show()Const{//分行显示矩阵中所有元素
for(int i=0;i<ROWS;I++){&NBSP;&NBSP;&NBSP;
for(int j=0;j<COLS;J++)&NBSP;&NBSP;&NBSP; }
<<””;    Cout<< **********found**********    /> } }; //矩阵类
Class Matrix:publiC MatfixBase{ double*val;
publiC: //**********found**********
Matrix(int rows,int Cols,double in[]=NULL):——{ //**********found**********
val=;
for(int i=0:i<ROWS*COLS;I++)
val[i]=(m==NULL?0.0:Ill[i]);
}
一Matrix(){delete[]val;} double getElement(int r,int C)Const{retum val[r*getCols()+C];}
};
//单位阵(主对角线元素都是l,其余元素都是0的方阵)类 Class UnitMatrix:publiC MatrixBase{
publiC:
UnitMatrix(int rOWS):MatrixBase(rows,rows){} //单位阵行数列数相同
double getElement(int r,int C)Const{ //**********found**********
if(_____)retum l.0; retum 0.0;
} }; int main(){
MatrixBase*m;
double d[][5]={{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7}}; ITI=new Matrix(3,5,(double*)d);
m→show(); delete m;
Cout<
m=new UnitMatrix(6); Ill→show();
delete m; retum0; } [24分]
解析:
(1)GEtElEmEnl(1,i)
(2)MAtrixBAsE(rows,Cols)
(3)FlEw DouBlE[rows*Cols]
(4)r==C
39、【 简答题
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的CDeepCopy是一个用于表示矩阵的类。请编写这个类的赋值运算符成员函数0perator=,以实现深层复制。
要求:
补充编制的内容写在“//************333************”与“//****************666*************”之间。不得修改程序的其他部分。
注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。
//CDeepCopy.h
#include
#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”
CDeepCopy::一CDeepCopy(){delete[]P;}
CDeepCopy::CDeepCopy(int k){n=k;p=new int[n];}//构造函数实现
CDeepCopy&CDeepCopy::0perator=(const CDeepCopy&r)//赋值运算符函数实现
{
//***********333*********
//***********666***********
}
int main()
{
CDeepCopy a(2),d(3);
a.p[O]=1;d.p[O]=666;//对象a,d数组元素的赋值
{
CDeepCopy b(3);//调用赋值运算符函数
a.p[O]=88;b=a;
cout<
}
cout<
cout<<”d fade away;\n”;
cout<
writeToFile(””);
return 0;
} [18分]
解析:
lq=r.n;//把对象r字符长度赋值给n
delete[]P;//删除动态数组P
P=new int[n];//给动态数组P分配空间为n
for(int i=0;i<n;i++)
//遍历对象r中的数组PP[i]=r.P[i];//把r.
P[i]赋值给P[i]
retum*this://返回被赋值的对象
1
1页,共39个题库
1页,共39个题库
轻速云给您提供更好的在线考试系统服务!
推荐
推荐题库
众多企事业单位的信赖之选
36万+企事业单位的共同选择
查看更多合作案例
众多企事业单位的信赖之选
开始使用轻速云组织培训考试
四步组织一场考试答题,一键搭建企业培训平台
免费使用 免费使用 预约演示
咨询热线
400-886-8169
周一到周日 8:00-22:00
©2023 轻速云 苏ICP备16049646号-1 轻速云科技提供专业的在线考试系统、在线培训系统
联系我们
客服热线客服热线:400-886-8169 | 周一至周日 8:00-22:00
©2023 轻速云 苏ICP备16049646号-1
轻速云科技提供专业的在线考试系统、在线培训系统
在线咨询 400-886-8169