国家二级(C++)机试模拟试卷525
选择题
1.结构化程序设计的基本原则不包括( )。(A)
A. 多态性
B. 自顶向下
C. 模块化
D. 逐步求精
解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使川用goto语句,所以选择A。
2.下面关于构造函数和析构函数的描述,错误的是( )。(D)
A. 析构函数中调用虚函数采用静态联编
B. 对虚析构函数的调用可以采用动态联编
C. 当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数
D. 构造函数可以声明为虚函数
解析:构造函数的主要作用是对数据成员初始化。构造函数不能声明为虚函数,这是因为在执行构造函数时类对象还未完成建立过程,当然谈不上函数与类对象的关联。
3.有如下函数模板:
template
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.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是( )。(B)
A. 12345ABCDE
B. EDCBA54321
C. ABCDE12345
D. 54321EDCBA
解析:栈是先进后出的原则组织数据,所以入栈最早的最后出栈,所以选择B。
5.下列队列的描述中,正确的是( )。(D)
A. 队列属于非线性表
B. 队列在队尾删除数据
C. 队列按“先进后出”进行数据操作
D. 队列按“先进先出”进行数据操作
解析:队列是只允许在一端删除,在另一端插入的顺序表,允许删除的一端叫做队头,允许插入的一端叫做队尾。队列的操作数是依据先进先出的原则进行的。因此队列亦称作先进先出的线性表,或后进后出的线性表。
6.使用地址作为实参传给形参,下列说法正确的是( )。(D)
A. 实参是形参的备份
B. 实参与形参无联系
C. 形参是实参的备份
D. 参与形参是同一对象
解析:地址作为实参,表示实参与形参代表同一个对象。如果实参足数值,形参也是普通变量,此时形参是实参的备份。
7.阅读下面程序:
#include
fun(int a,int b)
{
int c;
c=a+b;
retum C;
}
void main()
{
int X=6,Y=7,z=8,r;
r=run((x一,y++,x+y),Z一);
cout<<r<<endl:
}
则该程序的输出结果是( )。(C )
A. 11
B. 20
C. 21
D. 3 1
解析:由主函数入手,定义变量x、y、z,然后调用函数fun,其中的参数为(x一,y++,x+y)的计算结果和z一的计算结果,所以调用fun(13,8)计算结果为21。
8.下列数据结构中,属于非线性结构的是( )。(C)
A. 循环队列
B. 带链队列
C. 二叉树
D. 带链栈
解析:树是简单的非线性结构,所以二叉树作为树的一种也是一种非线性结构。
9.关于虚函数,以下说法正确的是( )。(D)
A. 若在重定义虚函数时使用了virtual,则该重定义函数还是虚函数
B. 虚函数不能声明为友元
C. 子类必须重定义父类的虚函数
D. 虚函数不能是static的
解析:在C++中,虚函数可以是友元函数,但不能是静态成员。虚函数的重定义函数,无论是否使用virtual关键字,仍然是虚函数。所以答案选择D)。
10.下列选项中,不属于数据库管理的是( )。(D)
A. 数据库的建立
B. 数据库的调整
C. 数据库的监控
D. 数据库的校对
解析:数据库管理一般包括:数据库的建立、数据库的调整、数据库的重组、数据库的安全性控制与完整性控制、数据库的故障恢复和数据库的监控。
11.下列语句都是程序运行时的第1条输出语句,其中一条语句的输出效果与其他三条语句不同,该语句是( )。(D)
A. cout<<internal<<12345;
B. cout<<left<<12345;
C. cout<<right<<12345;
D. cout<<setw(6)<<12345;
解析:本题考查控制输出格式,A、B、C选项都会输出“12345”,只有D选项输出“12345”,所以本题答案为D。
12.下面描述中错误的是( )。(A)
A. 系统总体结构图支持软件系统的详细设计
B. 软件设计是将软件需求转换为软件表示的过程
C. 数据结构与数据库设计是软件设计的任务之一
D. PAD图是软件详细设计的表示工具
解析:详细设计的任务是为软件结构图中而非总体结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节,所以A错误。
13.以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误原因是( )。
#include
void main()
{int*p,*q,a,b;
p=&a;
cout<<\\(B)
A. *p表示的是指针变量p的地址
B. p表示的是变量a的地址,而不是变量a的值
C. *p表示的是指针变量P的值
D. *p只能用来说明P是一个指针变量
解析:p表示的是变量a的地址,定义后*p表示的是变量a的值。
14.建立一个类对象时,系统自动调用( )。(D)
A. 析构函数
B. 友元函数
C. 静态函数
D. 构造函数
解析:当建立一个类对象时,系统会自动调用类的对应的构造函数来构造对象,本题答案为D。
15.下列选项中不能用于区分重载函数的是( )。(C)
A. 形参的个数
B. 形参的类型
C. 函数的返回值类型
D. 常函数关键字const
解析:出现在相同作用域中的两个函数,如果具有相同的名字而形参表
本文档预览:3600字符,共16100字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载