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

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

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

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

选择题

1.有如下类声明:

c1ass Foo{ int bar; );

则Foo类的成员bar是( )。(C)

A. 公有数据成员

B. 公有成员函数

C. 私有数据成员

D. 私有成员函数

解析:此题考查的是类的定义。在定义类的成员变量时,如果没有使用关键字;所有成员默认定义为private私有权限。

2.有如下类定义:

c1ass Foo

{

public:

Foo(int v):value(v){} //①

~Foo(){} //②

private:

Foo(){} //③

int value=0: //④

};

其中存在语法错误的行是( )。(D)

A. ①

B. ②

C. ③

D. ④

解析:此题考查的是类的定义。C++语言规定,在类体内不允许对所定义的数据成员进行初始化。

3.有如下类定义:

c1ass Test

{

public:

Test(){a=0;c=0;} //①

int f(int a)const{this—>a=a;} //②

static int g(){return a;} //③

void h(int b){Test::b=b;}; //④

private:

int a;

static int b;

const int c;

};

int Test::b=0;

在标注号码的行中,能被正确编译的是( )。(D)

A. ①

B. ②

C. ③

D. ④

解析:此题考查的是类的定义。一个类的长数据成员的初始化只能在成员初始化列表中进行,故选项A错误;常成员函数不能更新对象的数据成员,故选项B错误:静态成员函数可以直接访问类中说明的静态成员,但不能直接访问类中说明的非静态成员,故选项C错误。

4.有如下类声明:

c1ass SAMPLE

{

int n;

public:

SAMPLE(int i=0):n(i){}

void setValue(int n0);

};

下列关于getValue成员函数的实现中,正确的是( )。

B

解析:此题考查了成员函数的定义格式。在类外部对成员函数定义时的一般格式为:返回类型类名∷成员函数名(参数表){函数体),故此题正确答案为选项B。

5.以下关键字不能用来声明类的访问权限的是( )。(B)

A. public

B. static

C. protected

D. private

解析:此题考查的是类的访问权限。在C++语言中,类的访问权限有公有、保护和私有三种。故本题选B。

6.下列关于类定义的说法中,正确的是( )。(A)

A. 类定义中包括数据成员和函数成员的声明

B. 类成员的缺省访问权限是保护的

C. 数据成员必须被声明为私有的

D. 成员函数只能在类体外进行定义

解析:此题考查的是类的定义。类中缺省的访问权限是私有的,所以选项B错误;类的数据成员和成员函数的访问控制权限均可被声明为公有、私有和保护中的一种,所以选项C错误:成员函数的实现可以在类体内定义,也可以在类体外定义,所以选项D错误。

7.如果派生类以protected方式继承基类,则原基类的protected成员和public成员在派生类中的访问属性分别是( )。(D)

A. public和public

B. public和protected

C. protected和public

D. protected和protected

解析:此题考查的是基类成员在派生类中的访问属性。派生类中的成员不能访问基类中的私有成员,可以访问基类中的公有成员和保护成员。派生类从基类公有继承时,基类的公有成员和保护成员在派生类中仍然是公有成员和保护成员:派生类从基类私有继承时,基类的公有成员和保护成员在派生类中都变成私有成员:派生类从基类保护继承时,基类的公有成员在派生类中变成保护成员,基类的保护成员在派生类中仍然是保护成员。

8.下列运算符函数中,肯定不属于类Value的成员函数的是( )。(B)

A. Value operator+(Value);

B. Value operator—(Value, Value);

C. Value operator*(int);

D. Value operator/(Value);

解析:运算符作为非成员函数时,由于没有隐含this指针,因此所有的操作数必须出现在参数表中。对于第二个选项,出现了两个操作数,必然是非成员函数,但是对于其他三个选项,有可能都是要求两个操作数的成员函数。

9.有如下程序:

#inc1ude<iostream>

#inc1ude<cstring>

using namespace std;

c1ass XCD{

char*a;

int b;

public:

XCD(char* aa,int bb){

a=new char[strlen(aa)+1];

strcpy(a,aa),

b=bb;

}

char* Geta(){ returna;}

int Getb(){retum b;}

};

int main(){

char *p1=\\(A)

A. 12

B. 16

C. 14

D. 11

解析:由类XCD的定义可知,成员函数Geta()返回的是字符串的长度,Getb()返回的是参数b的值。在主函数中str1en(x.Geta())的值等于4,y.Getb()的值等于8,所以输出两者的和为12。

10.有如下两个类定义:

c1ass AA{};

c1ass BB{

AA v1,*v2;

BB v3;

int *v4;

};

其中有一个成员变量的定义是错误的,这个变量是( )。(C)

A. v1

B. v2

C. v3

D. v4

解析:在定义类的数据成员时,类中的数据成员可以是任意类型,包括整型、浮点型、字符符型、数组、指针和引用等,也可以是对象。但是要注意,只有另外一个类的对象,才可以

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号