学年第二学期C++程序设计期末复习提纲副本.docx

上传人:b****7 文档编号:25121313 上传时间:2023-06-05 格式:DOCX 页数:61 大小:44.68KB
下载 相关 举报
学年第二学期C++程序设计期末复习提纲副本.docx_第1页
第1页 / 共61页
学年第二学期C++程序设计期末复习提纲副本.docx_第2页
第2页 / 共61页
学年第二学期C++程序设计期末复习提纲副本.docx_第3页
第3页 / 共61页
学年第二学期C++程序设计期末复习提纲副本.docx_第4页
第4页 / 共61页
学年第二学期C++程序设计期末复习提纲副本.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

学年第二学期C++程序设计期末复习提纲副本.docx

《学年第二学期C++程序设计期末复习提纲副本.docx》由会员分享,可在线阅读,更多相关《学年第二学期C++程序设计期末复习提纲副本.docx(61页珍藏版)》请在冰豆网上搜索。

学年第二学期C++程序设计期末复习提纲副本.docx

学年第二学期C++程序设计期末复习提纲副本

一、选择题

1.下列关于对象的描述中,错误的是___________。

A.对象是类的别名B.对象是类的实例C.一个类可以定义多个对象D.对象之间通过消息进行通信

2.在对字符数组进行初始化时,___________是正确的。

A.chars1[]=”abcd”;B.chars2[3]=”xyz”;

C.chars3[][3]={“abc”,“x”,“y”};D.chars4[2][3]={”xyz”,”mnp”};

3.联合成员的地址值和所占的字节数___________。

A.都相同B.都不同C.前者相同,后者不同D.前者不同,后者相同

4.文件包含命令中被包含的文件的扩展名___________。

A.必须为.hB.不能用.hC.必须是.cD.不一定是.h

5.下列while循环的次数是___________。

while(inti=0)i--;

A.0B.1C.5D.无限

6.在函数说明中,下列___________项是不必要的。

A.函数的类型B.函数参数类型和名字C.函数名字D.返回值表达式

7.在传值调用中,要求___________。

A.形参和实参类型任意,个数相等

B.实参和形参类型必须一致,个数相等

C.实参和形参类型必须相同,实参个数可以比形参少

D.实参和形参的类型要满足赋值兼容规则,实参个数可以比形参个数少(当形参带默认值时)

8.在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用_____比较合适。

A.内联函数B.重载函数C.递归调用D.嵌套调用

9.下列有关对函数模板参数的描述,错误的是___________。

A.函数模板是一组函数的样板B.函数模板是定义重载函数的一种工具

C.模板函数是函数模板的一个实例D.模板函数在编译时不生成可执行代码

10.下列各种函数中,___________不是类的成员函数。

A.构造函数B.析构函数C.友元函数D.复制构造函数

11.___________不是构造函数的特征。

A.构造函数的函数名与类名相同B.构造函数可以重载

C.构造函数可以设置默认参数D.构造函数必须指定类型说明

12.下述静态数据成员的特性中,___________是错误的。

A.说明静态数据成员时前边要加修饰符staticB.静态数据成员要在类体外进行初始化

C.引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符

D.静态数据成员不是所有对象所共用的

13.关于delete运算符的下列描述中,___________是错误的。

A.它必须用于new返回的指针B.它也适用于空指针

C.对一个指针可以使用多次该运算符D.指针名前只用一对方括号符,不管所删除数组的维数

14.派生类的构造函数的成员初始化值表中,不能包含___________。

A.基类的构造函数B.派生类中子对象的初始化

C.派生类中静态数据成员的初始化D.派生类中一般数据成员的初始化

15.下列运算符中,在C++语言中不能重载的是_______________。

A.*B.>=C.:

:

D./

16.下列关于面向对象语言的基本要素的描述中,正确的是___________。

A.封装性和重载性B.多态性和继承性C.继承性和聚合性D.封装性和继承性

17.在intb[][3]={{1},{3,2},{4,5,6},{0}};中b[2][2]的值是___________。

