};
下列选项中,输出结果为A0的语句是
A)YYy1(0,0);
B)YYy2
(1);
C)YY y3(0);
D)YY y4;
(32)有如下程序:
#include
Usingnamespacestd;
classA{
public:
virtualvoidf(){cout+1;}
voidg(){cout<<2;}
};
classB:
publicA{
public:
virtualvoidf(){cout<<3;}
voidg(){ecut<<4;}
};
voidshow(A&a){a.f();a.g();}
intmain(){
Bb;
show(b);
return0;
}
运行时的输出结果是
A)12
B)34
C)14
D)32
(33)有如下程序:
#include
usingnamespacestd;
classPair{
intm;
intn;
public:
Pair(inti,intj):
m(i),n(j){}
bootoperator>(pairp)const; //须在类体外给出定义
};
intmain(){
PairAl(3,4),p2(4,3);p3(4,5);
Cout<<(pl>p2)<<(P2>P1)<<(p2>p3)<<(p3>p2);
return0;
}
运算符函数。
operator>的功能是比较两个Pair对象的大小,当左边对象大时,返回true,否则返回false。
比较规则是首先比较两对象的m成员,m大者为大;当m相等时比较n,n大者为大。
程序输出0101,下列对运算符重载函数的正确定义是
A)boolPair:
:
operator>(Pairp)const
{if(m!
=p.m)returnm>p.m;returnn>p.n;}
B)boolPair:
;operator>(Pairp)
{if(m!
=p.m)returnm>p.m;returnn>p.n;}
C)boolPair:
:
operator>(Pairp)const
{if(m>p.m)returntrue;returnn>p.n;}
D)boolPair:
;operator>(Pairp)
{if(m>p.m)returntrue;returnn>p.n;}
(34)假定下列语句都是程序运行后首次执行的输出语句,其中输出结果与另外三条语句不同的语句是
A)cout< B)cout< C)cout<<123< D)cout< (35)有如下程序:
#include
usingnamespacestd;
classONE{
intc;
public:
ONE():
c(0){cout<<1;}
ONE(intn):
c(n){cout<<2;}
};
classTWO{
ONEonel;
ONEone2;
public:
TWO(intm):
one2(m){cout<<3;}
};
intmain()t
TWOt(4)
return0
}
运行时的输出结果是
A)3
B)23
C)123
D)213
二、填空题(每空2分,共30分)
(1)假设用一个长度为50的数组(数组元索的下标从0到49)作为栈的存化空间,栈底指针bottom指间 栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=30(数组下标),则栈中具有【1】 个元素。
(2)软件测试可分为白盒测试和黑盒测试。
基本路径测试属于【2】测试。
(3)符合结构化原则的三种基本控制结构是:
选择结构、循环结构和【3】。
(4)数据库系统的核心是【4】。
(5)在E-K图中,图形包括矩形框、菱形框、椭圆框。
其中表示实体联系的是【5】框。
(6)有如下程序段:
intx=1,Y=2,z=3;
x=x^z;
y=y^z;
z=x^y;
cout< 执行这个程序段的输出是【6】。
(7)有如下程序段:
fer(inti=1;i<=50;i++){
if(i%3!
=0)
continue;
else
if(i%5!
=0)
continue;
tout<
}
执行这个程序段的输出是【7】。
(8)有如下程序段:
Char c[20]=“examination”;
c[4]=0;
cout< 执行这个程序段的输出是【8】。
(9)下面的函数利用递归实现了求1+2+3+……+n的功能:
intsum(intn){
if(n==0)
return0;
else
returnn+sum(n-1);
}
在执行sum(10)的过程中,递归调用sum函数的次数是【9】。
(10)非成员函数应该声明为类【10】函数才能访问该类的私有成员。
(11)有如下程序:
#include
usingnamespacestd;
classMonitor{
public:
Monitor(chart):
type(t){}
voidprint()const
{cout<<“Thetypeofmonitoris”< private:
chartype;
};
classComputer{
public:
Computer(inti,charc):
【11】{}
voidPrint()const
{cout<<“Thecomputeris”< private:
intid;
Monitormon;
};
constComputermyComputer(101,'B‘);
myComputer.Print();
return0;
}
请将程序补充完整,使程序在运行时输出:
Thecomputeris101
'Thetypeofmonitori.s8
(12)有如下程序:
#include
usingnamespacestd
classAnimal{
public:
virtualchar*getType()const{return“Animal”;}
virtualchar*getVoice()const{return“Voice”;}
};
ClassDog:
publicAnimal{
public:
char*getType()const{return“Dog”;}
char*getVoice()const{return“Woof”}
};
voidtype(Animal&a){cout< voidspeak(Animala){cout< intmain(){
Dogd;type(d);cout<<“speak”;speak(d);cout< return0;
}
运行时的输出结果是【12】。
(13)补充完整下面的类定义:
constdoublePI=3.14;
classCircle{ //圆形物体的抽象基类
protected:
doubler; //半径
public:
Circle(doubleradius=0):
r(radius){}
【13】;//计算圆形物体表面积的纯虚函数声