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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(【学历类职业资格】C++程序设计自考题模拟9及答案解析.doc)为本站会员(feelhesitate105)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

【学历类职业资格】C++程序设计自考题模拟9及答案解析.doc

1、C+程序设计自考题模拟 9及答案解析(总分:100.00,做题时间:90 分钟)一、第部分 选择题(总题数:20,分数:20.00)1.下列特征中,C 和 C+共有的是_(分数:1.00)A.继承B.函数定义不能嵌套C.封装D.多态性2.调用声明为 int print(int a, int b); 的函数时,正确的方法是_(分数:1.00)A.print(0.5,0.8);B.print(2);C.print(1,2);D.print(1,2,3);3.下列选项中不是 C+关键字的是_(分数:1.00)A.boolB.operatorC.incD.friend4.继承机制的作用是_(分数:1.

2、00)A.信息隐藏B.数据封装C.定义新类D.数据抽象5.下面关于引用的描述正确的是_(分数:1.00)A.引用是被引用变量的复制B.被引用变量是引用的别名C.引用是被引用变量的别名D.被引用变量是引用的复制6.下列有关重载函数的说法中正确的是_(分数:1.00)A.重载函数必须具有不同的返回值类型B.重载函数参数个数必须相同C.重载函数必须有不同的形参列表D.重载函数名可以不同7.在 C+中,编写一个内联函数 Fun,使用 int类型的参数,求其平方并返回,返回值也为 int类型,下列定义正确的是_(分数:1.00)A.int Fun(int x)return x*x; B.int inli

3、ne Fun(int x)return x*x;C.inline int Fun(int x)return x*x;D.int Fun(int x)inline return x*x;8.函数模板 templatetypename Tvoid A(T, T)可实例化为以下哪种形式_(分数:1.00)A.void A(double, int);B.void A(char, float);C.void A(double, double);D.void A(float, int);9.类的析构函数是对一个对象进行以下哪种操作时自动调用的_(分数:1.00)A.建立B.撤销C.赋值D.引用10.下列不

4、是描述类的成员函数的是_(分数:1.00)A.构造函数B.析构函数C.友元函数D.拷贝构造函数11.假定 AA为一个类,a()为该类公有的函数成员,x 为该类的一个对象,则访问 x对象中函数成员 a()的格式为_(分数:1.00)A.aB.a()C.x-aD.(*x).a()12.已知 p是一个指向类 A数据成员 m的指针,A1 是类 A的一个对象。如果要给 m赋值为 5,正确的是_(分数:1.00)A.A1.p=5:B.A1-p=5;C.A1. *p=5;D.*A1.p=5;13.重载赋值操作符时,应声明函数为_(分数:1.00)A.友元函数B.虚函数C.成员函数D.静态函数14.建立包含有

5、类对象成员的派生类对象时,自动调用构造函数的执行顺序为_(分数:1.00)A.自己所属类、对象成员所属类、基类的构造函数B.对象成员所属类、基类、自己所属类的构造函数C.基类、对象成员所属类、自己所属类的构造函数D.基类、自己所属类、对象成员所属类的构造函数15.下述静态数据成员的特征中,错误的是_(分数:1.00)A.说明静态数据成员时前边要加修饰符 staticB.静态数据成员要在类体外进行初始化C.引用静态数据成员时,要在静态数据成员名前加类名和作用域运算符D.静态数据成员不是所有对象所共用的16.如果类 A被说明成类 B的友元,则_(分数:1.00)A.类 B不一定是类 A的友元B.类

6、 B的成员即类 A的成员C.类 A的成员即类 B的成员D.类 A的成员函数不得访问类 B的成员17.在继承中,派生类拥有的基类个数为_(分数:1.00)A.0个B.1个C.多个D.至少 1个18.在派生类中重新定义虚函数时必须与基类保持一致的是_(分数:1.00)A.参数类型B.形参名C.操作内容D.赋值19.下列运算符中,在 C+语言中不能重载的是_(分数:1.00)A.*B.=C.:D./20.C+语言建立类族是通过_(分数:1.00)A.类的嵌套B.类的继承C.虚函数D.抽象类二、第部分 非选择题(总题数:20,分数:20.00)21.C+是通过引用运算符 1 来定义一个引用的。 (分数

7、1.00)22.开发一个 C+语言程序的步骤通常包括编辑、 1、连接、运行和调试。 (分数:1.00)23.执行下列代码 cout“oct:“oct34; 程序的输出结果是 1。 (分数:1.00)24.执行下列代码 string str(“HelloC+“); string newstr=str.substr(5,3); 后, newstr 的内容为 1。 (分数:1.00)25.面向对象的四个基本特性是多态性、继承、 1 和封装。 (分数:1.00)26.使用 const关键字说明的成员函数为 1。 (分数:1.00)27.在#include 命令中所包含的头文件,可以是系统定义的头文件