A.0B.5C.6D.2

18.下列各运算符中,___________运算的结合性是从左到右。

A.?

B.=C.>D.sizeof

19.预处理命令在程序中都是以___________开头的

A.*B.#C.:

D./

20.下列for循环的次数为___________。

for(inti(0),x=0;!

x&&i<=5;i++);

A.5B.6C.1D.无限

21.当一个函数无返回值时,定义它时函数的类型应是___________。

A.voidB.任意C.intD.无

22.下列描述中___________是引用调用。

A.形参是指针,实参是地址值B.形参和实参都是变量

C.形参是数组名,实参是数组名D.形参是引用,实参是变量

23.重载函数在调用时选择的依据中,___________是错误的。

A.参数个数B.参数的类型C.参数的顺序D.函数的类型

24.定义函数模板使用的关键字是___________。

A.classB.inlineC.templateD.operator

25.下列关键字中,用来说明类中公有成员的是___________。

A.publicB.privateC.protectedD.friend

26.___________是不可以作为该类的成员的。

A.自身类对象的指针B.自身类的对象C.自身类对象的引用D.另一个类的对象

27.通常复制构造函数的参数是_________。

A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名

28.关于new运算符的下列描述中,___________是错误的。

A.它可以用来动态创建对象和对象数组B.使用它创建的对象或对象数组,可以使用运算符delete删除

C.使用它创建对象时要调用构造函数D.使用它创建对象数组时必须指定初始值

29.派生类的对象对它的基类___________是可以访问的。

A.公有继承的公有成员B.公有继承的私有成员

C.公有继承的保护成员D.私有继承的公有成员

30.下列关于运算符重载的描述中,________是正确的。

A.运算符重载可以改变操作数的个数B.运算符重载可以改变优先级

C.运算符重载不可以改变语法结构D.运算符重载可以改变结合性

31.下面关于对象概念的描述中,___________是错误的。

A.对象代表着正在创建的系统中的一个实体B.对象之间的信息传递是通过消息进行的

C.对象是一个状态和操作(或方法)的封装体D.对象就是C语言中的结构体变量

32.用来表示指向结构体变量指针的成员的是___________运算符。

A..B.->C.>>D.<<

33.下列表示引用的方法中,___________是正确的。

已知:

intm=10;

A.int&x=m;B.int&y=10;C.float&t=&m;D.int&z;

34.带参数的宏定义中,程序中引用宏定义的实参___________。

A.只能是常量B.只能是整型量C.只能是整型表达式D.可以是任意表达式

35.下列do-while循环的循环次数为___________。

inti(5);do{cout<

=0);

A.0B.1C.5D.无限

36.在函数的返回值类型与返回值表达式的类型的描述中,___________是错误的。

A.函数返回值的类型是在定义函数时确定,在函数调用时是不能改变的

B.函数返回值的类型就是返回值表达式的类型

C.函数返回值表达式类型与函数返回值类型不同时,表达式类型应转换成函数返回值类型

D.函数返回值类型决定了返回值表达式的类型

37.在C++中,关于设置参数默认值的描述中,正确的是___________。

A.不允许设置参数的默认值B.设置参数默认值只能在定义函数时设置

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

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

38.采用函数重载的目的在于___________。

A.实现共享B.减少空间C.提高速度D.使用方便,提高可读性

39.已知函数模板定义如下:

template

Tmin(Tx,Ty){returnx

x:

y;}

在下列描述中,错误的是___________。

A.该函数模板有一个模板参数B.该函数模板生成的模板函数中,参数和返回值的类型必须相同

C.该函数模板生成的模板函数中,参数和返回值的类型可以不同

D.T类型所允许的类型范围应对运算符<操作有意义

40.作用域运算符的功能是___________。

A.标识作用域的级别B.指出作用域的范围C.给定作用域的大小D.标识某个成员属于哪个类

41.___________是析构函数的特征。

A.一个类中只能定义一个析构函数B.析构函数名与类名不同

