1、【
单选题
】
关于运算符重载,下列表述中正确的是( )。
[1分]
、
c++已有的任何运算符都可以重载
、
运算符函数的返回类型不能声明为基本数据类型
、
在类型转换符函数的定义中不需要声明返回类型
、
可以通过运算符重载来创建c++中原来没有的运算符
答案:
2、【
单选题
】
软件设计中模块划分应遵循的准则是( )。
[1分]
、
低内聚低耦合
、
高内聚低耦合
、
低内聚高耦合
、
高内聚高耦合
答案:
3、【
单选题
】
如果类A被说明成类B的友元,则( )。
[1分]
、
类A的成员即类B的成员
、
类B的成员即类A的成员
、
类A的成员函数不得访问类B的成员
、
类B不一定是类A的友元
答案:
4、【
单选题
】
有如下类定义:
class Foo
{
public:
Foo(int v):value(V){}//①
~Foo(){}//②
private:
Foo(){}//③
int value=0://④
};
其中存在语法错误的行是( )。
[1分]
答案:
5、【
单选题
】
下面关于数组的描述错误的是( )。
[1分]
、
在C++语言中数组的名字就是指向该数组第一个元素的指针
、
长度为n的数组,下标的范围是0~n-1
、
数组的大小必须在编译时确定
、
数组只能通过值参数和引用参数两种方式传递给函数
答案:
6、【
单选题
】
运算符重载是对已有的运算符赋予多重含义,因此( )。
[1分]
、
可以对基本类型(如int类型)的数据,重新定义“+”运算符的含义
、
可以改变一个已有运算符的优先级和操作数个数
、
只能重载c++中已经有的运算符,不能定义新运算符
、
C++中已经有的所有运算符都可以重载
答案:
7、【
单选题
】
有如下类和对象的定义:
class Constants{
public:
static double getPI(){return 3.1416;}
};
Constants constants:
下列各组语句中,能输出3.1416的是( )。
[1分]
、
cout<getPI();和cout<<CONSTANTS::GETPI();
、
cout<<CONSTANTS.GETPI();和COUT<<CONSTANTS.GETPI();
、
cout<getPI();和cout<getPI();
、
cout<<CONSTANTS.GETPI();和COUT<
答案:
8、【
单选题
】
程序流程图中带有箭头的线段表示的是( )。
[1分]
、
图元关系
、
数据流
、
控制流
、
调用关系
答案:
9、【
单选题
】
下列程序的执行结果为( )。
#include
void main()
{
int a=3,b=0;
int*P =&a;
b=+a++;
cout<<*P<<”,”<<B<
}
[1分]
答案:
10、【
单选题
】
对长度为n的线性表排序,在最坏情况下,比较次数不是n(rt一1)/2的排序方法是( )。
[1分]
、
快速排序
、
冒泡排序
、
直接插入排序
、
堆排序
答案:
11、【
单选题
】
字面常量42、4.2、42L的数据类型分别是( )。
[1分]
、
long,double、int
、
lon9、float、int
、
int、double、long
、
int、float、long
答案:
12、【
单选题
】
下列叙述中正确的是( )。
[1分]
、
栈是“先进先出”的线性表
、
队列是“先进后出”的线性表
、
循环队列是非线性结构
、
有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
答案:
13、【
单选题
】
不能作为重载函数的调用的依据是( )。
[1分]
、
参数个数
、
参数类型
、
函数类型
、
函数名称
答案:
14、【
单选题
】
下列语句中,错误的是( )。
[1分]
、
const int buffer=256;
、
const double*point;
、
int const buffer=256;
、
double*eonst point:
答案:
15、【
单选题
】
下列运算符中,在c++语言中不能重载的是( )。
[1分]
答案:
16、【
单选题
】
有如下说明:
int a[10]={1,2,3,4,5,6,7,8,9,10},* P=a; 则数值为9的表达式是( )。
[1分]
、
*P+9
、
木(P+8)
、
*P+=9
、
P+8
答案:
17、【
单选题
】
执行下列语句段后,输出字符“*”的个数是( )。
for(int i=50;i>1;i-=2)Cout<<'*':
[1分]
答案:
18、【
单选题
】
算法的有穷性是指( )。
[1分]
、
算法程序的运行时间是有限的
、
算法程序所处理的数据量是有限的
、
算法程序的长度是有限的
、
算法只能被有限的用户使用
答案:
19、【
单选题
】
下面关于break语句的描述中,不正确的是( )。
[1分]
、
break可以用于循环体内
、
break语句可以在for循环语句中出现多次
、
break语句可以在switch语句中出现多次
、
break语句可用于if条件判断语句内
答案:
20、【
单选题
】
有如下类定义:
class Point
{
int xx.yy;
public:
Point():xx(0),yy(0){}
Point(int x,int Y=0):xx(X),YY(Y){}
};
若执行语句
Point a(2),b[3],幸c[4];
则Point类的构造函数被调用的次数是( )。
[1分]
答案:
21、【
单选题
】
有如下程序:
#include
using namespace std;
class Basel
{
public:
BaseI(int D.{cout<<D;}
一Basel(){}
};
class Base2
{
public:
Base2(int D.{tout<<D;}
~Base2(){}
};
class Derived:public Basel,Base2
{
public:
Derived(int a,int b,int c,int D.:Basel(B.,Base2(A.,bl(D.,b2(C.{}
private:
int bl:
int b2:
};
int main()
{
Derived d(1,2,3,4);
return 0;
}
执行这个程序的输出结果是( )。
[1分]
答案:
22、【
单选题
】
以下叙述正确的是( )。
[1分]
、
函数可以嵌套定义但不能嵌套调用
、
函数既可以嵌套调用也可以嵌套定义
、
函数既不可以嵌套定义也不可以嵌套调用
、
函数可以嵌套调用但不可以嵌套定义
答案:
23、【
单选题
】
必须用一对大括号括起来的程序段是( )。
[1分]
、
switCh语句中的Case标号语句
、
if语句的分支
、
循环语句的循环体
、
函数的函数体
答案:
24、【
单选题
】
软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是( )。
[1分]
、
学生成绩管理系统
、
C语言编译程序
、
UNIX操作系统
、
数据库管理系统
答案:
25、【
单选题
】
下面程序的运行结果为( )。
#include
void main()
{
for(int a=0,x=0;!x&&a<=10;a++)
{
a++:
}
cout<<A<
}
[1分]
答案:
26、【
单选题
】
有如下程序:
#include
using namespace std;
int i=1;
class Fun{
public:
static int i;
int value(){return i—l;}
int value()const{return i+1;}
};
int Fun::i=2;
int main(){
int i=3;
Fun funl;
const Fun fun2:
__________________
return 0;
}
若程序的输出结果是:
123
则程序中下画线处遗漏的语句是( )。
[1分]
、
cout<<FUNL.VALUE()<<FUN::I<<FUN2.VALUE();
、
tout<<FUN::I<<FUNL.VALUE()<<FUN2.VALUE();
、
cout<<FUNL.VALUE()<<FUIL2.VALUE()<<FUN::I:
、
eout<<FUN2.VALUE()<<FUN::I<
答案:
27、【
单选题
】
下列有关模板的叙述中,正确的是( )。
[1分]
、
函数模板不能含有常规形参
、
函数模板的一个实例就是一个函数定义
、
类模板的成员函数不能是模板函数
、
用类模板定义对象时,绝对不能省略模板实参
答案:
28、【
单选题
】
运算符重载时不需要保持的性质是( )。
[1分]
、
操作数个数
、
操作数类型
、
优先级
、
结合性
答案:
29、【
单选题
】
下列程序的输出结果为( )。
#include
{
if(n<1)return l;
else return n+time(n一1); return 0;
}
void main() {
cout<<FUNC(5)<
}
[1分]
答案:
30、【
单选题
】
有如下程序:
#include
using namespace std;
class MyClass{
public:
MyClass(int i=0){cout<<1;}
MyClass(const MyClass&x){cout<<2;}
MyClass&operator=(const MyClass&x){cout<<3;retum$this;}
~MyClass()}cout<<4;}
};
int main()
{
MyClass objl(1),obj2(2),obj3(objl);
retum 0;
{
执行这个程序的输出结果是( )。
[1分]
、
112444
、
11114444
、
121444
、
11314444
答案:
31、【
单选题
】
在下列模式中,能够给出数据库物理存储结构与物理存取方法的是( )。
[1分]
、
外模式
、
内模式
、
概念模式
、
逻辑模式
答案:
32、【
单选题
】
有如下程序:
#inClude using namespaCe std; Class Base{
publiC:
void output(){Cout<<1;}
virtual void Print(){Cout<<'B’;} };
Class Derived:publiC Base{ publiC:
void output(){Cout<<2;} void Print(){Cout<<’D ';} };
int main() {
Base * ptr=new Derived; ptr一>output();
ptr一>Print(); delete ptr;
retum0; }
执行这个程序的输出结果是( )。
[1分]
答案:
33、【
单选题
】
下列数据结构中,属于非线性结构的是( )。
[1分]
、
循环队列
、
带链队列
、
二叉树
、
带链栈
答案:
34、【
单选题
】
有如下程序:
#inClude using namespaCe std; Class A{
publiC:
statiC int a;
void init( ){。a=1;}
A(int a=2){init( );a++;} };
int A::a:0: A obj;
int main( ) {
Cout<<OBJ.A:&NBSP;&NBSP;&NBSP;
}
运行时输出的结果是( )。
[1分]
答案:
35、【
单选题
】
软件详细设计产生的图如下:
该图是( )。
[1分]
、
N—S图
、
PAD图
、
程序流程图
、
E—R图
答案:
36、【
单选题
】
秘序调试的任务是( )。
[1分]
、
设计测试用例
、
验证程序的正确性
、
发现程序中的错误
、
诊断和改正程序中的错误
答案:
37、【
单选题
】
有如下程序:
#include
using namespace std;
class A{
public:
virtual void fancl(){cout<<”Al”;}
void func2(){cout<<”A2”;}
};
class B:public A{
public:
void funcI(){tout<<”Bl”;}
void func2(){tout<<”B2”;}
};
intmain()}
A*P=new B:
P—>funcl();
P—>func2();
delete p;
return 0;
}
执行这个程序的输出结果是( )。
[1分]
、
B182
、
A1A2
、
B1A2
、
AIB2
答案:
38、【
单选题
】
下列字符串中。不可以用做c++标识符的是( )。
[1分]
、
y_2006
、
_EST_H
、
Return
、
switch
答案:
39、【
简答题】
请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程projl,其中有枚举DOGCOLOR、狗类Dog和主函数main的定义。程序中位于每个“//ERROR ****found****”下的语句行有错误,请加以改正。改正后程序的输出结果应该是:
There is a white dog named Hoh0. There is a blaCk dog named Haha. There is a motley dog named Hihi. 注意:只修改每个//ERROR****found****女料下的那一行,不要改动程序中的其他内容。
#inClude using namespaCe std; //狗的颜色:黑、白、黄、褐、花、其他
enum DOGCOLOR{BLACK,WHITE,YELLOW,BROWN,PIEBALD,OTHER}; Class Dog{//狗类
DOGCOLOR Color; Char name[20]; statiC int Count; publiC:
Dog(Char nalTle[],DOGCOLOR Color){ strCpy(this一>name,name);
//ERROR**********found**********、
strCpy(this一>Color,Color);
} 1 DOGCOLOR getColor()Const{retum Color;}
//ERROR**********found**********
Const Char * 9etName()Const{return*finin9;} Const Char * 9etColorString()Const{
switCh(Color){
Case BLACK:return”blaCk“; Case WHITE:return”white”:
Case YELLOW:return’"yellow”: Case BROWN:return”brown”; ease PIEBALD:return”piebald”:
}
return”motley”;
}
void show()Const{ . Cout<<”There is a”<<GETCOLORSTRING()<
} }; int main(){
//ERROR**********found**********
Dog dogl(”Hoh0”,WHITE),dog2(”Haha”,BLACK);d0g3(”Hihi”,0THER); d091.show();
dos2.show(); dos3.show(); return 0;
}
[18分]
解析:
(1)this->Color=Color:
(2)ConsL ChAr GEtNAmE()Eonst{rEturn*nAmE;}
(3)DoG DoGl(”Hoho”,WHITE)。DoG2(”HAhA”,BLACK),DoG3(”Hihi”,OTHER);
40、【
简答题】
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2。此工程中包含一个源程序文件main.cpp,其中有“房间”类Room及其派生出的“办公室”类0ffice的定义,还有主函数main的定义。请在程序中“//****found****”下的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:
办公室房间号:308
办公室长度:5.6
办公室宽度:4.8
办公室面积:26.88
办公室所属部门:会计科
注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“///料料found??料”。
#include
using namespaee std;
class Room{ //“房间”类
int room_n0;//房间号
double length;//房间长度(m)
double width;//房间宽度(n1)
public:
Room(int the—room—n0,double the~length,double the—width):loom—no(the—room—no),length(the—
length),width(the—width){}
int theRoomNo()eonst{return iDonl—n0;}
//返回房间号
double theLength()const{return length;}//返回房间长度
double theWidth()const{return width;}//返回房间宽度
//**********found**********
double theArea()const{_______________}//返回房间面积(矩形面积)
};
class Office:public Room{//“办公室”类
char*depart;//所属部门
public:
Office(int the_room_n0,double the_length,double the_width,eonst char木the_depart)
//**********found**********
:_______________{
depart=new char[strlen(the depart)+1];
//**********found**********
strcpy(_______________);
}
~Office(){delete[]depart;}
const char*theDepartment()const{return depart;}//返回所属部门
};
int main(){
//**********found**********
Office_______________;
cout<<”办公室房间号:”<<AU_OFFICE.THEROOMNO()<<ENDL
<<”办公室长度:”<<<endl
<<”办公室宽度:”<<<endl
<<”办公室面积:”<<<endl
<<”办公室所属部门:”<<ALL—OFFICE.THEDEPARTMENT()<
return 0;
}
[24分]
解析:
(1)rEturtl lEnGth*wiDth;
(2)Room(thE_room_no,thE_lEnGih,thE_wiDth)
(3)DEpArt,thE_DEpArt
(4)An_oFFiCE(308,5.6,4.8,”会汁科”)