西安石油大学《面向对象程序设计》试题6Word下载.docx
《西安石油大学《面向对象程序设计》试题6Word下载.docx》由会员分享,可在线阅读,更多相关《西安石油大学《面向对象程序设计》试题6Word下载.docx(5页珍藏版)》请在冰豆网上搜索。
(4)设有定义doublearray[10],则表达式sizeof(array)/sizeof(array[0])的值为(
)。
array数组首地址
array数组元素个数
array数组每个元素所占字节数
array数组所占字节总数
(5)
要使p指向动态空间中的包含30个整型数据的数组,使用的定义语句为(
int*p=newint[30];
B、
int*p=newint(30);
C、int*p=new[30];
D、
*p=newint[30];
(6)
软件产品与其它软件产品组成一个整体的难易程度称为软件的(
A、可维护性
可复用性
C、兼容性
正确性
(7)
在类的定义中,通常把类的定义放在(
)中
A、主文件
实现文件
C、库文件
头文件
(8)
在一个以数组存储的队列类中,假定数组长度为MS,首元素位置为first,队列长度为length,则对首的后一个位置是(
A、first+1
(first+1)%MS
C、(first-1)%MS
(first+length)%MS
(9)
一个类的构造函数为"
A(intaa=1;
intbb=0){a=aa;
b=bb;
},则执行"
Ax(4);
"
后,x.a和x.b的值分别为(
A、1和0
1和4
C、4和1
4和0
(10)
AB为一个类,执行"
ABa
(2),b[3],*p[4];
调用构造函数的次数为(
A、3
4
C、5
9
(11)
作为成员函数进行双目运算符重载时,参数表中的参数个数为(
A、0
1
C、2
3
(12)
对一运算符重载时,参数表中若没有参数,则不可能的是(
A、该运算符是一单目运算符
B、该运算符函数有一个隐含的参数this
C、该运算符是作为成员函数
D、该运算符是作为友员函数
(13)
派生类的对象对基类的(
)可以直接访问。
A、公有继承的公有成员
B、公有继承的私有成员
C、公有继承的保护成员
D、私有继承的公有成员
二、填空题(每空1分,共17分)
(1)多行注释的开始标志符和结束标志符分别是
和
。
(2)假定x=5,y=6,则表达式x++*++y的值为
(3)假定x是逻辑变量,则x&
&
true的值为
(4)含随机函数的表达式rand()%20的值在
之间。
(5)若需要将字符串赋值到字符数组a中,需要执行
的字符串函数的调用。
(6)程序的编译是以
为单位进行的。
(7)数组名实际上是指向该数组
的指针,并且在任何时候都不允许
它。
(8)指针变量pv和pc定义为"
void*pv="
HelloWorld!
;
和"
char*pc;
,要将pv的值赋值给pc,正确的赋值语句为
(9)C++支持两种多态性:
时的多态性和
时的多态性。
(10)在一个以数组存储的队列类中,除了有保存数据的数组外,还有两个数据成员,个指明首元素位置另一个指明队列
(11)一个类的
函数通常用于释放动态分配的内存空间。
(12)一个类的构造函数为"
AB(intaa;
char*bb=NULL):
a(aa),b(bb){}"
,则该类至少包含
个数据成员。
(13)重载插入运算符,其返回类型应该是
三、程序填充题(每小题6分,共18分)
1、打印出2至99之间的所有素数(即不能被任何数整除的数)。
#include<
iostream.h>
math.h>
voidmain()
{
inti,n;
for(n=2;
___
(1)___;
n++){
inttemp=int(sqrt(n));
//求出n的平方根并取整
for(i=2;
___
(2)___;
i++)
if(n%i==0)___(3)___;
if(i>
temp)cout<
<
n<
'
'
}
cout<
/n'
}
(2)
(3)
2、对按从小到大排列的有序数组a[n]进行二分查找x的算法,若查找成功返回该元素下标,否则返回-1。
intBinarySearch(inta[],intx)
intlow=0,high=N-1;
//定义并初始化区间下界和上界变量
intmid;
//定义保存中点元素下标
while(low<
=high){
mid=___
(1)___;
if(x==a[mid])___
(2)___;
elseif(x<
a[mid])high=mid-1;
else___(3)___;
return-1;
3、
classA{
inta,b;
public:
A(intaa=0,intbb=0)
___
(1)___;
//分别用aa和bb初始化a和b
};
//定义类A的对象x,并用5初始化a;
同时定义y,并用x初始化a
___(3)___;
//定义指针p,使其指向x
四、写出程序运行结果(每小题6分,共18分)
1、
#include<
constintN=5;
voidmain()
{
inti,p=1,s=0;
for(i=1;
i<
N;
i++){
p=p*i;
s=s+p;
cout<
setw(5)<
i<
p;
s<
endl;
}
}
2、
chars[3][5]={"
1234"
"
abcd"
"
+-*/"
char*p[3];
for(intI=0;
I<
3;
I++)
p[I]=s[I];
for(I=2;
I>
=0;
I--)
p[I]<
endl;
classDate
voidSetDate(inty,intm,intd){year=y;
month=m;
day=d;
voidPrintDate()
{cout<
year<
/"
<
month<
day<
Date(){SetDate(2000,1,1);
Date(inty,intm,intd){SetDate(y,m,d);
protected:
intyear,month,day;
classTime
voidSetTime(inth,intm,ints){Houre=h;
Minutes=m;
Seconds=s;
voidPrintTime()
Houre<
:
Minutes<
Seconds<
Time(){SetTime(0,0,0);
Time(inth,intm,ints){SetTime(h,m,s);
intHoure,Minutes,Seconds;
classDate_Time:
publicDate,publicTime
Date_Time():
Date(),Time(){}
Date_Time(inty,intmo,intd,inth,intmi,ints):
Date(y,mo,d),Time(h,mi,s){}
voidPrintDate_Time(){PrintDate();
PrintTime();
Date_Timedt_a,dt_b(2000,10,1,6,0,0);
dt_a.PrintDate_Time();
dt_b.SetTime(23,59,59);
dt_b.PrintDate_Time();
dt_a.SetDate(2002,12,31);