西工大《面向对象程序设计(C++)》复试试题

阅读: 评论:0

2024年2月7日发(作者:)

西工大《面向对象程序设计(C++)》复试试题

面向对象程序设计(C++)

1.一个函数功能不太复杂,但要求被频繁调用,选用( )。

A.内联函数

B.重载函数

C.递归函数

D.嵌套函数

答案:A

2.在C++中,函数原型不能标识( )。

A.函数的返回类型

B.函数参数的个数

C.函数参数类型

D.函数的功能

答案:D

3.下面函数模板定义中不正确的是( )。

te

te

te

te

答案:A

4.在C++中把不返回任何类型的函数应该说明为(

1

)1

答案:C

5.若Sample类中的一个成员函数说明如下:

A.指向类Sample的名为a的指针

B.a是类Sample的对象引用,用来作函数Set()的形参

C.将a的地址赋给变量Set

D.变量Sample与a按位与的结果作为函数Set的参数

答案:B

6.与C语言printf("Hello,World\n");语句功能相同的C++语句是(>>"Hello,World\n"

<<"Hello,World\n"

>>"Hello,World\n"

<<"Hello,World\n"

答案:B

7.有关类的说法错误的是( )。

A.类是一种用户自定义的数据类型

B.只有类的成员函数才能存取类中的私有数据

2

2

C.只类中,如果不作特别说明,所指的数据均为私有数据

D.只类中,如果不作特别说明,所指的成员函数均为公有类型

答案:D

8.有关类和对象的说法错误的是( )。

A.对象是类的一个实例

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

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

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

答案:C

9.关于成员函数特征的下述描述中,( )是错误的。

A.成员函数一定是内联函数

B.成员函数可以重载

C.成员函数可以设置参数的默认值

D.成员函数可以是静态的

答案:A

10.已知P是一个指向Sample 数据成员m的指针,s是类Sample的一个对象。如果要给m赋值为5,( )是正确的。

A.s.p= 5

B.s->p = 5

C.s.*p = 5

3

3

D.*s.p = 5

答案:C

11.已知一个类Sample,( )是定义指向类Sample成员函数的指针,假设类有3个公有成员:void f1(int),void f2 (int),int a。

*p

Sample::*pc = &Sample::a

(Sample::*pa)(int)

*a[10]

答案:C

12.已知f1(int)是类A的公有成员函数,p是指向成员函数f1的指针,采用赋值( )是正确的。

A.p= f1

B.p=A::f1

C.p=A::f1( )

D.p=f1( )

答案:B

13.有关构造函数的说法错误的是( )。

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

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

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

4

4

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

答案:D

14.( )不是构造函数的特征。

A.构造函数的函数名和类名相同

B.构造函数可以重载

C.构造函数可以设置默认参数

D.构造函数必须指定函数类型说明

答案:D

15.通常的拷贝初始化构造函数的参数是( )。

A.某个对象名

B.某个对象的成员名

C.某个对象的引用名

D.某个对象的指针名

答案:C

16.有关析构函数的说法错误的是( )。

A.析构函数有且只有一个

B.析构函数无任何函数类型

C.析构函数和析构函数一样可以有形参

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

5

5

17.( )是析构函数的特征。

A.一次类中只能定义一个析构函数

B.析构函数名与类名不同

C.析构函数的定义只能在类体内

D.析构函数可以有一个或多个参数

答案:A

18.下述静态数据成员的特征中,( )是错误的。

A.说明静态数据成员时前边要加修饰符static

B.静态数据成员要在类体外进行初始化

C.引用静态成员时,要在静态数据成员名前加“类名”和作用域运算符D.静态数据成员不是所有对象所共用的

答案:D

19.下列运算符中,( )运算符在C++中不能重载。

A.?:

B.+

C._

D.<=

答案:A

20.下列运算符中,( )运算符在C++中不能重载。

6

6

A.&&

B.[]

C.::

答案:C

21.下列关于运算符重载的描述中,( )是正确的。

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

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

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

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

答案:D

22.友元运算符obj1>obj2被C++编译器解释为( )。

or>(obj1,obj2)

B.>(obj1,obj2)

or>(obj1)

or>(obj2)

答案:A

23.在重载一运算符时,若运算符函数的形参表中没有参数,则不可能的情况是( )。

A.该运算符是一个单目运算符

7

7

B.该运算符函数有一个隐含的参数this

C.该运算符函数是类的成员函数

D.该运算符函数是类的友元函数

答案:D

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

A.<=

B.-

C.?:

D.[]

答案:C

25.在成员函数中进行双目运算符重载时,其参数表中应带有( )个参数。

A.0

B.1

C.2

D.3

答案:B

26.C++中的类有两种用法:一种是类的实例话,即生成类的对象,并参与系统的运行;另一种是通过( )派生出新的类。

A.复用

B.继承

8

8

C.单继承

D.多继承

答案:B

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

A.规律性

B.传递性

C.重复性

D.多样性

答案:B

28.在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性的规则( )。

A.完全相同

B.完全不同

C.部分相同,部分不同

D.以上全不对

答案:A

29.派生可以分为公有派生、私有派生。由私有派生得到的派生类,其基类的所以成员都只能成为它的私有成员,这些私有成员只能被派生类的成员函数访问,而通过( )无权访问它;公有派生的意义是基类中所有成员在派生; 9

9

类中也有都是公有的。

A.公有派生

B.派生类的对象

C.私有派生

D.派生类的构造函数

答案:B

30.基类的( )不能为派生类的成员访问,基类的公有成员在派生类中的性质和继承的性质一样,而基类的保护成员在私有继承时在派生类中成为私有成员,在公有和保护继承时在派生类中仍为保护成员

A.公有成员

B.私有成员

C.私有成员函数

D.保护成员

答案:B

31.公有成员提供了类对外部的界面,私有成员只能被类的成员访问,而( )不允许外界访问,但允许派生类的访问,这样既有一定的隐藏能力,有提供了开放的界面

A.公有成员

B.私有成员

C.私有成员函数

D.保护成员

10

10

答案:D

32.关于动态联编的下列描述中,( )是错误的。

A.动态联编是以虚函数为基础的

B.动态联编是在运行时确定所调用的函数代码的

C.动态联编用调用函数操作是指向对象的指针或对象的引用

D.动态联编是在编译时确定执行函数的

答案:D

33.关于虚函数的描述中,( )是正确的。

A.虚函数是一个Static类型的成员函数

B.虚函数是一个非成员函数

C.基类中说明了虚函数后,派生类中其对应的函数可不必说明虚函数D.派生类的虚函数与基类的虚函数具有不同的参数个数和类型

答案:C

34.实现运行时的多态要使用( )。

A.重载函数

B.构造函数

C.析构函数

D.虚函数

答案:D

11

11

35.对虚函数的调用( )。

A.一定使用动态联编

B.必须使用动态联编

C.一定使用静态联编

D.不一定使用动态联编

答案:A

36.如果一个类至少有一个虚函数,那么就称该类为( )。

A.抽象类

B.虚基类

C.派生类

D.以上都不对

答案:A

37.关于虚函数和抽象类的描述中,( )是错误的。

A.纯虚函数是一种特殊的虚函数,它没有具体的定义

B.抽象类是指具有纯虚函数的类

C.一个基类中说明有纯虚函数,该基类的派生类一定不在是抽象类

D.抽象类只能作为基类来使用,其纯虚函数的定义由派生类给出

答案:C

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

12

12

A.类

B.流

C.对象

D.结构

答案:B

39.C++语言本身没有定义I/O操作,但I/O操作包含在C++实现中。C++标准库iostream提供了基本的I/O类。I/O操作分别由两个类istream 和ostream提供,由他们派生出一个类( ),提供双向的I/O操作。使用I/O流的程序需要包含iostream.h。

am

am.h

m

答案:A

是istream的一个对象,用于处理标准输入。cout、cerr和clog是( )的对象,cout处理标准输出,cerr和clog都处理标准出错信息,只是cerr输出不带缓冲,clog输出带缓冲。

m

m

13

13

答案:B

41.进行文件操作时需要包含( )文件。

m.h

m.h

.h

.h

答案:B

42.使用如setw( )的操作符对数据进行格式输出时,应包含( )文件。

am.h

m.h

p.h

.h

答案:C

43.已知int a ,*pa = & a;输出指针pa十进制的地址值的方法是( )。

<< pa

<< *pa

<< &pa;

<< long(pa)

答案:D

14

14

44.下列输出字符’A’的方法中,( )是错误的。

<< put(‘A’)

<<’A’

(‘A’)

A =’A’;cout<< A

答案:A

45.关于getline()函数的下列描述中,( )是错误的。

A.该函数是用来从键盘上读取字符串

B.该函数读取的字符串长度是受限制的

C.该函数读取字符串时,遇到终止符时便停止

D.该函数所使用的默认终止符是换行符

答案:D

46.关于read( )函数的下列描述中,( )是对的。

A.该函数是用来从键盘输入中获取字符串

B.该函数所获得的字符的多少是不受限制的

C.该函数只能用于文本文件的操作

D.该函数只能按规定读取所指定的字符数

答案:D

47.C++中用三个保留字实现异常的处理,除了try和catch外,还有(

15

15

答案:C

(……)一般放在其他catch子句的后面,该子句( )。

A.抛掷异常

B.捕获所有类型的异常

C.检测并处理异常

D.有语法错误

答案:B

49.下列说法错误的是( )。

A.如果try块中没有抛出异常,则try块执行完后忽略该try块的异常处理器catch块,程序在最后一个catch块后恢复执行。

B.如果在try块以外抛出异常,程序将被终止。

块抛出异常后,从对应的try块开始到异常被抛出之间所构造的所有自动对象将被析构。

D.抛出异常和异常处理必须放在同一个函数中。

答案:D

50.文件的I/O由ifstream.h、ofstream、fstream三个类提供。istream.h是istream的派生类,处理文件输入;ofstream是ostream的派生类,处理 16

16

文件输出;fstream是ostream的派生类,可以同时处理文件的I/O,使用I/O类的程序需要包含头文件( )。

m.h

m.h

am.h

ream

答案:B

17

17

西工大《面向对象程序设计(C++)》复试试题

本文发布于:2024-02-07 18:14:40,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170730088165607.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:函数   成员   对象   派生类
留言与评论(共有 0 条评论)
   
验证码:
排行榜

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23