ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:30.99KB ,
资源ID:3619932      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3619932.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(程序设计主观题题库.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

程序设计主观题题库.docx

1、程序设计主观题题库一、选择题(40)1. C+对C语言作了很多改进,下列描述中( D)使得C语言发生了质变,从面向过程变成了面向对象。A、增加了一些新的运算符;B、允许函数重载,并允许设置缺省参数;C、规定函数说明必须用原型;D、引进了类和对象的概念;2. 下列描述中,( C)是错误的。A、内联函数主要解决程序的运行效率问题;B、内联函数的定义必须出现在内联函数第一次被调用之前;C、内联函数中可以包括各种语句;D、对内联函数不可以进行异常接口声明;3. 在C+中,关于下列设置缺省参数值的描述中,( B)是正确的。A、不允许设置缺省参数值;B、在指定了缺省值的参数右边,不能出现没有指定缺省值的参

2、数;C、只能在函数的定义性声明中指定参数的缺省值;D、设置缺省参数值时,必须全部都设置;4. ( D)不是构造函数的特征。 A、构造函数的函数名与类名相同; B、构造函数可以重载; C、构造函数可以设置缺省参数; D、构造函数必须指定类型说明。5. ( D)是析构函数的特征。 A、析构函数可以有一个或多个参数; B、析构函数名与类名不同; C、析构函数的定义只能在类体内; D、一个类中只能定义一个析构函数;6. 关于成员函数特征的下列描述中,( A)是错误的。 A、成员函数一定是内联函数; B、成员函数可以重载; C、成员函数可以设置缺省参数值; D、成员函数可以是静态的;7. 下列静态数据成

3、员的特性中,( C)是错误的。 A、说明静态数据成员时前边要加修饰符static; B、静态数据成员要在类体外进行初始化; C、静态数据成员不是所有对象所共用的; D、引用静态数据成员时,要在其名称前加和作用域运算符;8. 友元的作用是(A)。 A、提高程序的运用效率; B、加强类的封装性; C、实现数据的隐藏性; D、增加成员函数的种类;9. 关于new运算符的下列描述中,( D)是错误的。 A、它可以用来动态创建对象和对象数组; B、使用它创建的对象或对象数组可以使用运算符delete删除; C、使用它创建对象时要调用构造函数; D、使用它创建对象数组时必须指定初始值;10. 关于dele

4、te运算符的下列描述中,( C)是错误的。 A、它必须用于new返回的指针; B、使用它删除对象时要调用析构函数; C、对一个指针可以使用多次该运算符;D、指针名前只有一对方括号符号,不管所删除数组的维数。11. const int *p说明不能修改(B)。 A、p指针; B、p指针指向的变量; C、p指针指向的数据类型;D、上述A、B、C三者;12. 已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,(A)是正确的; A、void print() const; B、const void print(); C、void const print();D、void print(

5、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、多态性体现了行为共享;

6、D、面向对象方法的核心是继承;17. 执行下列语句后的输出结果是( C)。int hot=100;int &rad=hot;hot+=100;coutradendl; A、0; B、100; C、200; D、300;18. 在C+中,关于下列函数参数的描述中,( B)是正确的。 A、C+语言中,实参是按照自左至右的顺序求值的; B、若一个参数设置了默认值,则其右边的所有参数都具有默认值; C、函数参数的默认值不允许是表达式; D、设置参数默认值时,应该全部参数都设置;19. 在(C)情况下适宜采用inline定义内联函数。 A、函数体含有循环语句; B、函数体含有递归语句; C、函数代码小,

7、频繁调用; D、函数代码多,不常调用;20. 定义析构函数时,应该注意(C)。 A、其函数名与类名完全相同; B、函数返回类型是void类型; C、无形参,也不可重载; D、函数体中必须有delete语句;21. 下列关于构造函数的描述中,(A)是正确的。 A、构造函数可以设置缺省参数; B、构造函数可以被继承; C、构造函数可以对静态数据成员进行初始化; D、构造函数可以说明为虚函数;22. 友元的作用是(A)。 A、提高程序的运用效率; B、加强类的封装性; C、实现数据的隐藏性; D、增加成员函数的种类;23. int * const p说明不能修改(A)。 A、p指针; B、p指针指向

8、的变量; 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、逗号表达式的类型是最后一

9、个表达式的类型; C、赋值表达式的类型是左值的类型; D、由低向高的类型转换是保值映射。27. ( D)不是构造函数的特征。 A、构造函数的函数名与类名相同; B、构造函数可以重载; C、构造函数可以设置缺省参数; D、构造函数必须指定类型说明。28. 在C+中,关于下列设置参数默认值的描述中,(C)是正确的。 A、不允许设置参数的默认值; B、设置参数默认值只能在定义函数时设置; C、设置参数默认值时,应该是先设置右边的,再设置左边的; D、设置参数默认值时,应该全部参数都设置。29. 关于new运算符的下列描述中,(D)是错误的。 A、它可以用来动态创建对象和对象数组; B、使用它创建的对

10、象或对象数组可以使用运算符delete删除; C、使用它创建对象时要调用构造函数; D、使用它创建对象数组时必须指定初始值。30. 重载函数在调用时选择的依据中,(D)是错误的。 A、参数个数; B、参数的类型; C、函数名字; D、函数的类型。31. 下列描述中,(D)是抽象类的特性。 A、可以说明虚函数; B、可以进行构造函数重载; C、可以定义友元函数; D、不能说明其对象。32. (A)是析构函数的特征。 A、一个类中只能定义一个析构函数; B、析构函数名与类名不同; C、析构函数的定义只能在类体内; D、析构函数可以有一个或多个参数;33. 关于delete运算符的下列描述中,(C)

11、是错误的。 A、它必须用于new返回的指针; B、它也适用于空指针; C、对一个指针可以使用多次该运算符; D、指针名前只有一对方括号符,不管所删除数组的维数。34. const int *p说明不能修改(B)。 A、p指针; B、p指针指向的变量; C、p指针指向的数据类型; D、上述A、B、C三者。35. 关于子类型的描述中,(A)是错误的。A、子类型就是指派生类是基类的子类型;B、一种类型当它至少提供了另一种类型的行为,则这种类型是另一种类型的子类型;C、在公有继承下,派生类是基类的子类型;D、子类型关系是不可逆的。36. 在下列关键字中,用于说明类中公有成员的是( A )。 Apubl

12、ic; Bprivate; Cprotected; Dfriend 37. 在下列的各类函数中,( C )不是类的成员函数。 A构造函数; B析构函数; C友元函数; D拷贝初始化构造函数 38. 作用域运算符的功能是( D )。 A 标识作用域的级别的; B. 指出作用域的范围的; C .给定作用域的大小的; D. 标识某个成员是属于哪个类的。 39. ( B )是不可以作为该类的成员的。 A自身类对象的指针; B. 自身类的对象; C. 自身类对象的引用; D. 另一个类的对象。 40. ( D )不是构造函数的特征。 A 构造函数的函数名与类名相同; B. 构造函数可以重载; C. 构造

13、函数可以设置缺省参数; D. 构造函数必须指定类型说明。 41. ( A )是析构函数的特征。 A 一个类中只能定义一个析构函数; B. 析构函数名与类名不同; C. 析构函数的定义只能在类体内; D. 析构函数可以有一个或多个参数。 42. 通常的拷贝初始化构造函数的参数是( C )。 A 某个对象名; B. 某个对象的成员名; C. 某个对象的引用名; D. 某个对象的指针名。 43. 关于成员函数特征的下述描述中,( A )是错误的。 A 成员函数一定是内联函数; B. 成员函数可以重载; C. 成员函数可以设置参数的缺省值; D. 成员函数可以是静态的。 44. 下述静态数据成员的特性

14、中,( 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 )

15、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) 析构函数没有参

16、数 D) 析构函数可以设置默认参数51. 对静态成员的不正确描述是(C )A) 静态成员不属于对象,是类的共享成员 B) 静态数据成员要在类外定义和初始化C) 调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针D) 非静态成员函数也可以操作静态数据成员8. 下面选项中,不是类的成员函数为(C )A) 构造函数 B) 析构函数 C)友元函数 D) 缺省参数的构造函数方言52. 下面对友元的错误描述是(D )A) 关键字friend用于声明友元 B) 一个类的成员函数可以是另一个类的友元C) 友元函数访问对象的成员不受访问特性影响 D) 友元函数通过this指针访问对象成员53

