2013年计算机二级C++模拟试题及答案(两套000)

更新时间:2024-03-20 00:44:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2013年计算机二级C++模拟

试题及答案

一、选择题

1.栈和队列的共同特点是

A)都是先进先出 B)都是先进后出

C)只允许在端点处插入和删除元素

D)没有共同点

【参考答案】 C

2.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是 A)acbed B)decab C)deabc D)cedba 【参考答案】 D

3.链表不具有的特点是 A)不必事先估计存储空间 B)可随机访问任一元素 C)插入删除不需要移动元素 D)所需空间与线性表长度成正比 【参考答案】 B

4.结构化程序设计的3种结构是

A)顺序结构、选择结构、转移结构

B)分支结构、等价结构、循环结构

C)多分支结构、赋值结构、等价结构 D)顺序结构、选择结构、循环结构

【参考答案】 D 5.为了提高测试的效率,应该 A)随机选取测试数据

B)取一切可能的输入数据作为测试数据

C)在完成编码以后制定软件的测试计划

D)集中对付那些错误群集的程序

【参考答案】 D

6.算法的时间复杂度是指

A)执行算法程序所需要的时间

B)算法程序的长度

C)算法执行过程中所需要的基本运算次数 D)算法程序中的指令条数

【参考答案】 C

7.软件生命周期中所花费用最多的阶段是 A)详细设计 B)软件编码 C)软件测试 D)软件维护 【参考答案】 D

8.数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为 A)C B)Basic C)DDL D)DML

【参考答案】 C

9.下列有关数据库的描述,正确的是

A)数据库是一个DBF文件

B)数据库是一个关系

C)数据库是一个结构化的数据集合 1

D)数据库是一组文件 【参考答案】 C

10.下列有关数据库的描述,正确的是 A)数据处理是将信息转化为数据的过程 B)数据的物理独立性是指当数据的逻辑结 14.下列程序的执行结果为 #include void main() { int a=3,b=0; int *p=&a; 构改变时,数据的存储结构不变

C)关系中的每一列称为元组,一个元组就是一个字段

D)如果一个关系中的属性或属性组并非该 关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字 【参考答案】 D

11.C++语言对C语言做了很多改进,C++语 言相对于C语言的最根本的变化是 A)增加了一些新的运算符

B)允许函数重载,并允许设置缺省参数

C)规定函数说明符必须用原型

D)引进了类和对象的概念

【参考答案】 D

12.下列哪个是C++语言的有效标识符?

A)_No1 B)No.1 C)12345 D)int

【参考答案】 A

13.设有定义int x;float y;,则10+x+y值的数据类型是

A)int B)double C)float D)不确定 【参考答案】

b=+a++; cout<<*p<<\

A)3,4 B)4,3 C)3,4 D)4,4 【参考答案】 B

15.下面程序的运行结果为 #include void main()

{ for(int a=0,x=0;!x&&a<=10;a++)

{ a++; }

cout<

A)10 B)11 C)12 D)0

【参考答案】 C

16.下列选项,不正确的是

A) for(int a=1;a<=10;a++);

B) int a=1; do { a++; }

while(a<=10) C) int a=1;

D) for(int a=1;a<=10;a++)a++; while(a<=10){ a++; }

2

【参考答案】 B

17.下面关于数组的初始化正确的是 A) char str[]={′a′,′b′,′c′} B) char str[2]={′a′,′b′,′c′} C) char str[2][3]={{′a′,′

b′},{′c′,′d′},{′e′,′f′}} D) char str()={′a′,′b′,′c′} 【参考答案】 A

18.下列程序的输出结果为 #include void main()

{ char

*a[]={\ char **pa=a;

pa++;

cout<<*pa<

A)hello B)the C)world

D)hellotheworld 【参考答案】 B 19.决定C++语言中函数的返回值类型的是 A)return语句中的表达式类型 B)调用该函数时系统随机产生的类型 C)调用该函数时的主调用函数类型 D)在定义该函数时所指定的数据类型

【参考答案】 D

20.下列程序的输出结果是 #include

