1、二级 C+笔试-378 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列关于模板的叙述中,错误的是(分数:2.00)A.调用模板函数时,在一定条件下可以省略模板实参B.可以用 int、double 这样的类型修饰符来声明模板参数C.模板声明中的关键字 class都可以用关键字 typename替代D.模板的形参表中可以有多个参数2.当使用 ofstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为(分数:2.00)A.ios base:inB.ios_base:binaryC.ios_base:inIios_base:
2、outD.ios_base:out3.在软件开发中,需求分析阶段可以使用的工具是(分数:2.00)A.N-S图B.DFD图C.PAD图D.程序流程图4.下列运算符函数中,肯定不属于类 Value的成员函数的是(分数:2.00)A.Value operator+(Value);B.Value operator-(Value,Value);C.Value operator*(int);D.Value operator/(Value);5.一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是(分数:2.00)A.123456ABCDEB
3、.EDCBA54321C.ABCDEl2345D.54321EDCBA6.若已经声明了函数原型“void fun(int a,double b=0.0);”,则下列重载函数声明中正确的是(分数:2.00)A.void fun(int a=90,double b=0.0);B.int fun(int a,doubleB) ;C.vD.bool fun(int a,double b=0.0);7.如果表达式 a=b 中的“=”是作为非成员函数重载的运算符,则可以等效地表示为(分数:2.00)A.operator=(B.C.D.operator=(b,8.数据流图中带有箭头的线段表示的是(分数:2.
4、00)A.控制流B.事件驱动C.模块调用D.数据流9.在一个抽象类中,一定包含(分数:2.00)A.虚函数B.纯虚函数C.模板函数D.重载函数10.有 3个关系 R、S 和 T如下: (分数:2.00)A.笛卡儿积B.交C.并D.自然连接11.下列选项中,与实现运行时多态性无关的是(分数:2.00)A.重载函数B.虚函数C.指针D.引用12.有如下程序: #includeiostreanl using namespace std; class MyClass public: MyClass(int x):val(x) void Set(int x)val=x; void Print( )eon
5、steout“val=“val/t; private: int val; ; int main( ) eonst MyClass objl(10); MyClass obj2(20); objl.Print(); /语句 1 obj2.Print( ); /语句 2 objl.Set(20); /语句 3 obj2.Set(30); /语句 4 return 0; 其主函数中错误的语句是(分数:2.00)A.语句 1B.语句 2C.语句 3D.语句 413.下列叙述中正确的是(分数:2.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队
6、列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定的14.在数据管理技术发展的 3个阶段中,数据共享最好的是(分数:2.00)A.人工管理阶段B.文件系统阶段C.数据库系统阶段D.3个阶段相同15.在长度为 n的有序线性表中进行二分查找,最坏情况下需要比较的次数是(分数:2.00)A.0(n)B.O(n2)C.D(10g2n)D.O(nlog2n)16.下列模板声明中有语法错误的是(分数:2.00)A.templatetypename TT fun(T x)return x;B.templatetypen
7、ame TT fun(T x,int n)return x 术 n;C.templateclass TT fun(T*P)return*P;D.template17.下列关于运算符重载的叙述中,错误的是(分数:2.00)A.有的运算符可以作为非成员函数重载B.所有的运算符都可以通过重载而被赋予新的含义C.不得为重载的运算符函数的参数设置默认值D.有的运算符只能作为成员函数重载18.如下程序的输出结果是 #includeiostream using namespace std; class MyClass public: MyClass(int i=0)cout1; MyClass(const
8、MyClassx)cout2; ; int main( ) MyClass objl(1),obj2(2),ohj3(objl); return 0; (分数:2.00)A.112B.111C.121D.11319.在 C+中,编译系统自动为一个类生成默认构造函数的条件是(分数:2.00)A.该类没有定义任何有参构造函数B.该类没有定义任何无参构造函数C.该类没有定义任何构造函数D.该类没有定义任何成员函数20.要利用 C+流进行文件操作,必须在程序中包含的头文件是(分数:2.00)A.iostreamB.fstreamC.strstreamD.iomanip21.建立一个有成员对象的派生类对
9、象时,各构造函数体的执行次序为(分数:2.00)A.派生类、成员对象类、基类B.成员对象类、基类、派生类C.基类、成员对象类、派生类D.基类、派生类、成员对象类22.在一个派生类的成员函数中,试图调用其基类的成员函数“void f( );”,但无法通过编译,这说明(分数:2.00)A.f( )是基类的私有成员B.f( )是基类的保护成员C.派生类的继承方式为私有D.派生类的继承方式为保护23.下列语句中正确的是(分数:2.00)A.char*myString=“Hello-World!“;B.char myString=“Hello-World!“;C.char myString11=”Hel
10、lo-World!”;D.char nlyString12=“Hello-World!“;24.下列叙述中正确的是(分数:2.00)A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间25.在下列原型所示的 C+函数中,按“传值”方式传递参数的是(分数:2.00)A.void f1(int x);B.void f2(int*x);C.void f3(const int*x);D.void f4(intx);26.执行如
11、下程序,输出星号(*)的个数为 #includeiostream using namespaee std; class Sample public: Sample( ) Sample( )cout*; ; int main( ) Sample temp2,*pTemp2; return 0; (分数:2.00)A.1B.2C.3D.427.对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明该基类成员的访问权限是(分数:2.00)A.公有或私有B.私有C.保护或私有D.公有或保护28.在类声明中,紧跟在“public:”后声明的成员的访问权限是(分数:2.00)A.私有B
12、.公有C.保护D.默认29.在语句“eoutA;”中,eout 是(分数:2.00)A.类名B.对象名C.函数名D.C+的关键字30.如下程序的输出结果是 #includeiostream using namespace std: int main( ) int sum: for(inti=O;i6;i+=3) sunl=i: for(intj=i;j6;j+)suitL+=j; coutsumendl: retuIn 0:(分数:2.00)A.3B.10C.12D.1531.在面向对象方法中,不属于“对象”基本特点的是(分数:2.00)A.一致性B.分类性C.多态性D.标识唯一性32.定义派
13、生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为(分数:2.00)A.私有继承B.非私有继承C.保护继承D.公有继承33.下列字符串中不能作为 C+标识符使用的是(分数:2.00)A.WHILEB.userC._lvarD.9stars34.一问宿舍可住多个学生,则实体宿舍和学生之间的联系是(分数:2.00)A.一对一B.一对多C.多对一D.多对多35.下列语句中错误的是(分数:2.00)A.const int a;B.const int a=10;C.const int*point=0;D.const int*point=new int(10);二、填空题(总题数:15,分数:
14、30.00)36.对下列二叉树进行中序遍历的结果是_。 (分数:2.00)填空项 1:_37.按照软件测试的一般步骤,集成测试应在 1 测试之后进行。(分数:2.00)填空项 1:_38.软件工程三要素包括方法、工具和过程,其中, 1 支持软件开发的各个环节的控制和管理。(分数:2.00)填空项 1:_39.数据库设计包括概念设计、 1 和物理设计。(分数:2.00)填空项 1:_40.在二维表中,元组的 1 不能再分成更小的数据项。(分数:2.00)填空项 1:_41.当使用关键字 1 作为函数返回类型时,该函数不返回任何值。(分数:2.00)填空项 1:_42.已知数组 a中有 n个元素,
15、下列语句将数组 a中从下标 x1开始的 k个元素移动到从下标 x2开始的 k个元素中,其中 0=x1x2n,x2+kn,请将下列语句补充完整。 for(inti=xl+k一 1;i=xl;i-)a_=ai;(分数:2.00)填空项 1:_43.如下程序的输出结果是_。 #includeiostream using namespace std; int funl(int x)return+x; int fun2(intx)return+x; int main( ) int x:1,y=2; Y=funl(fun2(x); coutx,y; return 0; (分数:2.00)填空项 1:_44
16、.如下程序的输出结果是_。 #includeiostream using namespace std; class pumpkin public: pumpkin( )+count; pumpkin( )-eount; static void total_count( )coutcount“pumpkin(s)“endl; private: static int count; ; int pumpkin:count=0; int main( ) pumpkin pl10; pumpkin:total_count( ); return 0; (分数:2.00)填空项 1:_45.有如下递归函数:
17、 int Fun(int n) if(n=1)return 1; _ 请补充完整,使得函数 Fun能够正确计算形参 n的阶乘。(分数:2.00)填空项 1:_46.请在下列程序中的空格处填写正确的语句: class Sample public: Sample( ) Sample( ) void SetData(int datA) /将 Sample类成员变量 data设置成形参的值 _ private: int data; ;(分数:2.00)填空项 1:_47.有如下类定义,请将 Sample类的复制构造函数补充完整。 class Sample public: Sample( ) Sampl
18、e( )if(P)delete P;) Sample(const Sample&s)_ void SetData(int datA) P=new int(datA) ; private: int*P: ;(分数:2.00)填空项 1:_48.重载加法运算符“+”,其函数名是 1。(分数:2.00)填空项 1:_49.如下程序的输出结果是_。 #includeiostream using namespace std; class Wages /“工资”类 double base; /基本工资 double bonus; /奖金 double tax; /税金 public: Wages(doub
19、le CBase,double CBonus,doable CTax): base(CBase),bonus(CBonus),tax(CTax) double getPay( )const; /返回应付工资额 Wages operator+(Wages w)cons; /重载加法 ; double Wages:getPay( )consreturn base+bonus-tax; Wages Wages:operator+(Wages w)constreturn Wages(base+wbase,bonus+wbonus,tax+wtax); int main( ) Wages wl(2000
20、,500,100),w2(5000,1000,300); eout(wl+w2)getPay( )endl; return 0; (分数:2.00)填空项 1:_50.如下程序的输出结果是_。 #includeiostream using namespace std; class Pet char name10; public: Pet(char*nanle)strcpy(this-name,name); const char*getName( )constreturn name; virtual void call( )eonst=0; ; class Dog:public Pet publ
21、ic: Dog(char*name):Pet(name) void call( )eonstcout“汪汪叫“; ; class Cat:public Pet public: Cat(char*name):Pet(name) void call( )consteout“喵喵叫“; ; int main( ) Pet*petl=new Dog(“哈克“),*pet2=new Cat(“吉米“); eoutpetl-getName( );petl-call( );eoutendl; coutpet2-getName( );pet2-call( );eoutendl; return 0; (分数:2
22、.00)填空项 1:_二级 C+笔试-378 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列关于模板的叙述中,错误的是(分数:2.00)A.调用模板函数时,在一定条件下可以省略模板实参B.可以用 int、double 这样的类型修饰符来声明模板参数C.模板声明中的关键字 class都可以用关键字 typename替代 D.模板的形参表中可以有多个参数解析:解析 在有 typename的地方可以用 class来代替,但是在有 class的地方不一定能用 typename代替,如: Templaeclass 类型参数class 类名 后面的
23、那个 class是不能用 typename代替的。2.当使用 ofstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为(分数:2.00)A.ios base:inB.ios_base:binaryC.ios_base:inIios_base:outD.ios_base:out 解析:解析 对所有的类 ifstream,文件的打开方式默认值为:ios:in;而对于类 ofstream,文件打开方式的默认值为 ios:out。3.在软件开发中,需求分析阶段可以使用的工具是(分数:2.00)A.N-S图B.DFD图 C.PAD图D.程序流程图解析:解析 数据流图简称 DFD,它采
24、用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。所以 DFD图可以用于需求分析阶段。4.下列运算符函数中,肯定不属于类 Value的成员函数的是(分数:2.00)A.Value operator+(Value);B.Value operator-(Value,Value); C.Value operator*(int);D.Value operator/(Value);解析:解析 双目运算符重载为成员函数时,只需要一个形参,另外一个形参为当前对象本身。5.一个栈的初始状态为空。现将元素 1、2、3、4、
25、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是(分数:2.00)A.123456ABCDEB.EDCBA54321 C.ABCDEl2345D.54321EDCBA解析:解析 栈的特点是先进后出,所以全部入栈后再全部出栈所得的序列顺序必然与入栈序列的顺序相反。6.若已经声明了函数原型“void fun(int a,double b=0.0);”,则下列重载函数声明中正确的是(分数:2.00)A.void fun(int a=90,double b=0.0);B.int fun(int a,doubleB) ;C.v D.bool fun(int a,double b=0.
26、0);解析:解析 进行函数重载时,要求函数名相同,而函数的参数不同,函数的返回值类型不在参数匹配检查之列。因此,若两个函数的参数个数和类型都相同,而只有返回值类型不同,则不允许重载。7.如果表达式 a=b 中的“=”是作为非成员函数重载的运算符,则可以等效地表示为(分数:2.00)A.operator=( B.C.D.operator=(b,解析:解析 双目运算符进行友元函数重载时,在程序中的调用方法有:aabb 或者 operator(aa,bB) ,这两种方法等价;或者显式调用为:aaoperator(bB) 。8.数据流图中带有箭头的线段表示的是(分数:2.00)A.控制流B.事件驱动C
27、.模块调用D.数据流 解析:解析 在数据流图中,矩形表示数据的外部实体,圆角矩形表示变换数据的处理逻辑,双横线表示数据的存储,箭头表示数据流。9.在一个抽象类中,一定包含(分数:2.00)A.虚函数B.纯虚函数 C.模板函数D.重载函数解析:解析 一个含有纯虚函数的类被称为抽象类,所以一个抽象类至少含有一个以上的纯虚函数。10.有 3个关系 R、S 和 T如下: (分数:2.00)A.笛卡儿积B.交C.并D.自然连接 解析:解析 自然连接是一种特殊的等值连接。当关系 R和 S有相同的属性组,且该属性组的值相等时,这样的连接称为自然连接。11.下列选项中,与实现运行时多态性无关的是(分数:2.0
28、0)A.重载函数 B.虚函数C.指针D.引用解析:解析 动态联编是指在程序运行时才将源程序经过编译连接成为可执行文件的过程。动态联编所支持的多态性被称为运行时多态性,简称为动态多态性。所有的编译都是在运行时完成的,只有重载函数不是,重载函数属于静态联编。12.有如下程序: #includeiostreanl using namespace std; class MyClass public: MyClass(int x):val(x) void Set(int x)val=x; void Print( )eonsteout“val=“val/t; private: int val; ; int
29、 main( ) eonst MyClass objl(10); MyClass obj2(20); objl.Print(); /语句 1 obj2.Print( ); /语句 2 objl.Set(20); /语句 3 obj2.Set(30); /语句 4 return 0; 其主函数中错误的语句是(分数:2.00)A.语句 1B.语句 2C.语句 3 D.语句 4解析:解析 常对象只能调用常成员函数,不能调用非常成员函数,所以 C错误。13.下列叙述中正确的是(分数:2.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素
30、的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定的 解析:解析 循环队列是线性表的一种,所以选项 A错误。循环队列的入队和出队需要由队尾指针和队头指针完成,所以选项 B和 c错误。14.在数据管理技术发展的 3个阶段中,数据共享最好的是(分数:2.00)A.人工管理阶段B.文件系统阶段C.数据库系统阶段 D.3个阶段相同解析:解析 人工管理阶段是在计算机出现的初期,主要用于科学计算,没有大容量的存储设备。处理方式只能是批处理,数据不共享,不同程序问不能交换数据。文件系统阶段把有关的数据组织成一种文件,这种数据文
31、件可以脱离程序而独立存在,由一个专门的文件管理系统实施统一管理;但是,数据文件仍高度依赖于其对应的程序,不能被多个程序所通用。数据库系统阶段对所有的数据实行统一规划管理,形成了一个数据中心,构成了一个数据仓库;数据库中的数据能够满足所有用户的不同要求,供不同用户共享;数据共享性显著增强。15.在长度为 n的有序线性表中进行二分查找,最坏情况下需要比较的次数是(分数:2.00)A.0(n)B.O(n2)C.D(10g2n) D.O(nlog2n)解析:解析 二分查找法的基本思想是将 n个元素分成个数大致相同的两半,取 an/2与欲查找的 x作比较,如果 x=an/2,则找到 x,算法终止;如果
32、xan/2,则只要在数组的左半部继续搜索 x(假设数组元素是按升序排列的);如果 xan/2,则只要在数组的右半部继续搜索 x。每次余下 n/2i个元素待比较,当最后剩下一个时,即 n/2i=1。故 n=2i;所以 i=log2n。16.下列模板声明中有语法错误的是(分数:2.00)A.templatetypename TT fun(T x)return x;B.templatetypename TT fun(T x,int n)return x 术 n;C.templateclass TT fun(T*P)return*P; D.template解析:解析 函数的返回值为 T对象,而在模板函
33、数中返回的是指针。17.下列关于运算符重载的叙述中,错误的是(分数:2.00)A.有的运算符可以作为非成员函数重载B.所有的运算符都可以通过重载而被赋予新的含义 C.不得为重载的运算符函数的参数设置默认值D.有的运算符只能作为成员函数重载解析:解析 进行运算符重载时,不得给重载函数参数赋默认值。运算符重载是针对新数据类型的需要对原有运算符进行适当的改造,而不是创建新的运算符,也不能给运算符赋予新的含义。有的运算符只能重载为成员函数如:=、( )、 、-。18.如下程序的输出结果是 #includeiostream using namespace std; class MyClass publi
34、c: MyClass(int i=0)cout1; MyClass(const MyClassx)cout2; ; int main( ) MyClass objl(1),obj2(2),ohj3(objl); return 0; (分数:2.00)A.112 B.111C.121D.113解析:解析 MyClass objl(1),ohj2(2),obj3(objl);创建 objl和 obj2对象时调用第一个构造函数,打印 1,创建 obj3对象时调用第二个构造函数,打印 2。19.在 C+中,编译系统自动为一个类生成默认构造函数的条件是(分数:2.00)A.该类没有定义任何有参构造函数B
35、.该类没有定义任何无参构造函数C.该类没有定义任何构造函数 D.该类没有定义任何成员函数解析:解析 在 C+中,若类没有显式定义构造函数,则系统会自动生成一个默认的构造函数。20.要利用 C+流进行文件操作,必须在程序中包含的头文件是(分数:2.00)A.iostreamB.fstreamC.strstreamD.iomanip 解析:解析 头文件 iomapip用于输入/输出的格式控制,头文件 iostrearn包含了对输入/输出流进行操作所需的基本信息。21.建立一个有成员对象的派生类对象时,各构造函数体的执行次序为(分数:2.00)A.派生类、成员对象类、基类B.成员对象类、基类、派生类
36、C.基类、成员对象类、派生类 D.基类、派生类、成员对象类解析:解析 在生成派生类对象时,如果派生类中含有对象成员,则先执行基类的构造函数,然后执行对象成员的构造函数,最后执行派生类的构造函数。析构函数的调用顺序与构造函数的顺序则相反。22.在一个派生类的成员函数中,试图调用其基类的成员函数“void f( );”,但无法通过编译,这说明(分数:2.00)A.f( )是基类的私有成员B.f( )是基类的保护成员C.派生类的继承方式为私有 D.派生类的继承方式为保护解析:解析 当派生类的继承方式为私有继承方式时,派生类成员函数不能访问任何基类成员和成员函数。23.下列语句中正确的是(分数:2.0
37、0)A.char*myString=“Hello-World!“; B.char myString=“Hello-World!“;C.char myString11=”Hello-World!”;D.char nlyString12=“Hello-World!“;解析:解析 选项 C、D 的数组下标超界;对于选项 B,不能将字符串赋值给字符,可以将一个字符串赋值给字符指针,指针指向字符数组的首地址。24.下列叙述中正确的是(分数:2.00)A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储
38、有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间解析:解析 顺序存储方式是把逻辑上相邻的结点存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现,其优点是占用的存储空间最少,所以选项 D错误。顺序存储结构可以存储如二叉树这样的非线性结构,所以选项 B错误。链式存储结构也可以存储线性表,所以选项 C错误。25.在下列原型所示的 C+函数中,按“传值”方式传递参数的是(分数:2.00)A.void f1(int x); B.void f2(int*x);C.void f3(const int*x);D.void f4(intx);解析:解析 函数参数传
39、递分为两类:一是“传地址调用”,形参为指针或变量引用两类;二是“传值调用”,形参为普通变量。26.执行如下程序,输出星号(*)的个数为 #includeiostream using namespaee std; class Sample public: Sample( ) Sample( )cout*; ; int main( ) Sample temp2,*pTemp2; return 0; (分数:2.00)A.1B.2 C.3D.4解析:解析 类在创建对象时调用构造函数,在撤销对象时调用析构函数,而在定义类指针时则不调用构造函数和析构函数。sampie temp2定义了一个 2个元素的对
40、象数组,因此调用两次析构函数,打印 2个*。27.对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明该基类成员的访问权限是(分数:2.00)A.公有或私有B.私有C.保护或私有D.公有或保护 解析:解析 派生类公有继承基类时,派生类成员函数可以访问基类的公有成员或者保护成员。28.在类声明中,紧跟在“public:”后声明的成员的访问权限是(分数:2.00)A.私有B.公有 C.保护D.默认解析:解析 public 用于声明公有成员,private 用于声明私有成员,procteced 用于声明保护成员。29.在语句“eoutA;”中,eout 是(分数:2.00)A.
41、类名B.对象名 C.函数名D.C+的关键字解析:解析 cout 是 ostream的派生类 ostream-withassign的对象,cin 是 jstream的派生类istream_withhassign的派生类对象。30.如下程序的输出结果是 #includeiostream using namespace std: int main( ) int sum: for(inti=O;i6;i+=3) sunl=i: for(intj=i;j6;j+)suitL+=j; coutsumendl: retuIn 0:(分数:2.00)A.3B.10C.12D.15 解析:解析 每次在外循环 i
42、中,sum 都被程序赋初值,因此,只有最后一次循环的 sum起作用。最后一次循环 i=3,sum=3,内循环 j=3,4,5,所以 sum=3+3+4+5=15。31.在面向对象方法中,不属于“对象”基本特点的是(分数:2.00)A.一致性 B.分类性C.多态性D.标识唯一性解析:解析 对象是面向对象方法中最基本的概念,它的基本特点有标识唯一性、分类性、多态性、封装性和模块独立性。故本题答案为 A。32.定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为(分数:2.00)A.私有继承 B.非私有继承C.保护继承D.公有继承解析:解析 定义派生类时,若不使用关键字显式地规定采用
43、何种继承方式,则默认方式为私有继承方式。33.下列字符串中不能作为 C+标识符使用的是(分数:2.00)A.WHILEB.userC._lvarD.9stars 解析:解析 在 C+中,变量标识符必须以大小写字母或下划线开始,由数字或者字母以及下画线等组成的一个字符串,其中 C+关键字不能作为标识符,不能包含-、+、-、*、/等运算符号。C+变量区分大小写,不能以数字开头。34.一问宿舍可住多个学生,则实体宿舍和学生之间的联系是(分数:2.00)A.一对一B.一对多 C.多对一D.多对多解析:解析 一个实体宿舍可以对应多个学生,而一个学生只能对应一个宿舍,所以宿舍和学生之间是一对多关系。35.
44、下列语句中错误的是(分数:2.00)A.const int a; B.const int a=10;C.const int*point=0;D.const int*point=new int(10);解析:解析 用 const定义一个常量,一旦定义好则在程序的任何地方都不能更改,所以必须在定义时赋初值。二、填空题(总题数:15,分数:30.00)36.对下列二叉树进行中序遍历的结果是_。 (分数:2.00)填空项 1:_ (正确答案:DBXEAYFZC)解析:解析 二叉树中序遍历的顺序为先遍历左子树,然后访问根结点,最后遍历右子树。由此可知,该二叉树中序遍历的结果为 DBXEAYFZC。37.
45、按照软件测试的一般步骤,集成测试应在 1 测试之后进行。(分数:2.00)填空项 1:_ (正确答案:单元)解析:解析 软件测试过程按 4个步骤进行,即单元测试、集成测试、确认测试和系统测试。38.软件工程三要素包括方法、工具和过程,其中, 1 支持软件开发的各个环节的控制和管理。(分数:2.00)填空项 1:_ (正确答案:过程)解析:解析 软件工程包括 3个要素:方法、工具和过程。软件工程方法为软件开发提供了“如何做”的技术;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制和管理。39.数据库设计包括概念设计、 1 和物理设计。(分数:2.00)填空项 1:_ (正确答
46、案:逻辑设计)解析:解析 数据库的设计过程大致分为 3个步骤:概念设计、逻辑设计和物理设计。40.在二维表中,元组的 1 不能再分成更小的数据项。(分数:2.00)填空项 1:_ (正确答案:分量)解析:解析 一张二维表对应一个关系,代表一个实体集,表中的一行称为一个元组。一个元组又由许多个分量组成,每个元组分量是表框架中每个属性的投影值。41.当使用关键字 1 作为函数返回类型时,该函数不返回任何值。(分数:2.00)填空项 1:_ (正确答案:void)解析:解析 vold 表示返回值为空类型,即没有返回值。42.已知数组 a中有 n个元素,下列语句将数组 a中从下标 x1开始的 k个元素
47、移动到从下标 x2开始的 k个元素中,其中 0=x1x2n,x2+kn,请将下列语句补充完整。 for(inti=xl+k一 1;i=xl;i-)a_=ai;(分数:2.00)填空项 1:_ (正确答案:x2+i)解析:解析 将 x1为下标的 k个元素移动到 x2为下标的 k个元素中,只需将数组的下标改变即可。43.如下程序的输出结果是_。 #includeiostream using namespace std; int funl(int x)return+x; int fun2(intx)return+x; int main( ) int x:1,y=2; Y=funl(fun2(x); coutx,y; return 0; (分数:2.00)填空项 1:_ (正确答案:2,3)解析:解