C++复习题Word下载.docx

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

C++复习题Word下载.docx

《C++复习题Word下载.docx》由会员分享,可在线阅读,更多相关《C++复习题Word下载.docx(12页珍藏版)》请在冰豆网上搜索。

C++复习题Word下载.docx

下面运算符中,不能被重载的运算符是)16.(

[]D.B.-C.?

:

A.<

=

(以下不属于面向对象的程序设计语言的是)17.

D.CC.JavaA.C#B.C++

()中运算符重载的描述中,错误的是下列关于C++18.A.运算符重载是对已有的运算符赋予多重含义重载的运算符,其运算对象可以是自定义的数据类型B.C.编译系统对重载运算符的选择,遵循函数模板的选择原则运算符的重载实质上是函数的重载D.

p

p所指对象的值为5,p+1所指对象的值为8,则执行“(*p)++;

”语句后,19.假定所指对象的值为()D.8A.6C.5B.9

)20.运算符重载时不需要保持的性质是(

结合性D.操作数个数B.操作数类型C.优先级A.

)已有定义:

挠慨?

猪牴尽扡摣;

则下面语句正确的是(21.C.charc=str[0];

B.str[1]='

b'

;

A.str[0]=a;

瑳?

硜穹屷);

则下列语句中能正确表示引用的是(22.已知:

intk=6D.int&

x=&

k;

B.int&

x=kA.intx=k;

C.int&

x=6;

下列虚基类的声明中,正确的是23.)(virtualpublicAA.classB:

publicA:

B.classvirtualB

publicAC.virtualclassB:

publicAvirtualD.classB:

int已有定义virtual24.)(下面关于该函数的解释中正确的是area()=0;

0B.A.该函数是纯虚函数该函数返回值为

该函数的入口地址为C.该函数通常在派生函数中声明D.0

作为类的成员函数重载一个运算符时,如果参数表为空,通常情况下,说明该运算25.(符有个操作数)

D.3B.1A.0C.2

(的说明中,不正确的是下面关于cin.eof())26.

的成员函数A.结束输入B.cin

有关EOFD.检测流状态是否结束C.与

上不同,但函数名称相同。

重载函数在或27.

的引用,则所使用的定义语为k若要把变量s定义为短整型变量。

28.

的语句是:

a已有定义constinta=5;

则要定义一个常指针指向该变量29.常对象中的数据成员必须通过_________函数才可以访问。

30.

对象将其大部分实现细节隐藏起来,这种机制称为31.

中,专门用于定义重载运算符的关键字是C++。

32.

__________用于存贮当前被调用的成员函数所在对象的起始地址的指针是33.

来修饰。

________如果希望类的成员为该类所有对象所共享,可以使用关键字34.

C++中,由继承而产生的新类,它的对象对同一个消息会作出不同的响应,这种在35.。

特性被称为

已有类36.A则定义一个指针指向该函数的定义,其中有成员函数intget_a(){returna;

}。

的写法为

37.假定类中没有构造函数,则系统默认的构造函数形式是A

和。

多重继承消除二义性的通用性方法有38.

39.classw{staticchara;

chary[2];

intx;

doublefun(inta){x=a;

return0;

}

};

则sizeof(w)的值为。

从系统实现角度看,C++中的动态多态性是通过来实现的。

40.

语句cout<

<

x<

endl;

中“<

称”为运算符。

41.

在C++中,用户管理文件的I/O操作需要头文件<

42.

在C++中,用于动态分配内存的运算符是。

43.

函数为对象分配内存空间,并可对类的数据成在类的定义中,通常用44.

员进行初始化。

在C++中,继承间接共同基类时只保留一份成员的方法是。

45.

'

现有如下定义:

intx='

B'

+2;

chary=x>

='

9'

C'

'

S'

则y是'

46.47.假设类X的对象x是类Y的成员对象,则“YObj;

”语句执行时,先调用类__________

的构造函数,再调用类__________的构造函数;

而在程序结束析构时,先调用类__________的析构函数,再调用类__________的析构函数。

对象的概念中,有静态和动态两种特征,其中静态特征称为,可由数48.

表示。

据表示,而动态特征称为行为,可由

继承关系可以是public、和private。

49.

50.常数据成员只能通过构造函数的初始化表初始化。

51.类所占空间为数据成员和成员函数所占空间之和。

52.档牡?

慜换層;

执行str[0]='

s'

语句后,字符串变为?

獜换層。

53.类的析构函数在删除对象时调用,并可以重载。

54.构造函数不能声明为虚函数,而析构函数可以声明为虚函数。

55.用来存放对象地址的指针变量,可称为指向对象的指针。

56.字符串CDU的长度是3,因此占用了3个字节的内存空间。

57.多重继承出现的二义性可以用作用域限定的方法消除。

58.<

运算符可以被重载,且可以提升优先级。

59.无论何种继承形式,派生类均不能直接访问基类的私有成员。

60.C++中,定义类的关键字是public。

61.抽象类定义的目的是用它作为基类去建立派生类。

62.常对象中的数据成员就是常数据成员。

63.对象基本特点有耦合性、多态性、继承性和封装性。

64.对象的赋值和复制是同一个含义,均是由对象1得到对象2。

65.构造函数有返回值,而析构函数没有返回值。

66.类定义的公用数据成员x,在类外可以直接赋值,如x=5;

67.若想输出时,数据靠右,并指定字段宽度为6,可用控制符setw(6)。

68.不出现类名,也可以直接定义对象。

69.下面程序中有一处错误,请用下划横线标出错误所在行并说明出错原因。

floata(intx,inty){floatz;

z=x+y;

returnz;

}inta(floatx,floaty){intz;

z=x-y;

returnz;

}

intmain()

{

inti=3;

floatj=3.5;

cout<

a(i,j);

a(3,3.5);

}出错原因:

70.阅读程序,在横线处填上适当字句。

#include<

iostream>

string>

usingnamespacestd;

声明一个类模板,虚拟类型名为//typeclassA{typex,y;

public:

A(typea,typeb){x=a;

y=b;

}x+ytypecmp(){return();

}};

