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

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

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

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

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

    1、国家二级(C+)机试模拟试卷 165 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下列关于栈叙述正确的是( )。(分数:2.00)A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.栈底元素最先被删除2.下列叙述中正确的是( )。(分数:2.00)A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.以上说法都不正确3.某二叉树共有 7 个结点,其中叶子结点只有 1 个,则该二叉树的深度

    2、为(假设根结点在第 1 层)( )。(分数:2.00)A.3B.4C.6D.74.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是( )。(分数:2.00)A.学生成绩管理系统B.C 语言编译程序C.UNIX 操作系统D.数据库管理系统5.结构化程序所要求的基本结构不包括( )。(分数:2.00)A.顺序结构B.GOTO 跳转C.选择(分支)结构D.重复(循环)结构6.下面描述中错误的是( )。(分数:2.00)A.系统总体结构图支持软件系统的详细设计B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD 图是软件详

    3、细设计的表示工具7.负责数据库中查询操作的数据库语言是( )。(分数:2.00)A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言8.一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是( )。(分数:2.00)A.1:1 联系B.1:m 联系C.m:1 联系D.m:n 联系9.有三个关系 R、S 和 T 如下: (分数:2.00)A.自然连接B.并C.交D.差10.定义无符号整数类为 UInt,下面可以作为类 UInt 实例化值的是( )。(分数:2.00)A.-369B.369C.0369D.整数集合1,2,3,4,511.C+语言对 C 语言做了很多

    4、改进,C+语言相对于 C 语言的最根本的变化是( )。(分数:2.00)A.增加了一些新的运算符B.允许函数重载,并允许设置默认参数C.规定函数说明符必须用原型D.引进了类和对象的概念12.下列( )是 C+语言的有效标识符。(分数:2.00)A.No1B.No1C.12345D.int13.设有定义 int x;float y;,则 10+x+y 值的数据类型是( )。(分数:2.00)A.intB.doubleC.floatD.不确定14.下列程序的执行结果为( )。#includeiostreamhvoid main()int a=3,b=0;int*p=&a;b=+a+:cout*p“

    5、,“bendl;(分数:2.00)A.3,4B.4,3C.3,4D.4,415.下面程序的运行结果为( )。#includeiostreamhvoid main()for(int a=0,x=0;!x&a=10;a+)a+;coutaendl;(分数:2.00)A.10B.11C.12D.016.下面有关 for 循环的正确描述是( )。(分数:2.00)A.for 循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.在 for 循环中,不能用 break 语句跳出循环体D.在 for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来17.以下程序中

    6、调用 cin 函数给变量 a 输入数值的方法是错误的,其错误原因是( )。#includeiostreamhvoid main()int*p,*q,a,b;p=&a;cout“input a:“:cinp;(分数:2.00)A.*p 表示的是指针变量 p 的地址B.p 表示的是变量 a 的地址,而不是变量 a 的值C.*p 表示的是指针变量 P 的值D.*P 只能用来说明 P 是一个指针变量18.假定 int 类型变量占用两个字节,其有定义 int x10=0,2,4;,则数组 x 在内存中所占字节数是( )。(分数:2.00)A.3B.6C.10D.2019.下列选项,不正确的是( )。(分

    7、数:2.00)A.for(int a=1;a=10;a+);B.int a=1; do a+: while(a=10);C.int a=1; while(a=10) a+; D.for(int a=1;a=10;a+)a+;20.下面关于数组的初始化正确的是( )。(分数: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,c21.下列程序的输出结果为( )。#includeiostreamhvoid main()char*a=“hello“,“the“,“world“;char*pa=a

    8、:pa+;cout*paendl;(分数:2.00)A.helloB.theC.woddD.hellotheworld22.决定 C+语言中函数的返回值类型的是( )。(分数:2.00)A.return 语句中的表达式类型B.调用该函数时系统随机产生的类型C.调用该函数时的主调用函数类型D.在定义该函数时所指定的数据类型23.有以下程序:#includeiostreamhvoid fun(int a,int b,int c)a=456,b=567,c=678;void main()int x=10,y=20,z=30;fun(x,y,z);coutx,y,zendl;输出结果是( )。(分数:

    9、2.00)A.30,20,10B.1020,30C.456,567,678D.678,567,45624.以下叙述正确的是( )。(分数:2.00)A.函数可以嵌套定义但不能嵌套调用B.函数既可以嵌套调用也可以嵌套定义C.函数既不可以嵌套定义也不可以嵌套调用D.函数可以嵌套调用但不可以嵌套定义25.下列程序的输出结果是( )。#includeiostreamhint min(int a,int b)if(ab)return a;else return b;return0;void main()coutmin(1,min(2,3)endl;(分数:2.00)A.0B.1C.2D.326.下列程序

    10、的运行结果为( )。#includeiostreamhvoid print(double a)cout+a:void print(int a,int b)coutba:void main()print(12);cout“ “;print(3,4);(分数:2.00)A.12 34B.22 34C.12 43D.22 4327.对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是( )。(分数:2.00)A.公有类型B.私有类型C.保护类型D.友元类型28.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是( )。(分数:

    11、2.00)A.友元函数B.虚函数C.构造函数D.析构函数29.类的析构函数的作用是( )。(分数:2.00)A.一般成员函数的初始化B.类的初始化C.对象的初始化D.删除类创建的对象30.下列说法正确的是( )。(分数:2.00)A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字 inline 定义31.下面对静态数据成员的描述中,正确的是( )。(分数:2.00)A.静态数据成员可以在类体内进行初始化B.静态数据成员不可以被类的对象调用C.静态

    12、数据成员不能受 private 控制符的作用D.静态数据成员可以直接用类名调用32.下面对于友元函数描述正确的是( )。(分数:2.00)A.友元函数的实现必须在类的内部定义B.友元函数是类的成员函数C.友元函数破坏了类的封装性和隐藏性D.友元函数不能访问类的私有成员33.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是( )。(分数:2.00)A.派生类的对象可以赋给基类的对象B.派生类的对象可以初始化基类的引用C.派生类的对象可以直接访问基类中的成员D.派生类的对象的地址可以赋给指向基类的指针34.下面程序的运行结果为( )。#includeiostreamhclass

    13、 Apublic:A()cout“1“;A()cout“2“;class B:public Apublic:B()cout“3“;B()cout“4“;void main()B b;(分数:2.00)A.1234B.1324C.1342D.314235.下列关于虚基类的描述,错误的是( )。(分数:2.00)A.设置虚基类的目的是为了消除二义性B.虚基类的构造函数在非虚基类之后调用C.若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用D.若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数36.下列关于多态性的描述,错误的是( )。(分数:2.00)A.

    14、C+语言中的多态性分为编译时的多态性和运行时的多态性B.编译时的多态性可通过函数重载实现C.运行时的多态性可通过模板和虚函数实现D.实现运行时多态性的机制称为动态绑定37.下列运算符中,在 C+语言中不能重载的是( )。(分数:2.00)A.*B.=C.:D.38.当使用 fstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。(分数:2.00)A.ios:inB.ios:outC.ios:in|ios:outD.以上都不对39.下列程序的运行结果是( )。#includeiostreamhclass Aint a;public:A()a=0;A(int aa)a=

    15、aa;couta+:;void main()A x,y(2),z(3);coutendl;(分数:2.00)A.00B.23C.34D.2540.下面程序的输出结果是( )。#includeiostreamhclass exampleint a;public:example(int b)a=b+;void print()a=a+1;couta“ “;void print()constcouta“ “;void main()example x(3);const example y(2);xprint();yprint();(分数:2.00)A.2 2B.4 3C.4 2D.3 2二、基本操作题(

    16、总题数:1,分数:2.00)41.请使用 VC6 或使用【答题】菜单打开考生文件夹 proj1 下的工程 proj1,其中有枚举 DOGCOLOR、狗类Dog 和主函数 main 的定义。程序中位于每个“ERROR*found*”下的语句行有错误,请加以改正。改正后程序的输出结果应该是:There is a white dog named HohoThere is a black dog named HahaThere is a motley dog named Hihi注意:只修改每个ERROR*found*下的那一行,不要改动程序中的其他内容。#includeiostreamusing n

    17、amespace std;狗的颜色:黑、白、黄、褐、花、其他 enum DOCCOLORBLACK,WHITE,YELLOW,BROWN,PIEBALD,OTHER;class Dog狗类DOGCOLOR color;char name20;static int count;puMic:Dog(char name,DOGCOLOR color)strcpy(this-name,name);ERROR*found*strcpy(this-color,color);DOGCOLOR getColor()constreturn color;ERROR*found*const char*getName

    18、()constlretulnlIInttnl;const char*getColorString()constswitch(color)case BLACK:return“black“;case WHITE:return“white“;case YELLOW:return“yellow“;case BROWN:return“brown“;case PIEBALD:return“piebald“;return“motley“;void show()constcout“There is a“getColorString()“dog named“nameendl;int main()ERROR*fo

    19、und*Dog dog1(“Hoho“,WHITE),dos2(“Haha“,BLACK);dog3(“Hihi“,OTHER);dog1show();dos2show();dog3show();return0;(分数:2.00)_三、简单应用题(总题数:1,分数:2.00)42.请使用 VC6 或使用【答题】菜单打开考生文件夹 proj2 下的工程 proj2,其中有矩阵基类MatrixBase、矩阵类 Matrix 和单位阵 unitMatrix 的定义,还有 main 函数的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:1 2 3 4 52 3 4

    20、 5 63 4 5 6 71 0 0 0 0 00 1 0 0 0 00 0 1 0 0 00 0 0 1 0 00 0 0 0 1 00 0 0 0 0 1 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“*found*”。#includeiostreamusing namespace std;矩阵基础类,一个抽象类 class MatrixBaseint rows,cols;public:MatrixBase(int rows,int cols):rows(rows),cols(cols)int getRows()constreturn rows;矩阵行数 i

    21、nt getCols()constreturn cols;矩阵列数 virtual double getElement(int r,int c)const=O;取第 i 个元素的值 void show()const分行显示矩阵中所有元素 for(int i=0;irows;i+)coutendl:for(int j=0;jcols;j+)*found*cout_“ “;矩阵类 class Matrix:public MatrixBasedouble*val:public:*found*Matrix(int rows,int cols,double m=NULL):_*found*val=_;f

    22、or(int i=0;irows*cols;i+)vali=(m=NULL?00:mi);Matrix()deleteval;double getElement(int r,int c)constreturn valr*getCols()+c;单位阵(主对角线元素都是 1,其余元素都是 0 的方阵)类 class UnitMatrix:public MatrixBasepublic:UnitMatrix(int rows):MatrixBase(rows,rows)单位阵行数列数相同 double getElement(int r,int c)const*found*if(_)return10

    23、;return00;int main()MatrixBase*m:double d5=1,2,3,4,5,2,3,4,5,6,3,4,5,6,7;m=new Matrix(3,5,(double*)d);m-show();delete m;coutendl:m=new UnitMatrix(6);m-show();delete m;return0;(分数:2.00)_四、综合应用题(总题数:1,分数:2.00)43.请使用 VC6 或使用【答题】菜单打开考生文件夹 proj3 下的工程 proj3,其中声明的 CDeepCopy 是一个用于表示矩阵的类。请编写这个类的赋值运算符成员函数 ope

    24、rator=,以实现深层复制。要求:补充编制的内容写在“*333*”与“*666*”之间。不得修改程序的其他部分。注意:程序最后将结果输出到文件 outdat 中。输出函数 writeToFile 已经编译为 obj文件,并且在本程序中调用。CDeepCopyh#includeiostream#includestringusing namespace std;class CDeepCopypublic:int n;动态数组的元素个数 int *p;动态数组首地址 CDeepCopy(int);CDeepCopy();CDeepCopy& operator=(const CDeepCopy&r)

    25、;赋值运算符函数;void writeToFile(char*);maincpp#include“CDeepCopyh“CDeepCopy:CDeepCopy()deletep;CDeepCopy:CDeepCopy(int k)n=k;p=new intn;构造函数实现 CDeepCopy& CDeepCopy:operator=(const CDeepCopy& r)赋值运算符函数实现*333*666*int main()CDeepCopy a(2),d(3);ap0=1;dp0=666;对象 a,d 数组元素的赋值CDeepCopy b(3);调用赋值运算符函数ap0=88;b=a;co

    26、utbp0;显示内层局部对象的数组元素coutdp0;显示 d数组元素 ap0的值 cout“d fade away;n“;coutap0;显示 a 数组元素 ap0的值 writeToFile(“ “);return0;(分数:2.00)_国家二级(C+)机试模拟试卷 165 答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下列关于栈叙述正确的是( )。(分数:2.00)A.栈顶元素最先能被删除 B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.栈底元素最先被删除解析:解析:栈是先进后出的数据结构,所以栈顶元素最后人栈却最先被删除。栈底

    27、元素最先入栈却最后被删除。所以选择 A。2.下列叙述中正确的是( )。(分数:2.00)A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化 D.以上说法都不正确解析:解析:栈是先进后出的数据结构,在整个过程中,栈底指针不变,人栈与出栈操作均由栈顶指针的变化来操作,所以选择 C。3.某二叉树共有 7 个结点,其中叶子结点只有 1 个,则该二叉树的深度为(假设根结点在第 1 层)( )。(分数:2.00)A.3B.4C.6D.7 解析:解析:根据二叉树的基本性质 3:在任意

    28、一棵二叉树中,度为 0 的叶子结点总比度为 2 的结点多一个,所以本题中度为 2 的结点为 1-1=0 个,所以可以知道本题目中的二叉树的每一个结点都有一个分支,所以共 7 个结点共 7 层,即度为 7。4.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是( )。(分数:2.00)A.学生成绩管理系统 B.C 语言编译程序C.UNIX 操作系统D.数据库管理系统解析:解析:软件按功能可以分为:应用软件、系统软件、支撑软件。操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件。所以 B、C、D 都是系统软件,只有 A 是应用软件。5.结构化程序所

    29、要求的基本结构不包括( )。(分数:2.00)A.顺序结构B.GOTO 跳转 C.选择(分支)结构D.重复(循环)结构解析:解析:1966 年 Boehm 和 Jacopini 证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。6.下面描述中错误的是( )。(分数:2.00)A.系统总体结构图支持软件系统的详细设计 B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD 图是软件详细设计的表示工具解析:解析:详细设计的任务是为软件结构图中而非总体结构图中的每一个模块确定实现算法和局部数据结构,用某种

    30、选定的表达工具表示算法和数据结构的细节,所以 A 错误。7.负责数据库中查询操作的数据库语言是( )。(分数:2.00)A.数据定义语言B.数据管理语言C.数据操纵语言 D.数据控制语言解析:解析:数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,包括查询及增、删、改等操作;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。8.一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是( )。(分数:2.00)A.1:1 联系B.1:m 联系C.m:1 联系D.m:n 联系 解析:解析:因为一个教师可讲授多门课程,

    31、而一门课程又能由多个老师讲授,所以他们之间是多对多的关系,可以表示为 m:n。9.有三个关系 R、S 和 T 如下: (分数:2.00)A.自然连接B.并C.交D.差 解析:解析:关系 T 中的元组是关系 R 中有而关系 s 中没有的元组的集合,即从关系 R 中除去与关系 S 中相同元组后得到的关系 T。所以做的是差的运算。10.定义无符号整数类为 UInt,下面可以作为类 UInt 实例化值的是( )。(分数:2.00)A.-369B.369 C.0369D.整数集合1,2,3,4,5解析:解析:只有 B 选项中 369 可以用无符号整数来表示和存储。A 选项中-369 有负号,选项 C 中

    32、0369 是小数都不能用无符号整数类存储。选项 D 是一个整数集合得用数组来存储。11.C+语言对 C 语言做了很多改进,C+语言相对于 C 语言的最根本的变化是( )。(分数:2.00)A.增加了一些新的运算符B.允许函数重载,并允许设置默认参数C.规定函数说明符必须用原型D.引进了类和对象的概念 解析:解析:C+语言最重要的特点是其为一种面向对象的程序设计语言,但是 C+语言也包含了 C 语言的全部特征。12.下列( )是 C+语言的有效标识符。(分数:2.00)A.No1 B.No1C.12345D.int解析:解析:标识符是一个以字母或下画线开始的,由字母、下画线和数字组成的字符串,标

    33、识符不能与任意关键字同名。13.设有定义 int x;float y;,则 10+x+y 值的数据类型是( )。(分数:2.00)A.intB.doubleC.float D.不确定解析:解析:由算术运算符组成的表达式中,若含有不同类型的操作数,则系统隐含地将低类型转化为高类型,由低至高的顺序为 intfloatdouble。14.下列程序的执行结果为( )。#includeiostreamhvoid main()int a=3,b=0;int*p=&a;b=+a+:cout*p“,“bendl;(分数:2.00)A.3,4B.4,3 C.3,4D.4,4解析:解析:木 p 为所指对象 a 的

    34、值,语句“b=+a+;”等价于“b=b+a;a=a+1;”。15.下面程序的运行结果为( )。#includeiostreamhvoid main()for(int a=0,x=0;!x&a=10;a+)a+;coutaendl;(分数:2.00)A.10B.11C.12 D.0解析:解析:在进入最后一次循环时 a=10,在循环体内执行“a+;”后 a=11,执行完该次循环体计算for 循环的增量部分后 a=12 小于 10,循环结束。16.下面有关 for 循环的正确描述是( )。(分数:2.00)A.for 循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式

    35、C.在 for 循环中,不能用 break 语句跳出循环体D.在 for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 解析:解析:选项 A 中 for 循环可以用于循环次数不确定的情况;选项 B 中 for 循环是先判断表达式,后执行循环体语句;选项 C 中 for 循环可以用 break 语句跳出循环体,从而接着执行循环体后面的语句。17.以下程序中调用 cin 函数给变量 a 输入数值的方法是错误的,其错误原因是( )。#includeiostreamhvoid main()int*p,*q,a,b;p=&a;cout“input a:“:cinp;(分数:2.00)A.*

    36、p 表示的是指针变量 p 的地址B.p 表示的是变量 a 的地址,而不是变量 a 的值 C.*p 表示的是指针变量 P 的值D.*P 只能用来说明 P 是一个指针变量解析:解析:p 表示的是变量 a 的地址,定义后*p 表示的是变量 a 的值。18.假定 int 类型变量占用两个字节,其有定义 int x10=0,2,4;,则数组 x 在内存中所占字节数是( )。(分数:2.00)A.3B.6C.10D.20 解析:解析:x 数组共有 10 个元素,在花括号内只提供 3 个初值,这表示只给前面的 3 个成员赋值,后7 个元素的值为 0,所以,一共有 20 个字节。19.下列选项,不正确的是(

    37、)。(分数:2.00)A.for(int a=1;a=10;a+);B.int a=1; do a+: while(a=10); C.int a=1; while(a=10) a+; D.for(int a=1;a=10;a+)a+;解析:解析:本题考查的是基本循环语句的使用,选项 A,选项 C 和选项 D 都为正确的形式,在选项 B 中的 while(a=10)后缺少结束符分号“;”。20.下面关于数组的初始化正确的是( )。(分数:2.00)A.char str=a,b,c B.char str2=a,b,cC.char str23=a,b,c,d,e,fD.char str()=a,b,

    38、c解析:解析:本题考查的是字符数组的初始化。选项 B 中用 3 个元素初始化大小为 2 的数组,越界了;选项 C 中应该是 2 行 3 列的数组,题中使用 3 行 2 列初始化;选项 D 中数组合后应用方括号。21.下列程序的输出结果为( )。#includeiostreamhvoid main()char*a=“hello“,“the“,“world“;char*pa=a:pa+;cout*paendl;(分数:2.00)A.helloB.the C.woddD.hellotheworld解析:解析:本题主要考查的是指针数组和指向指针的指针之间的关系,其中 a 是指针数组,pa 是指向指针数

    39、组行的指针,所以 pa 自加 1 相当于指向下一行。22.决定 C+语言中函数的返回值类型的是( )。(分数:2.00)A.return 语句中的表达式类型B.调用该函数时系统随机产生的类型C.调用该函数时的主调用函数类型D.在定义该函数时所指定的数据类型 解析:解析:C+语言中,在定义该函数时所指定的数据类型决定函数的返回值类型。23.有以下程序:#includeiostreamhvoid fun(int a,int b,int c)a=456,b=567,c=678;void main()int x=10,y=20,z=30;fun(x,y,z);coutx,y,zendl;输出结果是(

    40、)。(分数:2.00)A.30,20,10B.1020,30 C.456,567,678D.678,567,456解析:解析:本题考查函数中变量的作用范围,在主函数中给变量 x、y、z 赋值,然后将其作为实参传递给了函数 fun(),虽然在函数 fun()中改变了这 3 个变量的值,但只是同名的局部变量,不影响函数中变量的值,所以在调用函数 fun()结束后,主函数 3 个变量的值未改变。24.以下叙述正确的是( )。(分数:2.00)A.函数可以嵌套定义但不能嵌套调用B.函数既可以嵌套调用也可以嵌套定义C.函数既不可以嵌套定义也不可以嵌套调用D.函数可以嵌套调用但不可以嵌套定义 解析:解析:

    41、在 C+语言中,所有的函数都是平行的,即在定义函数时是互相独立的,一个函数并不从属于另一个函数,即函数不能嵌套定义,但可以互相调用。但是不能调用 main()函数。25.下列程序的输出结果是( )。#includeiostreamhint min(int a,int b)if(ab)return a;else return b;return0;void main()coutmin(1,min(2,3)endl;(分数:2.00)A.0B.1 C.2D.3解析:解析:本题考查的是函数的调用,第一次调用 min(2,3),因为 23,所以返回值为 2,第二次调用 min(1,2),因为 12,所以

    42、返回 1。26.下列程序的运行结果为( )。#includeiostreamhvoid print(double a)cout+a:void print(int a,int b)coutba:void main()print(12);cout“ “;print(3,4);(分数:2.00)A.12 34B.22 34C.12 43D.22 43 解析:解析:本题考查的是对重载函数的掌握,因为+a 是右结合的,所以 a 先自加 1 再输出,即为22,之后调用函数 print(int a,int b)输出 b 和 a,即 43。27.对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列

    43、不是访问控制属性的是( )。(分数:2.00)A.公有类型B.私有类型C.保护类型D.友元类型 解析:解析:所谓的访问控制只包含公有类型、私有类型和保护类型 3 种,友元可以是一个函数,也可以是一个类。28.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是( )。(分数:2.00)A.友元函数B.虚函数C.构造函数 D.析构函数解析:解析:构造函数在创建对象时系统自动调用,其功能是使用给定的值将对象初始化。29.类的析构函数的作用是( )。(分数:2.00)A.一般成员函数的初始化B.类的初始化C.对象的初始化D.删除类创建的对象 解析:解析:析构函

    44、数就是用来释放对象的,它的调用完成之后,对象也就消失了,相应的内存空间也被释放了。30.下列说法正确的是( )。(分数:2.00)A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字 inline 定义解析:解析:本题考查的是内联函数的定义,引入内联函数是为了解决程序中函数调用的效率问题,是以目标代码的增加为代价换取时间的节省;一般函数在运行时被调用,而调用的内联函数在编译时就被替代了,如果不加 inline 关键字,则编译器会将在类说明部分定义

    45、的任何函数都被认定为内联函数。31.下面对静态数据成员的描述中,正确的是( )。(分数:2.00)A.静态数据成员可以在类体内进行初始化B.静态数据成员不可以被类的对象调用C.静态数据成员不能受 private 控制符的作用D.静态数据成员可以直接用类名调用 解析:解析:静态数据成员必须在类体外初始化,它是类的所有对象的共有成员,需要使用类名调用,静态数据成员的初始化与权限控制无关。32.下面对于友元函数描述正确的是( )。(分数:2.00)A.友元函数的实现必须在类的内部定义B.友元函数是类的成员函数C.友元函数破坏了类的封装性和隐藏性 D.友元函数不能访问类的私有成员解析:解析:友元函数的定义既可以在类内部进行,也可以在类外部进行。它提高了程序的运行效率,但破坏了类的封装性和隐藏性,使得类的非成品函数可以访问类的私有成员。33.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是( )。(分数:2.00)A.派生类的对象可以赋给基类的对象B.派生类的对象可以初始化基类的引用C.派生类的对象可以直接访问基类中的成员 D.派生类的对象的地址可以赋给指向基类的指针解


    注意事项

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




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

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

    收起
    展开