国家二级(C++)机试模拟试卷270
选择题
1.数据管理技术发展的三个阶段中,( )没有专门的软件对数据进行管理。
I.人工管理阶段 II.文件系统阶段 III.数据库阶段(A)
A. 仅I
B. 仅III
C. I和II
D. II和III
解析:数据管理技术发展的三个阶段中,只有人工管理阶段,没有操作系统,没有管理数据的软件,数据处理方式是批处理。在文件系统阶段,操作系统中已经有了专门数据管理软件,一般称为文件系统。在数据库系统阶段,出现了统一管理数据的专门软件系统,即数据库管理系统。
2.有如下程序:
#include
using namespace std;
class TestClass{
public:
~TestClass(){cout<<”BASE”;}
};
class TestClass1:public TestClass{
public:
~TestClass 1(){cout<<”DERIVED”;}
};
int main(){TestClass1x;return 0;}
执行后的输出结果是( )。(D)
A. BASE
B. DERIVED
C. BASEDERIVED
D. DERIVEDBASE
解析:程序中的TestClass1为TestClass的派生类,从程序中的main函数入手,定义了TestClass1对象x。调用析构函数的顺序,先执行派生类自己的析构函数,对派生类新增加的成员进行清理,然后调用子对象的析构函数,对子对象进行清理,最后调用基类的析构函数,对基类进行清理。这里派生类中析构函数输出DERIVED,基类析构函数输出BASE。
3.在下面的类定义中,横线处应填入的内容是( )。
class Fred
{
public:
void print(){cout<<data<<end 1;}
void setData(double d){data=d;}
static int count;
private:
double data;
};
count=0; //静态数据成员的定义(C )
A. int
B. static int
C. int Fred::
D. static int Fred::
解析:此题考查的是静态数据成员的定义。题目中count数据成员要定义成静态的,其初始化的格式为:类型类名::静态数据成员=常量。
4.若有以下程序:
#include
using namespace std;
class TestClass
{
public:
void whoO{cout<<“TestClass”<<end1;}
};
class TestClass 1:public TestClass
{
public:
void who(){cout<<“TestClass 1”<<endl;}
};
int main()
{
TestClass*p;
TestClass1 objl;
p=&obj1;
p->who();
return 0:
}
则该程序运行后的输出结果是( )。(B)
A. TestClass 1
B. TestClass
C. 0
D. 无输出
解析:程序中的Test Clasl为TestClass的派生类,主函数。main中定义TestClass对象*p,TestClassl对象obj1,然后p引用obj 1,执行p->who()则是调用基类中的who函数,输出TestClass。
5.下列关于C++流的描述中,错误的是( )。(A)
A. cout>>′A′表达式可输出字符A
B. eof()函数可以检测是否到达文件尾
C. 对磁盘文件进行流操作时,必须包含头文件fstream
D. 以ios_base::out模式打开的文件不存在时,将自动建立一个新文件
解析:本题考查C++流,想要输出字符\\
6.如果进栈序列为A,B,C,D,则可能的出栈序列是( )。(B )
A. C,A,D,B
B. B,D,C,A
C. C,D,A,B
D. 任意顺序
解析:栈的操作原则为后进先出。选项B)中出栈顺序可按“A进,B进,B出,c进,D进,D出,C出,A出”实现。
7.下列关于运算符重载的叙述中,错误的是( )。(B)
A. 有的运算符可以作为非成员函数重载
B. 所有的运算符都可以通过重载而被赋予新的含义
C. 不得为重载的运算符函数的参数设置默认值
D. 有的运算符只能作为成员函数重载
解析:重载运算符的规则如下:①C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载;②C++不能重载的运算符只有5个;③重载不能改变运算符运算对象的个数;④重载不能改变运算符的优先级和结合性;⑤重载运算符的函数不能有默认的参数;⑥重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是C++的标准类型。所以答案为B。
8.有以下程序,在横线应添加( )。
#include
using namespace std;
class TestClass
{
public:
TestClass(int n){number=n;}
//拷贝构造函数
~TestClass(){}
private:
intnumber;
};
TestClass fun(TestClass p)
{
TestClass temp(p);
retum temp;
}
int main()
{
TestClass obj1(10),obj2(0);
TestClass obj3(obj1);
obj2=fun(obj3);
return 0:
}
A
解析:拷贝构造函数也是构造函数,但它只有一个参数,这个参数是本类的对象,
本文档预览:3600字符,共18675字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载