C++复习题武汉大学文档格式.docx

上传人:b****5 文档编号:19607489 上传时间:2023-01-08 格式:DOCX 页数:44 大小:323.50KB
下载 相关 举报
C++复习题武汉大学文档格式.docx_第1页
第1页 / 共44页
C++复习题武汉大学文档格式.docx_第2页
第2页 / 共44页
C++复习题武汉大学文档格式.docx_第3页
第3页 / 共44页
C++复习题武汉大学文档格式.docx_第4页
第4页 / 共44页
C++复习题武汉大学文档格式.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

C++复习题武汉大学文档格式.docx

《C++复习题武汉大学文档格式.docx》由会员分享,可在线阅读,更多相关《C++复习题武汉大学文档格式.docx(44页珍藏版)》请在冰豆网上搜索。

C++复习题武汉大学文档格式.docx

b)Directorboj;

obj.b=10;

c)Employeeobj;

obj.c=3;

d)Directorobj;

obj.a=20;

4)#include<

#defineSQR(x)x*x

inta=10,k=2,m=1;

a/=SQR(k+m);

a;

执行上面的C++程序后,a的值是(b)。

(选择一项)

a)10

b)2

c)9

d)0

不要忘了sqr中的x不是一个变量,编译器仅仅是把x替换为10+2,因此sqr(10+2)的结果是10+2*10+2,当然是32咯。

为了避免这种情况,这样写就没问题了:

#definesqr(x)((x)*(x))本文出自51CTO.COM技术博客

5)在C++语言中,下列语句中,正确的是(d)。

a)voidmain()

{

cout<

x;

intx=7;

return0;

}

b)char*s="

Hello,Myworld"

;

deletes;

c)类Time的析构函数:

void~Time(int);

d)在类Employee中声明如下的构造函数:

Employee(constchar*,constchar*);

e)类Time的部分定义:

classTime

public:

inthour=0;

intmonth=0;

intsecond=0;

6)

7)#include<

//Thisismyfirstprogram

MyfirstprograminC++"

这段C++程序的输出是(d)。

a)MyfirstprograminC++

b)Thisismyfirstprogram

c)MyfirstPrograminC

d)Noneoftheabove

8)#include<

classexample

staticintnum;

example(){num++;

cout<

num<

"

}

~example(){num--;

intexample:

:

num=1;

exampleobject1;

exampleobject2;

上面C++程序的输出结果是(d)。

a)1111

b)2121

c)2232

d)2321

e)1212

9)在c++中下列声明之间有(B)不同。

constint*myptr1=&

num;

int*constmyptr2=&

A.根本没有不同

B.不能用myptr1改变常整数的内容,然而可以用myptr2改变它指向的整数的内容

C.不能用myptr2改变常整数的内容,然而可以用myptr1改变它指向的整数的内容

10)在C++中,一个函数为voidf(int=1,char='

a'

),另一个函数为voidf(int),则它们(b)。

a)不能在同一程序中定义

b)可以在同一程序中定义并可重载

c)可以在同一程序中定义,但不可重载

d)以上说法都不正确

11)C++基类中的private成员通过(d)类型的继承,可以被派生类访问。

a)public

b)protected

c)private

d)任何类型的继承都不能使得派生类可以访问基类的private成员

12)下列概念()体现了面向对象的多态性。

(b)

a)虚基类

b)虚函数

c)对象容器

d)封装

13)#include<

classOne

voiddisplay(){cout<

1"

classTwo:

publicOne

2"

Onefirst;

Twosecond;

first.display();

second.display();

One*p=&

first;

p->

display();

p=&

second;

p->

在C++中,以上程序的运行结果为(c)。

a)1112

b)1212

c)1211

d)2112

14}

15)对于C++类

classdate

intday,month,year;

voidsetdate(int,int,int);

print();

下列描述是正确的(d)。

(选择两项)

a)setdate()函数内参数没有写变量名,因而它是错误的;

b)year是私有的,print()是公有的,setdate()可以访问day,而print()不能访问day

