程序设计主观题题库.docx

上传人:b****5 文档编号:3619932 上传时间:2022-11-24 格式:DOCX 页数:23 大小:30.99KB
下载 相关 举报
程序设计主观题题库.docx_第1页
第1页 / 共23页
程序设计主观题题库.docx_第2页
第2页 / 共23页
程序设计主观题题库.docx_第3页
第3页 / 共23页
程序设计主观题题库.docx_第4页
第4页 / 共23页
程序设计主观题题库.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

程序设计主观题题库.docx

《程序设计主观题题库.docx》由会员分享,可在线阅读,更多相关《程序设计主观题题库.docx(23页珍藏版)》请在冰豆网上搜索。

程序设计主观题题库.docx

程序设计主观题题库

一、选择题(40)

1.C++对C语言作了很多改进,下列描述中(D )使得C语言发生了质变,从面向过程变成了面向对象。

A、增加了一些新的运算符;

B、允许函数重载,并允许设置缺省参数;

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

D、引进了类和对象的概念;

2.下列描述中,(C )是错误的。

A、内联函数主要解决程序的运行效率问题;

B、内联函数的定义必须出现在内联函数第一次被调用之前;

C、内联函数中可以包括各种语句;

D、对内联函数不可以进行异常接口声明;

3.在C++中,关于下列设置缺省参数值的描述中,(B )是正确的。

A、不允许设置缺省参数值;

B、在指定了缺省值的参数右边,不能出现没有指定缺省值的参数;

C、只能在函数的定义性声明中指定参数的缺省值;

D、设置缺省参数值时,必须全部都设置;

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

 A、构造函数的函数名与类名相同;

 B、构造函数可以重载;

 C、构造函数可以设置缺省参数;

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

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

 A、析构函数可以有一个或多个参数;

 B、析构函数名与类名不同;

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

 D、一个类中只能定义一个析构函数;

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

 A、成员函数一定是内联函数;

 B、成员函数可以重载;

 C、成员函数可以设置缺省参数值;

 D、成员函数可以是静态的;

7.下列静态数据成员的特性中,(C )是错误的。

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

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

 C、静态数据成员不是所有对象所共用的;

 D、引用静态数据成员时,要在其名称前加<类名>和作用域运算符;

8.友元的作用是(A )。

 A、提高程序的运用效率;

 B、加强类的封装性;

 C、实现数据的隐藏性;

 D、增加成员函数的种类;

9.关于new运算符的下列描述中,(D )是错误的。

 A、它可以用来动态创建对象和对象数组;

 B、使用它创建的对象或对象数组可以使用运算符delete删除;

 C、使用它创建对象时要调用构造函数;

 D、使用它创建对象数组时必须指定初始值;

10.关于delete运算符的下列描述中,(C )是错误的。

 A、它必须用于new返回的指针;

 B、使用它删除对象时要调用析构函数;

 C、对一个指针可以使用多次该运算符;

D、指针名前只有一对方括号符号,不管所删除数组的维数。

11.constint*p说明不能修改(B )。

 A、p指针;

 B、p指针指向的变量;

 C、p指针指向的数据类型;

D、上述A、B、C三者;

12.已知:

print()函数是一个类的常成员函数,它无返回值,下列表示中,(A )是正确的;

 A、voidprint()const;

 B、constvoidprint();

 C、voidconstprint();

D、voidprint(const);

13.派生类的对象对它的基类成员中(A )是可以访问的。

 A、公有继承的公有成员;

 B、公有继承的私有成员;

 C、公有继承的保护成员;

D、私有继承的公有成员;

14.14、设置虚基类的目的是(B )。

 A、简化程序;

 B、消除二义性;

 C、提高运行效率;

D、减少目标代码;

15.下列描述中,正确的是(C )

 A、虚函数是一个static类型的成员函数;

 B、虚函数是一个非成员函数;

 C、抽象类是指具有纯虚函数的类;

D、抽象类可以说明其对象;

16.下列描述中,(D )是不正确的。

A、面向对象程序设计可重用性较好;

B、对象之间通过消息进行信息传递;

C、多态性体现了行为共享;

D、面向对象方法的核心是继承;

17.执行下列语句后的输出结果是(C )。

inthot=100;

int&rad=hot;

hot+=100;

cout<

A、0;

B、100;

C、200;

D、300;

18.在C++中,关于下列函数参数的描述中,(B )是正确的。

A、C++语言中,实参是按照自左至右的顺序求值的;

B、若一个参数设置了默认值,则其右边的所有参数都具有默认值;

C、函数参数的默认值不允许是表达式;

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

19.在(C )情况下适宜采用inline定义内联函数。

