网站首页 语言 会计 电脑 医学 资格证 职场 文艺体育 范文

2016最新计算机二级C++上机试题及答案

栏目: 计算机等级 / 发布于: / 人气:2.32W

1有如下程序:

2016最新计算机二级C++上机试题及答案

#include

using namespace std;

class Base{

protected:

Base(){cout<<’A’;}

Base(char C){cout<

};

class Derived:public Base{

public:

Derived(char C){tout<

};

int main(){

Derived dl(’B’);

retum 0;

}

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

参考答案:C

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

2下列符号中能够作为C++标识符的是( )。

stB.2aC._t

参考答案:C

参考解析:本题考查c++标识符的命名规则,其规则有如下几点:①所有标识符必须由字母、数字或下画线组成,且必须由字母或下画线开头;②所有标识符不能使用c++已有的关键字;③大、小写字母表示不同意义,即代表不同的标识符。选项A是关键字,选项B不能以数字开头,选项D包含了字符”一”,且不能以此字符开头。故答案为C。

3有如下程序:

#include

using namespace std;

class Base

{

private:

void funl()const{tout<<”funl”;}

protected:

void fun2()const{tout<<”fun2”;}

public:

void fun3()const{cout<<”fhll3”;}

};

class Derived:protected Base

{

public:

void fhn4()const{cout<<”filn4”;}

};

int main()

{

Derived obj;

();//①

2();//②

();//③

4();//④

return U:

}

其中有语法错误的语句是(  )。

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

参考答案:B

考解析:本题考查保护继承中派生类对基类的访问属性,受保护继承中,基类的公用成员和保护成员在派生类中成了保护成员,其私有成员仍为基类私有,保护基类的所有成员在派生类中都被保护起来,在类外不能访问,所以①②③错误。

4有如下程序:

#include

using namespace std;

class Instrument{

public:

virtual void Display()=0;

};

class Pian0:public Instrument}

public:

void Display(){/*函数体略*" >

};

intmain(){

Instrument S;

Instrument*P=0:

//…;

return 0;

}

下列叙述中正确的是(  )。

A.语句“Insturment*P=0;”编译时出错

B.语句“Instnunent s;”编译时出错

C.类Pian0中的Display函数不是虚函数

D.类Instrument是一个虚基类

参考答案:B

参考解析:本题考查纯虚函数和抽象类,纯虚函数是在声明虚函数时被“初始化”为0的函数,包含纯虚函数的类为抽象类,抽象类不能被实例化,所以语句“Instrmnent s;”在编译时出错。

5如下函数模板:

templateT square(T x){return x*x;} 其中T是(  )。

A.函数形参B.函数实参C.模板形参D.模板实参

参考答案:C

参考解析:本题考查模板函数的基本概念,根据模板函数的定义,T是模板形参,所以答案为C。

6为了提高函数调用的实际运行速度,可以将较简单的函数定义为( )。

A.内联函数B.重载函数C.递归函数D.函数模板

参考答案:A

参考解析:一般函数进行调用时,要将程序执行权转到被调用函数中.然后再返回到调用它的函数中;而内联函数在调用时,是将调用表达式用内联函数体来替换,一般只将{将规模很小而使用频繁的函数声明为内联函数,可以避免函数调用时间开销,从而提高运行速度。

7有如下程序:

#inClude using namespaCe std; Class Point{

publiC:

statiC int number;

publiC:

Point(  )er++;} ~Point(  ){number--;}

}; , int P0int::number=0;

int main(  ){

Point *ptr:

Point A,B; Point*ptr_point=new Point[3]; ptr=ptr_point;’

}

Point C;

Cout<

return 0; }

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

A.3B.4C.6D.7

参考答案:C

参考解析:本题考查默认构造函数.题目中定义.个对象A、B以及对象数组Point[3],又定义了对象C,共执行6次构造函数,number变为了6,所以本题答案为C。

8有三个关系R、S和T如下.

2016年9月计算机二级C++上机考试冲刺试题(2)

由关系R和s通过运算得到关系T,则所使用的运算为( )。