网站首页 语言 会计 电脑 医学 资格证 职场 文艺体育 范文

计算机二级《C++》选择题练习及答案2016

栏目: 计算机二级 / 发布于: / 人气:1.72W

  选择题

计算机二级《C++》选择题练习及答案2016

(1)关于友元的概念错误的是

A)友元函数没有this指针

B)调用友元函数时必须在它的实参中给出要访问的对象

C)一个类的成员函数也可以作为另一个类的友元函数

D)只能在类的公有段声明友元

(2)关于抽象类下面说法正确的是

A)抽象类就是其中有函数定义但没有实现的类

B)抽象类是可以被实例化的

C)派生类不能成为抽象类

D)抽象类的子类必须实现父类中的纯虚函数

(3)下面程序的结果是

#include

class test { private:

int num;

public:

test();

int getint(){return num;}

~test();};

test :: test()

{ num =0;}

test::~test()

{ cout<<"Destructor is active"< P>

{ test x[3];

cout<<"Exiting main"<>

Destructor is active

Destructor is active

Destructor is active

B)Exiting main

Destructor is active

Destructor is active

C)Exiting main

Destructor is active

D)Exiting main

(4)如果表达式--x+y中,--是作为成员函数重载的, +是作为成员函数重载的,则该表达式还可为

A)ator+(ator--(0))

B)ator+(ator--())

C)ator+(operator--(x,0))

D)operator+(ator--())

(5)下列语句不能够用于打开C根目录下文件的语句是

A)ifstream fin; ("C:");

B)ifstream fin("C:");

C)A)和B)

D)ifstream fin; fin("C:");

(6)以下哪个基类中的成员函数表示纯虚函数?

A)virtual void vf (int)

B)void vf (int)=0

C)virtual void vf(=0)

D)virtual void yf(int){ }

(7)下面程序输出的结果是

#include

void main()

{ int i;

int a[3][3]={1,2,3,4,5,6,7,8,9};

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

cout << a[i][i] << " ";}

A)1 5 9

B)7 5 3

C)3 5 7

D)5 9 1

(8)派生类继承基类的方式有

A)public

B)private

C)protected

D)以上都对

(9)下列程序的运行结果为

#include

class Location {

protected:

int X, Y;

public:

void SetX(int myx){X=myx;}

void SetY(int myy){Y=myy;}

void showxy(){cout << "X=" << X << " " << "Y=" << Y <>

private:

int H, W;

public:

void SetH(int myh){H=myh;}

void SetW(int myw){W=myw;}

void show(){ cout << "X=" << X << " " << "Y=" << " " << Y << " " << "H=" << H << " " << "W=" << W << endl;}};

void main()

{ Rectangle r1;

(3);

(5);

(4);

(6);

xy();

();}

A)X=3 Y=5

X=3 Y=5 H=4 W=6

B)X=3 Y=5

X=3 Y=5 H=3 W=6

C)X=3 Y=5

X=3 Y=4 H=4 W=6

D)X=3 Y=5

X=3 Y=3 H=4 W=6

(10)有以下程序

#include

void ss(char *s,char t)

{ while(*s)

{ if(*s==t)*s=t-′a′+′A′;

s++;}}

void main()

{ char str1[100]="abcddfefdbd",c=′d′;

ss(str1,c); cout << str1;}

程序运行后的输出结果是

A)ABCDDEFEDBD

B)abcDDfefDbD

C)abcAAfefAbA

D)Abcddfefdb

  答案与解析:

(1)D

解析: C++中的友元可以在一个类中的任何位置声明,不一定必须在公有段,友元没有自己的this指针,调用友元函数时必须在它的实参中给出要访问的对象,并且一个类的成员函数是可以作为另一个类的.友元函数的。

(2)D

解析: C++语言中的抽象类就是类中至少有一个纯虚函数的类,抽象类不能被实例化,继承抽象类的类必须实现抽象类中的纯虚函数。

(3)A

解析: C++语言中析构函数是在程序退出不用该类的对象时进行调用。

(4)B

解析: C++语言中用成员函数重载--x为:x. operator--(),用成员函数重载x+y为:x. operator+(y)。

(5)D

解析: C++语言中打开文件有两种方式① ifstream fin("")② ifstream fin;("");。

(6)B

解析: C++中纯虚函数的定义与虚函数的关键字一样,在函数末尾要加上"=0"。

(7)A

解析: 首先,当i=0时,数组中的位置是a[0][0]=1,当然,如果用排除法的话,就不用考虑后面的循环了,因为在4个选项中,第1个数为1的选项只有A)。本题执行第2次循环时,i的值为1,则cout函数中的数组指向为a[1][1]=5,依次循环,可求出答案。

(8)D

解析: 派生类继承基类的方式有3种:public,private和protected,常用的是public.

(9)A

解析: 本题是一道简单的成员函数应用题,考生只要按着主函数中生成的类Rectangle的对象r1进行成员函数的调用即可得到答案。

(10)B

解析: 在内存中,字符数据以ASCII码存储,它的存储形式就与整数的存储形式相类似。C++语言使字符型数据和整型数据之间可以通用。也可以对字符数据进行算术运算,此时相当于对它们的ASCII码进行算术运算,在本题中,s++相当于s=s+1,即让s指向数组中的下一个元素。