国家二级C++机试(选择题)模拟试卷505
选择题
1.结构化程序设计的3种结构是( )。(B)
A. 顺序结构,分支结构,跳转结构
B. 顺序结构,选择结构,循环结构
C. 分支结构,选择结构,循环结构
D. 分支结构,跳转结构,循环结构
解析:程序设计语言仅仅使用顺序、选择和重复(循环)三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。遵循程序结构化的设计原则,按结构化程序设计方法设计出的程序易于理解、使用和维护;可以提高编程工作的效率,降低软件的开发成本。
2.下列叙述中正确的是(B)
A. 算法的效率只与问题的规模有关,而与数据的存储结构无关
B. 算法的时间复杂度是指执行算法所需要的计算工作量
C. 数据的逻辑结构与存储结构是一一对应的
D. 算法的时间复杂度与空间复杂度一定相关
解析:算法的时间复杂度是指执行算法所需要的计算工作量。算法的工作量用算法所执行的基本运算的次数来度量,而算法所执行的基本运算次数是问题规模的函数;算法的空间复杂度一般是指执行这个算法所需要的内存空间。算法的时间夏杂度与空间复杂度并不相关。数据的逻辑结构就是数据元素之间的逻辑关系,它是从逻辑上描述数据元素之间的关系,是独立于计算机的:数据的存储结构是研究数据元素和数据元素之间的关系如何在计算机中表示,它们并非一一对应。算法的执行效率不仅与问题的规模有关,还与数据的存储结构有关。
3.下列关于栈的描述中错误的是( )。(B)
A. 栈是先进后出的线性表
B. 栈只能顺序存储
C. 栈具有记忆作用
D. 对栈的插入与删除操作中,不需要改变栈底指针
解析:栈是限定在一端进行插入与删除的线性表。栈顶(top):插入数据(即入栈)的一端:栈底(bottom):不能入栈也不能出栈的一端。栈存储数据的原则:“先进后出”或“后进先出”。栈的特性是具有记忆作用。
4.某系统总体结构图如下图所示:
(C)
A. 7
B. 6
C. 3
D. 2
解析:这个系统总体结构图是一棵树结构,在树结构中,根结点在第1层,同一层上所有子结点都在下一层,由系统总体结构图可知,这棵树共3层。在树结构中,树的最大层次称为树的深度。所以这棵树的深度为3。
5.在软件设计中不使用的工具是( )。(C)
A. 系统结构图
B. PAD图
C. 数据流图(DFD图)
D. 程序流程图
解析:在软件开发的各个阶段经常会使用到一些图形工具,如在需求分析阶段使用数据流图(DFD图),在概要设计阶段使用系统结构图,在详细设计阶段使用程序流程图、N-S图或者PAD图等。
6.在E-R图中,用来表示实体的图形是( )。(A)
A. 矩形
B. 椭圆形
C. 菱形
D. 三角形
解析:在E-R图中,用矩形表示实体集,在矩形内写上该实体集的名字;用椭圆形表示属性;用菱形(内部写上联系名)表示联系。
7.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。(B)
A. 一对一
B. 一对多
C. 多对一
D. 多对多
解析:两个实体集间的联系可以有下面几种:一对一的联系、一对多或多对一的联系和多对多的联系。由于一个宿舍可以住多个学生,所以它们的联系是一对多联系。
8.若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是( )。(B)
A. 一对一
B. 一对多
C. 多对一
D. 多对多
解析:由于B和C有一一对应的联系,而A和B只间有一对多的联系,则通过关系之间的传递,则A和C之间也是一对多的联系。
9.下列关于C++函数的叙述中,正确的是( )。(C)
A. 每个函数至少要具有一个参数
B. 每个函数都必须返回一个值
C. 函数在被调用之前必须先声明
D. 函数不能自己调用自己
解析:此题考查的是函数的性质。当调用无参函数时主函数并不将数据传送给被调函数,且可以带回或不带回函数值。函数的递归调用就是直接或间接的调用自己。
10.有如下程序:
#include
using namespace std;
class Instrument{
public:
virtual void Display()=0;
};
class Piano:public Instrument{
public:
void Display(){/*函数体程序略*/}
};
int main(){
Instrument s;
Instrument*p=0;
∥…;
return 0;
}
下列叙述中正确的是( )。(B)
A. 语句“Insturment*p=0;”编译时出错
B. 语句“Instrument s;”编译时出错
C. 类Piano中的Display函数不是虚函数
D. 类Instrument是一个虚基类
解析:由于函数Display()是一个纯虚函数,所以类Instrument是抽象类,而抽象类是不能定义对象的,因而选项B为正确选项。
11.有如下程序:
#include
using namespace std;
clas.s Complex
{
double re.im;
public:
Complex(double r,double i):re(r),im(i){}
double real()const{。return re;)
double image()const{return im;}
Complex&operator+=(Complex a)
{
re+=a.re:
im+=a.im;
retum*this:
}
};
ostream&operator<<(ostream&S,const Complex&z)
{
return s<<‘(’<<z.real()<<‘,’<<z.image()<<‘)’;
)
int main()
{
Complex x(1,一2),y(2,3);
cout<<(x+=y)<<endl;
retum 0:<
本文档预览:3600字符,共9588字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载