首页 > 全部 > 二级C++ > 国家二级(C++)机试模拟试卷522

国家二级(C++)机试模拟试卷522

本单篇文档共15977字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C++ 模拟试卷 3726人下载
价格: 1.20 原价:¥9.00
收藏

国家二级(C++)机试模拟试卷522

选择题

1.分析下面程序,该程序的运行结果是( )。

#include

class TestClass

{

public:

static int m:

TestClass()

{

m++十一t-;

}

TestClass(int 11)

{

m=n:

}

static void test()

{

m++:

}

};

int TestClass::m=0;

void main()

{

TestClass A;

TestClass B(3);

A.test();

TestClass::test();

cout<<”m=”<<B.m<<endl;

}(C )

A. m=3

B. m=4

C. m=5

D. m=6

解析:由主函数main入手,首先定义Te8tClass对象A,B;对象B构造函数值为3,构造函数中m++,所以这时m=4。主函数中调用A.test(),因为“static int m;”,m被定义为类TestClass静态成员变量,当它的值改变后,则在各对象中这个数据成员的值都同时改变了。所以这里执行“A.test();”中的m为前面进行加1操作后的4,即m现在的值为5。

2.执行语句序列

int x=1,&y=x;

cout<<x<<’一’<<y<<endl;

输出结果为( )。(B)

A. x—x

B. 1—1

C. 1一0

D. 异常

解析:程序中的“int x=1”定义x为int型变量,并赋值为1。语句“&y=x”中“&”为引用运算符,&y=x语句可以理解为y具有x的地址,所以y的值也是1,即输出为:1-1。

3.下列关于this指针的描述中,正确的是( )。(D)

A. 类的成员函数都有this指针

B. 类的友元函数都有this指针

C. 任何与类相关的函数都有this指针

D. 类的非静态成员函数都有this指针

解析:this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员时,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。另外,全局函数和静态函数都不能使用this指针。所以答案为D。

4.如果有以下定义及初始化:

int a=3,*p=&a;

则由此可以推断,*p的值是( )。(A)

A. 变量a的值,即3

B. 变量a的地址值

C. 变量P的地址值

D. 无意义

解析:此题考查的是指针变量的定义与赋初值。语句*p=&a是定义指针并且给指针赋初值,指向a,所以指针的值就是变量a的地址,*p的值就是a的值。

5.下列运算符中不能在C++中重载的是( )。(A)

A. ?:

B. +

C. –

D. <=

解析:此题考查的是运算符的有关概念。运算符重载是针对C++原有运算符进行的,不能通过重载创造新的运算符;除了.、.*、->*、::、?:这五个运算符之外,其他运算符都可以重载。

6.有如下类定义:

class AA{

int a;

Public:

AA(int n=0):a(n){}

};

class BB:public AA{

public:

BB(int n) ______________

};

其中横线处的缺失部分是( )。

B

解析:本题考查公用继承对基类成员的访问属性。公用继承中,基类的公用成员和保护成员在派生类中保持原有访问属性,其私有成员仍为基类私有,本题中若要给派生类继承下来基类的私有成员赋值,那么只能调用基类的成员函数来对它赋值,成员变量默认的访问权限为私有,即a为私有变量。所以本题答案为B。

7.关于模板,下列说法不正确的是( )。(B )

A. 用类模板定义一个对象时,不能省略实参

B. 类模板只能有虚拟类型参数

C. 类模板本身在编译中不会生成任何代码

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

解析:类模板不是一个实实在在的类,本身在编译中不会生成任何代码;用类模板定义一个对象时,不能省略实参;类模板的成员函数都是模板函数。C++中可以为类模板的参数设置默认值,所以选项B)错误。

8.有如下程序:

#include

using namespace std;

class test{

private:

int a;

public:

test(){tout<<\\(D)

A. 3

B. constructor

destructor

C. copy constructor

destructor

D. 3

destructor

解析:本题考查默认构造函数和带参数的构造函数以及析构函数,本题中定义了一个对象A(3),对象带着参数,所以执行带参数的构造函数,输出3,然后执行析构函数,输出destructor。所以本题答案为D。

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

A. Data+(Data);

B. Data operator+(Data);

C. Data+operator(Data);

D. operator+(Data,Data);

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

10.在C++中,编译系统自动为一个类生成默认构造函数的条件是(C)

A. 该类没有定义任何有参构造函数

B. 该类没有定义任何无参构造函数

C. 该类没有定义任何构造函数

D. 该类没有定义任何成员函数

解析:本题考查默认构造函数,如果用户定义的类中没有显式的定义任何构造函数,编译器就会自动为该类型生成默认构造函数,称为合成的构造函数。C选项正确。

11.以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误原因是( )。

#include

void main()

{int*p,*q,a,b;

p=&a;

cout<<\\(B)

A. *p表示的是指针变量p的地址

B. p表示的是变量a的地址,而不是变量a的值

C. *p表示的是指针变量P的值

<

本文档预览:3600字符,共15977字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级(C++)机试模拟试卷522

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号