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

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

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

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

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

    1、二级 C+-229 及答案解析(总分:70.00,做题时间:90 分钟)一、选择题(总题数:38,分数:70.00)1.关于关键字 class 和 typename,下列表述中正确的是_。(分数:2.50)A.程序中的 typename 都可以替换为 classB.程序中的 class 都可以替换为 typenameC.在模板形参表中只能用 typename 来声明参数的类型D.在模板形参表中只能用 class 或 typename 来声明参数的类型2.在深度为 5 的满二叉树中,叶子结点的个数为_。(分数:2.50)A.32B.31C.16D.153.下列有关抽象类和纯虚函数的叙述中,错误的

    2、是_。(分数:2.50)A.拥有纯虚函数的类是抽象类,不能用来定义对象B.抽象类的派生类若不实现纯虚函数,它也是抽象类C.纯虚函数的声明以“=0;”结束D.纯虚函数都不能有函数体4.下列关于重载函数的调用时选择的依据中,错误的是 _ 。(分数:2.00)A.根据函数参数个数不同B.根据函数参数类型不同C.根据函数名字不同D.根据函数的返回值不同5.语句 cout setprecison (3)3.1415926end1;的输出为 _ 。(分数:2.00)A.3.14B.3.1C.3.142D.3.1416.对于一个类定义,下列叙述中错误的是_。(分数:2.00)A.如果没有定义拷贝构造函数,编

    3、译器将生成一个拷贝构造函数B.如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数C.如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数D.如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数7.有下列程序: #include stdio.h #include“string.h“ tyoedef structchar name9;char sex;float score2;STU; void f(STU a) STU b=“Zhao“,“m“,85.0,90.0;int i;strcpy(a.name,b.name); a.sex=b.sex; for

    4、(i=0;i2;i+)a.scorei=b.scorei; void main() STU c=(“Qian“,“f“,g5.0,92.0); f(c); printf(“%s,%c,%2.of,%2.of/n“,c.name,c.sex, c.score0,c.score1); 程序的运行结果是_。(分数:2.50)A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,908.下列关于栈的叙述正确的是_。(分数:1.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据9.假设 a 为一个整型

    5、数组名,则元素 a4的字节地址为_ 。(分数:2.00)A.a+4B.a+8C.a+16D.a+3210.下列函数的运行结果是_。 #includeiostream.h int f(int a,int b) int c; if(ab)c=1; else if(a=b)c=0; else c=-1; return(c); void main() int i=2,j=3; int p=f(i,j); coutp;(分数:2.50)A.-1B.1C.2D.编译出错,无法运行11.有如下程序: #includeiostream using namespace std; int main() void

    6、function(double val): double val; function(val); coutval; retum0; void function(double val) val=3; 编译运行这个程序将出现的情况是_。(分数:1.00)A.编译出错,无法运行B.输出:3C.输出:3.0D.输出一个不确定的数12.程序中有语句:for(int i=0;i5;i+)cout*(p+i)“,“;能够依次输出 int 型一维数组 a 的前 5 个元素。由此可知,变量 P 的定义及初始化语句是_。(分数:2.50)A.int*p=a;B.int p=a;C.“p=a;D.p=a;13.有如

    7、下程序: #include using namespace std; int main() int a6=23, 15, 64, 33, 40, 58; int s1, s2; s1=s2=a0; for(int* p=a+1; p if(s1*p) s1=*p; if(s2*p) s2=*p; couts1+s2 return 0; /s1+s2 运行时的输出结果是_。(分数:2.50)A.23B.58C.64D.7914.下列是软件调试技术的是_。(分数:1.00)A.错误推断B.集成测试C.回溯法D.边界值分析15.以下程序的输出结果是 _ 。 #includeiostream.h vo

    8、id main() int a(5),b(6),i(0),j(0); switch(a) case 5:switch(b) case 5:i+;break; case 6:j+;break; default:i+;j+; case 6:i+; j+; break; default:i+;j+; couti“,“jendl; (分数:2.00)A.1,2B.1,3C.2,2D.2,316.必须用一对大括号括起来的程序段是_。(分数:1.00)A.switch 语句中的 case 标号语句B.if 语句的分支C.循环语句的循环体D.函数的函数体17.以下 C+语言中用于单行注释的是(分数:1.00

    9、)A./B./*C.*/D.|18.下列关于运算符重载的描述中,正确的是_。(分数:1.00)A.运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符B.一元运算符只能作为成员函数重载C.二元运算符重载为非成员函数时,参数表中有一个参数D.C+中可以重载所有的运算符19.假定 MyClass 为一个类,执行 MyClass a3, *p2;语句时会自动调用该类构造函数_次。(分数:2.50)A.2B.3C.4D.520.下列运算符函数中肯定不属于类 FunNumber 的成员函数的是(分数:2.00)A.int operator-(FunNumber);B.FunNumber oper

    10、ator-( );C.FunNumber operator-(int);D.int operator-(FunNumber,FunNumber);21.已知类 Base 和类 Derived 的定义如下: class Base int n; public; Base(int d); n(d) ; class Derived: public Base public: _ ; 其中横线处应为类 Derived 的构造函数的定义。 在下列构造函数的定义中正确的是_。(分数:2.50)A.Derived(int i)Base(i); B.Derived(int i): Base(i); C.Deriv

    11、ed(int i)n=i; D.Derived(int i): n=i22.有如下程序: #includeiostream using namespace std; int main() int a6=23,15,64,33,40,58; int s1,s2; s1=s2=a0; for(int*p=a+1;pa+6;p+) if(s1*p)s1=*p; if(s2*p)s2=*p; couts1+s2endl; return 0; 运行时的输出结果是_。(分数:2.50)A.23B.58C.64D.7923.下列关于构造函数的描述中,错误的是_。(分数:2.00)A.构造函数名与类名相同B.

    12、构造函数可以有返回值C.构造函数可以重载D.每个类都有构造函数24.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是_。(分数:1.00)A.编译程序B.操作系统C.教务管理系统D.汇编程序25.有如下函数模板定义: templatetypename T1,typename T2 T1 FUN(T2 n)return n*5,0; 若要求以 int 型数据 9 作为函数实参调用该模板,并返回一个 double 型数据,则该调用应表示为_。(分数:2.50)A.FUN(9)B.FUN9C.FUNdouble(9)D.FUN9(double)26.设有定义: c

    13、lass C public: int value; ; int x,*p; 则以下引用形式中,正确的是(分数:2.00)A.x=value;B.x=C:value;C.p=for(int i=70;i0;i-=3)n+; n 的值是_。(分数:2.00)A.23B.24C.25D.7128.有如下程序: #includeiostream using namespace std; class MyClass public: MyClass()+count; MyClass()-count; static int getCount()return count;) private: static i

    14、nt count; ; int MyClass:count=0; int main() MyClass obj; coutobj.getCount(); MyClass*ptr=new MyClass; coutMyClass:getCount(); delete ptr; coutMyClass:getCount(); return 0; 程序的输出结果是_。(分数:2.00)A.121B.232C.221D.12229.为类 Matrix 重载下列运算符时,只能作为 Matrix 类成员函数重载的运算符是_。(分数:2.00)A.+B.=C.D.+30.表示在输出时显示小数位,和在文件输入

    15、时判断文件尾的函数分别是 _ 。(分数:1.00)A.showbase()和 eof()B.showpoint()和 eof()C.showpoint()和 bad()D.showpoint()和 good()31.下面属于“类-对象”主要特征的是_。(分数:1.00)A.对象一致性B.对象无关性C.类的多态性D.类的依赖性32.下列关于顺序存储结构叙述中错误的是 _ 。(分数:2.00)A.存储密度大B.逻辑上相邻的结点物理上不必相邻C.可以通过计算直接确定第 i 个结点的存储地址D.插入、删除运算操作不方便33.下列关于 break 语句的叙述不正确的是 _ 。(分数:2.00)A.bre

    16、ak 语句可用在循环体中,它将使执行流程跳出本层循环体B.break 语句可用在 switch 语句中,它将使执行流程跳出当前 switch 语句C.break 语句可用在 if 语句中,它将使执行流程跳出当前 if 语句D.break 语句在一层循环体中可以出现多次34.有关构造函数的说法不正确的是 _ 。(分数:1.00)A.构造函数名字和类的名字一样B.构造函数在说明类变量时自动执行C.构造函数无任何函数类型D.构造函数有且只有一个35.在 C+中用来实现运行时多态性的是_。(分数:2.50)A.重载函数B.析构函数C.构造函数D.虚函数36.假定 AB 为一个类,则执行 AB x;语句

    17、时将自动调用该类的(分数:2.00)A.有参构造函数B.无参构造函数C.拷贝构造函数D.赋值重载函数37.有如下程序: #includeiostream using namespace std; class Part public: Part(int x=0): val(x) coutval; Part() coutval; private: int val; ; class Whole public: whole(int x, int y, int z=0): p2(x), p1(y), val(z) coutVal; Whole() coutval; private: Part p1, p

    18、2; int val; ; int main() Whole obj(1, 2, 3); return 0; 执行这个程序的输出结果是_。(分数:1.00)A.123321B.213312C.213D.12312338.下列关于虚函数的说明中,正确的是_。(分数:1.00)A.从虚基类继承的函数都是虚函数B.虚函数不得是静态成员函数C.只能通过指针或引用调用虚函数D.抽象类中的成员函数都是虚函数二级 C+-229 答案解析(总分:70.00,做题时间:90 分钟)一、选择题(总题数:38,分数:70.00)1.关于关键字 class 和 typename,下列表述中正确的是_。(分数:2.50

    19、)A.程序中的 typename 都可以替换为 class B.程序中的 class 都可以替换为 typenameC.在模板形参表中只能用 typename 来声明参数的类型D.在模板形参表中只能用 class 或 typename 来声明参数的类型解析:2.在深度为 5 的满二叉树中,叶子结点的个数为_。(分数:2.50)A.32B.31C.16 D.15解析:解析 分析:在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第 k 层上有 2 k-1 个结点。叶子结点在第 7 层上,有 2 5-1 =16 个结点。3.下列有关抽象类和纯虚函数的叙述中,错误的是_。(分数:2.50)A

    20、.拥有纯虚函数的类是抽象类,不能用来定义对象B.抽象类的派生类若不实现纯虚函数,它也是抽象类C.纯虚函数的声明以“=0;”结束D.纯虚函数都不能有函数体 解析:解析 拥有纯虚函数的类成为抽象类,抽象类不能定义对象。如果一个抽象类的派生类没有重定义来自基类的某个纯虚函数,则该函数在派生类中也是纯虚函数,派生类也是抽象类,纯虚函数可以有函数体。4.下列关于重载函数的调用时选择的依据中,错误的是 _ 。(分数:2.00)A.根据函数参数个数不同B.根据函数参数类型不同C.根据函数名字不同 D.根据函数的返回值不同解析:解析 函数的重载要求函数名相同。5.语句 cout setprecison (3)

    21、3.1415926end1;的输出为 _ 。(分数:2.00)A.3.14 B.3.1C.3.142D.3.141解析:6.对于一个类定义,下列叙述中错误的是_。(分数:2.00)A.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数B.如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数 C.如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数D.如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数解析:解析 此题考查的是构造函数。如果一个类中没有定义任何构造函数,编译器将生成一个不带参数的公有缺省构造函数。但只要定义了一个任意的构造函数,就不会生

    22、成缺省构造函数了。7.有下列程序: #include stdio.h #include“string.h“ tyoedef structchar name9;char sex;float score2;STU; void f(STU a) STU b=“Zhao“,“m“,85.0,90.0;int i;strcpy(a.name,b.name); a.sex=b.sex; for(i=0;i2;i+)a.scorei=b.scorei; void main() STU c=(“Qian“,“f“,g5.0,92.0); f(c); printf(“%s,%c,%2.of,%2.of/n“,c

    23、.name,c.sex, c.score0,c.score1); 程序的运行结果是_。(分数:2.50)A.Qian,f,95,92 B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,90解析:解析 本题考查在结构体中函数的调用,主函数调用 f(c)后,实参传向形参,但程序中没有返回语句,故形参不能将值传回实参,实参之间值的传递具有不可逆性,所以 printf 输出的还是 c 中实参的值。8.下列关于栈的叙述正确的是_。(分数:1.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据 C.只能在栈底插入数据D.不能删除数据解析:解析 栈是按“先进后出”的

    24、原则组织数据的,数据的插入和删除都在栈顶进行操作。9.假设 a 为一个整型数组名,则元素 a4的字节地址为_ 。(分数:2.00)A.a+4B.a+8C.a+16 D.a+32解析:解析 a4的字节地址为 a+4*4。10.下列函数的运行结果是_。 #includeiostream.h int f(int a,int b) int c; if(ab)c=1; else if(a=b)c=0; else c=-1; return(c); void main() int i=2,j=3; int p=f(i,j); coutp;(分数:2.50)A.-1 B.1C.2D.编译出错,无法运行解析:解

    25、析 本题的函数是根据 a 和 b 的值来给 c 赋值。11.有如下程序: #includeiostream using namespace std; int main() void function(double val): double val; function(val); coutval; retum0; void function(double val) val=3; 编译运行这个程序将出现的情况是_。(分数:1.00)A.编译出错,无法运行B.输出:3C.输出:3.0D.输出一个不确定的数 解析:解析 本题考查函数调用及传值方式传递参数,执行函数 function 时,并没有将 3

    26、的值传回来,而 val 又没有初始化,所以会输出一个不确定的值,D 选项正确。12.程序中有语句:for(int i=0;i5;i+)cout*(p+i)“,“;能够依次输出 int 型一维数组 a 的前 5 个元素。由此可知,变量 P 的定义及初始化语句是_。(分数:2.50)A.int*p=a; B.int p=a;C.“p=a;D.p=a;解析:解析 从循环语句中可以看出,是在 0 到 4 的循环中输出数组 a 中的前 5 个元素,输出的值为*(p+i),即为指针 p 向后移动指向的元素。所以初始化要将指针 p 指向数组 a,即 int*p=a;。13.有如下程序: #include u

    27、sing namespace std; int main() int a6=23, 15, 64, 33, 40, 58; int s1, s2; s1=s2=a0; for(int* p=a+1; p if(s1*p) s1=*p; if(s2*p) s2=*p; couts1+s2 return 0; /s1+s2 运行时的输出结果是_。(分数:2.50)A.23B.58C.64D.79 解析:解析 本题考查的知识点是指针和一维数组。在 C+中,指针和数组的关系极为密切。指针和数组常常可以互换。数组的名字就是指向该数组第一个元素(下标为 0)的指针,即该数组第一个元素的地址,也即数组的首地

    28、址。int* p=a+1;p 指向数组 a 第二个元素。14.下列是软件调试技术的是_。(分数:1.00)A.错误推断B.集成测试C.回溯法 D.边界值分析解析:解析 软件调试技术包括强行排错法、回溯法和原因排除法。边界值分析、错误推断都是黑盒测试的方法。15.以下程序的输出结果是 _ 。 #includeiostream.h void main() int a(5),b(6),i(0),j(0); switch(a) case 5:switch(b) case 5:i+;break; case 6:j+;break; default:i+;j+; case 6:i+; j+; break;

    29、default:i+;j+; couti“,“jendl; (分数:2.00)A.1,2 B.1,3C.2,2D.2,3解析:16.必须用一对大括号括起来的程序段是_。(分数:1.00)A.switch 语句中的 case 标号语句B.if 语句的分支C.循环语句的循环体D.函数的函数体 解析:解析 本题考查 C+基本控制结构,A、B、C 三个选项巾的大括号不是必须的,而 D 选项中的函数体必须使用大括号。17.以下 C+语言中用于单行注释的是(分数:1.00)A./ B./*C.*/D.|解析:解析 考查 C+语言中的注释问题。 解题要点 C+语言中的注释与 C 浯言不同,C 语言的注释符号

    30、只有/* */,而 C +在此基础上又加上了/,此注释用于单行注释。 考点链接 注释不影响程序的运行。18.下列关于运算符重载的描述中,正确的是_。(分数:1.00)A.运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符 B.一元运算符只能作为成员函数重载C.二元运算符重载为非成员函数时,参数表中有一个参数D.C+中可以重载所有的运算符解析:解析 运算符重载为成员函数时,会省略一个参数,如果无参数,表明是一元运算符。一元运算符既可以作为成员函数重载,也可以作为非成员函数重载。二元运算符如果作为非成员函数,则参数表中必须有两个参数。C+有 5 个运算符不能重载,它们是:.(成员访问运算

    31、符)、.*(成员指针访问运算符)、:(域运算符)、sizeof(长度运算符)和?:(条件运算符)。故本题答案为 A。19.假定 MyClass 为一个类,执行 MyClass a3, *p2;语句时会自动调用该类构造函数_次。(分数:2.50)A.2B.3 C.4D.5解析:20.下列运算符函数中肯定不属于类 FunNumber 的成员函数的是(分数:2.00)A.int operator-(FunNumber);B.FunNumber operator-( );C.FunNumber operator-(int);D.int operator-(FunNumber,FunNumber); 解

    32、析:解析 运算符重载,“-”号是单目运算符,而 D 被重载为双目运算符,所以为错误的。21.已知类 Base 和类 Derived 的定义如下: class Base int n; public; Base(int d); n(d) ; class Derived: public Base public: _ ; 其中横线处应为类 Derived 的构造函数的定义。 在下列构造函数的定义中正确的是_。(分数:2.50)A.Derived(int i)Base(i); B.Derived(int i): Base(i); C.Derived(int i)n=i; D.Derived(int i)

    33、: n=i解析:解析 本题考查的是构造函数的定义。构造函数的定义一般为:类名(形参):成员名(表达式)(),根据该公式,可以判断出选择 B。22.有如下程序: #includeiostream using namespace std; int main() int a6=23,15,64,33,40,58; int s1,s2; s1=s2=a0; for(int*p=a+1;pa+6;p+) if(s1*p)s1=*p; if(s2*p)s2=*p; couts1+s2endl; return 0; 运行时的输出结果是_。(分数:2.50)A.23B.58C.64D.79 解析:解析 程序实

    34、现的功能为输出数组 a 中最小值和最大值的和。for 循环结束后,变量 s1 中存放最小值 15,变量 s2 中存放最大值 64,输出 s1+s2 的值为 79。23.下列关于构造函数的描述中,错误的是_。(分数:2.00)A.构造函数名与类名相同B.构造函数可以有返回值 C.构造函数可以重载D.每个类都有构造函数解析:解析 构造函数具有下面 4 个特殊的性质:构造函数的名字必须与类名相同;构造函数不指定返回类型,它隐含有返回值,由系统内部使用;构造函数可以有一个或多个参数,因此构造函数可以重载:在创建对象时,系统会自动调用构造函数。24.软件按功能可以分为:应用软件、系统软件和支撑软件(或工

    35、具软件)。下面属于应用软件的是_。(分数:1.00)A.编译程序B.操作系统C.教务管理系统 D.汇编程序解析:解析 编译软件、操作系统、汇编程序都属于系统软件,只有 C 教务管理系统才是应用软件。25.有如下函数模板定义: templatetypename T1,typename T2 T1 FUN(T2 n)return n*5,0; 若要求以 int 型数据 9 作为函数实参调用该模板,并返回一个 double 型数据,则该调用应表示为_。(分数:2.50)A.FUN(9)B.FUN9C.FUNdouble(9) D.FUN9(double)解析:解析 函数返回类型是 double 型,

    36、则 T1 为 double 型,T2 为 int 型才符合函数模板的定义。26.设有定义: class C public: int value; ; int x,*p; 则以下引用形式中,正确的是(分数:2.00)A.x=value; B.x=C:value;C.p=for(int i=70;i0;i-=3)n+; n 的值是_。(分数:2.00)A.23B.24 C.25D.71解析:28.有如下程序: #includeiostream using namespace std; class MyClass public: MyClass()+count; MyClass()-count; s

    37、tatic int getCount()return count;) private: static int count; ; int MyClass:count=0; int main() MyClass obj; coutobj.getCount(); MyClass*ptr=new MyClass; coutMyClass:getCount(); delete ptr; coutMyClass:getCount(); return 0; 程序的输出结果是_。(分数:2.00)A.121 B.232C.221D.122解析:解析 此题考查的是静态成员。静态成员的特性是不管这个类创建了多少对

    38、象,它的静态成员都只有一个拷贝副本,这个副本被所有属于这个类的对象共享。题目中,首先定义了 obj 对象,其构造函数使静态数据成员 count 增 1,故输出“1”;然后通过指针动态创建了 MyClass 类的对象,构造函数被再次调用,count 变为 2,输出“2”;接着删除创建的 MyClass 类的对象,调用析构函数,count 减 1 变为1,输出“1”。故最终输出结果是 121。29.为类 Matrix 重载下列运算符时,只能作为 Matrix 类成员函数重载的运算符是_。(分数:2.00)A.+B.= C.D.+解析:解析 在 C+中,=、()、-以及所有的类型转换运算符只能作为成

    39、员函数重载。30.表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是 _ 。(分数:1.00)A.showbase()和 eof()B.showpoint()和 eof() C.showpoint()和 bad()D.showpoint()和 good()解析:31.下面属于“类-对象”主要特征的是_。(分数:1.00)A.对象一致性B.对象无关性C.类的多态性 D.类的依赖性解析:解析 类-对象的基本特点如下。 特点 描述 标识唯一性 一个对象通常可由对象名、属性 和操作三部分组成 分类指可性 以将具有相同属性和操作的 对象抽象成类 多态性 指同一个操作可以是不同对象的 行为,不同

    40、对象执行同一操作产 生不同的结果 封装性 从外面看只能看到对象的外部特 性,对象的内部对外是不可见的 模块独立性好 由于完成对象功能所需的元素都 被封装在对象内部,所以模块独 立性好 由上表可知“类-对象”主要特征包括类的多态性,故 C 选项正确。32.下列关于顺序存储结构叙述中错误的是 _ 。(分数:2.00)A.存储密度大B.逻辑上相邻的结点物理上不必相邻 C.可以通过计算直接确定第 i 个结点的存储地址D.插入、删除运算操作不方便解析:33.下列关于 break 语句的叙述不正确的是 _ 。(分数:2.00)A.break 语句可用在循环体中,它将使执行流程跳出本层循环体B.break

    41、语句可用在 switch 语句中,它将使执行流程跳出当前 switch 语句C.break 语句可用在 if 语句中,它将使执行流程跳出当前 if 语句 D.break 语句在一层循环体中可以出现多次解析:34.有关构造函数的说法不正确的是 _ 。(分数:1.00)A.构造函数名字和类的名字一样B.构造函数在说明类变量时自动执行C.构造函数无任何函数类型D.构造函数有且只有一个 解析:35.在 C+中用来实现运行时多态性的是_。(分数:2.50)A.重载函数B.析构函数C.构造函数D.虚函数 解析:解析 在 C+语言中,多态性可分为两类:静态多态性和动态多态性。 静态多态性是通过函数重载、运算

    42、符重载和模板体现的。在程序编译时系统就能决定调用的是哪个函数,因此静态多态性又称编译时的多态性。 动态多态性是通过虚函数实现的。动态多态性是在程序运行过程中才动态地确定操作所针对的对象,它又称运行时的多态性。36.假定 AB 为一个类,则执行 AB x;语句时将自动调用该类的(分数:2.00)A.有参构造函数B.无参构造函数 C.拷贝构造函数D.赋值重载函数解析:解析 当没有显式调用指定形式的构造函数,则系统自动调用无参构造函数,如果没有为类指定此构造函数,则系统自动为其生成一个最简单的无参构造函数。37.有如下程序: #includeiostream using namespace std;

    43、 class Part public: Part(int x=0): val(x) coutval; Part() coutval; private: int val; ; class Whole public: whole(int x, int y, int z=0): p2(x), p1(y), val(z) coutVal; Whole() coutval; private: Part p1, p2; int val; ; int main() Whole obj(1, 2, 3); return 0; 执行这个程序的输出结果是_。(分数:1.00)A.123321B.213312 C.

    44、213D.123123解析:解析 本题考查带参数的构造函数。本题中定义了一个对象 obj,那么执行其构造函数,初始化p1,p2 的顺序是由声明这两个成员的顺序决定的,而不是由参数化列表顺序决定,所以本题中,会先执行 p1,输出 2,然后执行 p2 输出 1,然后输出 3,最后一次输出 312。所以本题答案为 B。38.下列关于虚函数的说明中,正确的是_。(分数:1.00)A.从虚基类继承的函数都是虚函数B.虚函数不得是静态成员函数 C.只能通过指针或引用调用虚函数D.抽象类中的成员函数都是虚函数解析:解析 在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数。虚函数必须是基类的非静态成员函数,其访问权限可以是 protected 或 public。如果一个类包含了纯虚函数,称此类为抽象类。所以本题答案为 B。


    注意事项

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




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

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

    收起
    展开