1、二级 C+笔试 335 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下列有关数据库的描述,正确的是( )。(分数:2.00)A.数据库是一个 DBF 文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件2.语句 int i=2.8*6; 中整型常量 i 定义后赋初值的结果是( )。(分数:2.00)A.12B.16C.17D.183.关于类模板,下列表述中不正确的是( )。(分数:2.00)A.类模板的成员函数都是模板函数B.类模板本身在编译中不会生成任何代码C.类模板只能有虚拟类型参数D.用类模板定义一个
2、对象时,不能省略实参4.检查软件产品是否符合需求定义的过程称为( )。(分数:2.00)A.确认测试B.集成测试C.单元测试D.白盒测试5.执行下面程序后输出的结果是( )。 #include iostream using namespace std; int main() int a44=1,2,3,-4,7,-12,-13,8,-21,9,0,-24,-31,10,-33,11; int i,j,s=0; for(i=0;i4;i+) for(j=0;j4;j+) if(aij=0)continue; s+=aij; coatsendl; return 0; (分数:2.00)A.141B
3、.-138C.-1D.756.下列关于 dowhile 语句的叙述中正确的是( )。(分数:2.00)A.dowhile 语句所构成的循环不能用其他语句构成的循环来代替B.dowhile 语句所构成的循环只能用 break 语句跳出C.dowhile 语句所构成的循环只有在 while 后面的表达式非零时才结束D.dowhile 语句所构成的循环只有在 while 后面的表达式为零时才结束7.将 E-R 图转换到关系模式时,实体与联系都可以表示成( )。(分数:2.00)A.属性B.关系C.键D.域8.假定 MyClas 为一个类,则该类的拷贝构造函数的声明语句为( )。(分数:2.00)A.
4、MyClasB.const MyClasC.MyClas(const MyClasD.MyClas(MyClas9.下列关于运算符重载的说法中,不正确的是( )。(分数:2.00)A.重载不能改变运算符的优先级,但可以通过加括号的方式改变其计算顺序B.重载不能改变运算符的结合律和操作数的个数C.能够创建新的运算符,并非只有现有的运算符才能被重载D.运算符重载不能改变运算符用于内部类型对象时的含义,它只能和用户自定义的类型的对象一起使用,或者用于用户自定义类型的对象和内部类型的对象混合使用时10.下列关于类与对象的说法不正确的是( )。(分数:2.00)A.对象是类的一个实例B.任何一个对象只能
5、属于一个具体的类C.类与对象的关系和数据类型与变量的关系相似D.一个类只能有一个对象11.在不同文件的函数中,对非静态全局变量的引用要加的关键字是( )。(分数:2.00)A.autoB.registerC.externD.static12.下列有关重载函数的说法中正确的是( )。(分数:2.00)A.重载函数名可以不同B.重载函数必须具有不同的形参列表C.重载函数形参个数必须不同D.重载函数必须具有不同的返回值类型13.下列各函数的说明中,表示纯虚函数的是( )。(分数:2.00)A.virtual int fuc(in;B.void fuc(in=0;C.virtual void fuc(
6、)=0;D.virtual void fuc(in14.在模块化程序设计中,按功能划分模块的原则是( )。(分数:2.00)A.各模块的功能尽量单一,且各模块之间的联系尽量的少B.各模块的功能尽量单一,且各模块之间的联系尽量紧密C.各模块应包括尽量多的功能D.各模块应包括尽量多的输入输出操作15.软件工程的理论和技术性研究的内容主要包括软件开发技术和( )。(分数:2.00)A.消除软件危机B.软件工程管理C.程序设计自动化D.实现软件可重用性16.在 E-R 图中,用来表示实体的图形是( )。(分数:2.00)A.矩形B.椭圆形C.菱形D.三角形17.两个或两个以上模块之间关联的紧密程度称为
7、( )。(分数:2.00)A.耦合度B.内聚度C.复杂度D.数据传输特性18.下列声明语句中没有起到定义作用的是( )。(分数:2.00)A.int count;B.const double pi=3.14159;C.extern long index;D.int max(int a,int return ab? a:b;19.在一棵二叉树中,第 5 层的节点数最多为( )。(分数:2.00)A.32B.16C.15D.3120.要定义数组 a,使得其中每个元素的数据依次为 3,9,4,8,0,0,0,错误的定义语句是 ( )。(分数:2.00)A.int a=3,9,4,8,0,0,0;B.
8、int a9=3,9,4,8,0,0,0;C.int a=3,9,4,8;D.int a7=3,9,4,8,0,0,0;21.C+源文件中包含的输入/输出头文件为( )。(分数:2.00)A.stdihB.stdafhC.iostreahD.streah22.下面关于友元函数的描述正确的是( )。(分数:2.00)A.友元函数不能访问类的私有成员B.友元函数破坏了类的封装性和隐藏性C.友元函数是类的成员函数D.友元函数的实现必须在类的内部定义23.有以下语句:int a10=0,1,2,3,4,5,6,7,8,9, *p=a;。下列对 a 数组元素的引用 (其中 0i10)不正确的是( )。(
9、分数:2.00)A.ap-aB.PC.*( int fuc(int,int); int main() coutfuc(1,10)endl; return 0; int fuc(int x,int y) return x*x+y*y; (分数:2.00)A.该函数的定义和调用方式都是错误的B.该函数的定义和调用方式都是正确的C.该函数调用方式正确,但函数定义错误D.函数定义正确,但函数调用方式错误27.下列不能作为函数返回值的是( )。(分数:2.00)A.voidB.longC.newD.int28.以下程序段输出的结果是( )。 char str=“BCDE“,*ptr=str; cout*
10、(ptr+4)endl;(分数:2.00)A.0B.69C.字符 E 的地址D.一个空字符29.以下程序的输出结果是( )。 #include iostream using namespace std; int main() int a=1,b; switch(a) case 1:b=30; case 2:b=20; case 3:b=10; default:b=0; coutbendl; return 0; (分数:2.00)A.30B.20C.10D.030.下面关于虚函数的描述正确的是( )。(分数:2.00)A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数既可以在函数说
11、明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型31.类 MyClas 的定义如下: class MyClas public: MyClas() MyClas(int a) value=new.int(i); int *value; ; 若要对类中的 value 赋值,则下面的语句中正确的是( )。(分数:2.00)A.MyClas x;value=10;B.MyClas x; *value=10;C.MyClas x; *value=10;D.MyClas x(10);32.在 32 位计算机中,一个 int 型数据所占用的内存长度为( )字节。
12、(分数:2.00)A.4B.2C.6D.833.C+流中重载的运算符“”是一个( )。(分数:2.00)A.用于输出操作的非成员函数B.用于输入操作的非成员函数C.用于输出操作的成员函数D.用于输入操作的成员函数34.假定有如下程序: #include iostream using namespace std; int s =0; class example static int n; public: example(int i) n=i; static void add( ) s+=n; ; int example:n=0; int main( ) example a(2),b(5); ex
13、ample:add(); coutsendl; return 0; 程序运行后输出结果为( )。(分数:2.00)A.2B.3C.7D.535.按照标识符的要求,开头的符号不能是( )。(分数:2.00)A.大写字母B.小写字母C.数字字符D.下划线二、B填空题/B(总题数:14,分数:30.00)36.数据模型按不同应用层次分为 3 种类型,它们是概念数据模型,U 【1】 /U和物理数据模型。(分数:2.00)填空项 1:_37.面向对象的模型中,最基本的概念是对象和U 【2】 /U。(分数:2.00)填空项 1:_38.问题处理方案的正确而完整的描述称为U 【3】 /U。(分数:2.00)
14、填空项 1:_39.某二叉树中度为 2 的节点有 18 个,则该二叉树中有U 【4】 /U个叶子节点。(分数:2.00)填空项 1:_40.诊断和改正程序中错误的工作通常称为U 【5】 /U。(分数:2.00)填空项 1:_41.C+程序中的预处理命令以符号U 【6】 /U作为起始标记。(分数:2.00)填空项 1:_42.在 C+语言中,整数可用 3 种数制表示,它们分别为:十进制、八进制和U 【7】 /U。(分数:2.00)填空项 1:_43.求 1100 的和,可写成 for(s=0,i=1;U 【8】 /U;i+)s+=i; 的形式。(分数:2.00)填空项 1:_44.在 C+中,一
15、个数组名字实际上是指向该数组U 【9】 /U的指针。(分数:2.00)填空项 1:_45.下面函数用来求出两个整数之和,并通过形参传回两数相加的结果。请将函数补充完整。 int add(int x,int y,U 【10】 /Uz) U 【11】 /U=x+y; (分数:4.00)填空项 1:_46.在 C+中,一个函数一般由两部分组成,分别是函数头和U 【12】 /U。(分数:2.00)填空项 1:_47.假定用户没有给一个名为 MyClas 的类定义析构函数,则系统为其定义的默认析构函数形式为U 【13】 /U。(分数:2.00)填空项 1:_48.C+中,派生类继承了基类的全部数据成员和
16、除U 【14】 /U之外的全部函数成员。(分数:2.00)填空项 1:_49.执行下面程序输出的是U 【15】 /U。 #include iostream using namespace std; template typename T T total(T *data) Ts=0; while( *data) s+=*data+; return s; int main() int s=1,3,5,7,0,2,4,6,8; couttotal(s); return 0; (分数:2.00)填空项 1:_二级 C+笔试 335 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(
17、总题数:35,分数:70.00)1.下列有关数据库的描述,正确的是( )。(分数:2.00)A.数据库是一个 DBF 文件B.数据库是一个关系C.数据库是一个结构化的数据集合 D.数据库是一组文件解析:解析 数据库是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有“集成”和“共享”的特点。2.语句 int i=2.8*6; 中整型常量 i 定义后赋初值的结果是( )。(分数:2.00)A.12B.16 C.17D.18解析:解析 C+中数据类型转换有两种类型,即隐式类型转换和显式类型转换。隐式类型转换是由编译器自动完成
18、的类型转换;显示类型转换是由程序员显式指出的类型转换。本题中是隐式类型转换,浮点数转换为整数,是直接取浮点数的整数部分,而不是四舍五入。故答案为 B。3.关于类模板,下列表述中不正确的是( )。(分数:2.00)A.类模板的成员函数都是模板函数B.类模板本身在编译中不会生成任何代码C.类模板只能有虚拟类型参数 D.用类模板定义一个对象时,不能省略实参解析:解析 C+中可以为类模板的参数设置默认值,所以选项是 C 不正确的。4.检查软件产品是否符合需求定义的过程称为( )。(分数:2.00)A.确认测试B.集成测试 C.单元测试D.白盒测试解析:解析 系统测试是把经过测试的子系统装配成一个完整的
19、系统来测试。在这个过程中不仅应该发现设计和编码的错误,还应该验证系统确实能提供需求说明书中指定的功能,而且系统的动态特性也符合预定要求。5.执行下面程序后输出的结果是( )。 #include iostream using namespace std; int main() int a44=1,2,3,-4,7,-12,-13,8,-21,9,0,-24,-31,10,-33,11; int i,j,s=0; for(i=0;i4;i+) for(j=0;j4;j+) if(aij=0)continue; s+=aij; coatsendl; return 0; (分数:2.00)A.141B
20、.-138 C.-1D.75解析:解析 在内层循环中,遇到大于等于 0 的数,继续执行下次循环,否则执行 s+=aij,即把其值累加并保存在变量 s 中。所以本题双重循环的功能是:计算数组中所有负数的累加和。6.下列关于 dowhile 语句的叙述中正确的是( )。(分数:2.00)A.dowhile 语句所构成的循环不能用其他语句构成的循环来代替B.dowhile 语句所构成的循环只能用 break 语句跳出C.dowhile 语句所构成的循环只有在 while 后面的表达式非零时才结束D.dowhile 语句所构成的循环只有在 while 后面的表达式为零时才结束 解析:解析 for 语句
21、、while 语句以及 dowhile 语句构成的循环可以相互转换。dowhile 循环的结束条件是 while 后面的表达式为 0(即循环条件为“假”)。7.将 E-R 图转换到关系模式时,实体与联系都可以表示成( )。(分数:2.00)A.属性B.关系 C.键D.域解析:解析 把概念模型转换成关系数据模型就是把 E-R 图转换成一组关系模式,每一个实体转换为一个关系模式,每个联系分别转换为关系模式。8.假定 MyClas 为一个类,则该类的拷贝构造函数的声明语句为( )。(分数:2.00)A.MyClasB.const MyClasC.MyClas(const MyClas D.MyCla
22、s(MyClas解析:解析 只有选项 C 符合拷贝构造函数的声明语法。9.下列关于运算符重载的说法中,不正确的是( )。(分数:2.00)A.重载不能改变运算符的优先级,但可以通过加括号的方式改变其计算顺序B.重载不能改变运算符的结合律和操作数的个数C.能够创建新的运算符,并非只有现有的运算符才能被重载 D.运算符重载不能改变运算符用于内部类型对象时的含义,它只能和用户自定义的类型的对象一起使用,或者用于用户自定义类型的对象和内部类型的对象混合使用时解析:解析 只有该选项不正确,其他都正确,只能对现有的运算符重载。10.下列关于类与对象的说法不正确的是( )。(分数:2.00)A.对象是类的一
23、个实例B.任何一个对象只能属于一个具体的类C.类与对象的关系和数据类型与变量的关系相似D.一个类只能有一个对象 解析:解析 类是用户定义一种数据类型,对象是类的实例,类定义了属于该类的所有对象的共同特性。一个类作为舯数据类型,它可以定义多个对象。11.在不同文件的函数中,对非静态全局变量的引用要加的关键字是( )。(分数:2.00)A.autoB.registerC.extern D.static解析:解析 对外部变量进行说明时,用 extern 标识。12.下列有关重载函数的说法中正确的是( )。(分数:2.00)A.重载函数名可以不同B.重载函数必须具有不同的形参列表C.重载函数形参个数必
24、须不同 D.重载函数必须具有不同的返回值类型解析:解析 函数重载,是指同一个函数名可以对应多个函数的实现。进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同,即重载函数必须具有不同的形参列表。13.下列各函数的说明中,表示纯虚函数的是( )。(分数:2.00)A.virtual int fuc(in;B.void fuc(in=0;C.virtual void fuc()=0; D.virtual void fuc(in解析:解析 纯虚函数说明的一般格式为:virtual 类型函数名(参数表)=0;。14.在模块化程序设计中,按功能划分模块的原则是( )。(分数:2.00)A.各
25、模块的功能尽量单一,且各模块之间的联系尽量的少 B.各模块的功能尽量单一,且各模块之间的联系尽量紧密C.各模块应包括尽量多的功能D.各模块应包括尽量多的输入输出操作解析:解析 模块化设计是指把一个大程序按人们能理解的大小规模进行分解。划分模块的基本原则是使每个模块都易于理解。按照人类思维的特点,按功能来划分模块最为自然。在按功能划分模块时,要求各模块的功能尽量单一,各模块之间的联系尽量的少。15.软件工程的理论和技术性研究的内容主要包括软件开发技术和( )。(分数:2.00)A.消除软件危机B.软件工程管理 C.程序设计自动化D.实现软件可重用性解析:解析 软件工程的目标是:在给定的成本、进度
26、的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互相操作性且满足用户需要的产品。基于这一目标,软件工程的理论和技术研究性的主要内容包括:软件开发技术和软件工程管理。16.在 E-R 图中,用来表示实体的图形是( )。(分数:2.00)A.矩形 B.椭圆形C.菱形D.三角形解析:解析 在 E-R 图中,矩形用来表示实体,菱形表示实体间的联系。17.两个或两个以上模块之间关联的紧密程度称为( )。(分数:2.00)A.耦合度 B.内聚度C.复杂度D.数据传输特性解析:解析 在结构化程序设计方法中,一个模块内部各个元素间彼此结合的紧密程度是指模块的内
27、聚度,而模块间互相连接的紧密程度称为耦合度。18.下列声明语句中没有起到定义作用的是( )。(分数:2.00)A.int count;B.const double pi=3.14159;C.extern long index; D.int max(int a,int return ab? a:b;解析:解析 在 C+程序中,一个名称在使用之前必须先被声明。声明的目的是告诉编译器某个名称所指代的实体类型。选项 A 是对变量的声明和定义,选项 B 是常量的声明、定义和初始化,选项 D 是函数的声明和定义,选项 C 是对外部变量 index 进行了声明,而没有进行定义。19.在一棵二叉树中,第 5
28、层的节点数最多为( )。(分数:2.00)A.32B.16 C.15D.31解析:解析 根据二叉树的性质:二叉树第 i 层上至多有 2i-1个结点,所以第 5 层的结点数最多是 16。20.要定义数组 a,使得其中每个元素的数据依次为 3,9,4,8,0,0,0,错误的定义语句是 ( )。(分数:2.00)A.int a=3,9,4,8,0,0,0;B.int a9=3,9,4,8,0,0,0;C.int a=3,9,4,8; D.int a7=3,9,4,8,0,0,0;解析:解析 选项 C 的定义方式中,a 数组只包含 4 个元素,因此选项 C 不符合题意要求。而其他 3 个选项中的定义方
29、式都可以实现题目的要求。21.C+源文件中包含的输入/输出头文件为( )。(分数:2.00)A.stdihB.stdafhC.iostreah D.streah解析:解析 C+中使用流类库进行输入输出操作时,要包含 iostream.h 头文件。而 C 语言中进行输入输出操作时要包含 stdio.h 文件。22.下面关于友元函数的描述正确的是( )。(分数:2.00)A.友元函数不能访问类的私有成员B.友元函数破坏了类的封装性和隐藏性 C.友元函数是类的成员函数D.友元函数的实现必须在类的内部定义解析:解析 友元函数说明的位置可在类的任何部位,而友元函数定义则在类的外部,一般与类的成员函数的定
30、义放在一起,类的友元函数可以直接访问该类的所有成员,但它不是类的成员函数。23.有以下语句:int a10=0,1,2,3,4,5,6,7,8,9, *p=a;。下列对 a 数组元素的引用 (其中 0i10)不正确的是( )。(分数:2.00)A.ap-aB.PC.*( int fuc(int,int); int main() coutfuc(1,10)endl; return 0; int fuc(int x,int y) return x*x+y*y; (分数:2.00)A.该函数的定义和调用方式都是错误的B.该函数的定义和调用方式都是正确的 C.该函数调用方式正确,但函数定义错误D.函数
31、定义正确,但函数调用方式错误解析:解析 函数定义时要给出函数类型、函数名、函数参数表和函数体。fuc()都做到了,该函数的定义和调用方式都是正确的。27.下列不能作为函数返回值的是( )。(分数:2.00)A.voidB.longC.new D.int解析:解析 在 C+中,new 是运算符,因此不能作为函数的返回值类型参与函数的定义。28.以下程序段输出的结果是( )。 char str=“BCDE“,*ptr=str; cout*(ptr+4)endl;(分数:2.00)A.0B.69C.字符 E 的地址D.一个空字符 解析:解析 *(p+4)即数组元素 str4的值,而 str4中存放的
32、是字符/0。所以输出的是一个空字符。29.以下程序的输出结果是( )。 #include iostream using namespace std; int main() int a=1,b; switch(a) case 1:b=30; case 2:b=20; case 3:b=10; default:b=0; coutbendl; return 0; (分数:2.00)A.30B.20C.10D.0 解析:解析 由于在 case 分支的语句后没有出现跳转语句,所以程序将一直执行到 switch 语句结束。即逐步给变量 b 赋值 30、20、10 和 0,最后 b 的值为 0。30.下面关
33、于虚函数的描述正确的是( )。(分数:2.00)A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数既可以在函数说明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型 解析:解析 虚函数是非静态的成员函数,虚函数必须是类的成员函数,并且虚函数声明只能出现在类定义的函数原型声明中。派生类说明的虚函数应该与基类中的虚函数的参数个数相等,对应参数类型相同。31.类 MyClas 的定义如下: class MyClas public: MyClas() MyClas(int a) value=new.int(i); int *value; ; 若要
34、对类中的 value 赋值,则下面的语句中正确的是( )。(分数:2.00)A.MyClas x;value=10;B.MyClas x; *value=10;C.MyClas x; *value=10;D.MyClas x(10); 解析:解析 选项 A 中,直接对地址赋值,因此选项 A 是错误的;c+中不能对未初始化的指针变量赋值,因此选项 B 是错误的;选项 C 有语法错误;选项 D 通过调用类的构造函数给 value 赋初值 10。32.在 32 位计算机中,一个 int 型数据所占用的内存长度为( )字节。(分数:2.00)A.4 B.2C.6D.8解析:解析 在 32 位计算机上
35、int 型数据占用 4 个字节的内存长度。其取值范围为-2 312 31-1 内的整数。33.C+流中重载的运算符“”是一个( )。(分数:2.00)A.用于输出操作的非成员函数B.用于输入操作的非成员函数 C.用于输出操作的成员函数D.用于输入操作的成员函数解析:解析 C+流的输入运算符“”和输出运算符“”只能作为非成员函数重载,所以选项 B是正确的。34.假定有如下程序: #include iostream using namespace std; int s =0; class example static int n; public: example(int i) n=i; stati
36、c void add( ) s+=n; ; int example:n=0; int main( ) example a(2),b(5); example:add(); coutsendl; return 0; 程序运行后输出结果为( )。(分数:2.00)A.2B.3C.7D.5 解析:解析 程序中定义一个类 example,它包括一个静态数据成员 n 和一个静态成员函数 add(),并在类的构造函数中给类的私有静态数据成员 n 赋值。在主函数 main()中,定义对象 a (2)时,通过构造函数使静态数据成员 n 的值变为 2;在定义对象 b(5)时,通过构造函数使静态数据成员 n=5,再
37、执行example:add()使全局变量 s=5。35.按照标识符的要求,开头的符号不能是( )。(分数:2.00)A.大写字母B.小写字母C.数字字符 D.下划线解析:解析 C+规定,标识符由大小写字母、数字字符和下划线组成,并且以字母或下划线开始。因此,本题正确答案为 C。二、B填空题/B(总题数:14,分数:30.00)36.数据模型按不同应用层次分为 3 种类型,它们是概念数据模型,U 【1】 /U和物理数据模型。(分数:2.00)填空项 1:_ (正确答案:逻辑数据模型)解析:解析 数据模型按不同的应用层次分成三种类型,它们是概念数据模型、逻辑数据模型、物理数据模型。37.面向对象的
38、模型中,最基本的概念是对象和U 【2】 /U。(分数:2.00)填空项 1:_ (正确答案:类)解析:解析 面向对象模型中,最基本的概念是对象和类。对象是现实世界中实体的模型化;将属性和方法集相同的所有对象组合在一起,可以构成一个类。38.问题处理方案的正确而完整的描述称为U 【3】 /U。(分数:2.00)填空项 1:_ (正确答案:算法)解析:解析 所谓算法是指解题方案的准确而完整的描述,是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的、明确的,此顺序将在有限的次数下终止。39.某二叉树中度为 2 的节点有 18 个,则该二叉树中有U 【4】 /U个叶子节点。(分数:2.00)填空
39、项 1:_ (正确答案:19)解析:解析 根据二叉树的性质,在任意一棵二叉树中,度为 0 的节点(即叶子节点)总是比度为 2 的节点多一个。由于本题中度为 2 的节点数为 18,因此,叶子节点数为 18+1=19 个。40.诊断和改正程序中错误的工作通常称为U 【5】 /U。(分数:2.00)填空项 1:_ (正确答案:程序调试)解析:解析 程序调试的任务是诊断和改正程序中的错误。它与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于一定的调试工具去找出软件错误的具体位置。软件测试贯穿于软件生命周期,调试主要在开发阶段执行。41.C+程序中的预处理命令以符号U
40、【6】 /U作为起始标记。(分数:2.00)填空项 1:_ (正确答案:#)解析:解析 “#”是预处理命令的开始标记符。42.在 C+语言中,整数可用 3 种数制表示,它们分别为:十进制、八进制和U 【7】 /U。(分数:2.00)填空项 1:_ (正确答案:十六进制)解析:解析 在 C+中,整数可用十进制、八进制和十六进制 3 种数制表示。八进制数以 0 开始,十六进制以 0x 开头。43.求 1100 的和,可写成 for(s=0,i=1;U 【8】 /U;i+)s+=i; 的形式。(分数:2.00)填空项 1:_ (正确答案:i=100)解析:解析 本题循环执行 100 次,每次循环执行
41、 s=s+i,因为是求 1100 的和,所以需要循环变量满足的条件是 i=100。44.在 C+中,一个数组名字实际上是指向该数组U 【9】 /U的指针。(分数:2.00)填空项 1:_ (正确答案:首元素)解析:解析 在 C+中,数组的名字就是指向该数组第 1 个元素的指针,即该数组第 1 个元素的地址,也即数组的首地址。45.下面函数用来求出两个整数之和,并通过形参传回两数相加的结果。请将函数补充完整。 int add(int x,int y,U 【10】 /Uz) U 【11】 /U=x+y; (分数:4.00)填空项 1:_ (正确答案:int*,*z)解析:解析 题目中应把形参 z
42、定义为指针变量,以返回运算结果,因此第 1 个空填入 int *,第 2 个空将和值赋值给指针变量指向的变量。46.在 C+中,一个函数一般由两部分组成,分别是函数头和U 【12】 /U。(分数:2.00)填空项 1:_ (正确答案:函数体)解析:解析 在 C+中,一个函数由函数头和函数体两部分组成。47.假定用户没有给一个名为 MyClas 的类定义析构函数,则系统为其定义的默认析构函数形式为U 【13】 /U。(分数:2.00)填空项 1:_ (正确答案:MyClas())解析:解析 析构函数名是在类名前加符号“”,它既没有返回值,也没有参数。48.C+中,派生类继承了基类的全部数据成员和
43、除U 【14】 /U之外的全部函数成员。(分数:2.00)填空项 1:_ (正确答案:构造函数和析构函数)解析:解析 C+的类的继承中,基类的构造函数和析构函数不能被继承。49.执行下面程序输出的是U 【15】 /U。 #include iostream using namespace std; template typename T T total(T *data) Ts=0; while( *data) s+=*data+; return s; int main() int s=1,3,5,7,0,2,4,6,8; couttotal(s); return 0; (分数:2.00)填空项 1:_ (正确答案:16)解析:解析 本题中函数模板实现的功能是计算所传入数组 data 中元素值为 0 的元素前面所有元素值的和。