1、二级 C+笔试-325 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列说法不正确的是 _。(分数:2.00)A.转义字符序列/b 的功能是退格B.转义字符序列/n 的功能是退格C.转义字符序列/r 的功能是回车D.:转义字符序列/f的功能是换页2.执行下列程序int fun(int x1,int x2)int x;x1x2 ?(x=3):(x=4);return x+x1;void main()coutfun(7,8);后输出结果是 _。(分数:2.00)A.9B.10C.11D.123.以下数组定义中不正确的是 _。(分数:2.00
2、)A.int a23B.int b 3=0;C.int c11=0;D.int d3=1,2,(1,2,31,2,3,4;4.数据的四种基本逻辑结构是指 _。(分数:2.00)A.组、链表、树、图形结构B.线性表、链表、栈队列、数组广义表C.线性结构、链表、树、图形结构D.集合、线性结构、树、图形结构5.若有 int(*p)3:则以下表述中正确的是 _。(分数:2.00)A.p是一个指向具有 3个元素的整型数组的指针B.p是一个指向 int型变量的指针C.p是一个有 3个元素的指针数组,每个元素是一个 int型指针D.p是一个具有 3个 int型元素的一维数组6.以下说法错误的是 _。(分数:
3、2.00)A.采用面向对象方法开发软件的基本目的和主要优点是通过重用提高软件的生成率B.在面向对象的程序中,对象是属性(状态)和方法(操作)的封装体C.在面向对象的程序中,对象彼此间通过继承和多态性启动响应的操作D.继承和多态机制是面向对象程序中实现的主要手段7.下列 for循环语句执行的次数是 _。for (int i=0, x=0; !xi+)(分数:2.00)A.5B.6C.1D.无限8.使用白盒测试方法时,确定测试数据应根据 _ 和指定的覆盖标准。(分数:2.00)A.程序的内部逻辑B.程序的复杂结构C.使用说明书D.程序的功能9.下列关于圆括号运算符的功能说法不正确的是 _。(分数:
4、2.00)A.可用于强制类型转换B.可用于类型构造C.可用于类型声明D.可用于函数调用10.下列 C+语言符号中表示行注释开始的是 _。(分数:2.00)A.#B.;C./D.11.下面各语句中,能正确进行赋字符串操作的语句是(分数:2.00)A.char s5 = “ABCDE“ ;B.char s5 = A , B , C , D , E ;C.char *s; s = “ABCBE“;D.char *s; scanf(“%s“, s);12.下面叙述错误的是 _。(分数:2.00)A.基类的 protected成员在派生类中仍然是 protectedB.基类的 protected成员在
5、private派生类中仍然是 protected的C.基类的 protected成员在 private派生类中是 private的D.基类的 protected成员不能被派生类的对象访问13.关于对象概念的描述中,_ 是错误的(分数:2.00)A.对象就是 C语言中的变量B.对象是状态和操作的封装体C.对象之间的信息传递是通过消息进行的D.对象是某个类的一个实例14.关系 R和 S进行自然连接时,要求 R和 S含有一个或多个公共 _。(分数:2.00)A.元组B.行C.记录D.属性15.若有函数 func(par1,par2+par3,(par4,par5):在调用该函数时,实参的个数是 _。
6、(分数:2.00)A.3B.4C.5D.有语法错误16.静态成员函数没有 _。(分数:2.00)A.返回值B.this指针C.指针参数D.返回类型17.下面程序的输出结果是 _。#includeiostream.hvoid main()int x=20;int Myclass(int val);Myclass();(分数:2.00)A.int a=111;B.Myclass(Int x, int y);C.Myclass(int val);D.Myclass();19.对象实现了数据和操作的结合,使数据和操作 _ 于对象的统一体中(分数:2.00)A.结合B.隐藏C.封装D.抽象20.对于类定
7、义class A public:virtual void funcl()void func2();class D:public Apublic:void funcl()cout “class B rune 1“end1;virtual void func2()cout “class B func 2“end1;;下面正确的叙述是 _。(分数:2.00)A.A:func2()和 B:funcl()都是虚函数B.A:func2()和 B:funcl()都不是虚函数C.B:func1()是虚函数,而 A:func2()不是虚函数D.B:func1()不是虚函数,而 A:func2()是虚函数21.若
8、 d为 double型变量,则表达式 d=1,d+5,d+的值是 _。(分数:2.00)A.1B.6.0C.2.0D.1.022.若关系 R所有的属性都是不可再分的数据项,则称 R属于 _。(分数:2.00)A.第一范式B.第二范式C.第三范式D.第四范式23.以下程序的输出结果是 _。#includeiostream.hvoid main() char w10= “ABC“, “DEFGH“, “IJKL“ , “MNOP“ ;int k;for (k=1 ;k3 ;k+)coutwk “ “(分数:2.00)A.ABC FGH KLB.ABC EFG IJ MC.EFG JK 0D.DEF
9、GH IJKL24.关千成员函数特征的下述中,_ 是错误的。(分数:2.00)A.成员函数一定是内联函数B.成员函数可以重载C.成员函数可以设置参数的默认值D.成员函数可以是静态的25.以下说法中正确的是 _。(分数:2.00)A.C+程序总是从第一个定义的函数开始执行的B.在 C+程序中,要调用的函数必须在 main()函数中定义的C.C+程序总是从 main()函数开始执行的D.C+程序中的 main()函数必须放在程序的开始部分26.设 int a=4,b=8;则+a*b 的结果是 _。(分数:2.00)A.33B.40C.32D.4127.结构化分析方法 SA、结构化设计方法 SD,和
10、 JACKSON方法,是在软件开发过程中常用的方法,人们使用 SA 方法时可以得到 _。(分数:2.00)A.程序流程图B.具体的语言程序C.模块结构图及模块的功能说明书D.分层数据流图28.以下非法的赋值语句是(分数:2.00)A.n=(i=2, i+)B.i+C.x=j0D.+(i+1)29.数据库的概念模型 _。(分数:2.00)A.依赖于计算机硬件和 DBMSB.独立于计算机硬件,依赖于 DBMSC.依赖于计算机硬件,独立于 DBMSD.独立于计算机硬件和 DBMS30.下列程序的功能是输出数组中的最大值,其中用指针 q指向该元素,在 if语句中判断表达式应该是 _。#includei
11、ostream.hvoid main()int a10=6,7,2,9,1,10,5,8,4,3);int *p=a,*q=a;while(p-a10)if(_)q=p;p+;cout”max=”*q;(分数:2.00)A.apAqB.*p*qC.pqD.p-ap-q31.线性表采用链式存储方式时,结点的存储地址 _。(分数:2.00)A.必须是不连续的B.连续与否均可以C.必须是连续的D.和头结点的存储地址相连续32.在 n(n0)个元素的顺序栈中删除 1个元素的时间复杂度为 _。(分数:2.00)A.B.C.D.33.下述关于 break语句的描述中, _是不正确的。(分数:2.00)A.
12、break语句可用于循环体内,它将退出该循环B.break语句可用于 switch语句中,它将退出 switch语句C.break语句可用于 if体内,它将退出 if语句D.break语句在一个循环内可以出现多次34.阅读程序段,当输入数据形式为 25,13,10 时,正确的输出结果为 _。int x, y, z;cinxyz;cout “x+y+z=%d/n“ x+y+z;(分数:2.00)A.x+y+z=48B.x+y+z=35C.x+z=35D.不确定值35.继承具有 _,即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员(分数:2.00)A.规律性B.传递性C.
13、重复性D.多样性二、填空题(总题数:15,分数:30.00)36.在面向对象的程序设计中,类描述的是具有相似性质的一组 1 。(分数:2.00)填空项 1:_37.面向对象的模型中,最基本的概念是对象和 2 。(分数:2.00)填空项 1:_38.冒泡排序在最好情况下时间复杂度为 3 。(分数:2.00)填空项 1:_39.在 C+中,下列程序段的输出结果是 4 。int x, a10;coutsizeof(x)“”sizeof(a)“”sizeof(float)end1(分数:2.00)填空项 1:_40.假设 a,b,和 c都是整型变量,且值都是 5,执行 a-=+b+c-;则 a,b,和
14、 c的结果分别是 5 。(分数:2.00)填空项 1:_41.当执行以下程序后,i 的值是 5,j 的值是 4,k 的值是 6 。int a, b, c, d, i, j, k;a=10; b=c=d=5; i=j=k=0;for(;ab; +b) i+;while(a+c) j+;do k+;while(ad+);(分数:2.00)填空项 1:_42.下面程序实现输出从“!”开始的 91个 ACCII字符及码值,要求每行输出 7项。请完成程序。#includeiostream.hvoid main( ) char c= “!“;int d , n=1;do while (n=7) d=c;c
15、outc “=“ d“”;c+n+;cout “/n“ ;7 ;while(c= ! +90)cout “/n“ ;(分数:2.00)填空项 1:_43.以下程序的输出结果是 8 。#include iostream. hvoid main() char *x6 = “Would“ , “you“ , “like“ , “C“ “Plus“ “Plus“int i=0;while (i 4)if (i=3)coutxi “?“ ;elsecoutxi“ “;i+;coutend1;(分数:2.00)填空项 1:_44.当输入 d的值 22时,以下程序的输出结果是 9 。void bin (in
16、t b) if (b= 2) bin(b/2);coutb%2;void main() int d;cind;bin(D) ;(分数:2.00)填空项 1:_45.以下程序的输出结果是 10 。#includeiostream. hvoid main() int *p;p=new int;*p=200;cout*p;delete p;(分数:2.00)填空项 1:_46.以下程序的输出结果是 11 。#includeiostream. hvoid main() int a= 1, 3, 5, 7, *p=a, i;for (i=0; i4: i+)ai=*p+;couta2;(分数:2.00)
17、填空项 1:_47.下列程序的运行结果是 12 。include iostream. hclass Sample int x,y;public:Sample() x=y=0; Sample(int a, int b) x=a;y=b;void disp() cout“ x=“ x“ , y=“yend1;void main() Sample s1, s2(1, 2);s1. disp0;s2. disp ();(分数:2.00)填空项 1:_48.指出下面程序段中的错误,并说明出错原因 13 。class Location int X, Y=20;protected:int zeroX, ze
18、roY;int SetZero(int ZeroX, iht ZeroY);private:int length, height;public:float radius;void init(int initX,int initY);int GetX();Int GetY();;(分数:2.00)填空项 1:_49.对于派生类的构造函数,在定义对象时构造函数的执行顺序为:先执行 14 。再执行成员对象的构造函数,后执行派生类本身的构造函数。(分数:2.00)填空项 1:_50.类的成员函数中,只能用于检测输入操作的函数是 15 。(分数:2.00)填空项 1:_二级 C+笔试-325 答案解析(
19、总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列说法不正确的是 _。(分数:2.00)A.转义字符序列/b 的功能是退格B.转义字符序列/n 的功能是退格 C.转义字符序列/r 的功能是回车D.:转义字符序列/f的功能是换页解析:2.执行下列程序int fun(int x1,int x2)int x;x1x2 ?(x=3):(x=4);return x+x1;void main()coutfun(7,8);后输出结果是 _。(分数:2.00)A.9B.10C.11 D.12解析:3.以下数组定义中不正确的是 _。(分数:2.00)A.int a23
20、B.int b 3=0;C.int c11=0;D.int d3=1,2,(1,2,31,2,3,4; 解析:4.数据的四种基本逻辑结构是指 _。(分数:2.00)A.组、链表、树、图形结构B.线性表、链表、栈队列、数组广义表C.线性结构、链表、树、图形结构D.集合、线性结构、树、图形结构 解析:5.若有 int(*p)3:则以下表述中正确的是 _。(分数:2.00)A.p是一个指向具有 3个元素的整型数组的指针 B.p是一个指向 int型变量的指针C.p是一个有 3个元素的指针数组,每个元素是一个 int型指针D.p是一个具有 3个 int型元素的一维数组解析:6.以下说法错误的是 _。(分
21、数:2.00)A.采用面向对象方法开发软件的基本目的和主要优点是通过重用提高软件的生成率B.在面向对象的程序中,对象是属性(状态)和方法(操作)的封装体C.在面向对象的程序中,对象彼此间通过继承和多态性启动响应的操作 D.继承和多态机制是面向对象程序中实现的主要手段解析:7.下列 for循环语句执行的次数是 _。for (int i=0, x=0; !xi+)(分数:2.00)A.5B.6 C.1D.无限解析:8.使用白盒测试方法时,确定测试数据应根据 _ 和指定的覆盖标准。(分数:2.00)A.程序的内部逻辑 B.程序的复杂结构C.使用说明书D.程序的功能解析:9.下列关于圆括号运算符的功能
22、说法不正确的是 _。(分数:2.00)A.可用于强制类型转换B.可用于类型构造C.可用于类型声明 D.可用于函数调用解析:10.下列 C+语言符号中表示行注释开始的是 _。(分数:2.00)A.#B.;C./ D.解析:11.下面各语句中,能正确进行赋字符串操作的语句是(分数:2.00)A.char s5 = “ABCDE“ ;B.char s5 = A , B , C , D , E ;C.char *s; s = “ABCBE“; D.char *s; scanf(“%s“, s);解析:12.下面叙述错误的是 _。(分数:2.00)A.基类的 protected成员在派生类中仍然是 pr
23、otected B.基类的 protected成员在 private派生类中仍然是 protected的C.基类的 protected成员在 private派生类中是 private的D.基类的 protected成员不能被派生类的对象访问解析:13.关于对象概念的描述中,_ 是错误的(分数:2.00)A.对象就是 C语言中的变量 B.对象是状态和操作的封装体C.对象之间的信息传递是通过消息进行的D.对象是某个类的一个实例解析:14.关系 R和 S进行自然连接时,要求 R和 S含有一个或多个公共 _。(分数:2.00)A.元组B.行C.记录D.属性 解析:15.若有函数 func(par1,p
24、ar2+par3,(par4,par5):在调用该函数时,实参的个数是 _。(分数:2.00)A.3 B.4C.5D.有语法错误解析:16.静态成员函数没有 _。(分数:2.00)A.返回值B.this指针 C.指针参数D.返回类型解析:17.下面程序的输出结果是 _。#includeiostream.hvoid main()int x=20;int Myclass(int val);Myclass();(分数:2.00)A.int a=111; B.Myclass(Int x, int y);C.Myclass(int val);D.Myclass();解析:19.对象实现了数据和操作的结合
25、,使数据和操作 _ 于对象的统一体中(分数:2.00)A.结合B.隐藏C.封装 D.抽象解析:20.对于类定义class A public:virtual void funcl()void func2();class D:public Apublic:void funcl()cout “class B rune 1“end1;virtual void func2()cout “class B func 2“end1;;下面正确的叙述是 _。(分数:2.00)A.A:func2()和 B:funcl()都是虚函数B.A:func2()和 B:funcl()都不是虚函数C.B:func1()是虚函
26、数,而 A:func2()不是虚函数 D.B:func1()不是虚函数,而 A:func2()是虚函数解析:21.若 d为 double型变量,则表达式 d=1,d+5,d+的值是 _。(分数:2.00)A.1B.6.0C.2.0D.1.0 解析:22.若关系 R所有的属性都是不可再分的数据项,则称 R属于 _。(分数:2.00)A.第一范式 B.第二范式C.第三范式D.第四范式解析:23.以下程序的输出结果是 _。#includeiostream.hvoid main() char w10= “ABC“, “DEFGH“, “IJKL“ , “MNOP“ ;int k;for (k=1 ;k
27、3 ;k+)coutwk “ “(分数:2.00)A.ABC FGH KLB.ABC EFG IJ MC.EFG JK 0D.DEFGH IJKL 解析:24.关千成员函数特征的下述中,_ 是错误的。(分数:2.00)A.成员函数一定是内联函数 B.成员函数可以重载C.成员函数可以设置参数的默认值D.成员函数可以是静态的解析:25.以下说法中正确的是 _。(分数:2.00)A.C+程序总是从第一个定义的函数开始执行的B.在 C+程序中,要调用的函数必须在 main()函数中定义的C.C+程序总是从 main()函数开始执行的 D.C+程序中的 main()函数必须放在程序的开始部分解析:26.
28、设 int a=4,b=8;则+a*b 的结果是 _。(分数:2.00)A.33B.40 C.32D.41解析:27.结构化分析方法 SA、结构化设计方法 SD,和 JACKSON方法,是在软件开发过程中常用的方法,人们使用 SA 方法时可以得到 _。(分数:2.00)A.程序流程图B.具体的语言程序C.模块结构图及模块的功能说明书D.分层数据流图 解析:28.以下非法的赋值语句是(分数:2.00)A.n=(i=2, i+)B.i+C.x=j0D.+(i+1) 解析:29.数据库的概念模型 _。(分数:2.00)A.依赖于计算机硬件和 DBMSB.独立于计算机硬件,依赖于 DBMSC.依赖于计
29、算机硬件,独立于 DBMSD.独立于计算机硬件和 DBMS 解析:30.下列程序的功能是输出数组中的最大值,其中用指针 q指向该元素,在 if语句中判断表达式应该是 _。#includeiostream.hvoid main()int a10=6,7,2,9,1,10,5,8,4,3);int *p=a,*q=a;while(p-a10)if(_)q=p;p+;cout”max=”*q;(分数:2.00)A.apAqB.*p*q C.pqD.p-ap-q解析:31.线性表采用链式存储方式时,结点的存储地址 _。(分数:2.00)A.必须是不连续的B.连续与否均可以 C.必须是连续的D.和头结点
30、的存储地址相连续解析:32.在 n(n0)个元素的顺序栈中删除 1个元素的时间复杂度为 _。(分数:2.00)A.B.C.D. 解析:33.下述关于 break语句的描述中, _是不正确的。(分数:2.00)A.break语句可用于循环体内,它将退出该循环B.break语句可用于 switch语句中,它将退出 switch语句C.break语句可用于 if体内,它将退出 if语句 D.break语句在一个循环内可以出现多次解析:34.阅读程序段,当输入数据形式为 25,13,10 时,正确的输出结果为 _。int x, y, z;cinxyz;cout “x+y+z=%d/n“ x+y+z;(
31、分数:2.00)A.x+y+z=48B.x+y+z=35C.x+z=35D.不确定值 解析:35.继承具有 _,即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员(分数:2.00)A.规律性B.传递性 C.重复性D.多样性解析:二、填空题(总题数:15,分数:30.00)36.在面向对象的程序设计中,类描述的是具有相似性质的一组 1 。(分数:2.00)填空项 1:_ (正确答案:对象)解析:37.面向对象的模型中,最基本的概念是对象和 2 。(分数:2.00)填空项 1:_ (正确答案:类)解析:38.冒泡排序在最好情况下时间复杂度为 3 。(分数:2.00)填空项
32、1:_ (正确答案:O(n))解析:39.在 C+中,下列程序段的输出结果是 4 。int x, a10;coutsizeof(x)“”sizeof(a)“”sizeof(float)end1(分数:2.00)填空项 1:_ (正确答案:4 40 4)解析:40.假设 a,b,和 c都是整型变量,且值都是 5,执行 a-=+b+c-;则 a,b,和 c的结果分别是 5 。(分数:2.00)填空项 1:_ (正确答案:-6 6 4)解析:41.当执行以下程序后,i 的值是 5,j 的值是 4,k 的值是 6 。int a, b, c, d, i, j, k;a=10; b=c=d=5; i=j=
33、k=0;for(;ab; +b) i+;while(a+c) j+;do k+;while(ad+);(分数:2.00)填空项 1:_ (正确答案:6)解析:42.下面程序实现输出从“!”开始的 91个 ACCII字符及码值,要求每行输出 7项。请完成程序。#includeiostream.hvoid main( ) char c= “!“;int d , n=1;do while (n=7) d=c;coutc “=“ d“”;c+n+;cout “/n“ ;7 ;while(c= ! +90)cout “/n“ ;(分数:2.00)填空项 1:_ (正确答案:n= 1)解析:43.以下程序
34、的输出结果是 8 。#include iostream. hvoid main() char *x6 = “Would“ , “you“ , “like“ , “C“ “Plus“ “Plus“int i=0;while (i 4)if (i=3)coutxi “?“ ;elsecoutxi“ “;i+;coutend1;(分数:2.00)填空项 1:_ (正确答案:Would you like C?)解析:44.当输入 d的值 22时,以下程序的输出结果是 9 。void bin (int b) if (b= 2) bin(b/2);coutb%2;void main() int d;cin
35、d;bin(D) ;(分数:2.00)填空项 1:_ (正确答案:10110)解析:45.以下程序的输出结果是 10 。#includeiostream. hvoid main() int *p;p=new int;*p=200;cout*p;delete p;(分数:2.00)填空项 1:_ (正确答案:200)解析:46.以下程序的输出结果是 11 。#includeiostream. hvoid main() int a= 1, 3, 5, 7, *p=a, i;for (i=0; i4: i+)ai=*p+;couta2;(分数:2.00)填空项 1:_ (正确答案:5)解析:47.下
36、列程序的运行结果是 12 。include iostream. hclass Sample int x,y;public:Sample() x=y=0; Sample(int a, int b) x=a;y=b;void disp() cout“ x=“ x“ , y=“yend1;void main() Sample s1, s2(1, 2);s1. disp0;s2. disp ();(分数:2.00)填空项 1:_ (正确答案:此程序的运行结果为:x=0, y=0x=1, y=2)解析:48.指出下面程序段中的错误,并说明出错原因 13 。class Location int X, Y=
37、20;protected:int zeroX, zeroY;int SetZero(int ZeroX, iht ZeroY);private:int length, height;public:float radius;void init(int initX,int initY);int GetX();Int GetY();;(分数:2.00)填空项 1:_ (正确答案:int X,Y=20; 出错,不能采用这种方式初始化)解析:49.对于派生类的构造函数,在定义对象时构造函数的执行顺序为:先执行 14 。再执行成员对象的构造函数,后执行派生类本身的构造函数。(分数:2.00)填空项 1:_ (正确答案:基类的构造函数)解析:50.类的成员函数中,只能用于检测输入操作的函数是 15 。(分数:2.00)填空项 1:_ (正确答案:eof)解析: