2017全国计算机二级c++检测试题

进修社 人气:2.49W

C++设计成直接的和广泛的支持多种程序设计风格(程序化程序设计、资料抽象化、面向对象程序设计、泛型程序设计)。下面是关于全国计算机二级c++检测试题,希望大家认真阅读!

2017全国计算机二级c++检测试题

一。选择题

1). 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )。

A.函数调用可以作为独立的语句存在

B.函数调用可以无返回值

C.函数调用可以出现在表达式中

D.函数调用可以作为、一个函数的形参

正确答案:D

答案解析:本题考查函数的调用方式。函数的形参和实参具有以下特点:①形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放分配的内存单元,因此,形参只有在函数内部有效,函数调用结束返回主调函数后则不能再使用该形参变量;②实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参,因此应通过预先用赋值、输入等办法使实参获得确定值;③实参和形参在数量上、类型上、顺序上应严格一致,否则会发生″类型不匹配″的错误;④函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。

2). 对于语句″cout< < <1<< < <2;″的输出结果是( )。

A.*********1*2

B.********12

C.*******1*2

D.12********

正确答案:A

答案解析:C++语言中,setfill的意思是在空格的地方填上setfill函数中的参数字符,setw的意思是设置整个输出字符串的字符个数,本题中用*来代替空格。

3). 下列关于运算符重载不正确的是( )

A.运算符重载不能改变运算符的操作数个数

B.运算符重载不能改变运算符的优先级

C.运算符重载不能改变运算符的结合性

D.运算符重载能改变对预定义类型数据的`操作方式

正确答案:D

4). 通常拷贝构造函数的参数是

A.某个对象名

B.某个对象的成员名

C.某个对象的引用名

D.某个对象的指针名

正确答案:C

答案解析:拷贝初始化构造函数的作用是用一个已知的对象来初始化一个被创建的同类的对象,该函数只有一个参数,并且是对同类的某个对象的引用。

5). 下面关于模板的描述,错误的是

A.函数模板和类模板的参数可以是任意的数据类型

B.类模板不能直接使用,必须先实例化为相应的模板类,然后定义了模板类的对象后才能使用

C.函数模板不能直接使用,需要实例化为模板函数后才能使用

D.类模板的成员函数都是模板函数

正确答案:A

答案解析:类模板不能被重载,而函数模板可以,它们不能被未知的数据类型替换。

二、填空题

(1)下面程序的打印结果是 [1]

#incude

int f(int);

int main()

{  int i;

for(i=0;i<5;i++)

cout<

return0;

}

int f(int i)

{  static int k=1;

for(;i>0;i- -)

k + = i;

return k;

}

(2)在用class定义一个类时,数据成员和成员函数的默认访问权限是 [2]

(3)含有纯虚函数的类称为 [3]

(4)已知intDBL(int n){return n + n;}和longDBL(long n){return n

+n;}是一个函数模板的两个实例,则该函数模板的定义是 [4]

(5)在下面程序的横线处填上适当的语句,使该程序执行结果为10.

#include

class MyClass

{  public:

MyClass(int a){x = a;}

[5] //取x值

private

int x;

};

int main()

{  MyClass my(10);

cout<

return 0;