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

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

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

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

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

    1、国家计算机二级(C+)79 及答案解析(总分:96.00,做题时间:120 分钟)一、选择题(每小题 2分,共 70分) 下列各(总题数:35,分数:70.00)1.以下不能正确计算代数式?sin2(?)值的 C语言表达式是_。 (分数:2.00)A.1/3*sin(1/2)*sin(1/2)B.sin(0.5)*sin(0.5)/3C.pow(sin(0.5),2)/3D.1/3.0*pow(sin(1.0/2),2)2.下面程序的运行结果是( )。 #ncludeiostream.h int fun(inta,int n) int result=1; for(int i=1;in;+) r

    2、esult=result*ai; return result; void main( ) int a3 =3,4,5; coutfun(a,3)endl; (分数:2.00)A.2B.0C.-2D.13.下列情况中,不会调用拷贝构造函数的是【 】(分数:2.00)A.用一个对象去初始化同一类的另一个新对象时B.将类的一个对象赋值给该类的另一个对象时C.函数的形参是类的对象,调用函数进行形参和实参结合时D.函数的返回值是类的对象,函数执行返回调用时4.有如下类定义: class MyBase int k; public; MyBase(int n=0):k(n) int value()const

    3、return k; ; class MyDerived; MyBase int j; public; MyDerived(int i): j(i) int getK()const return k; int gutj()constreturn j; ; 编译时发现有一处语法错误,对这个错误最佳准确的描述是(分数:2.00)A.函数 getK 试图访问基类的私有成员变量 KB.在类 MyDerived 的定义中,基类名 MyBase 前缺少关键字 public、protected 或 privateC.类 MyDerived 缺少一个无参的构造函数D.类 MyDerived 的构造的数没有对基数

    4、数据成员 K 进行初始化5.设 fp为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为_。 (分数:2.00)A.EOFB.非 0 值C.0D.NULL6.下面程序中对一维坐标点类 Point进行运算符重载 #include using namespace std; class Point public: Point(int val)x=val; Point p-next=r;r-next=q;B.p-next=r; q-next=r-next;r-next=q;C.q-next=r-next;r-next=q;p-next=r;D.r-next=q;p-next

    5、=r;q-next=r-next;20.以下程序中循环体总的执行次数是( )。 int i,j; for(i=6;i1;i-) for(j=0;ji;j+) (分数:2.00)A.20B.261C.15D.2521.以下程序的输出结果是( )。 #includeiostreamh voidmain( ) charx=040; cout(x1); (分数:2.00)A.并运算B.交运算C.差运算D.积运算22.在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是( )。(分数:2.00)A.一元成员运算符B.二元成员运算符C.一元友元运算符D.选项 B)和选项 C)都可能23.下列语句

    6、中,错误的是【 】(分数:2.00)A.const int buffer=256;B.const double*point;C.int const buffer=256;D.double*const point;24.关于友元,下列说法错误的是【 】(分数:2.00)A.如果类 A是类 B的友元,那么类 B也是类 A的友元B.如果函数 fun()被说明为类 A的友元,那么在 fun()中可以访问类 A的私有成员C.友元关系不能被继承D.如果类 A是类 B的友元,那么类 A的所有成员函数都是类 B的友元函数25.数字字符 0 的 ASCII 值为 48,若有以下程序 main() char a=

    7、1,b=2 ; printf(“%c,“,b+); printf(“%d/n“,b-a); 程序运行后的输出结果是_。 (分数:2.00)A.3,2B.50,2C.2,2D.2,5026.下列符号中能够作为 C+标识符的是(分数:2.00)A.constB.2aC.-shapeD.-count27.下列程序的输出结果是( )。 #include“ iostream“ using namespace std; int Max(int a,int b) if(a b) else return a; else retum b; void main( ) int m,n; m=10,n=5; int

    8、max=Max(m,n); cout max end1; (分数:2.00)A.单项索引文件B.复合索引文件C.结构化复合索引文件D.非结构化复合索引文件28.有如下说明 int a 10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为 9 的表达式是_。(分数:2.00)A.*p+9B.*(p+8)C.*p+=9D.p+729.有以下程序 main() int a32=0,(*ptr)2,i,j; for(i=0;i,则输出结果是_。(分数:2.00)A.产生错误信息B.1 0 2 0 0 0C.1 2 2 0 0 0D.1 0 2 0 3 030.下列程序的运行结果为( )

    9、。 #includeiostreamh void main( ) int a=2; int b=a+1; cout a/b endl; (分数:2.00)A.0.66667B.0C.0.7D.0.6666666631.下列程序的运行结果为( )。 #includeiostream.h template class FF TT al,a2,a3; public: FF(TT b1,TT b2,TT b3)a1=b1;a2=b2;a3=b3; TT Sum( )return al+a2+a3; void main( ) FFx(int(1.1),2,3),y(int(4.2),5,6); cout

    10、next=r-next; p-next=r;r-next=q;B.p-next=r; q-next=r-next;r-next=q;C.q-next=r-next;r-next=q;p-next=r;D.r-next=q;p-next=r;q-next=r-next; 解析:选项 D 中首先将 q 赋给 r-next,也就是将结点 q 的地址存放在结点 r 的指针域中;接着将 r 赋给 p-next, 也就是将结点 r 的地址存放在结点 p 的指针域中,此时完成了 q 和 r 所指结点的交换。q-next=r-next 的目 的是想将 q 的指针域指向下一个结点的数据地址,但由于一开始执行了

    11、r-next= q,即已将 r 的指针域中存 放了 q 结点的地址,所以再做操作“q-next=r-next”就相当于将 q 指向了其本身,也就是和下一个结点断开了,所以选项 D 操作错误。20.以下程序中循环体总的执行次数是( )。 int i,j; for(i=6;i1;i-) for(j=0;ji;j+) (分数:2.00)A.20 B.261C.15D.25解析:本题中第 1个 for循环执行 5次后结束,第 2个 for循环执行 5次。第 2个 for循环中第 1次执行了 6次,第 2次执行了 5次,第 3次执行了 4次,第 4次执行了 3次,第 5次执行了 2次,共 20次。21.

    12、以下程序的输出结果是( )。 #includeiostreamh voidmain( ) charx=040; cout(x1); (分数:2.00)A.并运算B.交运算C.差运算 D.积运算解析: 此题考查了窗体的 KeyPress事件过程;在默认情况下控件的键盘事件优先于窗体的键盘事件,在此题中只有窗体了。窗体的 KeyPress事件的格式为: Private Sub Form _ KeyPress(KeyAscii As Integer) End Sub KeyAscii=13 为回车键,所以按下回车键就执行条件语句,输出结果为 12 1(竖排)。 22.在重载一个运算符时,如果其参数表

    13、中有一个参数,则说明该运算符是( )。(分数:2.00)A.一元成员运算符B.二元成员运算符C.一元友元运算符D.选项 B)和选项 C)都可能 解析:C+语言中用成员函数重载时,重载一目运算符没有参数,重载二目运算符要有一个参数。 23.下列语句中,错误的是【 】(分数:2.00)A.const int buffer=256;B.const double*point;C.int const buffer=256;D.double*const point; 解析:const 关键字不仅可以修饰类对象本身,也可以修饰类对象的成员函数和数据成员,分别称为常对象、常成员函数和常数据成员。24.关于友元

    14、,下列说法错误的是【 】(分数:2.00)A.如果类 A是类 B的友元,那么类 B也是类 A的友元 B.如果函数 fun()被说明为类 A的友元,那么在 fun()中可以访问类 A的私有成员C.友元关系不能被继承D.如果类 A是类 B的友元,那么类 A的所有成员函数都是类 B的友元函数解析:本题考核友元类和友元函数。友元关系是单向的,并且只在两个类之间有效。即使类 X是类 Y的友元,类 Y是否是类 X的友元也要看类 X中是否有相应的声明。即友元关系不具有交换性,所以 A选项的说法是错误的。类的友元函数可以直接访问该类的所有成员;类 A是类 B的友元类,那么类 A的所有成员函数都是类 B的友元函

    15、数。25.数字字符 0 的 ASCII 值为 48,若有以下程序 main() char a=1,b=2 ; printf(“%c,“,b+); printf(“%d/n“,b-a); 程序运行后的输出结果是_。 (分数:2.00)A.3,2B.50,2C.2,2 D.2,50解析:执行语句“printf(“%c,“,b+);”后, b 的值变成字符 3,执行“printf(“%d/n“,b-a);”,即3-1。26.下列符号中能够作为 C+标识符的是(分数:2.00)A.constB.2aC.-shape D.-count解析:作为标识符必须满足以下规则:所有标识符必须由一个字母(az,AZ

    16、)或下划线“_”开头;标识符的其它部分可以用字母、下划线或数字(09)组成;大小写字母表示不同意义,即代表不同的标识符;标识符只有前 32个字符有效;标识符不能使用关键字。count 是设备保留字不能作为标识符。27.下列程序的输出结果是( )。 #include“ iostream“ using namespace std; int Max(int a,int b) if(a b) else return a; else retum b; void main( ) int m,n; m=10,n=5; int max=Max(m,n); cout max end1; (分数:2.00)A.单

    17、项索引文件B.复合索引文件C.结构化复合索引文件 D.非结构化复合索引文件解析:InputBox 函数的格式为: InputBox(prompt,default,xpos,ypos,helpfile,context) 其中 prompt是一个字符串,用于提示用户输入,是在对话框中显示的信息,不可省略,故选项 A)和选项D)不正确;Val(字符串)函数的功能是把自变量中的第一个字符串转换为数值,其中的数值是一个双精度的实数,所以正确答案为选项 C);选项 B)没有类型转换符,不正确。 28.有如下说明 int a 10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为 9 的表达式

    18、是_。(分数:2.00)A.*p+9B.*(p+8)C.*p+=9D.p+7解析:29.有以下程序 main() int a32=0,(*ptr)2,i,j; for(i=0;i,则输出结果是_。(分数:2.00)A.产生错误信息B.1 0 2 0 0 0 C.1 2 2 0 0 0D.1 0 2 0 3 0解析:二维数组 a,通过 a32=0将数组中的各个元素初始化为 0,指针变量 ptr,指向包含 2 个元素的 一维数组。a00=1,a10=2,故本题的输出选 B。30.下列程序的运行结果为( )。 #includeiostreamh void main( ) int a=2; int b

    19、=a+1; cout a/b endl; (分数:2.00)A.0.66667B.0 C.0.7D.0.66666666解析:表达式值的类型是由操作数的类型决定的,因为本题的两个数都 是 int型的,所以得出的结果也为 int型,即去掉小数点后的部分,只取商的整数部分。31.下列程序的运行结果为( )。 #includeiostream.h template class FF TT al,a2,a3; public: FF(TT b1,TT b2,TT b3)a1=b1;a2=b2;a3=b3; TT Sum( )return al+a2+a3; void main( ) FFx(int(1.

    20、1),2,3),y(int(4.2),5,6); cout A.6.1 15.2B.6 15 C.6 15.2D.6.1 15解析:本题考查模板函数的应用,表达式 int(11)和 int(42)是将 11 和 4.2强制转换为整型。32.下面程序的运行结果为( )。 #includeiostreamh claSS A static int n; public: A( )n=1; A(int num)n=num; void print( )coutA.输出的是 1B.输出的是 1和-2 C.输出的是 3和 0D.是死循环解析:本题考查函数的调用方式。函数的形参和实参具有以下特点: 形参变量只有

    21、在被调用时才分配内存单元,在调用结束时,即刻释放所分的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应通过预先用赋值,输入等办法使实参获得确定值。实参和形参在数量上,类型上,顺序上应严格一致,否则会发生“类型不匹配”的错误。函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。注意:函数调用不可以作为一个函数的形参。

    22、33.下列程序的运行结果为( )。 # include iostreamh voidprint (double a) cout +a; void print (int a,int b) cout b a; void main( ) print (1.2); cout “ “; print (3,4); (分数:2.00)A.1.2 34B.2.2 34C.1.2 43D.2.2 43 解析:本题考查的是对重载函数的掌握,因为+a 是右结合的,所以 a先自加 1再输出,即为 2.2,之后调用函数 print(int a,int b)输出 b和 a,即 43。34.建立派生类对象时,3 种构造函数

    23、分别是 a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数)这 3种构造函数的调用顺序为( )。(分数:2.00)A.abc B.acbC.cabD.cba解析:本题考查的是在继承中派生类的对象调用构造函数的顺序,应该 是先调用基类的构造函数,然后是成员中的对象对应类的构造函数,最后是派生类自己 的构造函数。35.下面这个程序的结果是( )。 #includeiostreamh classA private: inta; public: voidseta( );intgeta( ); voidA:seta( ) a=1; intA:geta( ) returna; class

    24、B private: inta; publiC: voidseta( );intgeta( ); voidB:seta( ) a=2; intB:geta( ) returna; classC:publicA,publicB private: intb; public: voiddisplay( ); voidC:display( ) int b:geta( ); coutb; voidmain( ) Cc; cseta( ); c.display( ); (分数:2.00)A.虚线B.点线C.不可见D.实线 解析:计算控件的控件源必须是“=”开头的计算表达式。二、填空题(每空 2分,共 30

    25、分)(总题数:13,分数:26.00)36.下列程序在构造函数和析构函数中申请和释放类的数据成员 int*a,申请时使用形参 b初始化 a,请填空。 classA public: A(intb); A( ); private: int*a; ; A:A(intb) 1; A:A( ) 2; (分数:2.00)填空项 1:_ (正确答案:a=new)填空项 1:_ (正确答案:int(b))解析:C+中 new和 delete的使用有如下几种:a=new int;delete a;a=new int(10);deletea;a=new int10;deletea;。 37.在两种基本测试方法中,

    26、 1 测试的原则之一是保证所测模块中每一个独立路径至少要执行一次。(分数:2.00)填空项 1:_ (正确答案:白盒)解析:按功能划分可以分为白盒测试法和黑盒测试法。白盒测试的基本原则是保证所测模块中每一个独立路径至少要执行一次。 38.以下程序运行后的输出结果是 1。 main2 int x=0210; printf(“%X/n“,x); (分数:2.00)填空项 1:_ (正确答案:88)解析: 由于八进制数以 0 开头,所以 0210 表示八进制数;“%X”的格式指以十六进制形式输出,输出十 六进制的“af”时以大写字母输出。所以本题可以先将 0210 化为十进制,然后再化为十六进制。3

    27、9.表达式 xoperator+(yoperator+(0) )还可以写成 1。(分数:2.00)填空项 1:_ (正确答案:x+y+或 x+(y+))解析:因为 yoperator+(0)是对成员 y重载运算符,所以是成员重载,在参数表中又有一个参数,是重载后缀+,即是 x+(y+)。40.将 x+y中的+运算符用友元函数重载应写为 1。(分数:2.00)填空项 1:_ (正确答案:operator+(x,y))解析:C+中用成员函数重载 x+y为 xoperator+(y);,用友元函数重载 x+y为 operator+(x,y)。 41.类模板不同于函数模板,类模板只可用 1 型参数。(

    28、分数:2.00)填空项 1:_ (正确答案:类)解析:本题考查的是类模板的定义,C+语言中模板分为两种:类模板和函数模板, 类模板只能用于类型参数,函数模板可以重载。 42.请按下面注释的提示,将类 B的构造函数定义补充完整。 C1assA int a; public: A(int aaO)aaa; ; class B:public A int b; A c; public: /用 aa初始化基类 A,用 aa1 初始化类对象成员 c B(int aa: 1baa2 ; (分数:2.00)填空项 1:_ (正确答案:A(Aa),c(aa+1)或 c(aa+1),A(aA))解析:本题考核派生类

    29、构造函数的定义。题中要求用明初始化基类 A,用 aa+1初始化类对象成员 c,用的初始化列表的形式,即 A(aA),c(aa+1)或 c(aa+1),A(aA) 。43.已知数组 a 中的元素个数为 n,下列语句的作用是将下标为 i 的元素移动到下标为 i1 的单元,其中 1in。例如,当 n=4,a 中原有数据为 1,2,3,4 时,则移动后 a中元素为 2,3,4,4。请将语句补充完整:For(int i=0;i1 。(分数:2.00)解析:44.继承的方式有公有继承、私有继承和 13 种。(分数:2.00)填空项 1:_ (正确答案:保护继承)解析:继承性是面向对象程序设计中最重要的机制

    30、,用户可以根据不同的需要选择 3种不同的继承方式。45.以下函数 sstrcat1 的功能是实现字符串的连接,即将 t 所指字符串复制到 s 所指 字符串的尾部。例如:s 所指字符串为 abcd,t 所指字符串为 efgh,函数调用后 s 所指字符串为 abcdefgh。请填空。 #include void sstrcat(char *s,char *t) int n; n=strlen(s); while(*(s+n)= 2)s+; t+; (分数:2.00)填空项 1:_ (正确答案:*t)解析:本题解题的关键在理解“*(s+n)”,其中 s 代表字符串 s 的首地址,n 是字符串 s 的

    31、长度,*(s+n)代 表了字符串 s 最后一个字符的后一个字符,即“/0”,根据题意,“/0”所在位置应该赋值为字符串 t 的第 一个字符,字符串 t 的其他字符根据循环,依次赋值到 s 所指字符串的尾部,所以本题应填“*t”。46.有如下程序: #includeiostream using namespace std; class Base public: int m,n; ; class Derived1: 1【 】 Base; class Derived2:public Derived1 public: void SetMN(int M,int N)m=M;n=N; int GetSum

    32、MN2return(m+n); ; int main3 Derived2 objD; ohjD. SetMN(3,4); cout“M+N=“objD, m+objD, nendl; return 0 编译时只有“cout“M+N“objDmobjDnendl;”有语法错误,程序的其他地方没有语法错误。请判断下划线处使用的关键字是什么。 (分数:2.00)填空项 1:_ (正确答案:protected)解析:protected:可以被该类中的函数、子类的函数以及其友元函数访问。但不能被该类的对象访问。47.C+语言的基本控制结构为顺序结构、选择结构和 1。(分数:2.00)填空项 1:_ (正确答案:循环结构)解析:C+语言 3种基本结构就是顺序结构,选择结构,循环结构。 48.下列软件系统结构图 (分数:2.00)解析:


    注意事项

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




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

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

    收起
    展开