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

    【计算机类职业资格】国家计算机二级(C++)71及答案解析.doc

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

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

    【计算机类职业资格】国家计算机二级(C++)71及答案解析.doc

    1、国家计算机二级(C+)71 及答案解析(总分:460.00,做题时间:120 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:35,分数:70.00)1.若有说明语句 char a =“It is mine“; char *p=“It is mine“; 则以下不正确的叙述是( )。 (分数:2.00)A.continue 语句用于循环体中,结束循环B.continue 语句用于循环体中,它使执行流跳出循环体中尚未执行的语句,并进行下一循环判断C.continue 可以用于 if 语句中D.continue 语句不能代替 break 语句2.以下能正确定义一维数组的选项是_。

    2、 (分数:2.00)A.int a5=0,1,2,3,4,5;B.char a=0,1,2,3,4,5;C.char a=A,B,C;D.int a5=“0123“;3.已定义以下函数 int fun(int *p) return *p; fun 函数返回值是_。 (分数:2.00)A.不确定的值B.一个整数C.形参 p 中存放的值D.形参 p 的地址值4.如果表达式 x * y + z 中,“ * ”是作为友元函数重载的,“+”是作为友元函数重载的,则该表达式还可为 ( )。(分数:2.00)A.operator+(operator*(x,y),z)B.xoperator+(operator

    3、*(x,y),z)C.yoperator*(operator+(x,y),z)D.xoperator+(operator*(x,y)5.有以下程序段: int k=0,a=1,b=2,c=3; k=ac?c:k; 执行该程序段后,k 的值是_。 (分数:2.00)A.3B.2C.1D.06. 下列选项中不符合良好程序设计风格的是【 】(分数:2.00)A.源程序要文档化B.数据说明的次序要规范化C.避免滥用 goto 语句D.模块设计要保证高耦合、高内聚7.以下程序中,错误的行为是( )。 (1) # include iostream.h (2) class A (3) (4) public:

    4、 (5) int n=2; (6) A(int val) cout val endl; (7) A( ) ; (8) ; (9) void main( ) (10) (11) A a(0); (12) (分数:2.00)A.一元运算符B.二元运算符C.选项 A)和选项 B)都可能D.重载错误8.有以下结构体说明和变量定义,如图所示: (分数:2.00)A.P-next=q-next;B.p-next=p-next-next;C.p-next=r;D.p=q-next;9.有以下程序: point(char *p)p+=3; main() char b4=a,b,c,d,*p=b; point(

    5、p);printf(“%c/n“,*p); 程序运行后的输出结果是_。 (分数:2.00)A.aB.bC.cD.d10.关于在调用模板函数时模板实参的使用,下列表述正确的是【 】(分数:2.00)A.对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略B.对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略C.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D.对于常规参数所对应的模板实参。任何情况下都不能省略11.下列运算符不能重载为友元函数的是【 】(分数:2.00)A.= ( ) -B.+ - +-C. = =1)

    6、return f(a,n-1)+an-1; else return 0; main2 int aa5=1,2,3,4,5,s; s=f(aa,5); printf(“%d/n“,s); (分数:30.00)填空项 1:_40.若已知 a=10,b=20,则表达式 l a b 的值为 1。(分数:30.00)填空项 1:_41.若要访问指针变量 P 所指向的数据,应使用表达式 1。 (分数:30.00)填空项 1:_42.内联函数是通过 1 来实现的,因此内联函数是真正的函数。(分数:30.00)填空项 1:_43.若有定义语句:int*a,b;,则变量 b 的数据类型是 1。(分数:30.00

    7、)填空项 1:_44.如果类中的一个成员函数的定义实现在类内,则该函数系统自动默认为该类的 1 函数。(分数:30.00)填空项 1:_45.在声明派生类时,如果不显式地给出继承方式,缺省的类继承方式是私有继承 private。 已知有如下类定义: class Base protected: void fun1 public: Foo2:value(0) ; class Derived:Base; 则 Base 类中的成员函数 fun3,在 Derived 类中的访问权限是 4 (注意:要求填写private、protected 或 public 中的一项)。 (分数:30.00)填空项 1:

    8、_46.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接 模块(桩模块)。其中 1 的作用是将测试数据传送给被测试的模块,并显示 被测试模块所产生的结果。(分数:30.00)填空项 1:_47.以下程序运行后的输出结果是 1。 #includeiostreamh void fun(int x,int y) x=x+y;y=x-y;x=x-y; cout x “,“ y “ ,“; void main2 int x=2,y=3;fun(x,y); cout x “,“ y endl; (分数:30.00)填空项 1:_48.与成员访问表达式 pname 等价的表达式是 1。

    9、(分数:30.00)填空项 1:_国家计算机二级(C+)71 答案解析(总分:460.00,做题时间:120 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:35,分数:70.00)1.若有说明语句 char a =“It is mine“; char *p=“It is mine“; 则以下不正确的叙述是( )。 (分数:2.00)A.continue 语句用于循环体中,结束循环 B.continue 语句用于循环体中,它使执行流跳出循环体中尚未执行的语句,并进行下一循环判断C.continue 可以用于 if 语句中D.continue 语句不能代替 break 语句解析

    10、:C 语言是一种面向过程的程序设计语言,而 C+语言是一种面向对象的设计语言,C+语言是 C 语言的超集,它包含了 C 语言的所有语言特性,并进行了扩充。2.以下能正确定义一维数组的选项是_。 (分数:2.00)A.int a5=0,1,2,3,4,5;B.char a=0,1,2,3,4,5; C.char a=A,B,C;D.int a5=“0123“;解析: 选项 A 中定义的是 5 个数组元素,但赋值的时候赋的是 6 个元素,所以出错;选项 C 不符合数组 定义形式,数组名后应加上“”;选项 D 的类型说明符错误,如果用 char 定义就对了;选项 B 中的 0,1,2,3,4,5 分

    11、别表示对应字符的 ASCII 码,所以选项 B 是正确的。3.已定义以下函数 int fun(int *p) return *p; fun 函数返回值是_。 (分数:2.00)A.不确定的值B.一个整数 C.形参 p 中存放的值D.形参 p 的地址值解析:函数值的类型应当是在定义函数时指定的。在定义函数时对函数值说明的类型一般和 return 语句中 的表达式类型一致,即函数类型决定返回值的类型。此题中定义函数类型为 int 型,故函数返回值也为整型。4.如果表达式 x * y + z 中,“ * ”是作为友元函数重载的,“+”是作为友元函数重载的,则该表达式还可为 ( )。(分数:2.00)

    12、A.operator+(operator*(x,y),z) B.xoperator+(operator*(x,y),z)C.yoperator*(operator+(x,y),z)D.xoperator+(operator*(x,y)解析:C+中用成员函数重载 x*y 为:xoperator * (y),用友元函数重载 x*y 为:operator *(x,y),用成员函数重载 x/y 为:xoperator+(y),用友元函数重载 x + y 为:operator+(x,y)。5.有以下程序段: int k=0,a=1,b=2,c=3; k=ac?c:k; 执行该程序段后,k 的值是_。 (

    13、分数:2.00)A.3B.2 C.1D.0解析:三目运算符的一般形式为(表达式 1)?(表达式 2):(表达式 3),当(表达式 1)值为真时,(表达式 2)的值 为整个表达式的值;当(表达式 1)的值为假时,(表达式 3)的值为整个表达式的值。题中执行表达式“k=ac?c:k”,由于“kc”值为假,故 k 的值还等于原来 k 的值,即 2。6. 下列选项中不符合良好程序设计风格的是【 】(分数:2.00)A.源程序要文档化B.数据说明的次序要规范化C.避免滥用 goto 语句D.模块设计要保证高耦合、高内聚 解析:程序设计风格是指编写程序时所表现出的特点、习惯和逻辑思路。著名的“清晰第一,效

    14、率第二“的论点已成为当今主导的程序设计风格。要形成良好的程序设计风格,主要应注意和考虑下述一些因素:源程序文档化;数据说明的次序规范化;避免滥用 goto 语句等,除此之外,一般较优秀的软件设计应尽量做到高内聚、低耦合,这样有利于提高软件模块的独立性。所以正确选项是 D)。7.以下程序中,错误的行为是( )。 (1) # include iostream.h (2) class A (3) (4) public: (5) int n=2; (6) A(int val) cout val endl; (7) A( ) ; (8) ; (9) void main( ) (10) (11) A a(

    15、0); (12) (分数:2.00)A.一元运算符B.二元运算符C.选项 A)和选项 B)都可能D.重载错误 解析:在实现 Runnable 接口的类中,必须有的是 run()方法。在实现 Runnable 接口的类中,必须重写run()方法来定义线程体。实现 Runable 接口的来创建线程,更符合面向对象的思想。 8.有以下结构体说明和变量定义,如图所示: (分数:2.00)A.P-next=q-next;B.p-next=p-next-next;C.p-next=r;D.p=q-next; 解析:要想将 q 所指结点从链表中删除,同时保持链表的连续,必需使 p 结点的 next 指向 r

    16、,在四个选项 中,只有选项 D 不能做到。9.有以下程序: point(char *p)p+=3; main() char b4=a,b,c,d,*p=b; point(p);printf(“%c/n“,*p); 程序运行后的输出结果是_。 (分数:2.00)A.a B.bC.cD.d解析:在 C 语言中,函数的参数传递方式采用按值传递,因此不能通过调用函数的方式来改变指针本身的 值,只能改变指针所指变量的值。10.关于在调用模板函数时模板实参的使用,下列表述正确的是【 】(分数:2.00)A.对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略B.对于虚拟类

    17、型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略 C.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D.对于常规参数所对应的模板实参。任何情况下都不能省略解析:在调用一个模板函数时,如果从函数实参获得的信息已经能够判定其中部分或全部虚拟类型参数所对应的实际参数,而且它们又正好是参数表中最后的若干参数,则模板实参表中的那几个参数可以省略。11.下列运算符不能重载为友元函数的是【 】(分数:2.00)A.= ( ) - B.+ - +-C. = ,赋值运算符,( )和 是不能够重载为友元函数的运算符。对双目运算符,友元函数有两个参数;对单目运算符,友元函数有一个参

    18、数。12.下列选项中不全是 C+语言关键字的是( )。(分数:2.00)A.const,break,defaultB.long,void,usingC.virtual,extern,include D.try,throw,this解析:本题考查 C+语言的关键字。要熟练掌握 C+语言中的关键字。注意:include 不是 C+语言的关键字。13.下面关于运算符重载的描述错误的是( )。(分数:2.00)A.运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构B.不是所有的运算符都可以进行重载C.运算符函数的调用必须使用关键字 operator D.在 C+语言中不可

    19、通过运算符重载创造出新的运算符解析:例如“: :”运算符就不能被重载;通过重载可以创造新的运算方 式,但是不能臆造新的运算符;定义的时候必须使用关键字 operator,而调用时可直接使 用运算符。14.表达式 10 5 int a=1,b=3,c=2;则正确的 switch 语句是_。 (分数:2.00)A.B.C. D.解析:在 switch 语句中,case 后的常量表达式只能是整型或等价于整型的常量,而选项 A 中 case 后面的表 达式为浮点型,选项 D 中 case 后面的表达式存在字符变量“c”,故选项 A 与选项 D 错误;在选项 B 中,switch 后面的表达式加了分号显

    20、然格式有误。故选项 C 正确。17.多态性指的是( )。(分数:2.00)A.以任何方式调用一个虚函数B.以任何方式调用一个纯虚函数C.借助于指向对象的基类指针或引用调用一个虚函数 D.借助于指向对象的基类指针或引用调用一个纯虚函数解析:本题考查多态性的基本概念。多态性主要是指借助于指向对象的基类指针或引用调用一个虚函数。18.有如下程序 #include using namespace std; class Base protected: Base()cout=1) return f(a,n-1)+an-1; else return 0; main2 int aa5=1,2,3,4,5,s;

    21、 s=f(aa,5); printf(“%d/n“,s); (分数:30.00)填空项 1:_ (正确答案:15)解析:本题通过递归调用实现了数组 aa 各元素之和,即 a4+a3+a2+a1+a0=15。40.若已知 a=10,b=20,则表达式 l a b 的值为 1。(分数:30.00)填空项 1:_ (正确答案:1)解析:计算表达式!ab,先计算!a,因 a 的值为 10,!a 的值为 0。关系表达式 0 20 为真,所以表达式!ab 的值为 1。41.若要访问指针变量 P 所指向的数据,应使用表达式 1。 (分数:30.00)填空项 1:_ (正确答案:*p)解析:42.内联函数是通

    22、过 1 来实现的,因此内联函数是真正的函数。(分数:30.00)填空项 1:_ (正确答案:编译器)解析:本题考查内联函数的基本概念内联函数是通过编译器,只是在调用的时候,像宏一样展开。43.若有定义语句:int*a,b;,则变量 b 的数据类型是 1。(分数:30.00)填空项 1:_ (正确答案:整型)解析:多个变量如果类型一致,则可以使用一个逗号表达式来实现类型的申明,只需在第一个变量前申明变量的类型,逗号后的其他变量可省略类型关键字,系统默认变量类型与第一个变量一致。a 应该是指向整型数据的一个指针变量。44.如果类中的一个成员函数的定义实现在类内,则该函数系统自动默认为该类的 1 函

    23、数。(分数:30.00)填空项 1:_ (正确答案:内联)解析:本题考查内联函数与宏定义的区别。C+中的成员函数如果它的实现写在了类中,那么该函数就是一个内联函数。45.在声明派生类时,如果不显式地给出继承方式,缺省的类继承方式是私有继承 private。 已知有如下类定义: class Base protected: void fun1 public: Foo2:value(0) ; class Derived:Base; 则 Base 类中的成员函数 fun3,在 Derived 类中的访问权限是 4 (注意:要求填写private、protected 或 public 中的一项)。 (分

    24、数:30.00)填空项 1:_ (正确答案:private)解析:派生类从基类私有继承时,基类的公有成员和保护成员在派生类中都改变为私有成员。46.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接 模块(桩模块)。其中 1 的作用是将测试数据传送给被测试的模块,并显示 被测试模块所产生的结果。(分数:30.00)填空项 1:_ (正确答案:驱动模块)解析:在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。 其中,驱动模块相当于被测试模块的主程序,它接收测试数据,并传给被测试模块,输出实际测试结果。 承接模块通常用于代替被测试模块调用的其

    25、他模块,其作用仅做少量的数据操作,是一个模拟子程序,不 必将子模块的所有功能带入。47.以下程序运行后的输出结果是 1。 #includeiostreamh void fun(int x,int y) x=x+y;y=x-y;x=x-y; cout x “,“ y “ ,“; void main2 int x=2,y=3;fun(x,y); cout x “,“ y endl; (分数:30.00)填空项 1:_ (正确答案:3,2,2,3)解析:main 函数和 fun 函数中的变量 x 和 y 都是局部变量,它们各自独立,在本题 fun 函数中:接入实参的值传递:x=2,y=3,执行:x=x+y 后,x=5,y=3,执行:x=x-y 后,x=5,y=3,执行:y=x-y 后,x=3,y=2。所以,第一次执行 cout 显示结果是 3 和 2 返回到 main 函数中,输出 main 函数中的 x 和 y 的值 2,3。48.与成员访问表达式 pname 等价的表达式是 1。(分数:30.00)填空项 1:_ (正确答案:(*p).name)解析:本题考核对象指针的定义与使用。一个基类型为类类型的指针称为对象指针。对于指向对象的指针,下面两种表示方式是等价的:对象指针名成员名; (*对象指针名).成员名;


    注意事项

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




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

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

    收起
    展开