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

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

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

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

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

    1、计算机等级考试二级(C+)46 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:35,分数:70.00)1.下面叙述不正确的是( )。(分数:2.00)A.派生类一般都用公有派生B.对基类成员的访问必须是无两义性的C.赋值兼容规则也适用于多重继承的组合D.基类的公有成员在派生类中仍然是公有的2.“商品”与“顾客”两个实体集之间的联系一般是_。 (分数:2.00)A.一对一B.一对多C.多对一D.多对多3.有以下类定义 class MyClass private: int id; char gender; char*phone;

    2、public: MyClass():id(0),gender(#),phone(NULL) MyClass(int no,char ge=#,char*ph=NULL) idno;gender=ge;phone=ph; ; 下列类对象定义语句中错误的是【 】 (分数:2.00)A.MyClass myObj;B.MyClass myObj(11,“13301111155“);C.MyClass myObj(12,m);D.MyClass myObj(12);4.下面程序的结果是( )。 #includeiostreamh class A public: A( ) cout “construtA

    3、“ end1; virtual A( ) cout “destructA“ end1; ; class B:public A ; class C:public A ; class D:public B,public C ; void main( ) Dd; (分数:2.00)A.方法是对象的一部分B.方法是预先定义好的操作C.方法是对事件的响应D.方法用于完成某些特定的功能5.有以下程序: int a=2; int f(int n) static int a=3; int t=0; if(n%2) static int a=4; t+=a+; else static int a=5; t+=a

    4、+; return t+a+; main() int s=a,i; for(i=0;iA.26B.28C.29D.246.函数模板:template T add(T x,T y) return x+y; 下列对 add 函数的调用不正确的是( )。 (分数:2.00)A.add(1,2)B.add(1,2)C.add(10,2)D.add(10,20)7.有如下程序 #includeiostreamh int func(int a,int B) return(a+B) ; void main( ) int x=2,y=5,z=8,r; r=func(func(x,y),z); cout r;

    5、该程序的输出的结果是( )。 (分数:2.00)A.第二行的声明不会为变量 my 分配内存空间B.第二行语句创建一个 Vector 类对象C.第三行语句创建一个 Vector 类对象D.第三行语句为一个 Vector 类对象分配内存空间8.数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和_。(分数:2.00)A.编码设计B.测试阶段C.运行阶段D.物理设计9.按照“后进先出”原则组织数据的数据结构是_。 (分数:2.00)A.队列B.栈C.双向链表D.二叉树10.以下程序的功能是进行位运算: main() unsigned char a,b; a=73; b=4 printf(“%d %

    6、d/n“,a,b); 程序运行后的输出结果是_。 (分数:2.00)A.4 3B.7 3C.7 0D.4 011.有以下程序 #include main() char c1,c2,c3,c4,c5,c6; scanf(“%c%c%c%c“, c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf(“%c%c/n“,c5,c6); 程序运行后,若从键盘输入(从第 1 列开始) 123 45678 则输出结果是_。 (分数:2.00)A.1267B.1256C.1278D.124512.下列关于输入流类成员函数 getline( )

    7、的描述中,错误的是_。(分数:2.00)A.该函数是用来读取键盘输入的字符串的B.该函数读取的字符串长度是受限制的C.该函数读取字符串时,遇到终止符便停止D.该函数读取字符串时,可以包含空格13.下面关于数组的初始化正确的是( )。(分数:2.00)A.char str :a,b,cB.char str2=a,b,cC.char str23=a,b,c,d,e,fD.char str( )=a,b,c14.下列程序是用来判断数组中特定元素的位置所在,则输出结果为( )。 #includeconioh #includeiostreamh int fun(in *s,int t,int *k) i

    8、nt i; * k=0; for(i=0;i t;i+) if(s *k si) *k=i; return S *k; void main( ) int a10= 876,675,896,101,301,401,980,431,451,777 ,k; fun(a,10, int i,j; i=sizeof(a); j=strlen(a); printf(“%d %d/n“,i,j); 程序运行后的输出结果是_。 (分数:2.00)A.2 2B.7 6C.7 2D.6 217.以下类定义中可能会引起错误的语句是( )。 class A public: A( ) /1 int i; /2 priv

    9、ate: int j; /3 A(int i) i+; /4 ; (分数:2.00)A.1B.2C.3D.418.C+语言对 C 语言做了很多改进,C+语言相对于 C 语言的最根本的变化是( )。(分数:2.00)A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念19.当使用 fstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。(分数:2.00)A.ios:inB.ios:outC.ios:in | ios:outD.以上都不对20.下面程序输出的结果是( )。 #includeiostream.h

    10、voidmain( ) inti; inta33:1,2,3,4,5,6,7,8,9; for(i=0;iA.定义了一个名为 a 的一维数组B.a 数组有 3 个元素C.a 数组的元素的下标为 1-3D.数组中的每一个元素都是整型21.C+语言中,表示一条语句结束的标号是( )。(分数:2.00)A.#B.;C./D.22.下面关于数组的初始化正确的是( )。(分数:2.00)A.0B.22C.12D.1023.有以下程序 main() int i,s=0,t=1,2,3,4,5,6,7,8,9; for(i=0;iA.45B.20C.25D.3624.下列关于模板的说法正确的是( )。(分数

    11、:2.00)A.1B.2C.3D.425.对于模板定义关键字 class 和 typename 说法不正确的是( )。(分数:2.00)A.程序中的 class 并不能都替换为 typenameB.class 和 typename 都可互相替换C.程序中的 typename 都能替换为 classD.程序中的部分 class 可以替换为 typename26.假定 int 类型变量占用两个字节,其有定义 int x l0= 0,2,4 ;,则数组 x 在内存中所占字节数是( )。(分数:2.00)A.3B.6C.10D.2027.下列程序的运行结果为( )。 #includeiostreamh

    12、 class Location protected: int X,Y; publiC: void SeX(int myx)X=myx; void SetY(int myy)Y=myy; void showxy( ) cout“X=“ X“ “ “Y“= Y endl; ; Class Rectangle :public Location private: int H,W; public: void SetH(int myh)H=myh; void SetW(int myw) W=myw; void show( ) cout “X=“X“ “Y=“ Y“ “H=“ H“ “ “W=“ W end

    13、l; ; void main( ) Rectangle r1; r1SetX(3); r1SetY(5); r1SetH(4); r1SetW(6); r1showxy( ); r1. show( ); (分数:2.00)A.X=3 Y=5 X=3 Y=5 H=4 W=6B.X=3 Y=5 X=3 Y=5 H=3 W=6C.X=3 Y=5 X=3 Y=4 H=4 W=6D.X=3 Y=5 X=3 Y=3 H=4 W=628.下列程序的输出结果为( )。 # include iostreamh int func(int n) if (n1)return 1; else return n + fu

    14、nc (n-1); return 0; void main( ) cout func (5) endl; (分数:2.00)A.VariantB.ByteC.BooleanD.Integer29.下列程序的运行结果为( )。 #includeiostreamh void main( ) int a=2; int b=a+1; cout a/b endl; (分数:2.00)A.0.66667B.0C.0.7D.0.6666666630.以下 for 语句中不是死循环的是( )。(分数:2.00)A.for(int i=0;i1;+i;B.for(int i=0;+i;C.for(int i=1

    15、;i0;+i;D.for(;);31.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,在划线处应填入的是( )。 #includeiostreamh voidmain( ) inta,b,t; cinab; while(_) if(ab) t=a;a=b;b=t; couta“bendl; cinab; (分数:2.00)A.输入对话框B.输出对话框C.模式(模态)对话框D.无模式对话框32.下面关于 C+语言变量的叙述错误的是( )。(分数:2.00)A.字段变量的值B.内存变量的值C.随机显示D.错误信息33.在 C+语言程序中,对象之间的相互通信通过(

    16、 )。(分数:2.00)A.继承实现B.调用成员函数实现C.封装实现D.函数重载实现34.以下叙述中正确的是_。 (分数:2.00)A.调用 printf 函数时,必须要有输出项B.使用 putchar 函数时,必须在之前包含头文件 stdio.hC.在 C 语言中,整数可以以十二进制、八进制或十六进制的形式输出D.调用 getchar 函数读入字符时,可以从键盘上输入字符所对应的 ASCII 码35.下面程序输出的结果为( )。 #include“ iostreamh“ class A public: A( ) cout “CLASS A“ end1; A( ) ; class B:publ

    17、ic A public: B( ) cout “CLASS B“ end1; B( ) ; void main( ) A * p; p=new B; B * q; q=new B; (分数:2.00)A.CLASS A CLASS BB.CLASS A CLASS B CLASS BC.CLASS A CLASS B CLASS A CLASS BD.CLASS A CLASS B CLASS B CLASS B二、填空题(每空 2 分,共 30 分)(总题数:15,分数:30.00)36.假设 int a=1,b=2;,则表达式(+a/b)*b-的值为 1。(分数:2.00)填空项 1:_3

    18、7.按“行进后出”原则组织数据的数据结构是 1 。(分数:2.00)38.在面向对象方法中,类的实例称为 1。(分数:2.00)填空项 1:_39.下列程序段的输出结果是 1。 coutfixed509.123456789endl; (分数:2.00)填空项 1:_40.以下程序中,fun 函数的功能是求 3 行 4 列二维数组每行元素中的最大值。请填空。 void fun(int,int,int(*)4,int *); main1 int a34=12,41,36,28,19,33,15,27,3,27,19,1,b3,i; fun(3,4,a,b); for(i=0;i2=x; (分数:2

    19、.00)填空项 1:_41.C+语言中表示双精度浮点数的关键字是 1。(分数:2.00)填空项 1:_42.下面程序的运行结果为 1。 # include iostreamh void fun(int x=0,int y=0) cout X y; void main( ) fun(5); (分数:2.00)填空项 1:_43.已知程序的结果为 123,请填空。 #includeiostream.h templateclassT classA public: Tx,y,z; voiddisplay( )coutx“y“z; ; voidmain( ) Aintal; 1 2 3 al.displ

    20、ay( ); (分数:2.00)填空项 1:_44.以下程序的输出结果是 1。 #includeiostreamh unsignedfun(unsignednum) unsignedk=1; do k * =num%10;num/=10;while(num); returnk; voidmain( ) unsignedn=26; coutfun(n)endl; (分数:2.00)填空项 1:_45.如果不能使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基数继承的成员,下列程序没有使用多态机制,其输出结果是 1。 #include using namespace std;

    21、 class Base public: Void print2coutprint5; pd-print6; delete pd; return 0; (分数:2.00)46.如果类 B 继承了类 A,则称类 A 为类 B 的基类,类 B 称为类 A 的 1。(分数:2.00)填空项 1:_47.以下程序用于判断 a、b、c 能否构成三角形,若能,输出 YES,否则输出 NO。当给 a、b、c 输入三角形三条边长时,确定 a、b、c 能构成三角形的条件是需同时满足三 个条件:a+bc,a+cb,b+ca。请填空。 main1 float a,b,c; scanf(“%f%f%f“, if(= 2

    22、)printf(“YES/n“); /*a、b、c 能构成三角形*/ else printf(“NO/n“); /*a、b、c 不能构成三角形*/ (分数:2.00)填空项 1:_48.以下程序的输出结果是 1。 main2 int a33=1,2,9,3,4,8,5,6,7,i,s=0; for(i=0;i填空项 1:_49.C+语言的基本控制结构为顺序结构、选择结构和 1。(分数:2.00)填空项 1:_50.继承的方式有公有继承、私有继承和 13 种。(分数:2.00)填空项 1:_计算机等级考试二级(C+)46 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(每小题 2

    23、 分,共 70 分) 下列各(总题数:35,分数:70.00)1.下面叙述不正确的是( )。(分数:2.00)A.派生类一般都用公有派生B.对基类成员的访问必须是无两义性的C.赋值兼容规则也适用于多重继承的组合D.基类的公有成员在派生类中仍然是公有的 解析:C+语言中如果基类的成员是公有的,它被继承后在子类中该成员可能是公有的,也可能不是,主要看继承的权限。2.“商品”与“顾客”两个实体集之间的联系一般是_。 (分数:2.00)A.一对一B.一对多C.多对一D.多对多 解析:两个实体间的联系可以归纳为 3 种类型:一对一联系:一对一的联系表现为主表中的每一条记录只与相关表中的一条记录相关联。

    24、一对多联系:一对多的联系表现为主表中的每一条记录与相关表中的多条记录相关联。 多对多联系:多对多的联系表现为一个表中的多个记录在相关表中同样有多个记录其匹配。 本题中一个顾客可以购买多种商品,同一种商品可以有多个顾客购买,所以商品和顾客之间是多对多的联 系。3.有以下类定义 class MyClass private: int id; char gender; char*phone; public: MyClass():id(0),gender(#),phone(NULL) MyClass(int no,char ge=#,char*ph=NULL) idno;gender=ge;phone=

    25、ph; ; 下列类对象定义语句中错误的是【 】 (分数:2.00)A.MyClass myObj;B.MyClass myObj(11,“13301111155“); C.MyClass myObj(12,m);D.MyClass myObj(12);解析:本题考核构造函数的应用。对象建立用初始化列表对数据成员进行时,列表中的参数类型要与构造函数中形参类型一致。B 选项中第二个参数为“13301111155“是字符串,而构造函数中第二个形参为 char型,两者不一致造成错误。4.下面程序的结果是( )。 #includeiostreamh class A public: A( ) cout “

    26、construtA“ end1; virtual A( ) cout “destructA“ end1; ; class B:public A ; class C:public A ; class D:public B,public C ; void main( ) Dd; (分数:2.00)A.方法是对象的一部分B.方法是预先定义好的操作C.方法是对事件的响应 D.方法用于完成某些特定的功能解析:C+的 this 指针是系统默认产生的一个指针,它是 const 的,所以是不能够被改变,不能够被赋值的。5.有以下程序: int a=2; int f(int n) static int a=3;

    27、 int t=0; if(n%2) static int a=4; t+=a+; else static int a=5; t+=a+; return t+a+; main() int s=a,i; for(i=0;iA.26B.28C.29 D.24解析:解本题要弄清楚这样几点:1、定义“int a=2;”中的全局变量 a,其作用范围是从定义此变量的位 置开始到本源文件结束;2、“static int a=3;”中的静态局部变量 a 的作用范围是其所在的函数 f,并对其 只赋一次初值,以后每次调用函数时不再重新赋初值,而只是保留上次函数调用结束时的值;3、复合语句“ static int a

    28、=4; t+=a+; ”和“ static int a=5; t+=a+; ”中定义的两个变量 a 属于复合语句中定义的变量,作用范围只在其本身所在的复合语句内。对于本程序来讲,第三行定义的静态局部变量并不 会对四、五两行的复合语句产生作用,这是因为复合语句中也定义了与其同名的静态局部变量。6.函数模板:template T add(T x,T y) return x+y; 下列对 add 函数的调用不正确的是( )。 (分数:2.00)A.add(1,2)B.add(1,2)C.add(10,2) D.add(10,20)解析:对于 template Tadd(T x,T y) return

    29、 x + y; 调用时町以省略模板实参的声明,但是要求x 和 y 的数据类型必须是一样的。 7.有如下程序 #includeiostreamh int func(int a,int B) return(a+B) ; void main( ) int x=2,y=5,z=8,r; r=func(func(x,y),z); cout r; 该程序的输出的结果是( )。 (分数:2.00)A.第二行的声明不会为变量 my 分配内存空间B.第二行语句创建一个 Vector 类对象 C.第三行语句创建一个 Vector 类对象D.第三行语句为一个 Vector 类对象分配内存空间解析:此题考查 swit

    30、ch 语句的用法,switch 的判断的条件必须是一个 int 型值,也可以是 byte,short和 char 型的值,case 中需要注意的是一个 case 后面一般要接一 个 break 语句才能结束判断,否则将继续执行其他 case 而不进行任何判断,如果没有任何 值符合 CaSe 列出的判断,则执行 default 的语句,default 是可选的,可以没有,如果没有 default 而又没有任何值匹配 case 中列出的值,则 switch 不执行任何语句。8.数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和_。(分数:2.00)A.编码设计B.测试阶段C.运行阶段D.物理设

    31、计解析:9.按照“后进先出”原则组织数据的数据结构是_。 (分数:2.00)A.队列B.栈 C.双向链表D.二叉树解析:栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈 只允许在表的一端进行插入或删除操作,是一种“后进先出”的线性表;而队列只允许在表的一端进行插 入操作,在另一端进行删除操作,是一种“先进先出”的线性表。10.以下程序的功能是进行位运算: main() unsigned char a,b; a=73; b=4 printf(“%d %d/n“,a,b); 程序运行后的输出结果是_。 (分数:2.00)A.4 3 B.7 3C.7 0D.4

    32、0解析:C 语言提供六种位运算符,按优先级由高到低的顺序分别为:取反()左移(print6; delete pd; return 0; (分数:2.00)解析:46.如果类 B 继承了类 A,则称类 A 为类 B 的基类,类 B 称为类 A 的 1。(分数:2.00)填空项 1:_ (正确答案:派生类)解析:如果类 A 为类 B 的基类,那么类 B 称为类 A 的派生类。 47.以下程序用于判断 a、b、c 能否构成三角形,若能,输出 YES,否则输出 NO。当给 a、b、c 输入三角形三条边长时,确定 a、b、c 能构成三角形的条件是需同时满足三 个条件:a+bc,a+cb,b+ca。请填空

    33、。 main1 float a,b,c; scanf(“%f%f%f“, if(= 2)printf(“YES/n“); /*a、b、c 能构成三角形*/ else printf(“NO/n“); /*a、b、c 不能构成三角形*/ (分数:2.00)填空项 1:_ (正确答案:(a+bc) for(i=0;i填空项 1:_ (正确答案:30)解析:此题主要考核的是多维数组以及 for-|_|-循环语句的应用,即 i=0 时,s=0+a00+ a02=10,i=1 时,s=10+a11 +a11=18,i=2 时,s=18 +a22 +a20=30。49.C+语言的基本控制结构为顺序结构、选择结构和 1。(分数:2.00)填空项 1:_ (正确答案:循环结构)解析:C+语言 3 种基本结构就是顺序结构,选择结构,循环结构。 50.继承的方式有公有继承、私有继承和 13 种。(分数:2.00)填空项 1:_ (正确答案:保护继承)解析:继承性是面向对象程序设计中最重要的机制,用户可以根据不同的需要选择 3 种不同的继承方式。


    注意事项

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




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

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

    收起
    展开