2024年2月7日发(作者:)
21.在C++语言的面向对象设计框架中,_______是程序的基本组成单元。
22.执行代码double pi=; cout < < setprecision (3) < < pi;程序的输出结果是_______。
++语言提供的的基本控制结构可以分为3种类型:顺序结构、_______和循环结构。
24.要使用STL库提供的对数组进行降幂排序算法,在源程序中需要包含的头文件是______。
25.在C++标准库中,用_______类来表示复数。
26.将对象作为函数参数,是将实参对象的_______传递给形参对象,这种传递是单向的。
++函数的返回类型可以是除数组与_______以外的任何类型。
28.能提供封装的C++关键字是_______。
29.在C++的类声明中,用public关键字声明的类成员的访问权限是_______。
30.开发一个C++语言程序的步骤通常包括编辑、_______、连接、运行和调试。
++类中的_______函数在对象的生存期结束时被自动调用。
32.友元函数可以存取类的_______、公有成员和保护成员。
33.若类的成员函数用关键字static进行修饰,这样的成员函数称为_______。
34.在C++中,创建派生类对象时,总是先从_______的初始化开始的。
35.类的继承是指派生类继承基类的数据成员和_______。
36.在C++中,利用向量类模板定义一个具有20个double的向量,其元素均被置为,实现此操作的语句是_______。
类中用于返回向量中的最后一个对象的方法是_________。
38.虚函数类似于重载函数,但与重载函数的实现策略不同,对虚函数声明时应使用_______关键字。
39.在C++中,虽然友元提供了类之间数据进行访问的一种方式,但它破坏了面向对象程序设计的_______特性。
40.执行下列代码
cout < < showpoint < < ;程序的输出结果是_______。
21.若使用标准输出流把整型变量a的值输出到屏幕上,实现此操作的C++语句是______。
++将数据从一个对象流向另一个对象的流动抽象为“流”,从流中获取数据的操作称为______。
23.执行下列代码
int b=100;
cout<<"Hex:"< 程序的输出结果是______。 24.静态联编所支持的多态性称为______的多态性。 ++程序必须有且只有一个主函数,其函数名为______。 26.写出声明一个复数对象的语句,并使该对象被初始化为+,此声明语句是______。 27.若有函数定义为: int add(int ml=0,int m2=2,int m3=4) {return ml+m2+m3;} 在主函数中有int s=add(1)+add(0,1)+add(0,1,2); 则执行此语句后s的值为______。 ++中使用______关键字说明函数为内联函数。 29.在源程序中有宏定义:#define PI ,则若不想使该宏定义影响到程序的其它地方,可以使用______删除该宏定义。 30.类和其它数据类型不同的是,组成这种类型的不仅可以有数据,还可以有对数据进行操作的_______。 31.有下列代码int a=0;double b=0;cin>>a>>b;当用键盘输入时,b=______。 32.对于类Point而言,其析构函数的定义原型为______。 33.对象成员构造函数的调用顺序取决于这些对象在类中说明的顺序,与它们在成员初始化列表中给出的顺序______。 34.类的简单成员函数是指声明中不含______、volatile、static关键字的函数。 35.与操作对象的数据类型相互独立的算法称为______。 36.从一个或多个以前定义的类产生新类的过程称为______。 37.在vector类中向向量尾部插入一个对象的方法是______。 ++中用于动态创建对象,并返回该对象的指针的关键字是______。 ++的流类库预定义的与标准输出设备相联接的流是______。 40.执行下列代码 cout< 程序输出结果是______。 21.设要把一个文件输出流对象myFile与文件“f:\相关联,所用的C++语句是:__________。 22.C++中ostream类的直接基类是________。 23.运算符[ ]只能用________运算符来重载,不能用友元运算符来重载。 24.定义虚函数所用的关键字是________。 25.vector类中用于返回向量中第1个对象的方法是________。 26.在C++中,利用向量类模板定义一个具有20个char的向量E,其元素均被置为字符‘t’,实现此操作的语句是________。 27.类的继承是指子类继承基类的________和成员函数。 28.不同对象可以调用相同名称的函数,但可导致完全不同的行为的现象称为________。 29.________指令指示编译器将一个源文件嵌入到带该指令的源文件之中。 30.设类A有成员函数 void Fun(void); 若要定义一个指向类成员函数的指针变量pafn来指向Fun,该指针变量的声明语句是:________。 31.设在程序中使用如下语句申请了一个对象数组: Point * ptr = new Point[2]; 则在需要释放ptr指向的动态数组对象时,所使用的语句是________。 32.在保护派生中,基类权限为Private的成员在派生类中________。 33.类A有如下成员函数 int A::fun(double x){return (int) x/2;} int A::fun(int x){return x*2;} 设a为类A的对象,在主函数中有int s=a.fun+(2),则执行该语句后,s的值为________。 34.对象传送的消息一般由3部分组成:接收对象名、调用操作名和________。 35.将指向对象的指针作为函数参数,形参是对象指针,实参是对象的________。 36.在使用string类的find成员函数来检索主串中是否含有指定的子串时,若在主串中不含指定的子串,find函数的返回值是________。 37.在C++中,声明布尔类型变量所用的关键字是________。 38.执行下列代码 int a=29,b=100; cout < 程序的输出结果是:________。 39.执行下列代码 cout <<″Hex:″<< hex << 255; 程序的输出结果为________。 40.C++语言中可以实现输出一个换行符并刷新流功能的操控符是________。 1. C++的流库预定义了4个流,它们是cin、cout、clog和___。 答案:(P193)cerr [解析]cin、cout、clog和cerr分别用于标准输入、输出、标准错误流(缓冲)和标准错误流 (非缓冲)。 2. 每个对象都是所属类的一个___。 答案:(P69)实例 [解析]类是对象的抽象,对象是类的一个实例。 3. 在已经定义了整型指针ip后,为了得到一个包括10个整数的数组并由ip所指向,应使用语 句___。 答案:(P78)int *ip=new int[10]; [解析]new用来动态开辟空间。常用来产生动态数组及对象构造函数。 4. 函数模板中紧随template之后尖括号内的类型参数都要冠以保留字___。 答案:(P145)class [解析]类模板的使用。template T1,class T2,...,class Tn> 5. 定义类的动态对象数组时,系统只能够自动调用该类的___构造函数对其进行初始化。 答案:(P80)无参 [解析]使用new创建对象数组,调用无参构造函数。 6. 表达式cout< 答案:‘\n’ [解析]endl与字符常量‘\n’等价。 7. 在C++中,访问一个指针所指向的对象的成员所用的指向运算符是___。 答案:-> [解析]指针使用成员有两种方法:“->”指向运算符和“.”成员访问运算符。 8. 假如一个类的名称为MyClass,使用这个类的一个对象初始化该类的另一个对象时,可以调 用___构造函数来完成此功能。 答案:(P80)复制或拷贝 复制或拷贝构造函数就是用对象初始化新的对象。 9. 对赋值运算符进行重载时,应声明为___函数。 答案:(P183)类成员 [解析]运算符重载的方法有友元或者成员函数两种途径,但是赋值运算符只能使用成员函数的 方法来实现。 10. 如果要把A类成员函数f()且返回值为void声明为类B的友元函数,则应在类B的定义中加 入的语句___。 答案:(P109)friend void A::f(); [解析]成员函数作为另一个类的友元函数,格式为:friend 返回类型 类名::函数(形参)。 11. 下列程序段的输出结果是___。 for(i=0,j=10,k=0;i<=j;i++,j-=3,k=i+j);cout< 答案:4 [解析]for循环结构,三个表达式的作用,初始化、循环判断条件和循环变量变化。循环执行了 三次,k的作用是计算i、j的和。 12. String 类的___方法返回查找到的字符串在主串的位置。 答案:(P40)find [解析]string类对象方法的find,查不到字符串,则返回-1。 13. int n=0; while(n=1)n++; while循环执行次数是___。 答案:无限次 [解析]=是赋值运算符,不是关系运算符,且不等0,所以死循环。 14. 控制格式输入输出的操作中,函数___是用来设置填充字符。要求给出函数名和参数类型 。 答案:(P195)setfill(char) [解析]格式控制方法的使用,如setw,setfill等等。 15. C++语言支持的两种多态性分别是编译时的多态性和___的多态性。 答案:(P167)运行时 [解析]多态性包括静态的(编译时)多态性和动态的(运行时)多态性。 16. 设函数sum是由函数模板实现的,并且sum(3,6)和sum,8)都是正确的函数调用,则函 数模板具有___个类型参数。 答案:(P61)2 17. 执行下列代码 string str("HelloC++"); cout<<(5,3); 程序的输出结果是___。 答案:(P42)C++ [解析]substr取子字符串,第1个参数表示要截取子串在字符串中的位置,第2个表示取多少个 字符。 18. 在面向对象的程序设计中,将一组对象的共同特性抽象出来形成___。 答案:(P38)类 [解析]类是相似特征的对象的抽象,对象是类的一个实例。 19. 定义类动态对象数组时,元素只能靠自动调用该类的___来进行初始化。 答案:(P77)无参构造函数 [解析]使用new 创建动态对象数组,不能有参数,所以只能调用无参的构造函数,初始化对象 。 20. 已知有20个元素int类型向量V1,若用V1初始化为V2向量,语句是___。 答案:(P151)ector [解析]采用向量初始化另一个向量的形式:vector 1. 假设int a=1,b=2;则表达式(++a/b)*b--的值为___。 答案:2 [解析]前缀++或――表示先使变量值变化,再使用,这和后缀恰恰相反。但是编译 cout<<(++a/b)*b--时,先++a/b值为1,后1*b--,先取b=2,结果为2,再让b=1。 2. 抽象类中至少要有一个___函数。 答案:(P173)纯虚 [解析]至少有一个纯虚函数的类就称为抽象类,即不能实例化。 3. 一个抽象类的派生类可以实例化的必要条件是实现了所有的___。 答案:(P173)纯虚函数的定义 [解析]抽象类只因有纯虚函数,所以不能被实例化,所以派生类要实例化必须对纯虚函数进行 定义。 4. 下面程序的输出结果为___。 #include <> void main() {int num=2,i=6; do {i--; num++; }while(--i); cout< } 答案:5 [解析]do-while循环,前缀先使i减少1后判断是否为零,不为零时再次执行循环,为零退出 循环。循环值执行3次就退出,所以结果为5。 5. 静态成员函数、友元函数、构造函数和析构函数中,不属于成员函数的是___。 答案:(P109)友元函数 [解析]友元函数不是类成员,但可以访问类成员。类的封装性保证了数据的安全,但引入友元 ,虽然访问类是方便了,但确实破坏类访问的安全性。 6. 在用C++进行程序设计时,最好用___代替malloc。 答案:(P10)new [解析]new与delete是C++语言特有的运算符,用于动态分配和释放内存。new用于为各种数据 类型分配内存,并把分配到的内存首地址赋给相应的指针。new的功能类似于malloc()函数。 使用new的格式为: <指针变量>new<数据类型>; 其中,<数据类型>可以是基本数据类型,也可以是由基本类型派生出来的类型;<指针变量>取得 分配到的内存首地址。new有3种使用形式。 (1)给单个对象申请分配内存 int *ip;ip=new int;由const修饰的对象称为___。 答案:(P113)常对象 [解析]使用const关键字说明的成员函数称为常成员函数,使用const关键字说明的对象称为常 对象。 常成员函数的说明格式如下:<返回类型说明符><成员函数名>(<参数表>)const; 常成员函数不更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数。常对象 只能调用它的常成员函数,而不能调用其他成员函数。const关键字可以用于参与重载函数的区 分。 8. 在C++程序设计中,建立继承关系倒挂的树应使用___继承。 答案:(P138)单 [解析]一个基类可以派生多个子类,一个子类可以再派生出多个子类,这样就形成了一个倒立 的树。 9. 基类的公有成员在派生类中的访问权限由___决定。 答案:(P132)访问控制方式或继承方式 10. 不同对象可以调用相同名称的函数,但执行完全不同行为的现象称为___。 答案:(P167)多态性 [解析]多态性的概念。虚函数是实现多态的基础,运行过程中的多态需要同时满足3个条件 :(1)类之间应满足子类型关系。(2)必须要有声明的虚函数。(3)调用虚函数操作的是指向对象 的指针或者对象引用;或者是由成员函数调用虚函数(如果是在构造函数或析构函数中调用虚函 数,则采用静态联编)。 11. this指针始终指向调用成员函数的___。 答案:对象 this指针是隐藏的指针,它指向调用函数的对象。 12. 预处理命令以___符号开头。 答案:(P183)operater [解析]文件包含、预处理和编译都是以#开头。 13. 类模板用来表达具有___的模板类对象集。 答案:(P145)相同处理方法 [解析]模板特点是不同的数据具有相同的处理方法的抽象。 14. C++程序的源文件扩展名为___。 答案:(P21)cpp [解析]源程序*.cpp,目标文件为*.obj,可执行程序*.exe。 15. 在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是___的头文件。 答案:(P7)自定义 [解析]#include装入文件有两种方式<>和“”,一是系统的,一是自定义文件。 16. vector类中向向量尾部插入一个对象的方法是___。 答案:(P157)push_back 17. C++语言中如果调用函数时,需要改变实参或者返回多个值,应该采取___方式。 答案:(P51)传地址或引用 [解析]传地址即指针,在函数中通过指针修改它指向的变量的值时,实参也就变化了。使用引 用,直接修改变量的别名即引用的值,该变量也就随着变化。 18. 语句序列 ifstream infile; (“”); 的功能可用一个语句实现,这个语句是___。 答案:(P199)ifstream infile(“”); [解析]void ifstream::open(const char *fname,int mode=ios::in,int access=filebuf::openprot); ifstream::ifstream(const char *fname,int mode=ios::in,int access=filebuf::openprot); 其中,第一个参数是用来传递文件名的;第二个参数mode的值决定文件将如何被打开;第三个参 数access的值决定文件的访问方式,一般取缺省值filebuf::openprot,表示是普通文件。 mode的取值如下:(1)ios::in:打开一个文件进行读操作,而且该文件必须已经存在 ;(2)ios::nocreate:不建立新的文件。当文件不存在时,导致open()失败 ;(3)ios::noreplace:不修改原来已经存在的文件。若文件已经存在,导致open()失败 ;(4)ios::binary:文件以二进制方式打开,缺省时为文本文件。 19. 如果要把类B的成员函数void fun()说明为类A的友元函数,则应在类A中加入语句___。 答案:(P111)friend void B::fun(); [解析]声明成员函数作为另外一个类的友元函数时,使用类作用域运算符::。 20. 在编译指令中,宏定义使用___指令。 答案:(P6、97)#define [解析]静态成员是所有对象共享的特征,也就是类的特征。__ 1. 单目运算符作为类成员函数重载时,形参个数为___个。 答案:(P189)0 [解析]单目运算符使用成员函数重载可以不用形参,双目运算符使用一个参数。 2. 执行下列程序 int a=21,j=16; (ios::hex);
本文发布于:2024-02-07 18:15:34,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170730093465610.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |