1、二级 C+笔试-379 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.设有定义:class personint num;char name10;public:void init(int n,char*m);person std30则以下叙述不正确的是(分数:2.00)A.std 是一个含有 30 个元素的对象数组B.std 数组中的每个元素都是 person 类的对象C.std 数组中的每个元素都有自己的私有变量 num 和 nameD.std 数组中的每个元素都有各自的成员函数 init2.设 char 型变量 x 中的值为 10100
2、111,则表达式(2+x)(3)的值是(分数:2.00)A.10101001B.10101000C.11111101D.010101013.实现运行时的多态性用(分数:2.00)A.重载函数B.构造函数C.析构函数D.虚函数4.在设计程序时,应采纳的原则之一是(分数:2.00)A.不限制 goto 语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解5.在 C+语言程序中(分数:2.00)A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义和调用均可以嵌套C.函数的定义和调用均不可以嵌套D.函数的定义不可以嵌套,但函数的调用可以嵌套6.模块独立性是软件模块化所提出
3、的要求,衡量模块独立性的度量标准则是模块的(分数:2.00)A.抽象和信息隐蔽B.局部化和封装化C.内聚性和耦合性D.激活机制和控制方法7.与数学式子 (分数:2.00)A.3*xn/(2*x-1)B.3*x*n/(2*x-1)C.3*pow(x,n)*(1/(2*x-1)D.3*pow(n,x)/(2*x-1)8.有以下程序int f1(int x,int y)return xy? x:y;int f2(int x,int y)return xy? y:x;main( )int a=4,b=3,c=5,d,e,f;d=f1(a,b);d=f1(d,c);e=f2(a,b);e=f2(e,c)
4、;f=a+b+c-d-e;coutd“,“f“,“eendl;执行后输出结果是(分数:2.00)A.3,4,5B.5,3,4C.5,4,3D.3,5,49.执行下列程序的结果是main( )float x=1,y;y=+x*+x;coutyendl;(分数:2.00)A.9.000000B.6.000000C.1.000000D.程序有错误10.以下叙述中不正确的是(分数:2.00)A.在类的定义中通常是用数据成员描述对象的属性,用成员函数描述对象的行为B.类的一个成员只能具有一种访问控制属性C.构造函数和析构函数是特殊的成员函数,因此不允许重载D.通过对象只能访问类的公有成员11.有以下程序
5、void f(int x,int y)int t;if(xy)t=x;x=y;y=t;main( )int a=4,b=3,c=5;f(a,b); f(a,c); f(b,c);couta“,“b“,“cendl;执行后输出结果是(分数:2.00)A.3,4,5B.5,3,4C.5,4,3D.4,3,512.已知类 A 中有公用数据成员 B*b;其中 B 为类名。则下列语句错误的是(分数:2.00)A.A( ):d(newB.A(const A C.A(d)D.A( )delete d;13.以下叙述中不正确的是(分数:2.00)A.一个类的所有对象都有各自的数据成员,它们共享函数成员B.一个
6、类中可以有多个同名的成员函数C.一个类中可以有多个构造函数、多个析构函数D.在一个类中可以声明另一个类的对象作为它的数据成员14.若某二叉树的前序遍历访问顺序是 abdgcefh,中序遍历访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是(分数:2.00)A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca15.下列运算符中,不能重载的是(分数:2.00)A.?:B.+C.-D.=16.下列数据结构中,按先进后出原则组织数据的是(分数:2.00)A.线性链表B.栈C.循环链表D.顺序表17.磁盘文件操作中,打开磁盘文件的访问方式中以追加方式打开文件的(分数:
7、2.00)A.inB.outC.appD.ate18.实体是信息世界中广泛使用的一个术语,它用于表示(分数:2.00)A.有生命的事物B.无生命的事物C.实际存在的事物D.一切事物19.线性表 L=(a1,a2,a3,ai,an),下列说法正确的是(分数:2.00)A.每个元素都有一个直接前件和直接后件B.线性表中至少要有一个元素C.表中诸元素的排列顺序必须是由小到大或由大到小D.除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件20.以下叙述中不正确的是(分数:2.00)A.C+语言中的文本文件以 ASCII 码形式存储数据B.C+语言中,对二进制文件的访问速度比
8、文本文件快C.C+语言中,随机读写方式不适用于文本文件D.C+语言中,顺序读写方式不适用于二进制文件21.下列叙述中,不属于测试的特征的是(分数:2.00)A.测试的挑剔性B.完全测试的不可能性C.测试的可靠性D.测试的经济性22.数据处理的最小单位是(分数:2.00)A.数据B.数据元素C.数据项D.数据结构23.友元函数的作用是(分数:2.00)A.提高程序的效率B.加强类的封装性C.实现数据的隐蔽性D.增加成员函数的种类24.分布式数据库系统不具有的特点是(分数:2.00)A.数据分布性和逻辑整体性B.位置透明性和复制透明性C.分布性D.数据冗余25.有关析构函数的说法中错误的是(分数:
9、2.00)A.析构函数有且只有一个B.析构函数无任何函数类型C.析构函数和构造函数一样可以有形参D.析构函数的作用是在对象被撤销时做清理工作26.下列虚基类的声明中正确的是(分数:2.00)A.class virtual B:public AB.virtual class B:public AC.class B:public A virtualD.class B:virtual public A27.以下关于私有和保护成员的叙述中,不正确的是(分数:2.00)A.私有成员不能被外界引用,保护成员可以B.私有成员不能被派生类引用,保护成员在公有继承下可以C.私有成员不能被派生类引用,保护成员在保
10、护继承下可以D.私有成员不能被派生类引用,保护成员在私有继承下可以28.若已定义 int a=256,执行语句 couthexa;的结果是(分数:2.00)A.100nB.256C.ffeD.ff29.假定 AB 为一个类,则执行 AB x;语句时将自动调用该类的(分数:2.00)A.有参构造函数B.无参构造函数C.拷贝构造函数D.赋值重载函数30.若有以下程序:main( )int k=2,i=2,m;m=(k+=i*=k);coutm“,“iendl;执行后的输出结果是(分数:2.00)A.8,6B.8,3C.6,4D.7,431.将 E-R 图转换到关系模式时,实体与联系都可以表示成(分
11、数:2.00)A.属性B.关系C.键D.域32.通常初始化拷贝构造函数的参数是(分数:2.00)A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名33.下面程序的输出结果是main( )int a=15,b=21,m=0;switch(a%3)case 0:m+;break;case 1:m+;switch(b%2)default:m+;case 0:m+;break;coutmendl;(分数:2.00)A.1B.2C.3D.434.使用静态数据成员的好处不包括(分数:2.00)A.可以节省内存空间B.是为了解决数据共享问题C.可以直接用类名来引用D.可以提高运算速度
12、35.以下不能正确创建输出文件对象并使其与磁盘文件相关联的语句是(分数:2.00)A.ofstream myfile;myfile.open(“d:ofile.txt“);B.ofstream*myfile=new ofstream;myfile-open(“d:ofile.txt“);C.ofstream myfile(“d:ofile.txt“);D.ofstream*myfile=new(“d:ofile.txt“);二、填空题(总题数:15,分数:30.00)36.设一棵二叉树的中序遍历结果为 ABCDEFG,前序遍历结果为 DBACFEG,则后序遍历结果为_。(分数:2.00)填空项
13、 1:_37.在面向对象方法中,属性与操作相似的一组对象称为 1。(分数:2.00)填空项 1:_38.在结构化设计方法中,数据流图表达了问题中的数据流与加工之间的关系,并且,每一个 1 实际上对应一个处理模块。(分数:2.00)填空项 1:_39.软件概要设计的成果是 1。(分数:2.00)填空项 1:_40.在数据库的外模式、模式和内模式 3 级模式的体系结构中,存在两级映射:外模式到模式的映射定义了外模式与模式之间的对应关系;模式到内模式的映射定义了数据库的逻辑结构与 1 之间的对应关系。(分数:2.00)填空项 1:_41.在任何类中都有三种访问权限的数据成员,这三种权限是 publi
14、c、private 和 1。(分数:2.00)填空项 1:_42.下列程序的输出结果是_。#includeiostream.hvoid main( )char a=“abcdabcabfgacd“;int i1=0,i2=0,i=0;while(ai)if(ai=“a“)i1+;if(ai=“b“)i2+;i+;couti1“i2endl;(分数:2.00)填空项 1:_43.如下程序编译时发生错误,错误的原因是 show 函数实现语句错误,则正确的语句应该为_。#includeiostream.hclass testprivate:int hum;public:test(int);void
15、show( );test:test(int n)num=n;test:show( )coutnumendl;void main( )test T(10):T.show( );(分数:2.00)填空项 1:_44.下列程序的运行结果是_。#includeiomanip.hint Func(int*a,int n)int s=1:for(int i=0;in;i+)s*=*a+;return s;void main( )int a=l,2,3,4,5,6,7,8;int b=Func(a,6)+Func(cout“b=“bendl;(分数:2.00)填空项 1:_45.下列程序的输出结果为_。#i
16、ncludeiostream.hint)void main( )int n=3,m=12;max(m,n)+;cout“m=“m“,n=nendl;(分数:2.00)填空项 1:_46.下面程序编译时发现 ma3=9 错误,其原因是_。#includeiostream.hclass FunArrayint*pa; /指向一个数组空问int size; /数组元素个数public:FunArray(int a,int thesize):pa(a),size(thesize)int Size( )return size;void main( )int s=3,7,2,1,5,4;FunArray
17、ma(s,sizeof(s)/sizeof(int);ma3=9;coutma3endl;(分数:2.00)填空项 1:_47.下列程序的执行结果是_。#includeiostream.hclass Studentpublic:Student(int xx)x=xx;virtual float calcTuition( );protected:int x;float Studertt:calcTuition( )return float(x*x);class GraduateStudent:public Studentpublic:GraduateStudent(int xx):Student
18、(xx)float calcTuition( );float Graduatestudent:calcTuition( )return float(x*2);void main( )Student s(20);GraduateStudent gs(30);couts.calcTuition( )“ “gs.calcTuition( )endl;/计算学生 s 和研究生 gs 的学费(分数:2.00)填空项 1:_48.下列程序中需要清理动态分配的数组,划线处应有的语句是_。#includeiostream.hclass personint age,tall;public:person( )ag
19、e=0;tall=40;cout“A baby is born.“endl;person(int i)age=i;tall=40;cout“A old person.“endl;person(int i,int j)age=i;tall=j;cout“a old person with tall.“endl;)person( )cout“person dead.“endl;void show( )cout“age=“age“,tall=“tallendl;void main( )person*ptr;ptr=new person3;ptr0=person( );ptr1=person(18);
20、ptr2=person(20,120);for(int i=0;i3;i+)ptri.show( );_(分数:2.00)填空项 1:_49.下列程序完成从文件读取文件显示的同时写入第二个文件,则在程序中划线部分应该出现的语句是_。#includeiostream.h#includefstream.hvoid main( )fstream filel,file2;char fn110,fn210,ch;cout“输入源文件名“;cinfn1;cout“输入目标文件名“;cinfn2;filel.open(fn1,ios:in);while(ch=filel.get( )!=EOF)coutch
21、;file2.put(oh);filel.close( );file2.close( );(分数:2.00)填空项 1:_50.下列程序的输出结果是_。#includeiostream.hclass baseint x,y;public:base(int i,int j)x=i;y=j;virtual int add( )return x+y;class three:public baseint z;public:three(int i,int j,int k):base(i,j)z=k;)int add( )return(base:add( )+z);void main( )three*q=
22、new three(10,20,30);coutq-add( )endl;(分数:2.00)填空项 1:_二级 C+笔试-379 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.设有定义:class personint num;char name10;public:void init(int n,char*m);person std30则以下叙述不正确的是(分数:2.00)A.std 是一个含有 30 个元素的对象数组B.std 数组中的每个元素都是 person 类的对象C.std 数组中的每个元素都有自己的私有变量 num 和 nameD
23、.std 数组中的每个元素都有各自的成员函数 init 解析:解析 std 是对象数组,里面有 30 个对象,每个对象都有自己的私有数据成员,由于成员函数是公有的,在内存中存在一份即可,各个对象都可以使用。2.设 char 型变量 x 中的值为 10100111,则表达式(2+x)(3)的值是(分数:2.00)A.10101001B.10101000C.11111101D.01010101 解析:解析 本题考查二进制操作的几种形式,其中为按位异或运算符,是按位取反运算符。3.实现运行时的多态性用(分数:2.00)A.重载函数B.构造函数C.析构函数D.虚函数 解析:解析 多态性是通过虚函数来完
24、成的,不同类层次上的类通过虚函数,可以做到运行时根据指针的指向确定调用哪个对象的成员函数。4.在设计程序时,应采纳的原则之一是(分数:2.00)A.不限制 goto 语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解 解析:解析 滥用 goto 语句将使程序流程无规律,可读性差,因此 A 不选;注解行有利于对程序的理解,不应减少或取消,B 也不选;程序的长短要依照实际情况而论,而不是越短越好,C 也不选。5.在 C+语言程序中(分数:2.00)A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义和调用均可以嵌套C.函数的定义和调用均不可以嵌套D.函数的定义不可以
25、嵌套,但函数的调用可以嵌套 解析:解析 本题考查函数的定义、调用及其嵌套之间的关系。6.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的(分数:2.00)A.抽象和信息隐蔽B.局部化和封装化C.内聚性和耦合性 D.激活机制和控制方法解析:解析 模块的独立程序是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性这两个定性的度量标准。7.与数学式子 (分数:2.00)A.3*xn/(2*x-1)B.3*x*n/(2*x-1)C.3*pow(x,n)*(1/(2*x-1) D.3*pow(n,x)/(2*x-1)解析:解析 本题考查将数学表达式翻译为 C+语句,
26、其中 pow(x,n)用于求 xn的值。8.有以下程序int f1(int x,int y)return xy? x:y;int f2(int x,int y)return xy? y:x;main( )int a=4,b=3,c=5,d,e,f;d=f1(a,b);d=f1(d,c);e=f2(a,b);e=f2(e,c);f=a+b+c-d-e;coutd“,“f“,“eendl;执行后输出结果是(分数:2.00)A.3,4,5B.5,3,4C.5,4,3 D.3,5,4解析:9.执行下列程序的结果是main( )float x=1,y;y=+x*+x;coutyendl;(分数:2.00
27、)A.9.000000 B.6.000000C.1.000000D.程序有错误解析:解析 本题比较简单,考查自增运算符的运算规则以及运算符优先级的知识点。自增运算符的优先级高于乘法运算符的优先级。10.以下叙述中不正确的是(分数:2.00)A.在类的定义中通常是用数据成员描述对象的属性,用成员函数描述对象的行为B.类的一个成员只能具有一种访问控制属性C.构造函数和析构函数是特殊的成员函数,因此不允许重载 D.通过对象只能访问类的公有成员解析:解析 构造函数是可以重载的,从而保证了类的多态性。11.有以下程序void f(int x,int y)int t;if(xy)t=x;x=y;y=t;m
28、ain( )int a=4,b=3,c=5;f(a,b); f(a,c); f(b,c);couta“,“b“,“cendl;执行后输出结果是(分数:2.00)A.3,4,5B.5,3,4C.5,4,3D.4,3,5 解析:解析 考生根据分析可以得知 f 函数的功能是交换两个变量的值。表明看起来,在 main 函数中,使用三次 f 函数完成三个变量的交换。真的如此么?只要考生注意到 f 函数采用值传递,而值传递的缺点就是不会改变形参的值,因此,上述操作根本无法改变原来三个变量的值!故三个变量的值依然保持不变。12.已知类 A 中有公用数据成员 B*b;其中 B 为类名。则下列语句错误的是(分数
29、:2.00)A.A( ):d(newB.A(const A C.A(d) D.A( )delete d;解析:解析 首先考生要能判断出四个选项是构造函数和析构函数,其中 d 是类 A 的一个需要初始化的数据成员,且是一个指针。在初始化时,必须指明类 B 的某对象的地址,所以,new B 可以完成这个功能。而析构函数不能带参数,这是常识性的知识,因此正确答案为 C。13.以下叙述中不正确的是(分数:2.00)A.一个类的所有对象都有各自的数据成员,它们共享函数成员B.一个类中可以有多个同名的成员函数C.一个类中可以有多个构造函数、多个析构函数 D.在一个类中可以声明另一个类的对象作为它的数据成员
30、解析:解析 本题考查类的基本概念。构造函数和析构函数比较特殊,析构函数只有一个。14.若某二叉树的前序遍历访问顺序是 abdgcefh,中序遍历访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是(分数:2.00)A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca 解析:解析 前序遍历的第一个结点 a 为树的根结点;中序遍历中 a 的左边的结点为 a 的左子树,a 右边的结点为 a 的右子树;再分别对 a 的左右子树进行上述两步处理,直到每个结点都找到正确的位置。15.下列运算符中,不能重载的是(分数:2.00)A.?: B.+C.-D.=解析:解析 在 C
31、+中,?:是唯一个三目运算符,不能被重载。16.下列数据结构中,按先进后出原则组织数据的是(分数:2.00)A.线性链表B.栈 C.循环链表D.顺序表解析:解析 栈是限定在一端进行插入与删除的线性表。在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素,即栈是按照“先进后出“或“后进先出“的原则组织数据的。17.磁盘文件操作中,打开磁盘文件的访问方式中以追加方式打开文件的(分数:2.00)A.inB.outC.app D.ate解析:解析 根据选项的含义,可
32、知 app 表示追加的含义,可以选定正确答案为 C。18.实体是信息世界中广泛使用的一个术语,它用于表示(分数:2.00)A.有生命的事物B.无生命的事物C.实际存在的事物 D.一切事物解析:解析 实体是客观存在且可以相互区别的事物。实体可以是具体的对象,如一个学生,也可以是一个抽象的事件,如一次出门旅游等。因此,实体既可以是有生命的事物,也可以是无生命的事物,但它必须是客观存在的,而且可以相互区别。19.线性表 L=(a1,a2,a3,ai,an),下列说法正确的是(分数:2.00)A.每个元素都有一个直接前件和直接后件B.线性表中至少要有一个元素C.表中诸元素的排列顺序必须是由小到大或由大
33、到小D.除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件 解析:解析 线性表可以为空表;第一个元素没有直接前件,最后一个元素没有直接后件;线性表的定义中,元素的排列并没有规定大小顺序。20.以下叙述中不正确的是(分数:2.00)A.C+语言中的文本文件以 ASCII 码形式存储数据B.C+语言中,对二进制文件的访问速度比文本文件快C.C+语言中,随机读写方式不适用于文本文件 D.C+语言中,顺序读写方式不适用于二进制文件解析:解析 本题考查 C+语言中文件的概念,包括二进制文件和文本文件,对不同的文件类型采用不同的读写方式。21.下列叙述中,不属于测试的特征的是(
34、分数:2.00)A.测试的挑剔性B.完全测试的不可能性C.测试的可靠性 D.测试的经济性解析:解析 软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。它有 3 个方面的重要特征,即测试的挑剔性、完全测试的不可能性及测试的经济性。其中没有测试的可靠性这一说法。22.数据处理的最小单位是(分数:2.00)A.数据B.数据元素C.数据项 D.数据结构解析:解析 数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。故正确答案为选项 C。23.友元函数的作用是(分数:2.
35、00)A.提高程序的效率 B.加强类的封装性C.实现数据的隐蔽性D.增加成员函数的种类解析:解析 友元函数的引入是为了提高程序的效率,减少通过接口访问的限制,但却破坏了类的封装性。24.分布式数据库系统不具有的特点是(分数:2.00)A.数据分布性和逻辑整体性B.位置透明性和复制透明性C.分布性D.数据冗余 解析:解析 分布式数据库系统具有数据分布性、逻辑整体性、位置透明性和复制透明性的特点,其数据也是分布的;但分布式数据库系统中数据经常重复存储。数据也并非必须重复存储,主要视数据的分配模式而定。若分配模式是一对多,即一个片段分配到多个场地存放,则是冗余的数据库,否则是非冗余的数据库。25.有
36、关析构函数的说法中错误的是(分数:2.00)A.析构函数有且只有一个B.析构函数无任何函数类型C.析构函数和构造函数一样可以有形参 D.析构函数的作用是在对象被撤销时做清理工作解析:解析 本题考查析构函数的有关特性。析构函数是没有形参的。26.下列虚基类的声明中正确的是(分数:2.00)A.class virtual B:public AB.virtual class B:public AC.class B:public A virtualD.class B:virtual public A 解析:解析 本题考核虚基类的声明方式。虚基类说明格式如下:Virtual继承方式基类名其中,Virtu
37、al 是虚基类的关键词。虚基类的说明是用在定义派生类时,写在派生类名的后面。即:class派生类名:Virtual继承方式基类名。27.以下关于私有和保护成员的叙述中,不正确的是(分数:2.00)A.私有成员不能被外界引用,保护成员可以 B.私有成员不能被派生类引用,保护成员在公有继承下可以C.私有成员不能被派生类引用,保护成员在保护继承下可以D.私有成员不能被派生类引用,保护成员在私有继承下可以解析:解析 私有成员和保护成员都不能被外界引用,这与继承方式无关。28.若已定义 int a=256,执行语句 couthexa;的结果是(分数:2.00)A.100n B.256C.ffeD.ff解
38、析:解析 本题考查流操作中格式的控制,hex 的作用是将随后的输出数按照十六进制形式输出。29.假定 AB 为一个类,则执行 AB x;语句时将自动调用该类的(分数:2.00)A.有参构造函数B.无参构造函数 C.拷贝构造函数D.赋值重载函数解析:解析 当没有显式调用指定形式的构造函数,则系统自动调用无参构造函数,如果没有为类指定此构造函数,则系统自动为其生成一个最简单的无参构造函数。30.若有以下程序:main( )int k=2,i=2,m;m=(k+=i*=k);coutm“,“iendl;执行后的输出结果是(分数:2.00)A.8,6B.8,3C.6,4 D.7,4解析:解析 首先进行
39、括号内的运算,注意赋值表达式是从右向左进行的。i=1*k,k=k+i,m= k,所以计算得 m=6,i=4。31.将 E-R 图转换到关系模式时,实体与联系都可以表示成(分数:2.00)A.属性B.关系 C.键D.域解析:解析 数据库逻辑设计的主要工作是将 E-R 图转换成指定 RDBMS 中的关系模式。首先,从 E-R 图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R 图中属性也可以转换成关系的属性。实体集也可以转换成关系。32.通常初始化拷贝构造函数的参数是(分数:2.00)A.某个对象名B.某个对象的成员名C.某个对象的引用名 D.某个对象的指针名解析:解析 拷贝构造函
40、数顾名思义,就是对两个对象进行拷贝生成。因此,其参数是指向某个对象的指针。33.下面程序的输出结果是main( )int a=15,b=21,m=0;switch(a%3)case 0:m+;break;case 1:m+;switch(b%2)default:m+;case 0:m+;break;coutmendl;(分数:2.00)A.1 B.2C.3D.4解析:解析 本题考查 switch 语句的嵌套。实际上,只要按照顺序进行分析可以发现里层嵌套的 switch 语句根本不用分析,因为执行流程根本不能到达那里。34.使用静态数据成员的好处不包括(分数:2.00)A.可以节省内存空间B.是
41、为了解决数据共享问题C.可以直接用类名来引用D.可以提高运算速度 解析:解析 静态成员在一个类中只保存一份,供类的不同对象共享,因此它可以节省内存空间。由于静态成员不属于某个对象,因此引用时必须用类名来标识。35.以下不能正确创建输出文件对象并使其与磁盘文件相关联的语句是(分数:2.00)A.ofstream myfile;myfile.open(“d:ofile.txt“);B.ofstream*myfile=new ofstream;myfile-open(“d:ofile.txt“);C.ofstream myfile(“d:ofile.txt“);D.ofstream*myfile=n
42、ew(“d:ofile.txt“); 解析:解析 本题考查文件对象的创建方法。可以直接定义文件对象,也可以用 new 来动态生成。很明显,选项 D 中使用 new 的方式是错误的。二、填空题(总题数:15,分数:30.00)36.设一棵二叉树的中序遍历结果为 ABCDEFG,前序遍历结果为 DBACFEG,则后序遍历结果为_。(分数:2.00)填空项 1:_ (正确答案:ACBEGFD)解析:解析 由于在前序遍历中首先访问根结点,因此,前序序列中的第一个结点为二叉树的根结点,即 D 为二叉树的根结点。又由于在中序遍历中访问根结点的次序为居中,而访问左子树上的结点为居先,访问右子树上的结点为最后
43、,因此,在中序序列中,以根结点(D)为分界线,前面的子序列(ABC)一定在左子树中,后面的子序列(EFG)一定在右子树中。同样的道理,对于已经划分出的每一个子序列的所有结点中,位于前序序列最前面的一个结点为子树的根结点,而在中序序列中位于该根结点前面的结点构成左子树上的结点子序列,位于该根结点后面的结点构成右子树上的结点子序列。这个处理过程直到所有子序列为空为止。根据上述道理,该二叉树恢复的过程如下图所示:*根据后序遍历的方法,对该二叉树后序遍历的结果为 ACBEGFD。37.在面向对象方法中,属性与操作相似的一组对象称为 1。(分数:2.00)填空项 1:_ (正确答案:类)解析:解析 在面
44、向对象方法中,类描述的是具有相似性质的一组对象。因此,属性与操作相似的一组对象称为类。38.在结构化设计方法中,数据流图表达了问题中的数据流与加工之间的关系,并且,每一个 1 实际上对应一个处理模块。(分数:2.00)填空项 1:_ (正确答案:加工)解析:解析 SD 方法实际上是面向数据流图的,即它的工作对象实际上是在 SA 方法中形成的数据流图。因此,可以由数据流图来导出结构图。另外,由数据流图导出结构图的关键是找出中心加工,而每个加工则对应一个处理模块。39.软件概要设计的成果是 1。(分数:2.00)填空项 1:_ (正确答案:软件设计说明书)解析:解析 软件生命周期各个阶段都有阶段成
45、果,软件设计说明书是软件概要设计阶段的成果。40.在数据库的外模式、模式和内模式 3 级模式的体系结构中,存在两级映射:外模式到模式的映射定义了外模式与模式之间的对应关系;模式到内模式的映射定义了数据库的逻辑结构与 1 之间的对应关系。(分数:2.00)填空项 1:_ (正确答案:物理结构)解析:解析 模式也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述;内模式也称存储模式或数据库模式,它是数据物理结构和存储结构的描述。41.在任何类中都有三种访问权限的数据成员,这三种权限是 public、private 和 1。(分数:2.00)填空项 1:_ (正确答案:protected)解析:
46、42.下列程序的输出结果是_。#includeiostream.hvoid main( )char a=“abcdabcabfgacd“;int i1=0,i2=0,i=0;while(ai)if(ai=“a“)i1+;if(ai=“b“)i2+;i+;couti1“i2endl;(分数:2.00)填空项 1:_ (正确答案:4 3)解析:解析 分析 while 循环体可以判断出:il 用于统计字符串中字符 a 的数量,i2 用于统计字符 b 的数量。因此,考察数组 a 的内容可得其数量分别为 4 和 3。43.如下程序编译时发生错误,错误的原因是 show 函数实现语句错误,则正确的语句应该为_。#includeiostream.hclass testprivate:int hum;public:test(int);void show( );test:test(int n)num=n;test:show( )coutnumendl;void main( )test T(10):T.show( );(分数:2.00)填空项 1:_ (正确答案:void test:show( )coutnumendl;)解析:解析 show 成员函数的声明和实现不一致,即实现部分应有 voi