首页 > 全部 > 二级C++ > 国家二级C++机试(类和对象)模拟试卷17

国家二级C++机试(类和对象)模拟试卷17

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

国家二级C++机试(类和对象)模拟试卷17

选择题

1.有如下头文件:

int fl();

static int f2();

c1ass MA{

public:

int f3();

static int f4();

};

在所描述的函数中,具有隐含的this指针的是( )。(C)

A. f1

B. f2

C. f3

D. f4

解析:此题考查的是this指针。tlus指针是一个隐含的指针,它隐含于每个类的非静态成员函数中,它明确地表示出了成员函数当前操作的数据所属的对象。题目中,只有f3()满足“类的菲静态成员函数”的要求,故应选C选项。

2.下列程序段中包含4个函数。其中具有隐含this指针的是( )。

int funl();

c1ass Test {

public:

int fun2();

friend intfun3();

static int fun4();

}(B)

A. funl

B. fun2

C. fun3

D. fun4

解析:this指针是成员函数所属对象的指针,它指向类对象的地址。成员函数通过这个指针知道自己属于哪一个对象。this指针是一个隐含的指针,它隐含于每个类的非静态成员函数中,它明确的地表示出了成员函数当前操作的数据所属的对象。

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

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

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

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

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

解析:this是成员函数所属对象的指针,它指向类对象的地址。成员函数通过这个指针可以知道自己属于哪一个对象。它隐藏于每个类的非静态成员函数中。

4.有如下程序:

#inc1ude <iostream>

using namespacestd;

c1ass Test

{

public:

TestO {n+=2;}

~Test0{n—=3;}

static int getNum0 {return n;}

private:

static int n;

};

int Test::n=1;

int main()

{

Test* p=new Test;

delete p;

cout<<\\(A)

A. n=0

B. n=1

C. n=2

D. n=3

解析:此题考查的是静态数据成员和静态成员函数。静态数据成员是类中所有对象共享的成员,而不是某个对象的成员。题目中的静态数据成员n的运算具有叠加性,执行“n+—2”和“n——3”后n的值为0。

5.有如下程序:

#inc1ude <iostream>

using ruunespace std;

c1ass Obj{

static int i;

public:

Obj(){i++}

——Obj(){i——;}

static int getVal(){return i;}

};

int Obj::i=0;

void f(){Obj ob2; cout<<ob2.getVal();}

int main(){

Obj obl;

f();

Obj *ob3= new Obj; cout<<ob3—>getVal();

delete ob3; cOut<<Obj::getVal();

retutn 0;

}

程序的输出结果是( )。(D)

A. 232

B. 231

C. 222

D. 221

解析:此题考查的是静态成员。本题中,Obj类定义了一个静态数据成员i,并初始化为0.在主函数中,首先定义了1个该类对象obl,所以构造函数被调用1次,i加1;然后调用函数f0,该函数中又定义了一个对象ob2,此时j再次加1变为2,然后通过函数getVal0输出i的值2。f()函数结束,ob2变量被释放,故析构函数被调用了1次,i变成1:回到主函数中,又动态创建了1个对象并让ob3指向它,此后i变成2并输出。最后释放动态创建的对象i变为l,输出1。故最终的输出结果是221。

6.有如下程序:

#inc1ude<iostream>

using namespace std;

c1ass MyClass{

public:

MyClass(){++count;)

~MyClass(){——count;)

static int getCount(){retum count;}

private:

static int count;

};

intMyClass::count0;

int main0{

MyClass obj;

cout<<obj.getCounto;

MyClass*ptr=new MyClass;

cout<<MyClass::getCount0;

delete ptr;

cout<<MyClass::getCount();

return 0;

}

程序的输出结果是( )。(A)

A. 121

B. 232

C. 221

D. 122

解析:此题考查的是静态成员。静态成员的特性是不管这个类创建了多少对象,它的静态成员都只有一个拷贝副本,这个副本被所有属于这个类的对象共享。题目中,首先定义了obj对象,其构造函数使静态数据成员count增l,故输出“1”;然后通过指针动态创建了MyClass类的对象,构造函数被再次调用,count变为2,输出“2”;接着删除创建的MyClass类的对象,调用析构函数,count减1变为1,输出“1”。故最终输出结果是121。

7.有如下类定义:

c1ass Point{

private;

static int how many;

};

____how many=0;

要初始化Point类的静态成员how_many,下划线处应填入的内容是( )。(C)

A. ing

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号