C.析构函数的定义只能在类体内D.析构函数可以有一个或多个参数

42.友元的作用是__________。

A.增加成员函数的种类B.加强类的封装性C.实现数据的隐藏性D.提高程序的运行效率

43.下列关于类模板的描述中,___________是错误的。

A.类模板的成员函数可以是函数模板B.类模板生成模板类时,必须指定参数化所代表的具体类型

C.定义类模板时只允许有一个模板参数D.类模板所描述的是一组类

44.设置虚基类的目的是___________。

A.简化程序B.消除二义性C.提高运行效率D.减少目标代码

45.在C++中,要实现动态联编,必须使用_____________调用虚函数

A.类名B.派生类指针C.对象名D.基类指针

46.在一个C++程序文件中,main()函数的位置______________。

A)必须在开始B)必须在最后C)必须在系统调用库函数后D)可以任意

47.下列属于C++合法的字符常量是__________。

A)'\97'B)"A"C)'\t'D)"\0"

48.设intx=10,x+=3+x%(-3),则x=______。

A)14B)15C)11D)12

49.for(intx=0,y=0;!

x&&y<=5;y++)语句执行循环的次数是__________

A)0B)5C)6D)无数次

50.在C++中,要实现动态联编,必须使用_____________调用虚函数

A)类名B)派生类指针C)对象名D)基类指针

51.成员运算符obj1>obj2被C++编译器解释为_________。

A)operator>()B)>(obj1,obj2)

C)obj2.operator>(obj1)D)obj1.operator>(obj2)

52.在C++中,用于实现运行时多态性的是_______________。

A)内联函数B)虚函数C)模板函数D)重载函数

53.下列关于类和对象的叙述中,错误的是_______________。

A)一个类只能有一个对象B)对象是类的具体实例

C)类是对某一类对象的抽象D)类和对象的关系是一种数据类型与变量的关系

54.在下列函数原型中,可以作为类AA构造函数的是_______________。

A)voidAA(int);B)intAA();C)AA(int)const;D)AA(int);

55.对于语句cout<

A)“cout”是一个输出流对象B)“endl”的作用是输出回车换行

C)“<<”称作流提取运算符D)“x”是一个变量

56.下列关于this指针的叙述中,正确的是__________________。

A)任何与类相关的函数都有this指针B)类的非静态成员函数才有this指针

C)类的友元函数都有this指针D)类的成员函数都有this指针

57.下列运算符中,在C++语言中不能重载的是_______________

A)*B)>=C):

:

D)/

58.函数调用语句fun(a+b,3,max(n-1,b));中,实参的个数为_____________

A)3B)4C)5D)6

59.若有说明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;,则数值为9的表达式是_______。

A)*p+9B)*(p+8)C)*p+=9D)p+7

60.有关虚函数的说法不正确的是_______________。

A)只有类的成员函数才能说明为虚函数B)静态成员函数可以是虚函数

C)构造函数不能是虚函数D)析构函数可以是虚函数

61.逗号表达式a=4,b=6,a--,b--,a+b的值为_______________。

A)9B)8C)10D)6

62.下列运算符,不能重载为友元函数的是_______________。

A)=、()、[]、->B)+、-、++、--C)<、>、<=、>=D)+=、-=、*=、/=

63.表达式strcmp("box","boss")的值是_______________。

A)0B)正整数C)负整数D)不确定的数

64.编译预处理命令以_______________结尾。

A);B).C)\D)回车键

65.使用派生类的主要原因是_________。

A.提高程序的运行效率B.提高代码的可重用性C.加强类的封装性D.实现数据的隐藏

66.有关析构函数的说法不正确的是_________

A.析构函数有且只有一个B.析构函数无任何函数类型C.析构函数没有形参

D.析构函数的作用是在对象被撤消时收回先前分配的内存空间

67.友元的作用之一是__________。

A.提高程序的运行效率B.加强类的封装性C.实现数据的隐藏性D.增加成员函数的种类