8、也可以是 1 的头文件。 (分数:1.00)28.在 C+的类声明中,用 public关键字声明的类成员的访问权限是 1。 (分数:1.00)29.设函数 sum是由函数模板实现的,并且 sum(3,6)和 sum(4.6,8)都是正确的函数调用,则函数模板具有 1个类型参数。 (分数:1.00)30.执行 1 操作将释放由指针所指向的动态分配的内存空间。 (分数:1.00)31.常对象只能调用它的常成员函数,而一般对象既能调用常成员函数,又能调用 1。 (分数:1.00)32.通过 C+语言中的类的 1,可以扩充和完善已有类以适应新的需求。 (分数:1.00)33.vector类中向向量尾

9、部插入一个对象的方法是 1。 (分数:1.00)34.定义虚函数所用的关键字是 1。 (分数:1.00)35.C+语言支持的两种多态性分别是编译时的多态性和 1 的多态性。 (分数:1.00)36.有 int a=1, b=2; 则表达式 a+ + -b的值为 1。 (分数:1.00)37.语句序列 ifstream infile; infile.open(“data.dat“); 的功能可用一个语句实现,这个语句是 1。 (分数:1.00)38.在 C+中,利用向量类模板定义一个具有 20个 double的向量 E,其元素均被置为 0.5,实现此操作的语句是 1。 (分数:1.00)39.在

10、 C+中,创建派生类对象时,总是先从 1 的初始化开始的。 (分数:1.00)40.在面向对象的程序设计中将一组对象的共同特性抽象出来形成 1。 (分数:1.00)三、改错题(总题数:5,分数:20.00)41.#includeiostream.h #includestring.h class Bas public: Bas ( char * s = “/0“ ) strcpy ( name, s); void show(); protected: char name _ ; ; Bas b; void show() cout “name:“ b.name endl; void main()

11、Bas d2 (“hello“); show(); (分数:4.00)_42.#include iostream.h #include string.h class Bas int m; static int n; public: Bas(int i =0) n +; m =i; void show() cout “n:“ n endl; ; Bas:n =0; class Der:public Bas public: Der(int i=0):Bas(i) ; void main() Der d(3); d.show(); (分数:4.00)_43.下面程序用于输出最小值,有一处错误。 #i

12、nclude iostream.h class Test int a, b; int getmin() return (ab? a:b); public: int c; void setValue( int x1, int x2, int x3 ) a =x1; b =x2; c =x3; int GetMin(); ; int Test:GetMin() int d = getmin (); return (d=dc? d:c); void main() Test t1; t1.setValue(34,6,2); cout t1.getmin () endl; (分数:4.00)_44.下面

13、程序的功能是生成具有 n个元素的动态数组。 #include iostream.h void main() int n; cin n; int an; a0 =2; cout a0 endl; (分数:4.00)_45.#include iostream.h class Test int x, y; public: void fun(int i, int j) x=i; y=j; void show() cout “x = “ x; if(y) cout “, y = “ y endl; cout endl; ; void main() Test a; a.fun(1); a.show();

14、a.fun(2,4); a.show(); (分数:4.00)_四、完成程序题(总题数:5,分数:20.00)46.下面程序实现将大写字母转换成小写字母的功能。 #include iostream.h void main() char a; _ cin a; if(_) a=a+i; cout a endl; (分数:4.00)_47.完成下面类中成员函数的定义。 #include iostream.h template class T class f private: T x, y, s; public: f(T a =0, T b =0) x =a; y =b; void sum() s=

15、x+y; T gets (); ; template class T _ return s; void main() _a(1.5,3.8); a.sum(); cout a.gets () endl; (分数:4.00)_48.下面程序用于输出三角形的面积,请在下横线处填上正确的语句。 #include iostream.h #include math.h void area() double a, b, c; cout “Input a b c:“ ; _ if(a +b c _ cout “The area is:“ s endl; else cout “Error“ endl; voi

16、d main() area(); (分数:4.00)_49.#include iostream.h class Samp public: void Setij(int a, int b)i =a, j =b; Samp() cout “Destroying “ i endl; int GetMuti() return i * j; protected : int i; int j; ; int main() Samp * p; p = new Samp _ ; if( ! p) cout “ Allocation error/n“ ; return 1; for(int j =0; j 5;

