C++程序设计练习题一 一、单项选择题 1. C++是一种( B )的程序设计语言。 A. 面向对象 B. 即可面向过程,又可面向对象 C. 面向过程 D. 面向系统 2. 在下面有关析构函数特征的描述中,正确的是( C )。 A. 一个类中可以定义多个析构函数 C. 析构函数不能指定返回类型 B. 析构函数名与类名完全相同 D. 析构函数可以有一个或多个参数 3. 下面对于友元函数描述正确的是( C )。 A. 友元函数的实现必须在类的内部定义 B. 友元函数是类的成员函数 C. 友元函数破坏了类的封装性和隐藏性 D. 友元函数不能访问类的私有成员 4. 下面描述中,表达错误的是( C )。  A. 公有继承时基类中的 public 成员在派生类中仍是 public 的    B. 公有继承时基类中的 private 成员在派生类中仍是 private 的    C. 公有继承时基类中的 protected 成员在派生类中仍是 protected 的   D. 保护继承时基类中的 public 成员在派生类中是 private 的 5. 所谓多态性是指( B ) A. 不同的对象调用不同名称的函数 C. 一个对象调用不同名称的函数 B. 不同的对象调用相同名称的函数 D. 一个对象调用不同名称的对象 6. 重载赋值操作符时,应声明为( C )函数。 A. 友元 B. 虚 C. 成员 D. 多态 7. 下列对模板的声明错误的是( B )。 A. template <class T1,typename T2> C. template < typename T> B. template <class T1, T2> D. template <class T1,class T2,class T3> 8. 下列类中( D )不是输入流类 istream 的派生类。 A. ifstream B.istrstream C. iostream D. ofstream 9. ( D )不是构造函数的特征。 A. 构造函数的函数名与类名相同 C. 构造函数可以设置缺省参数 B 构造函数可以重载 D 构造函数必须指定类型说明 10. 下列语句中错误的是( D )。 A. int *p=new int (10); C. int *p=new int; B. int *p=new int[10]; D. int *p=new int[40](0) 11. 下列关于虚基类的描述,错误的是( B ) A. 设置虚基类的目的是为了消除二义性 B. 虚基类的构造函数在非虚基类之后调用 C. 若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用 D. 若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数 12. 已知:print( )函数是一个类的常成员函数,它无返回值,下列表示中,( A )是正确的。 A. void print( ) const; B. const void print( ); C. void const print( ); D. void print(const); 13. 在下面有关静态成员函数的描述中,正确的是( B )。 A. 在静态成员函数中可以使用 this 指针 B. 在建立对象前,就可以为静态数据成员赋值 C. 静态成员函数在类外定义时,要用 static 前缀 D. 静态成员函数只能在类外定义 14. 在下列关键字中,用于说明类中公有成员的是( A )。 A. public B. private C. protected D. friend 15. 以下有关继承的叙述正确的是( B )。 A. 构造函数和析构函数都能被继承 B. 派生类是基类的组合 C. 派生类对象除了能访问自己的成员以外,不能访问基类中的所有成员 D. 基类的公有成员一定能被派生类的对象访问 16. 将客观实体的特征与行为作为不可分割的整体进行程序设计的方法称为( C )程序设计。 A. 面向应用 B. 面向过程 C. 面向对象 D. 面向系统 17. 构造函数是在( B )时被执行的。 A. 程序编译 B. 创建对象 C. 创建类 D. 程序装入内存 18. 静态成员函数仅能访问( A )。 A .静态的数据成员 B. 非静态的成员函数 C. 非静态的数据成员 D. 以上都不对 19. 要将类 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 20. 以下基类中的成员函数中表示纯虚函数的是( B )。 A. virtual void vf(int); B. virtual void vf(int)=0; C. virtual void vf(int=0); D. virtual void vf(int){ }; 21. 如有以下函数模板:B T min(T a,T b) { return a<b?a:b; } 则函数调用 min<int>(100,’b’); 返回的结果是( D )。 A. 100 B. 98 C. b D. d 22. 下列格式控制符中不是定义于 iostream.h 中的是( C )。 A. endl B. hex C. flush D. setw 23. 在类的定义中,用于为对象分配内存空间、对类的数据成员进行初始化并执行其他内部管理操作的函 数是( D )。 A.友元函数   B.虚函数   C.构造函数 D.析构函数 24. 下面的类型声明中正确的是( B )。 A. int &a[4]; B. int &*p; C. int & &q; 25. 下面对类的构造函数的定义正确的是( A )。 A. void X::X( 参数 ) B. X::X( 参数 ) D. int I,*pp=&I; C. int X::X( 参数 ) D. float X::X( 参数 ) 26. 当一个函数无返回值时,函数的类型应定义为( D )。 A. void B. 任意 D. 无 C. int 27. 已知类 A 是类 B 的友元,类 B 是类 C 的友元,则( D ) A. 类 A 一定是类 C 的友元 B. 类 C 一定是类 A 的友元 C. 类 C 的成员函数可以访问类 B 的对象的任何成员 D. 类 A 的成员函数可以访问类 B 的对象的任何成员 28. 执行下面的程序将输出( A ) A.XY B. YX C. X D. Y #include <iostream.h>   class BASE{     char c;   public:     BASE(char n):c(n){}     ~BASE(){cout<<c;}   };   class DERIVED:public BASE{     char c;   public:     DERIVED(char n):BASE(n+1),c(n){}     ~DERIVED(){cout<<c;}   };   int main()   {  DERIVED(‘X’);     return 0;   } 29. 能用友元函数重载的运算符是( A )。 A.+ B.= C.[] D.-> 30. ( A )是析构函数的特征。. A. 一个类中只能定义一个析构函数 C. 析构函数的定义只能在类体内 B. 析构函数在对象创建时调用 D. 析构函数可以有一个或多个参数 31. C++利用( A )实现面向对象程序设计的封装性。 A. 构造数据类型——类 C. 类的派生机制 B. 构造数据类型——枚举 D. 函数重载与运算符重载 32. 在声明类时,下面的说法正确的是( C )。 A. 可以在类的声明中给数据成员赋初值 B. 数据成员的数据类型可以是 register C. private、public、protected 可以按任意顺序出现 D. 没有用 private、public、protected 定义的数据成员是公有成员 33. 假设已经有定义 const char* const name="chen"; 下面的语句中正确的是( D )。 A. name[3]= 'a'; C. name=new char[5]; B. name="lin"; D. cout<<name[3]; 34. 要将类 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 35. 下列关于纯虚函数的描述中,正确的是( D )。 A. 纯虚函数是一种特殊的虚函数,它是个空函数 B. 具有纯虚函数的类称为虚基类 C. 一个基类中说明有纯虚函数,其派生类一定要实现该纯虚函数 D. 具有纯虚函数的类不能创建类对象 36. 能用友元函数重载的运算符是( A )。 A.+ B.= C.[] D.-> 37. 下面函数模板定义中不正确的是( A ) A.template<class T> T F(T x){ return T+x; } C.template<class T> T F(T x){ return x*x;} B.template<class T> T F(T x){ return x+x; } D.template<class T> T F(T x){ return x>1; } 二、判断题 1. 静态的成员函数没有隐含的 this 指针 ,所以它们只能访问静态的数据成员。( √ ) 2. 通过类对象可以访问类中所有的成员。( × ) 3. 构造函数是可以被派生类继承的。( × ) 4. 构造函数和析构函数都可以是虚函数。( × ) 5. 只有类中全部函数都为纯虚函数时,该类才被称为抽象类。( × ) 6. 对于同一个运算符来说,重载的运算符的优先级比未重载的运算符的优先级高。( × ) 7. 一个类的友元一定是另一个类的成员函数。( × ) 8. 1. .当一个函数无返回值时,函数的返回类型应为 void。( √ ) 9.new 和 delete 运算符可以被重载。( ×) 9. 3.在默

doc文档 C++程序设计

资格考试 > 外贸类 > 外销员 > 文档预览
48 页 0 下载 512 浏览 3.0分
温馨提示:如果当前文档出现乱码或未能正常浏览,请先下载原文档进行浏览。
C++程序设计 第 1 页 C++程序设计 第 2 页 C++程序设计 第 3 页 C++程序设计 第 4 页 C++程序设计 第 5 页
下载文档到电脑,方便使用
还有 43 页可预览,继续阅读
本文档由 lqtest 于 2021-09-03上传分享