国家二级C++机试(选择题)模拟试卷232
选择题
1.下列选项中,不属于数据库管理的是( )。(D)
A. 数据库的建立
B. 数据库的调整
C. 数据库的监控
D. 数据库的校对
解析:数据库管理一般包括:数据库的建立、数据库的调整、数据库的重组、数据库的安全性控制与完整性控制、数据库的故障恢复和数据库的监控。
2.若有定义“int x=4,y=5;”,则表达式“y>x++?x一:y++”的值为( )。(C)
A. 3
B. 4
C. 5
D. 6
解析:在表达式“y>x++?x-:y++”中,由于自加(++)运行符的优前级高于比较运算符(>),所以首先进行自加运算,即变量x的值前自加l,等于5,此时表达式y>x不成立,所以整个表达式的值等于y++的值,由于y++是后自加运算,所以其值等于5。
3.有如下函数模板:
ternplate
T cast(U u){return u;}
其功能是将U类型数据转换为T类型数据。已知i为int型变量,下列对模板函数cast的调用中正确的是( )。(D)
A. cast(i);
B. cast(i);
C. cast(i);
D. cast(i);
解析:本题考查函数模板的基本运用,属于基础知识。函数模板实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型代表,这个通用函数就是函数模板。函数模板可以设定默认参数,这样在调用模板函数时就可以省略实参,函数模板的实例就是一个函数的定义。所以本题答案为D。
4.在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为( )。(B)
A. 63
B. 64
C. 6
D. 7
解析:顺序查找又称顺序搜索。顺序查找一般是指在线性表中查找指定的元素,其基本方法是:从线性表的第一元素开始,依次将线性表中的元素与被查找的元素进行比较,若相等则表示找到(即查找成功),若线性表中所有元素都与被查元素进行了比较但都不相等,则表示线性表中没有要找的元素(即查找失败)。如果线性表中的第一个元素就是要查找的元素,则只需要做一次比较就查找成功;但如果要查找的元素是线性表中的最后一个元素,或者要查找元素不在线性表中,则需要与线性表中所有元素进行比较,这是顺序查找的最坏情况,比较次数为线性表的长度。
5.若字符指针P所指向的字符串为\\(B)
A. 9
B. 8
C. 7
D. 6
解析:字符指针p所指向的字符串为\\
6.下列有关继承和派生的叙述中,正确的是( )。(D)
A. 如果一个派生类公有继承其基类,则该派生类对象可以访问基类的保护成员
B. 派生类的成员函数可以访问基类的所有成员
C. 基类对象可以赋值给派生类对象
D. 如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类
解析:私有继承方式为基类的公用成员和保护成员在派生类中成了私有成员,其私有成员仍为基类私有,但派生类对象可以访问基类的保护成员,所以基类对象不能赋值给派生类对象。抽象类是指含有纯虚拟函数的类,所以选项D正确。
7.下列选项中不属于结构化程序设计原则的是( )。(A)
A. 可封装
B. 自顶向下
C. 模块化
D. 逐步求精
解析:结构化设计方法的主要原则可以概括为自顶向下、逐步求精、模块化、限制使用goto语句。
8.下面描述中,不属于软件危机表现的是( )。(A)
A. 软件过程不规范
B. 软件开发生产率低
C. 软件质量难以控制
D. 软件成本不断提高
解析:软件危机主要表现在以下6个方面:
①软件需求的增长得不到满足。
②软件开发成本和进度无法控制。
⑨软件质量难以保证。
④软件不可维护或维护程度非常低。
⑤软件的成本不断提高。
⑥软件开发生产率的提高赶不上硬件的发展和应用需求的增长。
9.下列描述中,不属于面向对象思想主要特征的是( )。(B)
A. 封装性
B. 跨平台性
C. 继承性
D. 多态性
解析:封装性、继承性和多态性是面向对象程序设计的三个基本特征。跨平台性不是面向对象程序设计的特征。
10.软件系统总体结构图的作用是(A)
A. 描述软件系统结构的图形工具
B. 描述软件系统的控制流
C. 描述软件系统的数据流
D. 描述软件系统的数据结构
解析:软件系统总体结构图的作用是描述软件系统结构的图形工具。
11.有如下程序:
#inclulde
using namespace std;
class Base
{
private:
void funl() const{tout<<\\(B)
A. ①②⑧④
B. ①②③
C. ②③④
D. ①④
解析:此题考查的是保护继承。因为Derived以protected方式继承了Base类,所以父类Base中的公有成员和保护成员均成了Derived类的保护成员,而Base类的私有成员Derived类不可访问。所以,主函数中通过Derived类的对象只能够访问到Derived类的公有成员。
12.下列枚举类型的定义中,包含枚举值3的是( )。
A
解析:声明枚举类型的语法格式为:enum<类型名>{<枚举值表>};<枚举值表>包含多个枚举值,它们用逗号隔开,每个枚举值就是一个枚举常量。枚举值有两种定义形式:一是<值名>;二是<值名>=<整型常量>。关于枚举类型有以下4点说明:①一个enum类型实际上是int类型的一个子集,其每一个枚举值代表一个整数。②n个枚举值全部未赋常量值时,它们自左至右分别与整数0,1,…n一1对应。③若第i个枚举值赋常量值为m,则其未赋常量值的后续枚举值分别与整数m+1,m+2…对应,直到下一个赋了值的枚举值或结束。因此,为枚举值赋的整型常量值应从左到右递增。④枚举类型的声明也可作为组声明若干整型符号常量的方法。也就是说,把每个要声明的符号常量作为…个枚举值,将各个枚举值合在一起定义成一个枚举类型。对于本题来说,在选项A)中,对4个枚举值没有赋常量值,所以它们从左到右与整数0,l,2,3相对应。因而选项A)为正确选项。
13.在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是( )。(C)
A. operator+有两个参数,operator*有两个参数
B. operator+有两个参数,operator*有一个参数
C. operator+有一个参数,operator*有两个参数
D. operator+有一个参数,operator*有一个参数
解析:此题考查的是运算符的重载。运算符可重载成员函数,也可重载为友元函数。当重载为成员函数时,运算符重载函数的形参个数要比运算符操作数的个数少一个;当重载为友元函数时,其参数个数应与操作数的个数相同。
14.已知一程序运行后执行的第一个
本文档预览:3600字符,共5912字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载