1、二级 C+笔试-364 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.C+本身没有定义 I/O操作,但 I/O操作包含在 C+实现中。C+标准库 iostream提供了基本的 I/O类。I/O操作分别由类 istream和( )提供。(分数:2.00)A.fstreamB.iostreamC.ostreamD.cin2.继承具有( ),即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。(分数:2.00)A.规律性B.传递性C.重复性D.多样性3.下面叙述错误的是( )。(分数:2.00)A.派生类可以使用 pri
2、vate派生B.对基类成员的访问必须是无二义性的C.基类成员的访问能力在派生类中维持不变D.赋值兼容规则也适用于多继承的组合4.以下程序段的执行结果为( )。#include iostreamh#definePLUS(x,y) x+yvoid main ()int x=1,y=2,Z=3,sum:sumPLUS (x+y,Z) * PLUS (y,Z):cout“SUM=“sum;coutendl:(分数:2.00)A.SUM=9B.SUM=12C.SUM=18D.SUM=305.下列 for循环的次数为( )。for( int i=0,x=0;!xi+)(分数:2.00)A.5B.6C.1D
3、.无限6.多态性指的是( )。(分数:2.00)A.以任何方式调用一个虚函数B.以任何方式调用一个纯虚函数C.借助于指向对象的基类指针或引用调用一个虚函数D.借助于指向对象的基类指针或引用调用一个纯虚函数7.若有以下函数调用语句:f( m+n,x+y,f(m+n,z,(x,y);在此函数调用语句中实参的个数是( )。(分数:2.00)A.6B.5C.4D.38.一个函数带有参数说明时,则参数的默认值应该在( )中给出。A函数定义 B函数声明C. 函数定义或声明 D函数调用。(分数:2.00)A.B.C.D.9.派生类的对象对它的基类成员中( )是可以访问的。(分数:2.00)A.公有继承的公有
4、成员B.公有继承的私有成员C.公有继承的保护成员D.私有继承的公有成员10.C+对 C语言作了很多改进,下列描述中( )使得 C语言发生了质变,即从面向过程变成面向对象。(分数:2.00)A.增加了一些新的运算符B.允许函数重载,并允许设置默认参数C.规定函数说明必须用原型D.引进了类和对象的概念11.下列 for循环的循环体执行次数为( )。for (int i=O,j=10;i=j=10;i+,j-)(分数:2.00)A.0B.1C.10D.无限12.关于关键字 class和 typename,下列描述正确的是( )。(分数:2.00)A.程序中所有的 class都可以替换为 typena
5、meB.程序中所有的 typename都可以替换为 classC.A和 B都可以D.A和 B都不可以13.下面表示打开 c盘存在文件 abc而,输出的内容加在末尾的是( )。(分数:2.00)A.ofstream myf(“c:/abc“);B.ofstream myf(“c:/abc“,ios:outlios: trund);C.ofstream myf(“c:/abc“,ios:outlios: ate);D.ofstream myf(“c:/abc“,ios:out);14.已知类 Myst有一个只需要一个 double型参数的构造函数,且将运算符“-”重载为友元函数。要使语句序列 My
6、st x (3.2),y(5.5),z(0.0);z=8.9-y;y=x-6.3;能够正常运行,运算符函数 operator-应在类中声明为( )。(分数:2.00)A.friend Myst operator- (Myst;i+) sum=sum +l;C.int k=0;do +Kwhile(k=O);D.int s3379;while (s+ +%2+3%2)s+;21.下列程序的输出结果是( )。#include iostream.h void main()double d=3.2;intx, y:x=1.2;y=(x+3.8)/5.0couty*d endl;(分数:2.00)A.3
7、B.3.2C.0D.3.0722.根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分成( )(分数:2.00)A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构23.为用户与数据库系统提供接口的语言是( )。A高级语言 B数据描述语言(DDL)C. 数据操纵语言(DML) D汇编语言(分数:2.00)A.B.C.D.24.下列对重载函数的描述中,( )是错误的。A重载函数中不允许使用默认参数B重载函数中编译是根据参数表进行选择C. 不要使用重载函数来描述毫无相干的函数D构造函数重载将会给初始化带来多种方式(分数:2.00)A.B.C.D
8、.25.程序的 3种基本控制结构是( )。(分数:2.00)A.过程、子过程和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移26.下列关于指针的运算中,( )是非法的。(分数:2.00)A.两个指针在一定条件下,可以进行相等或不等的运算B.可以将一个空指针赋值给某个指针C.一个指针可以加上两个整数之差D.两个指针在一定条件下可以相加27.重载赋值操作符时,应声明为( )。函数。(分数:2.00)A.友元B.虚C.成员D.多态28.在 c+中,数据封闭要解决的问题是( )。(分数:2.00)A.数据的规范化B.便于数据转换C.避免数据丢失D.防止不同模块之间数据的非法访问29
9、.有如下程序:#include“ iostream.h“void main()int x=1, a=0, b=0;switch(x) case O:b+;easel:a+;case2:a+:b+:cout“a =“a“,“ “b=“b;该程序的输出结果是( )。(分数:2.00)A.a=2,b1B.a=l, b=1C.a1,b=0D.a=2,b=230.下列关于 getline ()函数的描述中,错误的是( )。(分数:2.00)A.该函数可以用来从键盘上读取字符串B.该函数读取的字符串长度是受限制的C.该函数读取字符串时,遇到终止符时便停止D.该函数中所使用的终止符只能是换行符31.下列描述
10、正确的是( )。(分数:2.00)A.表示 mn 为 false或 mn 为 true 的达式为(mni=10;j=15;k=10*MIN (i,j);coutkendl;程序执行后的输出结果是_。(分数:2.00)填空项 1:_44.带有 1 的类称为抽象类,它只能作为 2 来使用。(分数:2.00)填空项 1:_填空项 1:_45.以下程序的运行结果是_。#includeiostreamh#includemathhtemplateclass Tclass TAdd定义类模板 TAdd,T 为类型Tx,y;public:TAdd (Ta,Tb) x=a,y=b;) 构造函数Tadd() re
11、tum x+y;成员函数;void main( )TAddintA (5,6); 定义 TAddint模板类的一个对象 ATAddB(2.4,5.8); 定义 TAdddouble模板类的一个对象 Bcout“s1“Aadd()endl;cout“s2=“Badd()endl;(分数:2.00)填空项 1:_46.设置虚基类的目的是_,通过_表示虚基类。(分数:2.00)填空项 1:_47.有以下程序段,其输出的结果是_。int x,y,z;X=y=z=0;+x+y (分数:2.00)填空项 1:_48.所有的函数模板定义都是以关键字_开始的,该关键字之后是用_括起来的形式参数表。(分数:2.
12、00)填空项 1:_49.算法的基本特征是可行性、确定性、 1 和拥有足够的情报。(分数:2.00)填空项 1:_50.C+中的数据类型大体上可以分成三类:它们是_、_和_。(分数:2.00)填空项 1:_二级 C+笔试-364 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.C+本身没有定义 I/O操作,但 I/O操作包含在 C+实现中。C+标准库 iostream提供了基本的 I/O类。I/O操作分别由类 istream和( )提供。(分数:2.00)A.fstreamB.iostreamC.ostream D.cin解析:2.继承具有(
13、 ),即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。(分数:2.00)A.规律性B.传递性 C.重复性D.多样性解析:3.下面叙述错误的是( )。(分数:2.00)A.派生类可以使用 private派生B.对基类成员的访问必须是无二义性的C.基类成员的访问能力在派生类中维持不变 D.赋值兼容规则也适用于多继承的组合解析:4.以下程序段的执行结果为( )。#include iostreamh#definePLUS(x,y) x+yvoid main ()int x=1,y=2,Z=3,sum:sumPLUS (x+y,Z) * PLUS (y,Z):cout“SUM
14、=“sum;coutendl:(分数:2.00)A.SUM=9B.SUM=12 C.SUM=18D.SUM=30解析:5.下列 for循环的次数为( )。for( int i=0,x=0;!xi+)(分数:2.00)A.5B.6 C.1D.无限解析:6.多态性指的是( )。(分数:2.00)A.以任何方式调用一个虚函数B.以任何方式调用一个纯虚函数C.借助于指向对象的基类指针或引用调用一个虚函数 D.借助于指向对象的基类指针或引用调用一个纯虚函数解析:7.若有以下函数调用语句:f( m+n,x+y,f(m+n,z,(x,y);在此函数调用语句中实参的个数是( )。(分数:2.00)A.6B.5
15、C.4D.3 解析:8.一个函数带有参数说明时,则参数的默认值应该在( )中给出。A函数定义 B函数声明C. 函数定义或声明 D函数调用。(分数:2.00)A.B.C. D.解析:9.派生类的对象对它的基类成员中( )是可以访问的。(分数:2.00)A.公有继承的公有成员 B.公有继承的私有成员C.公有继承的保护成员D.私有继承的公有成员解析:10.C+对 C语言作了很多改进,下列描述中( )使得 C语言发生了质变,即从面向过程变成面向对象。(分数:2.00)A.增加了一些新的运算符B.允许函数重载,并允许设置默认参数C.规定函数说明必须用原型D.引进了类和对象的概念 解析:11.下列 for
16、循环的循环体执行次数为( )。for (int i=O,j=10;i=j=10;i+,j-)(分数:2.00)A.0B.1C.10D.无限 解析:12.关于关键字 class和 typename,下列描述正确的是( )。(分数:2.00)A.程序中所有的 class都可以替换为 typenameB.程序中所有的 typename都可以替换为 class C.A和 B都可以D.A和 B都不可以解析:13.下面表示打开 c盘存在文件 abc而,输出的内容加在末尾的是( )。(分数:2.00)A.ofstream myf(“c:/abc“);B.ofstream myf(“c:/abc“,ios:o
17、utlios: trund);C.ofstream myf(“c:/abc“,ios:outlios: ate); D.ofstream myf(“c:/abc“,ios:out);解析:14.已知类 Myst有一个只需要一个 double型参数的构造函数,且将运算符“-”重载为友元函数。要使语句序列 Myst x (3.2),y(5.5),z(0.0);z=8.9-y;y=x-6.3;能够正常运行,运算符函数 operator-应在类中声明为( )。(分数:2.00)A.friend Myst operator- (Myst;i+) sum=sum +l;C.int k=0;do +Kwhi
18、le(k=O);D.int s3379;while (s+ +%2+3%2)s+;解析:21.下列程序的输出结果是( )。#include iostream.h void main()double d=3.2;intx, y:x=1.2;y=(x+3.8)/5.0couty*d endl;(分数:2.00)A.3B.3.2C.0 D.3.07解析:22.根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分成( )(分数:2.00)A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构解析:23.为用户与数据库系统提供接口的语言是( )。A高
19、级语言 B数据描述语言(DDL)C. 数据操纵语言(DML) D汇编语言(分数:2.00)A.B.C. D.解析:24.下列对重载函数的描述中,( )是错误的。A重载函数中不允许使用默认参数B重载函数中编译是根据参数表进行选择C. 不要使用重载函数来描述毫无相干的函数D构造函数重载将会给初始化带来多种方式(分数:2.00)A. B.C.D.解析:25.程序的 3种基本控制结构是( )。(分数:2.00)A.过程、子过程和分程序B.顺序、选择和重复 C.递归、堆栈和队列D.调用、返回和转移解析:26.下列关于指针的运算中,( )是非法的。(分数:2.00)A.两个指针在一定条件下,可以进行相等或
20、不等的运算B.可以将一个空指针赋值给某个指针C.一个指针可以加上两个整数之差D.两个指针在一定条件下可以相加 解析:27.重载赋值操作符时,应声明为( )。函数。(分数:2.00)A.友元B.虚C.成员 D.多态解析:28.在 c+中,数据封闭要解决的问题是( )。(分数:2.00)A.数据的规范化B.便于数据转换C.避免数据丢失D.防止不同模块之间数据的非法访问 解析:29.有如下程序:#include“ iostream.h“void main()int x=1, a=0, b=0;switch(x) case O:b+;easel:a+;case2:a+:b+:cout“a =“a“,“
21、 “b=“b;该程序的输出结果是( )。(分数:2.00)A.a=2,b1 B.a=l, b=1C.a1,b=0D.a=2,b=2解析:30.下列关于 getline ()函数的描述中,错误的是( )。(分数:2.00)A.该函数可以用来从键盘上读取字符串B.该函数读取的字符串长度是受限制的C.该函数读取字符串时,遇到终止符时便停止D.该函数中所使用的终止符只能是换行符 解析:31.下列描述正确的是( )。(分数:2.00)A.表示 mn 为 false或 mn 为 true 的达式为(mni=10;j=15;k=10*MIN (i,j);coutkendl;程序执行后的输出结果是_。(分数:
22、2.00)填空项 1:_ (正确答案:15)解析:44.带有 1 的类称为抽象类,它只能作为 2 来使用。(分数:2.00)填空项 1:_ (正确答案:纯虚函数)填空项 1:_ (正确答案:基类)解析:45.以下程序的运行结果是_。#includeiostreamh#includemathhtemplateclass Tclass TAdd定义类模板 TAdd,T 为类型Tx,y;public:TAdd (Ta,Tb) x=a,y=b;) 构造函数Tadd() retum x+y;成员函数;void main( )TAddintA (5,6); 定义 TAddint模板类的一个对象 ATAdd
23、B(2.4,5.8); 定义 TAdddouble模板类的一个对象 Bcout“s1“Aadd()endl;cout“s2=“Badd()endl;(分数:2.00)填空项 1:_ (正确答案:s1=11s2=8.2)解析:46.设置虚基类的目的是_,通过_表示虚基类。(分数:2.00)填空项 1:_ (正确答案:解决二义性问题 用关键字 virtual)解析:47.有以下程序段,其输出的结果是_。int x,y,z;X=y=z=0;+x+y (分数:2.00)填空项 1:_ (正确答案:1,0,0)解析:48.所有的函数模板定义都是以关键字_开始的,该关键字之后是用_括起来的形式参数表。(分数:2.00)填空项 1:_ (正确答案:template 尖括号“”A)解析:49.算法的基本特征是可行性、确定性、 1 和拥有足够的情报。(分数:2.00)填空项 1:_ (正确答案:有穷性)解析:50.C+中的数据类型大体上可以分成三类:它们是_、_和_。(分数:2.00)填空项 1:_ (正确答案:基本类型 导出类型 用户定义类型)解析: