1、二级 C+-85 及答案解析(总分:65.00,做题时间:90 分钟)一、选择题(总题数:20,分数:35.00)1.已知 n 是一个 int 型变量,下列语句中错误的是 _ 。(分数:2.00)A.long*p=new longn;B.long pn;C.long*p=new longn;D.long p10;2.下列程序的输出结果是 #includeiostreamh void main( ) double d=3.2; int x,y; x=12; y=(x+38)/50; cout y * d end1;(分数:1.00)A.3B.3,2C.0D.3073.关于语句 #includei
2、ostream using namespace std; void main() cout100.8989663“; comfixed100.8989663“; coutscientific100.8989663“; 的输出结果为 _(分数:2.00)A.100.899 100.898966 1.008990e+002B.100.8989663 100.898966 1.008990e+002C.100.899 100.898966 1.008989e+002D.100.899 100.8989663 1.008989e+0024.下列叙述中正确的是_。(分数:1.00)A.循环队列有队头和队
3、尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定5.已知函数 FA 调用 FB,若要把这两个函数定义在同一个文件中,则_。(分数:2.00)A.FA 必须定义在 FB 之前B.FB 必须定义在 FA 之前C.若 FA 定义在 FB 之后,则 FA 的原型必须出现在 FB 的定义之前D.若 FB 定义在 FA 之后,则 FB 的原型必须出现在 FA 的定义之前6.决定 C+语言中函数的返回值类型的是(分数:1.00)A.ret
4、urn 语句中的表达式类型B.调用该函数时系统随机产生的类型C.调用该函数时的主调用函数类型D.在定义该函数时所指定的数据类型7.计算机算法是指解决问题的有限运算序列,它具备_和足够的情报,(分数:2.00)A.可行性、可移植性和可扩充性B.易读性、稳定性和安全性C.确定性、有穷性和稳定性D.可行性、确定性和有穷性8.下列程序的输出结果是 _ 。 #includeiostream.h void main() char*Str; str=“testI“; coutstr5; (分数:2.00)A.test!B.testC.空字符D.异常9.有如下语句序列: char str10; cinstr;
5、 当从键盘输入“I love this game”时,str 中的字符串是_。(分数:2.00)A.“I love this game“B.“I love thi“C.“I love“D.“I“10.下列表示引用的方法中, _ 是正确的。 已知:int m=10;(分数:1.00)A.int B.double f2(double x)return x-1.5;C.void f3(double x)-x;D.double f4(double *x)-*x;return*x;15.下面有关重载函数的描述中正确的是_。(分数:1.00)A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同
6、C.重载函数必须具有不同的形参列表D.重载函数名可以不同16.C+中的模板包括(分数:2.00)A.对象模板和函数模板B.对象模板和类模板C.函数模板和类模板D.变量模板和对象模板17.以下定义数组中错误的是 _(分数:1.00)A.int a10 ;B.int a 2 20;C.int a20 ;D.int a ;18.若有定义“int x=4,y=5;”,则表达式“yx+?x-:y+”的值为_。(分数:2.00)A.3B.4C.5D.619.1,2,3,4 四个元素按顺序进栈,不可能的出栈顺序为 _ 。(分数:2.00)A.1 2 3 4B.2 3 4 1C.1 4 3 2D.3 1 4
7、220.数据库设计的 4 个阶段是:需求分析、概念设计、逻辑设计和(分数:2.00)A.编码设计B.测试阶段C.运行阶段D.物理设计二、填空题(总题数:18,分数:30.00)21.表达式 c3=c1.operator+(c2)或 c3=operator+(c1,c2)还可以表示为 _ 1_ (分数:1.00)22.所有的函数模板定义都是以关键字 template 开始的,在 template 之后使用 _ 1_ 括起来的形参表。(分数:2.00)23.软件测试的常用方法通常可分为白盒测试和 _ 1_ 。前者是根据程序的内部逻辑来设计测试用例,后者是根据软件的规格说明来设计测试用例。 (分数:
8、1.00)24.软件开发环境是全面支持软件开发全过程的 1 集合。 (分数:2.00)25.若有 09 之间不同的 3 个数构成一个三位数,下面程序将统计出共有多少种方法,请填空完成此程序。#include iostream using namespace std; int main ( ) int i,j,k; for(i = 1;i=9;i+) for (j=O; j=9; j+) if( _ 1_ ) continue; else for(k = 0;k=9;k+) if( _ 2_ ) count+; coutcountend1; return 0; (分数:1.00)26. 1 是从
9、二维表列的方向进行的运算。 (分数:2.00)27.已知如下程序的输出结果是 23,请将画线处缺失的部分补充完整。 #includeiostream using namespace std; class MyClass public: void Print( )consteout23; ; int main( ) MyClass*P=new MyClass( ); 1.Print( ); return 0; (分数:2.00)28.指针变量所保存的不是一般的数据值,而是程序中另一个对象的 1。 (分数:1.00)29.在有序列表(3,6,8,10,12,15,16,18,21,25,30)中,
10、用二分法查找关键码值 12,所需的关键码比较次数为 _ 1_ 。 (分数:2.00)30.数据库系统的主要特点为数据集成性、数据的高 1 和低冗余性、数据独立性和数据统一管理和控制。 (分数:2.00)31.已知下列程序的输出结果是 42,请将横线处缺失的部分补充完整。 #includeiostream using namespace std; class TestClass int value; public: TestClass():value(0); void setValue(int value) 1=value;/给 TestClass 的数据成员 value 赋值 void pri
11、nt()coutvalue; ; int main() TestClass f; f.setValue(42); f.print(); return 0; (分数:2.00)32.下面程序的输出结果是 _ 1_ 。 #include iostream using namespace std; int x; void funA(int void funB(int,int int main ( ) int first; int second=5; x=6; funA(first,second) ; funB(first,second) ; coutfirst“ “second“ “xend1; r
12、eturn 0; void funA(int first=a+b; a=2*b; b=first+4; void funB(int u, int second=x; v=second+4; x=u+v; (分数:1.00)33.设某循环队列的容量为 50,头指针 front5(指向队头元素的前一位置),尾指针 rear =29(指向队尾元素),则该循环队列中共有 _ 1_ 个元素。 (分数:2.00)34.执行下列语句后,变量 sum 的值是 1。 int sum=0; for (int i=1;k=3;1+) for (int j=1;j=i;j+) sum+; (分数:2.00)35.以下
13、程序运行后的输出结果是 1。 #include iostream.h void main() char a=“abcdabcabfgacd“; int i1=0,i2=0,1=0; while(ai) if(ai=“a“) i1+; if(ai=“b“) i2+; i+; couti1“i2endl; (分数:2.00)36.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的 _ 1_ 。 (分数:1.00)37.在 C+中,打开一个文件,就是将这个文件与一个 _ 1_ 建立关联;关闭一个文件,就是取消这种关联。 (分数:2.00)38.以下程序的输出结果是 _ 1_
14、。 #includeiostream. h void main() int *p; p=new int; *p=200; cout*p; delete p; (分数:2.00)二级 C+-85 答案解析(总分:65.00,做题时间:90 分钟)一、选择题(总题数:20,分数:35.00)1.已知 n 是一个 int 型变量,下列语句中错误的是 _ 。(分数:2.00)A.long*p=new longn;B.long pn; C.long*p=new longn;D.long p10;解析:2.下列程序的输出结果是 #includeiostreamh void main( ) double d
15、=3.2; int x,y; x=12; y=(x+38)/50; cout y * d end1;(分数:1.00)A.3B.3,2C.0 D.307解析:3.关于语句 #includeiostream using namespace std; void main() cout100.8989663“; comfixed100.8989663“; coutscientific100.8989663“; 的输出结果为 _(分数:2.00)A.100.899 100.898966 1.008990e+002 B.100.8989663 100.898966 1.008990e+002C.100.
16、899 100.898966 1.008989e+002D.100.899 100.8989663 1.008989e+002解析:4.下列叙述中正确的是_。(分数:1.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定 解析:解析 循环队列有队头和队尾两个指针,但是循环队列仍是线性结构的,所以 A 错误;在循环队列中需要队头指针与队尾指针来共同反映队列中元素的动态变化情况,所以 B 与 C 错误。
17、5.已知函数 FA 调用 FB,若要把这两个函数定义在同一个文件中,则_。(分数:2.00)A.FA 必须定义在 FB 之前B.FB 必须定义在 FA 之前C.若 FA 定义在 FB 之后,则 FA 的原型必须出现在 FB 的定义之前D.若 FB 定义在 FA 之后,则 FB 的原型必须出现在 FA 的定义之前 解析:解析 在 C+中,在调用任何函数之前,必须确保它已有原型说明。函数原型说明通常放在程序文件的头部,以使得该文件中所有函数都能调用它们。在本题中,当函数 FA 调用 FB 时,函数 FB 可以定义在 FA 的后面,但是 FB 的原型必须出现在 FA 的定义之前,因而选项 D 为正确
18、答案。6.决定 C+语言中函数的返回值类型的是(分数:1.00)A.return 语句中的表达式类型B.调用该函数时系统随机产生的类型C.调用该函数时的主调用函数类型D.在定义该函数时所指定的数据类型 解析:解析 C+语言中,在定义该函数时所指定的数据类型决定函数的返回值类型。7.计算机算法是指解决问题的有限运算序列,它具备_和足够的情报,(分数:2.00)A.可行性、可移植性和可扩充性B.易读性、稳定性和安全性C.确定性、有穷性和稳定性D.可行性、确定性和有穷性 解析:解析 算法的基本特征有可行性、确定性、有穷性和拥有足够的情报四种。8.下列程序的输出结果是 _ 。 #includeiost
19、ream.h void main() char*Str; str=“testI“; coutstr5; (分数:2.00)A.test!B.testC.空字符 D.异常解析:解析 字符指针 str 值为“test!”,它们的下标由 0 开始,并且具有一个尾符,输出 str5的位置为尾符标识,指针字符指向的尾符为空。所以答案为空字符,即选项 C 正确。9.有如下语句序列: char str10; cinstr; 当从键盘输入“I love this game”时,str 中的字符串是_。(分数:2.00)A.“I love this game“B.“I love thi“C.“I love“D.
20、“I“ 解析:cin 是 C+预定义的标准输入流对象,cin 用来接收字符串时,遇“空格”、“TAB”、“回车”时都会结束。所以本题答案为 D。10.下列表示引用的方法中, _ 是正确的。 已知:int m=10;(分数:1.00)A.int B.double f2(double x)return x-1.5;C.void f3(double x)-x; D.double f4(double *x)-*x;return*x;解析:解析 此题考查的是函数的调用和函数参数值的传递。选项 C 中函数 f3 的调用采用按值传递的方式,函数中对形参的修改不能改变实参的值,并且 f3 函数没有返回值,所以
21、 f3 对调用它的函数没有起到任何的作用。选项 A 采用的是引用传递方式;选项 B 中 f2 有返回值;选项 D 中函数 f4 是指针调用并且函数有返回值。15.下面有关重载函数的描述中正确的是_。(分数:1.00)A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须具有不同的形参列表 D.重载函数名可以不同解析:解析 所谓函数重载,是指同一个函数名可以对应多个函数的实现,进行函数重载时,要求同名函数的参数个数不同,或者参数类型不同。16.C+中的模板包括(分数:2.00)A.对象模板和函数模板B.对象模板和类模板C.函数模板和类模板 D.变量模板和对象模板解析:解
22、析 C+模板包括函数模板和类模板两大类。17.以下定义数组中错误的是 _(分数:1.00)A.int a10 ;B.int a 2 20;C.int a20 ; D.int a ;解析:18.若有定义“int x=4,y=5;”,则表达式“yx+?x-:y+”的值为_。(分数:2.00)A.3B.4C.5 D.6解析:解析 在表达式“yx+?x-:y+”中,由于自加(+)运行符的优前级高于比较运算符(),所以首先进行自加运算,即变量 x 的值前自加 1,等于 5,此时表达式 yx 不成立,所以整个表达式的值等于 y+的值,由于 y+是后自加运算,所以其值等于 5。19.1,2,3,4 四个元素
23、按顺序进栈,不可能的出栈顺序为 _ 。(分数:2.00)A.1 2 3 4B.2 3 4 1C.1 4 3 2D.3 1 4 2 解析:解析 栈的操作原则为后进先出。选项 A 中出栈顺序可按“1 进,1 出,2 进,2 出,3 进,3 出,4 进,4 出”实现;选项 B 可按 1 进,2 进,2 出,3 进,3 出,4 进,4 出实现;C 可按“1 进,1 出,2 进,3 进,4 进,4 出,3 出,2 出”实现。选项 D 无法实现。20.数据库设计的 4 个阶段是:需求分析、概念设计、逻辑设计和(分数:2.00)A.编码设计B.测试阶段C.运行阶段D.物理设计 解析:解析 数据库的生命周期可
24、以分为两个阶段:一是数据库设计阶段,二是数据库实现阶段。数据库的设计阶段又分为 4 个子阶段,即需求分析、概念设计、逻辑设计和物理设计。因此,本题的正确答案是 D。二、填空题(总题数:18,分数:30.00)21.表达式 c3=c1.operator+(c2)或 c3=operator+(c1,c2)还可以表示为 _ 1_ (分数:1.00)解析:c3=c1+c2解析 这是运算符重载应用的两种形式。22.所有的函数模板定义都是以关键字 template 开始的,在 template 之后使用 _ 1_ 括起来的形参表。(分数:2.00)解析:尖括号 23.软件测试的常用方法通常可分为白盒测试和
25、 _ 1_ 。前者是根据程序的内部逻辑来设计测试用例,后者是根据软件的规格说明来设计测试用例。 (分数:1.00)解析:黑盒测试解析 黑盒测试是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。白盒测试把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。24.软件开发环境是全面支持软件开发全过程的 1 集合。 (分数:2.00)解析:软件工具解析 软件开发环境或称软件工程
26、环境是全而支持软件开发全过程的软件工具集合。这些软件工具按照一定的方法或模式组合起来,支持软件生命周期内的各个阶段和各项任务的完成。25.若有 09 之间不同的 3 个数构成一个三位数,下面程序将统计出共有多少种方法,请填空完成此程序。#include iostream using namespace std; int main ( ) int i,j,k; for(i = 1;i=9;i+) for (j=O; j=9; j+) if( _ 1_ ) continue; else for(k = 0;k=9;k+) if( _ 2_ ) count+; coutcountend1; retu
27、rn 0; (分数:1.00)解析:ij k!i class TestClass int value; public: TestClass():value(0); void setValue(int value) 1=value;/给 TestClass 的数据成员 value 赋值 void print()coutvalue; ; int main() TestClass f; f.setValue(42); f.print(); return 0; (分数:2.00)解析:this-value 或 TestClass:value解析 为了指明是给本类中的 value 变量赋值,所以利用每一
28、个成员函数中的指针 this 指向该变量,或者说明是该类域中的 value,TestClass:value。32.下面程序的输出结果是 _ 1_ 。 #include iostream using namespace std; int x; void funA(int void funB(int,int int main ( ) int first; int second=5; x=6; funA(first,second) ; funB(first,second) ; coutfirst“ “second“ “xend1; return 0; void funA(int first=a+b;
29、 a=2*b; b=first+4; void funB(int u, int second=x; v=second+4; x=u+v; (分数:1.00)解析:10 10 20解析 本题考核函数的引用传递。“引用”实际上是给一个已知变量起个别名,对引用的操作也就是对被它引用的变量的操作。函数 funA()的第 1 个形参为引用形参,那么在函数内部形参 a的改变将引起实参的相应改变。同理 funB()中引用参数 V 的改变也会引起相应实参的改变。33.设某循环队列的容量为 50,头指针 front5(指向队头元素的前一位置),尾指针 rear =29(指向队尾元素),则该循环队列中共有 _ 1
30、_ 个元素。 (分数:2.00)解析:24解析 考查数据结构的循环队列的知识。队列元素数为:rearfront29-524 个34.执行下列语句后,变量 sum 的值是 1。 int sum=0; for (int i=1;k=3;1+) for (int j=1;j=i;j+) sum+; (分数:2.00)解析:635.以下程序运行后的输出结果是 1。 #include iostream.h void main() char a=“abcdabcabfgacd“; int i1=0,i2=0,1=0; while(ai) if(ai=“a“) i1+; if(ai=“b“) i2+; i+
31、; couti1“i2endl; (分数:2.00)解析:4 336.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的 _ 1_ 。 (分数:1.00)解析:可重用性解析 本题考查了继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。37.在 C+中,打开一个文件,就是将这个文件与一个 _ 1_ 建立关联;关闭一个文件,就是取消这种关联。 (分数:2.00)解析:流解析 在 C+中,对文件的操作是由文件流完成的。文件流类在流与文件之间建立链接。38.以下程序的输出结果是 _ 1_ 。 #includeiostream. h void main() int *p; p=new int; *p=200; cout*p; delete p; (分数:2.00)解析:200