1、二级 C+笔试-421 及答案解析(总分:88.00,做题时间:90 分钟)一、选择题(总题数:35,分数:61.00)1.所有在函数中定义的变量及函数的形式参数,都属于A) 全局变量 B) 局部变量 C) 静态变量 D) 常量(分数:2.00)A.B.C.D.2.下列函数中对调用它的函数没有起到任何作用的是A) void f1(double B) double f1(double x)return x-1.5;C) void f3(double x)-x;D) double f4(double *x)-*x; return*x;(分数:2.00)A.B.C.D.3.下列关于多态性的描述,错误
2、的是A) C+语言中的多态性分为编译时的多态性和运行时的多态性B) 编译时的多态性可通过函数重载实现C) 运行时的多态性可通过模板和虚函数实现D) 实现运行时多态性的机制称为动态绑定(分数:1.00)A.B.C.D.4.下列运算符中不能在 C+中重载的是( )。A) ?: B) +C) - D) =(分数:2.00)A.B.C.D.5.下列程序的输出结果为 2,横线处应添加语句( )。#includeiostreamusing namespace std;public:_void fun()cout1;class TestClass2:public TestClass1public:void
3、fun()cout2;);int main()TestClass1 *p=new TestClass2;p-fun();delete p;Teturn 0;A) public B) private C) virtual D) protected(分数:2.00)A.B.C.D.6.当需要使用 ostrstream流类定义一个流对象并联系一个字符串时,应在文件开始使用 #include 命令,使之包含_ 文件。A) iostream.h B) stdlib.hC) strstrea.h D) fstream.H(分数:2.00)A.B.C.D.7.下列运算符中,不能被重载的是 A) if(n=1
4、|n=2)s=2;else s=n-fun(n-1);return s;void main( )coutfun(3);A) 1 B) 2 C) 3 D) 4(分数:1.00)A.B.C.D.14.生成派生类对象时,派生类构造函数调用基类构造函数的条件是( )。A无需任何条件 B基类中显式定义了构造函数C派生类中显式定义了构造函数 D派生类构造函数明确调用了基类构造函数(分数:2.00)A.B.C.D.15.以下程序的执行结果是( )。#includeiostream.hint fun(int b,int n)int i,r=1;for(i=0;in;i+)r=r*bi;void main()i
5、nt x,a=1,2,3,4,5,6,7,8;x=fun(a,3);coutxendl;A) 5 B) 6 C) 7 D) 8(分数:2.00)A.B.C.D.16.在数据库系统中,是数据库中全体数据的逻辑结构和特征的描述的数据模式为( )。A概念模式 B外模式C内模式 D物理模式(分数:2.00)A.B.C.D.17.实现运行时的多态性要使用( )。A重载函数 B析构函数C构造函数 D虚函数(分数:2.00)A.B.C.D.18.在任意一棵二叉树中,度为 0的结点总是比度为 2的结点多( )。A) 1个 B) 2 个 C) 3 个 D) 4 个(分数:2.00)A.B.C.D.19.使用 i
6、fstream流类定义流对象并打开磁盘文件时,文件的隐含打开方式为( )。A) ios:in B) ios:outC) ios:inlios:out D) 没有默认(分数:2.00)A.B.C.D.20.有以下程序#includestring.h#includeiostream.hvoid main( )char*p=“abcde/0fghjik/0“;coutstrlen(p);程序运行后的输出结果是A) 12 B) 15 C) 6 D) 5(分数:1.00)A.B.C.D.21.有如下程序:#includeiostreamusing namespace std;class Basepubl
7、ic:void fun() cout“Base:fun“endl; ;class Derived: public Basepublic:void tim()_cout“Derived: fun“endl;int main()Derived d;d.fun();return O;已知其执行后的输出结果为:Base:funDerived:fun则程序中下划线处应填入的语句是A) Base.fun(); B) Base:fun();C) Base-fun(); D) fun();(分数:1.00)A.B.C.D.22.下面这个程序的结果是#includeiostream.hclass Aprivat
8、e:int a;public:void seta( );int geta( );void A:seta( )a = 1;int A:geta( ) return a;class Bprivate:int a;public:void seta( );int geta( );void B:seta( )a=2;int B:geta( )return a; class C:public A,public Bprivate:int b;public:void display( );void C:display( )int b=geta( );cout b;void main( )C c;c.seta(
9、 );c.display( );A) 1 B) 2C) 随机输出 1或 2 D) 程序有错(分数:1.00)A.B.C.D.23.支持子程序调用的数据结构是( )。A) 栈 B) 树C) 队列 D) 二叉树(分数:2.00)A.B.C.D.24.对如图所示二叉树进行前序遍历的结果为 (分数:2.00)A.B.C.D.25.下面程序的运行结果是( )。#includeiostream.hint fun(int a,int n)int result=1;for(int i=1;in;i+)result=result *ai;return result;void main()int a3=3,4,5
10、;eoutfun(a,3)end1;A) 12 B) 15 C) 20 D) 60(分数:2.00)A.B.C.D.26.有如下程序;#includeiostreamusing namespace std;class DA int k;public:DA(int x=1):k(x)DA( )coutk;int main( )DA d=DA(3),DA(3),DA(3);DA *p=new DA2;delete p;return ();这个程序的输出结果是( )。A) 111 B) 333C) 11333 D) 11133(分数:2.00)A.B.C.D.27.下列各种函数中,_ 不是类的成员函
11、数。A) 构造函数 B) 析构函数C) 友元函数 D) 拷贝构造函数(分数:2.00)A.B.C.D.28.如果表达式 y*x+中,“*”是作为成员函数重载的运算符,“+”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为A) x.operator+(0).operator*(y); B) operator*(x.operator+(0),y);C) y.operator*(operator+(x,0) D) operator*(operator+(x,0),y)(分数:2.00)A.B.C.D.29.下列程序的输出结果是( )。#includeiostreamusing
12、namespace std;int main()于chara”Hello,Test”;Char*pa;while(*p)if(*p)ay=j;void show( )cout“x=“x“ “y=“yendl;void show( )constcout“x=“ “y=“yendl;privated:int x; int y;void main( )Myclass my l (3,4);const my2(7,8);my lshow( );my2show( );A) x=4,y=3;x=7,y=8 B) x=3,y=4;x=7,y=8C) x=7,y=8;x=4,y=3 D) x=8,y=7;x=
13、7,y=8(分数:1.00)A.B.C.D.34.以下关于私有和保护成员的叙述中,不正确的是A) 私有成员不能被外界引用,保护成员可以B) 私有成员不能被派生类引用,保护成员在公有继承下可以C) 私有成员不能被派生类引用,保护成员在保护继承下可以D) 私有成员不能被派生类引用,保护成员在私有继承下可以(分数:2.00)A.B.C.D.35.下列描述中,抽象类的特性是( )。A) 可以说明虚函数 B) 可以定义友元函数C) 可以进行构造函数重载 D) 不能说明其对象(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:27.00)36.下列程序运行后的输出结果是 _。#include
14、iostream.hvoid main()int s=0,kfor(k=7;k=0;k-)switch(k)case 1:case 4:case 7:s+ +;break:case 2:case 3:case 6:break;case 0:case 5:s+=2;break;cout“s=“sendl;(分数:1.00)填空项 1:_37.在类的对象被创建的时候, 1 函数会被自动调用。(分数:2.00)填空项 1:_38.有如下程序:#includeiostreamusing namespace std;class Apublic:A()cout“A“;A()cout“A“;class BA
15、a;public:B()cout“B“;B()cout“B“;int main()B b;return 0:程序的输出结果是_。(分数:2.00)填空项 1:_39.在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为 1。(分数:2.00)填空项 1:_40.下面是复数类 complex的定义,其中作为友元函数重载的运算符“-”的功能是将参数对象的实部减1,然后返回对该对象的引用;请补充完整。class complexprivate:int real;int imag;public:complex(int r=0,int i=0):real(r),imag(i)void sho
16、w()coutreal(imag0?“-“:“+“)imagi;_;complex operator-(complex c)c.real-;return c;(分数:2.00)填空项 1:_41.有以下程序:#includefstream#includestringusing namespace std;int main()char ch=“The end“;ofstream outstr(“_“,ios_base:app);for(int i=0;istrlen(ch); i+) outstr.put(chi);outstr.close();return 0:若程序实现的功能是在文件 d:/
17、put.txt 的尾部追加写入一串字符,试将程序补充完整。(分数:2.00)填空项 1:_42.当线性表采用顺序存储结构实现存储时,其主要特点是 1。(分数:2.00)填空项 1:_43.设有二维数组 int a 1020;,则 aij的地址可由首元素 a00的地址来表达,由此可得访问数组元素 aij的表达式为 1。(分数:2.00)填空项 1:_44.数据的逻辑结构是从逻辑关系上描述数据,它与数据的 1 结构无关。(分数:2.00)填空项 1:_45.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,所以,基于逻辑结构的应用程序不必修改,称为_。(分数:1.0
18、0)填空项 1:_46.下列程序编译错误,因为 add函数返回值是一个引用,故对 return后返回值的要求是_。#includeiostream. hintvoid main( )int i=3,j=19;cout(add(i,j)+ =20)end1;(分数:2.00)填空项 1:_47.有如下程序: #includeiostream using namespaee std;c lass Animal public: virtual char*getType( )constreturn“Animal“; virtual char*getVoice( )constreturn“Voice“;
19、 ; class Dog:public Animal public: char*getType( )constreturn“Dog“; char*getVoice( )eonstreturn“Woof“; ; void type(AnimalB) double f1(double x)return x-1.5;C) void f3(double x)-x;D) double f4(double *x)-*x; return*x;(分数:2.00)A.B.C. D.解析:解析 本题考核函数的调用和参数值的传递(形参、实参)。选项 C中的函数 D调用采用按值传递的方式,函数中对形参的修改没有影响到
20、实参的值,而且函数 G还没有返回值,所以函数耀对调用它的函数没有起到任何作用。选项 A中的函数 f1采用引用传递的方式影响实参的值,选项 D中的函数 f4通过返回值和指针调用来影响调用函数;选项 B中的函数 f2采用返回值的形式对其调用函数发生作用。3.下列关于多态性的描述,错误的是A) C+语言中的多态性分为编译时的多态性和运行时的多态性B) 编译时的多态性可通过函数重载实现C) 运行时的多态性可通过模板和虚函数实现D) 实现运行时多态性的机制称为动态绑定(分数:1.00)A.B.C. D.解析:解析 编译时的多态性是通过函数重载和模板体现的,运行时的多态性是通过虚函数体现的。4.下列运算符
21、中不能在 C+中重载的是( )。A) ?: B) +C) - D) =(分数:2.00)A. B.C.D.解析:5.下列程序的输出结果为 2,横线处应添加语句( )。#includeiostreamusing namespace std;public:_void fun()cout1;class TestClass2:public TestClass1public:void fun()cout2;);int main()TestClass1 *p=new TestClass2;p-fun();delete p;Teturn 0;A) public B) private C) virtual D
22、) protected(分数:2.00)A.B.C. D.解析:解析 由主函数 main入手,定义 TestClass1类的指针对象 p指向派生类 Testclass2。因为基类和派生类中都有 fun函数,题目要求输出为 2,就是基类对象访问派生类中 fun函数。通过虚函数与指向基类对象的指针变量的配合使用,就能方便调用同名函数。所以这里将基类中的 fun函数声明为virtual。并且当一个成员函数被声明为虚函数后,其派生类中的同名函数自动成为虚函数。6.当需要使用 ostrstream流类定义一个流对象并联系一个字符串时,应在文件开始使用 #include 命令,使之包含_ 文件。A) io
23、stream.h B) stdlib.hC) strstrea.h D) fstream.H(分数:2.00)A.B.C. D.解析:解析 strstrea.h 包含了常用的流对象并联系一个字符串,所以在文件开始使用#include 命令包含 strstrea.h。7.下列运算符中,不能被重载的是 A) if(n=1|n=2)s=2;else s=n-fun(n-1);return s;void main( )coutfun(3);A) 1 B) 2 C) 3 D) 4(分数:1.00)A. B.C.D.解析:解析 题中 fun函数进行了递归调用,第 1次调用:fun(3)n=3 s=3-fu
24、n(2),第二次调用时: fun(2)n=2 s=2,返回第一次调用后,s=3-2=1。14.生成派生类对象时,派生类构造函数调用基类构造函数的条件是( )。A无需任何条件 B基类中显式定义了构造函数C派生类中显式定义了构造函数 D派生类构造函数明确调用了基类构造函数(分数:2.00)A.B.C.D. 解析:解析 派生类的构造函数必须通过调用基类的构造函数来初始化基类子对象。所以在定义派生类的构造函数时,除了对自己的类据成员进行初始化外,还必须负责调用基类构造函数,使基类的数据成员得以初始化。15.以下程序的执行结果是( )。#includeiostream.hint fun(int b,in
25、t n)int i,r=1;for(i=0;in;i+)r=r*bi;void main()int x,a=1,2,3,4,5,6,7,8;x=fun(a,3);coutxendl;A) 5 B) 6 C) 7 D) 8(分数:2.00)A.B. C.D.解析:解析 由程序的 main函数入手,调用 fun函数,其中参数为数组 a和 3。fun 函数的功能是 for循环中由第一个数组元素开始到第三个元素进行累积。16.在数据库系统中,是数据库中全体数据的逻辑结构和特征的描述的数据模式为( )。A概念模式 B外模式C内模式 D物理模式(分数:2.00)A. B.C.D.解析:17.实现运行时的多
26、态性要使用( )。A重载函数 B析构函数C构造函数 D虚函数(分数:2.00)A.B.C.D. 解析:18.在任意一棵二叉树中,度为 0的结点总是比度为 2的结点多( )。A) 1个 B) 2 个 C) 3 个 D) 4 个(分数:2.00)A. B.C.D.解析:解析 根据二叉树的性质,叶子节点总是比度为 2的节点多一个。19.使用 ifstream流类定义流对象并打开磁盘文件时,文件的隐含打开方式为( )。A) ios:in B) ios:outC) ios:inlios:out D) 没有默认(分数:2.00)A.B.C.D. 解析:解析 使用 ifstxeam流类定义流对象并打开磁盘文
27、件时,文件没有默认的打开方式。其中ios:in是为输入而打开;iso:out 是为输出而打开。20.有以下程序#includestring.h#includeiostream.hvoid main( )char*p=“abcde/0fghjik/0“;coutstrlen(p);程序运行后的输出结果是A) 12 B) 15 C) 6 D) 5(分数:1.00)A.B.C.D. 解析:解析 C+语言规定了一个字符串结束标志,以字符/0代表,在遇到/0时,表示字符串结束,由它前面的字符组成字符串。21.有如下程序:#includeiostreamusing namespace std;class
28、Basepublic:void fun() cout“Base:fun“endl; ;class Derived: public Basepublic:void tim()_cout“Derived: fun“endl;int main()Derived d;d.fun();return O;已知其执行后的输出结果为:Base:funDerived:fun则程序中下划线处应填入的语句是A) Base.fun(); B) Base:fun();C) Base-fun(); D) fun();(分数:1.00)A.B. C.D.解析:解析 本题考查的知识点是继承的运用。题目中要求的两行输出结果分别
29、在基类的成员函数 fun()与派生类的成员函数 fun()中给出,而主函数中只通过派生类对象 d调用 fun()函数,即只调用了派生类的成员函数 fun()。所以,横线处应该填入对基类成员函数 fun()的调用语句,此处只能使用作用域运算符“:”才能调用到基类中的同名函数,故应该选择 B。22.下面这个程序的结果是#includeiostream.hclass Aprivate:int a;public:void seta( );int geta( );void A:seta( )a = 1;int A:geta( ) return a;class Bprivate:int a;public:
30、void seta( );int geta( );void B:seta( )a=2;int B:geta( )return a; class C:public A,public Bprivate:int b;public:void display( );void C:display( )int b=geta( );cout b;void main( )C c;c.seta( );c.display( );A) 1 B) 2C) 随机输出 1或 2 D) 程序有错(分数:1.00)A.B.C.D. 解析:解析 在类 A中有 geta()函数,在类 B中也有 geta()函数,类 C继承了类 A
31、和类 B,这样就产生了二义性,所以程序会出错。23.支持子程序调用的数据结构是( )。A) 栈 B) 树C) 队列 D) 二叉树(分数:2.00)A. B.C.D.解析:解析 根据栈的定义,栈是一种限定在一端进行插入与删除的线性表。在主函数调用子函数时,主函数会保持当前状态,然后转去执行子函数,把子函数的运行结果返回到主函数,主函数继续向下执行,这种过程符合栈的特点。所以一般采用栈式存储方式。24.对如图所示二叉树进行前序遍历的结果为 (分数:2.00)A.B.C. D.解析:解析 根据对二叉树根的访问先后顺序不同,分别称为前序遍历、中序遍历和后序遍历。这 3种遍历都是递归定义的,即在其子树中
32、也按照同样的规律进行遍历。下面就是前序遍历方法的递归定义。当二叉树的根不为空时,依次执行如下 3个操作:访问根结点,按前序遍历左子树,按前序遍历右子树。根据如上前序遍历规则来遍历本题中的二叉树。首先访问根结点,即 A,然后遍历 A的左子树。遍历左子树同样按照相同的规则首先访问根结点 B,然后遍历 B的左子树。遍历 B的左子树,首先访问 D,然后访问 D的左子树,D 的左子树为空,接下来访问 D的右子树,即 Y。遍历完 B的左子树后,再遍历 B的右子树,即 E。到此遍历完 A的左子树,接下来遍历 A的右子树。按照同样的规则,首先访问 C,然后遍历 C的左子树,即 F。C 的左子树遍历完,接着遍历
33、 C的右子树。首先访问右子树的根结点 X,然后访问X的左子树,即 Z,接下来访问 X的右子树,右子树为空,遍历的结果为 ABDYECFXZ,故本题的正确答案为选项 C。25.下面程序的运行结果是( )。#includeiostream.hint fun(int a,int n)int result=1;for(int i=1;in;i+)result=result *ai;return result;void main()int a3=3,4,5;eoutfun(a,3)end1;A) 12 B) 15 C) 20 D) 60(分数:2.00)A.B.C. D.解析:解析 for 循环执行 2
34、次,所以第一次 for循环为 result=1 *a1=4,第二次 for循环为result=4*a2=20。26.有如下程序;#includeiostreamusing namespace std;class DA int k;public:DA(int x=1):k(x)DA( )coutk;int main( )DA d=DA(3),DA(3),DA(3);DA *p=new DA2;delete p;return ();这个程序的输出结果是( )。A) 111 B) 333C) 11333 D) 11133(分数:2.00)A.B.C. D.解析:解析 此题考查的是析构函数和对象的生存
35、期。在主函数中,首先定义了一个 DA类对象数组 d,从初始化列表中可以看出,它包含 3个对象;然后通过 new运算符动态创建了一个 DA类的对象数组,并将首地址赋给 DA类指针 p;接着通过 delete运算符销毁指针 p所指向的数组,故此时会输出“11”。最后函数结束,销毁前面定义的对象数组 d,会输出“333”。故最后的输出结果是 11333。27.下列各种函数中,_ 不是类的成员函数。A) 构造函数 B) 析构函数C) 友元函数 D) 拷贝构造函数(分数:2.00)A.B.C. D.解析:解析 构造函数、析构函数和拷贝构造函数都是类的成员函数。28.如果表达式 y*x+中,“*”是作为成
36、员函数重载的运算符,“+”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为A) x.operator+(0).operator*(y); B) operator*(x.operator+(0),y);C) y.operator*(operator+(x,0) D) operator*(operator+(x,0),y)(分数:2.00)A.B.C. D.解析:解析 本题考核运算符的重载。假定已经作为某个类的成员函数重载了二元运算符+,且 c1,c2都是该类的对象,则 c1.operator+(c2)与 c1+c2含义相同。如果+作为该类的非成员函数重载,则operator
37、+(c1,c2)与 c1+c2含义相同。同理,运算符*作为成员函数重载,则 y*(x+)与 y.operator*(x+)含义相同,后缀+作为友元函数重载,那么 x+与 operator+(x,0)含义相同,所以选项 C 是正确的。29.下列程序的输出结果是( )。#includeiostreamusing namespace std;int main()于chara”Hello,Test”;Char*pa;while(*p)if(*p)ay=j;void show( )cout“x=“x“ “y=“yendl;void show( )constcout“x=“ “y=“yendl;priva
38、ted:int x; int y;void main( )Myclass my l (3,4);const my2(7,8);my lshow( );my2show( );A) x=4,y=3;x=7,y=8 B) x=3,y=4;x=7,y=8C) x=7,y=8;x=4,y=3 D) x=8,y=7;x=7,y=8(分数:1.00)A. B.C.D.解析:解析 在 Myclass类中定义了两个同名函数 show,其中一个是常成员函数。在 main函数中定义了两个对象 myl,my2,其中对象 my2是常对象。这两个对象调用成员函数 show时,通过对象 myl调用的是没有用 const修饰
39、的一般成员函数,而通过对象 my2调用的是 const修饰的常成员函数。34.以下关于私有和保护成员的叙述中,不正确的是A) 私有成员不能被外界引用,保护成员可以B) 私有成员不能被派生类引用,保护成员在公有继承下可以C) 私有成员不能被派生类引用,保护成员在保护继承下可以D) 私有成员不能被派生类引用,保护成员在私有继承下可以(分数:2.00)A. B.C.D.解析:解析 私有成员和保护成员都不能被外界引用,这与继承方式无关。35.下列描述中,抽象类的特性是( )。A) 可以说明虚函数 B) 可以定义友元函数C) 可以进行构造函数重载 D) 不能说明其对象(分数:2.00)A.B.C.D.
40、解析:解析 带有纯虚函数的类称为抽象类,抽象类中的纯虚函数没有具体的定义,所以不能说明抽象类的对象。二、填空题(总题数:15,分数:27.00)36.下列程序运行后的输出结果是 _。#includeiostream.hvoid main()int s=0,kfor(k=7;k=0;k-)switch(k)case 1:case 4:case 7:s+ +;break:case 2:case 3:case 6:break;case 0:case 5:s+=2;break;cout“s=“sendl;(分数:1.00)填空项 1:_ (正确答案:s=7)解析:37.在类的对象被创建的时候, 1 函
41、数会被自动调用。(分数:2.00)填空项 1:_ (正确答案:构造)解析:解析 类的对象被创建时,构造函数会被自动调用。如果类没有显式定义构造函数,则系统会自动的生成一个函数体为空的构造函数。38.有如下程序:#includeiostreamusing namespace std;class Apublic:A()cout“A“;A()cout“A“;class BAa;public:B()cout“B“;B()cout“B“;int main()B b;return 0:程序的输出结果是_。(分数:2.00)填空项 1:_ (正确答案:ABBA)解析:解析 此题考查的是类的构造与析构。建立类
42、的对象时,构造函数的执行顺序如下:执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右)-执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序-执行自身的构造函数。析构顺序与之相反。此题中,B 类没有基类。但是有一个 A类的成员 a。所以构造 B类对象时,先构造成员 a再构造自身。因此,构造时输出的结果是 AB,析构与构造顺序相反会输出 BA。所以程序最终输出结果是 ABBA。39.在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为 1。(分数:2.00)填空项 1:_ (正确答案:数据字典)解析:解析 在结构化分析方法中,用于描述系统中所用到的全部
43、数据和文件的文档称为数据字典。40.下面是复数类 complex的定义,其中作为友元函数重载的运算符“-”的功能是将参数对象的实部减1,然后返回对该对象的引用;请补充完整。class complexprivate:int real;int imag;public:complex(int r=0,int i=0):real(r),imag(i)void show()coutreal(imag0?“-“:“+“)imagi;_;complex operator-(complex c)c.real-;return c;(分数:2.00)填空项 1:_ (正确答案:friend complexoper
44、ator-(complex))解析:解析 程序要填入的是运算符函数 operator-在类 complex中的声明,运算符“-”是作为友元函数重载的。41.有以下程序:#includefstream#includestringusing namespace std;int main()char ch=“The end“;ofstream outstr(“_“,ios_base:app);for(int i=0;istrlen(ch); i+) outstr.put(chi);outstr.close();return 0:若程序实现的功能是在文件 d:/put.txt 的尾部追加写入一串字符,
45、试将程序补充完整。(分数:2.00)填空项 1:_ (正确答案:d:/put.txt)解析:解析 使用 ofstream对象打开文件时,文件路径中的字符“/”必须用转义字符序列“/”代替。参数“ios_base:app”规定了文件的打开模式,使文件指针移至文件尾,向文件追加数据。42.当线性表采用顺序存储结构实现存储时,其主要特点是 1。(分数:2.00)填空项 1:_ (正确答案:逻辑结构中相邻的结点在存储结构中仍相邻)解析:解析 当线性表采用顺序存储结构实现存储时,其主要特点是逻辑结构中相邻的结点在存储结构中仍相邻。43.设有二维数组 int a 1020;,则 aij的地址可由首元素 a
46、00的地址来表达,由此可得访问数组元素 aij的表达式为 1。(分数:2.00)填空项 1:_ (正确答案:*(void main( )int i=3,j=19;cout(add(i,j)+ =20)end1;(分数:2.00)填空项 1:_ (正确答案:不能是表达式)解析:解析 引用是变量的别名,其实质是变量的地址。return 在返回值时,如果其后为表达式,则系统为该表达式生成一个临时变量用于存放该表达式的结果,函数执行完毕之后该变量被系统回收,因此,返回的该变量的地址对调用函数来说已经没有意义了。47.有如下程序: #includeiostream using namespaee std;c lass Animal public: virtual char*getType( )constreturn“Animal“; virtual char*getVoice( )constreturn“Voice“; ; class Dog:public Animal public: char*getType( )constreturn“Dog“; char*getVoice(