【计算机类职业资格】二级C++笔试-417及答案解析.doc

上传人:lawfemale396 文档编号:1324649 上传时间:2019-10-17 格式:DOC 页数:32 大小:84KB
下载 相关 举报
【计算机类职业资格】二级C++笔试-417及答案解析.doc_第1页
第1页 / 共32页
【计算机类职业资格】二级C++笔试-417及答案解析.doc_第2页
第2页 / 共32页
【计算机类职业资格】二级C++笔试-417及答案解析.doc_第3页
第3页 / 共32页
【计算机类职业资格】二级C++笔试-417及答案解析.doc_第4页
第4页 / 共32页
【计算机类职业资格】二级C++笔试-417及答案解析.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、二级 C+笔试-417 及答案解析(总分:85.00,做题时间:90 分钟)一、选择题(总题数:34,分数:60.00)1.有以下程序:#includeiostreamusing namespace std;class Aprivate:int a;public:A(int i)a=i;void disp()couta“,“;class Bprivate:int b;public:B(int j)b=j;void disp()coutb“,“;class C:public B,public Aprivate:int c;public:c(int k):A(k-2),B(k+2)c=k;void

2、 disp()a:disp();B:disp();coutcendl;int main()C obj(10);obj.disp();return 0;程序执行后的输出结果是( )。A) 10,10,10 B) 10,12,14 C) 8,10,12 D) 8,12,10(分数:2.00)A.B.C.D.2.以下程序的输出结果是 _。#includeiostream.hvoid main()int i,j;for(j=10;j=11;j+)for(i=9;ij:j+) if(!(j%i)break;if(ij1)coutj“ “ ;A) 11 B) 10C) 10 11 D) 9(分数:2.00

3、)A.B.C.D.3.数据的逻辑独立性是指( )。A) 存储结构与物理结构的逻辑独立性 B) 数据与存储结构的逻辑独立性C) 数据与程序的逻辑独立性 D) 数据元素之间的逻辑独立性(分数:2.00)A.B.C.D.4.有如下程序段:int i=1;while(1)i+;if(i=10) break;if(i%2=0) cout*;执行这个程序段输出字符*的个数是( )。A) 10 B) 3 C) 4 D) 5(分数:2.00)A.B.C.D.5.下列程序的输出结果是( )。#includeiostreamusing namespace std;class TestClassstatic int

4、 i;public:TestClass()i+;TestClass()i-;static int getVal()retum i;int TestClassi=0;void fun()TestClass ob2;coutob2.getVal();int main()TestClass obi;fun();TestClass*ob3=new TestClass;coutob3-getVal();delete ob3;coutTestClassgetVal();retum 0;A) 111 B) 121 C) 211 D) 221(分数:2.00)A.B.C.D.6.已知:int n=10;那么下

5、列语句中错误的是A) int*p=new longn;B) int pn;C) int*p=new long(n);D) int p10;(分数:1.00)A.B.C.D.7.下列符号中不属于 C+关键字的是( )。A. friend B. namespace C. continue D. byte(分数:2.00)A.B.C.D.8.有以下类定义class Pointpublic:Pointint x = 0, int y=0) _x = x; _y = y;void Move int xoff, int yoff)_x +=xoff;_y+=yoff;void Print() constc

6、out(_x,_y) end1;private:int_x,_y;下列语句中会发生编译错误的是A) Point pt;pt.Print();B) const Point pt;pt.Print();C) Point pt;pt.Move(1, 2);D) const Point pt;pt.Move(1, 2)(分数:2.00)A.B.C.D.9.对二叉树从 1 开始进行连续编号,要求每个结点的编号大于其左右孩子的编号,同一个结点的左右孩子中,其左孩子的编号小于其右孩子的编号,则可采用 _ 遍历实现编号。A) 无序 B) 中序C) 后序 D) 从根开始的层次遍历(分数:2.00)A.B.C.D

