一、选择题(每小题2分,共70分)
下列各题A),B) ,C) ,D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)栈和队列的共同特点是
A)都是先进先出
B)都是先进后出
C)只允许在端点处插入和删除元素
D)没有共同点
(2)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是
A)acbed
B)decab
C)deabc
D)cedba
(3)链表不具有的特点是
A)不必事先估计存储空间
B)可随机访问任一元素
C)插入删除不需要移动元素
D)所需空间与线性表长度成正比
(4)结构化程序设计的3种结构是
A)顺序结构、选择结构、转移结构
B)分支结构、等价结构、循环结构
C)多分支结构、赋值结构、等价结构
D)顺序结构、选择结构、循环结构
(5)为了提高测试的效率,应该
A)随机选取测试数据
B)取一切可能的输入数据作为测试数据
C)在完成编码以后制定软件的测试计划
D)集中对付那些错误群集的程序
(6)算法的时间复杂度是指
A)执行算法程序所需要的时间
B)算法程序的长度
C)算法执行过程中所需要的基本运算次数
D)算法程序中的指令条数
(7)软件生命周期中所花费用最多的阶段是
A)详细设计
B)软件编码
C)软件测试
D)软件维护
(8)数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为
A)C
B)Basic
C)DDL
D)DML
(9)下列有关数据库的描述,正确的是
A)数据库是一个DBF文件
B)数据库是一个关系
C)数据库是一个结构化的数据集合
D)数据库是组文件
(10)下列有关数据库的描述,正确的是
A)数据处理是将信息转化为数据的过程
B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变_
C)关系中的每一列称为元组,一个元组就是一个字段
D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字
(11)C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是
A)增加了一些新的运算符
B)允许函数重载,并允许设置缺省参数
C)规定函数说明符必须用原型
D)引进了类和对象的概念
(12)下列哪个是C++语言的有效标识符?
A)_No1 B)No.1 C)12345 D)int
(13)设有定义int x; float v;,则10+x+v值的数据类型是
A)int B)double C)float D)不确定
(14)下列程序的执行结果为
#include<iostream. h>
void main()
{
int a=3,b=0;
int*p=&a:
b=+a++;
cout<<*P<<”,”<<b<<endl;
}
A)3,4 B)4,3 C)3,4 D)4,4
(15)下面程序的运行结果为
#include<iostream. h>
void main()
{
for(int a=0,x=0;!x&&a<=10;a++)
{
a++;
} l
cout<<a<<endl;
}
A)10 B)11 C)12 D) 0
(16)下列选项,不正确的是
A)for(int a=1;a<=10;a++);
B)int a=1;
do
{
a++;
}while(a<=10)
C)int a=1:
while(a<=10)
{
a++;
} l
D)for(int a=1;a<=10;a++)a++;
(17)下面关于数组的初始化正确的是
A)char str[]={‘a',’b','c‘}
B)char str[2]={'a','b','c’}
C)char str[2][3]={{'a‘,'b’},{’e’,'d’},{’e’,‘f'}}
D)char str[]={'a','b','c’}
(18)下列程序的输出结果为
#include<iostream. h>
void main()
{
char,a[]={”hello",”the",”world”};
char**pa=a:
pa++;
cout<<*pa<<endl;
}
A)hello
B)the
C)world
D)hellotheworld
(19)决定C++语言中函数的返回值类型的是
A) return语句中的表达式类型
B)调用该函数时系统随机产生的类型
C)调用该函数时的主调用函数类型
D)在定义该函数时所指定的数据类型
(20)下列程序的输出结果是
#include<iostream. h>
int min(int a,int B)
{
if(a<B)return a;
else return B;
return 0;
}
void main()
{
cout<<min(1,min(2,3))<<endl;
}
A)0 B)1 C)2 D)3
(21)下列程序的运行结果为
#include<iostream. h>
void print(double a)
{
cout<<++a;
}
void print(int a,int b)
{
cout<<b<<a;
}
void main()
{
print(1.2);
cout<<” ”;
print(3,4);
}
A)1.2 34
B)2.2 34
C)1.2 43
D)2.2 43
(22)对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是
A)公有类型
B)私有类型
C)保护类型
D)友元类型
(23)在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是
A)友元函数
B)虚函数
C)构造函数
D)析构函数
(24)类的析构函数的作用是
A)一般成员函数的初始化
B)类的初始化
C)对象的初始化
D)删除类创建的对象
(25)下列说法正确的是
A)内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B)内联函数在编译时是将该函数的月标代码插入每个调用该函数的地方
C)类的内联函数必须在类体内定义
D)类的内联函数必须在类体外通过加关键字inline定义
(26)下面对静态数据成员的描述中,正确的是
A)静态数据成员可以在类体内进行初始化
B)静态数据成员不可以被类的对象调用
C)静态数据成员不能受private控制符的作用
D)静态数据成员可以直接用类名调用
(27)下面对于友元函数描述正确的是
A)友元函数的实现必须在类的内部定义
B)友元函数是类的成员函数
C)友元函数破坏了类的封装性和隐藏性
D)友元函数不能访问类的私有成员
(28)在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是
A)派生类的对象可以赋给基类的对象
B)派生类的对象可以初始化基类的引用
C)派生类的对象可以直接访问基类中的成员
D)派生类的对象的地址可以赋给指向基类的指针
(29)下面程序的运行结果为
#include<iostream. h>
class A
{
public:
A(){cout<<”1”;}
~A(){cout<<”2”;}
}
class B:public A
{
public:
B(){cout<<”3”;}
~B(){cout<<”4”;}
}
void main()
{
B b;
}
A)1234
B)1324
C)1342
D)3142
(30)下列关于虚基类的描述,错误的是
A)设置虚基类的目的是为了消除二义性
B)虚基类的构造函数在非虚基类之后调用
C)若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用
D)若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数