17、j + ) pjSetij(j, j); for(int k =0; k 5; k +) cout “Muti“ k “ is:“ pk._endl; _ return 0; (分数:4.00)_50.#include iostream.h class AA public: AA(_) A = i; B = j; cout “Constructor/n“; AA ( AA B =obj.B; cout “ Copy Constructor/n“; AA() cout “ Destructor/n“ ; void show() cout “A = “ A “, B = “ B endl; pri

18、vate: int A, B; ; void main() AA a1 (2,3); AA a2(a1); a2.show(); _= pa-show(); (分数:4.00)_五、程序分析题(总题数:2,分数:10.00)51.给出下面程序的输出结果。 #include iostream.h static int a = 3; void fun(); void main () for(int i = 1; i a; i + ) fun(); cout endl; void fun () static int a = a; cout(a+ =2) “ “; (分数:5.00)_52.给出下面程

19、序的输出结果。 #include iostream.h class A public: A() cout“A 构造函数/n“; fun(); visual void fun() cout“A:fun()函数/n“; ; class B:public A public: B() cout“B 构造函数/n“; fun(); void fun() cout“B:fun() calle 函数/n“; ; void main() B d; (分数:5.00)_六、程序设计题(总题数:1,分数:10.00)53.写一个程序,定义一个抽象类 Shape,由它派生 3个类:Square(正方形)、Trape

20、zoid(梯形)和Triangle三角形。用虚函数分别计算几种图形面积、并求它们的和。要求用基类指针数组,使它的每一个元素指向一个派生类对象。 #includeiostream.h class Shape public: visual double area()const=0; ; (分数:10.00)_C+程序设计自考题模拟 9答案解析(总分:100.00,做题时间:90 分钟)一、第部分 选择题(总题数:20,分数:20.00)1.下列特征中,C 和 C+共有的是_(分数:1.00)A.继承B.函数定义不能嵌套 C.封装D.多态性解析:2.调用声明为 int print(int a, in

21、t b); 的函数时,正确的方法是_(分数:1.00)A.print(0.5,0.8);B.print(2);C.print(1,2); D.print(1,2,3);解析:考点 本题主要考查的知识点为函数的调用。 函数调用时,实参的个数及类型要与函数声明时的参数个数及类型保持一致,所以本题中函数调用时实参个数须为 2个且都是整型的,故选 C。3.下列选项中不是 C+关键字的是_(分数:1.00)A.boolB.operatorC.inc D.friend解析:考点 本题主要考查的知识点为 C+关键字。 bool、operator 和 friend均为 C+关键字,本题正确答案为 C。4.继承

22、机制的作用是_(分数:1.00)A.信息隐藏B.数据封装C.定义新类 D.数据抽象解析:5.下面关于引用的描述正确的是_(分数:1.00)A.引用是被引用变量的复制B.被引用变量是引用的别名C.引用是被引用变量的别名 D.被引用变量是引用的复制解析:考点 本题主要考查的知识点为引用。 引用就是为现有的对象起个“别名”。别名的地址就是原来对象的地址,选定命名时使用“引用”运算符“ B.int inline Fun(int x)return x*x;C.inline int Fun(int x)return x*x; D.int Fun(int x)inline return x*x;解析:考点

23、本题主要考查的知识点为内联函数。 在 C+中使用 inline关键字来定义内联函数。inline 关键字放在函数定义(声明)中函数类型之前。本题正确答案为 C。8.函数模板 templatetypename Tvoid A(T, T)可实例化为以下哪种形式_(分数:1.00)A.void A(double, int);B.void A(char, float);C.void A(double, double); D.void A(float, int);解析:考点 本题主要考查的知识点为函数模板。 模板函数形参表中定义的两个形参的类型相同,所以在实例化时模板函数实参表中的两个参数的类型也应该相

24、同。9.类的析构函数是对一个对象进行以下哪种操作时自动调用的_(分数:1.00)A.建立B.撤销 C.赋值D.引用解析:10.下列不是描述类的成员函数的是_(分数:1.00)A.构造函数B.析构函数C.友元函数 D.拷贝构造函数解析:考点 本题主要考查的知识点为友元函数。 友元函数不是当前类的成员函数,而是独立于当前类的外部函数,但它可以访问该类的所有成员,包括私有成员、保护成员和公有成员。11.假定 AA为一个类,a()为该类公有的函数成员,x 为该类的一个对象,则访问 x对象中函数成员 a()的格式为_(分数:1.00)A.aB.a() C.x-aD.(*x).a()解析:考点 本题主要考

