C++模拟试题3答案Word文件下载.docx

上传人:b****4 文档编号:16487302 上传时间:2022-11-24 格式:DOCX 页数:11 大小:18.16KB
下载 相关 举报
C++模拟试题3答案Word文件下载.docx_第1页
第1页 / 共11页
C++模拟试题3答案Word文件下载.docx_第2页
第2页 / 共11页
C++模拟试题3答案Word文件下载.docx_第3页
第3页 / 共11页
C++模拟试题3答案Word文件下载.docx_第4页
第4页 / 共11页
C++模拟试题3答案Word文件下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

C++模拟试题3答案Word文件下载.docx

《C++模拟试题3答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《C++模拟试题3答案Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。

C++模拟试题3答案Word文件下载.docx

A、;

B、//

C、()

D、{}

3、设inta=3,b=4,c=5;

表达式(a+b)>

c&

&

b==c的值是(C)。

A、2

B、-1

C、0

D、1

4、下列标识符中,不合法的用户标识符为(A)

A、a#b

B、_int

C、a_10

D、PAd

5、while(!

x)中的(!

x)与下面条件(D)等价。

A、x==1

B、x!

=1

C、x!

=0

D、x==0

6、定义析构函数时,应该注意(C)

A、其名与类名完全相同

B、返回类型是void类型

C、无形参,也不可重载

D、函数体中必须有delete语句

7、每个类(C)构造函数。

A、只能有一个

B、只可有公有的

C、可以有多个

D、只可有缺省的

8、在一个类中可以对一个操作符进行(D)重载。

A、1种

B、2种以下

C、3种以下

D、多种

9、重载赋值操作符时,应声明为(A)函数。

A、友元

B、虚

C、成员

D、多态

10、在公有继承的情况下,基类成员在派生类中的访问权限(B)

A、受限制

B、保持不变

C、受保护

D、不受保护

11、通过(A)调用虚函数时,采用动态束定。

A、对象指针

B、对象名

C、成员名限定

D、派生类名

三、双项选择题(在每小题的五个备选答案中,选出二个正确的答案,并将其序号填在

题中的括号内,每小题2分,共18分)

1、在(C)(E)情况下适宜采用inline定义内联函数。

A、函数体含有循环语句

B、函数体含有递归语句

C、函数代码少、频繁调用

D、函数代码多、不常调用

E、需要加快程序执行速度

2、在类中说明的成员可以使用关键字(A)(D)进行修饰。

A、private

B、extern

C、auto

D、public

E、register

3、如果类A被说明成类B的友元,则(D)(E)。

A、类A的成员即类

B的成员

B、类B的成员即类A的成员

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

D、类A的成员函数可以访问类B的成员

E、类B不一定是类A的友元

4、创建或删除堆对象,需要使用操作符(B)(C)

A、->

B、new

C、delete

D、.

E、*

5、在类中声明转换函数时不能指定(A)(C)

A、参数

B、访问权限

C、返回类型

D、操作

E、标识符

6、在派生类中重新定义虚函数时必须在(A)(B)方面与基类保持一致。

A、参数个数

B、参数类型

C、参数名字

D、操作内容

E、赋值

7、字符串之间的比较按(C)(E)进行。

A、字符串的长度

B、字符的大小写种类

C、字符串的内部代码

D、字符串的含意

E、从头至尾的顺序

8、C++类体系中,不能被派生类继承的有(B)(E)。

A、转换函数

B、构造函数

C、虚函数

D、静态成员函数

E、赋值操作函数

9、下列虚基类的声明中正确的是(B)(D)

A、classvirtualB:

publicA

B、classB:

virtualpublicA

C、classB:

publicAvirtual

D、classB:

publicvirtualA

E、virtualclassB:

四、简答题(每小题5分,共30分)

1.给出下面程序的运行结果。

#include“iostream.h”

intmain()

{inti=1;

while(i<

=15)

if(++i%3!

=2)continue;

elsecout<

<

”i=”<

i<

endl;

}

答:

输出结果:

i=2

i=5

i=8

i=11

i=14

2.给出下面程序的运行结果。

#include“iostream.h”

