国家二级(C++)机试模拟试卷267
选择题
1.若有如下程序段:
#include
using namespace std;
int main()
{
‘char*p=\\(A)
A. a
B. b
C. c
D. d
解析:字符指针p指向“abcdefgh”字符串,语句“r=p;”是r指向p指向的字符串,而*r则是指向字符串中的第一个字符。即a。
2.if语句的语法格式可描述为:
格式1:if()
或
格式2:if()
else
关于上面的语法格式,下列表述中错误的是( )。(A)
A. 部分可以是一个if语句,例如if(if(a==0)…)…
B. 部分可以是一个if语句,例如if(…)if(…)…
C. 如果在前加上逻辑非运算符!并交换和的位置,语句功能不变
D. 部分可以是一个循环语句,例如if(…)while(…)…
解析:本题考查if语句,if语句的条件部分不能嵌套if语句,所以A选项错误;B选项就是if语句嵌套;c选项其实就是将判断条件颠倒,然后执行语句也颠倒,所以效果一样;D选项也正确。
3.以下程序的输出结果是( )。
main()
{ int a=4,b=5,c=0,d;
d=!a&&!b||!c;
cout<<d<<endl;
}(A)
A. l
B. 0
C. 非0的数
D. -1
解析:本题考查逻辑运算,只要考生掌握了逻辑运算的优先级就可以正确得到答案为选项A。或运算的优先级最高,&&和!!的优先级相同,按照从左到右的顺序计算。
4.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是( )。(B)
A. 12345ABCDE
B. EDCBA54321
C. ABCDEl2345
D. 54321EDCBA
解析:栈是先进后出的原则组织数据,所以人栈最早的最后出栈,所以选择B。
5.下列选项中,不属于“软件危机”产生的主要原因的是( )。(A)
A. 计算机硬件发展速度缓慢致使软件开发受限
B. 软件开发过程中很难进行质量管理和进度控制
C. 随着问题的复杂度增加,软件开发效率下降
D. 对软件需求分析的重要性认识不够
解析:软件危机产生的主要原因是选项B、C、D,不包括选项A。
6.在数据管理技术发展的三个阶段中,数据共享最好的是( )。(C)
A. 人工管理阶段
B. 文件系统阶段
C. 数据库系统阶段
D. 三个阶段相同
解析:数据管理发展至今已经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。其中最后一个阶段结构简单,使用方便逻辑性强物理性少,在各方面的表现都最好,一直占据数据库领域的主导地位,所以选择C。
7.关于运算符重载,下列表述中正确的是( )。(C)
A. C++已有的任何运算符都可以重载
B. 运算符函数的返回类型不能声明为基本数据类型
C. 在类型转换符函数的定义中不需要声明返回类型
D. 可以通过运算符重载来创建C++中原来没有的运算符
解析:重载运算符的规则如下:①c++不允许用户自己定义新的运算符,只能对已有的c++运算符进行重载;②C++不能重载的运算符只有5个;③重载不能改变运算符运算对象的个数;④重载不能改变运算符的优先级和结合性;⑤重载运算符的函数不能有默认的参数;⑥重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是C++的标准类型。故本题答案为C。
8.有如下程序:
#include
using namespace std;
class Base{
protected:
Base(){cout<<’Base’;)
Base(char c){cout<<c;}
};
class Derived:public Base{
public:
Derived(char c){cout<<c;}
};
int main(){
Derived d(’Derived’);
return 0:
}
执行这个程序屏幕上将显示输出( )。(C)
A. Derived
B. DerivedBase
C. BaseDerived
D. DerivedDerived
解析:派生类Derived由基类Base公有派生,在派生类构造函数声明时系统会自动调用基类的缺省构造函数。调用Derived d(’Derived’);后,执行类Derived构造函数的Derived(char c),系统自动调用基类的缺省构造函数Base(),输出字母Base:再执行派生类的构造函数Derived(char c),输出字母Derived。
9.有如下程序:
#include
using namespace std;
class Base{
public:
void fun(){cout<<\\(B)
A. Base.fun();
B. Base::fun();
C. Base->fun();
D. fun();
解析:本题考查公用继承对基类成员的访问属性。在公用继承中,基类的公用成员和保护成员在派生类中保持原有的访问属性,其私有成员仍为基类私有。本题中想要输出Base::fun,则必须调用基类的公用成员函数fun,所以使用Base::fun();来调用基类的成员函数fun。
10.有如下程序:
#include
using namespace std;
class MyClass{
public:
MyClass(){cout<<’A’;}
MyClass(char c){cout<<c;}
~MyClass(){cout<<’B’;}
};
int main(){
MyClass p1,*p2;
p2=new MyClass(’X’);
delete p2;
return 0;
}
执行这个程序的输出结果是( )。(D)
A. ABX
B. ABXB
C. AXB
D. AXBB
解析:构造函数和析构函数的调用顺序为先构造的后析构,后构造的先析构。所以本题答案为D。
11.某二叉树有5个度为2
本文档预览:3600字符,共19178字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载