好文档 - 专业文书写作范文服务资料分享网站

c++期末考试判断题+填空题

天下 分享 时间: 加入收藏 我要投稿 点赞

判断题

1、对空指针不能用delete运算符。(错误)

2、对重载的函数,要求函数类型相同但参数不同。(错误) 3、任何一个对象只能属于一个具体的类。(正确) 4、用new运算符来创建对象时不会调用构造函数。(错误) 5、对重载的函数,要求参数不同或函数类型不同。(错误)

6、在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。(错误) 7、析构函数可以是虚函数。(正确)

8、无论什么方式的继承,基类的私有成员都不能被派生类访问。(正确)

9、要达到动态联编的效果,基类和派生类的对应函数不仅名字相同,而且返回类型、参数个数和类型也必须相同。(正确)

10、如果派生类没有实现虚函数,那么它将使用他的基类的虚函数。(正确) 11、构造函数可以是虚函数。(错误)

12、指向对象数组的指针不一定必须指向数组的首指针。(正确) 13、对象数组的元素可以是不同类的对象。(错误) 14、对象数组可以赋初值又可以赋值。(错误)

15、一个类的构造函数可以不包含对其子对象的初始化。(错误) 16、在C++中,既允许单继承,又允许多继承。(正确) 17、派生类从基类派生出来,它不能生成新的派生类。(错误) 18、派生类的继承方式只有2种:公有继承和私有继承。(错误) 19、在公有继承中,基类的成员在派生类中都可以直接使用。(错误) 20、在单继承中,派生类中对基类成员的访问也会出现二义性。(错误) 21、解决多继承下二义性问题的方法之一是使用作用域运算符。(正确) 22、作用域运算符(::)只能用来限定成员函数所属的类。(错误) 注:还限制成员变量所属的类。

23、析构函数是一种函数体为空的成员函数。(错误) 24、构造函数和析构函数都不能重载。(错误) 注:构造函数可以重载,析构函数不可以重载(因为析构函数无参数,不可能进行参数区分)。 25、说明或定义对象时,类名前面不需要加class关键字。(正确) 26、对象成员的表示与结构变量成员表示相同,使用运算符.或->。(正确) 27.所谓私有成员是指只有类中所提供的成员函数才能直接使用它们,任何类以外的函数对它们的访问都是非法的。(错误)注:私有成员还可以被友元访问。

28、某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。(正确) 29、可以在类的构造函数中对静态数据成员进行初始化。(错误)

注:静态数据成员属于类而不管是否存在该类的对象,只有创建对象才会调用构造函数,所以静态成员不应该在构造函数中初始。

30、如果一个成员函数只存取一个类的静态数据成员,则可将该成员函数说明为静态成员函数。(正确)注:一般情况,静态成员函数不能访问类的非静态成员;非静态成员函数可访问类任何成员。

31、使用关键字class定义的类中缺省的访问权限是私有(private)的。(正确)

32、已知:m是类A的对象,n是类A的公有数据成员,p是指向类A中n成员的指针。下述两种表示是等价的:m.n和m.*p (正确)

33、指向对象的指针与对象都可以作函数参数,但是使用前者比后者好些。(正确)

34、对象引用作函数参数比用对象指针更方便些。(正确)注:不需要间接访问 35、对象数组的元素可以是不同类的对象。(错误) 36、对象数组既可以赋初值又可以赋值。(正确)

37、指向对象数组的指针不一定必须指向数组的首元素。(正确)注:指针可以移动。 38、一维对象指针数组的每个元素应该是某个类的对象的地址值。(正确) 39、const char* p说明了p是指向字符串的常量指针。(错误)注:p是指向字符串常量的指针-正确。

40、一个类的构造函数中可以不包含对其子对象的初始化。(正确)

注:形式上可以,但本质会调用缺省构造函数对子对象进行初始化。本题有二义性。 41、转换函数不是成员函数,它是用来进行强制类型转换的。(错误) 42、指向对象的指针和指向类的成员的指针在表示形式上是不相同的。(正确) 43、C++语言中,既允许单继承,又允许多继承。(正确) 44、派生类是从基类派生出来,它不能再生成新的派生类。(错误) 45、派生类的继承方式有两种:公有继承和私有继承。(错误)//还有保护继承 45、在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。(错误) 注:基类中的公有成员和保护成员在派生类中都是可见的,基类私有成员在派生类中不可见。 47、在公有继承中,基类中只有公有成员对派生类对象是可见的。(正确)