classtest{

private:

intnum

floatfl;

public:

test();

intgetint(){returnnum;

floatgetfloat(){returnfl;

~test();

};

test∷test()

{cout<

"

Initalizingdefault"

<

endl;

num=0;

fl=0.0;

test∷~test()

Desdtructorisactive"

{testarray[2];

cout<

array[1].getint()<

array[1].getfloat()<

}

结果为:

Initalizingdefault

00

Desdtructorisactive

3.给出下面程序的运行结果。

#include"

iostream.h"

{intnum=50;

int&

ref=num;

ref=ref+10

num="

num<

num=num+40;

ref="

ref<

return0;

num=60

ref=100

4.若程序员没有为类定义拷贝初始化构造函数,则编译器将自动生成一缺省的拷贝初始化构造函数,它可能会产生什么问题?

若没有为类定义复制初始化构造函数,则编译器将会生成一个形如ClassName:

:

ClassName(constClassName&

)的缺省复制初始化构造函数,它的执行方式为用作为初始值的对象的

成员初始化正在建立的对象的相应成员。

这在有的情况下会产生问题,如果类的成员是一个指

针时,缺省复制初始化构造函数构造出的新对象中的指针将与原来的对象指向同一个变量。

果在对象消失时,要进行析构,这时这个变量将会被删除两次,所以就会出错了。

5.C++没有提供字符串数据类型,如何简单地构造此种数据类型?

可以定义一个字符数组作为字符串类型,如下:

constintM=80;

charstr[M];

6.什么是多重继承中的支配原则?

分析下面的类体系。

classA{

inti;

voidf(float);

classB:

publicA{

voidf(int);

则下面的访问是否具有二义性(b为类B的一个对象)?

b.i;

b.f(3.5);

类X中的名字N支配类Y中同名的名字N,是指类X以类Y为它的一个基类,这就称为多重继

承的支配原则。

在以上的访问中类B中的名字支配类A中的名字i和f,所以在访问时不存在二义

性。

五、编程题(共30分)

1、下面函数chnum将一个整数字符串转换为一个整数。

请在[1]、[2]、[3]、[4]处填入

正确内容。

(8分)

intchnum(char*str)

{inti,j,k,h,len,num=0;

len=strlen(str);

for(i=0;

[1];

i++)//填入i<

len

{k=1;

j=len-1;

while([2])//填入j>

{

k=k*10;

j--;

h=[3]-'

0'

;

//填入str[i]

num=num+h*[4];

//填入k

returnnum;

[1]填入i<

[2]填入j>

[3]填入str[i]

[4]填入k

2、下列程序定义了一实部为real,虚部为imag的复数类complex,并在类中将复数的加、减

操作重载为友元函数。

请在[1]~[12]处填上适当内容。

(9分)

classcomplex{

float[1],[2];

//填入realimag

complex(floatr=[3],floati=[4])//填入00

{real=r;

imag=i;

[5]operator+(complex,complex);

//填入friendcomplex

[6]operator-(complex,complex);

//填入freindcomplex

[7]operator+(complexc1,complexc2)//填入complex

{returncomplex([8],[9]);

}//填入c1.real+c2.realc1.imag+c2.imag

[10]operator-(complexc1,complexc2)//填入complex

{returncomplex([11],[12]);

}//填入c1.real-c2.realc1.imag-c2.imag

[1]real[2]imag

[3]0[4]0

[5]freindcomplex[6]freindcomplex

[7]complex[8]c1.real+c2.real

[9]c1.imag+c2.imag[10]complex

[11]c1.real-c2.real[12]c1.imag-c2.imag

3、下列shape类是一个表示形状的抽象类,area()为求图形面积的函数,total()则是一个通用的用以求不同形状的图形面积总和的函数。

请从shape类派生三角形类(triangle)

、矩形类(rectangle)、并给出具体的求面积函数。

classshape{

virtualfloatarea()=0

floattotal(shape*s[],intn)

floatsum=0.0;

for(inti=0;

n;

i++)

sum+=s[i]->

area();

returnsum;

解:

这两个类如下:

classtriangle:

publicshape

private:

floata,b,c,s;

triangle(floats1=0,floats2=0,floats3=0){

a=s1;

b=s2;

c=s3;

floatarea()

s=(a+b+c)/2;

returnsqrt(s*(s-a)*(s-b)*(s-c));

classrectangle:

floatw,h;

rectangle(floatwidth=0,floatheight=0){

w=width;

h=height;

returnw*h;

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

当前位置:首页 > 幼儿教育 > 少儿英语

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

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