一、判断题
一个类的构造函数不可以被重载。( )
在说明语句 char a(‘A’),&b=a,*pa=&a;中,b的值的*pa的是相等的。( )
在不同类型操作数组成的表达式中,其表达式的类型一定是最高类型double型。( )
break语句也可以用于if体内,它可退出if语句。( )
引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。( )
被调函数只能通过return语句向主调函数返回一个值。( )
所谓私有成员是指只有类中所提供的成员函数才能直接访问它们,任何类以外的函数对它们的访问都是非法的。( )
在传值调用中,要求实参和形参个数相等,且类型完全一致或兼容。( )
二、选择题
下列关于对象概念的描述中,错误的是( )。
A)对象就是C语言中的结构变量;
B)对象代表着正在创建的系统中的一个实体;
C)对象是一个状态和操作(或方法)的封装体;;
D)对象之间的信息传递是通过消息进行的;
关于C++与C语言的关系的描述中,错误的是( )。
A)C语言是C++的一个子集; B)C语言与C++是兼容的;
C)C++对C语言进行了一些改进; D)C++和C语言都是面向对象的
( )是复制构造函数的特征:
A.一个类中只能定义一个复制构造函数;
B.复制构造函数的定义只能在类体内;
C.复制构造函数名与类名不同;
D.复制构造函数可以有一个或多个参数;
下面for循环的次数为( )。
for(int j=1, x=1; !x&&j<=5; j++)
A) 5; B) 4; C) 0; D)无穷;
定义重载函数时,下列要求错误的是( )。
A)要求参数的个数不同;
B)要求参数中至少有一个类型不同;
C)要求参数个数相同时,参数类型不同;
D)要求返回值不同。
下列关于new运算符的描述中,正确的是( )。
A) 它可以用来动态创建对象和对象数组;
B) 使用它创建的对象或对象数组不能使用运算符delete删除;
C) 使用它创建对象时不需要调用构造函数;
D)使用它创建对象数组时必须指定初始值。
若p是一个指向类A数据成员a的指针,A1是类A的一个对象。如果要给a赋值为5,正确的写法是( )。
A)A1.p=5; B)A1->p=5;
C)A1.*p=5; D)*A1.p=5;
下面对派生类的描述中,错误的是( )。
A)一个派生类可以作另一个派生类的基类;
B)派生类至少有一个基类;
C)派生类的成员除了它自己的成员外,还包含了它的基类成员;
D)派生类中继承的基类成员的访问权限到派生类保持不变;
下列的各类函数中,哪一个不是类的成员函数?( )
A)构造函数; B)析构函数
C)友元函数. D)复制构造函数
三、写出下列程序的运行结果
class A1
{
public:
A1()
{
cout<<"default constructor of A1 called"<<endl;
}
~A1()
{
cout<<"default deconstructor of A1 called"<<endl;
}
};
class A2
{
public:
A2()
{
cout<<"default constructor of A2 called"<<endl;
}
~A2()
{
cout<<"default deconstructor of A2 called"<<endl;
}
};
class B:public A2,public A1
{
public :
B()
{
cout<<"default constructor of B called"<<endl;
}
~B()
{
cout<<"default deconstructor of B called"<<endl;
}
};
void main()
{
B b;
}
#include<iostream.h>
void main( )
{ int *i_pointer, i;
i_pointer=&i;
i=10;
cout<<”Output int i=”<<i<<endl;
cout<<”Output int pointer i=”<<*i_pointer<<endl;
}
2、#include <iostream.h>
class Aclass
{ public:
Aclass( );
Aclass(int i,float j);
void print( );
private:
int x;
float y; };
Aclass::Aclass( )
{ x=1; y=0;
cout<<"Default constructor called./n"; }
Aclass::Aclass(int i,float j)
{ x=i; y=j;
cout<<"constructor called./n";
}
void Aclass::print( )
{ cout<<"x="<<x<<",y="<<y<<endl; }
void main( )
{ Aclass a,b(3,6.0);
a.print( );
b.print( );
}
#include <iostream.h>
using namespace std;
class A
{ public:
virtual void f( )
{ cout<<"A::f()"<<endl; }
};
class B:public A
{ public:
virtual void f( )
{ cout<<"B::f()"<<endl; }
};
void main( )
{ A *pa; A a; B b;
pa=&a; pa->f( );
pa=&b; pa->f( );
}
定义一个处理日期的类TDate,它有3个私有数据成员:Month,Day,Year和若干个公有成员函数,并实现如下要求:①实现一个默认构造函数,要求设置三个私有成员为0;②实现一个带参构造函数;③实现一个复制构造函数;④定义一个友元函数来打印日期;⑤定义一个非静态成员函数设置日期;