7、.函数模板:templateT add(T x,T y) return x+y;下列对 add 函数的调用不正确的是A) add(1,2)B) add(1,2)C) add(10,2)D) add(10,20)(分数:2.00)A.B.C.D.A.B.C.D.10.设有定义:class Cpublic:int ValUe;int X,*p;则以下引用形式中,正确的是( )。A) xvalue; B) xC:value;C) ppublic:Base(char n) :c(n) Base ( )coutc; class Derived : public Baseprivate:char c;pu

8、blic:Derived(char n):Base(n+1),c(n) Derived()coutc;int main()Derived obj(x);return 0;执行后的输出结果是A) xy B) yx C) x D) y(分数:2.00)A.B.C.D.12.如果利用 C+流进行输入输出,下面的叙述中正确的是A) 只能借助于流对象进行输入输出。B) 只能进行格式化输入输出。C) 只能借助于 cin 和 cout 进行输入输出。D) 只能使用运算符和进行输入输出。(分数:2.00)A.B.C.D.13.C+语言类体系中,不能被派生类继承的有A) 转换函数 B) 构造函数 C) 虚函数

9、D) 静态成员函数(分数:1.00)A.B.C.D.14.函数定义为 fun(int 的输出结果为( )。Aiiiimmmmmmm BiiiimmmmmmCiiiimmm Diiiiimm(分数:2.00)A.B.C.D.22.虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数,而非虚函数不支持多态调用。有如下程序: #include iostream using namespaee std; class Base public: virtual void f( )cout“f0+“; void g( )cout“gO+

10、“; ; class Derived:public Base public: void f( )cout“f+“; void g( )cout“g+“; ; int main( ) Derived d; Base*P=d: p-f( );p-g( ); return 0; 程序的输出结果是 A) f+g+ B) f0+g+ C) f+g0+ D) f0+g0+(分数:2.00)A.B.C.D.23.在软件生产过程中,给出需求信息的是( )。A) 程序员 B) 项目管理者C) 软件分析设计人员 D) 软件用户(分数:2.00)A.B.C.D.24.将:x+y*z 中的“+”用成员函数重载,“*”

11、用友元函数重载应写为( )。A) operator+(operator*(y, z) B) x.operator+(operator*(y, z)C) x.operator+(x*(y, z) D) x+(operator*(y, z)(分数:2.00)A.B.C.D.25.下列关于派生类构造函数和析构函数的说法中,错误的是( )。A) 派生类的构造函数会隐含调用基类的构造函数B) 如果基类中没有缺省构造函数,那么派生类必须定义构造函数C) 在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数D) 在撤销派生类对象时,先调用基类的析构函数,再调用派生类的析构函数(分数:2.00)A

12、.B.C.D.26.关于数据库系统三级模式的说法,下列( )是正确的。A) 外模式、概念模式、内模式都只有一个B) 外模式有多个,概念模式和内模式只有一个C) 外模式只有一个,概念模式和内模式有多个D) 3 个模式中,只有概念模式才是真正存在的(分数:2.00)A.B.C.D.27.定义如下变量:char one_char,则语句 cinone_char 等价于 C 语言中的( )语句。A) printf(one_char); B) prinft(“%c“,one_char);C) scanf(one_char); D) scanf(“%c“,x=y;y=t;int main ()int a2

13、=23,42;fun(a1,a0);std:couta0“,“a1std:endl;return 0;执行后的输出结果是A) 42,42 B) 23,23C) 23,42 D) 42,23(分数:2.00)A.B.C.D.29.有以下程序:#includeiostreamusing namespace std;int f(int,int);int main()int i:1,x;x=f(i,i+1);coutxend1;return 0;int f(int a,int b) int c;c = a;if(ab) c = 1;else if(a=b) c = 0;elsec = -2;retur