c)setdate()可以访问day,而print()不能访问day

d)setdate()可以访问day,而print()也可以访问day

16)在C++中,可以重载的运算符有(d)。

a)sizeof()

b):

c).*

d)++

17)#include<

classdate

intday,month,year;

date(){}

date(intx,inty,intz){day=x;

month=y,year=z;

voidset(){day=1;

month=10;

year=2002;

day<

/"

month<

year<

dateday1;

dateday2(10,10,2002);

day1.set();

day1.display();

day2.display();

上面C++程序运行的结果是(b)。

a)10/10/20021/10/2002

b)1/10/200210/10/2002

c)10/10/200210/10/2002

d)1/10/20021/10/2002

18)#include<

classA

A(){cout<

Aconstruct"

classB:

publicA

B():

A(){cout<

Bconstruct"

voidmain(){Bobj;

上面的C++程序运行的结果是(b)。

a)BconstructAconstruct

b)AconstructBconstruct

c)Aconstruct

d)Bconstruct

19)classwheel

intnum;

wheel(intw){num=w;

classcar

{

wheelcarWheel;

//写出car的构造函数

在C++中,上面程序中,空白处正确的语句是(b)。

a)voidcar(intn):

carWheel(n){}

b)car(intn):

carWheel(n){}

c)voidcar(intn):

d)car(intn):

20)下面关于模版说法正确的是(a)。

a)类模版提供了一种对类中类型进行参数化的方法;

在实例化模版类时,实际的数据类型会代替与类成员或方法相关联的类型参数

b)类模版中必须包含类成员与类方法

c)不可以用自定义的数据类型实例化一个模版类

d)类模版中类方法的参数必须用占位符替代,而不能使用实际数据类型

21)在类的说明符中,被指定为私有的数据可以被以下(c)访问。

a)程序中的任何函数

b)其他类的成员函数

c)类中的成员函数

d)派生类中的成员函数

22)在C++程序中出现(c)情况时,将引发一个异常。

a)在main函数的结尾少了一个大括号

b)for循环语法错误

c)被零除或数组溢出

d)数组没有被赋满值

23)classEmployee

private:

inta;

protected:

intb;

public:

intc;

voiddisplay();

publicEmployee

voidshow();

在C++中,以下操作正确的是(d)。

a)voidEmployee:

show(){cout<

a<

b<

c<

b)voidDirector:

display(){cout<

c)voidDirector:

d)voidDirector:

};

24)#include<

classX

X(intintx){num=intx;

X(X&

Y)

num=++Y.num;

voiddisp(){cout<

Xa(10);

Xb(a);

a.disp();

b.disp();

a)1010

b)1011

c)1111

d)1110

25)在C++中,下列类的成员函数(c)属于纯虚函数。

A)voiddisplay();

B)Virtualvoiddisplay();

C)Virtualvoiddisplay()=0;

D)Virtualvoiddisplay(){inta=0};

26)C++中,下列关于继承的描述。

(a)是错误的。

a)继承是基于对象操作的层面而不是类设计的层面上的

b)子类可以继承父类的公共行为

c)继承是通过重用现有的类来构建新的类的一个过程

d)将相关的类组织起来,从而可以共享类中的共同的数据和操作

27)#include<

int&

func(int&

num)

num++;

returnnum;

voidmain()

intn1,n2=5;

n1=func(n2);

cout<

n1<

n2<

上面C++程序运行结果是(c).(选择一项)

a)56

b)65

c)66

d)55

28)#include<

A(){}

~A(){cout<

Adestroy"

};

classB:

A(){}

~B(){cout<

Bdestroy"

voidmain(){Bobj;

上面的C++程序运行的结果是(a)。

a)BdestroyAdestroy

b)AdestroyBdestroy

c)Adestroy

d)Bdestroy

29)如果基类A和A的派生类B中都有成员函数func();

要在派生类的func()中调用同名的基类的func()成员函数,下列(b)操作下正确的。

a)func();

b)A:

func();

c)B:

d)A.func();

30)#include<

virtual~A(){cout<

A"

B"

A*pObj=newB;

deletepObj;

上面的C++程序的运行结果是(d).

a)A

b)B

c)AB

d)BA

31)在C++中,(b)一定不能创建类的对象和实例.

b)抽象类

c)基类

d)派生类

32)读下面C++程序:

#include<

classline

intcolor;

intstartx;

classbox

intupx,upy;

intlowx,lowy;

intsame_color(linea,boxb);

voidset_color(intc)

color=c;

voiddefine_line(intx,inty)

startx=x;

int(在此添入答案)same_color(linea,boxb)

if(a.color==b.color)

return1;

return0;

在括号中添入(b),该程序才能正常运行.

a)line:

b)box:

c)line->

d)box->

33)在c++中,定义了以下的一个类

Private:

intdata;

Public:

intset(intparam);

下列操作(d)是正确的

a)exampleobject;

object.data=10;

b)exampleobject;

data=object.set(10);

c)exampleobject;

object.data=object.set(10)

d)exampleobject;

34)读下面C++程序:

classvehicle

intwheels;

vehicle(intin_wheels=4){wheels=in_wheels;

intget_wheels(){returnwheels;

vehicleunicyclel;

vehicleunicycle2(3);

Theunickele1has"

unicyclel.get_wheels()<

wheel.\n"

Theunickele2has"

unicycle2.get_wheels()<

编译后输出结果为(c)。

a)Theunicycle1has0wheel.

Theunicycle2has3wheel.

b)Theunicycle1has4wheel.

Theunicycle2has4wheel.

c)Theunicycle1has4wheel.

Theunicycle2has3wheel.

d)Theunicycle1has0wheel.

35)在C++中,编写一个内联函数func,使用类型int的参数,求其平方并返回,返回值为int类型,

下列定义(b)是正确的

a)intfunc(intx){return(x*x);

b)inlineintfunc{return(x*x);

c)intinlinefunc{return(x*x);

d)intfunc(intx){return(x*x);

36)classsample

intset();

在C++中,下列对类sample的成员函数set()的定义(b)正确的。

a)intset(){data=10;

returndata;

b)intsample:

set(){data=10;

}或intsample:

set(){sample:

data=10;

c)intsample:

set(){:

d)intset(){sample:

37)在C++中,运算符new的作用是(c)

a)创建名为new的对象

b)获取一个新类的内存

c)返回指向所创建对象的指针,并为创建的对象分配内存空间

d)返回为所创建的对象分配内存的大小

对类的构造函数和析构函数描述正确的是(A)

  A)构造函数可以重载,析构函数不能重载

  B)构造函数不能重载,析构函数可以重载

  C)构造函数可以重载,析构函数也可以重载

  D)构造函数不能重载,析构函数也不能重载

下面程序的运行结果为(C)

 

#include(iostream.h>

intnum;

public:

A(inti){num=i;

A(A&

a){num=a.num++;

voidprint(){cout<

Aa

(2),b(a);

a.print();

b.print();

  A)23  B)33  C)32  D)22

下面对静态数据成员的描述中,正确的是(A)

  A)静态数据成员是类的所有对象共享的数据 

  B)类的每个对象都有自己的静态数据成员

  C)类的不同对象有不同的静态数据成员值 

  D)静态数据成员不能通过类的对象调用

27)如果类A被说明成类B的友元,则(D)

  A)类A的成员即类B的成员 

  B)类B的成员即类A的成员

  C)类A的成员函数不得访问类B的成员 

  D)类B不一定是类A的友元

(28)可以用p.a的形式访问派生类对象p的基类成员a,其中a是(d)

  A)私有继承的公有成员 

  B)公有继承的私有成员

  C)公有继承的保护成员 

  D)公有继承的公有成员

29)建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数)这3种构造函数的调用顺序为(a)

  A)abc 

  B)acb 

  C)cab 

  D)cba

(30)下面关于虚函数的描述,错误的是(B)

  A)在成员

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1