68.通常拷贝构造函数的参数是__________。

A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名

69.如果在基类中将show声明为不带返回值的纯虚函数,正确的写法是________。

A.virtualshow()=0;B.virtualvoidshow();

C.virtualvoidshow()=0;D.voidshow=0virtual;

70.下面关于友元的描述中,错误的是_________。

A.友元函数可以访问该类的私有数据成员

B.一个类的友元类中的成员函数都是这个类的友元函数

C.友元可以提高程序的运行效率

D.类与类之间的友元关系可以继承

71.在C++中,_________运算符不能重载。

A.+B.?

C.-D.<=

72.下列关于运算符重载的描述中,________是正确的。

A.运算符重载可以改变操作数的个数B.运算符重载可以改变优先级

C.运算符重载可以改变结合性D.运算符重载不可以改变语法结构

73.能用友元函数重载的运算符是__________。

A.+B.=C.[]D.->

74.在声明类时,下面的说法正确的是_________。

A.可以在类的声明中给数据成员赋初值

B.数据成员的数据类型可以是register

C.private,public,protected可以按任意顺序出现

D.没有用private,public,protected定义的数据成员是公有成员

75.继承具有________,即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。

A.规律性B.传递性C.重复性D.多样性

76.在多重继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则___________。

A.完全相同B.完全不同C.部分相同,部分不同D.以上都不对

77.对虚函数的调用__________。

A.一定使用动态联编B.不一定使用动态联编C.一定使用静态联编D.必须使用动态联编

78.关于成员函数特征的下述描述中,_______是错误的。

A.成员函数一定是内置函数B.成员函数可以重载

C.成员函数可以设置参数的默认值D.成员函数可以是静态的

79.在C++中,打开一个文件就是将这个文件与一个________建立关联;关闭一个文件就取消这种关联。

A.类B.流C.对象D.结构

80.下列的各类函数中,_______不是类的成员函数。

A.构造函数B.析构函数C.友元函数D.拷贝构造函数

81.模板的使用是为了_________。

A.加强类的封装性B.提高代码的运行效率C.提高代码的可重用性D.实现多态性

82.下列表示引用的方法中,__________是正确的。

已知:

intm=10;

A.float&t=&m;B.int&y=10;C.int&z;D.int&x=m;

83.设置虚基类的目的是________。

A.简化程序B.消除二义性C.提高运行效率D.减少目标代码

84.对于类中定义的成员,其隐含访问权限为______________

A)publicB)privateC)staticD)protected

85.关于类和对象不正确的说法是__________

A)类是一种类型,它封装了数据和操作B)一个类的对象只有一个

C)对象是类的实例D)一个对象必属于某个类

86.声明一个类的对象时,系统自动调用一个函数;撤消对象之前,系统自动调用一个函数;该函数为______

A)成员函数;构造函数B)复制构造函数;析构函数

C)构造函数;析构函数D)析构函数;复制构造函数

87.当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的__________

A)private成员B)protected成员C)public成员D)友元

88.在C++中,要实现动态联编,必须使用_____________调用虚函数

A)类名B)派生类指针C)对象名D)基类指针

46.若一个类中含有纯虚函数,则该类称为__________________

A)抽象类B)纯基类C)派生类D)基类

89.当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式_______________

A)ios:

:

outB)ios:

:

inC)ios:

:

in|ios:

:

outD)ios:

:

binary

90.C++语言是从早期的C语言逐渐发展演变而来的,与C语言相比,它在求解问题方法上进行的最大改进是_______________

A)面向过程B)复用性C)安全性D)面向对象

91.下面有关重载函数的说法中正确的是_______________

A)重载函数必须具有不同的返回值类型;B)重载函数形参个数必须不同;

C)重载函数必须有不同的形参列表;D)重载函数名可以不同;

92.设置虚函数的目的是________________。

A)消除二义性B)简化代码C)提高运行效率D)减少目标代码

93.在C++语言程序中,对象之间的相互通信通过__________________

