admin 管理员组文章数量: 1087139
2024年4月16日发(作者:abstract和digest)
复习:C++填空题
1. C++的流库预定义了4个流,它们是cin、cout、clog
和___。答案:cerr [解析]分别是标准输入、输出、
标准错误流(缓冲)和标准错误流 (无缓冲标准错误)
2. 每个对象都是所属类的一个___。答案:实例
3. 在已经定义了整型指针p后,为了得到一个包括10
个整数的数组并由p所指向,应使用语句___。答案:
int *p=new int[10];
4. 函数模板中紧随template之后尖括号内的类型参数
都要冠以保留字___。答案:class [解析]类模板
template
5. 定义类的动态对象数组时,系统只能够自动调用该
类的___构造函数对其进行初始化。答案:无参[解析]
使用new创建对象数组,调用无参构造函数。
6. 表达式cout< [解析]endl与字符常量‘\n’等价。 7. 在C++中,访问一个指针所指向的对象的成员所用 的指向运算符是___。答案:->[解析]指针使用成员 方法:“->”指向运算符和“.”成员访问运算符。 8. 假如一个类的名称为MyClass,使用这个类的一个 对象初始化该类的另一个对象时,可以调用___构造函 数来完成此功能。答案:复制或拷贝[解析]复制或 拷贝构造函数就是用对象初始化新的对象。 9. 对赋值运算符进行重载时,应声明为___函数。 答案:类成员 [解析]运算符重载的方法有友元或者 成员函数两种途径,但是赋值运算符只能使用成员函 数的方法来实现。 10. 如果要把A类成员函数f()且返回值为void声明 为类B的友元函数,则应在类B的定义中加入的语句 ___。答案:friend void A::f();[解析]成员函数 作为另一个类的友元函数,格式为:friend 返回类型 类名::函数(形参)。 11. String 类的___方法返回查找到的字符串在主串的 位置。答案: find[解析]string类对象方法的find, 查不到字符串,则返回-1。 12. 控制格式输入输出的操作中,函数___是用来设置 填充字符。要求给出函数名和参数类型。答案: setfill(char) 13. C++语言支持的两种多态性分别是编译时的多态 性和___的多态性。答案:运行时[解析]多态性包括 静态的(编译时)多态性和动态的(运行时)多态性。 14. 设函数sum是由函数模板实现的,并且sum(3,6) 和sum(4.6,8)都是正确的函数调用,则函数模板具有 ___个类型参数。答案: 2 15. 执行下列代码string str("HelloC++"); cout<<(5,3); 程序的输出结果是___。 答案: C++[解析]substr取子字符串,参数1表示要 截取子串在字符串中的位置,第2个表示取多少个字符 16. 在面向对象的程序设计中,将一组对象的共同特 性抽象出来形成___。答案:类[解析]类是相似特征 的对象的抽象,对象是类的一个实例。 17. 定义类动态对象数组时,元素只能靠自动调用该类 的___来进行初始化。答案:无参构造函数[解析]使 用new 创建动态对象数组,不能有参数,所以只能调 用无参的构造函数,初始化对象。 18. 抽象类中至少要有一个___ 函数。答案:纯虚 19. 一个抽象类的派生类可以实例化的必要条件是实 现了所有的___。答案:纯虚函数的定义[解析]抽象 类只因有纯虚函数,不能被实例化,所以派生类要实 例化必须对纯虚函数进行定义。 20. 静态成员函数、友元函数、构造函数和析构函数 中,不属于成员函数的是___。答案:友元函数[解析] 引入友元访问类是方便了,但破坏类访问的安全性。 21. 在用C++进行程序设计时,最好用___代替 malloc。答案: new[解析](1)给单个对象申请分 配内存int *ip; ip=new int;(2)给单个对象申请分配 内存的同时初始化该对象int *ip; ip=new int(68);(3) 同时给多个对象申请分配内存int *ip; ip=new int[5]; 若申请失败,则返回NULL。因此,可以判断返回值是 否为0来获知系统中是否有足够的空间供用户使用。 22. 由const修饰的对象称为___。 答案:常对象[解析]使用const关键字说明的成员函 数称为常成员函数:<返回类型说明符><成员函数名 >(<参数表>)const; 常成员函数不更新对象的数 据成员,也不能调用该类中没有用const修饰的成员函 数。常对象只能调用它的常成员函数。 23. 基类的公有成员在派生类中的访问权限由___决 定。答案:访问控制方式或继承方式 24. 不同对象可以调用相同名称的函数,但执行完全 不同行为的现象称为___。答案:多态性 [解析]虚函数是实现多态的基础,运行过程中的多 态需要同时满足3个条件:(1)类之间应满足子类型关 系。(2)必须要有声明的虚函数。(3)调用虚函数操作 的是指向对象的指针或者对象引用;或者是由成员函 数调用虚函数(如果是在构造函数或析构函数中调用 虚函数,则采用静态联编)。 25. this指针始终指向调用成员函数的___。答案:对 象[解析]this指针是隐藏的指针。 26. 预处理命令以___符号开头。答案:# 27. 类模板用来表达具有___的模板类对象集。答案: 相同处理方法 第 4 页 共 4 页 28. 在#include命令中所包含的头文件,可以是系统定 义的头文件,也可以是___的头文件。答案:自定义 29. C++语言中如果调用函数时,需要改变实参或者返 回多个值,应该采取___方式。答案:传地址或引用 [解析]传地址即指针,在函数中通过指针修改它指 向的变量的值时,实参也就变化了。使用引用,直接 修改变量的别名即引用的值,该变量也就随着变化。 30. 如果要把类B的成员函数void fun()说明为类A 的友元函数,则应在类A中加入语句___。 答案: friend void B::fun(); 31. 在编译指令中,宏定义使用___指令。答案: #define 32. 单目运算符作为类成员函数重载时,形参个数为 ___个。答案:0[解析]双目运算符使用一个参数。 33. 为了在对象生存期结束时释放其指针成员所指向 的动态存储空间,通常为该类定义___。答案:析构函 数[解析]析构函数用来释放对象所占的空间。 34. 复制构造函数使用___作为形式参数。答案:对象 的引用 35. 假定用户没有给一个名为AB的类定义构造函数, 则系统自动给出的缺省构造函数定义为___。 答案:AB()[解析]构造函数的名称必须同类名一致, 为对象分配空间和初始化。构造函数不能指定返回类 型,函数体中不允许有返回值。构造函数可以重载, 一个类可以定义多个参数个数不同的构造函数。如果 一个类没有定义任何构造函数,那么C++就自动建立一 个默认的构造函数,没有形参,仅创建对象而不作任 何初始化。 36. 为了实现运行时的多态性,派生类需重新定义基 类中的___。答案:虚函数[解析]实现运行时多态性, 需要在基类中声明虚函数或纯虚函数。 37. 重载函数在参数类型或参数个数上不同,但___必 须相同。答案:函数名 38. 下面程序运行的结果是___。#include void main(){ (*); (5); cout<<"hello"< 答案:hello[解析]设置宽度是5但“hello”已经是 5个宽度,所以不需要填充。 39. 局部对象和全局对象中,在同一程序中___生存 期最长。答案:全局对象 40. 用___修饰函数称为虚函数。答案: virtual 41. 下列程序段的输出结果是___。 (ios::showpos);cout<<509.3< 答案:+509.3[解析]输入、输出格式ios::showpos 用于输出数据的符号位。 42. 定义重载函数,应在___上有所不同。答案:参数 类型与参数的个数 43. 类是用户定义的类型,具有类类型的变量称作___。 答案:对象[解析]对象是类的一个实例。 44. 在函数体之前加___关键字可以防止覆盖函数改 变数据成员的值。答案:const [解析]const修饰的对象称为常对象,修饰的引用称 为常引用它们的值不允许修改。 45. 在构造函数和析构函数中调用虚函数时采用___。 答案:静态联编[解析]在析构或构造函数调用虚函 数发生静态多态性。 46. 若函数的定义处于调用它的函数之前,则在程序 开始可以省去该函数的___语句。答案:声明 47. C++提供的预处理语句有3种,文件包含、条件 编译和___。答案:宏定义 48. 在C++中有两种参数传递方式:传值和___。 答案:传引用[解析](1)传值调用又分为数据传值 调用和地址传值调用。(2)引用调用时形参是实参变 量的引用名。引用是给一个已有变量起的别名。 49. 在保护派生中,基类权限为public的成员在派生 类中___。答案:保护类型[解析]基类是保护或公有 的,采用保护继承后,在派生类中都是保护类型。采 用公有继承后,基类是保护或公有的权限在派生类中 不变。采用私有继承后,基类是保护或公有的权限在 派生类中为私有。 50. 若要使用string类,需要引入的头文件是___。答 案:string.h 51. 在函数前面用___保留字修饰时,则表示该函数表 为内联函数。答案:inline[解析]内联函数用来提 高程序运行速度。在类内部定义的函数也是内联函数。 52. 重载的运算符保持其原有的___、优先级和结合性 不变。答案:操作数 53. 编译时的多态性通过___函数实现。答案:重载 [解析]编译多态性,实现的方法主要通过函数的重 载或运算符的重载。 54. 预处理语句有三种,分别是宏定义、文件包含和 ___。答案:条件编译[解析]条件编译#if等。 55. 构造函数、析构函数和友元函数中,不是该类成员 的是___。答案:友元函数[解析]友元函数不是类成 员,但可以访问类中成员。 56. 控制格式输入输出的操作中,函数___是设置域宽 的。答案:setw(int) [解析]setw(int n):用来设 置n输出宽度。 57. 派生类的成员一般分为两部分,一部分是___,另 一部分是自己定义的新成员。答案:从基类继承的成 员[解析]派生类成员一个来自继承基类成员,一个 来自本身增加的成员。 58. C++中ostream的直接基类___。答案:ios[解 析]istream和ostream的直接基类是ios。 第 4 页 共 4 页 59. 执行下列代码 int i=230; cout <<"i="< < [解析]流类库中使用格式符,输出十六进制数据。 60. 使用new为int数组动态分配10个存储空间是___。 答案:new int[10]; 61. 面向对象的四个基本特性是多态性、继承性、封装 性和___。答案:抽象性[解析]一组对象的共同特征 抽象出类的概念,类是对象的抽象,对象是类的实例。 封装即将数据和操作紧密结合,外部通过接口实现访 问数据,提供安全性。继承解决了类的扩展性。多态 性使得不同对象调用相同的函数名,但调用的是不同 的函数,实现不同的功能,解决了接口统一的问题。 62. 如果一个派生类只有一个唯一的基类,则这样的继 承关系称为___。答案:单继承 63. . 继承的方式有公有继承、私有继承和___。答案: 保护继承或protected 64. 表达式cout< cout< 65. 通过C++语言中的___机制,可以从现存类中构建 其子类。答案:继承[解析]派生类是对基类的扩充。 66. ___是istream类的对象,用处理标准输入,即键盘 输入。答案:cin 67. 假设类X的对象x是类Y的成员对象,则“Y Obj” 语句执行时,先调用类___的构造函数。 答案:X[解 析]派生类中构造函数的执行顺序:先基类后派生类。 68. 派生的新类同时可以增加或重新定义数据和操作, 这称为类的___性。答案:层次性 69. C++中istream的直接基类___。答案:ios 70. 对已有的运算符赋予多重含义,使同一运算符能够 对不同类型的数据进行操作,称为___。答案:运算符 重载[解析]运算符重载,是特殊的函数重载,是对 系统已有的部分运算进行的再定义。 71. 派生类的主要用途是可以定义其基类中___。答案: 不具有的成员[解析]继承的特点,扩充基类,即在 派生类中增加基类不具有的成员。 72. 含有纯虚函数的类称为___。 答案:抽象类[解析]带有纯虚函数的类称为抽象类。 (1)抽象类只能作为基类使用,其纯虚函数的实现由派 生类给出;但派生类仍可不给出纯虚函数的定义,继 续作为抽象类存在。 (2)抽象类不能定义对象,一般将该类的构造函数说明 为保护的访问控制权限。 (3)可以声明一个抽象类的指针和引用。通过指针和引 用,可以指向并访问派生类对象,进而访问派生类的 成员,这种访问是具有多态特征的。 73. 拷贝初始化构造函数使用___来初始化创建中的对 象。答案:对象的引用 74. 一个const对象只能访问___成员函数。答案:常 75. 执行___操作将释放由指针所指向的动态分配的数 据空间。答案:delete 76. 有int a=1,b=2;则表达式a+++--b的值为___。答案: 2[解析]a++是后加,--b是前减。 77. A是一个类,已有语句“A* p; p=new A[ 10];”。 要释放由p指向的动态空间,正确的语句应该是___。 答案:delete p; 78. 定义___函数时,应在参数个数或参数类型上有所 不同。答案:重载[解析]重载函数要求同名函数具 有相同的功能,而只能是函数类型、参数个数或参数 顺序不同。系统将根据同名函数的这些不同之处来选 择其对应的实现。 79. 执行下列代码 int a=32; double c=32; (ios::hex);
版权声明:本文标题:C++填空题1 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1713264286a626558.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论