选择
1.必考☆.下面选项中不属于面向对象程序设计特征的是(C) 。
A)继承性 B)多态性 C)相似性 D)封装性
2.☆、下面说法正确的是( A )
A、构造函数可以重载,析构函数不能重载。
B、构造函数不能重载,析构函数可以重载。
C、构造函数可以重载,析构函数也可以重载。
D、构造函数和析构函数都不可以重载。
3、类AB的缺省构造函数和析构函数是( A )
A、AB( )和~AB( ) B、AB(int)和~AB( )
C、AB( )和~AB(delete ) D、AB( )和int~AB( )
4☆、如果在基类和派生类中都包含其他类的对象(即有对象成员),则在创建派生类的对象时,首先执行 A 的构造函数,接着执行 C 的构造函数,然后执行__ _B__的构造函数,最后才执行 D 的构造函数。
A、基类的对象成员 B、派生类的对象成员
C、基类 D、派生类
5、类CNum的缺省构造函数和析构函数是( A )
A、CNum ( )和~CNum ( ) B、CNum (int)和~CNum( )
C、CNum ( )和~CNum (delete ) D、CNum ( )和int~CNum ( )
6、假定MyClass为一个类,则执行“” MyClass a[3],*p[2];”语句时,自动调用该类构造函数的次数为( B )
A、2 B、3 C、4 D、5
7.下列情况中,哪一种情况不会调用拷贝构造函数( B )
A)用派生类的对象去初始化基类对象时
B)将类的一个对象赋值给该类的另一个对象时
C)函数的形参是类的对象,调用函数进行形参和实参结合时
D)函数的返回值是类的对象,函数执行返回调用者时
8考☆. 下列关于this指针的说法正确的是( B )
A)this指针存在于每个函数之中
B)在类的非静态函数中this指针指向调用该函数的对象
C)this指针是指向虚函数表的指针
D)this指针是指向类的函数成员的指针
9、在类外定义类的成员函数时,应当使用( b )来标识该函数为特定类的成员。
A、 : B、 :: C、-> D、this
10☆、对于类中定义的成员,其隐含访问权限为( B )
A、protected B、private C、public D、 static
11☆. 下列有关继承和派生的叙述中,正确的是( C )
A)派生类不能访问通过私有继承的基类的保护成员
B)多继承的虚基类不能够实例化
C)如果基类没有默认构造函数,派生类就应当声明带形参的构造函数
D)基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实现
12. 下列关于虚基类的描述中,错误的是(C)
A. 使用虚基类可以消除由多继承产生的二义性
B. 构造派生类对象时,虚基类的构造函数只被调用一次
C. 声明 class B:virtual public A 说明类B为虚基类
D. 建立派生类对象时,首先调用虚基类的构造函数
13、实现运行时的多态性,必须通过( A )来完成。
A、虚函数 B、重载函数 C、构造函数 D、析构函数
14☆、下面( A )是函数重载。
A、void play(int) 和void play(float)
B、play( ) 和 ~play()
C、void play(int) 和int play(int)
D、void play( ) 和int play( )
15. 以下哪一关键字可用于重载函数的区分( C )
A)extern B)static C)const D)virtual
16必考☆. 下列运算符中,不能重载的是( C )
A)&& B)!= C). D)->
17、下面有关重载函数的说法中正确的是(B )
A、重载函数必须具有不同的返回值类型;B、重载函数必须有不同的形参列表;
C、重载函数形参个数必须不同; D、重载函数名可以不同;
A、重载函数必须具有不同的返回值类型;B、重载函数必须有不同的形参列表;
C、重载函数形参个数必须不同; D、重载函数名可以不同;
18、已知类A是类B的友元,类B是类C的友元,则( D )
A、类A一定是类C的友元
B、类C一定是类A的友元
C、类C的成员函数可以访问类B的对象的任何成员
D、类A的成员函数可以访问类B的对象的任何成员
19、在C++中,若对函数未加说明,则函数的隐含类型是( A )
A、int B、double C、void D、char
20、以下不属于成员函数的是( B )
A、静态成员函数 B、友元函数
C、构造函数 D、析构函数
21. 可用作C++语言用户标识符的一组标识符是( B )。
A) void define +WORD B) a3_b3 _123 YN
C) for -abc Case D) 2a DO sizeof
22. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为(A)。
A) 0 B) 4 C) 8 D) 6
23. 下列有关数组的叙述中,正确的是( B )
A)C++中数组的存储方式为列优先存储
B)数组名可以作为实参赋值给指针类型的形参
C)数组下标索引从1开始,至数组长度n结束
D)数组指针的语法形式为:类型名 *数组名[下标表达式];
构造函数可以被重载24. 在下列关于C++函数的叙述中,正确的是( C )
A)每个函数至少要有一个参数 B)每个函数都必须返回一个值
C)函数在被调用之前必须先声明 D)函数不能自己调用自己
读程题:
1、 .#include<iostream.h>
class A{
int *a;
public:
A(int x){ a=new int(x); cout<<"*a="<<*a<<endl; delete a; }
class A{
int *a;
public:
A(int x){ a=new int(x); cout<<"*a="<<*a<<endl; delete a; }
};
void main()
{
A x(3), *p;
p=new A (5);
delete p;
}
void main()
{
A x(3), *p;
p=new A (5);
delete p;
}
*a = 3
*a = 5
2、class test{
private:
int num;
public:
test();
int GetNum() { return num;}
~test();
};
test::test(){ num=0; }
test::~test()
{ cout<<″Destructor is active″<<endl; }
void main()
{ test x[3];
cout<<″Exiting main″<<endl;
}
Exiting main
Destructor is active
Destructor is active
Destructor is active
3、 #include<iostream.h>
class A {
public:
virtual void fun()
{ cout<<"I'm class A"<<endl; }
};
class B: public A{
public:
void fun()
{ cout<<"I'm class B"<<endl; }
};
class C: public B{
public:
void fun()
{ cout<<"I'm class C"<<endl; }
};
void main()
{
A a,*pA=&a;
pA->fun();
B b;
pA=&b;
pA->fun();
C c;
a=c;
a.fun();
A &aRef=c;
aRef.fun();
}
I'm class A
I'm class B
I'm class A
I'm class C
4.#include
using namespace std;
int i = 0;
int fun(int n)
{
static int a = 2;
a++;
return a+n;
}
void main()
{
int k = 5;
{
int i = 2;
k += fun(i);
}
k += fun(i);
cout << k;
}
14
5.char str[] = "job", *p = str;
cout << *(p+2) << endl;
字符’b’
6.#include
using namespace std;
class A
{
public:
A (int i) { x = i; }
void dispa () { cout << x << “,”; }
private :
int x ;
};
class B : public A
{
public:
B(int i) : A(i+10) { x = i; }
void dispb() { dispa(); cout << x << endl; }
private :
int x ;
};
void main()
{
B b(2);
b.dispb();
}
12,2
编程题
1、下面是一个基于对话框的应用程序,用来求解一元二次方程的根。当用户在A、B、C 三个编辑框中输入3个参数后,单击【计算】按钮,将显示出该方程的根。(10分)
各控件对应的成员变量见下表:
控件ID号 | 变量类型 | 变量名 |
IDC_A_EDIT | int | m_a |
IDC_B_EDIT | int | m_b |
IDC_C_EDIT | int | m_c |
IDC_X1_EDIT | CString | m_x1 |
IDC_X2_EDIT | Cstring | m_x2 |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论