1、二级 C+笔试-320 及答案解析(总分:96.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.若有下列说明:int a12=1,2,3,4,5,6,7,8,9,10,11,12;char c=a,d,g;则数值为 4 的表达式是 _。(分数:2.00)A.ag-cB.a4C.ad-cD.ad-c2.类的成员函数中,只能用于检测输入操作的函数是 _。(分数:2.00)A.goodB.failC.badD.eof3.设 int b=12 表达式 b+=b-=b*b 求值后 b 的值是 _。(分数:2.00)A.552B.264C.144D.-2644.可以用 p.a
2、的形式访问派生类对象 p 的基类成员 a,其中 a 是 _。(分数:2.00)A.私有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.公有继承的公有成员5.cin 代表 _。(分数:2.00)A.标准输入B.标准输出C.标准错误D.显示器6.C+语言做了很多改进,下列描述中 _ 使得 C 语言发生了质变,即从面向过程变成面向对象。(分数:2.00)A.增加了一些新的运算符B.允许函数重载,并允许设置默认参数C.规定函数说明必须用原型D.引进类和对象的概念7.在非空二叉树的中序遍历序列中,二叉树的根结点的左边应该 _。(分数:2.00)A.只有左子树上的所有结点B.只有左子树上的部
3、分结点C.只有右子树上的所有结点D.只有右子树上的部分结点8.下面关于纯虚函数和抽象类的描述中, _ 是错误的。(分数:2.00)A.纯虚函数是一种特殊的虚函数,它没有具体意义B.一个基类中的说明有纯虚函数,该基类的派生类一定不再是抽象类C.抽象类只能作为基类来使用,其纯虚函数的定义由派生类给出D.抽象类是指具有纯虚函数的类9.若有以下定义和语句:int a10=1,2,3,4,5,6,7,8,9,10,*ia=a;则不能正确表示 a 数组元素的表达式是 _。(分数:2.00)A.*iaB.a10C.*aD.aia-a10.下面说法正确的是 _。(分数:2.00)A.内联函数在运行时是将该函数
4、的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字 inline 定义11.模板参数表中参数使用的分隔符号是 _。(分数:2.00)A.,B.;C./D.以上都不是12.以下程序的输出结果是 _。#includeiostream.hvoid main()char s1=”Hello”,s2=“World“;char *p1,*p2;int i;p1=s1;p2=s2;for(i=0;i5;i+)if(*(pl+i)=*(p2+i)cout*(p1+i);(分数:2.00)A.
5、H1B.HoC.10D.113.可以用 p.a 的形式访问派生类对象 p 的基类成员 a,其中 a 是 _。(分数:2.00)A.私有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.公有继承的公有成员14.若有 int *x3:则以下表述正确的是 _。(分数:2.00)A.x 是一个指向具有 3 个元素的整型数组的指针B.x 是一个指向 int 型变量的指针C.x 是一个有 3 个元素的指针数组,每个元素是一个 int 型指针D.x 是一个数组,该数组的元素是指针 x 所指向的变量15.可行性研究要进行一次 _ 需求分析。(分数:2.00)A.详细的B.全面的C.简化的、压缩的D
6、.彻底的16.下面程序段中的错误语句是 _。class Mint i;public:void AA(int);AA *p;void AA();void AA(int x)i=x;(分数:2.00)A.AA *p;B.void AA(int);C.void AA(int);D.void AA(int x)i=x;;17.关于对象概念的描述中,_ 是错误的。(分数:2.00)A.对象就是 C 语言中的机构变量B.对象是状态和操作的封装体C.对象之间的信息传递是通过消息进行的D.对象是某个类的一个实例18.运行以下程序后,如果从键盘上输入 shose 后回车,则输出结果为 _。# includeio
7、stream.hvoid main()int v1=0,v2=0,k=0;char ch80;cinch;while(chk)switch(chk)case s;case h;default: v1+1;case o: v2+;k+;coutv1 “,“v2end1;(分数:2.00)A.2, 0B.5, 0C.4, 5D.2, 519.以下关于外码和相应的主码之间的关系,正确的是 _。(分数:2.00)A.外码并不一定要与相应的主码同名B.外码一定要与相应的主码同名C.外码一定要与相应的主码同名而且唯一D.外码一定要与相应的主码同名,但并不一定唯一20.下面 _ 是正确的递归函数,它保证对所
8、有的参数能够结束。(分数:2.00)A.int f(int n)if(n1)return 1;elsereturn n*f(n+1);B.int f(int n)if(n1)return 1;elsereturn n*f(n-1);C.int f(int n)if(abs(n)1)return 1;elsereturn n*f(n/2);D.int f(int n)if(n1)return 1;elsereturn n*f(n*2);21.若有定义“int x=10,y=3,z;”,则语句“cout(z=(x%y,x/y);”的输出结果是 _。(分数:2.00)A.1B.0C.4D.322.在
9、下面程序中,编译时出现错误的是 _。Class A /(1)public: /(2)A()f(); /(3)void B()f();virtual void f()const=0; /(4);(分数:2.00)A.(1)B.(2)C.(3)D.(4)23.重载赋值操作符时,应声明为 _ 函数。(分数:2.00)A.友元B.虚C.成员D.多态24.若定义 cinstr;当输入 Hello World!,所得的结果是 str _。(分数:2.00)A.Hello World!B.HelloC.WorldD.Hello World25.在软件测试中,白盒测试方法是通过分析程序的 _ 来设计测试用例的
10、方法。(分数:2.00)A.应用范围B.内部逻辑C.功能D.输入数据26.下列带缺省值参数的函数说明中,正确的说明是 _。(分数:2.00)A.int Fun(int x, int y=2,int z=3);B.int Fun(int x=1,int y,int z=3);C.int Fun(int x, int y=2,iht z);D.int Fun(int x=1,int y, int z=3);27.有以下程序,程序运行的结果是 _。#includeiostream.h#includestring.hvoid main()char x= “C+“ ,y10= “C+“ ;coutsiz
11、eof(x)/sizeof(char)“,”sizeof(y)/sizeof(char);(分数:2.00)A.3 3B.4 4C.4 10D.10 1028.若进栈序列为 a,b,c,则通过入出栈操作可能得到的 a,b,c 的不同排列个数为 _。(分数:2.00)A.4B.5C.6D.729.已知有关系模式 R(sno,sname,age),其中 sno 表示学生的学号,类型为 Char(8),前 4 位表示入学年份。查询所有 2003 年入学的学生姓名(sname),SQL 语句是 _。(分数:2.00)A.SELECT sname FROM R WHEREsno=2003%B.SELEC
12、T sname FROM R WHERE sno LIKE 2003%C.SELECT sname FROM R WHERE sno=2003_D.SELECT sname FROM R WHERE sno LIKE 2003_30.输出流文件中的当前位置可以由下面哪个成员函数返回 _。(分数:2.00)A.tellgB.seekgC.seekpD.tellp31.当将 E-R 模型转换为关系模型时,对于两实体间 m:n 联系,必须对“联系”单独建立 _,用来联系双方实体。(分数:2.00)A.一个实体B.一个属性C.一个指针D.一个关系32.下面程序段的输出结果是 _。char *s=“12
13、345“;s+=2;cout*s;(分数:2.00)A.345B.字符3C.字符3的地址D.无确定的输出结果33.一棵非空的二叉树的先序序列和后序序列正好相同,则该二叉树一定满足 _。(分数:2.00)A.其中任意一结点均无左孩子B.其中任意一结点均无右孩子C.其中只有一个结点D.是任意一棵二叉树34.堆排序属于一种选择排序,其时间复杂性为 _。(分数:2.00)A.0(1)B.0(nlog2n)C.0(n)D.0(n2)35.通过指针访问类对象成员的方法是 _。(分数:2.00)A.:B.;C.D.-二、填空题(总题数:13,分数:26.00)36.在有 n 个结点的二叉链表中,值为非空的链
14、域的个数为 1 。(分数:2.00)填空项 1:_37.继承与 2 机制,是面向对象程序中实现重用的主要手段。(分数:2.00)填空项 1:_38.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为 3 。(分数:2.00)填空项 1:_39.结构化程序设计思想的核心是要求程序只由顺序、循环和 4 三种结构组成。(分数:2.00)填空项 1:_40.关系中的“主键”不允许取空值是指 5 约束规则。(分数:2.00)填空项 1:_41.c+提供的动态内存分配和释放的操作符为 6 和 7 。(分数:2.00)填空项 1:_42.程序段的输出结果是 8 。int a=12,b=12;co
15、ut- -a “ “+b;(分数:2.00)填空项 1:_43.以下程序的输出结果是 9 。includeiostream.hinclude string.hvoid main 0 char s50;strcpy(strcpy(strcpy (couts;(分数:2.00)填空项 1:_44.函数调用时,若形象,实参均为数组,则其传递方式是 10 。(分数:2.00)填空项 1:_45.以下程序的输出结果是 11 。#includeiostream. hvoid main() int *p;p=new int;*p=200;cout*p;delete p;(分数:2.00)填空项 1:_46.
16、分析以下程序的执行结果 12 。#include iostream. hclass Sint A10;public:int ;int void main() S a;int i,j;for (i=0; i10; i+)a(i)=i*2;for (i=0; i10; i+)couta(i)“ “;coutend1;(分数:2.00)填空项 1:_47.阅读下列程序,并写程序运行结果 13 。#includeiomanip. hvoid main() for(int i=0;i4;i+)coutend1setfill( )setw(4-i) 0setfill(*)setw(i+i)(i0? O :
17、 );(分数:2.00)填空项 1:_48.cout/n还可以表示为 14 ,cout. width(10)还可表示为 15 。(分数:2.00)填空项 1:_二级 C+笔试-320 答案解析(总分:96.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.若有下列说明:int a12=1,2,3,4,5,6,7,8,9,10,11,12;char c=a,d,g;则数值为 4 的表达式是 _。(分数:2.00)A.ag-cB.a4C.ad-cD.ad-c 解析:2.类的成员函数中,只能用于检测输入操作的函数是 _。(分数:2.00)A.goodB.failC.badD
18、.eof 解析:3.设 int b=12 表达式 b+=b-=b*b 求值后 b 的值是 _。(分数:2.00)A.552B.264C.144D.-264 解析:4.可以用 p.a 的形式访问派生类对象 p 的基类成员 a,其中 a 是 _。(分数:2.00)A.私有继承的公有成员 B.公有继承的私有成员C.公有继承的保护成员D.公有继承的公有成员解析:5.cin 代表 _。(分数:2.00)A.标准输入 B.标准输出C.标准错误D.显示器解析:6.C+语言做了很多改进,下列描述中 _ 使得 C 语言发生了质变,即从面向过程变成面向对象。(分数:2.00)A.增加了一些新的运算符B.允许函数重
19、载,并允许设置默认参数C.规定函数说明必须用原型D.引进类和对象的概念 解析:7.在非空二叉树的中序遍历序列中,二叉树的根结点的左边应该 _。(分数:2.00)A.只有左子树上的所有结点 B.只有左子树上的部分结点C.只有右子树上的所有结点D.只有右子树上的部分结点解析:8.下面关于纯虚函数和抽象类的描述中, _ 是错误的。(分数:2.00)A.纯虚函数是一种特殊的虚函数,它没有具体意义B.一个基类中的说明有纯虚函数,该基类的派生类一定不再是抽象类 C.抽象类只能作为基类来使用,其纯虚函数的定义由派生类给出D.抽象类是指具有纯虚函数的类解析:9.若有以下定义和语句:int a10=1,2,3,
20、4,5,6,7,8,9,10,*ia=a;则不能正确表示 a 数组元素的表达式是 _。(分数:2.00)A.*iaB.a10 C.*aD.aia-a解析:10.下面说法正确的是 _。(分数:2.00)A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字 inline 定义解析:11.模板参数表中参数使用的分隔符号是 _。(分数:2.00)A., B.;C./D.以上都不是解析:12.以下程序的输出结果是 _。#includeiostream.hv
21、oid main()char s1=”Hello”,s2=“World“;char *p1,*p2;int i;p1=s1;p2=s2;for(i=0;i5;i+)if(*(pl+i)=*(p2+i)cout*(p1+i);(分数:2.00)A.H1B.HoC.10D.1 解析:13.可以用 p.a 的形式访问派生类对象 p 的基类成员 a,其中 a 是 _。(分数:2.00)A.私有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.公有继承的公有成员 解析:14.若有 int *x3:则以下表述正确的是 _。(分数:2.00)A.x 是一个指向具有 3 个元素的整型数组的指针B.
22、x 是一个指向 int 型变量的指针C.x 是一个有 3 个元素的指针数组,每个元素是一个 int 型指针 D.x 是一个数组,该数组的元素是指针 x 所指向的变量解析:15.可行性研究要进行一次 _ 需求分析。(分数:2.00)A.详细的B.全面的C.简化的、压缩的 D.彻底的解析:16.下面程序段中的错误语句是 _。class Mint i;public:void AA(int);AA *p;void AA();void AA(int x)i=x;(分数:2.00)A.AA *p;B.void AA(int); C.void AA(int);D.void AA(int x)i=x;;解析:
23、17.关于对象概念的描述中,_ 是错误的。(分数:2.00)A.对象就是 C 语言中的机构变量 B.对象是状态和操作的封装体C.对象之间的信息传递是通过消息进行的D.对象是某个类的一个实例解析:18.运行以下程序后,如果从键盘上输入 shose 后回车,则输出结果为 _。# includeiostream.hvoid main()int v1=0,v2=0,k=0;char ch80;cinch;while(chk)switch(chk)case s;case h;default: v1+1;case o: v2+;k+;coutv1 “,“v2end1;(分数:2.00)A.2, 0B.5,
24、 0C.4, 5 D.2, 5解析:19.以下关于外码和相应的主码之间的关系,正确的是 _。(分数:2.00)A.外码并不一定要与相应的主码同名 B.外码一定要与相应的主码同名C.外码一定要与相应的主码同名而且唯一D.外码一定要与相应的主码同名,但并不一定唯一解析:20.下面 _ 是正确的递归函数,它保证对所有的参数能够结束。(分数:2.00)A.int f(int n)if(n1)return 1;elsereturn n*f(n+1);B.int f(int n)if(n1)return 1;elsereturn n*f(n-1);C.int f(int n)if(abs(n)1)retu
25、rn 1;elsereturn n*f(n/2);D.int f(int n)if(n1)return 1;elsereturn n*f(n*2);解析:21.若有定义“int x=10,y=3,z;”,则语句“cout(z=(x%y,x/y);”的输出结果是 _。(分数:2.00)A.1B.0C.4D.3 解析:22.在下面程序中,编译时出现错误的是 _。Class A /(1)public: /(2)A()f(); /(3)void B()f();virtual void f()const=0; /(4);(分数:2.00)A.(1)B.(2)C.(3) D.(4)解析:23.重载赋值操作
26、符时,应声明为 _ 函数。(分数:2.00)A.友元B.虚C.成员 D.多态解析:24.若定义 cinstr;当输入 Hello World!,所得的结果是 str _。(分数:2.00)A.Hello World!B.Hello C.WorldD.Hello World解析:25.在软件测试中,白盒测试方法是通过分析程序的 _ 来设计测试用例的方法。(分数:2.00)A.应用范围B.内部逻辑 C.功能D.输入数据解析:26.下列带缺省值参数的函数说明中,正确的说明是 _。(分数:2.00)A.int Fun(int x, int y=2,int z=3); B.int Fun(int x=1
27、,int y,int z=3);C.int Fun(int x, int y=2,iht z);D.int Fun(int x=1,int y, int z=3);解析:27.有以下程序,程序运行的结果是 _。#includeiostream.h#includestring.hvoid main()char x= “C+“ ,y10= “C+“ ;coutsizeof(x)/sizeof(char)“,”sizeof(y)/sizeof(char);(分数:2.00)A.3 3B.4 4C.4 10 D.10 10解析:28.若进栈序列为 a,b,c,则通过入出栈操作可能得到的 a,b,c 的
28、不同排列个数为 _。(分数:2.00)A.4B.5 C.6D.7解析:29.已知有关系模式 R(sno,sname,age),其中 sno 表示学生的学号,类型为 Char(8),前 4 位表示入学年份。查询所有 2003 年入学的学生姓名(sname),SQL 语句是 _。(分数:2.00)A.SELECT sname FROM R WHEREsno=2003%B.SELECT sname FROM R WHERE sno LIKE 2003% C.SELECT sname FROM R WHERE sno=2003_D.SELECT sname FROM R WHERE sno LIKE
29、2003_解析:30.输出流文件中的当前位置可以由下面哪个成员函数返回 _。(分数:2.00)A.tellg B.seekgC.seekpD.tellp解析:31.当将 E-R 模型转换为关系模型时,对于两实体间 m:n 联系,必须对“联系”单独建立 _,用来联系双方实体。(分数:2.00)A.一个实体B.一个属性C.一个指针D.一个关系 解析:32.下面程序段的输出结果是 _。char *s=“12345“;s+=2;cout*s;(分数:2.00)A.345 B.字符3C.字符3的地址D.无确定的输出结果解析:33.一棵非空的二叉树的先序序列和后序序列正好相同,则该二叉树一定满足 _。(分
30、数:2.00)A.其中任意一结点均无左孩子 B.其中任意一结点均无右孩子C.其中只有一个结点D.是任意一棵二叉树解析:34.堆排序属于一种选择排序,其时间复杂性为 _。(分数:2.00)A.0(1)B.0(nlog2n) C.0(n)D.0(n2)解析:35.通过指针访问类对象成员的方法是 _。(分数:2.00)A.:B.;C.D.- 解析:二、填空题(总题数:13,分数:26.00)36.在有 n 个结点的二叉链表中,值为非空的链域的个数为 1 。(分数:2.00)填空项 1:_ (正确答案:n-1)解析:37.继承与 2 机制,是面向对象程序中实现重用的主要手段。(分数:2.00)填空项
31、1:_ (正确答案:多态性)解析:38.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为 3 。(分数:2.00)填空项 1:_ (正确答案:用尾指针表示的单循环链表)解析:39.结构化程序设计思想的核心是要求程序只由顺序、循环和 4 三种结构组成。(分数:2.00)填空项 1:_ (正确答案:选择)解析:40.关系中的“主键”不允许取空值是指 5 约束规则。(分数:2.00)填空项 1:_ (正确答案:实体完整性)解析:41.c+提供的动态内存分配和释放的操作符为 6 和 7 。(分数:2.00)填空项 1:_ (正确答案:6new 7delete)解析:42.程序段的输出结果
32、是 8 。int a=12,b=12;cout- -a “ “+b;(分数:2.00)填空项 1:_ (正确答案:11 13)解析:43.以下程序的输出结果是 9 。includeiostream.hinclude string.hvoid main 0 char s50;strcpy(strcpy(strcpy (couts;(分数:2.00)填空项 1:_ (正确答案:N123456)解析:44.函数调用时,若形象,实参均为数组,则其传递方式是 10 。(分数:2.00)填空项 1:_ (正确答案:地址传递方式)解析:45.以下程序的输出结果是 11 。#includeiostream.
33、hvoid main() int *p;p=new int;*p=200;cout*p;delete p;(分数:2.00)填空项 1:_ (正确答案:200)解析:46.分析以下程序的执行结果 12 。#include iostream. hclass Sint A10;public:int ;int void main() S a;int i,j;for (i=0; i10; i+)a(i)=i*2;for (i=0; i10; i+)couta(i)“ “;coutend1;(分数:2.00)填空项 1:_ (正确答案:0 2 4 6 8 10 12 14 16 18)解析:47.阅读下列程序,并写程序运行结果 13 。#includeiomanip. hvoid main() for(int i=0;i4;i+)coutend1setfill( )setw(4-i) 0setfill(*)setw(i+i)(i0? O : );(分数:2.00)填空项 1:_ (正确答案:00*0O*00*0)解析:48.cout/n还可以表示为 14 ,cout. width(10)还可表示为 15 。(分数:2.00)填空项 1:_ (正确答案:14countend1; 15countsetw(10);)解析: