C++自考填空题.docx

上传人:b****4 文档编号:3443269 上传时间:2022-11-23 格式:DOCX 页数:28 大小:33.30KB
下载 相关 举报
C++自考填空题.docx_第1页
第1页 / 共28页
C++自考填空题.docx_第2页
第2页 / 共28页
C++自考填空题.docx_第3页
第3页 / 共28页
C++自考填空题.docx_第4页
第4页 / 共28页
C++自考填空题.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

C++自考填空题.docx

《C++自考填空题.docx》由会员分享,可在线阅读,更多相关《C++自考填空题.docx(28页珍藏版)》请在冰豆网上搜索。

C++自考填空题.docx

C++自考填空题

21.在C++语言的面向对象设计框架中,_______是程序的基本组成单元。

22.执行代码doublepi=3.1415192;cout<

23.C++语言提供的的基本控制结构可以分为3种类型:

顺序结构、_______和循环结构。

24.要使用STL库提供的对数组进行降幂排序算法,在源程序中需要包含的头文件是______。

25.在C++标准库中,用_______类来表示复数。

26.将对象作为函数参数,是将实参对象的_______传递给形参对象,这种传递是单向的。

27.C++函数的返回类型可以是除数组与_______以外的任何类型。

28.能提供封装的C++关键字是_______。

29.在C++的类声明中,用public关键字声明的类成员的访问权限是_______。

30.开发一个C++语言程序的步骤通常包括编辑、_______、连接、运行和调试。

31.C++类中的_______函数在对象的生存期结束时被自动调用。

32.友元函数可以存取类的_______、公有成员和保护成员。

33.若类的成员函数用关键字static进行修饰,这样的成员函数称为_______。

34.在C++中,创建派生类对象时,总是先从_______的初始化开始的。

35.类的继承是指派生类继承基类的数据成员和_______。

36.在C++中,利用向量类模板定义一个具有20个double的向量,其元素均被置为0.5,实现此操作的语句是_______。

37.vector类中用于返回向量中的最后一个对象的方法是_________。

38.虚函数类似于重载函数,但与重载函数的实现策略不同,对虚函数声明时应使用_______关键字。

39.在C++中,虽然友元提供了类之间数据进行访问的一种方式,但它破坏了面向对象程序设计的_______特性。

40.执行下列代码

cout<

21.若使用标准输出流把整型变量a的值输出到屏幕上,实现此操作的C++语句是______。

22.C++将数据从一个对象流向另一个对象的流动抽象为“流”,从流中获取数据的操作称为______。

23.执行下列代码

intb=100;

cout<<"Hex:

"<

程序的输出结果是______。

24.静态联编所支持的多态性称为______的多态性。

25.C++程序必须有且只有一个主函数,其函数名为______。

26.写出声明一个复数对象的语句,并使该对象被初始化为2.2+1.3i,此声明语句是______。

27.若有函数定义为:

intadd(intml=0,intm2=2,intm3=4)

{returnml+m2+m3;}

在主函数中有ints=add

(1)+add(0,1)+add(0,1,2);

则执行此语句后s的值为______。

28.C++中使用______关键字说明函数为内联函数。

29.在源程序中有宏定义:

#definePI3.14,则若不想使该宏定义影响到程序的其它地方,可以使用______删除该宏定义。

30.类和其它数据类型不同的是,组成这种类型的不仅可以有数据,还可以有对数据进行操作的_______。

31.有下列代码inta=0;doubleb=0;cin>>a>>b;当用键盘输入1.25时,b=______。

32.对于类Point而言,其析构函数的定义原型为______。

33.对象成员构造函数的调用顺序取决于这些对象在类中说明的顺序,与它们在成员初始化列表中给出的顺序______。

34.类的简单成员函数是指声明中不含______、volatile、static关键字的函数。

35.与操作对象的数据类型相互独立的算法称为______。

36.从一个或多个以前定义的类产生新类的过程称为______。

37.在vector类中向向量尾部插入一个对象的方法是______。

38.C++中用于动态创建对象,并返回该对象的指针的关键字是______。

39.C++的流类库预定义的与标准输出设备相联接的流是______。

40.执行下列代码

cout<

程序输出结果是______。

21.设要把一个文件输出流对象myFile与文件“f:

\myText.txt相关联,所用的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(6.0)+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(4.6,8)都是正确的函数调用,则函

数模板具有___个类型参数。

答案:

(P61)2

17.执行下列代码

stringstr("HelloC++");

cout<

程序的输出结果是___。

答案:

(P42)C++

[解析]substr取子字符串,第1个参数表示要截取子串在字符串中的位置,第2个表示取多少个

字符。

18.在面向对象的程序设计中,将一组对象的共同特性抽象出来形成___。

答案:

(P38)类

[解析]类是相似特征的对象的抽象,对象是类的一个实例。

