答案:
A
第14题(1.0分)题号:
2404
若有以下的定义inta[3][4];(*p)[4]=a;则与表达式*(a+1)+2不等价的是____.
A:
p[1][2]
B:
*(p+1)+2
C:
p[1]+2
D:
a[1]+2
答案:
A
第15题(1.0分)题号:
2410
若有以下说明和定义
structnode
{intdata;
node*next;
}a,*p;
不能正确表示结构体成员值的是____。
A:
a.data
B:
p->data
C:
(*p).data
D:
p.data
答案:
D
第16题(1.0分)题号:
4325
在定义类A时,下列______不可以作为类的成员。
A:
指向类A的对象指针
B:
类A的对象
C:
指向另一个不同的类的对象指针
D:
另一个不同类的对象
答案:
B
第17题(1.0分)题号:
3222
系统提供的默认拷贝构造函数中形参表和函数体分别为____.
A:
形参表为空,函数体为空
B:
形参表为空,函数体不为空
C:
形参表不为空,函数体为空
D:
形参表不为空,函数体不为空
答案:
C
第18题(1.0分)题号:
3627
下列程序的运行结果是____.
#include
classA{
public:
voidshow(){cout<<"A";}
};
classB:
A{
public:
voidshow(){cout<<"B";}
};
voidmain()
{Bb;A*p=&b;p->show();}
A:
A
B:
B
C:
A和B
D:
编译时出错
答案:
D
第19题(1.0分)题号:
1614
下列关于虚基类的描述中,错误的是____。
A:
设置虚基类的目的是为了消除二义性
B:
虚基类的构造函数在非虚基类之后调用
C:
若同一层包含多个虚基类,这些基类的构造函数按照它们的次序调用
D:
若虚基类由非基类派生而来,则仍然先调用基类构造函数,再用派生类的构造函数
答案:
B
第20题(1.0分)题号:
4340
若通过类的成员函数和友员函数实现的运算符重载功能是一样的,下列说法正确的是____
A:
两种函数的参数相同,函数体实现过程不同
B:
两种函数在程序中使用时编译器所作的解释相同
C:
两种函数在使用时表达式的形式不同
D:
重载为友元函数比重载为成员函数多一个参数
答案:
D
三、程序填空共2题(共计16分)
第1题(8.0分)题号:
629
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
阅读并完善下列程序。
-------------------------------------------------------*/
#include
classA{
ints[2];
public:
A(intx=0,inty=0){s[0]=x;s[1]=y;}
/***********SPACE***********/
______【?
】______//定义“=”重载函数
{s[0]=t.s[0];s[1]=t.s[1];return*this;}
Aoperator++()//定义前置++重载函数
{++s[0];++s[1];
/***********SPACE***********/
return____【?
】____;
}
/***********SPACE***********/
_______【?
】_________//定义后置++重载函数
{At=*this;++(*this);
/***********SPACE***********/
return【?
】;}
voidprint()
{cout<
};
voidmain()
{Aa1,a2,a3(10,20);
a1=a2=a3++;//连续赋值
a1.print();a2.print();a3.print();
}
答案:
1).Aoperator=(At)
2).*this
3).Aoperator++(int)
4).t
第2题(8.0分)题号:
635
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
下列程序可求数组a中最小的元素在数组中的位置,并返回之。
请完善程序。
-------------------------------------------------------*/
#include
#include
fun(inta[],intn)
{
inti,p;
/***********SPACE***********/
【?
】;
for(i=1;i/***********SPACE***********/
if(a[i]】;
return(p);
}
voidmain()
{
inta[]={41,23,45,7,89,10},k;
/***********SPACE***********/
k=sizeof(a)/【?
】;
/***********SPACE***********/
cout<】,k);
}
答案:
1).p=0
2).p=i
3).sizeof(int)
4).a