面向对象几个自测题
选择题
1. 进行文件操作时,需要包含(1)_文件。
A) iostream B) fstream C) stdio.h D) stdlib.h
2. 若有定义:enum Weekday { sun=7,mon=1,tue,wed,thu,fri,sat }day;,以下正确的语句是(2) 。
A) mon++; B)int k=mon+1; C) day=7; D)day++;
3. 若有定义:int (*p)(int,int); ,则错误的叙述是(3) 。
A) p是一个指向返回值类型为int,带有两个int型参数的函数的指针
B) 该类型的变量p可以作为另外一个函数的参数
C) 若已定义了函数int Sum(int x,int y),则p可以指向函数Sum。
D) p可以作自增运算p++
4. 若已有定义:struct Student{ char *name,int age,float mark;}s[8]; Student* p=s;,以下语句(组),正确的是(4) 。
A) cin>>s[0].name>>s[0].age>>s[0].mark;
B) cin>>p->age>>p->mark;p->name="Liuhua";
C) s[1].name=new char[10];strcpy(p->name, "Liuhua");
D) p.name=new char[10]; strcpy(p->name, "Liuhua");
5.若有定义:int a,b;,下面引用变量的声明中,(5)是正确的。
A) int& ra=a; int& &rra=ra; B) int& y=10;
C) int& z=int; D) int &x=a; int &y=b;
6. 对于下面定义的类Myclass,在函数f中可以将对象obj的成员data值修改为50的语句是(6)。
class Myclass{
public:
Myclass(int x){ data=x; }
void SetNum(int value){ data=value; }
private:
int data;
};
void f(void){
Myclass obj(45),*ptr=&obj;
(6)
}
A) obj.data=50; B)obj.Myclass(50); C)ptr->SetNum(50); D)ptr->data=50;
7.下面叙述正确的是(7) 。
A) 基类的protected成员不能被派生类的成员函数访问
B) 基类的public成员能被派生类的对象直接访问
C) 基类的protected成员在派生类中可能是privated的
D) 基类的private成员不能被基类的成员函数访问
8. 构造函数不具备的特征的是 (8) 。
A) 构造函数的函数名与类名相同 B)构造函数可以重载
C) 构造函数必须有返回值类型 D)构造函数可以设置默认参数
9. 下面叙述错误的是(9) 。
A) 基类指针可以指向派生类对象 B) 基类指针可以指向基类对象
C) 派生类指针可以指向派生类对象 D) 派生类指针可以指向基类对象
(1)B (2)B (3)D (4)D (5)D (6)C (7)C (8)C (9)D