【学历类职业资格】C++程序设计自考题-2及答案解析.doc
《【学历类职业资格】C++程序设计自考题-2及答案解析.doc》由会员分享,可在线阅读,更多相关《【学历类职业资格】C++程序设计自考题-2及答案解析.doc(25页珍藏版)》请在麦多课文档分享上搜索。
1、C+程序设计自考题-2 及答案解析(总分:100.00,做题时间:90 分钟)一、单项选择题(总题数:20,分数:20.00)1.在下列成对的表达式中,运算结果类型相同的一对是( )A7.0/2.0 和 7.0/2 B5/2.0 和 5/2C7.0/2 和 7/2 D8/2 和 6.0/2.0(分数:1.00)A.B.C.D.2.所谓数据封装就是将一组数据和与这组数据有关的操作组装在一起,形成一个实体,这实体也就是( )A类 B对象C函数体 D数据块(分数:1.00)A.B.C.D.3.面向对象程序设计语言必须具备的关键要素是( )A抽象和封装 B抽象和多态性C抽象、封装、继承和多态性 D抽象
2、、封装和继承性(分数:1.00)A.B.C.D.4.C+中分配动态存储空间,使用的关键字为( )Afree BcreateCdelete Dnew(分数:1.00)A.B.C.D.5.int Func(int,int);不可与下列哪个函数构成重载( )Aint Func(int,int,int); Bdouble Func(int,int);Cdouble Func(double,double); Ddouble Func(int,double);(分数:1.00)A.B.C.D.6.C+允许在结构中定义函数,这些函数称为( )A静态函数 B构造函数C析构函数 D成员函数(分数:1.00)A.
3、B.C.D.7.下列哪种默认参数的声明是不正确的( )Aint max(int a,int b,int c,int d=0); Bint max(int a,int b,int c=0,int d=0);Cint max(int a=0,int b,int c=0,int d=0); Dint max(int a,int b=0,int c=0,int d=0);(分数:1.00)A.B.C.D.8.设函数 void subone(int&)将形参减 1,如有整型变量 int k=10,则执行 subone(k);后,k 的值为( )A9 B10C11 D未知(分数:1.00)A.B.C.D.
4、9.设有函数模板templateclass QQ Sum(Q x,Q y)return(x)+(y);则下列语句中对该函数模板的使用错误的是( )ASum(10,2); BSum(5.0,6.7);CSum(15.2f,16.0f); DSum(“AB“,“CD“);(分数:1.00)A.B.C.D.10.下列说法中正确的是( )A类定义中只能说明成员函数的函数头,不能定义函数体B类中的成员函数可以在类体中定义,也可以在类体之外定义C类中的成员函数在类体之外定义时必须要与类声明在同一文件中D在类体之外定义的成员函数不能操作该类的私有数据成员(分数:1.00)A.B.C.D.11.假定一个类的构
5、造函数为“A(int i=4,int j=0)a=i;b=j;”,则执行“A x(1);”语句后,x.a 和x.b的值分别为( )A1 和 0 B1 和 4C4 和 0 D4 和 1(分数:1.00)A.B.C.D.12.类的构造函数被自动调用执行的情况是在定义该类的( )A成员函数时 B数据成员时C对象时 D友元函数时(分数:1.00)A.B.C.D.13.一个类拥有多个构造函数,则这些构造函数间为( )A重载关系 B重复关系C拷贝关系 D无关系(分数:1.00)A.B.C.D.14.包含哪种语句的函数不能声明为内联函数( )A变量定义 BifelseC位操作 Dswitch(分数:1.00
6、)A.B.C.D.15.若公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的( )A私有成员 B公有成员C保护成员 D保护成员或私有成员(分数:1.00)A.B.C.D.16.类 B是类 A的公有派生类,类 A和类 B中都定义了虚函数 func(),p 是一个指向类 A对象的指针,则p-A:func()将( )A调用类 A中的函数 func()B调用类 B中的函数 func()C根据 p所指的对象类型而确定调用类 A中或类 B中的函数 func()D既调用类 A中函数,也调用类 B中的函数(分数:1.00)A.B.C.D.17.下列不具有访问权限属性的是( )A非类
7、成员 B类成员C数据成员 D成员函数(分数:1.00)A.B.C.D.18.在类定义中 private、protected、public 关键词出现的次数为( )A任意多次 B至多一次Cpublic 至少出现一次 D至少一次(分数:1.00)A.B.C.D.19.如果表达式 y*x+中,“*”是作为成员函数重载的运算符,“+”是作为友元函数重载的运算符,采用运算符函数调用格式时,该表达式应表示为( )Ax.operator+(0).operator*(y) Boperator*(x.operator+(0),y)Cy.operator*(operator+(x,0) Doperator*(op
8、erator+(x,0),y)(分数:1.00)A.B.C.D.20.设类 Test中存在成员 static int x;,则下列哪种初始化方式是正确的( )ATest:int x=25; Bint x=25;Cint Test:x=25; Dint Test x=25;(分数:1.00)A.B.C.D.二、填空题(总题数:20,分数:20.00)21.在 C+语言的面向对象设计框架中, 1 是程序的基本组成单元。(分数:1.00)填空项 1:_22.表达式 couthex 还可表示为 1。(分数:1.00)填空项 1:_23.若要访问指针变量 p所指向的数据,应使用表达式 1。(分数:1.0
9、0)填空项 1:_24.如果使用数组名作为函数参数,形实结合时,传递的是 1。(分数:1.00)填空项 1:_25.在类中, 1 成员为类的所有对象所共享。(分数:1.00)填空项 1:_26.假定用户没有给一个名为 AB的类定义构造函数,则系统自动给出的缺省构造函数定义为 1。(分数:1.00)填空项 1:_27.函数模板中紧随 template之后尖括号内的类型参数都要冠以保留字 1。(分数:1.00)填空项 1:_28.在用 C+进行程序设计时,最好用 1 代替 malloc。(分数:1.00)填空项 1:_29.在 C+中,访问指针所指向的对象的成员使用 1 运算符。(分数:1.00)
10、填空项 1:_30.友元函数可以存取类的私有成员、公有成员和 1。(分数:1.00)填空项 1:_31.由 const修饰的对象称为 1。(分数:1.00)填空项 1:_32.通过 C+语言中的 1 机制,可以从现存类中构建其子类。(分数:1.00)填空项 1:_33.在派生类中实现基类成员的初始化,需要由派生类的构造函数调用 1 来完成。(分数:1.00)填空项 1:_34.静态成员函数是 1 的成员,不是对象的成员。(分数:1.00)填空项 1:_35.类的私有成员只能被它的成员函数和 1 访问。(分数:1.00)填空项 1:_36.与操作对象的数据类型相互独立的算法称为 1。(分数:1.
11、00)填空项 1:_37.C+重载“=”运算符的函数名是 1。(分数:1.00)填空项 1:_38. 1是 istream类的对象,用于处理标准输入,即键盘输入。(分数:1.00)填空项 1:_39.UML中实例连接反映对象之间的静态关系,消息连接描述对象之间的 1 关系。(分数:1.00)填空项 1:_40.运算符“+”允许重载为类的成员函数,或者非成员函数。若用 operator+(c1,c2)这样的表达式来使用运算符“+”,应将“+”重载为 1 函数。(分数:1.00)填空项 1:_三、改错题(总题数:5,分数:20.00)41.class ABCint a;public:ABC(int
12、 aa)a(aa);(分数:4.00)填空项 1:_42.下面程序通过调用函数模板实现计算两个正整数的最大公约数,把 main函数中的错误找出并改正过来。#includeiostream.htemplateclass TT gcd(T x,T y)while(x!=y)if(xy)x-=y;else y-=x;return x;void main()int a;double d;cinad:coutgcd(a,d)endl;(分数:4.00)填空项 1:_43.#includeiostream.hclass Apublic:void A()const int f5()constreturn 5
13、;int Obj()return 45;int val;int f8();int A:f8()return val;void main()const A s;int i=s.f5();cout“Value=“iendl:(分数:4.00)填空项 1:_44.#includeiostream.hclass shapepublic:virtual int area()return 0;class rectangle:public shapepublic:int a,b;void setLength(int x,int y)a=x;b=y;int area()return a*b;void main
14、()rectangle r;r.setLength(3,5);shape s1,*s2=r;coutr.area()endl;s2=s1;couts2.area()endl;(分数:4.00)填空项 1:_45.#includeiostream.hclass Atonint X,Y;protected:int zx,zy;public:void init(int i,int j)zx=i;zy=j;Aton(int i,int j,int n=0,int m=0)X=i,Y=j,zx=m,zy=n;:void main()Aton A(25,20,3,5);A.init(5,9);coutAX
15、endl:(分数:4.00)填空项 1:_四、完成程序题(总题数:5,分数:20.00)46.在下面程序的横线处填上适当内容,使程序执行结果为:“hello,andylin“。#includeiostream#includestring.husing namespace std;class mystringpublic:char*pdata;mystring(int len)pdata=new charlen+1;mystring()delete pdata;void show()coutpdataendl;void fun(mystring*array,int len)mystring*ol
16、d=*array;_memcpy(*array,old,len);void main()mystring str(20);mystring*pstr=&str;mystring*ppstr=&pstr;strcpy(str.pdata,“hello,andylin“);fun(ppstr,20);_(分数:4.00)_47.在下面程序横线处填上适当内容,使程序执行结果为:200_ _100。#includeiostream.htemplateclass TT f(_)if(_)return x+y;elsereturn x*y;void main()coutf(10,20)“_ _“f(45.
17、5,54.5)endl;(分数:4.00)_48.在下面程序的横线处填上适当内容,使程序执行结果为:S=2S=5S=9#includeiostream.hvoid sum(int i)static int s;cout“s=“sendl:void main(void)int i;for(i=0;_)sum(i);(分数:4.00)_49.在下面程序的横线处填上适当内容,以使该程序执行结果为:50 4 34 21 100 7.1 8.1 9.1 10.1 11.1#includeiostream.htemplateclass Tvoid f(_)_for(int i=0;in/2;i+)t=ai
18、;ai=an-1-i;an-1-i=t;void main()int a5=10,21,34,4,50;double d6=11.1,10.1,9.1,8.1,7.1;f(a,5);f(d,6);for(int i=0;i5;i+)coutai“ “;coutendl;for(i=0;i6;i+)coutdi“ “;coutendl;(分数:4.00)_50.在下面程序的横线处填上适当内容,完成类的定义。class line;class boxprivate:int color;int upx,upy;int lowx,lowy;public:_void set_color(int c)col
19、or=c;void define_box(int x1,int y1,int x2,int y2)upx=x1;upy=y1;lowx=x2;lowy=y2;class lineprivate:int color;int startx,starty;int endx,endy;public:friend int same_color(line l,box b);void set_color(int c)color=c;void define_line(_)startx=x1;starry=y1;endx=x2;endy=y2;int same_color(line l,box b)if(l.c
20、olor=b.color)return 1;return 0;(分数:4.00)_五、程序分析题(总题数:2,分数:10.00)51.运行程序,写出程序执行的结果。#includeiostream.hvoid main()int a,b;char ch;cinachb;/从键盘上输入 1.5 c 10coutaendlchendlbendl;(分数:5.00)_52.运行程序,写出程序执行的结果。#includeiostream.hclass Testprivate:static int val;int a;public:static int func();static void sfunc(
21、Test &r);int Test:val=20:int Test:func()val-;return val;void Test:sfunc(Test &r)r.a=25;cout“Result3=“r.aendl;void main()cout“Resuh1=“Test:func()endl;Test a;cout“Result2=“a.func()endl;Test:sfunc(a);(分数:5.00)_六、程序设计题(总题数:1,分数:10.00)53.已定义一个 Shape抽象类,在此基础上派生出矩形 Rectangle和圆形 Circle类,二者都有 GetPerim()函数计算对
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学历 职业资格 程序设计 考题 答案 解析 DOC
