欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:1324767       资源大小:85KB        全文页数:15页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、二级 C+笔试 373 及答案解析(总分:94.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.有如下程序: #include iostream.h using namespace std; class Base protected: int i: public: int j; ; class Derived: public Base int m: public: int n; int main() Derived d: d.i=0; /1 d.J=0; /2 d.m=0; /3 d.n=0: /4 return 0; 其中主函数中有两个赋值语句有错,这两个错

    2、误的赋值语句是(分数:2.00)A.1和2B.1和3C.2和3D.2和42.函数定义为 Fun(int C.Fun(;D.Fun(&;3.C+流中重载的运算符是一个(分数:2.00)A.用于输出操作的非成员函数B.用于输入操作的非成员函数C.用于输出操作的成员函数D.用于输入操作的成员函数4.已知类 Myst 有一个只需要一个 double 型参数的构造函数,且将运算符“-”重载为友元函数。要使语句序列 Myst x3.2), y(5.5), z(0.0); z=8.9-y; y=x-6.3; 能够正常运行,运算符函数 operator-应该在类中声明为,(分数:2.00)A.friend M

    3、yst operator-(MystB.friend Myst operator-(Myst,Mys;C.friend Myst operator-(Myst,MystD.friend Myst operator-(Myst5.有以下程序 #include iostream using namespace std; class Complex public: Complex (double r=0, double i =0 :re(r) ,im (i) double real() const return re; double imag() const return im; Complex o

    4、perator + (Complex c const return Complex(re+c.re, im+c.im); privane: double re,im; ; int main Complex a =Complex(1,1)+Complex(5); couta.real()+a.imag() i endl return 0; 程序执行后的输出结果是(分数:2.00)A.6+6iB.6+1iC.1+6iD.1+1i6.下列关于栈的叙述正确的是(分数:2.00)A.在栈中只能插入数据B.在栈中只能删除数据C.栈是先进先出的线性表D.栈是先进后出的线性表7.要定义一个具有 5 个元素的一

    5、维数组 vect,并使其各元素的初值依次是 30,50,-88,0 和 0,则下列定义语句中错误的是(分数:2.00)A.int vect=30,50,-88;B.int vect=30,50,-88,0,0;C.int veer5=30,50,-88;D.int vect5=30,50,-88,0,0;8.有以下程序: #include iostream using namespace std; class sample private: int n: public: sample () sample(int m) n=m; sample add(sample s1, sample s2)

    6、this-n=s1.n+s2.n; return (*this); void disp () cout “n=“nend1; ; int main() sample s1(1)0,s2(5),s3; s3.add(s1,s2); s3.disp(); return 0; 程序运行后,输出的结果是(分数:2.00)A.n=10B.n=5C.n=20D.n=159.设有 a、b、c、d、m、n 均为血型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=aB) int main () char a = “Hello,World“: char*ptr = a; while (

    7、*ptr) if(*ptr= a else cout*ptr; ptr+; return 0; (分数:2.00)A.HELL WORLDB.Hello, WorldC.hELLO, wORLDD.hello, world15.有以下类定义 class Point public: Pointint x = 0, int y=0) _x = x; _y = y; void Move int xoff, int yoff) _x +=xoff;_y+=yoff; void Print() const cout(_x,_y) end1; private: int_x,_y; ; 下列语句中会发生编译

    8、错误的是(分数:2.00)A.Point pt;pPrint();B.const Point pt;pPrint();C.Point pt;pMove(1, 2);D.const Point pt;pMove(1, 2)16.若执行语句:coutsetfill(*)setw(10)123“OK“end1 后将输出(分数:2.00)A.*123OKB.123*OKC.*123*OKD.123*OK*17.下列模式中,能够给出数据库物理存储结构与物理存取方法的是(分数:2.00)A.内模式B.外模式C.概念模式D.逻辑模式18.C+语言中 while 循环和 do-while 循环的主要区别是(分

    9、数:2.00)A.do-while 的循环体至少无条件执行一次B.while 的循环控制条件比 do-while 的循环控制条件严格C.do-while 允许从外部转到循环体内D.do-while 的循环体不能是复合语句19.数据库设计的根本目标是要解决(分数:2.00)A.数据共享问题B.数据安全问题C.大量数据存储问题D.简化数据维护20.下列对于软件测试的描述中正确的是(分数:2.00)A.软件测试的目的是证明程序是否正确B.软件测试的目的是使程序运行结果正确C.软件测试的目的是尽可能多地发现程序中的错误D.软件测试的目的是使程序符合结构化原则21.算法的空间复杂度是指(分数:2.00)

    10、A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间22.下面描述中,符合结构化程序设计风格的是(分数:2.00)A.使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B.模块只有一个入口,可以有多个出口C.注重提高程序的执行效率D.不使用 goto 语句23.下列关于 new 运算符的描述中错误的是(分数:2.00)A.使用运算符 new 创建对象数组时必须定义初始值B.使用运算符 new 创建对象时,会调用类的构造函数C.运算符 new 可以用来动态创建对象和对象数组D.使用 new 运算符创建的对象可以使用运算符 delete

    11、 删除24.下列叙述中正确的是(分数:2.00)A.数据库系统是一个独立的系统,不需要操作系统的支持B.数据库设计是指设计数据库管理系统C.数据库技术的根本目标是要解决数据共享的问题D.数据库系统中,数据的物理结构必须与逻辑结构一致25.有以下程序 #include iostream int i = 0; void fun( ) static int i = 1; std:couti+,; std:couti,; int main() fun(); fun(); return 0; 程序执行后的输出结果是(分数:2.00)A.1,2,1,2,B.1,2,2,3,C.2,0,3,0,D.1,0,

    12、2,0,26.有如下函数模板定义: templatetypename T1,typename T2 typename T3 T2 plus(T1 t1, T3 t3)return t1+t3; 则以下调用中正确是(分数:2.00)A.plus(3,5;B.plus(3,5;C.plusint(3,5;D.plusint, double(3,5;27.下列对派生类的描述中,错误的是(分数:2.00)A.一个派生类可以作为另一个派生类的基类B.派生类至少有一个基类C.派生类的成员除了它自己的成员外,还包含了它的基类的成员D.派生类中继承的基类成员的访问权限到派生类中保持不变28.有以下程序 #in

    13、clude iostream using namespace std; static int days =31,28.31,30,31,30,31,31,30,31,30,31; class date private: int month, day, year: public: date (int m, int d, int y month = m; day = d; year = y; date void disp ) cout year“ - “month “- “dayend1; date operator+(int day) date dt = *this: day += dt.day

    14、; while day days dt.month - 1 ) day -= tays dt.month - 1 ; if ( +dt.month = 13 dt.month = 1; dt.yeare+; dr. day = day; return dt; ; int main() date d1( 6, 20, 2004 ), d2; d2.= d1 + 20; d2.disp (); return 0; 执行后的输出结果是(分数:2.00)A.2004-7-10B.2004-6-20C.2004-7-20D.程序编译时出错29.有如下函数模板定义: template class T T

    15、func(T x, T y)return x*x*y*y;) 在下列对 func的调用中,错误的是(分数:2.00)A.func(3,5);B.func(3.0,5.5);C.func(3,5.5);D.funcint(3,5.5);30.关于面向对象的程序设计方法,下列说法正确的是(分数:2.00)A.“封装性”指的是将不同类型的相关数据组合在一起,作为一个整体进行处理B.“多态性”指的是对象的状态会根据运行时要求自动变化C.基类的私有成员在派生类的对象中不可访问,也不占内存空间D.在面向对象的程序设计中,结构化程序设计方法仍有着重要作用31.在进行任何 C+流的操作后,都可以用 C+流的有

    16、关成员函数检测流的状态;其中只能用于检测输入流状态的操作函数名称是(分数:2.00)A.failB.eofC.badD.good32.派生类的构造函数的成员初始化列表中,不能包含(分数:2.00)A.基类的构造函数B.派生类中子对象的初始化C.基类的子对象初始化D.派生类中一般数据成员的初始化33.执行语句序列 int n: cinn: switch (n) case 1: case 2:cout1; case 3: case 4: cout2: break; default: cout3: 时,若键盘输入 1,则屏幕显示(分数:2.00)A.1B.2C.3D.1234.定义如下枚举类型:en

    17、umMonday, Tuesday, Wednesday, Thrusday, Friday=2;则下列语句正确的是(分数:2.00)A.表达式 Wednesday=Friday 的值是 trueB.Day day; day=3;C.Day day; day=Monday+3;D.Day day; day=Tuesday+10;35.下面概念中,不属于面向对象方法的是(分数:2.00)A.对象B.继承C.类D.过程调用二、B填空题/B(总题数:12,分数:24.00)36.数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是 1。(分数:2.00)填空项

    18、1:_37.在面向对象方法中,允许作用于某个对象上的操作称为 1。(分数:2.00)填空项 1:_38.若按功能划分,软件测试的方法通常分为白盒测试方法和 1 测试方法。(分数:2.00)填空项 1:_39.在数据库的概念结构设计中,常用的描述工具是 1。(分数:2.00)填空项 1:_40.数据结构分为逻辑结构和存储结构,循环队列属于 1 结构。(分数:2.00)填空项 1:_41.下列函数的功能是判断字符串 str 是否对称,对称则返回 true,否则返回 false。请在横线处填上适当内容,实现该函数。 bool fun(char *str) int i=0,j=0; while(str

    19、j)_; for(j-;ij i+,j-); return i_j; (分数:2.00)填空项 1:_42.若有如下程序段: #include iostream using namespace std; int main() char *p=“abcdefgh“,*r; long *q; q=(long *)p;q+; r=(char *)q; coutrend1; return 0; 该程序的输出结果是_。(分数:2.00)填空项 1:_43.在下面程序的横线处填上适当的内容,使程序执行后的输出结果为 1/2005。 #include iostream.h using namespace s

    20、td: class Date public: Date (int m=1,int y=0):month(m .year(y void Print() coutmonth“/“yearend1; _operator+(const Date private: int month year; ; _operaror+(const Date year=d1.year+d2.year; month=d1.month+d2.month; year+=(month-1)/12; month=(month-1)%12+l; return Datemonth, year: void main() Date d1

    21、(3,2004),d2,d3(10); d2=d3+d1; d2.Print(); (分数:2.00)填空项 1:_44.在下面程序的横线处填上适当的内容,使程序执行后的输出结果为 ABCD。 #include iostream.h using namespace std; class A public: A() coutA; ; class B:_ public: B() coutB; ; class C:_ public: C( coutC; ; class D:public B, public C public: D()coutD; ; void main()D obj;(分数:2.00

    22、)填空项 1:_45.请将下列类定义补充完整 class Basepublic: void fun()cout“Base:fun“end1; class Derived:public Base public: void fun() _/显式调用基类的 fun 函数 cout“Derived:fun“end1; ;(分数:2.00)填空项 1:_46.与成员访问表达式 p-name 等价的表达式是_。(分数:2.00)填空项 1:_47.有如下程序: #include iostream using namespace std; class AA public: virtual void f()

    23、cout“AA“; ; class BB : public AA public: BB() cout“BB“: ; class CC : public BB public: virtual void f() BB:f(): cout“CC“; ; int main ( ) AA aa,*p; BB bb; CC cc; p= p-f(); return 0; 运行后的输出结果_。(分数:2.00)填空项 1:_二级 C+笔试 373 答案解析(总分:94.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.有如下程序: #include iostream.h us

    24、ing namespace std; class Base protected: int i: public: int j; ; class Derived: public Base int m: public: int n; int main() Derived d: d.i=0; /1 d.J=0; /2 d.m=0; /3 d.n=0: /4 return 0; 其中主函数中有两个赋值语句有错,这两个错误的赋值语句是(分数:2.00)A.1和2B.1和3 C.2和3D.2和4解析:解析 本题考核类和派生类的访问权限。类 Derived 共有继承 Base,那么 d 对基类 Base 成员

    25、变量的访问权限不变,由于数据成员 i 为保护的,不能通过对象访问。派生类 Derived 中变量 m 为私有的,同样不能通过对象访问,所以错误的赋值语句为1和3。2.函数定义为 Fun(int C.Fun(; D.Fun(&;解析:解析 本题考核函数的调用。当函数的参数是引用类型时,参数不能是常量、表达式和变量地址,只能是变量本身。3.C+流中重载的运算符是一个(分数:2.00)A.用于输出操作的非成员函数B.用于输入操作的非成员函数 C.用于输出操作的成员函数D.用于输入操作的成员函数解析:解析 本题考核运算符重载。 C+中重载输入流运算符和输出流运算符只能作为非类成员函数重载,且必须使用如

    26、下原形: istream ostream4.已知类 Myst 有一个只需要一个 double 型参数的构造函数,且将运算符“-”重载为友元函数。要使语句序列 Myst x3.2), y(5.5), z(0.0); z=8.9-y; y=x-6.3; 能够正常运行,运算符函数 operator-应该在类中声明为,(分数:2.00)A.friend Myst operator-(MystB.friend Myst operator-(Myst,Mys; C.friend Myst operator-(Myst,MystD.friend Myst operator-(Myst解析:解析 本题考核运算

    27、符的重载。题中将运算符“-”重载为友元函数,其声明格式如 B 选项所描述的。5.有以下程序 #include iostream using namespace std; class Complex public: Complex (double r=0, double i =0 :re(r) ,im (i) double real() const return re; double imag() const return im; Complex operator + (Complex c const return Complex(re+c.re, im+c.im); privane: doub

    28、le re,im; ; int main Complex a =Complex(1,1)+Complex(5); couta.real()+a.imag() i endl return 0; 程序执行后的输出结果是(分数:2.00)A.6+6iB.6+1i C.1+6iD.1+1i解析:解析 本题考核类与对象、运算符重载。运算符“+”在类 Complex 中作为成员函数重载,实现两个对象的数据成员的相加。所以 main 函数中语句“Complex a =Complex(1, 1) + Complex(5);”的作用相当于“Complex a(1+5, 1);”即对象 a 的数据成员 re 的值

    29、为 6,imag 的值为 1,所以输出为 6+1i。6.下列关于栈的叙述正确的是(分数:2.00)A.在栈中只能插入数据B.在栈中只能删除数据C.栈是先进先出的线性表D.栈是先进后出的线性表 解析:解析 栈是一种特殊的线性表,其插入与删除运算都只在线性表的一端进行。在这种线性表的结构中,一端封闭;不允许插入与删除元素;另一端开口,允许插入与删除元素。 在栈中不仅能插入数据,也能删除数据,选项 A 与 B 都错。栈是后进先出的线性表,而不是先进先出的线性表,选项 C 的说法错误,选项 D 正确。7.要定义一个具有 5 个元素的一维数组 vect,并使其各元素的初值依次是 30,50,-88,0

    30、和 0,则下列定义语句中错误的是(分数:2.00)A.int vect=30,50,-88; B.int vect=30,50,-88,0,0;C.int veer5=30,50,-88;D.int vect5=30,50,-88,0,0;解析:解析 本题考核一维数组在定义时的初始化。当数组声明时没有给出数组的大小,但是有初始化列表时,数组的大小就由列表中元素的个数来确定, 由此可知 A) 选项中数组 vect 只有 3 个元素,与题目要求不符。8.有以下程序: #include iostream using namespace std; class sample private: int n

    31、: public: sample () sample(int m) n=m; sample add(sample s1, sample s2) this-n=s1.n+s2.n; return (*this); void disp () cout “n=“nend1; ; int main() sample s1(1)0,s2(5),s3; s3.add(s1,s2); s3.disp(); return 0; 程序运行后,输出的结果是(分数:2.00)A.n=10B.n=5C.n=20D.n=15 解析:解析 本题考核 this 指针的使用。类成员函数 add 中通过 this 指针实现私有

    32、数据成员 n 的赋值。9.设有 a、b、c、d、m、n 均为血型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=aB) int main () char a = “Hello,World“: char*ptr = a; while (*ptr) if(*ptr= a else cout*ptr; ptr+; return 0; (分数:2.00)A.HELL WORLD B.Hello, WorldC.hELLO, wORLDD.hello, world解析:解析 本题考核 while 语句和 if 语句,while 语句中 if 语句的作用是将小写字母变成大写字母

    33、输出、所以 main 函数的字符串通过 while 语句全部输出为大写字母。15.有以下类定义 class Point public: Pointint x = 0, int y=0) _x = x; _y = y; void Move int xoff, int yoff) _x +=xoff;_y+=yoff; void Print() const cout(_x,_y) end1; private: int_x,_y; ; 下列语句中会发生编译错误的是(分数:2.00)A.Point pt;pPrint();B.const Point pt;pPrint();C.Point pt;pMo

    34、ve(1, 2);D.const Point pt;pMove(1, 2) 解析:解析 本题考核常对象、常数据成员与常成员函数。如果将二个对象说明为常对象,则通过该常对象只能调用它的常成员函数,不能调用其他的成员函数,D 选项中对象 pt 为常对象,而成员函数 Move()不是常成员函数,所以这样调用会发生编译错误。16.若执行语句:coutsetfill(*)setw(10)123“OK“end1 后将输出(分数:2.00)A.*123OK B.123*OKC.*123*OKD.123*OK*解析:解析 本题考核格式控制数据的输入输出。函数 setfill(char c) 用于设置填充字符,

    35、在输出数据时,如果数据宽度小于设置的宽度,则空闲位置要用填充字符填满。函数 setw(int n)用于设置输入输出宽度,宽度设置的效果只对一次输入或输出有效,在完成一次数据的输出或输入后,宽度设置自动恢复为 0,例如题中语句以宽度 10 输出数据“123”后,字符串“OK”的输出宽度就自动恢复为 0 了。而且输出的初始状态为右对齐,所以最终的输出为*123OK。17.下列模式中,能够给出数据库物理存储结构与物理存取方法的是(分数:2.00)A.内模式 B.外模式C.概念模式D.逻辑模式解析:解析 能够给出数据库物理存储结构与物理存取方法的是内模式。外模式是用户的数据视图,也就是用户所见到的数据

    36、模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。没有逻辑模式这一说法。正确答案为 A。18.C+语言中 while 循环和 do-while 循环的主要区别是(分数:2.00)A.do-while 的循环体至少无条件执行一次 B.while 的循环控制条件比 do-while 的循环控制条件严格C.do-while 允许从外部转到循环体内D.do-while 的循环体不能是复合语句解析:解析 本题考核 C+语言中 while 循环和 do-while 循环之间的区别。do-while 语句与 while 语句不同的是,do-while 循环中的语句至少会执行一次,而

    37、 while 语句中当条件在第一次循环就不满足时,语句一次也不会执行。19.数据库设计的根本目标是要解决(分数:2.00)A.数据共享问题 B.数据安全问题C.大量数据存储问题D.简化数据维护解析:解析 本题考核数据库技术的根本目标,很简单,记忆性题目。数据库技术的根本目标就是要解决数据的共享问题,选项 A 正确。20.下列对于软件测试的描述中正确的是(分数:2.00)A.软件测试的目的是证明程序是否正确B.软件测试的目的是使程序运行结果正确C.软件测试的目的是尽可能多地发现程序中的错误 D.软件测试的目的是使程序符合结构化原则解析:解析 软件测试的目标是在精心控制的环境下执行程序,以发现程序

    38、中的错误,给出程序可靠性的鉴定。测试不是为了证明程序是正确的,而是在设想程序有错误的前提下进行的,其目的是设法暴露程序中的错误和缺陷。可见选项 c 的说法正确。21.算法的空间复杂度是指(分数:2.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间 解析:解析 算法的空间复杂度指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。正确答案为D。22.下面描述中,符合结构化程序设计风格的是(分数:2.00)A.使用顺序、选择和重复(循环)三种基本控制

    39、结构表示程序的控制逻辑 B.模块只有一个入口,可以有多个出口C.注重提高程序的执行效率D.不使用 goto 语句解析:解析 应该选择只有一个入口和一个出口的模块,故 B 选项错误;首先要保证程序正确,然后才要求提高效率,故 c 选项错误;严格控制使用 goto 语句,必要时可以使用,故 D 选项错误。23.下列关于 new 运算符的描述中错误的是(分数:2.00)A.使用运算符 new 创建对象数组时必须定义初始值 B.使用运算符 new 创建对象时,会调用类的构造函数C.运算符 new 可以用来动态创建对象和对象数组D.使用 new 运算符创建的对象可以使用运算符 delete 删除解析:解

    40、析 本题考核运算符 Dew。先来 7 解运算符 new:运算符 new 返回指定类型的一个指针,如果分配失败(如没有足够的内存空间),则返回 0。它与 delete 运算符一起使用,以达到直接进行动态内存分配和释放的目的。对于 A 选项,使用运算符 Flew 创建对柬数组时只能指定分配内存的大小,不能为该数组指定初始值,其初始值为缺省值,因此类中必须定义缺省构造函数。所以 A 选项的描述是错误的。B、C 和 D 选项的描述都是正确的。24.下列叙述中正确的是(分数:2.00)A.数据库系统是一个独立的系统,不需要操作系统的支持B.数据库设计是指设计数据库管理系统C.数据库技术的根本目标是要解决

    41、数据共享的问题 D.数据库系统中,数据的物理结构必须与逻辑结构一致解析:解析 A 选项,数据库系统需要操作系统的支持,必不可少,故其叙述不正确。B 选项错误,数据库设计是指设计一个能满足用户要求,性能良好的数据库。D 选项也不对,数据库应该具有物理独立性和逻辑独立性,改变其一而不影响另一个。正确答案为 C。25.有以下程序 #include iostream int i = 0; void fun( ) static int i = 1; std:couti+,; std:couti,; int main() fun(); fun(); return 0; 程序执行后的输出结果是(分数:2.0

    42、0)A.1,2,1,2,B.1,2,2,3,C.2,0,3,0,D.1,0,2,0, 解析:解析 本题考核变量的作用域、生存周期和存储类别(自动、静态、存储器、外部)。题中即定义全局变量 i,又在函数 fun 内部定义了局部静态变量 i, 当进入函数 fun 里面的大括号时,局部静态变量i 有效,所以输出 1,然后局部静态变量 i 加 1,出了里面的大括号后,全局变量 i 有效,所以输出 0。同理,第二次调用 fun 后,输出 2 和 0。26.有如下函数模板定义: templatetypename T1,typename T2 typename T3 T2 plus(T1 t1, T3 t3

    43、)return t1+t3; 则以下调用中正确是(分数:2.00)A.plus(3,5;B.plus(3,5;C.plusint(3,5;D.plusint, double(3,5; 解析:解析 本题考核函数模板的使用。C+中对函数模板的调用有时候只使用了函数实参,而没有使用模板实参,模板实参都被省略了,但模板实参的省略并不是必然的,而是有条件。模板实参不能省略的情况有:从模板函数实参表获得的信息有矛盾;需要获得特定类型的返回值,而不管参数的类型如何;虚拟类型参数没有出现在模板函数的形参中;函数模板含有常规形参。题中定义的函数模板中虚拟类型参数T2 没有出现在模板函数的形参列表中,所以在调用时

    44、不能省略,D 选项的调用省略了 T3,这是允许的。27.下列对派生类的描述中,错误的是(分数:2.00)A.一个派生类可以作为另一个派生类的基类B.派生类至少有一个基类C.派生类的成员除了它自己的成员外,还包含了它的基类的成员D.派生类中继承的基类成员的访问权限到派生类中保持不变 解析:解析 本题考核继承与派生。基类与派生类的关系为:基类是对派生类的抽象,派生类是对基类的具体化。基类抽取了它的派生类的公共特征,而派生类通过增加信息将抽象的基类变为某种有用的类型,派生类是基类定义的延续。派生类是基类的组合。公有派生类的对象可以作为基类的对象处理。由此可知A、B 和 C 选项都是正确的。而在继承中

    45、,采用不同的继承方式,将限制派生类对基类成员的访问。所以D 选项是错误的。28.有以下程序 #include iostream using namespace std; static int days =31,28.31,30,31,30,31,31,30,31,30,31; class date private: int month, day, year: public: date (int m, int d, int y month = m; day = d; year = y; date void disp ) cout year“ - “month “- “dayend1; date

    46、operator+(int day) date dt = *this: day += dt.day; while day days dt.month - 1 ) day -= tays dt.month - 1 ; if ( +dt.month = 13 dt.month = 1; dt.yeare+; dr. day = day; return dt; ; int main() date d1( 6, 20, 2004 ), d2; d2.= d1 + 20; d2.disp (); return 0; 执行后的输出结果是(分数:2.00)A.2004-7-10 B.2004-6-20C.2004-7-20D.程序编译时出错解析:解析


    注意事项

    本文(【计算机类职业资格】二级C++笔试373及答案解析.doc)为本站会员(brainfellow396)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开