国家二级C++机试(选择题)模拟试卷403
选择题
1.结构化程序设计的基本原则不包括( )。(A)
A. 多态性
B. 自顶向下
C. 模块化
D. 逐步求精
解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。
2.支持子程序调用的数据结构是( )。(A)
A. 栈
B. 树
C. 队列
D. 二叉树
解析:栈是一种限定在一端进行插入与删除的线性表。在主函数调用子函数时,要首先保存主函数当前的状态,然后转去执行子函数,把子函数的运行结果返回到主函数调用子函数时的位置,主函数再接着往下执行,这种过程符合栈的特点。所以一般采用栈式存储方式。
3.下列选项中,正确的C++表达式是( )。(C)
A. counter++3
B. element3+
C. a+=b
D. ’a’=b
解析:在C++中由一个或多个操作数与操作符连接而成的有效运算式称为表达式。选项C是C++的合法表达式。
4.下列叙述中正确的是( )。(D)
A. 栈是一种先进先出的线性表
B. 队列是一种后进先出的线性表
C. 栈与队列都是非线性结构
D. 栈与队列都是线性结构
解析:栈是先进后出,队列是先进先出。栈和队列都是一种线性表,属于线性结构。
5.下列叙述中正确的是( )。(D)
A. 栈是一种先进先出的线性表
B. 队列是一种后进先出的线性表
C. 栈与队列都是非线性结构
D. 栈与队列都是线性结构
解析:栈是先进后出,队列是先进先出。栈和队列都是一种线性表,属于线性结构。
6.执行下列语句段后,输出字符“*”的个数是( )。
for(int i=50;i>1:一i)cout<<‘*’;(B)
A. 48
B. 49
C. 50
D. 51
解析:此题考查的是for循环语句。Fol循环中 i从50开始逐渐递减,直到i:1时退出,而此时没有机会执行到循环体,因此一共执行了49次循环体,所以最终输出的是49个字符‘*’。
7.字符串“a+b=12\n\t”的长度为( )。(C)
A. 12
B. 10
C. 8
D. 6
解析:题目给出的字符串含有7个字符,再加字符串的结束字符,所以共8个字符。
8.对下列二叉树
(C)
A. DYBEAFCZX
B. YDEBFZXCA
C. ABDYECFXZ
D. ABCDEFXYZ
解析:二叉树前序遍历的简单描述:若二叉树为空,则结束返回;否则:①访问根结点;②前序遍历左子树;③前序遍历右子树。可见,前序遍历二叉树的过程是一个递归的过程。根据题目中给出的二叉树的结构可知前序遍历的结果是ABDYECFXZ。
9.下面是重载为非成员函数的运算符函数原型,其中错误的是( )。(C)
A. Fraction operator+(Fraction,Fraction);
B. Fraction operator-(Fraction);
C. Fraction&operator=(Fraction&,Fraction);
D. Fraction&operator+=(Fraction&,Fraction);
解析:此题考查的是运算符重载。C++语言规定,“=”运算符只能作为成员函数重载。
10.下列有关内联函数的叙述中,正确的是( )。(C)
A. 内联函数在调用时发生控制转移
B. 内联函数必须通过关键字inline来定义
C. 内联函数是通过编译器来实现的
D. 内联函数函数体的最后一条语句必须是return语句
解析:此题考查的是内联函数的概念。在调用时,内联函数会像宏函数一样的展开,将调用表达式用内联函数体来替换所以它没有一般函数的参数压栈和和退栈操作,所以选项A错误:即使没有使用inline说明,编译器也会将在类的说明部分定义的函数认定为内联函数,所以选项B错误:内联函数只是比普通函数有更高的执行效率,所以选项D错误。
11.对数组名作函数的参数,下面描述正确的是( )。(B)
A. 数组名作函数的参数,调用时将实参数组复制给形参数组
B. 数组名作函数的参数,主调函数和被调函数共用一段存储单元
C. 数组名作参数时,形参定义的数组长度不能省略
D. 数组名作参数,不能改变主调函数中的数据
解析:数组作为参数实参传递的是数组的首地址。所以主调函数和被调函数共用一段存储单元。
12.在下列函数原型中,可以作为类AA构造函数的是( )。(D)
A. void AA(int);
B. int AA();
C. AA(int)const;
D. 从(int);
解析:此题考查的是构造函数的概念。构造函数是类的一个特殊成员函数,它与类同名,并且没有返回值。选项A、B不符合要求。选项C中函数AA,会更新对象的数据成员。
13.下列关于软件工程的描述中正确的是(C)
A. 软件工程只是解决软件项目的管理问题
B. 软件工程主要解决软件产品的生产率问题
C. 软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D. 软件工程只是解决软件开发中的技术问题
解析:软件工程是建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。软件工程主要思想是强调在软件开发过程中需要应用工程化原则。
14.已知类Myclass的定义如下
class MyClass{
public:
void functionl(MyClass&c){cout<<c.data;)
static void function2(MyClass&C){cout<<c.data;)
void function30{cout<<data;)
staric void function40{cout<<data;}
private:
int data;
);
其中有编译错误的函数是( )。(D)
A. functionl
B. function2
C. function3
D. function4
解析:funcyion4()函数作为类的静态成员函数,不能直接访问类中说明的非静态成员,即cout<<data在编译时会出错。
15.在满足实体完整性约束的条件下( )。(A)
A. 一个关系中应该有一个或多个候选关键字
B. 一个关系中只能有一个候选关键字
C. 一个关系中必须有多个候选关键字
D. 一个关系中可以没有候选
本文档预览:3600字符,共12230字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载