C++考试模拟练习三.docx

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

C++考试模拟练习三.docx

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

C++考试模拟练习三.docx

C++考试模拟练习三

C++模拟练习三

一、填空题

1、多态性分为二种:

静态多态性和动态多态性,函数重载属于二种多态性中的哪一种:

___①___。

2、___②___是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。

3、已知:

类A中一个成员函数说明如下:

voidSet(A&a);

其中A&a的含义是___③___。

4、类中允许有三种___④___、private、protected类型的成员。

5、类中的数据成员和成员函数默认类型为___⑤___。

6、一个类可以有___⑥___个析构函数。

7、在C++中,函数参数的传递方式有三种,分别是:

值传递、地址传递和___⑦___。

8、一个类的友员函数可以访问该类的___⑧___成员。

9、当一个类的非静态成员函数被调用时,该成员函数的___⑨___指向调用它的对象。

10、使用成员函数对双目运算符进行重载时,其左操作数应该是___⑩___。

二、单选题

1、已知函数f的原型是:

voidf(int*x,long&y);并有如下定义:

inta;longb;则正确的调用语句是____?

____。

A.f(a,b);B.f(&a,b);

C.f(a,&b);D.f(&a,&b);

2、C++对C语言做了很多改进,下列描述中____?

____使得C语言发生了质变,即从面向过程变成了面向对象的程序设计。

A.增加了一些新的运算符

B.允许函数重载,并允许设置默认参数

C.规定函数说明必须用原型

D.引进了类和对象的概念

3、在C++中,关于下列设置参数默认值的描述中,正确的是____?

____。

A.不允许设置参数的默认值

B.设置参数默认值只能在定义函数时设置

C.设置参数默认值时,应该先设置右边的再设置左边的

D.设置参数默认值时,应该全部参数都设置

4、有关类和对象说法不正确的是____?

____。

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

usingnamespacestd;

chara[]=”ABCDEFGHI”;

char&f(int);

voidmain()

{f(6)=’X’;cout<

}

char&f(inti){returna[i];

}

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

(2)____和____(3)____。

#include

usingnamespacestd;

classL{

protected:

intx;

public:

L(inta){x=a;}

};

classX:

publicL{

public:

X(inta):

L(a){};

intGetX(){returnx;};

};

classY:

publicL{

public:

Y(inta):

L(a){};

intGetX(){returnx;}

};

classZ:

publicX,publicY{

public:

Z(inta):

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

};

voidmain()

{Zz(10);

cout<

:

GetX()<

:

GetX()<

}

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

#include

usingnamespacestd;

classA{

public:

virtualvoidprint(){cout<<’m’<<’n’<<’\n’;}

};

classB:

publicA{

public:

voidprint(){cout<<’o’<<’p’<<’\n’;}

};

voidmain()

{Bb;A*ap=&b;ap->print();

}

4、[程序]

#include

usingnamespacestd;

classSample

{private:

intx,y;

public:

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="<

};

voidmain()

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

c1.add();c1.disp();

c2.copy(c1);c2.add();c2.disp();

}

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

5、[程序]

#include

usingnamespacestd;

classA

{public:

A(inti,intj){a=i;b=j;}

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

voidshow(){cout<<"("<

private:

inta,b;

};

classB:

privateA

{public:

B(inti,intj,intk,intl):

A(i,j){x=k;y=l;}

voidshow(){cout<

voidfun(){move(3,5);}voidf1(){A:

:

show();}

private:

intx,y;

};

voidmain()

{Ae(1,2);e.show();

Bd(3,4,5,6);d.show();d.fun();d.f1();

}

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

6、[程序]

#include

usingnamespacestd;

classTAT{

staticintu;inty;

public:

TAT(intr=0){y=r;}

voiddisp(){

u*=2;y/=2;

cout<

}

};

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}。

类同地,

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

#include

____

(1)____;

classArr{

intx[10];

public:

Arr(){for(inti=0;i<10;i++)x[i]=0;}

Arr(int*p){for(inti=0;i<10;i++)x[i]=*p++;}

Arroperator+(Arra)

{Arrt;

for(inti=0;i<10;i++)t.x[i]=____

(2)____;

return____(3)____;

}

Arr&operator+=(Arra)

{for(inti=0;i<10;i++)x[i]=____(4)____;

return____(5)____;

}

voidShow(){for(inti=0;i<10;i++)cout<

};

voidmain()

{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;ar1.Show();

}

五、编程题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);初始化成员数据

●voidprocess();将字符串str2插入到字符串str1中

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

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

参考答案

一、填空题

空号

答案

静态多态性

纯虚函数

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

public

私有(或private)

1

引用传递

所有

this指针

该类的一个对象

二、单选题

题号

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

答案

B

D

C

C

D

C

C

C

C

C

D

A

D

B

A

三、读程题

题号

空格号

答案

1

(1)

ABCDEFXHI

2

(2)

20

2

(3)

30

3

(4)

o

3

(5)

p

4

(6)

x=11

4

(7)

y=21

4

(8)

x=12

4

(9)

y=22

5

(10)

(1,2)

5

(11)

5,6

5

(12)

(6,9)

6

(13)

168

6

(14)

325

6

(15)

640

四、程序填空题

空格号

答案

usingnamespacestd

x[i]+a.x[i]

t

x[i]+a.x[i]

*this

五、编程题1

[程序]

#include

#include

usingnamespacestd;

classARRAY

{

private:

floatdata[10];

floatmax;

floatmin;

floataverage;

public:

ARRAY(floata[10])

{

for(inti=0;i<10;i++)

data[i]=a[i];

}

voidprocess()

{

floata,b,s;

a=b=s=data[0];

for(inti=1;i<10;i++)

{

s+=data[i];

if(a

a=data[i];

if(b>data[i])

b=data[i];

}

max=a;

min=b;

average=s/10;

}

voidprint()

{

cout<<"max="<

cout<<"min="<

cout<<"average="<

ofstreamfout("myf1.txt");

if(!

fout)

{

cout<<"Cannotopenthefilemyf1.txt."<

return;

}

fout<<"max="<

fout<<"min="<

fout<<"average="<

fout.close();

}

};

voidmain()

{

floata[10];

for(inti=0;i<10;i++)

scanf("%f",a+i);

ARRAYarr(a);

arr.process();

arr.print();

}

六、编程题2

[程序]

#include

#include

#include

usingnamespacestd;

classSTRING

{

private:

charstr1[80];

charstr2[40];

public:

STRING(char*s1,char*s2)

{

inti;

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

str1[i]=0;

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

str2[i]=0;

if(strlen(s1)<40)

strcpy(str1,s1);

if(strlen(s2)<40)

strcpy(str2,s2);

}

voidprocess()

{

inti,m,n;

m=strlen(str1);

n=strlen(str2);

for(i=m-1;i>=0;i--)

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

for(i=0;i

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

}

voidprint()

{

cout<

ofstreamfout("myf2.txt");

if(!

fout)

{

cout<<"Cannotopenthefilemyf2.txt."<

return;

}

fout<

fout.close();

}

};

voidmain()

{

chars1[40],s2[40];

scanf("%s%s",s1,s2);

STRINGstr(s1,s2);

str.process();

str.print();

}

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

当前位置:首页 > 医药卫生 > 基础医学

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

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