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

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

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

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

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

    1、计算机二级(C+)57 及答案解析(总分:4230.00,做题时间:90 分钟)一、选择题(每小题 2分,共 70分) 下列各(总题数:60,分数:4200.00)1.下列叙述中正确的是_。 (分数:70.00)A.程序设计就是编制程序B.程序的测试必须由程序员自己去完成C.程序经调试改错后还应进行再测试D.程序经调试改错后不必进行再测试2.下列关于模板的说法正确的是( )。(分数:70.00)A.模板的实参在任何时候都可以省略B.类模板与模板类所指的是同一概念C.类模板的参数必须是虚拟类型的D.类模板中的成员函数全部都是模板函数3.对于重载的运算符 ,它是一个( )。(分数:70.00)A.

    2、RELEASE MEMORYB.RELEASE ALL LIKEA*C.RELEASE MEMORY LIKE A*D.CLEAR MEMORY LIKE A*4.下面关于数组的描述错误的是( )。(分数:70.00)A.在 C+语言中数组的名字就是指向该数组第一个元素的指针B.长度为 n的数组,下标的范围是 0n-1C.数组的大小必须在编译时确定D.数组只能通过值参数和引用参数两种方式传递给函数5.下列有关内联函数的叙述中,正确的是_。(分数:70.00)A.内联函数在调用时发生控制转移B.内联函数必须通过关键字 inline 来定义C.内联函数是通过编译器来实现的D.内联函数体的最后一条语

    3、句必须是 rennin 语句6.决定 C+语言中函数的返回值类型的是( )。(分数:70.00)A.return语句中的表达式类型B.调用该函数时系统随机产生的类型C.调用该函数时的主调用函数类型D.在定义该函数时所指定的数据类型7.下列描述中,抽象类的特性是( )。(分数:70.00)A.可以说明虚函数B.可以定义友元函数C.可以进行构造函数重载D.不能说明其对象8.下列运算符不能重载为友元函数的是【 】(分数:70.00)A.= ( ) -B.+ - +-C. = 1;i+) f*=i;D.f=1; for(i=n;i=2;i-) f*=i;23.以下能正确定义且赋初值的语句是_。 (分数

    4、:70.00)A.int n1=n2=10;B.char c=32;C.float f=f+1.1;D.double x=12.3E2.5;24.设有程序段 int k=10; while(k=0)k=k-1; 则下面描述中正确的是( )。(分数:70.00)A.0B.1C.2D.525.假定 int类型变量占用两个字节,其有定义 int x l0= 0,2,4 ;,则数组 x在内存中所占字节数是( )。(分数:70.00)A.3B.6C.10D.2026.对长度为 n的线性表进行顺序查找,在最坏情况下所需要的比较次数为_。 (分数:70.00)A.log2nB.n/2C.nD.n+127.关

    5、于友元的概念错误的是( )。(分数:70.00)A.友元函数没有 this指针B.调用友元函数时必须在它的实参中给出要访问的对象C.一个类的成员函数也可以作为另一个类的友元函数D.只能在类的公有段声明友元28.以下叙述中正确的是_。 (分数:70.00)A.预处理命令行必须位于 C 源程序的起始位置B.在 C 语言中,预处理命令行都以“#“开头C.每个 C 程序必须在开头包含预处理命令行:#includeD.C 语言的预处理不能实现宏定义和条件编译的功能29.拷贝构造函数的参数一般是( )。(分数:70.00)A.某对象名B.某对象成员名C.某对象的引用名D.指向对象的指针名30.以下叙述中错

    6、误的是_。 (分数:70.00)A.C 语句必须以分号结束B.复合语句在语法上被看作一条语句C.空语句出现在任何位置都不会影响程序运行D.赋值表达式末尾加分号就构成赋值语句31.若有说明 int a34;,则 a数组元素的非法引用是( )。(分数:70.00)A.123B.2.5C.-12D.156332.设变量 a是 int型,f 是 double型,i 是 float型,则表达式 10 + a + i * f 值的数据类型是( )。(分数:70.00)A.intB.floatC.doubleD.不确定33.下列关于输入流类成员函数 getline( )的描述中,错误的是_。(分数:70.0

    7、0)A.该函数是用来读取键盘输入的字符串的B.该函数读取的字符串长度是受限制的C.该函数读取字符串时,遇到终止符便停止D.该函数读取字符串时,可以包含空格34.下列运算符中,在 C+语言中不能重载的是( )。(分数:70.00)A.sleep( )B.yield( )C.interrupt( )D.stop( )35.下列叙述中正确的是【 】(分数:70.00)A.数据库系统是一个独立的系统,不需要操作系统的支持B.数据库设计是指设计数据库管理系统C.数据库技术的根本目标是要解决数据共享的问题D.数据库系统中,数据的物理结构必须与逻辑结构一致36.以下不正确的定义语句是( )。(分数:70.0

    8、0)A.doublex5=20,40,60,80,100;B.inty5=0,1,3,5,7,9;C.charcl=1,2,3,4,5;D.charc2:/x1O,/xa,/x8;37.对于类定义 class A public: virtual void func1( ) void func2( ) ; class B:public A public: void func1( )cout“class B func 1“endl; virtual void func2( )cout“class B func2“endl; ; 下面正确的叙述是( )。 (分数:70.00)A.A:func2( )

    9、和 B:func1( )都是虚函数B.A:func2( )和 B:func1( )都不是虚函数C.B:func1( )是虚函数,而 A:func2( )不是虚函数D.B:func1( )不是虚函数,而 A:func2( )是虚函数38.下列程序的输出结果是( )。 #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; (分数

    10、:70.00)A.单项索引文件B.复合索引文件C.结构化复合索引文件D.非结构化复合索引文件39.有以下程序 main() union char ch2; int d; s; s.d=0x4321; printf(“%x,%x/n“,s.ch0,s.ch1); 在 16位编译系统上,程序执行后的输出结果是_。 (分数:70.00)A.21,43B.43,21C.43,00D.21,0040.有以下程序: point(char *p)p+=3; main() char b4=a,b,c,d,*p=b; point(p);printf(“%c/n“,*p); 程序运行后的输出结果是_。 (分数:7

    11、0.00)A.aB.bC.cD.d41.下列关于虚基类的描述,错误的是( )。(分数:70.00)A.SELECT * FROM订购单 WHERE供应商号 NULLB.SELECT * FROM订购单 WHERE供应商号=NULLC.SELECT * FROM订购单 WHERE供应商号 IS NULLD.SELECT * FROM订购单 WHERE供应商号 IS NOT NULL42.执行语句 for(i=1;i+ 4;);,后变量 i的值是(分数:70.00)A.3B.4C.5D.不定43.有以下程序 int f1(int x,int y)return xy?x:y; int f2(int

    12、x,int y)return xy?y:x; main() int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d); f=f1(f2(a,b),f2(c,d); g=a+b+c+d-e-f; printf(“%d,%d,%d/n“,e,f,g); 程序运行后的输出结果是_。 (分数:70.00)A.4,3,7B.3,4,7C.5,2,7D.2,5,744.下列程序的输出结果是( )。 #includeiostreamh class Myclass public:Myclass(int i=0,intj=0) x=i; y=j; void show( )

    13、cout “x=“ x “ “ “y=“ y end1; void show( )const cout “x=“ “ “ “y= y end1; privated: int x; int y; ; void main( ) Myclass my1(3,4); const my2(7,8); my1show( );my2show( ); (分数:70.00)A.x=4,y=3;x=7,y=8B.x=3,y=4;x=7,y=8C.x=7,y=8;x=4,y=3D.x=8,y=7;x=7,y=845.下列有关内联函数的叙述中,正确的是【 】(分数:70.00)A.内联函数在调用时发生控制转移B.内联

    14、函数必须通过关键字 inline来定义C.内联函数是通过编译器来实现的D.内联函数函数体的最后一条语句必须是 return语句46.下面程序输出的结果是( )。 #includeiostream.h voidmain( ) inti; inta33:1,2,3,4,5,6,7,8,9; for(i=0;iA.定义了一个名为 a的一维数组B.a数组有 3个元素C.a数组的元素的下标为 1-3D.数组中的每一个元素都是整型47.若有说明语句 char a =“It is mine“; char *p=“It is mine“; 则以下不正确的叙述是( )。 (分数:70.00)A.continue

    15、语句用于循环体中,结束循环B.continue语句用于循环体中,它使执行流跳出循环体中尚未执行的语句,并进行下一循环判断C.continue可以用于 if语句中D.continue语句不能代替 break语句48.关于 continue语句叙述不正确的是( )。(分数:70.00)A.continue语句用于循环体中,结束循环B.continue语句用于循环体中,它使执行流跳出循环体中尚未执行的语句,并进行下一循环判断C.continue可以用于 if语句中D.continue语句不能代替 break语句49.有以下程序: main() int a10=1,2,3,4,5,6,7,8,9,10

    16、,*p= printf(“%d/n“,*p+*q); 程序运行后的输出结果是_。 (分数:70.00)A.16B.10C.8D.650.有以下程序: #include main() FILE *fp; int i,k,n; fp=fopen(“data.dat“,“w+“); for(i=1;iA.0 0B.123 45C.1 4D.1 251.下列语句不能够用于打开 C根目录下文件 testtxt 的语句是( )。(分数:70.00)A.3B.6C.10D.2052.下面叙述不正确的是( )。(分数:70.00)A.12AB34CDB.12ab34CDC.12ab34cdD.12AB34cd

    17、53.在 C+语言中,数据封装要解决的问题是( )。(分数:70.00)A.start( ),stop( )和 run( )B.actionPerformed( )C.run( )D.init( )54.判断字符型变量 ch是否为大写英文字母,应使用表达式【 】(分数:70.00)A.chA scanf(“%f%f%f“, if(= 2)printf(“YES/n“); /*a、b、c 能构成三角形*/ else printf(“NO/n“); /*a、b、c 不能构成三角形*/ (分数:1.50)填空项 1:_64.算法复杂度主要包括时间复杂度和 1 复杂度。(分数:1.50)填空项 1:_

    18、65. 1是 C+语言程序的入口。(分数:1.50)填空项 1:_66.数据结构分为线性结构和非线性结构,带链的队列属于 1 。(分数:1.50)67.语句 cout /n还可表示为 1。(分数:1.50)填空项 1:_68.若已知 a=10,b=20,则表达式 l a b 的值为 1。(分数:1.50)填空项 1:_69.已知递归函数 f的定义如下 int f(int n) if(n B.+ - +-C. = ,赋值运算符,( )和 是不能够重载为友元函数的运算符。对双目运算符,友元函数有两个参数;对单目运算符,友元函数有一个参数。9.有以下程序: main() int p8=11,12,1

    19、3,14,15,16,17,18,i=0,j=0; while(i+A.42B.45 C.56D.60解析:本程序的作用是求除 p0外的其他奇数的和。10.若有语句 char *line5;,以下叙述中正确的是_。 (分数:70.00)A.定义 line 是一个数组,每个数组元素是一个基类型为 char 的指针变量 B.定义 line 是一个指针变量,该变量可以指向一个长度为 5 的字符型数组C.定义 line 是一个指针数组,语句中的*号称为间址运算符D.定义 line 是一个指向字符型函数的指针解析:由于运算符 优先级比*高,所以“char *line5;”相当于“char * (line

    20、5);”,表示 line 是一 个数组,每个数组元素是一个基类型为 char 的指针变量。11.在结构化方法中,用数据流程图(DFD) 作为描述工具的软件开发阶段是【 】(分数:70.00)A.可行性分析B.需求分析 C.详细设计D.程序编码解析:结构化分析方法是结构化程序设计理论在软件需求分析阶段的运用。而结构化分析就是使用数据流图(DFD) 、数据字典(DD) 、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化规格说明的目标文档。所以数据流程图是在需求分析阶段使用的。12.下列哪个是 C+语言的有效标识符?(分数:70.00)A._Nol B.No1C.12345D.int解析

    21、:标识符是一个以字母或下划线开始的,由字母、下划线和数字组成的字符串,标识符不能与任意关键字同名。13.下面程序的结果为( )。 #includeiostream.h intC; classA private: inta; staticintb; public: A( )a=0;c=0; voidseta( )a+; voidsetb( )b+; voidsetc( )c+; voiddisplay( )couta“b“c; ; intA:b=0; voidmain( ) Aa1,a2; a1.seta( ); a1.setb( );a1.setc( ); a2.seta( ); a2,set

    22、b( ); a2.setc( ); a2.display( ); (分数:70.00)A.2 3 4 3 4 5 B.1 2 3 3 4 5C.1 2 3 2 4 6D.2 3 4 4 5 6解析:a 数组的元素的下标应为 0-2,注意数组的下标从零开始。14.下面程序的运行结果是( )。 #includeiostreamh class base protected: int a; public: base( )cout“0“; ; class basel:virtual base public: basel( )cout“1“; ; class base2:virtual base publ

    23、ic: base2( )cout“2“; ; class derived:public basel,public base2 public: derived( )cout“3“; ; void main( ) derived obj; coutendl; (分数:70.00)A.5B.3C.2 D.0解析:本题考查三目运算符“?:”。三目运算符的表达式为(表达式 1)?(表达式 2):(表达式 3),运算过程是当(表达式 1)的值为真时,求(表达式 2)的值为整个表达式的值;如果(表达式 1)的值为假,则求(表达式 3)的值为整个表达式的值。题中,表达式 x12 的结果为假,所以执行的语句是

    24、x-12,最终结果应该是 0。15.若有语句 int * point,a=4;和 point= fp=fopen(fn,“w“);fputs(str,fp);fclose(fp); main() WriteStr(“t1.dat“,“start“); WriteStr(“t1.dat“,“end“); 程序运行后,文件 t1.dat 中的内容是_。(分数:70.00)A.startB.end C.startendD.endrt解析:两次使用“写入”的方式打开同一个文件,在第二次打开时,文件指针指向文件头,所以此次写入 的数据覆盖了文件原有的数据,故本题中 t1.dat 的内容为 end。21.

    25、如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是( )。(分数:70.00)A.a(3)=3B.a(3)=inputbox(“input data“)C.a(3)=ListlListlndexD.a=Array(1,2,3,4,5,6) 解析:在给数组赋值时,可以用一个字符串作为初值,这种方法直观,方便而且符合人们的习惯。数组array的长度不是 5,而是 6,这点必须要注意。因为字符串常量的最后由系统加上一个/,因此,上面的初始化与下面的等价: chararray;C,h,i,na,/0; 22.设变量已正确定义,则以下能正确计算 f=n!的程序段是_。 (分数:70.0

    26、0)A.f=0; for(i=1;i1;i+) f*=i;D.f=1; for(i=n;i=2;i-) f*=i; 解析:n!=n*(n-1)*2*1,由于选项 A 中 f 的初值为 0,所以循环 n 次后,f 值依然为 0,故选项 A 错误; 选项 B 中循环的终止条件是“i1 时,由于初值“i=n”是符合条件“i1”的,且增量为+1,故循环中永远不会出 现不满足条件“i1”的值,所以出现死循环。23.以下能正确定义且赋初值的语句是_。 (分数:70.00)A.int n1=n2=10;B.char c=32; C.float f=f+1.1;D.double x=12.3E2.5;解析:语

    27、句“int n1=n2=10;”中,由于变量 n2 未定义,所以此赋值语句错误;由于赋值语句中不能存在 运算表达式,所以选项 C 中的赋值语句错误;选项 D 中指数表示错误,C 语言规定,e 后面的指数必须为 整数;选项 B 中的“32”是 ASCII 码的表示形式,这是 C 语言中字符型数据和整型数据通用的表现,即一 个字符数据可以以字符形式出现,也可以以整数形式出现。24.设有程序段 int k=10; while(k=0)k=k-1; 则下面描述中正确的是( )。(分数:70.00)A.0B.1 C.2D.5解析:注意选项卡和选项组的区别。选项卡是分页工具,选项组是选择列表工具。25.假

    28、定 int类型变量占用两个字节,其有定义 int x l0= 0,2,4 ;,则数组 x在内存中所占字节数是( )。(分数:70.00)A.3B.6C.10D.20 解析:x 数组共有 10个元素,在花括弧内只提供 3个初值,这表示只给前面的 3个成员赋值,后 7个元素的值为 0,所以,一共有 20个字节。26.对长度为 n的线性表进行顺序查找,在最坏情况下所需要的比较次数为_。 (分数:70.00)A.log2nB.n/2C.n D.n+1解析:顺序查找过程中,如果被查找的元素是线性表中的最后一个元素,或者元素不在线性表中,则需要 与线性表中所有的元素进行比较。对长度为 n 的线性表进行顺序

    29、查找,在最坏情况下需要比较 n 次。27.关于友元的概念错误的是( )。(分数:70.00)A.友元函数没有 this指针B.调用友元函数时必须在它的实参中给出要访问的对象C.一个类的成员函数也可以作为另一个类的友元函数D.只能在类的公有段声明友元 解析:C+中的友元可以在一个类中的任何位置声明,不一定必须在公有段,友元没有自己的 this指针,调用友元函数时必须在它的实参中给出要访问的对象,并且一个类的成员函数是可以作为另一个类的友元函数的。28.以下叙述中正确的是_。 (分数:70.00)A.预处理命令行必须位于 C 源程序的起始位置B.在 C 语言中,预处理命令行都以“#“开头 C.每个

    30、 C 程序必须在开头包含预处理命令行:#includeD.C 语言的预处理不能实现宏定义和条件编译的功能解析:选项 B 正确,原因是这部分语句与 C 程序其他部分的语句是有区别的,所以在每个预处理语句之前 都有一个“#“符号以示区别。C 提供三种预处理语句:(1)宏替换,(2)文件包含,(3)条件编译。如 果一个文件中要引用另外一个文件时才需要在开头包含预处理命令行:#include。29.拷贝构造函数的参数一般是( )。(分数:70.00)A.某对象名B.某对象成员名C.某对象的引用名 D.指向对象的指针名解析:C+语言中拷贝构造函数的参数一般是某个对象的引用名。30.以下叙述中错误的是_。

    31、 (分数:70.00)A.C 语句必须以分号结束B.复合语句在语法上被看作一条语句C.空语句出现在任何位置都不会影响程序运行 D.赋值表达式末尾加分号就构成赋值语句解析:“空语句出现在任何位置都不会影响程序运行”这句话是错误的,例如在 for 循环中,循环条件语 句为空时,则不判断循环条件,循环将无终止地进行下去,导致了此循环为死循环。31.若有说明 int a34;,则 a数组元素的非法引用是( )。(分数:70.00)A.123B.2.5 C.-12D.1563解析:A)选项必须输入 6个字母或数字(数字也能输入,不符合),C)选项可以输 入 6个任意字符,也不符合题议,D)选项可以选择输

    32、入 6个数据或空格,不符合题意。32.设变量 a是 int型,f 是 double型,i 是 float型,则表达式 10 + a + i * f 值的数据类型是( )。(分数:70.00)A.intB.floatC.double D.不确定解析:根据混合运算规则,如果有一个数据是 double型,则其他数据类型先转化为 double型,运算的结果最终也是 double型。为保证精度的不丢失,表达式的数据类型是变量和常量中精确度最高的变量类型。33.下列关于输入流类成员函数 getline( )的描述中,错误的是_。(分数:70.00)A.该函数是用来读取键盘输入的字符串的B.该函数读取的字符

    33、串长度是受限制的C.该函数读取字符串时,遇到终止符便停止D.该函数读取字符串时,可以包含空格解析:34.下列运算符中,在 C+语言中不能重载的是( )。(分数:70.00)A.sleep( ) B.yield( )C.interrupt( )D.stop( )解析:下面是常量类型及其类型说明符: 整型 长整型 int d; s; s.d=0x4321; printf(“%x,%x/n“,s.ch0,s.ch1); 在 16位编译系统上,程序执行后的输出结果是_。 (分数:70.00)A.21,43 B.43,21C.43,00D.21,00解析:此题考核的是共用体的特征。int 类型变量和字符

    34、数组 ch 共用两个字节的相同的存储单元,通常 ch0位于低字节,ch1位于高字节,所以 s.ch0=21,s.ch1=43。40.有以下程序: point(char *p)p+=3; main() char b4=a,b,c,d,*p=b; point(p);printf(“%c/n“,*p); 程序运行后的输出结果是_。 (分数:70.00)A.a B.bC.cD.d解析:在 C 语言中,函数的参数传递方式采用按值传递,因此不能通过调用函数的方式来改变指针本身的 值,只能改变指针所指变量的值。41.下列关于虚基类的描述,错误的是( )。(分数:70.00)A.SELECT * FROM订购

    35、单 WHERE供应商号 NULLB.SELECT * FROM订购单 WHERE供应商号=NULLC.SELECT * FROM订购单 WHERE供应商号 IS NULL D.SELECT * FROM订购单 WHERE供应商号 IS NOT NULL解析:“价格在 30万元60 万元之间”要使用 And语句来表示“与”。42.执行语句 for(i=1;i+ 4;);,后变量 i的值是(分数:70.00)A.3B.4C.5 D.不定解析:for 语句中的表达式可以部分或全部省略,但两个“;”不能省略,若 3 个表达式均省略,会因为缺少条件判断,导致循环无限执行,而形成死循环。本题中当 i的值为

    36、 5的时候,循环终止。43.有以下程序 int f1(int x,int y)return xy?x:y; int f2(int x,int y)return xy?y:x; main() int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d); f=f1(f2(a,b),f2(c,d); g=a+b+c+d-e-f; printf(“%d,%d,%d/n“,e,f,g); 程序运行后的输出结果是_。 (分数:70.00)A.4,3,7 B.3,4,7C.5,2,7D.2,5,7解析: 函数 f1 的功能是返回两个数中比较大的值,f2 的功能是返回两个数

    37、中比较小的值。44.下列程序的输出结果是( )。 #includeiostreamh class Myclass public:Myclass(int i=0,intj=0) x=i; y=j; void show( ) cout “x=“ x “ “ “y=“ y end1; void show( )const cout “x=“ “ “ “y= y end1; privated: int x; int y; ; void main( ) Myclass my1(3,4); const my2(7,8); my1show( );my2show( ); (分数:70.00)A.x=4,y=3;

    38、x=7,y=8 B.x=3,y=4;x=7,y=8C.x=7,y=8;x=4,y=3D.x=8,y=7;x=7,y=8解析:在 My class类中定义厂两个同名函数 show,其中一个是常成员函数。在 main函数中定义了两个对象 my1,my2,其中对象 my2是常对象。这两个对象调用成员函数 show时,通过对象 my1调用的是没有用 const修饰的一般成员函数,而通过对象 my2调用的是 const修饰的常成员函数。45.下列有关内联函数的叙述中,正确的是【 】(分数:70.00)A.内联函数在调用时发生控制转移B.内联函数必须通过关键字 inline来定义 C.内联函数是通过编译器

    39、来实现的D.内联函数函数体的最后一条语句必须是 return语句解析:内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌人在每一个调用语句处。内联函数在定义时使用关键字 inline,也可以不使用关键字 inline。宏函数是通过预处理器对宏进行替换的,而内联函数是通过编译器来实现的。内联函数函数体的最后一条语句不一定是 retun语句。46.下面程序输出的结果是( )。 #includeiostream.h voidmain( ) inti; inta33:1,2,3,4,5,6,7,8,9; for(i=0;iA.定义了一个名为 a的一维数组B.a数组有 3个元素C.a数组的元素的下

    40、标为 1-3 D.数组中的每一个元素都是整型解析:选项 A)j=i,因为 j是 long型,而等号左边是 int型,所以将位数少的数值向位数多的数值转换时,可以自动转换,所以选项 A)正确。选项 B)j=(long)i,当然既能自动转换,我们在前面加上位数多的那个数据类型的名称,也只是更加安全,所以选项 B)正确。选项 C)i=(int)j,它属于必须进行强制转换数据类型的那种情况,因为想把一个位数多的数据转换成一个位数更少的数据类型,必须强制转换,方法是在()中说明向哪个数据类型转换,结果是使 j的精度降低到 int型。注意:选项 D)i=j,没有进行强制转换,会发生编译错误。47.若有说明

    41、语句 char a =“It is mine“; char *p=“It is mine“; 则以下不正确的叙述是( )。 (分数:70.00)A.continue语句用于循环体中,结束循环 B.continue语句用于循环体中,它使执行流跳出循环体中尚未执行的语句,并进行下一循环判断C.continue可以用于 if语句中D.continue语句不能代替 break语句解析:C 语言是一种面向过程的程序设计语言,而 C+语言是一种面向对象的设计语言,C+语言是 C语言的超集,它包含了 C语言的所有语言特性,并进行了扩充。48.关于 continue语句叙述不正确的是( )。(分数:70.00

    42、)A.continue语句用于循环体中,结束循环 B.continue语句用于循环体中,它使执行流跳出循环体中尚未执行的语句,并进行下一循环判断C.continue可以用于 if语句中D.continue语句不能代替 break语句解析:本题考查 continue语句的运用。continue 是跳出了本次循环中尚未执行的语句,重新执行循环,但没有终止循环。49.有以下程序: main() int a10=1,2,3,4,5,6,7,8,9,10,*p= printf(“%d/n“,*p+*q); 程序运行后的输出结果是_。 (分数:70.00)A.16B.10 C.8D.6解析:数组 a 各元

    43、素 a0a9的值依次为 110;在程序的说明部分,指针变量 p 初始化为 int i,k,n; fp=fopen(“data.dat“,“w+“); for(i=1;iA.0 0B.123 45C.1 4D.1 2 解析:语句“fprintf(fp,“%d “,i);”的作用是将变量 i 的值按“%d”的格式输出到 fp 指向的文件上;“rewind(fp)” 的作用是使指针重新返回文件的开头;“fscanf(fp,“%d%d“, scanf(“%f%f%f“, if(= 2)printf(“YES/n“); /*a、b、c 能构成三角形*/ else printf(“NO/n“); /*a、

    44、b、c 不能构成三角形*/ (分数:1.50)填空项 1:_ (正确答案:(a+bc) for(i=p;i2 char s=“abcdefg“; fun(s,3,strlen(s); puts(s); (分数:1.50)填空项 1:_ (正确答案:abcfg)解析:函数 fun 的作用是将 s 所指的字符串中从第 p+3 到第 k+1 个字符向前移动两个位置。本题程序是将 数组 s 中从第 6 个元素开始的值分别向前移动两个位置。在执行 fun 函数时,p 的值是 3,k 的值是 7,所 以,具体执行“for(i=p;i71.以下函数 rotate 的功能是:将 a 所指 N 行 N 列的二维

    45、数组中的最后一行放到 b 所指二维数组的第 0 列中,把 a 所指二维数组中的第 0 行放到 b 所指二维数组的 最后一列中,b 所指二维数组中的其他数据不变。 # define N 4 void rotate(int aN,int bN) int i,j; for(i=0;i1 ; 2 =aN-1i; (分数:1.50)填空项 1:_ (正确答案:a0i , bi0)解析:根据题意,语句“biN-1= -|_|-;”的作用是把 a所指二维数组中的第 0 行放到 b所指二维数组的 最后一列中,在 a数组中,第 0 行用 a0来表示,所以第 19 空填 a0i;语句“ -|_|- =aN-1i;

    46、”的作用 是将 a所指二维数组中的最后一行放到 b所指二维数组的第 0 列中,b 数组中第 0 列用 b0来表示,所以,第 20 空填 bi0。72.用以下语句调用库函数 malloc,使字符指针 st指向具有 11个字节的动态存储空间,请填空。 st=(char*) 1; (分数:1.50)填空项 1:_ (正确答案:malloc(11)或 malloc(sizeof(char) * 11 ))解析:malloc 函数的参数可以是一个具体的常数,也可以是一个表达式。在本题中, 可以是 malloc(11),也可以借助于 sizeof运算符来表示。 73.以下程序运行后的输出结果是 1。 main2 int a,b,c; a=1


    注意事项

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




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

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

    收起
    展开