14、n c;运行后的输出结果是( )。A) 1 B) 0 C) -1 D) -2(分数:1.00)A.B.C.D.30.下列程序的输出结果是#includeiostream.hvoid main()char*str“12123434“;int x10,x20,x30,x40,i;for(i0;stri!/0;i+)switch(stri)case1:x4+;case2:X3+;case3:X2+;case4:X1+;coutX1“,“X2“,“X3“,“X4;A) 8,6,4,1 B) 8,6,3,2 C) 8,8,4,1 D) 8,6,4,2(分数:2.00)A.B.C.D.31.下面描述正确的

15、是( )。A) 类的普通成员函数可以操作常对象 B) 类的成员函数可以修改常对象C) 只有常成员函数才可以操作常对象 D) 常对象可以被常函数更新(分数:2.00)A.B.C.D.32.下列关于构造函数的描述中,错误的是( )。A) 构造函数可以设置默认参数B) 构造函数在定义类对象时自动执行C) 构造函数可以是内联函数D) 构造函数不可以重载(分数:1.00)A.B.C.D.33.模板参数表中参数使用的分隔符号是 _。A) , B) ;C) / D) 以上都不是(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:25.00)34.在下面的程序的横线处填上适当的语句,使该程序的输

16、出为 12。#include iostreamusing namespace std;class Basepublic:int a;Base(int i) a=i;;class Derived : public Baseint a;public:Derived(int x) : Base(x),b(x+1) void show()_; /输出基类数据成员 a 的值coutbend1;int main()Derived d(1);d.show();return 0;(分数:1.00)填空项 1:_35.已有函数 fun(a,b),为了使函数指针变量 P 指向函数 fun,则使用的赋值语句是 1。

17、(分数:2.00)填空项 1:_36.在面向对象方法中,属性与操作相似的一组对象称为 1。(分数:1.00)填空项 1:_37.在内存中,存储字符X要占用 1 个字节,存储字符串“X“要占用 1 个字节。(分数:1.00)填空项 1:_38.在最坏情况下,堆排序需要比较的次数为 1。(分数:2.00)填空项 1:_39.带一个 long 类型参数的流成员函数 1 按参数值设置 flags 状态变量,并返回以前设置的标志值。(分数:1.00)填空项 1:_40.在下面程序的横线处填上_,使程序执行后的输出结果为 1/2005。#includeiostream.husing namespace s

18、td;class DatePublic:Date(int m=1,int y=0): month(m),year(y)void Print()coutmonth“/“yearend1;_operator+(const Dateprivate:int month, year;Date operator+(const Dateyear=d1.year+d2.year;month=d1.month+d2.month;year+=(month-1)12;month=(month-1)%12+1;return Date(month,year);void main()Date d1(3,2004),d2,

19、d3(10);d2=d3+d1;d2.Print();(分数:2.00)填空项 1:_41.请分析下面的程序并给出该程序的执行结果_。#include iostreamclass AA int a;public:AA() cout“ Initializing AA!/n“ ; AAM() cout“ Destroying AA!/n“ ;class BB int b;AA p;public:BB() cout“Initializing BB!/n“ ;BB() cout“Destroying BB!/n“ ;void main() BB X;cout“Ending main!/n ;(分数:2

20、.00)填空项 1:_42.在链表的运算过程中,能够使空表与非空表的运算统一的结构是 1。(分数:2.00)填空项 1:_43.下列程序的输出结果是_。#include iostreamusing namespace std;class base public:int n;base(int x) n=x;virtual void set(int m) n=m; coutn ;class deriveA :public base public:deriveA(int x):base(x) void set(int m) n+=m; coutn ;class derive B: public ba

21、se public:derive B(int x):base(x) void set(int m) n+=m; coutn ;int main()derive A, d1(1);derive B, d2(3);base *pbase;pbase=pbase-set(1);pbase=phase-set(2);return 0;(分数:2.00)填空项 1:_44.软件生命周期包括 8 个阶段。为了使各时期的任务更明确,又可分为 3 个时期:软件定义期、软件开发期、软件维护期。编码和测试属于 1 期。(分数:2.00)填空项 1:_45.下列 for 语句的循环次数为_。For(nt a=0,b

22、=1;b;class Derived:public Baseint a;public:Derived(int x):Base(x),b(x+1);void show()_;/输出基类数据成员 a 的值。coutbendl;void main()Derived d(1);d.show();return 0;(分数:2.00)填空项 1:_二级 C+笔试-417 答案解析(总分:85.00,做题时间:90 分钟)一、选择题(总题数:34,分数:60.00)1.有以下程序:#includeiostreamusing namespace std;class Aprivate:int a;public:

23、A(int i)a=i;void disp()couta“,“;class Bprivate:int b;public:B(int j)b=j;void disp()coutb“,“;class C:public B,public Aprivate:int c;public:c(int k):A(k-2),B(k+2)c=k;void disp()a:disp();B:disp();coutcendl;int main()C obj(10);obj.disp();return 0;程序执行后的输出结果是( )。A) 10,10,10 B) 10,12,14 C) 8,10,12 D) 8,12

