无忧首页企业系统我的无忧
无忧服务:
兼职活动培训
娱乐交友:
交友社区资讯
全职实习:
实习暑假寒假
微信号:school51
扫一下,立即关注
加关注
在线支付,立省10元
下载新版APP
===大学生成长生活平台===

2010年计算机等级考试二级C++冲刺全真模拟试题及答案(1

2013-03-18来源/作者:卫凯点击次数:445

编辑推荐:

2010年全国计算机二级考试各科模拟试题冲刺专题

2010年全国计算机等级考试二级C++模拟试题及答案汇总

2010年计算机等级考试二级C++冲刺全真模拟试题及答案(1)
 (考试时间120分钟,满分100分)

一、选择题(每题2分,共70分)。
下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

1.算法的空间复杂度是指( )。
A.算法程序的长度
B.算法程序中的指令条数
C.算法程序所占的存储空间
D.执行过程中所需要的存储空间
【答案】D 

2.用链表表不线性表的优点是( )。
A.便于随机存取
B.花费的存储空间较顺序存储少
C.便于插入和删除操作
D.数据元素的物理顺序与逻辑顺序相同
【答案】C 

3.下列关于栈的描述正确的是( )。
A.在栈中只能插入元素而不能删除元素
B.在栈中只能删除元素而不能插入元素
C.栈是特殊的线性表,只能在一端插入或删除元素
D.栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素
【答案】D 

4.下列叙述中正确的是( )。
A.一个逻辑数据结构只能有一种存储结构
B.数据的逻辑结构属于线性结构,存储结构属于非线性结构
C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
【答案】D

5.下列对列的叙述正确的是( )。
A.队列属于非线性表
B.队列按”先进后出”的原则组织数据
C.队列在队尾删除数据
D.队列按“先进先出”原则组织数据
【答案】D

6.对下列二叉树进行前序遍历的结果为( )。
A.DYBEAFCZX
B.YDEBFZXCA
C.ABDYECFXZ
D.ABCDEFXYZ
【答案】C

7.在面向对象方法中,不属于“对象”基本特点的是( )。
A.一致性
B.分类性
C.多态性
D.标识唯一性
【答案】A
【解析】对象是面向对象方法中最基本的概念,它的基本特点有:标识唯一性、分类性、多态性、封装性和模块独立性。故本题答案为A。

8.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。
A.一对一
B.一对多
C.多对一
D.多对多
【答案】B
【解析】一个实体宿舍可以对应多个学生,而一个学生只能对应一个宿舍,所以宿舍和学生之间是一对多关系。

9.将E-R图转换到关系模式时,实体与联系都可以表示成( )。
A.属性
B.关系
C.键
D.域
【答案】B

10.SQL语言又称为( )。
A.结构化定义语言
B.结构化控制语言
C.结构化查询语言
D.结构化操纵语言
【答案】C

11.C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是( )。
A.增加了一些新的运算符
B.允许函数重载,并允许设置缺省参数
C.规定函数说明符必须用原型
D.引进了类和对象的概念
【答案】D

12.设有定义int a=1;float f=1.2;char c=’a';,则下列表示错误的是( )。
A.++a;
B.f--;
C.C++;
D.8++;
【答案】D 

13.下列程序的运行结果为( )。
 #include
 void main()
 {
 int a=2:
 int b=a+1;
 cout<<
 }
A.0.66667 B.0
C.0.7 D.0.66666666…
【答案】B 

14.下列关于运算符重载的叙述中,正确的是( )。
A.通过运算符重载,可以定义新的运算符
B.有的运算符只能作为成员函数重载
C.若重载运算符+,则相应的运算符函数名是+
D.重载一个二元运算符时,必须声明两个形参
【答案】B 

15.下列关于模板的叙述中,错误的是( )。
A.调用模板函数时,在一定条件下可以省略模板实参
B.可以用int、double这样的类型修饰符来声明模板参数
C.模板声明中的关键字class都可以用关键字typename替代
D.模板的形参表中可以有多个参数
【答案】D 

16.要利用C++流进行文件操作,必须在程序中包含的头文件是( )。
A.iostream
B.fstream
C.strstream
D.iomanip
【答案】B

17.下列描述中,不属于面向对象思想主要特征的是( )。 
A.封装性 
B.跨平台性 
C.继承性 
D.多态性 
【答案】B  

18.有如下程序段: 
Tnt i=4;int j=l; 
int main(){ 
int i=8,j=i; 
cout<
运行时的输出结果是( )。 
A.44 
B.41 
C.88 
D.81 
【答案】C  

19.下面的哪个选项不能作为函数的返回类型? ( )。 
A.void 
B.int 
C.new 
D.long 
【答案】C  

20.函数fun的返回值是( )。 
 fun(char*a,char*B. 
 { 
 int num=0,n=0; 
 while(*(a+num)!=‘\0’)num++; 
 while(b[n]){*(a+num)=b[n];num++;n++;} 
 return num; 
 } 
A.字符串a的长度 
B.字符串b的长度 
C.字符串a和b的长度之差 
D.字符串a和b的长度之和 
【答案】D  

21.有如下函数定义: 
void func (int a,int&b) {a++; b++;} 
 若执行代码段: 
 int x=0 ,y=1 
 func(x,y); 
 则变量x和y值分别是( )。 
A.0和1 
B.1和1 
C.0和2 
D.1和2 
【答案】C  

22.有如下程序 
#include 
using namespace std; 
class Sample{ 
public: 
Sample(){} 
~Sample(){cout<<‘*’;} 
}; 
int main(){ 
Sample temp[2], *pTemp[2]; 
return 0; 

执行这个程序输出星号(*)的个数为( )。 
A.1 
B.2 
C.3 
D.4 
【答案】C  

23.下列选项中,与实现运行时多态性无关的是( )。 
A.重载函数 
B.虚函数 
C.指针 
D.引用 
【答案】A  

24.对类的构造函数和析构函数描述正确的是( )。 
A.构造函数可以重载,析构函数不能重载 
B.构造函数不能重载,析构函数可以重载 
C.构造函数可以重载,析构函数也可以重载 
D.构造函数不能重载,析构函数也不能重载 
【答案】A  

25.下面程序的运行结果为( )。 
 #include 
 class A 
 { 
 int num; 
 public: 
 A(int i){num=i;} 
 A(A &A.{num=a. num++;} 
 void print(){cout< 
 }; 
 void main() 
 { 
 A a1(),b(A); 
 a. print(); 
 b.print(); 
A.11 
B.12 
C.21 
D.22 
【答案】C  

26.在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是( )。 
A.一元成员运算符 
B.二元成员运算符 
C.一元友元运算符 
D.选项B和选项C都可能 
【答案】D  

27.下列关于模板的说法正确的是( )。 
A.模板的实参在任何时候都可以省略 
B.类模板与模板类所指的是同一概念 
C.类模板的参数必须是虚拟类型的 
D.类模板中的成员函数全部都是模板函数 
【答案】D  

28.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是( )。 
A.派生类的对象可以赋给基类的对象 
B.派生类的对象可以初始化基类的引用 
C.派生类的对象可以直接访问基类中的成员 
D.派生类的对象的地址可以赋给指向基类的指针 
【答案】C  

29.建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、
c(派生类的构造函数)这3种构造函数的调用顺序为( )。 
A.abc 
B.acb 
C.cab 
D.cba 
【答案】A  

30.下面关于虚函数的描述,错误的是( )。 
A.在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数 
B.基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数 
C.虚函数可以是另一个类的友元函数,但不能是静态成员函数 
D.基类中说明的纯虚函数在其任何派生类中都必须实现 
【答案】B  

31.定义派生类时,若不使用关键字显示地规定采用何种继承方式,则默认方式为( )。 
A.私有继承 
B.非私有继承 
C.保护继承 
D.公有继承 
【答案】A  

32.在位运算中,操作数每右移一位,其结果相当于( )。 
A.操作数乘以2 
B.操作数除以2
C.操作数乘以4 
D.操作数除以4 
【答案】B  

33.有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把节点b连接到节点a 之后的语句是( )。 
 struct node 
 { char data; 
 struct node*next; 
 }a,b,*p=&a,*q=&b; 
A.a. next=q; 
B.p. next=&b; 
C.p->next=&b; 
D.(*p).next=q; 
【答案】B  

34.假定下列语句都是程序运行后首次执行的输出语句,其中输出结果与另外三条语句不同的语句是( )。 
A.cout<B.cout<C.cout<<123<D.cout<【答案】C  

35.有如下程序: 
#include 
using namespace std; 
class ONE{ 
int c; 
public: 
ONE():c(0){cout<<1;} 
ONE(int n):c(n){cout<<2;} 
}; 
class TWO{ 
ONE onel; 
ONE one2; 
public: 
TWO(int m):one2(m){cout<<3;} 
}; 
int main(){ 
TWO t4() 
return 0 

运行时的输出结果是( )。 
A.3 
B.23 
C.123 
D.213 
【答案】C  

二、填空题(每空2分,共30分) 
请将每空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。
 
注意:以命令关键字填空的必须拼写完整。 
1.数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是 【1】 。 
【答案】数据库系统  

2.软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于 【2】 测试。 
【答案】黑盒  

3.符合结构化原则的三种基本控制结构是:选择结构、循环结构和 【3】 。 
【答案】顺序结构 

4.一棵二叉树第六层(根结点为第一层)的结点数最多为 【4】 个。 
【答案】32  

5.数据结构分为逻辑结构和存储结构,循环队列属于 【5】 结构。 
【答案】存储  

6.有如下程序段: 
int x=1,Y=2,z=3; 
x=x^z; 
y=y^z; 
z=x^y; 
cout<执行这个程序段的输出是 【6】 。 
【答案】100  

7.若要访问指针变量p所指向的数据,应使用表达式 【7】 。 
【答案】*P  

8.已知一个函数的原型是: 
int fn(double x); 
若要以5.27为实参调用该函数,应使用表达式 【8】 。 
【答案】fn(5.27)  

9.通过使用new和delete两个运算符进行的分配为 【9】 存储分配。 
【答案】【9】动态  

10.如果类B继承了类A,则称类A为类B的基类,类B称为类A的 【10】 。 
【答案】【10】派生类  

11.将x+y中的+运算符用友元函数重载应写为 【11】 。 
【答案】【11】 operator+(x,y)  

12.请将下列类定义补充完整。 
class Base { public: void fun( ){ cout<<"Base::fun"< 
class Derived : public Base { 
public: 
void fun( ) { 
 【12】 //显式调用基类的fun函数 
 cout<<"Derived::fun"<}}; 
【答案】【12】Base::fun()  

13.多数运算符既能作为类的成员函数重载,也能作为类的非成员函数重载,但[ ]运算符只能作为类的 【13】 函数重载。 
【答案】【13】成员  

14.表达式operator+(x,y)还可以表示为 【14】 。 
【答案】【14】x+y  

15.C++语言中的多态性分为编译时的多态性和 【15】 时的多态性。 
【答案】运行  





相关阅读



关于我们 | 联系我们 | 用户指南 | 网站地图 | 意见建议 | 会员注册 | 用户协议 | 隐私政策