A、函数体含有循环语句;

B、函数体含有递归语句;

C、函数代码小,频繁调用;

D、函数代码多,不常调用;

20.定义析构函数时,应该注意(C )。

A、其函数名与类名完全相同;

B、函数返回类型是void类型;

C、无形参,也不可重载;

D、函数体中必须有delete语句;

21.下列关于构造函数的描述中,(A )是正确的。

A、构造函数可以设置缺省参数;

B、构造函数可以被继承;

C、构造函数可以对静态数据成员进行初始化;

D、构造函数可以说明为虚函数;

22.友元的作用是(A )。

A、提高程序的运用效率;

B、加强类的封装性;

C、实现数据的隐藏性;

D、增加成员函数的种类;

23.int*constp说明不能修改(A )。

A、p指针;

B、p指针指向的变量;

C、p指针指向的数据类型;

D、上述A、B、C三者;

24.关于堆运算符的下列描述中,(C )是错误的。

A、使用堆运算符可以动态建立或删除对象;

B、new运算符创建对象时要调用构造函数;

C、可以在使用new[]创建数组时,为每个数组元素指定初始值;

D、delete运算符可以作用于空指针;

25.关于继承的描述中,(B )是正确的。

A、派生类是基类的子集;

B、析构函数不能被继承;

C、子类型关系是可逆的;

D、派生类是基类的子类型;

26.下列关于类型转换的描述中,(A )是错误的。

A、在不同类型操作数组成的表达式中,其表达式类型一定是最高类型double型;

B、逗号表达式的类型是最后一个表达式的类型;

C、赋值表达式的类型是左值的类型;

D、由低向高的类型转换是保值映射。

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

A、构造函数的函数名与类名相同;

B、构造函数可以重载;

C、构造函数可以设置缺省参数;

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

28.在C++中,关于下列设置参数默认值的描述中,(C )是正确的。

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

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

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

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

29.关于new运算符的下列描述中,(D )是错误的。

A、它可以用来动态创建对象和对象数组;

B、使用它创建的对象或对象数组可以使用运算符delete删除;

C、使用它创建对象时要调用构造函数;

D、使用它创建对象数组时必须指定初始值。

30.重载函数在调用时选择的依据中,(D )是错误的。

A、参数个数;

B、参数的类型;

C、函数名字;

D、函数的类型。

31.下列描述中,(D )是抽象类的特性。

A、可以说明虚函数;

B、可以进行构造函数重载;

C、可以定义友元函数;

D、不能说明其对象。

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

A、一个类中只能定义一个析构函数;

B、析构函数名与类名不同;

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

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

33.关于delete运算符的下列描述中,(C )是错误的。

A、它必须用于new返回的指针;

B、它也适用于空指针;

C、对一个指针可以使用多次该运算符;

D、指针名前只有一对方括号符,不管所删除数组的维数。

34.constint*p说明不能修改(B )。

A、p指针;

B、p指针指向的变量;

C、p指针指向的数据类型;

D、上述A、B、C三者。

35.关于子类型的描述中,(A )是错误的。

A、子类型就是指派生类是基类的子类型;

B、一种类型当它至少提供了另一种类型的行为,则这种类型是另一种类型的子类型;

C、在公有继承下,派生类是基类的子类型;

D、子类型关系是不可逆的。

36.在下列关键字中,用于说明类中公有成员的是(A)。

A.public;

B.private;

C.protected;

D.friend

37.在下列的各类函数中,(C)不是类的成员函数。

A.构造函数;

B.析构函数;

C.友元函数;

D.拷贝初始化构造函数

38.作用域运算符的功能是(D)。

A.标识作用域的级别的;

B.指出作用域的范围的;

C.给定作用域的大小的;

D.标识某个成员是属于哪个类的。

39.(B)是不可以作为该类的成员的。

A.自身类对象的指针;

B.自身类的对象;

C.自身类对象的引用;

D.另一个类的对象。

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

A.构造函数的函数名与类名相同;

B.构造函数可以重载;

C.构造函数可以设置缺省参数;

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

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

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

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

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

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

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

A.某个对象名;

B.某个对象的成员名;

C.某个对象的引用名;

D.某个对象的指针名。

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

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

B.成员函数可以重载;

C.成员函数可以设置参数的缺省值;

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

44.下述静态数据成员的特性中,(D)是错误的。

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

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

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

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

45.关于类和对象不正确的说法是(C)

A)类是一种类型,它封装了数据和操作

B)对象是类的实例

C)一个类的对象只有一个

D)一个对象必属于某个类

46.在类定义的外部,可以被访问的成员有(C)

A)所有类成员

B)private或protected的类成员