17、. 在C+中,类与类之间的继承关系具有(C )A) 自反性 B) 对称性 C) 传递性 D) 反对称性54. 下列关于类的继承描述中,(A )是错误的A) 派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数B) 派生类也是基类,但基类不一定具有派生类的全部属性和方法C) 继承描述类的层次关系,派生类可以具有与基类相同的属性和方法D) 一个基类可以有多个派生类,一个派生类可以有多个基类55. 当一个派生类仅有继承一个基类时,基类中的所有公有成员成为派生类的(A )A) public成员 B) private成员 C) protected成员 D) 友元56. 当一个派生类私有继承一个基

18、类时,基类中的所有仅有成员和保护成员成为派生类的(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和protec

19、ted成员在保护继承的派生类中不可见D) 在派生类中不可见的成员要变成可访问的,需要进行访问声明59. 在创建派生类对象时,构造函数的执行顺序是( D )A) 对象成员构造函数、基类构造函数、派生类本身的构造函数B) 派生类本身的构造函数、基类构造函数、对象成员构造函数C) 基类构造函数、派生类本身的构造函数、对象成员构造函数D) 基类构造函数、对象成员构造函数、派生类本身的构造函数60. 在C+中,要实现动态联编,必须使用( D )调用虚函数A) 类名 B) 派生类指针 C) 对象名 D) 基类指针61. 在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返

