C++考试模拟练习三Word文档格式.docx

上传人:b****1 文档编号:5744141 上传时间:2023-05-05 格式:DOCX 页数:17 大小:19.71KB
下载 相关 举报
C++考试模拟练习三Word文档格式.docx_第1页
第1页 / 共17页
C++考试模拟练习三Word文档格式.docx_第2页
第2页 / 共17页
C++考试模拟练习三Word文档格式.docx_第3页
第3页 / 共17页
C++考试模拟练习三Word文档格式.docx_第4页
第4页 / 共17页
C++考试模拟练习三Word文档格式.docx_第5页
第5页 / 共17页
C++考试模拟练习三Word文档格式.docx_第6页
第6页 / 共17页
C++考试模拟练习三Word文档格式.docx_第7页
第7页 / 共17页
C++考试模拟练习三Word文档格式.docx_第8页
第8页 / 共17页
C++考试模拟练习三Word文档格式.docx_第9页
第9页 / 共17页
C++考试模拟练习三Word文档格式.docx_第10页
第10页 / 共17页
C++考试模拟练习三Word文档格式.docx_第11页
第11页 / 共17页
C++考试模拟练习三Word文档格式.docx_第12页
第12页 / 共17页
C++考试模拟练习三Word文档格式.docx_第13页
第13页 / 共17页
C++考试模拟练习三Word文档格式.docx_第14页
第14页 / 共17页
C++考试模拟练习三Word文档格式.docx_第15页
第15页 / 共17页
C++考试模拟练习三Word文档格式.docx_第16页
第16页 / 共17页
C++考试模拟练习三Word文档格式.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C++考试模拟练习三Word文档格式.docx

《C++考试模拟练习三Word文档格式.docx》由会员分享,可在线阅读,更多相关《C++考试模拟练习三Word文档格式.docx(17页珍藏版)》请在冰点文库上搜索。

C++考试模拟练习三Word文档格式.docx

A.对象是类的一个实例

B.任何一个对象只能属于一个具体的类

C.一个类只能有一个对象

D.类与对象的关系和数据类型与变量的关系相似

5、有关构造函数的说法不正确的是____?

A.构造函数名字和类的名字一样

B.构造函数在说明类变量时自动执行

C.构造函数无任何函数类型

D.构造函数有且只有一个

6、下列的____?

____函数中,不是类的成员函数。

A.构造函数B.析构函数

C.友元函数D.拷贝初始化构造函数

7、对于下面几个语句:

constchar*p=”ABCD”;

//1

p[3]=’E’;

//2

p=”WXYZ”;

//3

constchar*constq=”ABCD”;

//4

q[3]=’A’;

//5

q=”WXYZ”;

//6

错误的是____?

A.全部B.2和3和5

C.2和5和6D.3和5和6

8、对于下面几个函数:

voidg(intx,floaty){…}//1

intg(inta,floatb){…}//2

intg(inti,intj){…}//3

floatg(intx,inty){…}//4

____?

____是重载函数。

A.4个全部B.1和2

C.2和3D.3和4

9、关于构造函数,下面叙述不正确的是____?

A.构造函数可以重载

B.构造函数的函数名与类名相同

C.构造函数必须指定返回类型

D.构造函数可以设置默认值

10、设类Y是基类X的公有派生类,并有语句:

Xx,*px=&

x;

Yy,*py=&

y;

则正确的语句是____?

A.py=px;

B.y=x;

C.x=y;

D.*py=*px;

11、下面关于静态成员不正确的说法是____?

A、静态成员有类作用域,但与普通非静态成员有所不同

B、静态函数没有this指针,同一个类的不同对象拥有相同的静态变量

C、静态数据成员的初始化必须在类外进行

D、静态成员函数可以直接访问非静态数据成员

12、下列关于派生类的说法中正确的是____?

A、派生类可以继承多个基类

B、派生类不可以作为其他类的基类

