点击查看:2015年计算机二级考试C++过关练习题及答案汇总
1[填空题]使用class定义的表中,成员的默认访问权限是 (1) 的;由struct定义的类中,成员的默认的访问权限是 (2) 的。
参考答案:(1)私有、(2)公有
2[单选题]数据管理技术发展的三个阶段中,( )没有专门的软件对数据进行管理。
Ⅰ.人工管理阶段 Ⅱ.文件系统阶段 Ⅲ.数据库阶段
A.仅ⅠB.仅ⅢC.Ⅰ和ⅡD.Ⅱ和Ⅲ
参考答案:A
参考解析:数据管理技术发展的三个阶段中,只有人工管理阶段,没有操作系统,没有管理数据的软件,数据处理方式是批处理。在文件系统阶段,操作系统中已经有了专门数据管理软件,一般称为文件系统。在数据库系统阶段,出现了统一管理数据的专门软件系统,即数据库管理系统。
3[单选题]下列关于类和对象的叙述中,错误的是( )
A.一个类只能有一个对象
B.对象是类的具体实例
C.类是对某一类对象的抽象
D.类和对象的关系是一种数据类型与变量的关系
参考答案:A
4[单选题] 下列说法正确的是( )。
A.内联函数在运行时将该函数的目标代码插入每个调用该函数的地方
B.内联函数在编译时将该函数的目标代码插入每个调用该函数的地方
C.类的内联函数必须在类体内定义
D.类的内联函数必须在类体外通过加关键字inline定义
参考答案:B
参考解析:本题考查的是内联函数的定义,引入内联函数是为了解决程序中函数调用的效率问题,是以目标代码的增加为代价换取时间的节省;一般函数在运行时被调用,而调用的内联函数在编译时就被替代了,如果不加in-line关键字,则编译器会将在类说明部分定义的任何函数都被认定为内联函数。
5[单选题]
参考答案:B
6[单选题] 将x+y*z中的“+”用成员函数重载,“*”是友元函数重载应写为( )。
A.operator+(operator*(y,z))
B.x.operator+(operator*(y,z))
C.x.operator+(X*(y,z))
D.x+(operator*(y,z))
参考答案:B
参考解析:在定义了重载运算符后的函数后,函数operator+重载了运算符“+”。如果在类以外的其他地方定义了一个函数,在类体中用friend对该函数进行声明,此函数就称为本类的友元函数。“*”用友元函数重载就是运算符函数不作为成员函数,而把它放在类外,“*”被改写为“operator*”。“+”为成员函数重载,X.operator+。所以“x+y*z”被改写为“x.operator+(operator*(y,z))”。
7[单选题]对于类定义:
classA{
public:
virtualvoidfuncl(){}
voidfunc2(){}
};
classB:publicA{
public:
voidfuncl(){cout<<"classBfunc1"<
virtualvoidfunc2(){cout<<"classBfunc2"
<
};
下面正确的叙述是( )。
A.A::func2( )和B::func1( )都是虚函数
B.A::rune2( )和B::func1( )都不是虚函数
C.B::func1( )是虚函数,而A::fune2( )不是虚函数
D.B::func1( )不是虚函数,而A::func2( )是虚函数
参考答案:C
参考解析:基类中说明的虚函数,在派生类中自然就是虚函数,所以类B中funcl()是虚函数;而类A中的func2()没有被关键字virtual修饰;所以不是虚函数。
8[单选题] 软件详细设计产生的图如下:
该图是( )。
A.N—S图B.PAD图C.程序流程图D.E—R图
参考答案:C
参考解析:N—S图提出了用方框图来代替传统的程序流程图,所以A不对。PAD图是问题分析图,它是继承程序流程图和方框图之后提出的又一种主要用于描述软件详细设计的图形表示工具,所以B不对。E—R图是数据库中的用于表示E—R模型的图示工具,所以D不对。根据图中所示表示方法是进行软件详细设计时使用的程序流程图。
9[单选题] 设int a=1,b=2;,则(a++)+b和a+++b这两个表达式的值分别为( )。
A.3,3B.3,4C.4,3D.4,4
参考答案:A
参考解析:单目的++运算优先级高于双目的+运算,不过++的结合性是自右向左的,而+是自左向右的,所以上面的两个表达式都是先计算a+b的值之后,a再自加1。
10[填空题]
参考解析:26
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |