一、选择题(每小题2分,共70分)
下列各题A),B) ,C) ,D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)在深度为5的满二叉树中,叶子节点的个数为
A)32 B)31 C)16 D)15
(2)若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的节点访问顺序是
A)bdgcefha B)gdbecfha C)bdgaechf D)gdbehlca
(3)一些重要的程序语言油口C语言和Pascal语言)允许过程的递归调用而实现递归调用中的存储分配通常用
A)栈 B)堆 C)数组 D)链表
(4)软件工程的理论和技术性研究的内容主要包括软件开发技术和
A)消除软件危机 B)软件工程管理
C)程序设计自动化 D)实现软件可重用
(5)开发软件时对提高开发人员工作效率至关重要的是
A)操作系统的资源管理功能 B)先进的软件开发工具和环境
C)程序人员的数量 D)计算机的并行处理能力
(6)在软件测试设计中,软件测试的主要目的是
A)实验性运行软件 B)证明软件正确
C)找出软件中全部错误 D)发现软件错误而执行程序
(7)数据处理的最小单位是
A)数据 B)数据兀素 C)数据项 D)数据结构
(8)引索属于
A)模式 B)内模式 C)外模式 D)概念模式
(9)下述关于数据库系统的叙述中正确的是
A)数据库系统减少了数据冗余
B)数据库系统避免了一切冗余
C)数据库系统中数据的一致性是指数据类型一致
D)数据库系统比文件系统能管理更多的数据
(10)数据库系统的核心是
A)数据库 B)数据库管理系统 C)模拟模型 D)软件工程
(11)下列关于C++语言类的描述中错误的是
A)类用于描述事物的属性和对事物的操作
B)类与类之间通过封装而具有明确的独立性
C)类与类之间必须是平等的关系,而不能组成层次结构
D)类与类之间可以通过一些方法进行通信和联络
(12)在C++语言中.表不一条语句结束的标号是
A)# B): C)// D)}
(13)以下叙述中正确的是
A)构成C++语言程序的基本单位是类
B)可以在一个函数中定义另一个函数
C) main()函数必须放在其他函数之前
D)所有被调用的函数一定要在调用之前进行定义
(14)己知有定义
const int D二5;
int i=1;
double f=0.32:
char c=15;
则下列选项错误的是
A)++i; B)D--; C)C++; D)--f;
(15)以下程序的输出结果是
#include(iostream. h>
void reverse(int a[],int n)
{ int i,t;
for(i=0;;<n/2;i++)
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
void main()
{ int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;
reverse(b,8);
for(i=6;i<10;i++)s+=b[i];
cout<<s;
}
A)22 B)10 C)34 D)30
(16)下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,在划线处应填入的选项是
#include<iostream. b>
void main()
{
int i=0,j,k;
do{i++;k=316-13*i;}while( );
j=k/11;
cout<<”316=13*”<<i<<”+11*”<<i;
}
A)k/11 B)k% 11 C)k/11==0 D)k%11==0
(17)设有数组定义:char array[]=”China";,则数组array所占的空间为
A)4个字节 B)5个字节 C) 6个字节 D)7个字节
(18)若已定义:
int a[]={0,1,2,3,4,5,6,7,8,9},*P=a,i;
其中O≤i≤9,则对a数组元素不正确的引用是
A)a[p-a] B)*(&a[i]) C)p[i] D)a[10]
(19)以下程序的输出结果是
#include<iostream. h>
void main()
{ int x=1,y=3;
cout<<x++<<”,”;
{int x=0;x+=y*2;
cout<<x<<”,”<<y<<” ”;
}
cout<<x<<”,”<<y;
}
A) 1,6,3,1,3 B)1,6,3,6,3 C)1,6,3,2,3 D)1,7,3,2,3
(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的长度之和
(21)下面程序的结果为
#include<iostream. h>
void main()
{ int i;
int a[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
cout<<a[2-i][i]<<” ”;
}
A)1 5 9 B)7 5 3 C)3 5 7 D) 5 9 1
(22)下面程序的结果为
#include<iostream. h>
int c;
class A
{
private:
int a;
static int b;
public;
A(){a=0;c=0;}
void seta(){a++;}
void setb(){b++;}
void setc(){c++;}
void display(){cout<<a<<” ”<<b<<” ”<<c;}
};
int A::b=0;
void main()
{
A al,a2;
al.seta();
al.setb();
al.setc();
a2.seta();
a2.setb();
a3.setc();
a2.display();
A)121 B)122 C)112 D)222
(23)下列描述中哪个是正确的。
A)私有派生的子类无法访问父类的成员
B)类A的私有派生子类的派生类C无法初始化其祖先类A对象的属性,因为类A的成员对类C是不可访问的
C)私有派生类不能作为基类派生子类
D)私有派生类的所有子孙类将无法继续继承该类的成员
(24)下列关于构造函数说法不正确的是
A)构造函数必须与类同名
B)构造函数可以省略不写
C)构造函数必须有返回值
D)在构造函数中可以对类中的成员进行初始化
(25)如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是
A)一元运算符 B)二元运算符
C)选项A)和选项B)都可能 D)重载错误
(26)在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是
A)一元成员运算符 B)二元成员运算符
C)一元友元运算符 D)选项B)和选项C)都可能
(27)下列关于模板的说法正确的是
A)模板的实参在任何时候都可以省略 B)类模板与模板类所指的是同一概念
C)类模板的参数必须是虚拟类型的 D)类模板中的成员函数全部都是模板函数
(28)表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是
A) showbase()和eof() B)showpoint()和eof()
C)showpoint()和bad() D)showpoint()和good()
(29)下面程序段的运行结果是
void main()
{
int t,a,b,c;
a=1;b=2;c=2:
while(a<b<c)
{t=a;a=b;b=t;c--;}
cout<<a<<”,”<<b<<”,”<<c;
}
A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,1
(30)下列程序中画线处应填入的语句是
class Base
{
public:
void fun(){cout<<”Base of fun”<<endl;}
};
class Derived:public Base
{
void fun()
{
//显示基类的成员函数fun
cout<<”Derived of fun”<<endl;
};
A)fun(); B)Base. fun(); C)Base::fun();D)Base->fun-: