您当前位置: 唯学网 » 计算机等级考试培训 » 备考试题专题 »

计算机二级考试C++考前测试题及答案

计算机二级考试C++考前测试题及答案

唯学网 • 教育培训

2016-7-4 13:44

计算机等级

唯学网 • 中国教育电子商务平台

加入收藏

距离2016年9月全国计算机等级考试还有两个多月的时间,希望考生们做好冲刺备考计划,有效率的备考。下面是唯学网小编为大家整理的2016年计算机二级考试C++考前测试题及答案,以供各位考生备考使用。另外,还要提醒考生在规定时间内报名。

一、选择题(每小题1分,共40分)

1下列有关内联函数的叙述中,正确的是( )。

A.内联函数在调用时发生控制转移

B.内联函数必须通过关键字inline来定义

C.内联函数是通过编译器来实现的

D.内联函数函数体的最后一条语句必须是return语句

参考答案:C

参考解析:一般函数进行调用时,要将程序执行权转到被调用函数中,然后再返回到调用它的函数中;而内联函数在调用时,是将调用表达式用内联函数体来替换,所以在调用时不发生控制转移。在类内部实现的函数都是内联函数,可以不用inline定义;只有函数外部定义的内联函数才必须加关键字inline。编译系统并非对内联函数必须使用内联,而且根据具体情况决定。内联函数不是必须要有返回值的。

2语句int*P=&k;定义了指针P,与这个语句等效的语句序列是( )。

A.int* p;P=&k;B.int * P;P=k;C.int * p;* P=&k;D.int * p;* P=k;

参考答案:A

参考解析:本题考查指针和地址,题目中定义了一个指向变量k的一个指针p,那么与题目中等效的表达式A选项,即先定义一个指向整型的指针,然后指向k的地址。

3有如下程序:

#include

using namespace std;

class A

{

public:

A(){cout<<”A”;}

-A(){cout<<”-A”;}

};

class B:public A

{

A*P;

public:

B(){cout<<”B”;P=new A();}

-B(){cout<<”~B”;delete p;}

};

int main()

{

B obj;

return 0;

}

执行这个程序的输出结果是( )。

A.BAA~A~B~AB.ABA~B~A~AC.BAA~B~A~AD.ABA~A~B~A

参考答案:B

参考解析:本题考查派生类的构造函数和析构函数,在定义一个派生类的对象时,先调用基类的构造函数,然后再执行派生类的构造函数。对象释放时,先执行派生类的析构函数,再执行基类的析构函数。所以本题答案为B。

4有如下类定义:

class AA

{

im a:

public:

int getRef()const{return&a;}//①

int getValue()const{return a;}//②

void set(int n)const{a=n;}//③

friend void show(AA aA.const{cout<

};

其中四个函数的定义中正确的是(  )。

A.①B.②C.③D.④

参考答案:B

参考解析:本题考查常成员函数,常成员函数只能引用本类中的数据成员,而不能修改它。所以本题答案为B。

5若要对Data类中重载的加法运算符成员函数进行声明,下列选项中正确的是( )。

A.Data+(DatA.;B.Data operator+(DatA.;C.Data+operator(DatA.;D.operator+(Data,DatA.;

参考答案:B

参考解析:根据重载加法运算符的格式,只有B选项正确。

6有如下数组声明:int num[10];,下标值引用错误的是( )。

A.num[10]B.num[5]C.num[3]D.hum[o]

参考答案:A

参考解析:数组定义中的数字指的是数组的大小,而下标是从0开始的,所以本题中数组的最后一个元素是num[9]。

7将前缀运算符“--”重载为非成员函数,下列原型中能正确用于类中说明的是(  )。

A.DeCr&operator--(int);B.DeCr operator--(DeCr&,int);C.friend DeCr&operator--(DeCr&);D.friend DeCr operator--(DeCr&,int);

参考答案:C

参考解析:把“--”运算符重载为非成员(友元)函数格式:friend<返回类型>operator--()是前缀的格式;friend<返回类型>operator--(int)是后缀的格式。当然也可以有参数如题中C选项所示。

8如果派生类以proteCted方式继承基类,则原基类的proteCted成员和publiC成员在派生类中的访问属性分别是( )。

A.publiC和publiCB.publiC和proteCtedC.proteCted和publiCD.proteCted和proteCted

参考答案:D

参考解析:本题考查保护继承中派生类对基类的访问属性,在受保护继承中,基类的公用成员和保护成员在派生类中成了保护成员,其私有成员仍为基类私有,所以本题答案为D。

9在函数中,可以用aut0、extem、register和static这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是(  )。

A.autoB.externC.registerD.static

参考答案:A

参考解析:变量的存储方法分为静态存储和动态存储两大类,包含4种:自动的(auto)、静态的(static)、寄存器的(register)、外部的(extem)。变量如果没有说明存储类型,那么默认就是aut0。

10下列程序的输出结果是( )。

#include

int rain(iltl a,int B)

{

if(a

else retum b;

retum 0;

}

void main()

{

eout<

}

A.0B.1C.2D.3

参考答案:B

参考解析:本题考查的是函数的调用,第一次调用min(2,3),因为2<3,所以返回值为2,第二次调用min(1,2),因为l<2,所以返回1。

0% (0)
0% (10)
已有条评论