int min(int a,int b) { if (a else return b; return 0; } void main() { cout<

A)0 B)1 C)2 D)3 【参考答案】 B 21.下列程序的运行结果为 #include

void print(double a) { cout<<++a; }

void print(int a,int b)

{ cout<

void main() { print(1.2); cout<<\ print(3,4); }

A)1.234 B)2.234 C)1.243 D)2.243 【参考答案】 D 22.对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是

3

A)公有类型 B)私有类型 C)保护类型 D)友元类型 【参考答案】 D

23.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是

A)友元函数 B)虚函数 C)构造函数 D)析构函数 【参考答案】 C 24.类的析构函数的作用是

A)一般成员函数的初始化 B)类的初始化

C)对象的初始化 D)删除类创建的对象

【参考答案】 D 25.下列说法正确的是

A)内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B)内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C)类的内联函数必须在类体内定义

D)类的内联函数必须在类体外通过加关键字inline定义 【参考答案】 B

26.下面对静态数据成员的描述,正确的是 A)静态数据成员可以在类体内进行初始化 B)静态数据成员不可以被类的对象调用

C)静态数据成员不能受private控制符的作用

D)静态数据成员可以直接用类名调用 【参考答案】 D

27.下面对于友元函数描述正确的是 A)友元函数的实现必须在类的内部定义 B)友元函数是类的成员函数

C)友元函数破坏了类的封装性和隐藏性 D)友元函数不能访问类的私有成员 【参考答案】 C

28.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是 A)派生类的对象可以赋给基类的对象

B)派生类的对象可以初始化基类的引用

C)派生类的对象可以直接访问基类中的成员

D)派生类的对象的地址可以赋给指向基类的指针 【参考答案】 C 29.下面程序的运行结果为

#include

class A { public: A(){cout<<\ ~A(){cout<<\ class B:public A { public:

4

B(){cout<<\ ~B(){cout<<\

void main()

{ B b; }

A)1234 B)1324 C)1342 D)3142

【参考答案】 C

30.下列关于虚基类的描述,错误的是

A)设置虚基类的目的是为了消除二义性

B)虚基类的构造函数在非虚基类之后调用

C)若同一层中包含多个虚基类,这些虚基

类的构造函数按它们说明的次序调用 D)若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数

【参考答案】 B

31.下列关于多态性的描述,错误的是 A)C++语言中的多态性分为编译时的多态性和运行时的多态性

B)编译时的多态性可通过函数重载实现

C)运行时的多态性可通过模板和虚函数实现

D)实现运行时多态性的机制称为动态绑定

【参考答案】 C

32.下列运算符,在C++语言中不能重载的是 A)* B)>= C):: D)/ 【参考答案】 C

33.使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 A)ios::in B)ios::out

C)ios::in | ios::out

D)以上都不对

【参考答案】 D

34.下列程序的运行结果是

#include

class A

{ int a;

public: A(){a=0;} A(int aa) { a=aa; cout< void main() { A x,y (2),z (3);

cout<

A)00 B)23 C)34 D)25

【参考答案】 B

2013年计算机二级C++模拟

试题及答案(2)

一、选择题

5

1.已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为 【参考答案】 B A)GEDHFBCA B)DGEBHFCA

C)ABCDEFGH D)ACBFEDHG

2.树是结点的集合,它的根结点数目是

A)有且只有1 B)1或多于1

C)0或1 D)至少2

【参考答案】 A

3.如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是

A)e3,e1,e4,e2 B)e2,e4,e3,e1

C)e3,e4,e1,e2 D)任意顺序

【参考答案】 B

4.在设计程序时,应采纳的原则之一是 A)不限制goto语句的使用

B)减少或取消注解行 C)程序越短越好 D)程序结构应有助于读者理解 【参考答案】 D

5.程序设计语言的基本成分是数据成分、运算成分、控制成分和

A)对象成分 B)变量成分

C)语句成分 D)传输成分 【参考答案】 D

6.下列叙述中,不属于软件需求规格说明书的作用的是