25、查的知识点为对象调用其成员函数的格式。 访问对象中成员函数的格式为:对象名.成员函数名(参数表),本题中成员函数 a()的形参表为空,故选B。12.已知 p是一个指向类 A数据成员 m的指针,A1 是类 A的一个对象。如果要给 m赋值为 5,正确的是_(分数:1.00)A.A1.p=5:B.A1-p=5;C.A1. *p=5; D.*A1.p=5;解析:13.重载赋值操作符时,应声明函数为_(分数:1.00)A.友元函数B.虚函数C.成员函数 D.静态函数解析:考点 本题主要考查的知识点为重载赋值操作符。 赋值操作符只能作为成员函数重载。14.建立包含有类对象成员的派生类对象时,自动调用构造函

26、数的执行顺序为_(分数:1.00)A.自己所属类、对象成员所属类、基类的构造函数B.对象成员所属类、基类、自己所属类的构造函数C.基类、对象成员所属类、自己所属类的构造函数 D.基类、自己所属类、对象成员所属类的构造函数解析:15.下述静态数据成员的特征中,错误的是_(分数:1.00)A.说明静态数据成员时前边要加修饰符 staticB.静态数据成员要在类体外进行初始化C.引用静态数据成员时,要在静态数据成员名前加类名和作用域运算符D.静态数据成员不是所有对象所共用的 解析:考点 本题主要考查的知识点为静态数据成员的特征。 静态数据成员被类的所有对象所共享,它不属于类的任何一个对象,其作用域是

27、类范围,故 D项错误;A、B、C 项说法正确。16.如果类 A被说明成类 B的友元,则_(分数:1.00)A.类 B不一定是类 A的友元 B.类 B的成员即类 A的成员C.类 A的成员即类 B的成员D.类 A的成员函数不得访问类 B的成员解析:考点 本题主要考查的知识点为友元。 友元关系是单向的,即类 A为类 B的友元,类 B却不一定是类 A的友元,A 项正确;B、C、D 项说法错误。17.在继承中,派生类拥有的基类个数为_(分数:1.00)A.0个B.1个C.多个D.至少 1个 解析:18.在派生类中重新定义虚函数时必须与基类保持一致的是_(分数:1.00)A.参数类型 B.形参名C.操作内

28、容D.赋值解析:19.下列运算符中,在 C+语言中不能重载的是_(分数:1.00)A.*B.=C.: D./解析:考点 本题主要考查的知识点为运算符重载。 在 C+中,除了.、.*、-*、:、?:运算符不能重载外,其他运算符都可以重载。20.C+语言建立类族是通过_(分数:1.00)A.类的嵌套B.类的继承 C.虚函数D.抽象类解析:二、第部分 非选择题(总题数:20,分数:20.00)21.C+是通过引用运算符 1 来定义一个引用的。 (分数:1.00)解析: 程序的输出结果是 1。 (分数:1.00)解析:oct:4224.执行下列代码 string str(“HelloC+“); str

29、ing newstr=str.substr(5,3); 后, newstr 的内容为 1。 (分数:1.00)解析:C+25.面向对象的四个基本特性是多态性、继承、 1 和封装。 (分数:1.00)解析:抽象26.使用 const关键字说明的成员函数为 1。 (分数:1.00)解析:常成员函数27.在#include 命令中所包含的头文件,可以是系统定义的头文件,也可以是 1 的头文件。 (分数:1.00)解析:自定义28.在 C+的类声明中,用 public关键字声明的类成员的访问权限是 1。 (分数:1.00)解析:公有的29.设函数 sum是由函数模板实现的,并且 sum(3,6)和 s

30、um(4.6,8)都是正确的函数调用,则函数模板具有 1个类型参数。 (分数:1.00)解析:230.执行 1 操作将释放由指针所指向的动态分配的内存空间。 (分数:1.00)解析:delete31.常对象只能调用它的常成员函数,而一般对象既能调用常成员函数,又能调用 1。 (分数:1.00)解析:一般成员函数32.通过 C+语言中的类的 1,可以扩充和完善已有类以适应新的需求。 (分数:1.00)解析:继承33.vector类中向向量尾部插入一个对象的方法是 1。 (分数:1.00)解析:push_back34.定义虚函数所用的关键字是 1。 (分数:1.00)解析:virtual35.C+

