一、单选题
1、 一个C++源程序文件的扩展名为(C) A、.h B、.c
C、.cpp D、.cp
2、 与C语言printf(“Hello,World\\n”);语句功能相同的C++语句是(B) A、cout>>”Hello,World\\n”; B、cout<<”Hello,World\\n”; C、cin>>”Hello,World\\n”; D、cin<<”Hello,World\\n”;
3、 C++语言中,所有函数说明都必须指明返回值类型,没有返回值的应把函数类型说明为(D ) A、int B、char C、float D、void 4、 对使用关键字new所开辟的动态存储空间,释放时必须使用( C) A、free B、create C、delete D、realse 5、 下列标识符中,不合法的用户标识符为(A )。 A、a#b B、_int C、a_10
D、PAd
6、 一个函数功能不太复杂,但要求被频繁调用,则应把它定义为(A ) A、内联函数 B、重载函数 C、递归函数 D、嵌套函数 7、 int Func(int,int); 不可与下列哪个函数构成重载(B) A、int Func(int ,int ,int); B、double Func(int,int); C、double Func(double, double); D、double Func(int ,double);
8、 下列关于函数参数默认值的描述中,正确的是( B) A、函数参数的默认值只能设置一个
B、若一个函数含有多个参数,其中一个参数设置成默认值后,其后所有参数都必须设置默认值。 C、若一个函数含有多个参数,则设置默认参数时可以不连续设置默认值 D、C++语言中函数都必须设有默认值 9、 如果没有为一个类定义任何构造函数的情况下,下列描述正确的是(A ) A、编译器总是自动创建一个不带参数的构造函数 B、这个类没有构造函数 C、这个类不需要构造函数 D、该类不能通过编译 10、假定AB为一个类,则执行AB x;语句时将自动调用该类的(B ) A、有参构造函数 B、无参构造函数 C、拷贝构造函数 D、赋值构造函数
11、假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为(B )
A、x.a B、x.a() C、x->a D、x->a() 12、静态数据成员的初始化必须在(B ) A、类内 B、类外
C、构造函数内
D、静态成员函数内
13、如果类A被说明成类B的友元,则( D)。 A、类A的成员即类B的成员 B、类B的成员即类A的成员 C、类A的成员函数不得访问类B的成员 D、类A的成员函数可以访问类B的成员 14、以下叙述错误的是(A ) A、派生类一般都用公有派生 C、赋值兼容规则也适用于多重继承的组合 15、解决二义性问题的方法有(C ) A、只能使用作用域分辨操作符。 C、使用作用域分辨操作符或虚基类。
B、对基类成员的访问必须是无二义性的
D、基类的公有成员在派生类中仍然是公有的 B、使用作用域分辨操作符或赋值兼容规则。 D、使用虚基类或赋值兼容规则。
第 1 页 共 6 页
16、建立包含有类对象成员的派生类对象时,自动调用构造函数的执行顺序依次为( C) A、自己所属类、对象成员所属类、基类的构造函数 B、对象成员所属类、基类、自己所属类的构造函数 C、基类、对象成员所属类、自己所属类的构造函数 D、基类、自己属性类、对象成员所属类的构造函数 17、实现两个相同类型数加法的函数模板的声明是(C ) A、add(T x,T y) B、T add(x,y) C、T add(T x,y) 18、所谓多态性是指(B )
A、不同的对象调用不同名称的函数 C、一个对象调用不同名称的函数
D、T add(T x,T y)
B、不同的对象调用相同名称的函数 D、一个对象调用不同名称的对象
)
D、函数体
19、在派生类中定义虚函数时,与基类中相应的虚函数不同的是(D A、参数类型 B、参数个数 C、函数名称
20、要将类A说明是类B的虚基类,正确的描述是( B ) A、class virtual B:public A B、class B:virtual public A C、virtual class B:public A D、class B:public A virtual 二、填空题
1、在面向对象程序设计框架中, 对象 是程序的基本单元。
2、一个C++程序的开发步骤通常包括编辑、编译、 链接 、运行和调试。 3、C++语言支持的两种多态性分别是编译时的多态性和 的多态性。
4、假定A为一个类,则语句A(A &a);为该类 复制构造 函数的原型说明。
5、不同对象可以调用相同名称的函数,但可导致完全不同的行为的现象称为_函数重载___ ____。 6、在C++中,声明布尔类型变量所用的关键字是__bool___ ___。
7、对象成员构造函数的调用顺序取决于这些对象成员在 声明 的顺序,与它们在成员初始化列表中给出的顺序无关。
8、 友元函数 提供了不同类或对象的成员函数之间、类的成员函数与一般函数之间进行数据共享的机制。
9、设在程序中使用如下语句申请了一个对象数组:
Point * ptr = new Point[2];
则在需要释放ptr指向的动态数组对象时,所使用的语句是_delete[]ptr;_______。 10、类A有如下成员函数
int A::fun(double x){return (int) x/2;} int A::fun(int x){return x*2;} 设a为类A的对象,在主函数中有int s=a.fun(6.0)+a.fun(2),则执行该语句后,s的值为___7_____。 三、程序分析题
1、 写出下面程序的输出结果。 #include { for(int i=-1;i<4;i++) cout<<(i?’0’:’*’); } 结果为:0*000 2、 写出下面程序的输出结果。 #include 第 2 页 共 6 页 Test(int n=0){num=n;num++;} ~Test(){cout<<”Destructor is active, number=”< void main() { Test x[2]; cout<<”Exiting main”< 3、 给出下面程序的输出结果。 #include Sample(T i){n=i;} int operator==(Sample &); }; template int Sample { Sample s1 与 s2的数据成员不相等 s3与s4的数据成员相等 4、 给出下面程序的输出结果。 #include { public: virtual int func(){return 0;} }; class test: public aa { public: int func(){ return 58; } }; void main() 第 3 页 共 6 页 { test d; aa &b=d; cout< 5、 写出下面程序的输出结果。 #include { int Year,Month,Day; public: Date(int y=2009,int m=9,int d=10){Year=y; Month=m; Day=d;} void PrintDate(){cout< class Time { int Hour,Minutes,Seconds; public: Time(int h=2,int m=45,int s=0){Hour=h; Minutes=m;Seconds=s;} void PrintTime(){cout< Date_Time(){}; Date_Time(int y,int mo,int d,int h=0,int mi=0,int s=0):Date(y,mo,d),Time(h,mi,s){} void PrintDate_Time(){PrintDate(); PrintTime();} }; void main() { Date_Time a,b(2010,1,28,3,0,0),c(2010,2,1,12,0); a.PrintDate_Time(); b.PrintDate_Time(); c.PrintDate_Time(); } 输出结果: 2009/9/10 2:45:0 2010/1/28 3:0:0 2010/2/1 12:0:0 第 4 页 共 6 页 四、完成程序题 1、 请在横线处填上适当的语句,以使程序完整。 #include Point(int a, int b){ x=a; y=b; cout<<\"Point...\"< Rectangle(int a, int b, int h, int w):_ Point( a, b)_______________ //构造函数初始化列表 { H=h; W=w; cout<<\"Rectangle...\"< { Rectangle r1(3,4,5,6); r1.Showxy( ); r1.Show( ); } 2、 请在横线处填上适当的语句,以使程序完整。 #include __virtual_______ void func( ){ cout << \"CA \" << \"->\"; } ~A( ) { } _ virtual _______ void fund( ){ cout << \"DA \" << \"->\"; } }; class B : public A { public: B( ) { func( ); } //自己类中没有func()函数,则调用基类中的虚函数。 void fun( ) { cout<<\" go \"; func( ); } ~B( ) { fund( ); } //自己类中没有fund()函数,则调用基类中的虚函数。 }; class C : public B { public: C( ) { } void func( ) { cout <<\"CC\" << \"->\"; } ~C( ) {fund();} //自己类中有fund()函数,则调用自己类中的成员函数。 void fund( ){ cout << \"DC \" << \"->\"; } }; void main( ) 第 5 页 共 6 页 { C c; c.fun( ); } //行动结果为:CA->go CC->DC->DA 第 6 页 共 6 页 因篇幅问题不能全部显示,请点此查看更多更全内容