1、二级 C+笔试-327 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下面程序段的输出结果是( )。int x=5;docout -x;while(!x);(分数:2.00)A.43210B.5C.4D.无任何输出2.下列语句段输出字符*的个数为( )。int i=100;while(1)i-;if(i=0) break;cout*;(分数:2.00)A.101个B.100个C.99个D.98个3.下列打开文件的表达式中,错误的是( )。(分数:2.00)A.ofstream ofile;ofile.open(“C:/vc/a.txt“,
2、ios:binary);B.fstream iofile;iofile.open(“a.txt“,ios:ate);C.ifstream ifile(“C:/vc/a.txt“);D.cout.open(“C:/vc/s.txt“,ios:binary);4.下列关于栈的描述,错误的是( )。(分数:2.00)A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针5.下面对二维数组 s的初始化语句,正确的是( )。(分数:2.00)A.int a23=1,2,3,4,5,6B.int a23=1,2,3,4,5,6;C.int a2=1,2,
3、3,4,5,6;D.int a=1,2,3,4,5,6;6.变量定义如下;int *p; 则下列不同于*p=*p+1; 的是( )。(分数:2.00)A.*p+;B.+ *p;C.*p+=1;D.+( *p);7.下列函数原型声明中错误的是( )。(分数:2.00)A.void fuc(int x=0,int y=0)B.void fnc(int x,int y)C.void fuc(int x,int y=0)D.void fuc(int x=0,int y)8.C+源程序的扩展名为( )。(分数:2.00)ACPPBCCEXEDDLL9.如果一个类至少有一个纯虚函数,那么该类称为( )。(
4、分数:2.00)A.抽象类B.虚基类C.派生类D.以上都不是10.在数据流图(DFD)中,带有名字的箭头表示( )。(分数:2.00)A.模块之间的调用关系B.数据的流向C.控制程序的执行程序D.程序的组成成分11.已知类 MyClas有一个只需要一个 double型参数的构造函数,其将运算符“+”重载为友元函数。要使语句序列 MyClas x(1.2),y(2.3),z(0);z=x+y; 能够正常运行,运算符函数 operator+应在类中声明为( )。(分数:2.00)A.friend MyClas operator+(int,MyClasB.friend MyClas operator
5、+(MyClas,MyClas);C.friend MyClas operator+(MyClas,MyClasD.friend MyClas operator+(MyClas12.下列模式中,能够给出数据库物理存储结构与物理存取方法的是( )。(分数:2.00)A.内模式B.外模式C.概念模式D.逻辑模式13.在函数定义前加上关键字 inline,表示该函数被定义为( )。(分数:2.00)A.重载函数B.内联函数C.普通函数D.构造函数14.下面对静态数据成员的描述中,正确的是( )。(分数:2.00)A.静态数据成员可以在类体内进行初始化B.静态数据成员不可以被类的对象调用C.静态数据成
6、员可以直接用类名调用D.静态数据成员不能受 protected控制符的作用15.类 MyClas定义如下:Class MyClaspublic:MyClas()value=0;setVariable(int i)value=I;private:int value;则以下对语句序列 MyClas *p,my;p= 的描述正确的是( )。(分数:2.00)A.语句 p-setVariable(5) 与语句 my.setVariable(5) 等价B.对语句 *p.setVariable(5)的调用是正确的C.语句 MyClas *p,my; 会调用两次类 MyClas的构造函数D.语句 p= 是把
7、对象 my赋值给指针变量 p16.C+本身没有定义 I/O操作,但 I/O操作包含在 C+实现中。C+标准库 iostream提供了基本的 I/O类,它包括类 iostream和( )。(分数:2.00)A.fstreamB.ostreamC.iostreamD.cin17.对长度为 10的线性表进行冒泡排序,最坏情况下需要比较的次数为( )。(分数:2.00)A.5B.100C.10D.4518.下列关于栈的叙述,正确的是( )。(分数:2.00)A.栈是非线性结构B.栈是一种树状结构C.栈具有“先进先出”的特征D.栈具有“后进先出”的特征19.下列概念中,不属于面向对象方法的是( )。(分
8、数:2.00)A.对象B.类C.继承D.过程调用20.以下定义:int(*p)4中,标识符 p是( )。(分数:2.00)A.一个指向整型变量的指针B.一个指针数组名C.一个指针,它指向一个含有 4个整型元素的一维数组D.说明不合法21.不属于结构化程序设计方法主要原则的是( )。(分数:2.00)A.自顶向下B.自底向上C.模块化D.限制使用 goto语句22.有以下结构体说明和变量的定义,且指针 p指向变量 a,指针 q指向变量 b,则不能把节点 b连接到节点 a之后的语句是( )。struct nodechar data;struct node *next;a,b, *p=(分数:2.0
9、0)A.next=q;B.next=C.p-next=23.为了使类中的成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为( )。(分数:2.00)A.publicB.protectedC.staticD.private24.“商品”与“顾客”两个实体集之间联系一般是( )。(分数:2.00)A.一对一B.多对多C.一对多D.多对一25.设有数组定义:char array=“China“;,则数组 array所占的空间为( )。(分数:2.00)A.6字节B.5字节C.4字节D.7字节26.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送( )。(分数:2.00
10、)A.调用语句B.命令C.口令D.消息27.决定 C+语言中函数的返回值类型的是( )。(分数:2.00)A.return语句中的表达式类型B.调用该函数时系统随机产生的类型C.调用该函数时的主调用函数类型D.在定义该函数时所指定的数据类型28.下列字符常量的写法中,错误的是( )。(分数:2.00)A./105B.*C./4fD./a29.凡是函数中未指定存储类别的局部变量,其隐含的存储类型是( )。(分数:2.00)A.autoB.staticC.regiserD.extern30.有以下程序,其输出结果是( )。#include iostreamusing namespace std;i
11、nt main()char a10=1,2,3,4,5,6,7,8,9,0,*p;int i=8;p=a+i;coutp-3endl;return 0;(分数:2.00)A.6789B.6C.789D.631.下列 C+运算符中,优先级最高的是( )。(分数:2.00)A.+(双目)B.*(单目)C.=D.*=32.下列有关析构函数的说法错误的是( )。(分数:2.00)A.一个类中析构函数有且仅有一个B.析构函数的作用是在对象被撤销时收回先前分配的内存空间C.析构函数和构造函数一样可以有形参D.析构函数无任何函数类型33.下列关键字中,用来说明虚函数的是( )。(分数:2.00)A.publ
12、icB.protectedC.privateD.virtual34.下列描述中正确的是( )。(分数:2.00)A.程序就是软件B.软件开发不受计算机系统的限制C.软件既是逻辑实体,又是物理实体D.软件是程序、数据与相关文档的集合35.下列选项中属于 C+语句的是( )。(分数:2.00)A.;B.a=17C.i+5D.cout/n二、填空题(总题数:14,分数:30.00)36.顺序存储方法是把逻辑上相邻的结点存储在物理位置 【1】 的存储单元中。(分数:2.00)填空项 1:_37.软件工程研究的内容主要包括:软件工程管理和 【2】 技术。(分数:2.00)填空项 1:_38.在关系模型中
13、,把数据看成一个二维表,每个二维表称为一个 【3】 。(分数:2.00)填空项 1:_39.在面向对象方法中,信息隐蔽是通过对象的 【4】 性来实现的。(分数:2.00)填空项 1:_40.数据库设计分为以下 6个设计阶段:需求分析阶段、 【5】 、逻辑设计阶段、物理设计阶段、实施阶段及数据库运行和维护阶段。(分数:2.00)填空项 1:_41.C+程序第 1条语句是从 【6】 函数开始执行的。(分数:2.00)填空项 1:_42.C+语言提供的基本数据类型包括整型、浮点型、逻辑型、空值型和 【7】 。(分数:2.00)填空项 1:_43.在 C+中,打开一个文件,就是将这个文件与一个 【8】
14、 建立关联,关闭一个文件,就是取消这种关联。(分数:2.00)填空项 1:_44.下面程序运行输出的结果是 【9】 。#include iostreamusing namespace std;int main()char a=“Chinese“;a3=/0;coutaendl;return 0;(分数:2.00)填空项 1:_45.下面是计算 n的阶乘的递归函数,请将该函数的定义补充完整。unsigned f(unsigned n)if(n=1) return 1;else return 【10】 ;(分数:2.00)填空项 1:_46.将一个函数声明为一个类的友元函数必须使用关键字 【11】
15、 。(分数:2.00)填空项 1:_47.下面程序运行后输出的结果是 【12】 。#include iostreamusing namespace std;class exampleconst int m;public:example(int i):m(i)void pr()cout“m=“mendl;int main()example x(100);x.pr();return 0;(分数:2.00)填空项 1:_48.对虚函数的调用有两种方式: 【13】 和 【14】 。(分数:4.00)填空项 1:_49.经常和一个运算符连用,构成一个运算符函数名的 C+关键字是 【15】 。(分数:2.
16、00)填空项 1:_二级 C+笔试-327 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下面程序段的输出结果是( )。int x=5;docout -x;while(!x);(分数:2.00)A.43210B.5C.4 D.无任何输出解析:解析 根据 dowhile循环语句功能的特点可得:首先无条件执行循环体,表达式-x 的值为 4,输出为 4,x 的值变为 4,然后检查条件(!x)为假(false),则循环结束。2.下列语句段输出字符*的个数为( )。int i=100;while(1)i-;if(i=0) break;cout*;(分
17、数:2.00)A.101个B.100个C.99个 D.98个解析:解析 本题中 while中的条件表达式永远为真,进入循环后先执行语句“i-;”,然后再执行后面的语句。由于当 i的值变为 0时,执行跳转语句 break,即跳出 while循环体。所以 i的取值为199,即循环 99次,输出 99个“*”。3.下列打开文件的表达式中,错误的是( )。(分数:2.00)A.ofstream ofile;ofile.open(“C:/vc/a.txt“,ios:binary);B.fstream iofile;iofile.open(“a.txt“,ios:ate);C.ifstream ifile
18、(“C:/vc/a.txt“);D.cout.open(“C:/vc/s.txt“,ios:binary); 解析:解析 选项 D中,open()函数并不是 cout对象中的成员函数,因此对 open()函数的调用是非法的。4.下列关于栈的描述,错误的是( )。(分数:2.00)A.栈是先进后出的线性表B.栈只能顺序存储 C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针解析:解析 栈既能顺序存储,又能链式存储。5.下面对二维数组 s的初始化语句,正确的是( )。(分数:2.00)A.int a23=1,2,3,4,5,6B.int a23=1,2,3,4,5,6; C.int
19、a2=1,2,3,4,5,6;D.int a=1,2,3,4,5,6;解析:解析 选项 A定义的是三行两列的数组,选项 C、D 错误地省略了第二维的长度声明。二维数组及多维数组定义的简化形式中,可以省略一个或多个括号,甚至只保留最外层的括号。因此正确答案是选项B。6.变量定义如下;int *p; 则下列不同于*p=*p+1; 的是( )。(分数:2.00)A.*p+; B.+ *p;C.*p+=1;D.+( *p);解析:解析 *p=*p+1;是将指针变量 p所指向的存储单元的值加 1,然后放入 p所指向的存储单元中。而选项 A中最后是将 p的值加 1,即移动一个单位的存储单元。7.下列函数原
20、型声明中错误的是( )。(分数:2.00)A.void fuc(int x=0,int y=0)B.void fnc(int x,int y)C.void fuc(int x,int y=0)D.void fuc(int x=0,int y) 解析:解析 C+允许在函数的说明或定义中给一个或多个参数指定默认值。但默认值必须从右向左定义,即在一个指定默认值的参数的右边,不能出现没有指定默认值的参数。8.C+源程序的扩展名为( )。(分数:2.00)ACPP BCCEXEDDLL解析:解析 本题考查 C+程序开发方面的知识点。C+语言源程序的扩展名为.cpp,.c 是 C语言源程序的扩展名,.dl
21、l 是动态连接库文件的扩展名,.exe 是可执行文件的扩展名。9.如果一个类至少有一个纯虚函数,那么该类称为( )。(分数:2.00)A.抽象类 B.虚基类C.派生类D.以上都不是解析:解析 抽象类是指至少有一个纯虚函数的类。10.在数据流图(DFD)中,带有名字的箭头表示( )。(分数:2.00)A.模块之间的调用关系B.数据的流向 C.控制程序的执行程序D.程序的组成成分解析:解析 数据流相当于一条管道,并有数据流经它。在数据流图中,用标有名字的箭头表示数据流。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。11.已知类 My
22、Clas有一个只需要一个 double型参数的构造函数,其将运算符“+”重载为友元函数。要使语句序列 MyClas x(1.2),y(2.3),z(0);z=x+y; 能够正常运行,运算符函数 operator+应在类中声明为( )。(分数:2.00)A.friend MyClas operator+(int,MyClasB.friend MyClas operator+(MyClas,MyClas); C.friend MyClas operator+(MyClas,MyClasD.friend MyClas operator+(MyClas解析:解析 由重载的定义格式可知运算符函数应在类中
23、声明为:friend MyClas operator +(MyClas,MyClas);12.下列模式中,能够给出数据库物理存储结构与物理存取方法的是( )。(分数:2.00)A.内模式 B.外模式C.概念模式D.逻辑模式解析:解析 数据库管理系统的三级模式结构由外模式、模式和内模式组成。外模式或子模式,或用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图。模式或逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。内模式、存储模式或物理模式,是指数据在数据库系统内的存储介质上的表示,即对数据的物理结构和存取方式的描述。13.在函数定义前加上关键字
24、 inline,表示该函数被定义为( )。(分数:2.00)A.重载函数B.内联函数 C.普通函数D.构造函数解析:解析 内联函数的定义是在一般函数的定义前加上 inline关键字。14.下面对静态数据成员的描述中,正确的是( )。(分数:2.00)A.静态数据成员可以在类体内进行初始化B.静态数据成员不可以被类的对象调用C.静态数据成员可以直接用类名调用 D.静态数据成员不能受 protected控制符的作用解析:解析 C+中,规定对静态数据成员的初始化应该在类体外进行初始化;静态数据成员可以被任意访问权限许可的函数或对象访问;静态数据成员也可以定义为私有的静态数据成员;静态数据成员既可以通
25、过类名访问,也可以通过对象访问。15.类 MyClas定义如下:Class MyClaspublic:MyClas()value=0;setVariable(int i)value=I;private:int value;则以下对语句序列 MyClas *p,my;p= 的描述正确的是( )。(分数:2.00)A.语句 p-setVariable(5) 与语句 my.setVariable(5) 等价 B.对语句 *p.setVariable(5)的调用是正确的C.语句 MyClas *p,my; 会调用两次类 MyClas的构造函数D.语句 p= 是把对象 my赋值给指针变量 p解析:解析
26、选项 A中,p 是对象指针,所以调用 p的成员要用符号“-”,而 my是一般的类对象,所以调用 my的成员用“.”;选项 B中正确的调用方式应该是(*p).set Variable;选项 C中仅调用一次类对象的构造函数;选项 D是把对象 my的地址赋值给指针变量 p,而不是对象本身。16.C+本身没有定义 I/O操作,但 I/O操作包含在 C+实现中。C+标准库 iostream提供了基本的 I/O类,它包括类 iostream和( )。(分数:2.00)A.fstreamB.ostream C.iostreamD.cin解析:解析 C+中,istream 类提供了向流中插入数据的有关操作,o
27、stream 类提供了从流中读取数据的有关操作。17.对长度为 10的线性表进行冒泡排序,最坏情况下需要比较的次数为( )。(分数:2.00)A.5B.100C.10D.45 解析:解析 在最坏的情况下,冒泡排序要经过 n/2遍的从前往后的扫描和 n/2的从后往前的扫描,需要的比较次数为 n(n-1)/2,所以比较的次数为 10(10-1)/2=45。18.下列关于栈的叙述,正确的是( )。(分数:2.00)A.栈是非线性结构B.栈是一种树状结构C.栈具有“先进先出”的特征D.栈具有“后进先出”的特征 解析:解析 栈实际上也是线性表,是按照“先进后出”或“后进先出”的原则组织数据的。19.下列
28、概念中,不属于面向对象方法的是( )。(分数:2.00)A.对象B.类C.继承D.过程调用 解析:解析 面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。面向对象方法从对象出发,发展出对象、类、消息、继承等概念。20.以下定义:int(*p)4中,标识符 p是( )。(分数:2.00)A.一个指向整型变量的指针B.一个指针数组名C.一个指针,它指向一个含有 4个整型元素的一维数组 D.说明不合法解析:解析 本题中相当于定义了一个二维数组 int p4,标识符 p是一个指针,指向一个含有 4个元素的一维数组。21.不属于结构化程序设计方法主要原则的是( )
29、。(分数:2.00)A.自顶向下B.自底向上 C.模块化D.限制使用 goto语句解析:解析 自底向上不属于结构化程序设计方法主要原则。22.有以下结构体说明和变量的定义,且指针 p指向变量 a,指针 q指向变量 b,则不能把节点 b连接到节点 a之后的语句是( )。struct nodechar data;struct node *next;a,b, *p=(分数:2.00)A.next=q;B.next= C.p-next=解析:解析 对象成员有两种访问方式:一个是通过对象名,使用“.”运算符来访问;另一个是通过指向对象的指针,使用“-”运算符来访问其成员。因此,选项 B的访问方式是错误的
30、。23.为了使类中的成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为( )。(分数:2.00)A.public B.protectedC.staticD.private解析:解析 public 允许类对象对类的属性和方法进行访问;private 不允许类对象访问类的属性和方法;protected 不允许类及其子类的对象访问父类的属性和方法,但子类可以访问父类中定义的protected属性和方法。24.“商品”与“顾客”两个实体集之间联系一般是( )。(分数:2.00)A.一对一B.多对多 C.一对多D.多对一解析:解析 对于“商品”和“顾客”两个实体集来说,一种商品可被多个
31、顾客来购买,而一个顾客也可以购买多种商品。因此,两者的联系属于多对多的联系。25.设有数组定义:char array=“China“;,则数组 array所占的空间为( )。(分数:2.00)A.6字节 B.5字节C.4字节D.7字节解析:解析 在本题的定义方式中,系统会自动在数组最后加入一个/0,表示字符数组的结束,因此数组的长度是 6个字节。26.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送( )。(分数:2.00)A.调用语句B.命令C.口令D.消息 解析:解析 消息是一个实例与另一个实例之间传递的消息,它请求对象执行某一处理或回答某一要求的信息,消息统一了控制流和数据
32、流。27.决定 C+语言中函数的返回值类型的是( )。(分数:2.00)A.return语句中的表达式类型B.调用该函数时系统随机产生的类型C.调用该函数时的主调用函数类型D.在定义该函数时所指定的数据类型 解析:解析 C+中函数的返回值类型是由定义函数时所指定的函数类型决定的,而不是其他内容决定的。28.下列字符常量的写法中,错误的是( )。(分数:2.00)A./105B.*C./4f D./a解析:解析 选项 A、选项 B和选项 D的表示方法都符合规则。选项 C中是反斜线引导一个具有 12 位的十六进制数;但是没有以字母 x作为开始标记。29.凡是函数中未指定存储类别的局部变量,其隐含的
33、存储类型是( )。(分数:2.00)A.auto B.staticC.regiserD.extern解析:解析 变量说明时使用 auto修饰的局部变量是自动变量,auto 经常省略,在未指定存储类别时,默认为 auto。30.有以下程序,其输出结果是( )。#include iostreamusing namespace std;int main()char a10=1,2,3,4,5,6,7,8,9,0,*p;int i=8;p=a+i;coutp-3endl;return 0;(分数:2.00)A.6789 B.6C.789D.6解析:解析 没有下标的数组名是一个指向该数组首元素的指针,本
34、程序实现的功能是将字符“6”及其以后的字符按字符串形式输出。31.下列 C+运算符中,优先级最高的是( )。(分数:2.00)A.+(双目)B.*(单目) C.=D.*=解析:解析 在题中各选项中,只有选项 B是单目运算符,所以它是优先级最高的。32.下列有关析构函数的说法错误的是( )。(分数:2.00)A.一个类中析构函数有且仅有一个B.析构函数的作用是在对象被撤销时收回先前分配的内存空间C.析构函数和构造函数一样可以有形参 D.析构函数无任何函数类型解析:解析 当对象被释放时,系统自动调用类的析构函数。一个类中只能定义一个析构函数,所以析构函数不能被重载,并且析构函数中没有形参。33.下
35、列关键字中,用来说明虚函数的是( )。(分数:2.00)A.publicB.protectedC.privateD.virtual 解析:解析 C+中说明虚函数的方法是:virtual 类型说明符函数名(参数表);。其中被关键字 virtual说明的函数称为虚函数。34.下列描述中正确的是( )。(分数:2.00)A.程序就是软件B.软件开发不受计算机系统的限制C.软件既是逻辑实体,又是物理实体D.软件是程序、数据与相关文档的集合 解析:解析 计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。35.下列选项中属于 C+语句的是( )。(分数:2.00)A.
36、; B.a=17C.i+5D.cout/n解析:解析 语句是 C+程序中的基本功能单元。C+语句通常是以分号作为结束标记。选项 A是一个空语句。二、填空题(总题数:14,分数:30.00)36.顺序存储方法是把逻辑上相邻的结点存储在物理位置 【1】 的存储单元中。(分数:2.00)填空项 1:_ (正确答案:相邻)解析:解析 常用的存储表示方法有 4种,顺序存储、链式存储、索引存储、散列存储。其中,顺序存储方法是把逻辑上相邻的结点存储在物理位置也相邻的存储单元中。37.软件工程研究的内容主要包括:软件工程管理和 【2】 技术。(分数:2.00)填空项 1:_ (正确答案:软件开发)解析:解析
37、基于软件工程的目标,软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软件开发方法学。软件工程管理包括:软件管理学、软件工程经济学以及软件心理学等内容。38.在关系模型中,把数据看成一个二维表,每个二维表称为一个 【3】 。(分数:2.00)填空项 1:_ (正确答案:关系)解析:解析 关系模型采用二维表来表示,满足一定性质的二维表称为关系。39.在面向对象方法中,信息隐蔽是通过对象的 【4】 性来实现的。(分数:2.00)填空项 1:_ (正确答案:封装)解析:解析 软件工程的基本原则包括抽象
38、、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。信息隐蔽是指采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单。40.数据库设计分为以下 6个设计阶段:需求分析阶段、 【5】 、逻辑设计阶段、物理设计阶段、实施阶段及数据库运行和维护阶段。(分数:2.00)填空项 1:_ (正确答案:概念设计阶段)解析:解析 数据库设计分为以下 6个设计阶段:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、实施阶段及数据库运行和维护阶段。41.C+程序第 1条语句是从 【6】 函数开始执行的。(分数:2.00)填空项 1:_ (正确答案:main)解析:解析 在 C+中,程序总
39、是从 main()函数的第 1条语句开始执行,到 main()函数的最后一条语句结束。42.C+语言提供的基本数据类型包括整型、浮点型、逻辑型、空值型和 【7】 。(分数:2.00)填空项 1:_ (正确答案:字符型)解析:解析 C+语言提供的 5种基本数据类型包括:整型、浮点型、字符型、逻辑型和空值型。43.在 C+中,打开一个文件,就是将这个文件与一个 【8】 建立关联,关闭一个文件,就是取消这种关联。(分数:2.00)填空项 1:_ (正确答案:流)解析:解析 打开一个文件,就是将这个文件与一个流建立关联。44.下面程序运行输出的结果是 【9】 。#include iostreamusi
40、ng namespace std;int main()char a=“Chinese“;a3=/0;coutaendl;return 0;(分数:2.00)填空项 1:_ (正确答案:Chi)解析:解析 字符串的结束标识是/0,输出字符串时,到第一个/0输出结束,而不管其后是否还有数据,因此本题输出为字符中的前 3个字符。45.下面是计算 n的阶乘的递归函数,请将该函数的定义补充完整。unsigned f(unsigned n)if(n=1) return 1;else return 【10】 ;(分数:2.00)填空项 1:_ (正确答案:n *f(n-1))解析:解析 本题首先判断是否小于
41、等于 1,若是返回 1,否则返回 n乘以(n-1)!,这样递归下去,因此答案为:n*f(n-1)。46.将一个函数声明为一个类的友元函数必须使用关键字 【11】 。(分数:2.00)填空项 1:_ (正确答案:friend)解析:解析 声明友元的方式是在类定义中用关键字 friend说明该函数或类。47.下面程序运行后输出的结果是 【12】 。#include iostreamusing namespace std;class exampleconst int m;public:example(int i):m(i)void pr()cout“m=“mendl;int main()exampl
42、e x(100);x.pr();return 0;(分数:2.00)填空项 1:_ (正确答案:m=100)解析:解析 在类 example中,定义了一个常数据成员 m,所以构造函数只能通过初始化列表来初始化它。48.对虚函数的调用有两种方式: 【13】 和 【14】 。(分数:4.00)填空项 1:_ (正确答案:非多态调用,多态调用)解析:解析 非多态调用和多态调用是 C+中调用虚函数的两种方式。49.经常和一个运算符连用,构成一个运算符函数名的 C+关键字是 【15】 。(分数:2.00)填空项 1:_ (正确答案:operator)解析:解析 运算符函数的函数名是由运算符前加关键字 operator构成的。