31、语言支持的两种多态性分别是编译时的多态性和 1 的多态性。 (分数:1.00)解析:运行时36.有 int a=1, b=2; 则表达式 a+ + -b的值为 1。 (分数:1.00)解析:237.语句序列 ifstream infile; infile.open(“data.dat“); 的功能可用一个语句实现,这个语句是 1。 (分数:1.00)解析:ifstream infile(“data.dat“);38.在 C+中,利用向量类模板定义一个具有 20个 double的向量 E,其元素均被置为 0.5,实现此操作的语句是 1。 (分数:1.00)解析:vectordoubleE(20,

32、0.5);39.在 C+中,创建派生类对象时,总是先从 1 的初始化开始的。 (分数:1.00)解析:基类40.在面向对象的程序设计中将一组对象的共同特性抽象出来形成 1。 (分数:1.00)解析:类三、改错题(总题数:5,分数:20.00)41.#includeiostream.h #includestring.h class Bas public: Bas ( char * s = “/0“ ) strcpy ( name, s); void show(); protected: char name _ ; ; Bas b; void show() cout “name:“ b.name

33、endl; void main() Bas d2 (“hello“); show(); (分数:4.00)_正确答案:()解析:void show(); 是普通函数不是成员函数,但是要访问类成员,需要定义为友元函数。应改为friend void show(); 。42.#include iostream.h #include string.h class Bas int m; static int n; public: Bas(int i =0) n +; m =i; void show() cout “n:“ n endl; ; Bas:n =0; class Der:public Bas

34、public: Der(int i=0):Bas(i) ; void main() Der d(3); d.show(); (分数:4.00)_正确答案:()解析:Bas:n=0; 静态数据成员需要在类外进行初始化,但这里格式不正确。应改为 int Bas:n=0; 。43.下面程序用于输出最小值,有一处错误。 #include iostream.h class Test int a, b; int getmin() return (ab? a:b); public: int c; void setValue( int x1, int x2, int x3 ) a =x1; b =x2; c

35、x3; int GetMin(); ; int Test:GetMin() int d = getmin (); return (d=dc? d:c); void main() Test t1; t1.setValue(34,6,2); cout t1.getmin () endl; (分数:4.00)_正确答案:()解析:coutt1.getmin()endl; 成员函数 getmin()采用默认的访问权限即私有的,在外部无法访问。应改为 coutt1.GetMin()endl; 。44.下面程序的功能是生成具有 n个元素的动态数组。 #include iostream.h void ma

36、in() int n; cin n; int an; a0 =2; cout a0 endl; (分数:4.00)_正确答案:()解析:int an; 生成具有 n个元素的动态数组,要使用 new,所以 int an;错误。应改为 int *a=new intn;。45.#include iostream.h class Test int x, y; public: void fun(int i, int j) x=i; y=j; void show() cout “x = “ x; if(y) cout “, y = “ y endl; cout endl; ; void main() Te

37、st a; a.fun(1); a.show(); a.fun(2,4); a.show(); (分数:4.00)_正确答案:()解析:int i, int j 调用 fun函数时,既有一个参数,也有两个参数,且没有重载,所以 fun函数的参数需要带默认值。所以应改为 int i, int j=0(只要 j有一个 int类型的数据就行)。四、完成程序题(总题数:5,分数:20.00)46.下面程序实现将大写字母转换成小写字母的功能。 #include iostream.h void main() char a; _ cin a; if(_) a=a+i; cout a endl; (分数:4.

38、00)_正确答案:()解析:int i=32; a=“A“ public: f(T a =0, T b =0) x =a; y =b; void sum() s=x+y; T gets (); ; template class T _ return s; void main() _a(1.5,3.8); a.sum(); cout a.gets () endl; (分数:4.00)_正确答案:()解析:T fT:gets() fdouble48.下面程序用于输出三角形的面积,请在下横线处填上正确的语句。 #include iostream.h #include math.h void area

39、) double a, b, c; cout “Input a b c:“ ; _ if(a +b c _ cout “The area is:“ s endl; else cout “Error“ endl; void main() area(); (分数:4.00)_正确答案:()解析:cinabc; double s=sqrt(1*(1-a)*(1-b)*(1-c);49.#include iostream.h class Samp public: void Setij(int a, int b)i =a, j =b; Samp() cout “Destroying “ i endl; int GetMuti() return i * j; protected : int i; int j; ; int main() Samp * p; p = new Samp _ ; if( ! p) cout “ Allocation error/n“ ; return 1; for(int j =0; j 5; j + ) pjSetij(j, j); for(int k =0; k 5; k +) cout “Muti“ k “ is:“ pk._endl; _ return 0; (分数:4.00)_

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1