48、在私有继承中,基类中只有公有成员对派生类是可见的。//保护成员也可见(错误) 49、在私有继承中,基类中所有成员对派生类的对象都是不可见的。(正确) 注:基类成员public,protected成员都变成派生类private成员了。

50、在保护继承中,对于垂直访问同于公有继承,而对于水平访问同于私有继承。(正确) 51、派生类是它的基类的组合。(错误)//不仅是组合,更重要的是扩充和完善 52、构造函数可以被继承。(错误) 53、析构函数不能被继承。(正确)注:构造函数、析构函数都不能继承。 54、子类型是不可逆的。(正确)

55、只要是类M继承了类N,就可以说类M是类N的子类型。(错误)//公有继承 56、如果A类型是B类型的子类型,则A类型必然适应于B类型。(正确)

57、多继承情况下,派生类的构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序。(正确)

58、单继承情况下,派生类中对基类成员的访问也会出现二义性。(错误) 59、解决多继承情况下出现的二义性的方法之一是使用成员名限定法。(正确)注:严格讲“作用域限定”。

60、虚基类是用来解决多继承中公共基类在派生类中只产生一个基类子对象的问题。(错误)注:“多个”

61、函数的参数个数和类型都相同,只是返回值不同,这不是重载函数。(正确) 62、重载函数可以带有缺省值参数,但是要注意二义性。(正确) 63、多数运算符可以重载,个别运算符不能重载,运算符重载是通过函数定义实现的。(正确) 64、对每个可重载的运算符来讲,它既可以重载为友元函数,又可以重载为成员函数,还可以重载为非成员函数。(错误)//“可以重载为非成员函数”不确切。

65、对单目运算符重载为友元函数时,说明一个形参;重载为成员函数时,不能显式说明形参。(错误)

注:前面描述对的。此题不全面,应该是“重载为成员函数时,除了后置++、--,不能显式说明形参。本题一般理解也可以按上面描述,此题考试不扣分。

66、重载运算符保持原运算符的优先级和结合性不变。(正确) 67、虚函数是用virtual关键字说明的成员函数。(正确) 68、构造函数说明为纯虚函数是没有意义的。(正确) 69、抽象类是指一些没有说明对象的类。(错误)//抽象类是指一些“不能”说明对象的类。 70、动态联编是在运行时选定调用的成员函数的。(正确)

1. 重载流操作符<<和>> 时,如果第一个参数的类型为ostream 和istream,那么这个重载函 数既可以用于标准输入输出流,也可以用于文件流上。

对,ostream 和istream是标准输入输出流、文件流、字符串流的基类

2. 在同一个类中,可以定义重载的成员函数 void f(int);和virtual void f(int); 。 错,这属于重复定义

3. 抽象类不会产生实例,所以不需要有构造函数。 错,被派生时需要它的构造函数 4. 类A有一个非静态的成员函数f,其函数原型是:void A::f( ) const,则该函数被调用时, 一定是通过类A或类A的某后裔类的一个用const修饰符说明的常量对象调用的。 错,常函数可以由变量对象或常量对象调用

5. 异常必须在其产生的当前函数中捕获,而不能在外层函数中捕获该异常。 错,可以在外层捕获,并且这是最常见的用法

6. 只要程序中没有A a1 = a2; 和A a1(a2); 形式的代码,类A的拷贝构造函数就不会被调 用。

错,参数传递或函数返回时也调用拷贝构造函数

7. 在protected继承方式下,派生类对象的指针不能直接转换成指向基类对象的指针。 对,否则基类中的公有成员由不可见变为可见,权限被放大

8. 若静态成员函数中调用了一个函数f,那么f 一定不是虚函数。 对,静态成员函数不能是虚函数,因为虚函数入口需要在保存在对象中的虚函数 表中,而静态成员函数不属于对象。 9. 若要实例化一个含有引用型数据成员的类,那么只能使用构造函数初始化列表来初始化该 数据成员。

对,没有别的办法

10. 构造函数的函数体中,不能使用return语句;但在实现该类的自动类型转化函数时,必须 有return 语句。 对

1、C++中标识符的大小写字母是没有区别的。 (F) 2、C++是一种以编译方式实现的高级语言。 (T) 3、在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。 ( F) 4、在私有继承中,基类中所有成员对派生类都是不可见的。 ( F) 5、返回值类型、参数个数和类型都相同的函数也可以重载。 (F)