20、回值( B )A) 不同 B) 相同 C) 相容 D) 部分相同62. 下面函数原型声明中,(B )声明了fun为虚函数A) void fun()=0; B) virtual void fun()=0; C) virtual void fun(); D) virtual void fun();63. 若一个类中含有纯虚函数,则该类称为( D )A) 基类 B) 纯基类 C) 派生类 D) 抽象类64. 假设A为抽象类,下列声明(B )是正确的A) A fun(int); B) A *p; C) int fun(A); D) A Obj;65. 关于函数模板,描述错误的是(A )A) 函数模板必

21、须由程序员实例化为可执行的函数模板B) 函数模板的实例化由编译器实现C) 一个类定义中,只要有一个函数模板,则这个类是类模板D) 类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化66. 假设有函数模板定义如下:Template Max(T a, T b, T &c) c=a+b; 下列选项正确的是(AD )(两个答案)A) float x,y; float z; Max(x,y,z);B) int x,y,z; Max(x,y,z);C) int x,y; float z; Max(x,y,z);D) float x; int y, z; Max(x,y,z);67. 关于类

22、模板,描述错误的是(D )A) 一个普通基类不能派生类模板B) 类模板从普通类派生,也可以从类模板派生C) 根据建立对象时的实际数据类型,编译器把类模板实例化为模板类D) 函数的类模板参数须通过构造函数实例化68. 建立类模板对象的实例化过程为(C )A) 基类派生类 B) 构造函数对象C) 模板类对象 D) 模板类模板函数69. 下列类中(BD )(两个答案)不是输入/输出流类iostream的派生类A) fstream B) ofstream C) strstream D)ostrstream70. 在下列选项中( BCD )(三个答案)是ostream类的对象A) cin B) cerr

23、 C) clog D) cout71. read函数的功能是从输入流中读取(D )A) 一个字符 B) 当前字符 C) 一行字符 D) 指定若干个字符72. 下列选项中,用于清除基数格式位置以十六制输出的语句是(B )A) coutsetf(ios:dec, ios:basefield);B) coutsetf(ios:hex, ios:basefield);C) coutsetf(ios:hex, ios:basefield);73. 包含类fstream定义的头文件是(A )A) fstream.h B) ofstream.h C) ifstream.h D) iostream.h74.

24、要求打开文件 d:file.dat,可写入数据,正确的语句是( D )A) ifstream infile(“d:file.dat”, ios:in);B) ifstream infile(“d:file.dat”, ios:in);C) ofstream infile(“d:file.dat”, ios:out);D) fstream infile(“d:file.dat”, ios:in| ios:out);75. 假定已定义浮点型变量data,以二进制方式把data的值写入输出文件流对象outfile中去,正确的语句是(C )A) outfile.write(float *) &data

25、, 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 公有继承的公有成员;

26、 B. 公有继承的私有成员; C. 公有继承的保护成员; D. 私有继承的公有成员。 78. 对基类和派生类的关系描述中,( B )是错的。 A 派生类是基类的具体化; B. 派生类是基类的子集; C. 派生类是基类定义的延续; D. 派生类是基类的组合。 79. 派生类的构造函数的成员初始化列中,不能包含( C )。 A 基类的构造函数; B. 派生类中子对象的初始化; C. 基类的子对象初始化; D. 派生类中一般数据成员的初始化。 80. 关于子类型的描述中,( A )是错的。 A 子类型就是指派生类是基类的子类型; B 一种类型当它至少提供了另一种类型的行为,则这种类型是另一种类型的子

27、类型; C 在公有继承下,派生类是基类的子类型; D子类型关系是不可逆的。 81. 关于多继承二义性的描述中,( C )是错的。 A 一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性; B 解决二义性的最常用的方法是对成员名的限定法; C 基类和派生类中同时出现的同名函数,也存在二义性问题; D一个派生类是从两个基类派生来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,也可能出现二义性。 82. 设置虚基类的目的是( B )。 A 简化程序; B. 消除二义性; C. 提高运行效率; D. 减少目标代码。 83. 带有虚基类的多层派生类构造函数的成员

28、初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化( D )。 A 与虚基类下面的派生类个数有关; B. 多次; C. 二次; D. 一次。84. 按照标识符的要求,( A )符号不能组成标识符。 A、连接符 B、下划线 C、大小写字母 D、数字字母85. 若有说明和语句:int a=5,b=6;b*=a+1;则b的值为( D )。A、5 B、6 C、31 D、3686. 表达式!(x0&y0)等价于( D )。 A、!(x0) & !(y0) B、!x0 | !y0 C、!x0 & !y0 D、!(x0) | !(y0)87. 若变量已正确定义并且指针p已经指向某个变量x,则

29、(*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