A)便于用户、开发人员进行理解和交流 B)反映出用户问题的结构,可以作为软件开发工作的基础和依据 C)作为确认测试和验收的依据

D)便于开发人员进行需求分析

【参考答案】 D

7.下列不属于软件工程的3个要素的是

A)工具 B)过程 C)方法 D)环境

【参考答案】 D

8.单个用户使用的数据视图的描述称为 A)外模式 B)概念模式

C)内模式 D)存储模式

【参考答案】 A

9.将E-R图转换到关系模式时,实体与联系都可以表示成

A)属性 B)关系 C)键 D)域 【参考答案】 B 10.SQL语言又称为

A)结构化定义语言 B)结构化控制语言 C)结构化查询语言 D)结构化操纵语言 【参考答案】 C

11.下面关于类和对象的描述中,错误的是

A)类就是C语言中的结构体类型,对象就是C语言中的结构体变量

B)类和对象之间的关系是抽象和具体的关系

6

C)对象是类的实例,一个对象必须属于一个已知的类

D)类是具有共同行为的若干对象的统一描述体

【参考答案】 A

12.以下各选项组中,均是C++语言关键字的组是

A)public operator this

B)shod string static

C)it while >=

D)private cout printf

【参考答案】 A

13.设int a=10,b=11,c=12;,表达式(a+b)

A)2 B)0 C)-2 D)1 【参考答案】 B 14.下列描述正确的是 A)表示m>n为true或mn&&m B)switch语句结构中必须有default语句 C)if语句结构中必须有else语句 D)如果至少有一个操作数为true,则包含\运算符的表达式为true 【参考答案】 D

15.下列语句中不是死循环的是

A) int i=10; while (1)

{ i--;

if(i==1)break; } B) for(int i=1;i<10;i++) { i--; } C) int i=0;

do{

i++;

}while(i>=0);

D) int i=1;

for(;;)i=i+1;

【参考答案】 A

16.下面关于break语句的描述,不正确的是 A)break可以用于循环体内

B)break语句可以在for循环语句中出现多次 C)break语句可以在switch语句中出现多次

D)break语句可用于if条件判断语句内 【参考答案】 D

17.下面关于数组的描述错误的是 A)在C++语言中数组的名字就是指向该数组第一个元素的指针

B)长度为n的数组,下标的范围是0~n-1

C)数组的大小必须在编译时确定

D)数组只能通过值参数和引用参数两种方式传递给函数 【参考答案】 D

7

18.下面程序错误的语句是 ① #include ② void main() ③ {

④ int *p=new int[1]; ⑤ p=9; ⑥ cout <<*p<

⑦ delete []p;

⑧ }

A)④ B)⑤ C)⑥ D)⑦

【参考答案】 B

19.下面的哪个选项不能作为函数的返回类型?

A)void B)int C)new D)long 【参考答案】 C

20.不能作为重载函数的调用的依据是 A)参数个数 B)参数类型 C)函数类型 D)函数名称 【参考答案】 D 21.下列程序的输出结果为 #include int func(int n) { if (n<1)return 1; else return n+func(n-1);

return 0; } void main() { cout<

A)0 B)10 C)15 D)16 【参考答案】 D

22.在C++语言中,数据封装要解决的问题是

A)数据的规范化 B)便于数据转换

C)避免数据丢失

D)防止不同模块之间数据的非法访问

【参考答案】 D

23.以下程序中,错误的行为

(1) #include (2) ClassA (3) { (4) public: (5) int n=2; (6) A(int val){cout< (7) ~A( ){} (8) };

(9) void main( ) (10) { (11) Aa(o); (12) }

8

A)(5) B)(6) C)(7) D)(11) 【参考答案】 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 a (1),b(a); a.print(); b.print(); }

A)11 B)12 C)21 D)22 【参考答案】 C

26.下面对静态数据成员的描述,正确的是

A)静态数据成员是类的所有对象共享的数据

B)类的每个对象都有自己的静态数据成员 C)类的不同对象有不同的静态数据成员值 D)静态数据成员不能通过类的对象调用 【参考答案】 A