A)继承实现B)调用成员函数实现C)封装实现D)函数重载实现

94.考虑函数原型voidtest(inta,intb=7,charc=’*’),下面的函数调用中,属于不合法调用的是_______________

A)test(5)B)test(5,8)C)test(6,"#")D)test(0,0,’*’);

95.下面对友元函数描述正确的是_______________

A)友元函数的实现必须在类的内部定义B)友元函数是类的成员函数

C)友元函数破坏了类的封装性和隐藏性D)友元函数不能访问类的私有成员

96.下面叙述不正确的是________________

A)基类的保护成员在派生类中仍然是保护成员

B)基类的保护成员在公有派生类中仍然是保护成员

C)基类的保护成员在私有派生类中是私有成员

D)对基类成员的访问必须是无二义性

97.下面对静态数据成员的描述中,正确的是_______________

A)静态数据成员可以在类体内进行初始化B)静态数据成员不可以被类的对象调用

C)静态数据成员不能受private控制符的作用D)静态数据成员可以直接用类名调用

98.继承机制的作用是_______________

A)信息隐藏B)数据封装C)定义新类D)数据抽象

99.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是_______________

A)友元函数B)虚函数C)构造函数D)析构函数

100.下列关于虚基类的描述中,错误的是_______________

A)设置虚基类的目的是为了消除二义性;B)虚基类的构造函数在非虚基类之后调用;

C)若同一层包含多个虚基类,这些基类的构造函数按照它们的次序调用;

D)若虚基类由非基类派生而来,则仍然先调用基类构造函数,再用派生类的构造函数;

二、判断题

1.C++语言中,既允许单继承,又允许多重继承。

2.派生类是从基类派生出来,它还可以生成新的派生类。

3.派生类中至少包含了它的所有基类的成员(不包括构造函数和析构函数),在这些成员中可能有的是不可访问的。

4.虚函数是用virtual关键字说明的成员函数。

5.预处理过程是编译过程之前进行的。

6.共用体的所有成员共占同一段内存地址空间。

7.C++语言是一种以编译方式实现的高级语言。

8.运算符的优先级和结合性可以确定表达式的计算顺序。

9.switch语句可以嵌套,在switch语句的语句序列中还可以再有switch语句。

10.while循环语句的循环体可能一次也不执行

11.如果一个函数没有返回值,定义时需用void说明。

12.在设置了参数默认值后,调用函数的对应实参就可以省略。

13.C++语言中模板分为函数模板和类模板两种。

14.析构函数是一种没有返回值也没有参数的成员函数。

15.constchar*p;说明了p是指向字符串常量的指针变量。

16.C++语言规定对所有用到的变量要“先定义,后使用”。

17.向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为(即方法),这种现象称为多态性。

18.使用内联函数是以增大空间开销为代价的。

19.使几个不同的变量共占同一段内存的结构称为共用体。

20.指针变量一经赋值就指向了一个变量。

21.自增运算符(++)和自减运算符(--)只能用于变量。

22.派生类中继承的基类成员的访问权限取决于继承方式。

23.C++语言中模板分为函数模板和类模板两种。

24.构造函数和析构函数都不可以被继承。

25.将单目运算符重载为成员函数时,不需说明形参;将双目运算符重载为成员函数时,只能说明一个形参。

26.在对程序进行编译的过程中,不会发现注释中的拼写错误。

27.C++语言中的标识符严格区分大小写字母。

28.如果对静态存储类别的数值型变量未赋初值,则默认值为0。

29.break语句可以出现在任何一种循环语句中。

30.预处理过程是编译过程之前进行的。

31.C++程序中的静态存储类别变量和全局变量的初始化是在编译阶段完成的。

32.C++语言中规定:

函数返回值的数据类型是由定义函数时规定的数据类型所决定的。

33.在C++中,编译时的多态性是通过函数和运算符的重载实现的。

34.在C++语言中

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

当前位置:首页 > 初中教育 > 学科竞赛

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

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