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

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

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

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

选择题

1.有如下类定义:

class Foo

{

public:

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

-Foo(){} //②

private:

F00(){} //③

int value=0; //④

};

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

A. ①

B. ②

C. ③

D. ④

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

2.有如下类定义:

class Test

{

public:

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

int f(int a) bonst{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错误。

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

A. public

B. static

C. protected

D. private

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

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

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

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

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

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

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

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

A. public和public

B. public和protected

C. protected和public

D. protected和protected

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

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

A. Value operator+(Value);

B. Value operator-(Value,Value);

C. Value operator*(int);

D. Value operator/(Value);

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

7.有如下程序:

#include<iostream>

#include<cstring>

using namespace std;

class XCD {

char*a;

int b;

public:

XCD(char*aa,int bb){

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

strcpy(a,aa);

b=bb;

}

char*Geta(){return a;}

int Getb0{ return b;}

};

int main(){

char *p1=’’abcd’’,*p2=’’weirong’’;

int d1=6,d2=8;

XCD x(p1,d1),y(p2,d2);

cout<<strlen(x.Geta())+y.Getb()<<end1;

return 0;

}

运行时的输出结果是( )。(A)

A. 12

B. 16

C. 14

D. 11

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

8.有如下两个类定义:

class AA{};

class BB{

AA v1,*v2;

BB v3;

int *v4;

};

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

A. vl

B. v2

C. v3

D. v4

解析:在定义类的数据成员时,类中的数据成员可以是任意类型,包括整型、浮点型、字符符型、数组、指针和引用等,也可以是对象。但是要注意,只有另外一个类的对象,才可以作为该类的成员,即作为类的成员对象存在。自身类的对象是不可以作为自身类的成员存在,但自身类的指针可以。对于本题,在定义类BB时,不能包括其对象v3。

9.有如下程序:

#include<iostream>

using namespace std;

class Point{

int x,y;

public:

Point(int x1=0,int y1=0):x(x1),y(y1){}

int get(){return x+y;}

};

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号