27.如果类A被说明成类B的友元,则 A)类A的成员即类B的成员 B)类B的成员即类A的成员

C)类A的成员函数不得访问类B的成员 D)类B不一定是类A的友元 【参考答案】 D

28.可以用p.a的形式访问派生类对象p的

基类成员a,其中a是 A)私有继承的公有成员

B)公有继承的私有成员

C)公有继承的保护成员

D)公有继承的公有成员

【参考答案】 D

29.建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数)这3种构造函数的调用顺序为

A)abc B)acb C)cab D)cba 【参考答案】 A

30.下面关于虚函数的描述,错误的是 A)在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数

9

B)基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数

C)虚函数可以是另一个类的友元函数,但不能是静态成员函数

D)基类中说明的纯虚函数在其任何派生类中都必须实现 【参考答案】 B

31.下面关于模板的描述,错误的是

A)函数模板和类模板的参数可以是任意的数据类型

B)类模板不能直接使用,必须先实例化为相应的模板类,然后定义了模板类的对象后才能使用

C)函数模板不能直接使用,需要实例化为模板函数后才能使用

D)类模板的成员函数都是模板函数 【参考答案】 A

32.语句ofstream

f(\的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,并且

A)若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件 B)若文件存在,将其置为空文件;若文件不存在,打开失败

C)若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件 D)若文件存在,打开失败;若文件不存在,建立一个新文件 【参考答案】 A

33.下面程序的运行结果是 #include void main() { int num=1; int &ref=num; ref=ref+2;

cout <

num=num+3; cout <

A)13 B)16 C)36 【参考答案】 C

34.下面程序的运行结果是 #include

void fun(int *a,int *b) { int x=*a; *a=*b; *b=x; cout<<*a<<*b<<\ }

void main() { int x=1, y=2; fun(&x,&y); cout<

A)1212 B)1221 C)2112 10

D)2121

D)33

【参考答案】 D

35.下列程序的运行结果为 #include int i=0; class A{ public: A(){i++;} }; void main()

{ A a,b[3],*c; c=b; cout<

A)2 B)3 C)4 D)5 【参考答案】 C 二、填空题

(1)数据结构分为逻辑结构与存储结构,线性链表属于 【1】 。

【参考答案】 【1】存储结构

(2)在面向对象方法中,类之间共享属性和操作的机制称为 【2】 。 【参考答案】 【2】继承

(3)耦合和内聚是评价模块独立性的两个主要标准,其中 【3】 反映了模块内各成分之间的联系。

【参考答案】 【3】内聚

(4)一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体\项目主管\与实体\项目\的联系属于 【4】 的联系。 【参考答案】 【4】一对多或1∶N (5)数据库设计分为以下6个设计阶段:需求分析阶段、 【5】 、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。 【参考答案】 【5】数据库概念设计阶段 (6)开发一个C++语言程序的步骤通常包括编辑、 【6】 、链接、运行和调试。 【参考答案】 【6】编译

(7)假设int a=1,b=2;则表达式a+++--b的值为 【7】 。

【参考答案】 【7】2 (8)下面程序的输出结果为 【8】 。 #include void main() { int num=0,i=8; do{

i--;

num++; }while(--i); cout<

【参考答案】 【8】4

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

11

(10)下面程序的运行结果为 【10】 。

#include

void fun(int x=0,int y=0) { cout< }

void main() { fun (5); }

【参考答案】 【10】50

(11)在C++语言中,访问一个对象的成员所用的运算符是 【11】 ,访问一个指针所指向的对象的成员所用的运算符是 【12】 。 【参考答案】

【11】成员选择运算符 【12】成员访问运算符

(12)C++语言支持的两种多态性分别是编译时的多态性和 【13】 的多态性。 【参考答案】 【12】运行时 (13)重载的运算符保持其原有的 【14】 、优先级和结合性不变。

【参考答案】 【13】操作符个数 (14)cout.put(′A′);,还可以表示为 【15】 。

【参考答案】 【14】cout<<′A′;)

12

本文来源:https://www.bwwdw.com/article/gx58.html

Top