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

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

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

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

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

    1、二级 C+笔试-400 及答案解析(总分:85.00,做题时间:90 分钟)一、选择题(总题数:35,分数:60.00)1.对于拷贝初始化构造函数和赋值操作的关系,正确的描述是( )。A拷贝初始化构造函数和赋值操作是完全一样的操作B进行赋值操作时,会调用类的构造函数C当调用拷贝初始化构造函数时,类的对象正在被建立并被初始化D拷贝初始化构造函数和赋值操作不能在同一个类中被同时定义(分数:1.00)A.B.C.D.2.SQL 语言又称为A) 结构化定义语言 B) 结构化控制语言C) 结构化查询语言 D) 结构化操纵语言(分数:2.00)A.B.C.D.3.结构化程序设计的三种结构是( )。A) 顺

    2、序结构、选择结构、转移结构 B) 分支结构、等价结构、循环结构C) 多分支结构、赋值结构、等价结构 D) 顺序结构、选择结构、循环结构(分数:2.00)A.B.C.D.4.有下列程序:#includeiostreamUsing namespace std;Class Amountint amount;public;Amount(int n=O):amount(n)Int getAmount()constreturn amount;Amount return;int main()Amount x(3),y(7);x+=y;coutx.getAmount()endl;return 0;己知程序的运

    3、行结果是 10,则横线处缺失的表达式是( )。A) *this B) this C) TestClass(char c)coutc;;class TestClassl:publicTestClasspublic:TestClassl(char c)coutc;int main()TestClassl d1(y);return 0;执行这个程序,屏幕上格显示输出( )。Ay Byx Cxy Dyy(分数:2.00)A.B.C.D.6.下列说法中错误的是( )。A公有继承时基类中的 public 成员在派生类中仍是 public 的B公有继承时基类中的 private 成员在派生类中仍是 priv

    4、ate 的C私有继承时基类中的 public 成员在派生类中是 private 的D保护继承时基类中的 public 成员在派生类中是 protected 的(分数:2.00)A.B.C.D.7.C+本身没有定义 I/O 操作,但 I/O 操作包含在 C+实现中。C+标准库 iostream 提供了基本的 I/O 类,它包括类 iostream 和( )。A) fstream B) ostream C) iostream D) cin(分数:2.00)A.B.C.D.8.软件生命周期中所花费用最多的阶段是( )。A详细设计 B软件编码C软件测试 D软件维护(分数:2.00)A.B.C.D.9.

    5、下列关于对象初始化的叙述中,正确的是A) 定义对象的时候不能对对象进行初始化B) 定义对象之后可以显式地调用构造函数进行初始化C) 定义对象时将自动调用构造函数进行初始化D) 在一个类中必须显式地定义构造函数实现初始化(分数:2.00)A.B.C.D.10.有以下语句,则对 a 数组元素的引用不正确的是(0i9)int a10=0,1,2,3,4,5,6,7,8,9,*p=a;A) ap-a B) *(;void main( )A x,y(2),z(3);coutend1;A) 00 B) 23 C) 34 D) 25(分数:1.00)A.B.C.D.18.有如下程序: #includeios

    6、tream using namespaee std; int i=1; class Fun public: static int i; int value( ) return i-1; int value( )cons return i+1; ; int Fun:i=2; int main( ) int i=3; Fun funl; const Fun fun2; _: return 0; 若程序的输出结果是: 123 则程序中下画线处遗漏的语句是 A) coutfunlvalue( )Fun:ifun2value( ); B) coutFun:ifunlvalue( )fun2value(

    7、); C) coutfunlvalue( )fun2value( )Fun:i; D) coutfun2value( )Fun:ifunlvalue( );(分数:2.00)A.B.C.D.19.下面程序的运行结果为#includeiostreamhvoid main( )for(int a=0,x=0;! xa+)a+;coutaend1;A) 10 B) 11 C) 12 D) 0(分数:1.00)A.B.C.D.20.有如下程序:#include iostream#include iomarupusing namespace std;int main()coutsetw(10)setfi

    8、ll(x)setprecision(8)left;cout12.3456793_98765;return 0;若程厚的输出是 12.345679x98765xxxxx,则划线处缺失的部分是( )。Asetw(10) Bsetfill(x)Csetprecision(8) Dright(分数:2.00)A.B.C.D.21.如果函数没有返回值,对于函数的返回值说明可以是( )。A) 可能没有返回值说明 B) 用 void 说明C) 用 const 说明 D) 返回值可以是任意类型(分数:2.00)A.B.C.D.22.下列关于虚函数的说明中,正确的是( )。A从虚基类继承的函数都是虚函数 B虚函

    9、数不得是静态成员函数C只能通过指针或引用调用虚函数 D抽象类中的成员函数都是虚函数(分数:2.00)A.B.C.D.23.下列关于模板的叙述中,错误的是( )。A模板声明中的第一个符号总是关键字 templateB在模板声明中用和括起来的部分是模板的形参表C类模板不能有数据成员D在一定条件下函数模板的实参可以省略(分数:2.00)A.B.C.D.24.有以下程序#includeiostreamusing namespace std;class MyClasspublic:MyClass(int n)number =n; /拷贝构造函数MyClass(MyClassclass DatePubli

    10、c:Date(int m=1,int y=0): month(m),year(y)void Print()coutmonth“/“yearend1;_operator+(const Dateprivate:int month, year;Date operator+(const Dateyear=d1.year+d2.year;month=d1.month+d2.month;year+=(month-1)12;month=(month-1)%12+1;return Date(month,year);void main()Date d1(3,2004),d2,d3(10);d2=d3+d1;d2

    11、.Print();(分数:2.00)填空项 1:_38.请在如下程序中的空格处填写正确的语句; #includeiostream using namespaee std; cass Base public: void fun( )cout“Base fun“endl; ; class Derived:public Base public: void fun( ) _/调用基类的函数 fun( ) cout“Derived fun“endl; ;(分数:2.00)填空项 1:_39.在派生类中,对类对象成员,基类成员和非类对象成员的初始化程序是 【7】 。(分数:2.00)填空项 1:_40.在

    12、下列基类的定义中,有无 virtual 修饰 use 成员函数的结果将不同,其原因是 【15】 。当 use()为虚拟函数时的程序执行结果: sizeof(A)=8sizeof(B)=12sizeof(C)=16当 use()非虚拟函数时的程序执行结果: sizeof(A)=4sizeof(B)=8sizeof(C)=12源程序如下:#include iostream. hclass Grandadpublic:Grandad(): money(10) int money;virtual void use() ,class Father: public Grandadpublic:Father

    13、( ), money(100) int money;void use() ;class Son: public Fatherpublic:Son(): money(300)int money;void use();void main(void)Grandad A: Father B; Son C;cout “sizeof(A)=“sizeof(A)end1;cout “sizeof(B)=“sizeof(B)end1;cout “sizeof(C)=“sizeof(C)end1(分数:2.00)填空项 1:_41.数据库系统中实现各种数据管理功能的核心软件是 1。(分数:2.00)填空项 1:

    14、_42.如果表达式 x=y*z 中的“*”是作为成员函数重载的运算符,采用运算符函数调用格式,该表达式还可以表示为 【8】 。(分数:2.00)填空项 1:_43.设某循环队列的容量为 50,如果头指针 front=45(指向队头元素的前一位置),尾指针 rear=10(指向队尾元素),则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_44.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为 1。(分数:1.00)填空项 1:_45.函数重载要求重载的函数必须有和原函数一样的 【10】 。(分数:1.00)填空项 1:_46.C+中的模板分为

    15、函数模板和 1。(分数:2.00)填空项 1:_47.为了便于对照检查,测试用例应由输入数据和预期的 【4】 两部分组成。(分数:1.00)填空项 1:_48.数据库设计包括概念设计、 1 和物理设计。(分数:2.00)填空项 1:_49.以下程序的输出结果是 【7】 。#includeiostreamhvoid main()int a=0;a+ =(a=8) ;couta;(分数:1.00)填空项 1:_50.如果一个类中定义了成员对象,则该类的对象和成员对象先被初始化的是 【11】 。(分数:1.00)填空项 1:_二级 C+笔试-400 答案解析(总分:85.00,做题时间:90 分钟)

    16、一、选择题(总题数:35,分数:60.00)1.对于拷贝初始化构造函数和赋值操作的关系,正确的描述是( )。A拷贝初始化构造函数和赋值操作是完全一样的操作B进行赋值操作时,会调用类的构造函数C当调用拷贝初始化构造函数时,类的对象正在被建立并被初始化D拷贝初始化构造函数和赋值操作不能在同一个类中被同时定义(分数:1.00)A.B.C. D.解析:2.SQL 语言又称为A) 结构化定义语言 B) 结构化控制语言C) 结构化查询语言 D) 结构化操纵语言(分数:2.00)A.B.C. D.解析:解析 结构化查询语言(Structured Query Language,简称 SQL) 是集数据定义、数

    17、据操纵和数据控制功能于一体的数据库语言。3.结构化程序设计的三种结构是( )。A) 顺序结构、选择结构、转移结构 B) 分支结构、等价结构、循环结构C) 多分支结构、赋值结构、等价结构 D) 顺序结构、选择结构、循环结构(分数:2.00)A.B.C.D. 解析:解析 结构化程序设计的三种结构是顺序结构、选择结构、循环结构。4.有下列程序:#includeiostreamUsing namespace std;Class Amountint amount;public;Amount(int n=O):amount(n)Int getAmount()constreturn amount;Amoun

    18、t return;int main()Amount x(3),y(7);x+=y;coutx.getAmount()endl;return 0;己知程序的运行结果是 10,则横线处缺失的表达式是( )。A) *this B) this C) TestClass(char c)coutc;;class TestClassl:publicTestClasspublic:TestClassl(char c)coutc;int main()TestClassl d1(y);return 0;执行这个程序,屏幕上格显示输出( )。Ay Byx Cxy Dyy(分数:2.00)A.B.C. D.解析:解析

    19、 本题中类 TestClass 为基类,TestClass1 为 TestClass 的派生类。由 main 主函数入手,定义 TestClassl 类型的对象 dl,参数值为 y。TestClassl 类继承 TestClass,所以主函数中“TestClassldl(y);”语句首先调用“TestClass1 (char c)coutc;”然后调用基类中的“TestClass()coutx;”输出 x,然后执行“TestClass(charc)eoutc;”输出 y,即答案为“xy”。6.下列说法中错误的是( )。A公有继承时基类中的 public 成员在派生类中仍是 public 的B公

    20、有继承时基类中的 private 成员在派生类中仍是 private 的C私有继承时基类中的 public 成员在派生类中是 private 的D保护继承时基类中的 public 成员在派生类中是 protected 的(分数:2.00)A.B. C.D.解析:7.C+本身没有定义 I/O 操作,但 I/O 操作包含在 C+实现中。C+标准库 iostream 提供了基本的 I/O 类,它包括类 iostream 和( )。A) fstream B) ostream C) iostream D) cin(分数:2.00)A.B. C.D.解析:解析 C+中,istream 类提供了向流中插入数

    21、据的有关操作,ostream 类提供了从流中读取数据的有关操作。8.软件生命周期中所花费用最多的阶段是( )。A详细设计 B软件编码C软件测试 D软件维护(分数:2.00)A.B.C.D. 解析:9.下列关于对象初始化的叙述中,正确的是A) 定义对象的时候不能对对象进行初始化B) 定义对象之后可以显式地调用构造函数进行初始化C) 定义对象时将自动调用构造函数进行初始化D) 在一个类中必须显式地定义构造函数实现初始化(分数:2.00)A.B.C. D.解析:10.有以下语句,则对 a 数组元素的引用不正确的是(0i9)int a10=0,1,2,3,4,5,6,7,8,9,*p=a;A) ap-

    22、a B) *(它的数据元素的逻辑次序靠节点的指针来指示,不需要移动数据元素。但是链式存储结构也有不足之处:每个节点中的指针域需额外占用存储空间;链式存储结构是一种非随机存储结构。15.下列叙述中,正确的是A)用 E-R 图能够表示实体集间一对一的联系、一对多的联系和多对多的联系B)用 E-R 图只能表示实体集之间一对一的联系C)用 ER 图只能表示实体集之间一对多的联系D)用 ER 图表示的概念数据模型只能转换为关系数据模型(分数:1.00)A. B.C.D.解析:解析 本题主要考查了用 ER 图表示实体之间联系的方法。解题要点 两个实体之间的联系实际上是实体集间的函数关系,这种函数关系可以有

    23、下面几种,即一对一的联系、一对多(或多对一)的联系和多对多的联系;概念模型便于向各种模型转换。由于概念模型不依赖于具体的数据库管理系统,因此,容易向关系模型、网状模型和层次模型等各种模型转换。16.拷贝构造函数的参数一般是A) 某对象名 B) 某对象成员名C) 某对象的引用名 D) 指向对象的指针名(分数:1.00)A.B.C. D.解析:解析 C+语言中拷贝构造函数的参数一般是某个对象的引用名。17.下列程序的运行结果是#includeiostreamhclass Aint a;public:A( )a=0;A(int aa) a=aa;couta+;;void main( )A x,y(2

    24、),z(3);coutend1;A) 00 B) 23 C) 34 D) 25(分数:1.00)A.B. C.D.解析:解析 本题考查的是对构造函数的掌握,另外“+”运算符是右结合的,所以在进行输出的时候都是先把原来的输出后再自加 1。18.有如下程序: #includeiostream using namespaee std; int i=1; class Fun public: static int i; int value( ) return i-1; int value( )cons return i+1; ; int Fun:i=2; int main( ) int i=3; Fun

    25、 funl; const Fun fun2; _: return 0; 若程序的输出结果是: 123 则程序中下画线处遗漏的语句是 A) coutfunlvalue( )Fun:ifun2value( ); B) coutFun:ifunlvalue( )fun2value( ); C) coutfunlvalue( )fun2value( )Fun:i; D) coutfun2value( )Fun:ifunlvalue( );(分数:2.00)A. B.C.D.解析:解析 funl 是 FUN 的普通实例对象,而 fun2 是常对象,i 是 FUN 的静态成员。funl.value( )是

    26、调用成员函数 int value( )return i-1;,值为 1。Fun:i 是静态成员函数 i 的值,i 值不变为2,fun2 为常对象,只能调用常成员函数 int value( )constreturn i+1;,所以其返回值为 3。19.下面程序的运行结果为#includeiostreamhvoid main( )for(int a=0,x=0;! xa+)a+;coutaend1;A) 10 B) 11 C) 12 D) 0(分数:1.00)A.B.C. D.解析:解析 在进入最后一次循环时 a=10,在循环体内执行“a+;”后 a=11,执行完该次循环体计算for 循环的增量部

    27、分后 a=12 小于 10,循环结束。20.有如下程序:#include iostream#include iomarupusing namespace std;int main()coutsetw(10)setfill(x)setprecision(8)left;cout12.3456793_98765;return 0;若程厚的输出是 12.345679x98765xxxxx,则划线处缺失的部分是( )。Asetw(10) Bsetfill(x)Csetprecision(8) Dright(分数:2.00)A. B.C.D.解析:21.如果函数没有返回值,对于函数的返回值说明可以是( )

    28、。A) 可能没有返回值说明 B) 用 void 说明C) 用 const 说明 D) 返回值可以是任意类型(分数:2.00)A.B. C.D.解析:解析 如果函数没有返回值,则对于函数的返回值说明用 void。22.下列关于虚函数的说明中,正确的是( )。A从虚基类继承的函数都是虚函数 B虚函数不得是静态成员函数C只能通过指针或引用调用虚函数 D抽象类中的成员函数都是虚函数(分数:2.00)A.B. C.D.解析:23.下列关于模板的叙述中,错误的是( )。A模板声明中的第一个符号总是关键字 templateB在模板声明中用和括起来的部分是模板的形参表C类模板不能有数据成员D在一定条件下函数模

    29、板的实参可以省略(分数:2.00)A.B.C. D.解析:24.有以下程序#includeiostreamusing namespace std;class MyClasspublic:MyClass(int n)number =n; /拷贝构造函数MyClass(MyClassclass DatePublic:Date(int m=1,int y=0): month(m),year(y)void Print()coutmonth“/“yearend1;_operator+(const Dateprivate:int month, year;Date operator+(const Datey

    30、ear=d1.year+d2.year;month=d1.month+d2.month;year+=(month-1)12;month=(month-1)%12+1;return Date(month,year);void main()Date d1(3,2004),d2,d3(10);d2=d3+d1;d2.Print();(分数:2.00)填空项 1:_ (正确答案:friend Date)解析:解析 此题考查的是类与对象以及运算符的重载。题目中“+”重载函数的参数表中有两个参数,所以是作为友元函数重载,实现的功能是将参数对象中成员变量 month、year 进行相应对加。题中重载幽数的返

    31、回值类型是类 Date,所以应填入“friend Date”。38.请在如下程序中的空格处填写正确的语句; #includeiostream using namespaee std; cass Base public: void fun( )cout“Base fun“endl; ; class Derived:public Base public: void fun( ) _/调用基类的函数 fun( ) cout“Derived fun“endl; ;(分数:2.00)填空项 1:_ (正确答案:Base:fun( ))解析:解析 在派生类中显式调用基类的成员,一般格式为: 基类名:成员函

    32、数名( )39.在派生类中,对类对象成员,基类成员和非类对象成员的初始化程序是 【7】 。(分数:2.00)填空项 1:_ (正确答案:基类成员 类对象成员 非类对象成员)解析:解析 在派生类的初始化过程中,最先初始化的是基类对象,然后是其他类的对象成员,包括自身类对象的引用或指针,或其他类的对象,最后在是非类对象成员。析构的时候则反之。40.在下列基类的定义中,有无 virtual 修饰 use 成员函数的结果将不同,其原因是 【15】 。当 use()为虚拟函数时的程序执行结果: sizeof(A)=8sizeof(B)=12sizeof(C)=16当 use()非虚拟函数时的程序执行结果

    33、: sizeof(A)=4sizeof(B)=8sizeof(C)=12源程序如下:#include iostream. hclass Grandadpublic:Grandad(): money(10) int money;virtual void use() ,class Father: public Grandadpublic:Father( ), money(100) int money;void use() ;class Son: public Fatherpublic:Son(): money(300)int money;void use();void main(void)Gran

    34、dad A: Father B; Son C;cout “sizeof(A)=“sizeof(A)end1;cout “sizeof(B)=“sizeof(B)end1;cout “sizeof(C)=“sizeof(C)end1(分数:2.00)填空项 1:_ (正确答案:采用虚函数的每个派生类都含有一个指向虚函数表的指针,故多 4 字节。)解析:41.数据库系统中实现各种数据管理功能的核心软件是 1。(分数:2.00)填空项 1:_ (正确答案:数据库管理系统)解析:解析 数据库管理系统是数据库的管理机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等

    35、。42.如果表达式 x=y*z 中的“*”是作为成员函数重载的运算符,采用运算符函数调用格式,该表达式还可以表示为 【8】 。(分数:2.00)填空项 1:_ (正确答案:x=y.operator*(z))解析:43.设某循环队列的容量为 50,如果头指针 front=45(指向队头元素的前一位置),尾指针 rear=10(指向队尾元素),则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_ (正确答案:15。)解析:解析 队列个数=rear-front+容量。44.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为 1。(分数:1.00)填空

    36、项 1:_ (正确答案:上溢)解析:45.函数重载要求重载的函数必须有和原函数一样的 【10】 。(分数:1.00)填空项 1:_ (正确答案:函数名)解析:解析 重载函数的具体要求。解题要点 重载函数的函数名应和原函数一致。考点链接 重载函数的方式方法,重载函数的参数,重载函数的返回值。46.C+中的模板分为函数模板和 1。(分数:2.00)填空项 1:_ (正确答案:类模板)解析:解析 C+的模板分为函数模板和类模板。47.为了便于对照检查,测试用例应由输入数据和预期的 【4】 两部分组成。(分数:1.00)填空项 1:_ (正确答案:输出结果)解析:解析 本题主要考查测试的步骤。考点链接

    37、 测试的基本方法和步骤。48.数据库设计包括概念设计、 1 和物理设计。(分数:2.00)填空项 1:_ (正确答案:逻辑设计)解析:解析 数据库的设计过程大致分为 3 个步骤:概念设计、逻辑设计和物理设计。49.以下程序的输出结果是 【7】 。#includeiostreamhvoid main()int a=0;a+ =(a=8) ;couta;(分数:1.00)填空项 1:_ (正确答案:16)解析:解析 考查 C+赋值表达式的运用。解题要点 赋值表达式的值就是所赋值变量的值,本题中 a+=8 相当于 a=a+8,对表达式逐步进行求解:a+=(a=8)此时,a 的值由于赋值为 8,而不是 0a+=8a=a+8a=16考点链接 要掌握“+=”等相关运算符的用法。50.如果一个类中定义了成员对象,则该类的对象和成员对象先被初始化的是 【11】 。(分数:1.00)填空项 1:_ (正确答案:类的成员对象)解析:解析 C+类中成员对象初始化的顺序问题。【解题要点】C+中类的成员对象比类的对象先初始化。


    注意事项

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




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

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

    收起
    展开