ADABA DADDA BACDA ACCDB DBBBA BBADA DBCCD ADCAC
n 29 数据操作语言 关系 面向对象方法 a=1,b=2 2 3 k<=n 074 rgb 572 *a[i] cab test 2012年9月全国计算机等级考试二级笔试试卷
一、选择题(每小题2分,共70分)
(1)下列链表种,其逻辑结构属于非线性结构的是 D
A)循环链表 B)双向链表 C)带链的栈 D)二叉链表
(2)设循环队列的存储空间为Q(1:35),初始状态为front=rear=35,现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为 C
A)16 B)20 C)0或35 D)15 (3)下列关于栈的叙述中,正确的是 B
A)栈顶元素一定是最先入栈的元素 B)栈操作遵循先进后出的原则 C)栈底元素一定是最后入栈的元素 D)以上三种说法都不对 (4)在关系数据库中,用来表示实体间联系的是 A
A)二维表 B)树状结构 C)属性 D)网状结构
(5)公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则实体部门和职员间的联系是 B
A)m:1联系 B)1:m联系 C)1:1联系 D)m:n联系 (6) 有两个关系R和S 如下: R A a b c B 1 2 3 C 2 1 1 A c S B 3 C 1 则由关系R得到关系S的操作是 B A)自然连接 B)选择 C)并 D)投影 (7)数据字典(DD)所定义的对象都包含于 B
A)程序流程图 B)数据流图(DFD图) C)方框图 D)软件结构图
(8)软件需求规格说明书的作用不包括 A
A)软件可行性研究的依据 B)用户与开发人员对软件要做什么的共同理解s C)软件验收的依据 D)软件设计的依据 (9)下面属于黑盒测试方法的是 D
A)逻辑覆盖 B)语句覆盖 C)路径覆盖 D)边界值分析 (10)下面不属于软件设计阶段任务的是 D
A)数据库设计 B)算法设计 C)软件总体设计 D)制定软件确认测试计划 (11)下列关于函数重载的叙述中,错误的是 C
A)重载函数的参数个数可以不同 B)重载函数的参数类型可以不同
31
C)重载函数的返回值类型必须不同
D)重载函数的参数个数或参数类型必须有所不同
(12)下列关于类成员对象构造函数调用顺序的叙述中,正确的是 B
A)与它们在初始化列表中顺序相同 B)与它们在类中声明的顺序相同 C)与析构函数的调用顺序相同 D)顺序不确定
(13)下列关于派生类的叙述中,错误的是 D
A)派生类至少要有一个基类
B)派生类中包括了从基类继承的成员
C)一个派生类可以作为另一个派生类的基类
D)基类成员被派生类继承以后访问权限保持不变 (14)下列关于运算符重载的叙述中,正确的是 B
A)通过运算符重载机制可以为C++语言扩充新的运算符 B)运算符重载的作用是使已有的运算符作用于类的对象 C)重载运算符的操作数类型可以全部为基本类型 D)所有运算符都可以重载
(15)下列关于模板的叙述中,错误的是 C
A)调用模板函数时,有时可以省略模板实参 B)函数模板的每个实例就是一个函数定义 C)类模板的每个实例就是一个类定义 D)类模板的实例是一个类对象
(16)下列关于输入输出流的叙述中,正确的是 A
A)一个文件流可以与一个数据文件相联系 B)cin是专门从键盘输入数据的输入流类 C)流运算符<<用来从输入流中读取数据 D)宽度设置的效果永久有效
(17)下列选项中可以做C++标识符的是 A
A)_256 B)fat/pig C)delete D)5char (18)关键字unsigned不能修饰的类型是 A
A)char B)int C)float D)long int (19)有如下程序:
#include
if(a='*') cout<<\ else cout<<\ return 0; } B
A)*** B)### C)***### D)无输出 (20)下列对一维数组a的定义中,语法正确的是 D
32
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]; (21)假设函数fun已经定义,其原型为”void fun(int a,int b=7,char *p=”**”);”,下列函数调用中错误的是 C
A)fun(5) B)fun(5,8) C)fun(6,”##”) D)fun(0,0.”==”) (22)已经函数print()没有返回值,如果在类中将之声明为常成员函数,正确的是 A
A)void print()const; B)const void print(); C)void const print(); D)void print(const); (23)已知基类Employees只有一个构造函数,其定义如下:
Employee::Employee(int n):id(n){}
Manager是Employees的派生类,则下列对Manager的构造函数的定义中,正确的是 C
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);}
(24)已知将运算符“+”和“*”作为类Complete的成员函数重载,设c1和c2是类Complex的对象,则表达式c1+c2*c1等价于 B
A)c1.operator*(c2.operator+(c1)) B)c1.operator+(c2.operator*(c1))
C)c1.operator*(c1.operator+(c2)) D)c2.operator+(c1.operator*(c1))
(25)下列类模板的定义中语法格式错误的是 D
A)template
B)template
C)template
(26)在C++中既可以用于文件输入又可以用于文件输出的流类是 A
A)fstream B)ifstream C)ofstream D)iostream (27)有如下类定义: B
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 (28)有如下类定义 A
class MyClass{ int x; public:
MyClass():x(0),y(0){} int GetX(){return x;}
33
void SetX(int xx){x==xx;} int y; };
已知obj是类MyClass的对象,下列语句中违反类成员访问控制权限的是 A)obj.x; B)obj.y; C)obj.GetX(); D)obj.SetX(0);
(29)有如下类定义
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行 };
编译时没有错误的行是 C
A)第1行 B)第2行 C)第3行 D)第4行 (30)有如下程序:
#include
A(){cout<,'A';} ~A(){cout<<'C';} };
class B:public A{ public:
B(){cout<<'G';} ~B(){cout<<'T';} };
int main(){ B obj; return 0; }
运行这个程序的输出结果是 B
A)GATC B)AGTC C)GACT D)AGCT (31)有如下程序:
#include
class Derived:public Base{ public;
34
void fun(){ cout<<'D';} };
int main(){ Derived d; d.fun(); return 0; }
若程序的输出结果是BD,则划线处缺失的部分是 C
A)fun() B)Base.fun() C)Base::fun() D)Base->fun() (32)有如下程序:
#include
virtual void f() {cout<<\ void g(){cout<<\ }
class D;public B { public;
void f(){cout<<\ void g(){coun<<\ }
void h(B*p){p->f();p->g();} int main(){ D obj; h(&obj); return 0; }
运行这个程序的输出结果是: D
A)DD B)BB C)BD D)DB (33)有如下程序:
#include
char str[80];
MyString(const char*s) {strcpy(str,s);} MyString&operator+=(MyString a){ strcat(str,a.str); return*this; } };
ostream&operator<<(ostream&s,const MyString&z){return s << z.str}
35