6、使用关键字class定义的类中缺省的访问权限是私有(private)的。 (T) 7、类的私有成员只能被类中的成员函数访问,任何类以外的函数对它们的访问都是非法的。(F) ) 8、C++中使用了新的注释符(//),C语言中注释符(/*…*/)不能在C++中使用。 ( F) 9、While循环语句的循环体至少执行一次。 ( F) 10、引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。 (T ) 11、类封装了数据和操作。 ( T )

12、在类的定义中,必须包含private、public、protected三种存取方式对应的部分。

( F )

13、类中的数据成员不能为指针类型。 ( F ) 14、析构函数可以有形参。 (T )

15、派生类至少有一个基类。 (T )

16、在公有和保护继承方式下,派生类的对象可以对基类的保护成员进行访问。 ( T )

17、全局函数和静态成员函数也能声明为虚函数。 (F ) 18、在一个类的对象空间里不包含静态成员的空间。 ( T )

19、友元本身就是类的成员。 ( T ) 20、运算符重载后,原运算符的优先级和结合特性会改变。 ( F ) 21、一个类只能有一个对象。 ( F) 22、在类中不能对所定义的数据成员进行初始化。 ( T )

23、类的公有成员函数是类与外界的接口。 ( T ) 24、构造函数没有函数类型。 ( T )

25、在派生类的构造函数的初始化表中不能对包含基类的子对象初始化。

( T )

26、在公有和保护继承方式下,派生类的成员可以对基类的保护成员进行访问。

( F )

27、只有类的成员函数才能声明为虚函数。 ( T ) 28、在一个类的对象空间里已经包含了静态成员的空间。 (F )

29、C++不允许将构造函数、析构函数和虚函数声明为友元函数。( T ) 30、运算符重载后,原运算符的优先级和结合特性不会改变。 ( T )

31. C++中使用了新的注释符(//),C语言中注释符(/*…*/)不能在C++中使用。 ( F) 32. 数组赋初值时,初始值表中的数据项的数目可以大于或等于数组元素的个数。 ( F) 33. 隐含的类型转换都是保值映射,显式的类型转换都是非保值映射。 ( F) 34. 宏定义命令是以分号结束的。 ( F) 35. While循环语句的循环体至少执行一次。 ( F) 36. 返回值类型、参数个数和类型都相同的函数也可以重载。 ( F) 37. 函数形参的作用域是该函数的函数体。 ( T) 38. 静态类标识符在它的作用域之外是不存在的。 ( F) 39. 对象成员的表示与结构变量成员表示相同,使用运算符.或->。 (T ) 40. 某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。 (T ) 41. 对象数组的元素可以是不同类的对象。 ( T) 42. const char *p说明了p是指向字符串的常量指针。 (F ) 43、引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。( F) 44、无论是私有继承还是保护继承中,基类中所有成员对派生类对象都是不可见的。(T )

45、当break语句用在双重循环的循环中时,它只能退出循环到外循环中去,而不能直出整个双重循环。 ( T) 46、

For循环是只有可以确定的循环次数时才可使用,否则不能用for循环。 (F )

47、返回值类型、参数个数和参数类型都相同的函数也可以重载。 ( F) 48、通常的拷贝初始化函数的参数是某个对象的成员名或对象的引用名。 (T ) 49、友元函数是类的成员函数,所以可以存取或修改该类中的私有成员。 ( F)

50、已知:类A中一个成员函数说明如下:void Set(A&a);其中A &a的含意是将a的地给变量Set。 (F )

51、在语句const char *ptr中, ptr是指向字符串的常量指针。 ( F)

52、多继承情况下,派生类的构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序,而与派生类构造函数中所定义的成员初始化列表的各项顺序无关。 ( T)

c++期末考试判断题+填空题

判断题1、对空指针不能用delete运算符。(错误)2、对重载的函数,要求函数类型相同但参数不同。(错误)3、任何一个对象只能属于一个具体的类。(正确)4、用new运算符来创建对象时不会调用构造函数。(错误)5、对重载的函数,要求参数不同或函数类型不同。(错误)6、在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。(
推荐度:
点击下载文档文档为doc格式
7p6re7czkn58u602x74s2b61z97lf1017gw
领取福利

微信扫码领取福利

微信扫码分享