试卷详情
-
全国计算机等级考试二级C++真题2012年9月
-
[单项选择]下列关于函数重载的叙述中,错误的是
A. 重载函数的参数个数可以不同
B. 重载函数的参数类型可以不同
C. 重载函数的返回值类型必须不同
D. 重载函数的参数个数或参数类型必须有所不同
-
[单项选择]下面不属于软件设计阶段任务的是
A. 数据库设计
B. 算法设计
C. 软件总体设计
D. 制定软件确认测试计划
-
[单项选择]有如下程序:
#include
using namespace std;
class B{
public;
virtual void f( ) {cout<<"B";}
void g( ){cout<<"B";}
}
class D;public B {
public;
void f( ){cout<<"D";}
void g( ){coun<<"D";}
}
void h(B*p){p->f( );p->g( );}
int main( ){
D obj;
h(&obj);
return 0;
}
运行这个程序的输出结果是:
A. DD
B. BB
C. BD
D. DB
-
[单项选择]关键字unsigned不能修饰的类型是
A. char
B. int
C. float
D. long int
-
[填空题]若下列程序的输出结果是20,请将横线处缺失部分补充完整。
#include
using namespace std;
class MyClass{
pubic;
MyClass(int x=)10:value(x){}
void SetValue(int x){value=x;cout<
-
[单项选择]下列对一维数组a的定义中,语法正确的是
A. int a(10)
B. int n=7,a[n];
C. int n;cin>>n;int a[n];
D. const int size=10;int a[size];
-
[单项选择]下列关于运算符重载的叙述中,正确的是
A. 通过运算符重载机制可以为C++语言扩充新的运算符
B. 运算符重载的作用是使已有的运算符作用于类的对象
C. 重载运算符的操作数类型可以全部为基本类型
D. 所有运算符都可以重载
-
[单项选择]下列关于输入输出流的叙述中,正确的是
A. 一个文件流可以与一个数据文件相联系
B. cin是专门从键盘输入数据的输入流类
C. 流运算符<<用来从输入流中读取数据
D. 宽度设置的效果永久有效
-
[单项选择]下面属于黑盒测试方法的是
A. 逻辑覆盖
B. 语句覆盖
C. 路径覆盖
D. 边界值分析
-
[填空题]有些运算符既可以作为成员函数重载,也可以作为非成员函数重载。若在一个重载的运算符函数的定义中成功地使用了this指针,说明它是作为【13】重载的。
-
[单项选择]有如下类定义
class Test{
char a; const char b;
public:Test(char c){a=c;b=c;} //第1行
void f(char a)const{this->a=a;} //第2行
void g(char b){this->b=b;} //第3行
char h( )const{return a;} //第4行
};
编译时没有错误的行是
A. 第1行
B. 第2行
C. 第3行
D. 第4行
-
[填空题]若有定义语句“int x=10;”,则表达式“x<=1020:30”的值为【6】。
-
[填空题]有如下程序:
#include
using namespace std;
class Point{
double x,y;
public;
Point(double xx=0.0,double yy=0.0):x(xx),y(yy){}
double getX( )const{return x;}
double getY( )const{return y;}
void show( )const{cout<<’(’<
-
[填空题]设栈的存储空间为S(1:40),初始状态为bottom=0,top=0,现经过一系列入栈与出栈运算后,top=20,则当前栈中有【2】个元素。
-
[单项选择]下列关于模板的叙述中,错误的是
A. 调用模板函数时,有时可以省略模板实参
B. 函数模板的每个实例就是一个函数定义
C. 类模板的每个实例就是一个类定义
D. 类模板的实例是一个类对象
-
[填空题]数据独立性分为逻辑独立性和物理独立性。当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序不必修改,称为【3】 。
-
[单项选择]公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则实体部门和职员间的联系是
A. m:1联系
B. 1:m联系
C. 1:1联系
D. m:n联系
-
[填空题]关系数据库中能实现的专门关系运算包括【4】、连接和投影。
-
[单项选择]下列关于派生类的叙述中,错误的是
A. 派生类至少要有一个基类
B. 派生类中包括了从基类继承的成员
C. 一个派生类可以作为另一个派生类的基类
D. 基类成员被派生类继承以后访问权限保持不变
-
[单项选择]假设函数fun已经定义,其原型为”void fun(int a,int b=7,char *p=”**”);”,下列函数调用中错误的是
A. fun(5)
B. fun(5,8)
C. fun(6,”##”)
D. fun(0,0.”==”)
-
[单项选择]有如下类定义:
class MyClass{
int b;char a;double c;
public:
MyClass( ):c(0.0),b(0),a(','){}
};
创建这个类的对象时,数据成员的初始化顺序是
A. a,b,c
B. c,b,a
C. b,a,c
D. c,a,b
-
[单项选择]有如下程序:
#include
using namespace std;
class A{
public:
A( ){cout<,'A';}
~A( ){cout<<'C';}
};
class B:public A{
public:
B( ){cout<<'G';}
~B( ){cout<<'T';}
};
int main( ){
B obj;
return 0;
}
运行这个程序的输出结果是
A. GATC
B. AGTC
C. GACT
D. AGCT
-
[单项选择]数据字典(DD)所定义的对象都包含于
A. 程序流程图
B. 数据流图(DFD图)
C. 方框图
D. 软件结构图
-
[单项选择]已知基类Employees只有一个构造函数,其定义如下:
Employee::Employee(int n):id(n){}
Manager是Employees的派生类,则下列对Manager的构造函数的定义中,正确的是
A. Manager::Manager(int n):id(n){}
B. Manager::Manager(int n){id=n;}
C. Manager::Manager(int n):Employee(n){}
D. Manager::Manager(int n){Employee(n);}
-
[单项选择]有如下程序:
#include
#include
using namespace std;
int main( ){
cout<A. ##OK123
B. ##OK#123
C. OK##123
D. OK##123#
-
[填空题]软件按功能通常可以分为应用软件、系统软件和支撑软件(或工具软件),Unix操作系统属于【5】软件。
-
[单项选择]有如下语句序列:
ifstream infile("DATA.DAT");
if(infile.good( ))cout<<"A";
else{
cout<<"B";
ofstream outfile("DATA.DAT");
if(outfile.fail( ))cout<<"C";else cout<<"D";
}
若执行这个语句序列显示的是BD,则说明文件DATA.DAT
A. 以读方式打开成功
B. 以读方式打开失败,但以写方式打开成功
C. 以读方式打开失败,以写方式打开也失败
D. 以读方式打开成功,以写方式打开也成功
-
[单项选择]下列关于栈的叙述中,正确的是
A. 栈顶元素一定是最先入栈的元素
B. 栈操作遵循先进后出的原则
C. 栈底元素一定是最后入栈的元素
D. 以上三种说法都不对
-
[单项选择]下列选项中可以做C++标识符的是
A. _256
B. fat/pig
C. delete
D. 5char
-
[填空题]有下列程序的输出结果是2334,请将横线处缺失部分补充完整。
#include
using namespace std;
class Base{
int m;
pubic;
Base(int k):m(k){}
int getM( )const{return m;}
}
class Derived:public Base{
int n;
public;
Derived(int k):【11】,n(k){}
int getN( )const{return n;}
}
int main( ){
Derived d1(3),d2(4);
cout<
-
[单项选择]软件需求规格说明书的作用不包括
A. 软件可行性研究的依据
B. 用户与开发人员对软件要做什么的共同理解
C. 软件验收的依据
D. 软件设计的依据
-
[单项选择]已经函数print( )没有返回值,如果在类中将之声明为常成员函数,正确的是
A. void print()const;
B. const void print();
C. void const print();
D. void print(const);
-
[单项选择]有如下类定义
class MyClass{
int x;
public:
MyClass( ):x(0),y(0){}
int GetX( ){return x;}
void SetX(int xx){x==xx;}
int y;
};
已知obj是类MyClass的对象,下列语句中违反类成员访问控制权限的是
A. obj.x;
B. obj.y;
C. obj.GetX();
D. obj.SetX(0);
-
[填空题]有如下程序:
#include
using namespace std;
void fun(int&x,int y){
y=y+x;
x=y/4;
x++;
}
int main( ){
int x=4,y=5;
fun(x,y);
cout<
-
[单项选择]下列关于类成员对象构造函数调用顺序的叙述中,正确的是
A. 与它们在初始化列表中顺序相同
B. 与它们在类中声明的顺序相同
C. 与析构函数的调用顺序相同
D. 顺序不确定
-
[单项选择]有如下程序:
#include
using namespace std;
int main( ){
char a;
cin>>a;
if(a='*') cout<<"***"<A. ***
B. ###
C. ***###
D. 无输出
-
[填空题]在C++中,编译时的多态性是通过模板或函数【12】实现的。
-
[填空题]下列语句的作用是计算正整数n的各位数字之和,例如:n=123,sum=1+2+3,请将下列语句补充完整。
do{
sum+=【7】;
n=n/10;
}while(n1=0)
-
[填空题]有如下程序:
#include
using namespace std;
template
T Add(Tv1,Tv2){return v1+v2;}
int main( ){
cout<
-
[单项选择]在关系数据库中,用来表示实体间联系的是
A. 二维表
B. 树状结构
C. 属性
D. 网状结构
-
[单项选择]下列类模板的定义中语法格式错误的是
A. templateclass Buffer{/*…*/};
B. templateclass Buffer{/*…*/};
C. templateclass Buffer{/*…*/};
D. templateclass Buffer{/*…*/};
-
[单项选择]有如下程序:
#include
using namespace std;
class Base{
public;
void fun( ){cout<<'B';}
};
class Derived:public Base{
public;
void fun( ){ cout<<'D';}
};
int main( ){
Derived d;
d.fun( );
return 0;
}
若程序的输出结果是BD,则划线处缺失的部分是
A. fun()
B. Base.fun()
C. Base::fun()
D. Base->fun()
-
[单项选择]下列链表种,其逻辑结构属于非线性结构的是
A. 循环链表
B. 双向链表
C. 带链的栈
D. 二叉链表
-
[单项选择]已知将运算符“+”和“*”作为类Complete的成员函数重载,设c1和c2是类Complex的对象,则表达式c1+c2*c1等价于
A. c1.operator*(c2.operator+(c1))
B. c1.operator+(c2.operator*(c1))
C. c1.operator*(c1.operator+(c2))
D. c2.operator+(c1.operator*(c1))
-
[单项选择]在C++中既可以用于文件输入又可以用于文件输出的流类是
A. fstream
B. ifstream
C. ofstream
D. iostream
-
[填空题]一棵二叉树共有47个结点,其中有23个度为2的结点,假设根结点在底1层,则该二叉树的深度为【1】 。
-
[单项选择]设循环队列的存储空间为Q(1:35),初始状态为front=rear=35,现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为
A. 16
B. 20
C. 0或35
D. 15