19.定义类动态对象数组时,元素只能靠自动调用该类的___来进行初始化。

答案:

(P77)无参构造函数

[解析]使用new创建动态对象数组,不能有参数,所以只能调用无参的构造函数,初始化对象

20.已知有20个元素int类型向量V1,若用V1初始化为V2向量,语句是___。

答案:

(P151)ectorV2(V1);

[解析]采用向量初始化另一个向量的形式:

vectorname1(name);__

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;//ip指向1个未初始化的int型对象

(2)给单个对象申请分配内存的同时初始化该对象

int*ip;ip=newint(68);//ip指向1个表示为68的int型对象

(3)同时给多个对象申请分配内存

int*ip;ip=newint[5];//ip指向5个未初始化的int型对象的首地址

for(inti=0;i<5;i++)ip[i]=5*i+1;//给ip指向的5个对象赋值

用new申请分配内存时,不一定能申请成功。

若申请失败,则返回NULL,即空指针。

因此,在程

序中可以通过判断new的返回值是否为0来获知系统中是否有足够的空间供用户使用。

7.由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;

infile.open(“data.dat”);

的功能可用一个语句实现,这个语句是___。

答案:

(P199)ifstreaminfile(“data.dat”);

[解析]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;

cout.setf(ios:

:

hex);

cout<

cout.unsetf(ios:

:

hex);

cout<

程序的输出结果是___。

答案:

(P196)1516

[解析]a=21以十六进制输出,j=16以十进制输出。

3.为了在对象生存期结束时释放其指针成员所指向的动态存储空间,通常为该类定义___。

答案:

(P80)析构函数

[解析]析构函数用来释放对象所占的空间。

4.复制构造函数使用___作为形式参数。

答案:

(P80)对象的引用

[解析]复制构造函数使用对象的引用来初始化一个新对象,避免临时产生对象。

5.假定用户没有给一个名为AB的类定义构造函数,则系统自动给出的缺省构造函数定义为

___。

答案:

(P75)AB()

[解析]构造函数的名称必须同类名一致,为对象分配空间和初始化。

构造函数不能指定返回类

型,函数体中不允许有返回值。

构造函数可以重载,一个类可以定义多个参数个数不同的构造函

数。

如果一个类没有定义任何构造函数,那么C++就自动建立一个默认的构造函数,没有形参

,仅创建对象而不作任何初始化。

6.为了实现运行时的多态性,派生类需重新定义基类中的___。

答案:

(P165)虚函数

[解析]实现运行时多态性,需要在基类中声明虚函数或纯虚函数。

7.重载函数在参数类型或参数个数上不同,但___必须相同。

答案:

函数名

[解析]函数重载,形参个数、类型不同但函数名必须相同,返回类型可以不同。

8.下面程序运行的结果是___。

#include

voidmain()

{cout.fill(*);

cout.width(5);

cout<<"hello"<

cout.clear();

}

答案:

hello

[解析]设置宽度是5但“hello”已经是5个宽度,所以不需要填充。

9.局部对象和全局对象中,在同一程序中___生存期最长。

答案:

全局对象

变量或对象的生命期或者作用域的不同,全局对象生命期长。

10.用___修饰函数称为虚函数。

答案:

(P170)virtual

[解析]虚函数的定义格式:

virtual返回类型函数名(形参列表){}。

11.下列程序段的输出结果是___。

cout.setf(ios:

:

showpos);

cout<<509.3<

答案:

(P193)+509.3

[解析]输入、输出格式ios:

:

showpos用于输出数据的符号位。

12.在C++中,利用向量类模板定义一个具有10个int的向量V,其元素均被置为字符2,实现此

操作的语句是___。

答案:

(P151)vectorV(10,2)

[解析]向量的操作,定义向量列表有多种形式,如

vectorV,vectorV(10),vectorV(10,2)或者vectorV(向量对象)。

13.定义重载函数,应在___上有所不同。

答案:

(P59)参数类型与参数的个数

[解析]重载必须在参数个数或参数类型不同,只有返回类型不同的函数不能构成函数的重载。

14.类是用户定义的类型,具有类类型的变量称作___。

答案:

(P37)对象

[解析]对象是类的一个实例。

类是对象的抽象。

15.在函数体之前加___关键字可以防止覆盖函数改变数据成员的值。

答案:

(P113)cons

[解析]const修饰的对象称为常对象,修饰的引用称为常引用它们的值不允许修改。

16.在构造函数和析构函数中调用虚函数时采用___。

答案:

(P167)静态联编

[解析]在析构或构造函数调用虚函数发生静态多态性。

17.若函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的___语句。

答案:

声明

[解析]函数使用有两部分:

声明和定义。

定义在前,可以无声明;但函数定义在后,调用在前

的话,需要先声明函数的原

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

当前位置:首页 > 表格模板 > 合同协议

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

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