C)public的类成员

D)public或private的类成员

47.关于this指针的说法错误的是(A)

A)this指针必须显示说明B)当创建一个对象后,this指针就指向该对象

C)成员函数拥有this指针D)静态成员函数不拥有this指针

48.声明一个类的对象时,系统自动调用(BC)函数,撤消对象时,系统自动调用()函数

A)成员函数B)构造函数

C)析构函数D)普通函数

49.下面对构造函数的不正确描述是(B)

A)系统可以提供默认的构造函数

B)构造函数可以有参数,所以可以有返回值

C)构造函数可以重载

D)构造函数可以设置默认参数

50.下面对析构函数的正确描述是(C)

A)系统不能提供默认的析构函数

B)析构函数必须由用户定义

C)析构函数没有参数

D)析构函数可以设置默认参数

51.对静态成员的不正确描述是(C)

A)静态成员不属于对象,是类的共享成员

B)静态数据成员要在类外定义和初始化

C)调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针

D)非静态成员函数也可以操作静态数据成员

8.下面选项中,不是类的成员函数为(C)

A)构造函数

B)析构函数

C)友元函数

D)缺省参数的构造函数方言

52.下面对友元的错误描述是(D)

A)关键字friend用于声明友元

B)一个类的成员函数可以是另一个类的友元

C)友元函数访问对象的成员不受访问特性影响

D)友元函数通过this指针访问对象成员

53.在C++中,类与类之间的继承关系具有(C)

A)自反性

B)对称性

C)传递性

D)反对称性

54.下列关于类的继承描述中,(A)是错误的

A)派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数

B)派生类也是基类,但基类不一定具有派生类的全部属性和方法

C)继承描述类的层次关系,派生类可以具有与基类相同的属性和方法

D)一个基类可以有多个派生类,一个派生类可以有多个基类

55.当一个派生类仅有继承一个基类时,基类中的所有公有成员成为派生类的(A)

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

56.当一个派生类私有继承一个基类时,基类中的所有仅有成员和保护成员成为派生类的(B)

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

57.不论派生类以何种方法继承基类,都不能使用基类的(B)

A)public成员B)private成员

C)protected成员D)public成员和protected成员

58.下面描述中,错误的是(BC)(两个答案)

A)在基类定义的public成员在公有继承的派生类中可见,也能在类外被访问

B)在基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问

C)在基类定义的public和protected成员在保护继承的派生类中不可见

D)在派生类中不可见的成员要变成可访问的,需要进行访问声明

59.在创建派生类对象时,构造函数的执行顺序是(D)

A)对象成员构造函数、基类构造函数、派生类本身的构造函数

B)派生类本身的构造函数、基类构造函数、对象成员构造函数

C)基类构造函数、派生类本身的构造函数、对象成员构造函数

D)基类构造函数、对象成员构造函数、派生类本身的构造函数

60.在C++中,要实现动态联编,必须使用(D)调用虚函数

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

61.在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值(B)

A)不同B)相同C)相容D)部分相同

62.下面函数原型声明中,(B)声明了fun为虚函数

A)voidfun()=0;B)virtualvoidfun()=0;

C)virtualvoidfun();D)virtualvoidfun(){};

63.若一个类中含有纯虚函数,则该类称为(D)

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

64.假设A为抽象类,下列声明(B)是正确的

A)Afun(int);B)A*p;C)intfun(A);D)AObj;

65.关于函数模板,描述错误的是(A)

A)函数模板必须由程序员实例化为可执行的函数模板

B)函数模板的实例化由编译器实现

C)一个类定义中,只要有一个函数模板,则这个类是类模板

D)类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化

66.假设有函数模板定义如下:

Template

Max(Ta,Tb,T&c)

{c=a+b;}

下列选项正确的是(AD)(两个答案)

A)floatx,y;floatz;Max(x,y,z);

B)intx,y,z;Max(x,y,z);

C)intx,y;floatz;Max(x,y,z);

D)floatx;inty,z;Max(x,y,z);

67.关于类模板,描述错误的是(D)

A)一个普通基类不能派生类模板

B)类模板从普通类派生,也可以从类模板派生

C)根据建立对象时的实际数据类型,编译器把类模板实例化为模板类

D)函数的类模板参数须通过构造函数实例化

68.建立类模板对象的实例化过程为(C)

A)基类à派生类B)构造函数à对象

C)模板类à对象D)模板类à模板函数

69.下列类中(BD)(两个答案)不是输入/输出流类iostream的派生类

A)fstreamB)ofstreamC)strstreamD)ostrstream

70.在下列选项中(BCD)(三个答案)是ostream类的对象

A)cinB)cerrC)clogD)cout

