A. 1 B. 2 C. 3 D. 4 25. 静态成员函数不能直接访问(25)。 A. 静态数据成员 B. 非静态数据成员 C. 静态成员函数 D. 类以外的函数和数据 26. 有关函数重载的以下叙述中,正确的是(26)。 A . 函数名不同,但参数的个数和类型相同
B. 函数名相同,但参数的个数不同或参数的类型不同 C. 函数名相同,参数的个数和类型也相同
D. 函数名相同,函数的返回值不同,而与函数的参数和类型无关 27. 建立包含有类对象成员的派生类对象时,自动调用构造函数的执行顺序为(27)的构造函数。
A. 自己所属类、对象成员所属类、基类 B. 对象成员所属类、基类、自己所属类 C. 基类、对象成员所属类、自己所属类 D. 基类、自己所属类、对象成员所属类 28. 为了避免嵌套的if语句的二义性,C++语言规定else与(28)配对。
A. 编辑时在同一列上的if B. 同一行上的if C. 其之后最近的if D. 其之前最近的还没有配对过的if 29. 以下关于函数的叙述中,正确的是(29)。
A. 函数的定义不能嵌套,但函数的调用可以嵌套
5
B. 函数的定义可以嵌套,但函数的调用不能嵌套 C. 函数的定义和调用都不能嵌套 D. 函数的定义和调用均可以嵌套
30. 以下的叙述中,不正确的是(30)。
A. 通常类的定义在前,该类的对象定义在后
B. 一个类可由多个基类派生,通常基类定义在前,派生类定义在后 C. 若一个类没有定义析构函数,则系统会自动为其产生一个缺省的析构
函数
D. 可以将构造函数定义为虚函数 二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行) ? 基本概念题,共5分
1. C++中有两种多态性:静态多态性和动态多态性。静态多态性是通过(1)来实现的,而动态多态性是通过(2)来实现的。
2. 在类的多重继承中,为了保证同一基类在派生类中只有一个拷贝,可通过(3)来实现。
3. 对于基本数据类型的静态变量,其缺省初值为(4)。 4. 执行语句:“int a=5,b=6,c;c=a++||b++;”后,b的值为(5)。 ? 阅读程序题,共13分 5. [程序](2分) #include int fun(int x,int &y) { int a=x; static int b=10; x=a+y;y=b+y;b=y+a; return (x++); }
void main(void) { int x=1,y=5; for(int i=0;i<3;i++){ cout<执行程序后,输出的第一行是(6),第二行是(7)。 6. [程序](3分)
6
#include
void fun(int *s,int n1,int n2) { while(n1void main(void) { int a[]={1,2,3,4}; fun(a,0,2);fun(a,1,3);fun(a,0,3); }
执行程序后,输出的第一行是(8),第二行是(9),最后一行是(10)。7. [程序](3分) #include
void fun(int *s,int p1,int p2) { int c; c=s[p1];s[p1]=s[p2];s[p2]=c; p1--;p2++; if(p1>p2)fun(s,p1,p2); }
void p(int b[],int i) { for(int j=0;j
void main() { int a[]={10,20,30,40,50,60}; fun(a,2,1);p(a,6); fun(a,5,2);p(a,6); fun(a,5,0);p(a,6);
7
}
执行程序后,输出的第一行是(11),第二行是(12),最后一行是(13)。 8. [程序](3分) #include int n1=0,n2=0,n3=0,n4=0; class T{ public: T(int a){ ia=a;n1++; } void print() { cout<class S1:public T{ int x; public: S1(int a,int c):T(a) { x=c; n2++; } void printS1() { cout<class S2:public T{ int y; public: S2(int a):T(10) { y=a; n3++; } void printS2() { cout<class S:public S1,public S2{ int xx; public: S(int a,int b,int c,int d):S1(a,b),S2(c) { xx=d; n4++; } void printS() { cout<void main(void) { T t1(2); S1 t2(3,4); S2 t3(5); S t4(6,7,8,9),*p; p=&t4; p->printS(); p->printS1(); p->printS2();
8