24、,10(分数:2.00)A.B.C.D. 解析:解析 本题中,派生类 C 具有多重继承关系,所以在派生类 C 的构造函数中应该包含基类 A 和类B 的成员初始化列表。2.以下程序的输出结果是 _。#includeiostream.hvoid main()int i,j;for(j=10;j=11;j+)for(i=9;ij:j+) if(!(j%i)break;if(ij1)coutj“ “ ;A) 11 B) 10C) 10 11 D) 9(分数:2.00)A.B.C. D.解析:3.数据的逻辑独立性是指( )。A) 存储结构与物理结构的逻辑独立性 B) 数据与存储结构的逻辑独立性C) 数据

25、与程序的逻辑独立性 D) 数据元素之间的逻辑独立性(分数:2.00)A.B.C. D.解析:解析 数据的逻辑独立性是指数据与程序的逻辑独立性,而数据与存储结构以及存储结构和物理结构之间都是相关联的。4.有如下程序段:int i=1;while(1)i+;if(i=10) break;if(i%2=0) cout*;执行这个程序段输出字符*的个数是( )。A) 10 B) 3 C) 4 D) 5(分数:2.00)A.B.C. D.解析:解析 本题主要考查 while 的作用。只有 i 为偶数时才输出“*”,而本题只有 2,4,6,8 时才满足条件,而当 i 为 10 时程序结束,即只有 4 个“

26、*”被输出。5.下列程序的输出结果是( )。#includeiostreamusing namespace std;class TestClassstatic int i;public:TestClass()i+;TestClass()i-;static int getVal()retum i;int TestClassi=0;void fun()TestClass ob2;coutob2.getVal();int main()TestClass obi;fun();TestClass*ob3=new TestClass;coutob3-getVal();delete ob3;coutTest

27、ClassgetVal();retum 0;A) 111 B) 121 C) 211 D) 221(分数:2.00)A.B.C.D. 解析:解析 由主函数 mian 入手,首先定义 TestClass 对象 ob1,调用构造函数后,i 等于 1。在“int TestClassi=0”语句中,i 首先被赋值为 0,它是静态函数可以被所有对象引用,并且静态成员变量,当它值被改变后,则在各对象中这个数据成员的值都同时改变。主函数中首先调用 fun 函数,其中又定义了对象 ob2,调用 gtVal;i 等于 2,输出。主函数“obj*ob3=newTestClass;coutob3-getVal();

28、”动态分配,i 等于 2,输出。“delete ob3;”析构函数后,i 等于 1,然后出 1。即 221。6.已知:int n=10;那么下列语句中错误的是A) int*p=new longn;B) int pn;C) int*p=new long(n);D) int p10;(分数:1.00)A.B. C.D.解析:解析 本题考核指针、数组和 new 运算符。运算符 new 用于动态申请存储空间,它的操作数为某种数据类型且可以带有初值表达式或元素个数,若带初值,则其表达式为:指针=new类型(初值),例如 C 选项所示,若带有元素个数,则其语法格式为:指针=new类型元素个数,例如 A 选