71.read函数的功能是从输入流中读取(D)

A)一个字符B)当前字符

C)一行字符D)指定若干个字符

72.下列选项中,用于清除基数格式位置以十六制输出的语句是(B)

A)cout<

:

dec,ios:

:

basefield);

B)cout<

:

hex,ios:

:

basefield);

C)cout<

:

oct,ios:

:

basefield);

D)cin>>setf(ios:

:

hex,ios:

:

basefield);

73.包含类fstream定义的头文件是(A)

A)fstream.hB)ofstream.hC)ifstream.hD)iostream.h

74.要求打开文件d:

\file.dat,可写入数据,正确的语句是(D)

A)ifstreaminfile(“d:

\file.dat”,ios:

:

in);

B)ifstreaminfile(“d:

\\file.dat”,ios:

:

in);

C)ofstreaminfile(“d:

\file.dat”,ios:

:

out);

D)fstreaminfile(“d:

\\file.dat”,ios:

:

in|ios:

:

out);

75.假定已定义浮点型变量data,以二进制方式把data的值写入输出文件流对象outfile中去,正确的语句是(C)

A)outfile.write((float*)&data,sizeof(float));

B)outfile.write((float*)&data,data);

C)outfile.write((char*)&data,sizeof(float));

D)outfile.write((char*)&data,data);

76.下列对派生类的描述中,(D)是错的。

A.一个派生类可以作另一个派生类的基类;

B.派生类至少有一个基类;

C.派生类的成员除了它自已的成员外,还包含了它的基类的成员;

D.派生类中继承的基类成员的访问权限到派生类保持不变。

77.派生类的对象对它的基类成员中(A)是可以访问的。

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

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

78.对基类和派生类的关系描述中,(B)是错的。

A.派生类是基类的具体化;B.派生类是基类的子集;

C.派生类是基类定义的延续;D.派生类是基类的组合。

79.派生类的构造函数的成员初始化列中,不能包含(C)。

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

C.基类的子对象初始化;D.派生类中一般数据成员的初始化。

80.关于子类型的描述中,(A)是错的。

A.子类型就是指派生类是基类的子类型;

B.一种类型当它至少提供了另一种类型的行为,则这种类型是另一种类型的子类型;

C.在公有继承下,派生类是基类的子类型;

D.子类型关系是不可逆的。

81.关于多继承二义性的描述中,(C)是错的。

A.一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性;

B.解决二义性的最常用的方法是对成员名的限定法;

C.基类和派生类中同时出现的同名函数,也存在二义性问题;

D.一个派生类是从两个基类派生来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,也可能出现二义性。

82.设置虚基类的目的是(B)。

A.简化程序;B.消除二义性;

C.提高运行效率;D.减少目标代码。

83.带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化(D)。

A.与虚基类下面的派生类个数有关;B.多次;

C.二次;D.一次。

84.按照标识符的要求,(A)符号不能组成标识符。

A、连接符B、下划线C、大小写字母D、数字字母

85.若有说明和语句:

inta=5,b=6;b*=a+1;则b的值为(D)。

 A、5B、6C、31D、36

86.表达式!

(x>0&&y>0)等价于(D)。

A、!

(x>0)&&!

(y>0)B、!

x>0||!

y>0

C、!

x>0&&!

y>0D、!

(x>0)||!

(y>0)

87.若变量已正确定义并且指针p已经指向某个变量x,则(*p)++相当于(B)。

A、p++B、x++C、*(p++)D、&x++

88.面向对象程序设计将数据与(A)放在一起,作为一个相互依存、不可分割的整体来处理。

A、对数据的操作。

B、信息。

C、数据隐藏。

D、数据抽象。

89.下列关于构造函数与析构函数的描述中,正确的是(A)。

A、一个类一定有构造函数和析构函数。

B、构造函数不能有默认参数。

C、析构函数可以重载。

D、可以对一个对象显式地调用构造函数和析构函数。

90.静态数据成员的初始化必须在(B)。

A、类内。

B、类外。

C、在构造函数内。

D、静态成员函数内。

91.在C++类中定义和实现的函数称为(C)。

A、静态成员函数。

B、常成员函数。

C、内联函数。

D、一般函数。

92.下列关于成员访问权限的描述中,正确的是(B)。

A、类的私有成员只可被类的成员函数访问。

B、类的私有成员可被类的成员函数和友元函数访问。

C、类的保护成员可通过类的对象进行访问。

D、类的数据成员只可被类的成员函数访问。

93.若已定义f,g为double类型,则表达式:

f=1,g=f+5/4的值是(A)

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

当前位置:首页 > 小学教育 > 小升初

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

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