C++自考填空题.docx
- 文档编号:8614735
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:27
- 大小:32.63KB
C++自考填空题.docx
《C++自考填空题.docx》由会员分享,可在线阅读,更多相关《C++自考填空题.docx(27页珍藏版)》请在冰豆网上搜索。
C++自考填空题
21.在C++语言的面向对象设计框架中,_______是程序的基本组成单元。
22.执行代码doublepi=;cout< ++语言提供的的基本控制结构可以分为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< 21.若使用标准输出流把整型变量a的值输出到屏幕上,实现此操作的C++语句是______。 ++将数据从一个对象流向另一个对象的流动抽象为“流”,从流中获取数据的操作称为______。 23.执行下列代码 intb=100; cout<<"Hex: "< 程序的输出结果是______。 24.静态联编所支持的多态性称为______的多态性。 ++程序必须有且只有一个主函数,其函数名为______。 26.写出声明一个复数对象的语句,并使该对象被初始化为+,此声明语句是______。 27.若有函数定义为: intadd(intml=0,intm2=2,intm3=4) {returnml+m2+m3;} 在主函数中有ints=add (1)+add(0,1)+add(0,1,2); 则执行此语句后s的值为______。 ++中使用______关键字说明函数为内联函数。 29.在源程序中有宏定义: #definePI,则若不想使该宏定义影响到程序的其它地方,可以使用______删除该宏定义。 30.类和其它数据类型不同的是,组成这种类型的不仅可以有数据,还可以有对数据进行操作的_______。 31.有下列代码inta=0;doubleb=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有成员函数 voidFun(void); 若要定义一个指向类成员函数的指针变量pafn来指向Fun,该指针变量的声明语句是: ________。 31.设在程序中使用如下语句申请了一个对象数组: Point*ptr=newPoint[2]; 则在需要释放ptr指向的动态数组对象时,所使用的语句是________。 32.在保护派生中,基类权限为Private的成员在派生类中________。 33.类A有如下成员函数 intA: : fun(doublex){return(int)x/2;} intA: : fun(intx){returnx*2;} 设a为类A的对象,在主函数中有ints=a.fun+ (2),则执行该语句后,s的值为________。 34.对象传送的消息一般由3部分组成: 接收对象名、调用操作名和________。 35.将指向对象的指针作为函数参数,形参是对象指针,实参是对象的________。 36.在使用string类的find成员函数来检索主串中是否含有指定的子串时,若在主串中不含指定的子串,find函数的返回值是________。 37.在C++中,声明布尔类型变量所用的关键字是________。 38.执行下列代码 inta=29,b=100; cout< 程序的输出结果是: ________。 39.执行下列代码 cout<<″Hex: ″< 程序的输出结果为________。 40.C++语言中可以实现输出一个换行符并刷新流功能的操控符是________。 1.C++的流库预定义了4个流,它们是cin、cout、clog和___。 答案: (P193)cerr [解析]cin、cout、clog和cerr分别用于标准输入、输出、标准错误流(缓冲)和标准错误流 (非缓冲)。 2.每个对象都是所属类的一个___。 答案: (P69)实例 [解析]类是对象的抽象,对象是类的一个实例。 3.在已经定义了整型指针ip后,为了得到一个包括10个整数的数组并由ip所指向,应使用语 句___。 答案: (P78)int*ip=newint[10]; [解析]new用来动态开辟空间。 常用来产生动态数组及对象构造函数。 4.函数模板中紧随template之后尖括号内的类型参数都要冠以保留字___。 答案: (P145)class [解析]类模板的使用。 template template T1,classT2,...,classTn> 5.定义类的动态对象数组时,系统只能够自动调用该类的___构造函数对其进行初始化。 答案: (P80)无参 [解析]使用new创建对象数组,调用无参构造函数。 6.表达式cout< 答案: ‘\n’ [解析]endl与字符常量‘\n’等价。 7.在C++中,访问一个指针所指向的对象的成员所用的指向运算符是___。 答案: -> [解析]指针使用成员有两种方法: “->”指向运算符和“.”成员访问运算符。 8.假如一个类的名称为MyClass,使用这个类的一个对象初始化该类的另一个对象时,可以调 用___构造函数来完成此功能。 答案: (P80)复制或拷贝 复制或拷贝构造函数就是用对象初始化新的对象。 9.对赋值运算符进行重载时,应声明为___函数。 答案: (P183)类成员 [解析]运算符重载的方法有友元或者成员函数两种途径,但是赋值运算符只能使用成员函数的 方法来实现。 10.如果要把A类成员函数f()且返回值为void声明为类B的友元函数,则应在类B的定义中加 入的语句___。 答案: (P109)friendvoidA: : 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.intn=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.执行下列代码 stringstr("HelloC++"); cout<<(5,3); 程序的输出结果是___。 答案: (P42)C++ [解析]substr取子字符串,第1个参数表示要截取子串在字符串中的位置,第2个表示取多少个 字符。 18.在面向对象的程序设计中,将一组对象的共同特性抽象出来形成___。 答案: (P38)类 [解析]类是相似特征的对象的抽象,对象是类的一个实例。 19.定义类动态对象数组时,元素只能靠自动调用该类的___来进行初始化。 答案: (P77)无参构造函数 [解析]使用new创建动态对象数组,不能有参数,所以只能调用无参的构造函数,初始化对象 。 20.已知有20个元素int类型向量V1,若用V1初始化为V2向量,语句是___。 答案: (P151)ector [解析]采用向量初始化另一个向量的形式: vector 1.假设inta=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<> voidmain() {intnum=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=newint;由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.语句序列 ifstreaminfile; (“”); 的功能可用一个语句实现,这个语句是___。 答案: (P199)ifstreaminfile(“”); [解析]voidifstream: : open(constchar*fname,intmode=ios: : in,int access=filebuf: : openprot); ifstream: : ifstream(constchar*fname,intmode=ios: : in,intaccess=filebuf: : openprot); 其中,第一个参数是用来传递文件名的;第二个参数mode的值决定文件将如何被打开;第三个参 数access的值决定文件的访问方式,一般取缺省值filebuf: : openprot,表示是普通文件。 mode的取值如下: (1)ios: : in: 打开一个文件进行读操作,而且该文件必须已经存在 ; (2)ios: : nocreate: 不建立新的文件。 当文件不存在时,导致open()失败 ;(3)ios: : noreplace: 不修改原来已经存在的文件。 若文件已经存在,导致open()失败 ;(4)ios: : binary: 文件以二进制方式打开,缺省时为文本文件。 19.如果要把类B的成员函数voidfun()说明为类A的友元函数,则应在类A中加入语句___。 答案: (P111)friendvoidB: : fun(); [解析]声明成员函数作为另外一个类的友元函数时,使用类作用域运算符: : 。 20.在编译指令中,宏定义使用___指令。 答案: (P6、97)#define [解析]静态成员是所有对象共享的特征,也就是类的特征。 __ 1.单目运算符作为类成员函数重载时,形参个数为___个。 答案: (P189)0 [解析]单目运算符使用成员函数重载可以不用形参,双目运算符使用一个参数。 2.执行下列程序 inta=21,j=16; (ios: : hex);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 自考 填空