国家二级C++机试(选择题)模拟试卷194
选择题
1.一个栈的初始状态为空。现将元素1,2,3,A,B,C依次入栈,然后再依次出栈,则元素出栈的顺序是( )。(C)
A. 1,2,3,A,B,C
B. C,B,A,1,2,3
C. C,B,A,3,2,1
D. 1,2,3,C,B,A
解析:栈是按照“先进后出”或“后进先出”的原则组织数据的。所以出栈顺序是CBA321。
2.下列有关内联函数的叙述中,正确的是( )。(C)
A. 内联函数在调用时发生控制转移
B. 内联函数必须通过关键字inline来定义
C. 内联函数是通过编译器来实现的
D. 内联函数函数体的最后一条语句必须是return语句
解析:此题考查的是内联函数的概念。在调用时,内联函数会像宏函数一样的展开,将调用表达式用内联函数体来替换,所以它没有一般函数的参数压栈和退栈操作,所以选项A错误;即使没有使用inline说明,编译器也会将在类的说明部分定义的函数认定为内联函数,所以选项B错误;内联函数只是比普通函数有更高的执行效率。
3.在软件开发中,需求分析阶段产生的主要文档是( )。(D)
A. 软件集成测试计划
B. 软件详细设计说明书
C. 用户手册
D. 软件需求规格说明书
解析:在软件开发过程中,需求分析阶段产生的主要文档是软件需求规格说明书。
4.下列描述中正确的是( )。(A)
A. 软件测试的主要目的是发现程序中的错误
B. 软件测试的主要目的是确定程序中错误的位置
C. 为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作
D. 软件测试是证明软件没有错误
解析:软件测试是为了发现错误而执行程序的过程。一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。为了达到好的测试效果,应该由独立的第三方来构造测试,程序员应尽量避免检查自己的程序。
5.有如下程序:
#include
using namespace std;
class Name{
char name[20];
public:
Name(){
strcpy(name,\\(D)
A. 0
B. 1
C. 2
D. 3
解析:类Name有两个构造函数,在默认构造函数中,给字符数组。Flame赋窄值,并输出一个?;在带有字符指针的构造函数中,把字符指针fname所指的字符串赋给字符数组name,并输出一个?。所以在主函数中,定义了Name的三个对象,Flame[0]、name[1]、name[2],在创建这三个对象时,会调用构造带参数的函数对前两个对象赋值,调用默认的构造函数把name[2]的值赋为空值。这时会输出j个“?”符号。
6.下列描述中错误的是( )。(A)
A. 在数据库系统中,数据的物理结构必须与逻辑结构一致
B. 数据库技术的根本目标是要解决数据的共享问题
C. 数据库设计是指在已有数据库管理系统的基础上建立数据库
D. 数据库系统需要操作系统的支持
解析:在数据库系统中,物理独立性是指数据的物理结构(包括存储结构、存取方式等)的改变,如存储设备的更换、物理存储的更换、存取方式改变等都不影响数据库的逻辑结构,从而不致引起应用程序的变化。
7.有如下两个类定义:
class XX{
private:
double x1;
protected:
double x2;
public:
double x3;
};
class YY:protected XX{
private:
double yl;
protected:
double y2;
public:
double y3;
};
在类YY中保护成员变量的个数是( )。(C)
A. 1
B. 2
C. 3
D. 4
解析:本题考查保护继承中派生类对基类的访问属性,在受保护继承中,基类的公用成员和保护成员在派生类中成了保护成员,所以基类的成员x2、x3变成了保护成员,派生类中的y2也是保护成员所以共有3个保护成员。本题答案为C。
8.有如下程序:
#include
using namespace std;
class Base
{
private:
void funl 0 const{cout<<“funl”;)
protected:
void fun2()const{cout<<“fun2”;)
public:
void fun3()const{cout<<“fun3”;)
};
class Derived:protected Base
{
public:
void fun40 const{cout<<“fun4”;)
};
int main()
{
Derived obj;
obj.funl(); ∥①
obj.fun2(); ∥②
obj.fun3(); ∥③
obj.fun4(); ∥④
return ();
)
其中有语法错误的语句是( )。(B)
A. ①②③④
B. ①②③
C. ②③④
D. ①④
解析:此题考查的是保护继承。因为Derived以protected方式继承了Base类,所以父类Base中的公有成员和保护成员均成了Derived类的保护成员,而Base类的私有成员Derived类不可访问。所以,主函数中通过Derived类的对象只能够访问到Derived类的公有成员。
9.程序调试的任务是( )。(D)
A. 设计测试用例
B. 验证程序的正确性
C. 发现程序中的错误
D. 诊断和改正程序中的错误
解析:程序调试的任务是诊断和改正程序中的错误。
10.有如下程序段:
int i=5;
while(int i=0){cout<<’*’;i–;}
运行时输出“*”的个数是( )。(A)
A. 0+
B. 1
C. 5
D. 无穷
解析:因为while循环中,因为i的值等于0,所以while循环体一次也不执行。因而运行时输出“*”,的个数是0。
11.有如下程序:
#include
using namespace std;
class B
本文档预览:3600字符,共7718字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载