ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:52.12KB ,
资源ID:2044815      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2044815.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++试题及答案.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++试题及答案.docx

1、C+试题及答案C+程序设计模拟试卷(五)一、单项选择题 (本大题共 20小题,每小题 1分,共20分)在每小题列出的四个备选项中 只有一个就是符合题目要求的 , 请将其代码填写在题后的括号内。错选、多选或未选均无 分。1、 静态成员函数没有 ()A、 返回值B、 this 指针C、 指针参数D、 返回类型答案 :B 解析:静态成员函数就是普通的函数前加入 static, 它具有函数的所有的特征 : 返回类型、 形参, 所以使用静态成员函数 ,指针可以作为形参 ,也具有返回值。静态成员就是类具有的 属性,不就是对象的特征,而this表示的就是隐藏的对象的指针,因此静态成员函数没有this指针 。

2、静态成员函数当在类外定义时 , 要注意不能使用 static 关键字作为前缀。由于静态成员函数在 类中只有一个拷贝 ( 副本), 因此它访问对象的成员时要受到一些限制 :静态成员函数可以直接访问类中说明的静态成员 ,但不能直接访问类中说明的非静态成员 ;若要访问非静态成员时 ,必 须通过参数传递的方式得到相应的对象 , 再通过对象来访问。2、 在类的定义中 , 用于为对象分配内存空间 ,对类的数据成员进行初始化并执行其她内部管 理操作的函数就是 ()A、 友元函数B、 虚函数C、 构造函数D、 析构函数答案 :C解析:定义构造函数作用就就是初始化对象 ,而析构函数释放对象空间。虚函数用于完成多

3、 态性 , 友元增加访问方便性。3、 所有在函数中定义的变量 , 都就是 ()A、 全局变量B、 局部变量C、 静态变量D、 寄存器变量答案 :B解析: 变量存储类可分为两类 :全局变量与局部变量。(1)全局变量 : 在函数外部定义的变量称为全局变量 , 其作用域为 :从定义变量的位置开始到源程序结束。全局变量增加了函数之间数据联系的渠道 , 全局变量作用域内的函数 , 均可使用 、修改该全局变量的值 , 但就是使用全局变量降低了程序的可理解性 ,软件工程学提倡尽量避免使 用全局变量。(2)局部变量 : 在函数内部定义的变量称为局部变量 , 其作用域为 :从定义变量的位置开始到函数结束。局部变

4、量包含自动变量 (auto) 静态变量 (static) 以及函数参数。auto 变量意味着变量的存储空间的分配与释放就是自动进行的。说明符 auto 可以省略。函数中的局部变量存放在栈空间。在函数开始运行时 , 局部变量被分配内存单元 ,函数结束时 ,局部变 量释放内存单元。因此 , 任两个函数中的局部变量可以同名 ,因其占有不同的内存单元而不影响 使用。这有利于实现软件开发的模块化。static 变量就是定义在函数体内的变量 ,存放在静态存储区 ,不用栈空间存储 ,其值并不随存 储空间的释放而消失。4、 假定AB为一个类,则执行“ AB a(2), b : 3 ,*p : 4; ”语句时调

5、用该类构造函数的次数 为 ()A、 3B、 4C、 5D、 9答案 :B解析:a(2)调用1次带参数的构造函数,b : 3调用3次无参数的构造函数,指针没有给它 分配空间 , 没有调用构造函数。所以共调用构造函数的次数为 4。5、 如果表达式+a中的“ +”就是作为成员函数重载的运算符 ,若采用运算符函数调用格式,则 可表示为 ()A、 a、 operator+(1)B、 operator+(a)C、 operator+(a,1)D、 a、 operator+()答案:D解析 : 运算符的重载 , 前缀先让变量变化。调用 a, 等价为 a、operator+(), 注意无参 的形式。后缀的话

6、a+, 等价于 a、operator(0), 带形参 , 形参名可省。6、 已知fl与f2就是同一类的两个成员函数,但fl不能直接调用f2,这说明()A、 fl与f2都就是静态函数B、 f1 不就是静态函数 ,f2 就是静态函数C、 f1 就是静态函数 ,f2 不就是静态函数D、 fl与f2都不就是静态函数答案 :C解析:普通成员函数可以调用静态函数 ,相反静态函数不能调用普通成员函数 , 这与普通函数与常成员函数相同。因此选择 C项。7、 一个函数功能不太复杂 , 但要求被频繁调用 ,则应把它定义为 ()A、 内联函数B、 重载函数C、 递归函数D、 嵌套函数答案 :A解析:内联函数特征代码

7、少 ,频繁调用 ,执行效率高。重载函数解决统一接口的问题 ;递归就是子程序调用 , 程序调用要耗费很多空间与时间 ,循环/迭代都比递归有效率得多 , 递归只就是 从形式上,逻辑比较简洁。嵌套函数即反复调用 ,速度较慢。所以选择A项。8、 解决定义二义性问题的方法有 ()A、 只能使用作用域分辨运算符B、 使用作用域分辨运算符或成员名限定C、 使用作用域分辨运算符或虚基类D、 使用成员名限定或赋值兼容规则答案 :B 解析:解决二义性问题主要要两种方法 :(1) 赋值兼容规则 ;(2) 虚基类。9、 在main函数中可以用p、a的形式访问派生类对象p的基类成员a,其中a就是()A、 私有继承的公有

8、成员B、 公有继承的私有成员C、 公有继承的保护成员D、 公有继承的公有成员答案 :D解析:公有成员可以在类外访问 , 保护类型成员可以在派生类中访问 , 但不能在类外访问,在main函数中访问,说明a就是公有成员。只有公有继承时 a才能就是公有的,所以D项正确。10、 在C+中不返回任何类型的函数应该说明为 ()A、 intB、 charC、 voidD、 double答案 :C解析:无形参或无返回值都可以用 void 来声明 ,int char double 分别就是整型、字符型与实型。11、 若Sample类中的一个成员函数说明如下 :void set(Sample& a), 则 Sam