intmain(){A<

int>

cp1(6.6,3.6);

cp2(

);

Acout<

cp1.cmp()<

\t'

cp2.cmp();

}

输出结果为:

71.请在下划横线处填写程序的输出结果。

classPoint{intx,y;

Point(intx1=5,inty1=6){x=x1;

y=y1;

~Point(){cout<

y<

isdeleted.<

}voidmain(){a;

Pointb(8,8);

Point

}:

输出结果为

72.阅读程序,在下划横线处填写适当字句。

classA{chara;

shortb;

voidout(){a=20;

b=40;

char*p;

p=&

cout<

a=<

(short)(*p++)<

=<

endl;

}};

intmain(){Atest;

test.out();

<

cout<

hesizeoftestis:

}a=20b=40输出结果为:

thesizeoftestis:

73.请在下划横线处填写程序的输出结果。

voidmain()

inty=9;

for(;

y>

0;

y--)if(y%3==0)cout<

y--;

}输出结果为:

74.阅读程序,在下划横线处填写适当字句。

classA{

a;

intconst

staticintb;

a

x初始化数据成员//构造函数,用变量intget_a()const{returna;

a+b;

}intget_a(){return

b//用常数333初始化数据成员

intmain(){

Atest2(222);

constAtest1(111);

test1.get_a()<

test2.get_a()<

75.阅读程序,在下划横线处填写适当字句。

classA{protected:

inta;

A(){a=1;

classB1:

publicA{public:

B1(){}};

classB2:

B2(){}};

classC:

//CB1和B2公有派生类由直接基类{public:

Derived(){}b){voidInit(int;

a成员的赋给基类B1//b}};

76.下面程序中有一处错误,请用下横线标出错误所在行并说明出错原因。

classbase{public:

};

classOne:

publicbase{};

classTwo:

classOT:

publicOne,public

Two{public:

intfunc();

voidmain()

{OTp;

p.base:

x;

77.C++语言中,构造一个派生类需要做哪些工作?

78.假定有一个类,名称为A,有1个字符型的数据成员c和1个整形数据成员x。

请写出该类的至少2个不同的构造函数形式。

79.分别用new和malloc()分配一个有5个元素的整形数组,名称为a。

80.完成一个求圆面积的小程序,要求如下:

,从它派生一个圆)(公有或保护,包括x坐标和y坐标①定义一个基类:

点类(Dot)

r(半径);

,增加私有数据成员类(Circle)

、计算并返回(input)②圆类的函数成员包括构造函数、输入圆心坐标及圆半径的函数;

面积的函数(area)

函数为数据成员赋值,圆心,通过构造函数或input③主函数中生成一个圆类对象crc计算面积,主函数输出结果。

的函数成员(6,6),半径为5。

使用对象crcarea坐标为

编写类的定义,完成如下要求:

81.

姓名和性别;

(字符串使用字符数组形式)①定义一个People类,它的数据成员有年龄、;

②以People类为基类,从中派生出学生类Student

类中,新增一个数据成员为高数成绩;

④③在Student

类构造函数实现;

Student所有数据成员的输入由

类有一成员函数为输出函数,用于输出所有数据成员;

⑤Student⑥主函数用自己的信息定义一个学生对象,并输出该信息。

1、下列属于标准输出流对象的是()A.cinB.printfC.cerrD.out

2、设有语句charstr[20];

cin>

str;

若从键盘输入helloChengDu!

CR>

,则输出结果为()B.helloChengDu!

A.helloChengDu!

D.helloChengDuC.hello

3、以下输出语句中,不能实现换行功能的是()A.cout<

B.cout<

\

C.printf(endl);

D.cout<

\n'

4、请将下述代码填写完整,使得输出结果为100.03.142

20.556,即最多保留3位小数,上下行小数点对齐。

floata=100,b=3.14159,c=20.556;

setprecision(?

)<

setw(8)<

a<

endl<

setprecision()?

setw(?

b<

endl

setw(?

c<

5、排序算法有哪些?

1、程序的循环结构有几种?

2、下面函数中默认参数的定义哪些是对的?

voida(intx=0,inty=1,intz=2);

voida(intx,inty=1,intz=2);

voida(intx=0,inty,intz=2);

voida(intx=0,inty=1,intz);

3、已知有intf1(inta),f2(int*p),f3(int&

//函数声明在主函数调用这些子函数时,实参分别是什么形式?

已知主函数有定义intx=5,*y=&

4、若有inti;

int&

j=i;

i=5;

j=++++i-j;

则i=;

j=。

j;

-j=i++++若是

5、设有数组定义chararray[]=”C++程序设计”;

,则数组array所占的空间为多少字节。

6、下面的代码段有什么问题?

如何解决?

voidtest(char*str1){

charstring[10];

if(strlen(str1)<

=10){strcpy(string,str1);

j;

若是j=i++++-

voidtest(char*str1){charstring[10];

=10){

strcpy(string,str1);

}}

1、下列语句中,能实现字符串复制的语句是()A.stringstr1=hello,str2=world!

str1=str2;

B.char*str1=hello,*str2=world!

strcpy(str1,str2);

C.charstr1[]=hello,str2[]=world!

D.char*str1=newchar[10],*str2=HelloWorld!

strcpy(str1,str2);

2、假定A为一个类,a为该类私有的数据成员,Get()为该类公有的函数成员,它返回a的值。

()的语句为a,则得到t对象中数据成员At;

现有如下语句A.t.Get();

D.t->

C.t.a;

B.t->

Get();

3、阅读程序,在对应序号处填上适当字句。

usingnamespacestd;

chara;

shortb;

public:

voidout(){a=20;

cout<

(1)<

{

test;

Atest.out();

(2)<

return0;

}a=20输出结果为:

b=40

(3)thesizeoftestis:

(1)//使用指针

(2)

(3)

4、简要阐述结构体与类的异同。

答:

()、下面关于友元的说法,不正确的是1

B.友元类的函数均是友元函数A.友元函数可以是成员函数D.友元的关系是双向的友元不具备传递性C.

2、下列关于函数模板与类模板的描述中,不正确的是()

A.函数模板的实例化是由编译程序在处理函数调用时自动完成

B.类模板的实例化必须由程序员在程序中显式的指定C.函数模板与类模板均可以显式调用

定义函数模板时可以使用多个类型参数,而类模板不可以D.

#include<

Stu{class

i;

int

j){i=j;

}Stu(int

//函数fun()的声明

(1)

}test(111.1);

//函数fun()的定义intfun(

(2)){returnx.i;

}

main(){int

//输出对象test的数据成员i的值<

(3)

return0

(4)

friendintfun(constStu&

);

(1)constStu&

x

(2)fun(test);

(3)111

4、判断

1得到对象2(1。

)对象的赋值和复制是同一个含义,均是由对象

A也是类C的友元。

(2)类A是类B的友元,而类B又是类C的友元,则类

(3)静态成员函数可以有返回值,但是一定不能有this指针。

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

当前位置:首页 > 幼儿教育 > 唐诗宋词

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

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