1、二级 C+笔试-274 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列叙述中正确的是( )。(分数:2.00)A.在模块化程序设计中,一个模块应该尽量多的包括与其他模块联系的信息B.在自顶向下、逐步细化的设计过程中,首先应设计解决问题的第一个细节C.在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则D.在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法2.有如下类声明:class XAint X;public:XA(int n)x=n;;class XB:public XAint y;public:XB(i
2、nt a,int b);在构造函数 XB的下列定义中,正确的是( )。(分数:2.00)A.XB:XB(inta,int b):x(a),y(b)B.XB:XB(int a,int b):XA(a),y(b)C.XB:XB(int a,int b):x(a),XB(b)D.XB:XB(int a,int b):XA(a),XB(b)3.有如下类声明:class XAint X;public:XA(int n)x=n;class XB:publicXAint y;public:XB(int a,int b););在构造函数 XB的下列定义中,正确的是( )。(分数:2.00)A.XB:XB(in
3、t a,int b):x(a),y(b)B.XB:XB(int a,int b):XA(a),y(b)C.XB:XB(int a,int b):x(a),XB(b)D.XB:XB(int a,int b):XA(a),XB(b)4.下面关于 C+流的叙述中,正确的是( )。(分数:2.00)A.cin是一个输入流对象B.可以用 if stream定义一个输出流对象C.执行语句序列 char*y=“PQMN”;couty;将输出字符串”PQMN”的地址D.执行语句序列 char x80;cin.getline(x,80);时。若键入“Happy new year”,则,中的字符串是“Happy”
4、5.下列叙述中错误的是( )。(分数:2.00)A.一种数据的逻辑结构可以有多种存储结构B.数据的存储结构与数据的处理效率无关C.数据的存储结构与数据的处理效率密切相关D.数据的存储结构在计算机中所占的空间不一定是连续的6.有如下函数模板声明:templatetypename TT Max(T a,T b)return(a=b)?a:b;下列对函数模板 Max()的调用中错误的是( )。(分数:2.00)A.Max(3.5,4.5)B.Max(3.5,4)C.Max(double)(3.5,4.5)D.Maxdouble(3.5,4)7.下列工具中为需求分析常用工具的是( )。(分数:2.00
5、)A.PADB.PFDC.N-SD.DFD8.有如下数组声明:int numC10,下标值引用错误的是( )。(分数:2.00)A.num10B.num5C.nam3)D.num09.下列虚基类的声明中正确的是( )。(分数:2.00)A.class virtual B:public AB.virtual class B:public AC.class B:public A virtualD.class B:virtual public A10.有如下程序:#includeiostreamusing namespace std;Class TestClassprivate:int x,y;pu
6、blic:TestClass(int i,int j)xi;yj;void print()cout“print1”endl;void print()constcout”print2”(endl;);Int main()const TestClass a(1,2);a.print();return 0;该程序运行后的输出结果是( )。(分数:2.00)A.printlB.print2C.printl print2D.程序编译时出错。11.下列是软件调试技术的是( )。(分数:2.00)A.错误推断B.集成测试C.回溯法D.边界值分析12.两个或两个以上模块之间联系的紧密程度称为( )。(分数:2
7、.00)A.耦合性B.内聚性C.复杂性D.数据传输特性13.以下程序的输出结果是( )。min()int i=0,a=0;while(i20)for(;)if(i%10)=0)break;else i-;i+=11;a+=i;coutaendl;(分数:2.00)A.21B.32C.33D.1114.下列关于运行符重载的描述中,正确的是( )。(分数:2.00)A.运算符重载可以改变操作数的个数B.运算符重载可以改变操作数的优先级C.运算符重载可以改变运算符的结合性D.运算符重载可以使运算符实现特殊功能15.当需要将一个函数 bool isnumber(char c)声明为内联函数时,则此内联
8、函数的函数原型为( )。(分数:2.00)A.enum bool isnumber(char c);B.define bool isnumber(char c);C.inline bool isnumber(char c);D.extem bool isnumber(char c);16.下面程序的运行结果为( )。#includeiostream.hvoid swap(int private:int value;则对下列语句序列正确的描述是( )。(分数:2.00)A.语句 pbreak;default:cout“1”;(分数:2.00)A.3B.321C.31D.3221.有如下程序:#i
9、ncludeiostreamusing namespace std;Class Testpublic:Test() n+2;Test() n-3;static int getNum() return n;private:static int n;int Test:n1;int main()Test*pnew Test;delete p;cout“n”Tes:getNum()endl;return 0;执行后的输出结果是( )。(分数:2.00)A.n0B.n1C.n=2D.n=322.已知在一个类体中包含如下函数原型:VOLUME OPERATOR-(VOLUME)const;,下列关于这个函
10、数的叙述中,错误的是( )。(分数:2.00)A.这是运算符-的重载运算符函数B.这个函数所重载的运算符是一个一元运算符C.这是一个成员函数D.这个函数不改变类的任何数据成员的值23.对于拷贝构造函数和赋值操作的关系,正确的是( )。(分数:2.00)A.拷贝构造函数和赋值操作是完全一样的操作B.进行赋值操作时,会调用类的构造函数C.当调用拷贝构造函数时,类的对象正在被建立并被初始化D.拷贝构造函数和赋值操作不能在同一个类中被同时定义24.继承机制的作用是( )。(分数:2.00)A.信息隐藏B.数据封装C.定义新类D.数据抽象25.下列程序的输出结果是( )。#includeiostream
11、using namespace std;int main()于chara”Hello,Test”;Char*pa;while(*p)if(*p)avoid main()Sample s1(2,3);s1.disp();(分数:2.00)A.x2,y2B.x=3,y3C.x2,y3D.x3,y227.下列叙述正确的是( )。(分数:2.00)A.算法的执行效率与数据的存储结构无关B.算法的空间复杂度是指算法程序中指令(或语句)的条数C.算法的有穷性是指算法必须能在执行有限个步骤之后终止D.以上 3种描述都不对28.有下列二叉树,对此二叉树中序遍历的结果是( )。(分数:2.00)A.ABCDEF
12、B.BDAECFC.ABDCEFD.ABCDFE29.下列关于 this指针的叙述中,正确的是( )。(分数:2.00)A.任何与类相关的函数都有 this指针B.类的成员函数都有 this指针C.类的友元函数都有 this指针D.类的非静态成员函数才有 this指针30.在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送( )来实现。(分数:2.00)A.调用语句B.命令C.中令D.消息31.设计数据库的存储结构属于( )。(分数:2.00)A.需求分析B.概念设计C.逻辑设计D.物理设计32.控制格式输入/输出的操作中,设置域宽的函数是( )。(分数:2.00)A.WSB.oct
13、C.setfilt(int)D.setw(int)33.源程序的文档化不包括( )。(分数:2.00)A.符号名的命名要有实际意义B.正确的文档形式C.良好的视觉组织D.正确的程序注释34.下列程序的运行结果为( )。#includeiostream.htemplateclass TTclass FFTT a1,a2,a3;public:FF(TT b1,TT b2,TT b3)a1b1;a2b2;a3b3;TT Sum()return a1+a2+a3;void main()FFintx(int(1.1),2,3),y(int(4.2),5,6);coutx.Sum()y.Sum()endl
14、;(分数:2.00)A.6.1 15.2B.6 15C.6 15.2D.6.1 1535.下列关于虚函数与函数重载区别的叙述中不正确的是( )。(分数:2.00)A.函数说明形式上不同B.函数重载允许是非成员函数,虚函数只能是成员函数C.函数重载的调用依据参数和类型的差别,虚函数则依据对象D.函数重载的本体可以在类外定义,虚函数不可以二、填空题(总题数:15,分数:30.00)36.按照“先进先出”的原则组织数据的结构的是 1。(分数:2.00)填空项 1:_37.在面向对象方法中, 1 描述的是具有相似属性与操作的一组对象。(分数:2.00)填空项 1:_38.算法的复杂度主要包括时间复杂度
15、和 1 复杂度。(分数:2.00)填空项 1:_39.软件是程序、数据和 1 的集合。(分数:2.00)填空项 1:_40.数据库系统中实现各种数据管理功能的核心软件是 1。(分数:2.00)填空项 1:_41.假定 A为一个类,则语句 A(ABase();class Derived:public Basepublic:/完成类 Derive构造函数的定义;int main()Derived Obj;return 0;(分数:2.00)填空项 1:_48.下列程序用于将源文件中的字母进行大小写转换,请填写 while的请句。#includeiostream.h#includefstream.h
16、#includeiomanip.hvoid main()char ch;fstream file1,file2;char fnl10,fn210;cout“输入源文件名:”;cinfn1;cout“输入目标文件名:”;cinfn2;ilel.open(fn1,ios:in);while( )证(ch),a,class XB:public XAint y;public:XB(int a,int b);在构造函数 XB的下列定义中,正确的是( )。(分数:2.00)A.XB:XB(inta,int b):x(a),y(b)B.XB:XB(int a,int b):XA(a),y(b) C.XB:X
17、B(int a,int b):x(a),XB(b)D.XB:XB(int a,int b):XA(a),XB(b)解析:解析 C+中派生类构造函数的一般语法规则为:派生类名:(派生类名)(参数表):基类 1(参数表 1),基类名 n(参数表 n),(子对象 1)(于对象参数表 1,子对象 m(于对象参数表 m)派生类新增成的初始化语句;,终上所述。3.有如下类声明:class XAint X;public:XA(int n)x=n;class XB:publicXAint y;public:XB(int a,int b););在构造函数 XB的下列定义中,正确的是( )。(分数:2.00)A.
18、XB:XB(int a,int b):x(a),y(b)B.XB:XB(int a,int b):XA(a),y(b) C.XB:XB(int a,int b):x(a),XB(b)D.XB:XB(int a,int b):XA(a),XB(b)解析:解析 本题考查提派生类中构造函数的定义。派生类的构造首先要调用基类的构造函数,对基类成员初始化;然后对派生类中的新增成员初始化。格式:派生类名(构造函数形参表)基类构造函数(形参表)。4.下面关于 C+流的叙述中,正确的是( )。(分数:2.00)A.cin是一个输入流对象 B.可以用 if stream定义一个输出流对象C.执行语句序列 cha
19、r*y=“PQMN”;couty;将输出字符串”PQMN”的地址D.执行语句序列 char x80;cin.getline(x,80);时。若键入“Happy new year”,则,中的字符串是“Happy”解析:解析 本题考查 C+洗的概念和 I/()的格式化。cln 是 lstream类的对象,即输入流对象。ifstream是输入文件流类不能定义个输出流对象。getline 函数功能是允许从输入流中读取多个字符,并且允许指定输入终止,在读取完成后,从读取的内容中删除读终止字符,所以 D选项中的语句序列后 x中字符串应该是”Happy new year”。5.下列叙述中错误的是( )。(分
20、数:2.00)A.一种数据的逻辑结构可以有多种存储结构B.数据的存储结构与数据的处理效率无关 C.数据的存储结构与数据的处理效率密切相关D.数据的存储结构在计算机中所占的空间不一定是连续的解析:解析 数据的存储结构分为顺序结构和链式结构,一个数据的逻辑结构可以有多种存储结构。顺序结构中数据元素所占的存储空间是连续的,而链式存储结构中,数据元素所占的存储空间不一定是连续的。数据的存储结构与数据的处理效率密切相关。6.有如下函数模板声明:templatetypename TT Max(T a,T b)return(a=b)?a:b;下列对函数模板 Max()的调用中错误的是( )。(分数:2.00
21、)A.Max(3.5,4.5)B.Max(3.5,4) C.Max(double)(3.5,4.5)D.Maxdouble(3.5,4)解析:解析 引用模板函数和引用一般的函数在语法形式上没有任何区别。说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否匹配函数模板中对应的形参。7.下列工具中为需求分析常用工具的是( )。(分数:2.00)A.PADB.PFDC.N-SD.DFD 解析:解析 需求分析常用的工具有数据洗图(DFD)、数据字典(DD)、判定树和判定表。PAD(问题分析图)、PFE (程序流程用)、N-S(盒式图)都是详细设计的常用工具,不是需求分
22、析的工具。8.有如下数组声明:int numC10,下标值引用错误的是( )。(分数:2.00)A.num10 B.num5C.nam3)D.num0解析:解析 数组定义中的数字指的是数组的大小,而下标是从。开始的,所以数组的最后一个元素是hum9。9.下列虚基类的声明中正确的是( )。(分数:2.00)A.class virtual B:public AB.virtual class B:public AC.class B:public A virtualD.class B:virtual public A 解析:解析 虚基类说明格式为:virtual继承方式基类名其中,virtual 是虚
23、基类的关键词。虚基类的说明是用在定义派生类时,写在派生类名的后面。即:class派生类名Virtual继承方式基类名;10.有如下程序:#includeiostreamusing namespace std;Class TestClassprivate:int x,y;public:TestClass(int i,int j)xi;yj;void print()cout“print1”endl;void print()constcout”print2”(endl;);Int main()const TestClass a(1,2);a.print();return 0;该程序运行后的输出结果是
24、( )。(分数:2.00)A.printlB.print2 C.printl print2D.程序编译时出错。解析:解析 本题定义 TestClass型的常对象 a,然后调用对象 a中的成员函数 print()。因为在 C+中,如果一个对象被声明为常对象,则不能调用镇对象中的非 const型的成员函数。所以,这里调用的是对象中的 const型成员函数“void print()const”,输出为 print2。11.下列是软件调试技术的是( )。(分数:2.00)A.错误推断B.集成测试C.回溯法 D.边界值分析解析:解析 软件调试技术包括强行排错法、回溯法和原因排除法。边界值分析、错误推断都
25、是黑盒测试的方法。12.两个或两个以上模块之间联系的紧密程度称为( )。(分数:2.00)A.耦合性 B.内聚性C.复杂性D.数据传输特性解析:解析 耦合性是模块间互相连接的紧密徽的度量,取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。13.以下程序的输出结果是( )。min()int i=0,a=0;while(i20)for(;)if(i%10)=0)break;else i-;i+=11;a+=i;coutaendl;(分数:2.00)A.21B.32 C.33D.11解析:解析 本题是两个循环语句和一个判断语句的嵌套。For 循环的作用是在 i等于 10的时候跳出循环本题
26、的答粟为 B。14.下列关于运行符重载的描述中,正确的是( )。(分数:2.00)A.运算符重载可以改变操作数的个数B.运算符重载可以改变操作数的优先级C.运算符重载可以改变运算符的结合性D.运算符重载可以使运算符实现特殊功能 解析:解析 C+把重载的运算符视为特殊的函数,称为运算符函数,函数名就是在运算符前加上保留字opera- tor。C+中通过重新定义运算符,使它能够用于特定类的对象执行特定的功能。但是用户重新定义运算特,不改变原运算符的操作符个数、优先级和结合性。同时运算符重载后,也不改变运算符的语法结构,即单目运算符只能重载为单目运算符,双目运算符只能重载为双目运算符。15.当需要将
27、一个函数 bool isnumber(char c)声明为内联函数时,则此内联函数的函数原型为( )。(分数:2.00)A.enum bool isnumber(char c);B.define bool isnumber(char c);C.inline bool isnumber(char c); D.extem bool isnumber(char c);解析:解析 本题考查的是内联函数的相关知识点。函数原型应指出函数名、返回值类型以及在调用函数时知心朋友提供的参数的个数和类型,因为要声明为内联函数,故应加 inline关键宇。16.下面程序的运行结果为( )。#includeiostr
28、eam.hvoid swap(int private:int value;则对下列语句序列正确的描述是( )。(分数:2.00)A.语句 pbreak;default:cout“1”;(分数:2.00)A.3B.321C.31D.32 解析:解析 本题主要考查的是 switch语句的使用,在第一个 csse处,因为满足条件所以输出字符3,但这个分支没有 break语句终止,所以会继续执行下面的分支语句,即输出字符 2,这时出现 break语句,结束整个语句,即输出 32。21.有如下程序:#includeiostreamusing namespace std;Class Testpublic:
29、Test() n+2;Test() n-3;static int getNum() return n;private:static int n;int Test:n1;int main()Test*pnew Test;delete p;cout“n”Tes:getNum()endl;return 0;执行后的输出结果是( )。(分数:2.00)A.n0 B.n1C.n=2D.n=3解析:解析 静态数据成员是类中所有对象共享的成员,而不是某个对象的成员。题中变量 n是静态数据成员,对象对其操作的结果具有叠加作用,main 函数中先定义了 Test的对象*p,然后又 delete p,所以对静态数
30、据 n进行了两次操作,分别是”n+=2”和”n+=3”,n 的初始值是 1,那么 n最后的值变为0。main 函数最后通过调用静态函数 getNum得到 n的值,并输出。22.已知在一个类体中包含如下函数原型:VOLUME OPERATOR-(VOLUME)const;,下列关于这个函数的叙述中,错误的是( )。(分数:2.00)A.这是运算符-的重载运算符函数B.这个函数所重载的运算符是一个一元运算符 C.这是一个成员函数D.这个函数不改变类的任何数据成员的值解析:解析 本题考核运算符的重载。题中语句为运算符“-”是一个二元运算符,且是作为常成员函数来重载的,所以它不能更新对象的数据成员,也
31、不能调用该类中没有用 const修饰的成员函数。23.对于拷贝构造函数和赋值操作的关系,正确的是( )。(分数:2.00)A.拷贝构造函数和赋值操作是完全一样的操作B.进行赋值操作时,会调用类的构造函数C.当调用拷贝构造函数时,类的对象正在被建立并被初始化 D.拷贝构造函数和赋值操作不能在同一个类中被同时定义解析:解析 在赋值操作中,将发生对象的拷贝操作,但并不说明两者是完全一样的。一般情况下,如果给类定义了赋值操作符,则应该同时定义合适的拷贝构造函数,除非系统默认生成的拷贝构造函数满足赋值操作。实际上,系统默认的拷贝构造函数仅仅将数据成员进行简单的对应赋值,而在多数特殊应用中,需要程序员重新
32、定义拷贝构造函数。24.继承机制的作用是( )。(分数:2.00)A.信息隐藏B.数据封装C.定义新类 D.数据抽象解析:解析 数据封装就是数据抽象,即信息隐藏;而继承是实现程序复用的基础。25.下列程序的输出结果是( )。#includeiostreamusing namespace std;int main()于chara”Hello,Test”;Char*pa;while(*p)if(*p)avoid main()Sample s1(2,3);s1.disp();(分数:2.00)A.x2,y2B.x=3,y3C.x2,y3 D.x3,y2解析:解析 本题考查的是类的构造函数和析构函数。
33、首先,Samplesl(2,3);会调用含有两个参数的构造函数 Sample(inta,intb)x=a,y=b,),disp()函数输出成员变量 x和 y的值:x2,y3;然后结束时调用析构函数,因为 x和 y值不等,故输出 x!y。27.下列叙述正确的是( )。(分数:2.00)A.算法的执行效率与数据的存储结构无关B.算法的空间复杂度是指算法程序中指令(或语句)的条数C.算法的有穷性是指算法必须能在执行有限个步骤之后终止 D.以上 3种描述都不对解析:解析 算法的执行效率与数据的存储结构密切相关。算法的空间复杂度是指算法执行过程中所需的存储空间。28.有下列二叉树,对此二叉树中序遍历的结
34、果是( )。(分数:2.00)A.ABCDEFB.BDAECF C.ABDCEFD.ABCDFE解析:解析 对二叉树的中序遍历是指:首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左、右子树时,注意依旧按照“左子树-根结点-右子树”的顺序。29.下列关于 this指针的叙述中,正确的是( )。(分数:2.00)A.任何与类相关的函数都有 this指针B.类的成员函数都有 this指针C.类的友元函数都有 this指针D.类的非静态成员函数才有 this指针 解析:解析 本题考查的是 this指针的使用。类的每一个成员函数都有一个隐含的常量指针,即 this指针。类的静态成员函数不能含有
35、this指针,因为 this指针是一个指向本对象的指针。30.在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送( )来实现。(分数:2.00)A.调用语句B.命令C.中令D.消息 解析:解析 在面向对象方法中,对象之间通过消息进行通信。消息中只包含传递者的要求,它告诉接受者需要做哪些处理,但并不指示接受者应该怎么完成这些处理,接受者独立决定采用什么方式完成所需的处理。31.设计数据库的存储结构属于( )。(分数:2.00)A.需求分析B.概念设计C.逻辑设计D.物理设计 解析:解析 物理设计阶段主要解决选择文件存储结构和确定文件存取方法的问题,包括:选择存储结构、确定存取方法、选择
36、存取路径、确定数据的存放位置。32.控制格式输入/输出的操作中,设置域宽的函数是( )。(分数:2.00)A.WSB.octC.setfilt(int)D.setw(int) 解析:解析 本题需要考生记忆一些输入输出控制操作子,oct 为八进制,setfill 为设置填充符,setw为设置域宽。33.源程序的文档化不包括( )。(分数:2.00)A.符号名的命名要有实际意义B.正确的文档形式 C.良好的视觉组织D.正确的程序注释解析:解析 源程序的文档化主要包括 3点:(1) 符号名应具有一定实际的含义,便于理解程序功能:(2) 正确的程序注释;(3) 良好的视觉组织。利用空格、空行、缩进等技
37、巧使程序层次清晰。34.下列程序的运行结果为( )。#includeiostream.htemplateclass TTclass FFTT a1,a2,a3;public:FF(TT b1,TT b2,TT b3)a1b1;a2b2;a3b3;TT Sum()return a1+a2+a3;void main()FFintx(int(1.1),2,3),y(int(4.2),5,6);coutx.Sum()y.Sum()endl;(分数:2.00)A.6.1 15.2B.6 15 C.6 15.2D.6.1 15解析:解析 本题考查模板函数的应用,表达式 int(1.1)和 int(4.2)
38、是将 1.1和 4.2强制转换为整型。35.下列关于虚函数与函数重载区别的叙述中不正确的是( )。(分数:2.00)A.函数说明形式上不同B.函数重载允许是非成员函数,虚函数只能是成员函数C.函数重载的调用依据参数和类型的差别,虚函数则依据对象D.函数重载的本体可以在类外定义,虚函数不可以 解析:解析 A 项,B 项,C 项均为虚函数与函数重载的不同之处。但有一点它们是相同的:在类内外定义均可。故 D 项错误。二、填空题(总题数:15,分数:30.00)36.按照“先进先出”的原则组织数据的结构的是 1。(分数:2.00)填空项 1:_ (正确答案:队列。)解析:解析 队列是一种特殊的线性表,
39、只允许在表的一端插入元素,在表的另一端删除元素,插入元素的一端叫做“队尾”,删除元素的一端叫做“队头”,先插入的元素先被删除,是按先进先出的原则组织数据的。37.在面向对象方法中, 1 描述的是具有相似属性与操作的一组对象。(分数:2.00)填空项 1:_ (正确答案:类。)解析:解析 在面向对象方法中,把具有相同属性和方法的对象称为类,类是对象的抽象,对象是类的实例。38.算法的复杂度主要包括时间复杂度和 1 复杂度。(分数:2.00)填空项 1:_ (正确答案:空间。)解析:解析 衡量一个算法的复杂度有两个指标:时间复杂度和空间复杂度。前者用来衡量执行算法时所需要的计算工作量,而后者用来衡
40、量执行算法所需要的存储空间。39.软件是程序、数据和 1 的集合。(分数:2.00)填空项 1:_ (正确答案:相关文档。)解析:解析 计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。40.数据库系统中实现各种数据管理功能的核心软件是 1。(分数:2.00)填空项 1:_ (正确答案:数据库管理系统。)解析:解析 数据库管理系统是数据库的管理机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。41.假定 A为一个类,则语句 A(ABase();class Derived:public Basepublic:/完成类
41、 Derive构造函数的定义;int main()Derived Obj;return 0;(分数:2.00)填空项 1:_ (正确答案:Derived(int i):Base(i)。)解析:解析 程序中,类 Derived是基类 Base的公有派生。在类 Derived的构造函数应该包括调用基类构造函数使基类的数据成员得以初始化。48.下列程序用于将源文件中的字母进行大小写转换,请填写 while的请句。#includeiostream.h#includefstream.h#includeiomanip.hvoid main()char ch;fstream file1,file2;char
42、 fnl10,fn210;cout“输入源文件名:”;cinfn1;cout“输入目标文件名:”;cinfn2;ilel.open(fn1,ios:in);while( )证(ch),a,&chz,)chch-/a/+A;file2.put(ch);file1.close();file2.close();(分数:2.00)填空项 1:_ (正确答案:(eh=filel.get()! =eof。)解析:解析 本题是判断文件是否达到结尾,可以使用流输入的 get函数获得当前字符,然后判断该字符是否是 eof即可。49.有如下程序:#includeiostreamusing namespace st
43、d;class CApublic:CA()cout+A;class CB:private CApublic:CB()coutB;int main()CA a;CB b;return 0;这个程序的输出结果是_。(分数:2.00)填空项 1:_ (正确答案:AAB。)解析:解析 本题考查的是派生类的构造函数。建立派生类对象时,构造函数的执行顺序:执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右),接着执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序-执行派生类的构造函数。题目中首先定义了类 CA的对象 a,输出A;然后定义 CB类的对象 b,因为 CB 类派生
44、自 CA类,所以会先执行 CA类的构造函数,再执行CB类的构造函数,即输出A和B。50.下列程序的输出结果是_。#includeiostreamusing namespace std;templatetypename TT fun(T a,T b)return(ab)?a:b;int main()coutfun(3,6),fun(3.14F,6.28F)end1;return 0;(分数:2.00)填空项 1:_ (正确答案:3,3.14。)解析:解析 C+编译系统将根据实参表中的实参的类型来确定函数的形参列表中的类型。函数fun(3,6)返回的值为 3,函数调用 fun(3.14F,6.28F)返回的值为 3.14。