29、项所示。数组定义中数组大小必须为常量,而 B) 选项中的 n 为一变量所以是错误的。7.下列符号中不属于 C+关键字的是( )。A. friend B. namespace C. continue D. byte(分数:2.00)A.B.C.D. 解析:8.有以下类定义class Pointpublic:Pointint x = 0, int y=0) _x = x; _y = y;void Move int xoff, int yoff)_x +=xoff;_y+=yoff;void Print() constcout(_x,_y) end1;private:int_x,_y;下列语句中会发

30、生编译错误的是A) Point pt;pt.Print();B) const Point pt;pt.Print();C) Point pt;pt.Move(1, 2);D) const Point pt;pt.Move(1, 2)(分数:2.00)A.B.C.D. 解析:解析 本题考核常对象、常数据成员与常成员函数。如果将二个对象说明为常对象,则通过该常对象只能调用它的常成员函数,不能调用其他的成员函数,D 选项中对象 pt 为常对象,而成员函数 Move()不是常成员函数,所以这样调用会发生编译错误。9.对二叉树从 1 开始进行连续编号,要求每个结点的编号大于其左右孩子的编号,同一个结点的

31、左右孩子中,其左孩子的编号小于其右孩子的编号,则可采用 _ 遍历实现编号。A) 无序 B) 中序C) 后序 D) 从根开始的层次遍历(分数:2.00)A.B.C. D.解析:函数模板:templateT add(T x,T y) return x+y;下列对 add 函数的调用不正确的是A) add(1,2)B) add(1,2)C) add(10,2)D) add(10,20)(分数:2.00)A.B.C. D.解析:解析:对于 templateTadd(T x,T y) return x + y;调用时町以省略模板实参的声明,但是要求 x 和 y 的数据类型必须是一样的。A.B.C. D.

32、解析:解析:对于 templateTadd(T x,T y) return x + y;调用时町以省略模板实参的声明,但是要求 x 和 y 的数据类型必须是一样的。10.设有定义:class Cpublic:int ValUe;int X,*p;则以下引用形式中,正确的是( )。A) xvalue; B) xC:value;C) ppublic:Base(char n) :c(n) Base ( )coutc; class Derived : public Baseprivate:char c;public:Derived(char n):Base(n+1),c(n) Derived()cou

33、tc;int main()Derived obj(x);return 0;执行后的输出结果是A) xy B) yx C) x D) y(分数:2.00)A. B.C.D.解析:解析 本题考核继承与派生中继承基类的数据成员与成员函数。在 C+中,由于析构函数不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反在此题的程序中,在主函数 main结束时,派生类 Derived 对象 obj 将被删除,所以就会调用对象的析构函数。先调用派生类的析构函数,输出 x,然后调用基类的析构函数,输出 y。

34、12.如果利用 C+流进行输入输出,下面的叙述中正确的是A) 只能借助于流对象进行输入输出。B) 只能进行格式化输入输出。C) 只能借助于 cin 和 cout 进行输入输出。D) 只能使用运算符和进行输入输出。(分数:2.00)A. B.C.D.解析:解析 本题考查的知识点是:C+流。利用 C+流既可以进行有格式输入输出,也可以进行无格式输入输出,故选项 B 不正确。C+流有 4 个预定义的流对象,它们的名称及与之联系的 I/0 设备如下:cin 标准输入cout 标准输出cerr 标准出错信息输出clog 带缓冲的标准出错信息输出故选项 C 不正确。C+流除了可以使用提取“”插入“”进行输

35、入输出外,还可以通过流对象的一些成员函数进行输入输出,例如:get()、getline()、putback()等。故选项 D 不正确。综上所述,本题应该选择 A。13.C+语言类体系中,不能被派生类继承的有A) 转换函数 B) 构造函数 C) 虚函数 D) 静态成员函数(分数:1.00)A.B. C.D.解析:解析 派生类对象的数据结构是由基类中说明的数据成员和派生类中说明的数据成员共同构成,所以不能继承基类的构造函数,必须重新定义。14.函数定义为 fun(int 的输出结果为( )。Aiiiimmmmmmm BiiiimmmmmmCiiiimmm Diiiiimm(分数:2.00)A. B

36、.C.D.解析:22.虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数,而非虚函数不支持多态调用。有如下程序: #include iostream using namespaee std; class Base public: virtual void f( )cout“f0+“; void g( )cout“gO+“; ; class Derived:public Base public: void f( )cout“f+“; void g( )cout“g+“; ; int main( ) Derived d; B

37、ase*P=d: p-f( );p-g( ); return 0; 程序的输出结果是 A) f+g+ B) f0+g+ C) f+g0+ D) f0+g0+(分数:2.00)A.B.C. D.解析:解析 类指针可以指向派生类对象,但是只能访问基类的数据成员和成员函数。f( )作为虚函数,在派生类中被重新定义,可以通过基类指针或者引用来访问基类和派生类中的同名函数。23.在软件生产过程中,给出需求信息的是( )。A) 程序员 B) 项目管理者C) 软件分析设计人员 D) 软件用户(分数:2.00)A.B.C.D. 解析:24.将:x+y*z 中的“+”用成员函数重载,“*”用友元函数重载应写为(

38、 )。A) operator+(operator*(y, z) B) x.operator+(operator*(y, z)C) x.operator+(x*(y, z) D) x+(operator*(y, z)(分数:2.00)A.B. C.D.解析:解析 在定义了重载运算符后的函数后,函数 operator+重载了运算符“+”。如果在类以外的其他地方定义了一个函数,在类体中用 friend 对该函数进行声明,此函数就称为本类的友员函数。“*”用友元函数重载就是运算符函数不作为成员函数,而把它放在类外,“*”被改写为“operator*”。“+”为成员函数重载,x.operator+。所以

39、 x+y*z 被改写为“x.operator+(operator*(y,z)”。25.下列关于派生类构造函数和析构函数的说法中,错误的是( )。A) 派生类的构造函数会隐含调用基类的构造函数B) 如果基类中没有缺省构造函数,那么派生类必须定义构造函数C) 在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数D) 在撤销派生类对象时,先调用基类的析构函数,再调用派生类的析构函数(分数:2.00)A.B.C.D. 解析:解析 此题考查的是派生类的构造函数和析构函数。在撤销派生类对象时,析构函数的执行过程和构造函数严格相反,即:对派生类新增普通成员进行清理;调用成员对象析构函数,调用基类

40、析构函数对基类进行清理。26.关于数据库系统三级模式的说法,下列( )是正确的。A) 外模式、概念模式、内模式都只有一个B) 外模式有多个,概念模式和内模式只有一个C) 外模式只有一个,概念模式和内模式有多个D) 3 个模式中,只有概念模式才是真正存在的(分数:2.00)A.B. C.D.解析:27.定义如下变量:char one_char,则语句 cinone_char 等价于 C 语言中的( )语句。A) printf(one_char); B) prinft(“%c“,one_char);C) scanf(one_char); D) scanf(“%c“,x=y;y=t;int main

41、 ()int a2=23,42;fun(a1,a0);std:couta0“,“a1std:endl;return 0;执行后的输出结果是A) 42,42 B) 23,23C) 23,42 D) 42,23(分数:2.00)A.B. C.D.解析:解析 本题考核函数的调用以及参数值的传递。函数 fun 中的第一个参数采用引用传值方式,函数中对形参值的改变同样作用于实参上;第二个参数采用按值传值方式,函数中对形参的操作不会影响到实参。所以 main 函数中调用 fun 函数后,a1的值被修改为 a0的值,而 a0的值没有改变。29.有以下程序:#includeiostreamusing name

42、space std;int f(int,int);int main()int i:1,x;x=f(i,i+1);coutxend1;return 0;int f(int a,int b) int c;c = a;if(ab) c = 1;else if(a=b) c = 0;elsec = -2;return c;运行后的输出结果是( )。A) 1 B) 0 C) -1 D) -2(分数:1.00)A.B.C.D. 解析:解析 本题考核对函数调用方法的掌握程度。做此类题主要是弄清楚程序每一步的目的:在主函数前面声明了整型函数 f。在主函数中,调用了函数 f()。实参的值分别是 1 和 2,1

43、传给函数 f 的形参a,2 传给函数 f 的形参 b,函数返回的值赋给变量 x。即为输出的函数值。具体分析一下函数 f()的功能:如果 a 大于 b,则赋予 c 的值为 1;并且跳出 if-else 语句。如果 a 不大于 b,则进入 else if 分支中,如果 a 等于 b,则赋予 c 的值为 0,并跳出以下的 if-else 语句。如果 a 不等于 b,则进入 else 分支,执行 c=-2。因为实参 1,2 分别传给形参 a,b,所以此时 ab,f()函数应执行 c=-2。即最终输出应为-2。30.下列程序的输出结果是#includeiostream.hvoid main()char*

44、str“12123434“;int x10,x20,x30,x40,i;for(i0;stri!/0;i+)switch(stri)case1:x4+;case2:X3+;case3:X2+;case4:X1+;coutX1“,“X2“,“X3“,“X4;A) 8,6,4,1 B) 8,6,3,2 C) 8,8,4,1 D) 8,6,4,2(分数:2.00)A.B.C.D. 解析:解析 for 和 switch 语句的应用。解题要点 本题考查循环的嵌套。只要注意在 C+语言中,系统在字符指针的最后位置会增加一个字符串结束符/0,执行 8 次 for 循环,再根据 switch 语句中的条件易知

45、答案。考点链接 C+中各种条件判断,循环语句的用法。31.下面描述正确的是( )。A) 类的普通成员函数可以操作常对象 B) 类的成员函数可以修改常对象C) 只有常成员函数才可以操作常对象 D) 常对象可以被常函数更新(分数:2.00)A.B.C. D.解析:解析 只有常成员函数才可以操作常对象,常对象不可更新。32.下列关于构造函数的描述中,错误的是( )。A) 构造函数可以设置默认参数B) 构造函数在定义类对象时自动执行C) 构造函数可以是内联函数D) 构造函数不可以重载(分数:1.00)A.B.C.D. 解析:解析 构造函数是类的一个特殊成员函数,它与类同名,并且没有返回值。C+在创建一

46、个对象时,会自动调用类的构造函数,在构造函数中可以执行初始化成员变量的操作。构造函数可以是内联函数,也可以重载。33.模板参数表中参数使用的分隔符号是 _。A) , B) ;C) / D) 以上都不是(分数:2.00)A. B.C.D.解析:二、填空题(总题数:15,分数:25.00)34.在下面的程序的横线处填上适当的语句,使该程序的输出为 12。#include iostreamusing namespace std;class Basepublic:int a;Base(int i) a=i;;class Derived : public Baseint a;public:Derived(int x) : Base(x),b(x+1) void show()_; /输出基类数据成员 a 的值coutbend1;int main()Derived d(1);d.show();return 0;(分数:1.00)填空项 1:_ (正确答案:coutBase:a)解析:解析 本题考核作用域分辨符“:”的使用。35.已有函数 fun(a,b),为了使函数指针变量 P 指向函数 fun,则使用的赋值语句是 1。(分数:2.00)填空项 1:_ (正确答案:p=fun)解析:解析 函数入口地址称为函数的指针。可以使用指针变量指向 fun 函数,然后通过该指针变量调

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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