下列各题a)、b)、c)、d)四个选项中,只有一个选项是正确的,请将正确选项涂写
在答题卡相应位置上,答在试卷上不得分。
(1)下列选项中不符合良好程序设计风格的是______。
a)、源程序要文档化 b)、数据说明的次序要规范化
c)、避免滥用goto 语句 d)、模块设计要保证高耦合,高内聚
(2)从工程管理角度,软件设计一般分为两步完成,它们是______。
a)、概要设计与详细设计 b)、数据设计与接口设计
c)、软件结构设计与数据设计 d)、过程设计与数据设计
(3)下列选项中不属于软件生命周期开发阶段任务的是______。
a)、软件测试 b)、概要设计 c)、软件维护 d)、详细设计
(4)在数据库系统中,用户所见的数据模式为______。
a)、概念模式 b)、外模式 c)、内模式 d)、物理模式
(5)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和______。
a)、编码设计 b)、测试阶段 c)、运行阶段 d)、物理设计
(6)设有如下三个关系表

下列操作中正确的是
a)、t=r∩s b)、t=r∪s c)、t=r×s d)、t=r/s
(7)下列叙述中正确的是
a)、一个算法的空间复杂度大,则其时间复杂度也必定大
b)、一个算法的空间复杂度大,则其时间复杂度必定小
c)、一个算法的时间复杂度大,则其空间复杂度必定小
d)、上述三种说法都不对
(8)在长为64 的有序线性表中进行顺序查找,最坏情况下需要比较的次数为______。
a)、63 b)、64 c)、6 d)、7
(9)数据库技术的根本目标是要解决数据的______。
a)、存储问题 b)、共享问题 c)、安全问题 d)、保护问题
(10)对下列二叉树:

进行中序遍历的结果是______。
a)、acbdfeg b)、acbdfge c)、abdcgef d)、fcadbeg
(11)下列有关内联函数的叙述中,正确的是______。
a)、内联函数在调用时发生控制转移
b)、内联函数必须通过关键字inline 来定义
c)、内联函数是通过编译器来实现的
d)、内联函数体的最后一条语句必须是rennin 语句
(12)下列情况中,不会调用拷贝构造函数的是______。
a)、用一个对象去初始化同一类的另一个新对象时
b)、将类的一个对象赋予该类的另一个对象时
c)、函数的形参是类的对象,调用函数进行形参和实参结合时
d)、函数的返回值是类的对象,函数执行返回调用时
(13)下列有关继承和派生的叙述中,正确的是______。
a)、如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员
b)、派生类的成员函数可以访问基类的所有成员
c)、基类对象可以赋值给派生类对象
d)、如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类
(14)下列运算不能重载为友元函数的是______。
a)、= ( ) [] -> b)、+ - ++ --
c)、> < >= <= d)、+= -= *= /=
(15)关于在调用模板函数时模板实参的使用,下列表述正确的是______。
a)、对于虚类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,
则都可以省略
b)、对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,
f
c e
a d
b
g
则都可以省略
c)、对于虚拟型参数所对应的模板实参,若能够省略则必须省略
d)、对于常规参数所对应的模板实参,任何情况下都不能省略
(16)下列关于输入流类成员函数getline( )的描述中,错误的是______。
a)、该函数是用来读取键盘输入的字符串的
b)、该函数读取的字符串长度是受限制的
c)、该函数读取字符串时,遇到终止符便停止
d)、该函数读取字符串时,可以包含空格
(17)下列符号中,正确的c++标识符是______。
a)、enum b)、2b c)、foo-9 d)_32
(18)下列语句中,错误的是______。
a)、const int buffer=256; b)、const double*point;
c)、int const buffer=256; d)、double*const point;
(19)if 语句的语法格式可描述为
格式1:if(<条件>)<语句>
或
格式2:if(<条件>)<语句1>else<语句2>
关于上面的语法格式,下列表述中错误的是
a)、<条件>部分可以是一个if 语句,例如if(if(a =0)⋯)⋯
b)、<条件>部分可以是一个if 语句,例如if(⋯)if(⋯)⋯
c)、如果在<条件>前加上逻辑非运算符!并交换<语句1>和<语句2>的位置,语句功
能不变
d)、<语句>部分可以是一个循环语句,例如if(⋯)while(⋯)⋯
(20)有如下说明
int a [10]={1,2,3,4,5,,6,7,8,9,10},*p=a;
则数值为9 的表达式是______。
a)、*p+9` b)、*(p+8) c)、*p+=9 d)、p+7
(21)或下面的函数调用
fun(a+b,3,max(n-1)b)
则fun 的实参个数是______。
a)、3 b)、4 c)、5 d)、6
(22)以下关键字不能用来声明类的访问权限的是______。
a)、public b)、static c)、protected d)、private
(23)在公有继承的情况下,允许派生类直接访问的基类成员包括______。
a)、公有成员 b)、公有成员和保护成员
c)、公有成员、保护成员和私有成员 d)、保护成员
(24)关于运算符重载,下列表述中正确的是______。
a)、c++已有的任何运算符都可以重载
b)、运算符函数的返回类型不能声明为基本数据类型
c)、在类型转换符函数的定义中不需要声明返回类型
d)、可以通过运算符重载来创建c++中原来没有的运算符
(25)关于关键字class 和typename,下列表述中正确的是______。
a)、程序中的typename 都可以替换为class
b)、程序中的class 都可以替换为typename
c)、在模板形参表中只能用typename 来声明参数的类型
d)、在模板形参表中只能用class 或typename 来声明参数的类型
(26)有如下程序
#include<inostream>
#include<iomanip>
using namespace std;
int main(){
count<<setpresision(3)<<fixed<<setfill(‘*”)<<setw(8);
count <<12,345<< <<34,567;
return 0;
}
若程序的输出是:
**12.345**34.567
则程序中下划线处遗漏的操作符是______。
a)、setprecision(3) b)、fixed c)、setfill('*') d)、stew(8)
(27)有如下程序
#include<iostream>
#include<iomanip>
using namespace std;
class myclass{
public:
myclass(){cout<<’a”;}
myclass(char c {cout<<c;}
~myclass(){sout<<’b”;}
};
int main(){
myclassp1,*p2
p2=new myclass(‘x’);
delete p2;
return 0;
}
执行这个程序幕上将显示输出______。
a)、abx b)、abxb c)、axb d)、axbb
(28)有如下程序
#include<iostream>
using namespace std;
int i=1;
class fun{
public;
static int i;
int value(){return i-1}
int value ()const{return i+1;}
};
int fun;;i=2;
int main(){
int i=3;
fun fun1
const fun fun2;
return 0;
}
若程序的输出结果是:
123
则程序中下划线处遗漏的语句是______。
a)、cout<<fun1,value() fun::i<<fun2,value();
b)、cout<<fun::i <<fun1. value()<<fun2,value();
c)、cout<<fun1. value()<<fun2.value()<<fun::i;
d)、cout<<fun2. value()<<fun::i<<fun1.value();
(29)有如下程序
#include<iostream>
using namespace std;
class obj{
static int i;
public:
obj(){i++;}
~obj(){i--;}
static int getval(){teturn i;}
};
int obj::i=0;
void f (){obj ob2;cout<<ob2.getval();}
int main(){
obj obl;
f();
obj*ob3=new obj;cout<<ob3->getval();
delete ob3;cout<<obj::getval();
return0;
}
程序的输出结果是______。
a)、232 b)、231 c)、222 d)、221
(30)有如下程序
#include<iostream>
using namespace std;
class base{
protected;
base(){cout<<’a’;}
base(char c){cout<<c;}
};
class derived; public base{
public:
derived(char c ){cout <<c;}
};
int main(){
derived d1(‘b’);
return 0;
}
执行这个程序屏幕上将显示输出______。
a)、b b)、ba c)、ab d)、bb
(31)有如下类定义:
class mybase{
int k;
public;
mybase(int n=0):k(n){}
int value()const{return k;}
};
class myderived; mybase{
int j;
public;
myderived(int i): j(i){}
int getk()const {return k;}
int gutj()const{return j;}
};
编译时发现有一处语法错误,对这个错误最佳准确的描述是
a)、函数getk 试图访问基类的私有成员变量k
b)、在类myderived 的定义中,基类名mybase 前缺少关键字public、protected 或private
c)、类myderived 缺少一个无参的构造函数
d)、类myderived 的构造的数没有对基数数据成员k 进行初始化
(32)在一个派生类对象结束其生命周期时
a)、先调用派生类的析构函数后调用基类的析构函数
b)、先调用基类的析构函数后调用派生类的析构函数
c)、如果基数没有定义析构函数,则只调用派生类的析构函数
d)、如果派生类没有定义析构函数,则只调用基类的析构函数
(33)有如下的运算重载函数定义:
double operator+(int i, int k){return double(i+k);}
但定义有错误,对这个错误的最准确的描述是______。
a)、+只能作为成员函数重载,而这里的+是作为非成员函数重载的
b)、两个int 型参数的和应该是int 型,而这里将+的返回类型声明为double
c)、没有将运算符重载函数声明为某个类的友元
d)、c++已经提供了求两个int 型数据之和运算符+,不能再定义同样的运算符
(34)语句ofstreamf(“salary.dat”,ios_base::app)的功能是建立流对象f,并试图打开
文件salary.dat 与f 关联,而且______。
a)、若文件存在,将其置为空文件;若文件不存在,打开失败
b)、若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件
c)、若文件存在,将文件指针定位于文件首;若文件不存在,打开失败
d)、若文件存在,打开失败;若文件不存在,建立一个新文件
(35)有如下程序
#include<iostream>
using namespace std;
class a{
public:
virtual void funcl(){cout<< “a1”;}
void fune2(){cout<< “a2”;}
};
class b: public a{
public:
void func1(){cout<< “b1”;}
void func2(){cout<< “b2”;}
};
int main(){
a*p=new b;
p->funcl();
p->func2();
retum0;
}
运行程序,屏幕上将显示输出______。
a)、b1b2 b)、a1a2 c)、b1a2 d)、a1b2
二、填空题(每空2 分,共30 分)
请将每一个空的正确答案写在答题卡[1]~[15]序号的横线上,答在试卷上不得分。
(1)下列软件系统结构图

的宽度为 [1] 。
(2) [2] 的任务是诊断和改正程序中的错误。
(3)一个关系表的行为 [3] 。
(4)按“行进后出”原则组织数据的数据结构是 [4] 。
(5)数据结构分为线性结构和非线性结构,带链的队列属于 [5] 。
(6)若有定义语句:int*a,b;,则变量b 的数据类型是 [6] 。
(7)已知数组a 中的元素个数为n,下列语句的作用是将下标为i 的元素移动到下标
为i-1 的单元,其中1≤i<n。例如,当n=4,a 中原有数据为1,2,3,4 时,则移动后a
中元素为2,3,4,4。请将语句补充完整:
for(int i=0;i<n-1;i++) a[i]=a [7] 。
(8)已知递归函数f 的定义如下:
int f (int n)
{
if(n<=1)return 1;//递归结束情况
else return n*f(n-2);//递归}则函数调用语句f(5)的返回值是 [8] 。
(9)创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给
出数组元素的初值,则调用缺省构造函数,下列程序涉及到对象数组的创建和单个对象的创
建,其输出结果是 [9] 。
#include<iostream>
using namespace std;
class foo{
public:
foo(int x){cout <<’a”}
foo(){}
};
int main()
foo f[3],g(3);
return 0;
}
(10)习惯性在下列程序的输出结果是42,请将画线处缺失的部分补充完整。
#include<iostream>
using namespace atd;
class foo{
int value;
public:
foo():value(0){}
void setvalue(int
热门真题资料
- 历年四六级改错真题集合
- 历年四六级翻译真题集合
- 2009年1月自考经济法概论真题
- 2009年1月自考大学语文真题
- 2008年4月自考国际商法真题
- 2008年1月全国自考电子商务英语试题,课..
- 2008年1月全国自考电子商务与现代物流..
- 2008年1月全国自考中小学教育管理试题..
- 2008年全国1月自考电子商务网站设计原..
- 2008年全国1月自考财务报表分析试题,课..
- 2008年1月自考病理学试题,课程代码:02..
- 2008年1月全国自考财务管理学试题,课程..
- 2008年1月全国自考马克思主义政治经济..
- 中央机关及其直属机构2009年度考试录用..
- 2009年国家发改委关于考试录用公务员的..
- 2009年中央国家机关公务员考试招考部门..
