国家二级C++机试(选择题)模拟试卷210
选择题
1.下列叙述中正确的是(D)
A. 循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B. 在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C. 在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D. 循环队列中元素的个数是由队头指针和队尾指针共同决定
解析:循环队列中元素的个数是由队头指针和队尾指针共同决定的,元素的动态变化也是通过队头指针和队尾指针来反映的。
2.下面是关于派生类声明的开始部分,其中正确的是( )。(D)
A. class virtual B:public A
B. virtual class B:public A
C. class B:public A virtual
D. class B:virtual public A
解析:声明派生类的一般形式为:class派生类名:[继承方式]基类名。其中继承方式包括:public,private,protected,而virtual为C++中的关键字。虚函数的使用方法是在基类用virtual声明成员函数为虚函数。
3.下列选项中不属于结构化程序设计原则的是( )。(A)
A. 可封装
B. 自顶向下
C. 模块化
D. 逐步求精
解析:结构化设计方法的主要原则可以概括为自顶向下、逐步求精、模块化、限制使用goto语句。
4.下列选项中不属于面向对象程序设计特征的是( )。(C)
A. 继承性
B. 多态性
C. 类比性
D. 封装性
解析:面向对象程序设计的三个主要特征是:封装性、继承性和多态性。封装性即只需知道数据的取值范围和可以对该数据施加的操作,而无需知道数据的具体结构以及实现操作的算法。继承性是指使用已有的类定义作为基础建立新类的定义技术。对象根据所接受的消息而做出动作,同样的消息被不同的对象接受时可导致完全不同的行动,该现象称为多态性。
5.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是( )。(A)
A. 学生成绩管理系统
B. C语言编译程序
C. UNIX操作系统
D. 数据库管理系统
解析:学生成绩管理系统为应用软件。
6.若AA为一个类,a为该类的私有整型数据成员,getA()为该类的一个非静态公有成员函数,功能是返回a的值。如果x为该类的一个对象,要在类外访问x对象中a的值,正确的访问格式为( )。(B)
A. AA.getA()
B. x.getA()
C. x.a
D. AA∷a
解析:要在类外访问x对象中a的值,必须调用类的非静态公有成员函数getA()。
7.从工程管理角度看,软件设计一般分为两步完成,它们是( )。(A)
A. 概要设计与详细设计
B. 数据设计与接口设计
C. 软件结构设计与数据设计
D. 过程设计与数据设计
解析:软件设计是开发阶段最重要的步骤。从工程管理的角度来看可分为两步:概要设计和详细设计。概要设计是将软件需求转化为软件体系结构,确定系统级接口、全局数据结构或数据库模式;详细设计是指确立每个模块的实现算法和局部数据结构,用适应方法表示算法和数据结构的细节。从技术观点来看,软件设计包括软件结构设计(定义软件系统各主要部件之间的关系)、数据设计(将分析时创建的模型转化为数据结构)、接口设计(描述软件内部、软件与协作系统之间以及软件与人之间如何通信)、过程设计(把系统结构部件转换成软件的过程)四个步骤。
8.构成计算机软件的是(D)
A. 源代码
B. 程序和数据
C. 程序和文档
D. 程序、数据及相关文档
解析:软件由两部分组成:一是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档。
9.用树形结构表示实体之间联系的模型是( )。(C)
A. 关系模型
B. 网状模型
C. 层次模型
D. 以上三个都是
解析:层次模型的基本结构是树形结构,这种结构方式在现实世界中很普遍,它们自顶向下、层次分明。
10.有三个关系R、S和T如下:
(D)
A. 笛卡尔积
B. 交
C. 并
D. 自然连接
解析:在实际应用中,最常用的连接是一个叫自然连接的特例。它满足下面的条件:两关系间有公共域;通过公共域的相等值进行连接。通过观察三个关系R,S,T的结果可知关系T是由关系R和S进行自然连接得到的。
11.有如下程序:
#include
using narnespace std;
class Sample{
public:
Sample(){}
~Sample(){cout<<‘*’;}
};
int main(){
Sample temp[2],*pTemp[2];
return 0;
}
运行这个程序输出星号*的个数为( )。(B)
A. 1
B. 2
C. 3
D. 4
解析:本题考查构造函数和析构函数,题中定义了对象数组,那么析构时就析构两次,输出两个*。答案为B。
12.有如下程序:
#inc1ude <iostream>
using namespace std;
int main() {
int f,f1=0,f2=1;
for (int i=3;i<=6;i++){
f=f1+f2;
f1=f2;f2=f;
}
cout<<f<<end1;
return 0;
}
运行时的输出结果是( )。(C)
A. 2
B. 3
C. 5
D. 8
解析:在主函数中for循环语句执行4次,第一次循环结束时,变量f的值等于l,f1的值等于1,f2的值等于1:第二次循环结束时,变量f的值等于2,fl的值等于1,f2的值等于2;第三次循环结束时,变量f的值等于3,f1的值等于2,f2的值等于3;第四次循环结束时,变量f的值等于5,f1的值等于3,f2的值等于5;结束循环。
13.已知函数f的原型是void f(int*a,long&b);,变量v1、v2的定义是:
int v1:loong v2;
下列调用语句中正确的是( )。(D)
A. f(v1,&v2);
B. f(v1,v2);
C. f(&v1,&v2);
D. f(&v1,V2);
解析:此题考查的是函数的调用。因为变量的定义是intv1:longv2,而函数f()的第一个参数是指针,第二个参数是引用,所以选项D为正确引用。
14.
本文档预览:3600字符,共6145字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载