9、ple& a 的含义就是()A、 指向类Sample的名为a的指针B、 a就是类Sample的对象引用,用来作函数Set()的形参C、 将a的地址赋给变量SetD、 变量Sample与a按位与的结果作为函数 Set的参数答案:B解析: 成员函数使用对象的引用作为形参。该函数的功能就是将已知对象的所有数据成员的 值拷贝给相应对象的所有数据成员 , 不会建立临时对象 , 这里就是对象的引用所以选择 B。12 、 要实现动态联编必须 ()A、 通过成员名限定来调用虚函数B、 通过对象名来调用虚函数C、 通过派生类对象来调用虚函数D、 通过对象指针或引用来调用虚函数答案 :D解析: 通过基类指针或基类

10、引用来调用虚函数实现动态多态性 , 静态多态性通过重载来实现的。所以选择D项。13、 在派生类中定义虚函数时 , 可以与基类中相应的虚函数不同的就是 ()A、 参数类型B、 参数个数C、 函数名称D、 函数体答案 :D解析: 虚函数在基类与派生类 , 具有相同的返回类型、形参类型与形参个数 , 而函数体可 以根据不同的派生类或基类实现不同的操作 , 即不同函数体。14、 实现两个相同类型数加法的函数模板的声明就是 ()A、 add(T x,T y)B、 T add(x,y)C、 T add(T x,y)D、 T add(T x,T y)答案 :D解析: 实现两个相同类型数加法结果应该与操作数具

11、有相同类型。进行加法运算后结果也就是与参数具有相同类型,需要返回值。A无返回值时要用void,B形参无类型,C形参y没有类型,所以选择D项。15 、 下列不就是描述类的成员函数的就是 ()A、 构造函数B、 析构函数C、 友元函数D、 拷贝构造函数答案 :C解析: 友元函数虽然不就是成员函数但就是可以访问类所有成员。构造函数、析构函数与拷贝构造函数(复制构造函数)都就是类的特殊函数用于对象的创建与撤销 ,所以选择C项。16、 继承机制的作用就是 ()A、 信息隐藏B、 数据封装C、 定义新类D、 数据抽象答案 :C解析: 面向对象设计中的类的特点 :抽象、封装、继承与多态等 , 继承用于对类的

12、扩展,所以选择C项。17、 已知:p就是一个指向类A数据成员m的指针,A1就是类A的一个对象。如果要给 m赋值为5,正确 的就是 ()A、 A1 、p=5;B、 A1-p=5;C、 A1、*p=5;D、 *A1 、p=5;答案:C解析:A中p就是指针即地址,错误;B选项中A1不就是指针不能使用指向运算符 -,错误;“* ”比“、”级别要高,所以D选项*A1、p=5相当于(*A1)、p=5;错误。另外涉及到指向成员函数 时注意以下几点 :指向成员函数的指针必须于其赋值的函数类型匹配的三个方面 :(1) 参数类型与个数 ;(2) 返回 类型;(3) 它所属的类类型。成员函数指针的声明:指向shor

13、t型的Screen类的成员的指针定义如下:short Screen:* ps_Screen;ps_Screen 可以用 _height 的地址初始化如下 :short Screen:*ps_Screen=&Screen:_height;类成员的指针必须总就是通过特定的对象或指向改类型的对象的指针来访问。就是通过使用两个指 向成员操作符的指针 (针对类对象与引用的、 *, 以及针对指向类对象的指针的 -*) 。18、 如果采用动态多态性 , 要调用虚函数的就是 ()A、 基类对象指针B、 对象名C、 基类对象D、 派生类名答案 :A解析:基类指针或者基类的引用调用虚函数都会产生动态多态性19、

14、若有以下定义 , 则说法错误的就是 ()int a=100,*p=&a;A、 声明变量p,其中*表示p就是一个指针变量B、 变量p经初始化,获得变量a的地址C、 变量p只可以指向一个整型变量D、 变量p的值为100答案 :D解析:指针变量如同其她变量一样 ,在使用之前必须先声明。声明指针变量的格式为 :类型名 *变量名 ;其中,类型名 就是指针变量所指向对象的类型 ,它可以就是C+语言预定义的类型,也可以就是用户自定义类型。 变量名 就是用户自定义的标识符。符号 *表示变量就是指针变量。而不就是普通变量。*表示指针,p就是变量,p指向一个整型的变量,值为a的地址值,*p=100。20、 C+语

15、言建立类族就是通过()A、 类的嵌套B、 类的继承C、 虚函数D、 抽象类答案 :B解析: 类族即同一个类派生出来的类 ,各个类就是兄弟或父子关系。二、填空题 (本大题共 20小题,每小题 1分,共20分)请在每小题的空格中填上正确答 案。错填、不填均无分。1、 假设 int a=1,b=2; 则表达式 (+a/b)*b- 的值为 _。答案 :2解析前缀+或一一表示先使变量值变化 ,再使用,这与后缀恰恰相反。但就是编译coutvv(+a/b)*b- 时,先 +a/b 值为 1,后 1*b-,先取 b= 2,结果为 2,再让 b = 1。2、 复制构造函数使用 _作为形式参数。答案: 对象的引用 解析复制构造函数使用对象的引用来初始化一个新对象 , 避免临时产生对象。3、 通过C+语言中的机制,可以从现存类中构建其子类。 答案: 继承解析继承概念 ,从现有的类生成新类 ,原有的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1