C、派生类的构造函数初始化列表中必须包含对基类构造函数的调用

D、派生类对基类默认的继承方式为public

13、下列关于运算符重载的说法正确的是____?

A、运算符重载可以改变运算符的个数

B、运算符重载可以改变运算符的优先级

C、运算符重载可以改变运算符的结合性

D、运算符重载不可以改变运算符的语法结构

14、编译时的多态性可以通过____?

____体现。

A、虚函数和指针B、函数重载和运算符重载

C、虚函数和对象D、虚函数和引用

15、模板的使用可以____?

A、提高代码的可重用性B、提高代码的运行效率

C、加强类的封装性D、实现多态性

三、读程题

1、以下程序的输出结果是____

(1)____。

#include<

iostream>

usingnamespacestd;

chara[]=”ABCDEFGHI”;

char&

f(int);

voidmain()

{f(6)=’X’;

cout<

<

a<

endl;

return;

}

char&

f(inti){returna[i];

2、以下程序的输出结果分别是____

(2)____和____(3)____。

classL{

protected:

intx;

public:

L(inta){x=a;

};

classX:

publicL{

X(inta):

L(a){};

intGetX(){returnx;

classY:

Y(inta):

L(a){};

classZ:

publicX,publicY{

Z(inta):

X(a+10),Y(a+20){};

{Zz(10);

z.X:

:

GetX()<

z.Y:

3、以下程序输出的两个字母分别是____(4)____和____(5)____。

classA{

virtualvoidprint(){cout<

’m’<

’n’<

’\n’;

classB:

publicA{

voidprint(){cout<

’o’<

’p’<

{Bb;

A*ap=&

b;

ap->

print();

4、[程序]

classSample

{private:

intx,y;

Sample(){x=0;

y=0;

}Sample(inti,intj){x=i;

y=j;

voidcopy(Sample&

A){x=A.x;

y=A.y;

voidadd(){x++;

y++;

voiddisp(){cout<

"

x="

x<

\ny="

y<

{Samplec1(10,20),c2(1,2);

c1.add();

c1.disp();

c2.copy(c1);

c2.add();

c2.disp();

程序输出结果为____(6)____,____(7)____,____(8)____,____(9)____。

5、[程序]

classA

{public:

A(inti,intj){a=i;

b=j;

voidmove(intx,inty){a+=x;

b+=y;

voidshow(){cout<

("

"

b<

)"

private:

inta,b;

privateA

B(inti,intj,intk,intl):

A(i,j){x=k;

y=l;

voidshow(){cout<

voidfun(){move(3,5);

}voidf1(){A:

show();

{Ae(1,2);

e.show();

Bd(3,4,5,6);

d.show();

d.fun();

d.f1();

程序输出结果为____(10)____,____(11)____,____(12)____。

6、[程序]

classTAT{

staticintu;

inty;

TAT(intr=0){y=r;

voiddisp(){

u*=2;

y/=2;

u<

'

\t'

}

intTAT:

u=8;

voidmain(){

TATob[3]={16,10};

for(inti=0;

i<

3;

i++)

ob[i].disp();

程序的第一行输出为____(13)____,第二行输出为____(14)____,第三行输出为____(15)____。

四、程序填空题

1、通过重载运算符“+”,直接实现两个一维数组对应元素相加运算。

如设数组a,b分别为:

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

intb[10]={4,5,6,7,8,9,10,11,12,13};

则二数组相加后,结果为{5,7,9,11,13,15,17,19,21,23}。

类同地,

重载运算符“+=”,实现复合赋值运算。

____

(1)____;

classArr{

intx[10];

Arr(){for(inti=0;

10;

i++)x[i]=0;

Arr(int*p){for(inti=0;

i++)x[i]=*p++;

Arroperator+(Arra)

{Arrt;

i++)t.x[i]=____

(2)____;

return____(3)____;

Arr&

operator+=(Arra)

{for(inti=0;

i++)x[i]=____(4)____;

return____(5)____;

voidShow(){for(inti=0;

i++)cout<

x[i]<

’\t’;

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

intb[10]={4,5,6,7,8,9,10,11,12,13};

Arrar1(a),ar2(b),ar3;

ar1.Show();

ar2.Show();

ar3=ar1+ar2;

ar3.Show();

ar1+=ar3;

五、编程题1

编写程序:

建立一个类ARRAY,求一维数组中各元素的最大值、最小值和平均值。

具体要求如下:

(1)私有数据成员:

●floatdata[10];

●floatmax;

存储数组中元素的最大值

●floatmin;

存储数组中元素的最小值

●floataverage;

存储数组中所有元素的平均值

(2)公有成员函数:

●构造函数ARRAY(floata[10]);

初始化成员数组data

●voidprocess();

将数组data中的最大值、最小值和平均值分别存入max、min、average中

●voidprint();

屏幕输出数组中各元素的最大值、最小值和平均值,并将最大值、最小值和平均值写入结果文件myf1.txt中

(3)在主函数中对该类进行测试。

六、编程题2

建立一个类STRING,将一个字符串交叉插入到另一个字符串中(假定两字符串等长)。

如将字符串“abcde”交叉插入到字符串“ABCDE”的结果为“aAbBcCdDeE”或“AaBbCcDdEe”。

(1)私有成员:

●charstr1[80];

被插入的字符串

●charstr2[40];

字符串str2将被插入到字符串str1中

(2)公有成员函数

●构造函数STRING(char*s1,char*s2);

初始化成员数据

将字符串str2插入到字符串str1中

输出被插入后的字符串str1,并将插入后的字符串写入结果文件myf2.txt中

参考答案

空号

答案

静态多态性

纯虚函数

A类的引用a(作为参数)

public

私有(或private)

1

引用传递

所有

this指针

该类的一个对象

题号

2

3

4

5

6

7

8

9

10

11

12

13

14

15

B

D

C

A

空格号

(1)

ABCDEFXHI

(2)

20

(3)

30

(4)

o

(5)

p

(6)

x=11

(7)

y=21

(8)

x=12

(9)

y=22

(10)

(1,2)

(11)

5,6

(12)

(6,9)

(13)

168

(14)

325

(15)

640

usingnamespacestd

x[i]+a.x[i]

t

*this

[程序]

fstream>

classARRAY

{

private:

floatdata[10];

floatmax;

floatmin;

floataverage;

public:

ARRAY(floata[10])

{

for(inti=0;

data[i]=a[i];

voidprocess()

floata,b,s;

a=b=s=data[0];

for(inti=1;

{

s+=data[i];

if(a<

data[i])

a=data[i];

if(b>

b=data[i];

}

max=a;

min=b;

average=s/10;

voidprint()

cout<

max="

max<

min="

min<

average="

average<

ofstreamfout("

myf1.txt"

);

if(!

fout)

cout<

Cannotopenthefilemyf1.txt."

return;

fout<

fout.close();

floata[10];

scanf("

%f"

a+i);

ARRAYarr(a);

arr.process();

arr.print();

string>

classSTRING

charstr1[80];

charstr2[40];

STRING(char*s1,char*s2)

inti;

for(i=0;

80;

str1[i]=0;

40;

str2[i]=0;

if(strlen(s1)<

40)

strcpy(str1,s1);

if(strlen(s2)<

strcpy(str2,s2);

inti,m,n;

m=strlen(str1);

n=strlen(str2);

for(i=m-1;

i>

=0;

i--)

str1[2*i]=str1[i];

n;

str1[2*i+1]=str2[i];

str1<

myf2.txt"

Cannotopenthefilemyf2.txt."

fout.close();

chars1[40],s2[40];

scanf("

%s%s"

s1,s2);

STRINGstr(s1,s2);

str.process();

str.print();

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

当前位置:首页 > 经管营销 > 生产经营管理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2