国家二级C++机试(选择题)模拟试卷226
选择题
1.在软件开发中,需求分析阶段产生的主要文档是( )。(D)
A. 数据字典
B. 详细设计说明书
C. 数据流图说明书
D. 软件需求规格说明书
解析:需求分析的最终结果是生成软件需求规格说明书,可以为用户、分析人员和设计人员之间的交流提供方便。
2.有如下程序:
#include<iostream>
using namespace std;
void function2(int n);
void functionl(int n){
if(n<=0)return;
function2(n一2);
}
void function2(int n){
if(n<=0)return;
functionl(n—1);
)
int main(){
fimctionl(5);
return 0:
)
下列关于程序运行情况的描述中,正确的是( )。(D)
A. functionl运行1次,function2运行2次
B. functionl运行2次,function2运行1次
C. functionl运行2次,function2运行3次
D. functionl运行2次,function2运行2次
解析:在主函数中执行functionl(5)时,会调用function2(3),function2(3)又会调用functionl(2),functionl(2)又会调用function2(0),到此相互调用结束。所以functionl()和function2()各执行了2次。
3.有如下程序:
#include
using namespace std;
class A{
public:
virtual void funcl( ){cout<<”A1”;}
void func2(){cout<<”A2”;}
};
class B:public A{
public:
void funcl( ){cout<<”B1”;}
void func2(){cout<<”B2”;}
};
int main(){
A*P=new B:
P一>funcl();
P一>func2();
delete p;
return 0;
}
执行这个程序的输出结果是( )。(C)
A. B182
B. A1A2
C. B1A2
D. AlB2
解析:本题考查虚函数。虚函数指在基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数。题中定义了一个派生类对象B,并使用类A的对象指针指向B,由于基类A中的funcl为虚函数,所以会执行派生类的funcl,输出Bl,而基类中的func2不是虚函数,所以p->func2()会执行基类的func2,输出A2。故答案为C。
4.下列选项中不属于结构化程序设计方法的是( )。(D)
A. 自顶向下
B. 逐步求精
C. 模块化
D. 可复用
解析:结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化,限制使用goto语句。自顶向下是指程序设计时应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。逐步求精是指对复杂问题应设计一些子目标过渡,逐步细化。模块化是把程序要解决的总目标先分解成分目标,再进一步分解成具体的小目标,把每个小目标称为一个模块。可复用性是指软件元素不加修改成稍加修改便可在不同的软件开发过程中重复使用的性质。软件可复用性是软件工程追求的目标之一,是提高软件生产效率的最主要方法,不属于结构化程序设计方法。
5.设循环队列的存储空间为Q(1:m),初始状态为front=rear=m。经过一系列正常的操作后, front=1,rear=m。为了在该队列中寻找值最大的元素,在最坏情况下需要的比较次数为(C)
A. m
B. m-1
C. m-2
D. 1
解析:经过一系列正常的操作后,front=1,rear=m,那么最坏情况下需要的比较次数为rear-front-1=m-1-1=m-2。
6.下列关于类定义的说法中,正确的是( )。(A)
A. 类定义中包括数据成员和函数成员的声明
B. 类成员的缺省访问权限是保护的
C. 数据成员必须被声明为私有的
D. 成员函数只能在类体外进行定义
解析:此题考查的是类的定义。类中缺省的访问权限是私有的,所以选项B错误;类的数据成员和成员函数的访问控制权限均可被声明为公有、私有和保护中的一种,所以选项c错误:成员函数的实现可以在类体内定义,也可以在类体外定义,所以选项D错误。
7.下面叙述错误的是( )。(D)
A. 对基类成员的访问能力在private派生类中和public派生类中是相同的
B. 基类的private成员在public派生类中不可访问
C. 基类中的public成员在protected派生类中是protected的
D. 基类中的public成员在protected派生类中仍然是public的
解析:基类的公有成员和保护成员在保护派生类中都成了保护成员,其私有成员仍为基类私有。
8.以下程序的执行结果是( )。
#include<iostream.h>
#include<iomanip.h>
void fun(int n)
{
if(n!=0)
{
fun(n-1);
for(int i=1;i<=n;i++)
cout<<setw(3)<<i;
cout<<endl;
}
}
void main()
{
fun(3);(B)
A. 0
0 1
0 1 2
B. 1
1 2
1 2 3
C. 1
2 2
3 3 3
D. 1
2
3
解析:首先由程序中的主函数main入手,调用fun函数,参数为3。fun(n)函数在其内部,当n不等于0时,递归调用fun(n-1)。当参数为3时,fun(3)调用fun(2)…,然后利用for循环输出i值,当n=1时,只输出1,输出回车后,就跳入fun(2),输出1,2,最后输出是1,2,3。
9.有两个关系R和T如下:
(A)
A. 选择
B. 投影
C. 交
D. 并
解析:由关系R和T所包含的元素可知,关系R经过选择操作就可以
本文档预览:3600字符,共9522字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载