c++练习题(带答案)_第1页
c++练习题(带答案)_第2页
c++练习题(带答案)_第3页
c++练习题(带答案)_第4页
c++练习题(带答案)_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一 选择题一 选择题 1 C 语言属于 C A 自然语言 B 机器语言 C 面向对象语言 D 汇编语言 2 下面选项中不属于面向对象程序设计特征的是 C A 继承性 B 多态性 C 相似性 D 封装性 3 可用作 C 语言用户标识符的一组标识符是 B A void define WORD B a3 b3 123 YN C for abc CaseD 2a DO sizeof 4 假定一个二维数组的定义语句为 int a 3 4 3 4 2 8 6 则元素 a 2 1 的值为 A A 0 B 4 C 8 D 6 5 下列情况中 哪一种情况不会调用拷贝构造函数 B A 用派生类的对象去初始化基类对象时 B 将类的一个对象赋值给该类的另一个对象时 C 函数的形参是类的对象 调用函数进行形参和实参结合时 D 函数的返回值是类的对象 函数执行返回调用者时 6 以下哪一关键字可用于重载函数的区分 C A externB staticC constD virtual 7 下列有关数组的叙述中 正确的是 B A C 中数组的存储方式为列优先存储 B 数组名可以作为实参赋值给指针类型的形参 C 数组下标索引从 1 开始 至数组长度 n 结束 D 数组指针的语法形式为 类型名 数组名 下标表达式 8 下列有关继承和派生的叙述中 正确的是 C A 派生类不能访问通过私有继承的基类的保护成员 B 多继承的虚基类不能够实例化 C 如果基类没有默认构造函数 派生类就应当声明带形参的构造函数 D 基类的析构函数和虚函数都不能够被继承 需要在派生类中重新实现 9 实现运行时多态的机制是 A A 虚函数B 重载函数C 静态函数D 模版函数 10 若有下面的函数调用 fun a b 3 max n 1 b 其中实参的个数是 A A 3B 4C 5D 6 11 下列关于 this 指针的说法正确的是 B A this 指针存在于每个函数之中 B 在类的非静态函数中 this 指针指向调用该函数的对象 C this 指针是指向虚函数表的指针 D this 指针是指向类的函数成员的指针 12 在下列关于 C 函数的叙述中 正确的是 C A 每个函数至少要有一个参数B 每个函数都必须返回一个值 C 函数在被调用之前必须先声明D 函数不能自己调用自己 13 下列运算符中 不能重载的是 C A 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 A 13B 14C 15D 16 15 下面的程序段的运行结果为 D char str job p str cout p 2 endl A 98 B 无输出结果 C 字符 b 的地址 D 字符 b 16 下面程序的输出结果是 C 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 A 10 2B 12 10C 12 2D 2 2 17 下面程序的输出结果是 C include using namespace std class Base public Base int i cout i Base class Base1 virtual public Base public Base1 int i int j 0 Base j cout i Base1 class Base2 virtual public Base public Base2 int i int j 0 Base j cout i Base2 class Derived public Base2 public Base1 public Derived int a int b int c int d mem1 a mem2 b Base1 c Base2 d Base a cout b private Base2 mem2 Base1 mem1 void main Derived objD 1 2 3 4 A 134122B 123412C 14302012D 143212 18 下面程序的输出结果是 C include using namespace std class Base public virtual void f cout f0 void g cout g0 class Derived public Base public void f cout f void g cout f p g A f g B f0 g C f g0 D f0 g0 19 下面程序的输出结果是 C include using namespace std class Sample friend long fun Sample s if s x 2 return 1 return s x fun Sample s x 1 public Sample long a x a private long x void main int sum 0 for int i 0 i 4 i sum fun Sample i cout sum A 12B 16C 10D 34 20 以下程序的输出结果是 D include using namespace std int fun char s char p s while p 0 p return p s void main cout fun abc endl A 0 B 1 C 2 D 3 21 有如下程序段 int i 1 while 1 i if i 10 break if i 2 0 cout GetValue D x GetValue 25 假定 AA 为一个类 int a 为该类的一个成员函数 若该成员函数在类定义体 外定义 则函数头为 A A int AA a B int AA a C AA a D AA int a 26 有如下程序 include using namespace std class Test public Test Test cout int main Test temp 2 pTemp 2 return 0 执行这个程序输出星号 的个数为 B A 1 B 2 C 3 D 4 27 有如下程序 include using namespace std class MyClass public MyClass int i 0 cout 1 MyClass const MyClass MyClass return this MyClass cout 4 int main MyClass obj1 1 obj2 2 obj3 obj1 obj1 obj2 return 0 运行时的输出结果是 A A 1123444 B 11114444 C 121444 D 11314444 28 有如下程序 include using namespace std class point public static int number public point number point number int point number 0 void main point ptr point A B point ptr point new point 3 ptr ptr point point C delete ptr cout 1 include using namespace std int f int int main int n s cout n s f n cout The result is s endl return 0 int f int n 递归法求立方和函数 if n 1 return 1 else return f n 1 n n n 3 请将下列程序补充完整 使得输出结果为 Destructor Derived Destructor Base include using namespace std class Base public virtual Base cout Destructor Base endl class Derived public Base public Derived cout Destructor Derived endl void main Base pBase new Derived delete pBase 三 阅读程序 写出运行结果 1 include include using namespace std class CD char name 20 int number public void Init char aa int bb strcpy name aa number bb char Getname return name int Getnumber return number void Output cout name number endl CD dx void main CD dy dx Init 歌唱祖国 30 dy Init 义勇军进行曲 3 dx Getnumber 5 dx Output dy Output 歌唱祖国 30 义勇军进行曲 95 2 include using namespace std int f int a return a int g int void main int m 0 n 0 m f g m n f f n cout m m endl cout n n endl 3 include using namespace std class Demo public Demo cout default constructor n Demo const Demo Demo userCode Demo b Demo c b return c void main Demo a d cout calling userCode n d userCode a 执行上面的程序的过程中 构造函数 Demo 和 Demo const Demo 时 调用了 次构 造函数 A 0 B 1 C 2 D 3 D 01 13 1 1 类定义的内容允许被其他对象无限制地存取是 A private 部分 B protected 部分 C public 部分 D 以上都不对 C 01 01 2 1 关于 new 运算符的下列描述中 是错误的 A 它可以用来动态创建对象和对象数组 B 使用它创建对象或对象数组 可以使用运算符 DELETE 删除 C 使用它创建对象时要调用构造函数 D 使用它调用对象数组时不许指定初始值 D 01 01 2 1 对于下面程序段 表达式正确的是 class Base public int b class Base1 public base class Base2 public base class Derived public base1 public base2 public int fun Derived d A d Base1 b B d Base b C d b D d Base fun B 01 12 1 1 可以用 p a 的形式访问派生类对象 p 的基类成员 a 其中 a 是 A 私有继承的公有成员 B 公有继承的私有成员 C 公有继承的保护成员 D 公有继承的公有成员 D 下列关于 C 类的描述中错误的是 A 类与类之间可以通过一些手段进行通信和联络 B 类用于描述事物的属性和对事物的操作 C 类与类之间必须是平等的关系 D 类与类之间可以通过封装而具有明确的独立性 C 01 12 1 1 下列描述中哪个是正确的 A 私有派生的子类无法访问父类的成员 B 类A的私有派生子类的派生类C无法初始化其祖先类A对象的属性 因 为类A的成员对类C是不可访问的 C 私有派生类不能作为基类派生子类 D 私有派生类的所有子孙类将无法继续继承该类的成员 B 01 11 1 1 下列关于构造函数说法不正确的是 A 构造函数必须与类同名 B 构造函数可以省略不写 C 构造函数必须有返回值 D 在构造函数中可以对类中的成员进 行初始化 C 01 13 1 1 如果友元函数重载一个运算符时 其参数表中没有任何参数则说明该 运算符是 A 一元运算符 B 二元运算符 C 选项A 和选项B 都可能 D 重载错误 D 01 14 1 1 在重载一个运算符时 如果其参数表中有一个参数 则说明该运算符 是 A 一元成员运算符 B 二元成员运算符 C 一元友元运算符 D 选项B 和选项C 都可能 D 01 12 1 1 一个类的友元函数能够访问该类的 A 私有成员 B 保护成员 C 公有成员 D 所有成员 D 下列关于类定义的说法中 正确的是 A 类定义中包括数据成员和函数成员的声明 B 类成员的缺省访问权限是保护的 C 数据成员必须被声明为私有的 D 成员函数只能在类体外进行定义 A 01 14 1 1 通过运算符重载 可以改变运算符原有的 A 操作数类型 B 操作数个数 C 优先级 D 结合性 A 01 14 1 1 在 C 语言中 数据封装要解决的问题是 A 数据的规范化 B 便于数据转换 C 避免数据丢失 D 防止不同模块之间数据的非法访问 D 01 13 1 1 对类成员访问权限的控制 是通过设置成员的访问控制属性实现的 下 列不是访问控制属性的是 A 公有类型 B 私有类型 C 保护类型 D 友元类型 D 01 11 1 1 在类的定义中 用于为对象分配内存空间 对类的数据成员进行初始化 并执行其他内部管理操作的函数是 A 友元函数 B 虚函数 C 构造函数 D 析构函数 C 01 11 1 1 类的析构函数的作用是 A 一般成员函数的初始化 B 类的初始化 C 对象的初始化 D 删除类创建的对象 D 01 13 1 1 下列说法正确的是 A 内联函数在运行时是将该函数的目标代码插入每个调用该函数的 地方 B 内联函数在编译时是将该函数的目标代码插入每个调用该函数的 地方 C 类的内联函数必须在类体内定义 D 类的内联函数必须在类体外通过加关键字 inline 定义 B 01 12 1 1 下列对派生类的描述中 错误的是 A 一个派生类可以作为另一个派生类的基类 B 派生类至少有一个基类 C 派生类的成员除了自己的成员外 还包含了它的基类的成员 D 派生类中继承的基类成员的访问权限到派生类保持不变 D 01 12 1 1 运算符的重载是对已有的运算符赋予多重含义 因此 A 可以对基本类型 如 int 类型 的数据 重新定义 运算符的 含义 B 可以改变一个已有运算符的优先级和操作数个数 C 只能重载 C 中已经有的运算符 不能定义新运算符 D C 中已经有的所有运算符都可以重载 A 01 13 1 1 如果类 A 被说明成类 B 的友元 则 A 类 A 的成员即是类 B 的成员 B 类 B 的成员即是类 A 的成员 C 类 A 的成员函数不得访问类 B 的成员 D 类 B 不一定是类 A 的友元 D 01 13 1 1 不能作为重载函数的调用的依据是 A 参数的个数 B 参数的类型 C 函数的类型 D 函数的名称 D 01 13 1 1 在C 语言的面向对象设计框架中 是程序的基本组成单 元 类 01 13 1 1 继承的方式的公有继承 私有继承和 三种 保护继承 01 13 1 1 在用class定义一个类时 数据成员函数的默认访问权限是 私有的 01 13 1 1 类的构造函数是在 时调用的 定义对象 01 13 1 1 类模板的使用实际上是将类模板实例化成一个具体的 对象 01 13 1 1 如果类B继承了类A 则称类A为类B的基类 类 B 称为类A 的 派生类 01 13 1 1 如果要把返回值为void的函数A声明为B类的友元数 则应在类B的定 义中加入语句是 12 02 10 1 1 有如下定义 class MA int value public MA int n 0 value n MA ta tb 其中MA类的对象名标识符是 tb 02 12 1 1 用来派生新类的称为 而派生出的新类称为它的子类或派生类 基类 02 12 1 1 面向对象的程序设计的主要特征是继承性 和多态性 封装性 02 10 1 1 向对象的模型中 最基本的概念是对象和 类 03 14 1 1 通过使用new和delete两个运算符进行的分配为静态存储分配 F 03 14 1 1 重载的运算符保持其原有的操作符个数 优先级和结合性不变 T 03 10 1 1 在面向对象方法中 类之间共享属性和操作的机制称为 多态 性 F 03 12 1 1 可以用p a的形式访问派生类对象P的基类成员a 其中a是公有继承的 公有成员 T C 语言相对于C语言的最根本的变化是引进了类和对象的概念 T 03 10 1 1 类的析构函数的作用是删除类创建的对象 T 02 13 1 2 动态分配内存空间操作符 new 和 使用时必须成对出现 delete 02 12 1 2 用以说明类中保护成员的关键字是 protected 02 11 1 2 对于任意一个类 析构函数的个数最多为 个 1 02 08 1 2 若有以下定义语句 Struct data int i char double f b 则结构体变量占用的内存字节数是 3 14 r r 03 02 1 2 分号是 C 语句的必要组成部分 T 03 12 2 2 公有派生时 基类中所有成员在公有派生类中保持各个成员的访问权限 T 04 12 2 2 下列程序中横线处正确的语句应该是 include using namespace std class Base public void fun cout Base fun endl class Derived public Base public void fun 显示调用基类的函数 fun cout Derived fun endl 0 04 11 2 2 写出下列程序的运行结果 include class A public A cout 1 A cout 2 class B public A public B cout 3 B cout 4 void main B b 1324 04 09 2 2 下列程序的执行结果为 include void mian int n 10 int pn int pn cout n n endl rn cout n n endl n 11 n 12 2323 05 08 2 2 定义描述复数的结构体变量 并实现复数的输入和输出 设计 3 个函数分别完成复 数的加法 减法运算 编写主函数验证复数的运算是否正确 include struct compl float real float com compl add compl c1 compl c2 compl t t real c1 real c2 real return t compl sub compl c1 compl c2 compl t t real c1 real c2 real return t compl input void compl c cout c r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论