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

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

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

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

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

    1、国家二级 C+机试(选择题)模拟试卷 123及答案解析(总分:80.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.算法的时间复杂度是指( )。(分数:2.00)A.算法的长度B.执行算法所需要的时间C.算法中的指令条数D.算法执行过程中所需要的基本运算次数2.以下数据结构中,属于非线性数据结构的是( )。(分数:2.00)A.,栈B.线性表C.队列D.二叉树3.数据结构中,与所使用的计算机无关的是数据的( )。(分数:2.00)A.存储结构B.物理结构C.逻辑结构D.线性结构4.内聚性是对模块功能强度的衡量,下列选项中,内聚性较弱的是( )。(分数:2.00)A.

    2、顺序内聚B.偶然内聚C.时间内聚D.逻辑内聚5.在关系中凡能惟一标识元组的最小属性集称为该表的键或码。二维表中可能有若干个键,它们称为该表的( )。(分数:2.00)A.连接码B.关系码C.外码D.候选码6.检查软件产品是否符合需求定义的过程称为 ( )。(分数:2.00)A.确认测试B.需求测试C.验证测试D.路径测试7.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是( )。(分数:2.00)A.控制流B.加工C.存储文件D.源和潭8.待排序的关键码序列为(15,20,9,30,67,65,45,90),要按关键码值递增的

    3、顺序排序,采取简单选择排序法,第一趟排序后关键码 15被放到第( )个位置。(分数:2.00)A.2B.3C.4D.59.对关系 S和关系 R进行集合运算,结果中既包含关系 S中的所有元组也包含关系 R中的所有元组,这样的集合运算称为( )。(分数:2.00)A.并运算B.交运算C.差运算D.除运算10.下列选项中,不属于数据管理员(DBA)职责的是( )。(分数:2.00)A.数据库维护B.数据库设计C.改善系统性能,提高系统效率D.数据类型转换11.假定 MyClass为一个类,则该类的拷贝构造函数的声明语句为( )。(分数:2.00)A.MyClass(MyClass x);B.MyCl

    4、ass(MyClassx);C.MyClass(x);D.MyClass(x);12.下列函数的功能是判断字符串 str是否对称,对称则返回 true,否则返回 false,则横线处应填上( )。Bool fun(ehar*str) int i=0,i=0; while(strD)j+; for(j-;iA.-B.C.D.(y)?(x):(y) void main() int i,j,k; i=10; j=15;k=MAX(i,j)*10; couta; result=fun(a); tout- B.C.D.(y)?(x):(y) void main() int i,j,k; i=10; j=

    5、15;k=MAX(i,j)*10; couty)?(x):(y)是当 x大于 y时取 x,否则取 y。当 i:10,j=15 时,“MAX(i,j)”的值为 15,所以“k=MAX(i,i)*10;”答案为:150。15.定义如下枚举类型 enumMonday,Tuesday,Wednesday,Thrusday,Friday=2; 表达式Wednesday=Friday的值是( )。(分数:2.00)A.falseB.true C.2D.异常解析:解析:enum枚举类型名枚举元素表;其中:关键词“enum”表示定义的是枚举类型,枚举类型名由标识符组成,而枚举元素表由枚举元素或枚举常量组成。本

    6、题中的枚举类型中的数据值Wednesdav为 2,而 Fridayr的值赋值为 2,所以判断 Wednesdayr等于 Fridav的表达式值为真,即true。16.以下程序运行后的输出结果是( )。 #include void main() char a=“abbcabbcabbc“; int i=0,j=0,k=0; while(ai) if(ai=a) j+; if(ai=b) k+; i+: couta; result=fun(a); toutresult=n;i+) p*=i; result+=p; return result; (分数:2.00)A.4B.8C.9 D.20解析:解

    7、析:由程序 main主函数入手,调用 fun函数获得返回值 result输出。题目中假定 a=3,即调用语句 fun(a)中的输入参数为 a,进入 fun函数,在 for循环中当 i小于等于 n,即输入参数 3时,循环 3次执行“p*=i;restllt+=p:”语句。即执行三次 p=p*i,result=restult+presult 的结果为 9 返回的 fun函数结果为 9,即“coutresultendl;”输出 9。18.下列关于指针的运算中,( )是非法的。(分数:2.00)A.两个指针在一定条件下,可以进行相等或不等的比较运算B.可以将一个空指针赋值给某个指针C.一个指针可以加上

    8、两个整数之差D.两个指针在一定条件下可以相加 解析:解析:指针变量如果指向一个数组的元素,则可以进行比较,所以 A)是正确的。指针变量的赋值就是将一个变量地址赋给一个指针变量。并且指针变量可以是空值,即该指针不指向任何变量。B)同样也是正确的。指针变量加减一个整数是将该指针变量的原值(是一个地址)和它指向的变量所占用的内存单元字节数相加或相减。即 C)也是正确的。如果两个指针指向同一个数组元素,两个指针是可以相减的,杯识两个指针之间的元素个数。但是它们是不可相加的。19.下面程序的输出结果为( )。 #include void main() int x; int y=x;变量引用 31=99;

    9、 cout“x=“xA.x=99 B.x=9C.x=0D.异常解析:解析:程序中的“int y=x:”语句中的“”引用运算符。y=x 语句可以理解为 y,具有 x的地址,所以 y的值 99,x 的值也是 99,所以答案是 x=99。20.下面程序输出的结果为( )。 #include void fun(int a,int b) int temp; temp=a; a=b; b=temp; void main() int m,n; m=1; n=2: fun(m,n); coutm“nA.12 B.21C.22D.程序有错误解析:解析:函数 fun中定义的参数 a和 b为形式参数,它们并不是实际

    10、存在的数据,只有在发生函数调用时才被分配内行空间,结束后,形参所占有的内存单元也被释放。并且函数 fun没有返回值,它做的交换操作,并不能影响实际参数 m和 n。所以输出值保持不变,仍然是 1和 2,即输出:12。21.存在定义 int a10,x,*pa;,若 pa=a0,下列的哪个选项和其他 3个选项不是等价的( ) ?(分数:2.00)A.x=*pa; B.x=*(a+1);C.x=*(pa+1);D.x=a1;解析:解析:选项 B)、C)、D)都是获取 a(1)元素,而选项 A)是获取 a(0)的元素。22.对数组名作函数的参数,下面描述正确的是( )。(分数:2.00)A.数组名作函

    11、数的参数,调用时将实参数组复制给形参数组B.数组名作函数的参数,主调函数和被调函数共用一段存储单元 C.数组名作参数时,形参定义的数组长度不能省略D.数组名作参数,不能改变主调函数中的数据解析:解析:数组作为参数实参传递的是数组的首地址。所以主函数和被调函数共用一段存储单元。23.关于静态成员的描述中,错误的是( )。(分数:2.00)A.静态成员可分为静态数据成员和静态成员函数B.静态数据成员定义后必须在类体内进行初始化C.静态数据成员初始化不使用其构造函数 D.静态数据成员函数中不能直接引用非静态成员解析:解析:可以在类的构造函数中对静态数据成员进行初始化。24.下列关于构造函数的描述中,

    12、错误的是( )。(分数:2.00)A.构造函数可以设置默认的参数B.构造函数在定义类对象时自动执行C.构造函数可以是内联函数D.构造函数不可以重载 解析:解析:在一个个类中可以定义多个构造函数,以便对类对象提供不同的初始化的方法,供用户选用。这些构造函数具有相同的名字,而参数的个数或参数的类型不相同。25.有以下程序,输出结果( )。 #include void main() static int b3=1,2,3,4,5,6;b02=12,b12=18; cout*b“t“t“*(b+1)“t“*(*(b+1)+2)“n“; coutb02+b12+b22A.1 4 4 18 30 B.1

    13、1 4 4 18C.4 4 18 1 1D.4 4 4 30 1解析:解析:本题 b是一个 33的二维数组:利用指针表示数组:*(*数组名-i)+j)*b 表示 b00元素,值是 1,*(b+1)表示是 b01的元素,值是 4。*(*(b+1)+2)表示 b12的元素,值是 18,b02+b12+b22之和是 30。26.下列程序的输出结果是( )。 #include using namespace std; void fun(intr) r*=2; int main() intn=50; fun(n); coutnA.0B.20C.50D.100 解析:解析:题中主程序中首先定义整型变量 n

    14、=50,然后调用函数 fun,实际参数为 n。函数 fun中参数为引用,为地址。即函数中形参的改变会影响实参的值,函数的功能是参数乘以 2。27.下列说法中错误的是( )。(分数:2.00)A.公有继承时基类中的 public成员在派生类中仍是 public的B.公有继承时基类中的 private成员在派生类中仍是 prirate的 C.私有继承时基类中的 public成员在派生类中是 private的D.保护继承时基类中的 public成员在派生类中是 protected的解析:解析:此题考查的是继承时基类成员属性改变。选项 B)中,公有继承时基类中的 private成员在派生类中不是 pr

    15、ivate的,而是不可访问的。所以选项 B)错误;其他选项叙述均正确。28.多继承的构造顺序可分为如下四步: 所有非虚基类的构造函数按照它们被继承的顺序构造 所有虚基类的构造函数按照它们被继承的顺序构造 所有子对象的构造函数按照它们声明的顺序构造 派生类自己的构造函数体 这四个步骤的正确顺序是( )。(分数:2.00)A.B.C. D.解析:解析:多继承派生类的构造顺序是:首先调用虚基类的构造函数,然后调用非虚基类的构造函数按照它们被继承的顺序构造,其次调用子对象的构造函数,最后是派生类构造函数中的内容。29.下面关于构造函数和析构函数的描述中,错误的是( )。(分数:2.00)A.析构函数可

    16、以声明为虚函数B.对虚析构函数的调用可以采用动态联编C.一个类的虚函数仅对派生类中重定义的函数起作用,对其他函数没有影响D.构造函数可以声明为虚函数 解析:解析:析构函数可以声明为虚函数,但是构造函数不能声明为虚函数;类的虚函数仅对派生类中重定义的函数起作用,对其他函数没有影响。30.设有以下定义和程序: #include class A1 public: void show1() cout“class A1“class A2“class A1“A.obj1showl();B.obj2show1();C.obj3showl(); D.obj2show2();解析:解析:由于 classA3:p

    17、rotectedA2,所以类 A3的对象 obi3不能直接访问基类 A1的成员函数showlf),所以选项 C)是错误的;其他选项均有访问的权限,正确。31.下列关于运算符重载的描述中,正确的是( )。(分数:2.00)A.运算符重载可以改变运算符的操作数的个数B.运算符重载可以改变优先级C.运算符重载可以改变结合性D.运算符重载不可以改变语法结构 解析:解析:重载的运算符仍要保持其原来的操作数、优先级和结合性不变。32.下面程序的输出结果是( )。 #include #include using namespace std; class point private: double x: do

    18、uble y; public: point(double a,double b) x=a; y=b; friend double distances(point a,point b); ; double distances(point a,point b) return sqrt(ax-bx)*(ax-bx)+(ay-by)*(ay-by); int main() point p1(1,2); point p2(5,2); coutA.2B.4 C.8D.16解析:解析:分析题目,最终要实现的结果是 sqrt(axbx)*(axbx)+(ayby)*(ayby),其中的 ax 和 ay 分别指

    19、 p1(1,2)中的 1和 2。这样容易得到结果是(1-5)*(1-5)+(2-2)*(2-2)=16,再开方得到结果为 4。33.有以下程序: #include using namespace std; class R public: R(int r1,int r2) R1=r1; R2=r2; void prim(); void printoconst; private: int R1,R2; ; void R:print() coutR1“,“R2R1“,“R2A.5,4B.4,5C.20,52 D.52,20解析:解析:此题中,语句 R a(5,4)调用构造函数 R(int r1,in

    20、t r2),但未有输出结果;bprint();调用常成员函数(因为 b是常对象)void print()const,输出结果是 20,52。34.下列程序的输出结果是( )。 #include using namespace std; template T fun(T a,T b)return(a=b)?a:b;) int main() coutfun(3,6),fun(314F,628F)A.0,314B.3,314 C.3,3D.314,314解析:解析:此函数模板的功能是输出 a、b 两数中较小的那个数。(3,6)输出 3,(314F,628F)输出 3。14。35.关于模板,下列说法不

    21、正确的是( )。(分数:2.00)A.用类模板定义一个对象时,不能省略实参B.类模板只能有虚拟类型参数 C.类模板本身在编译中不会生成任何代码D.类模板的成员函数都是模板函数解析:解析:类模板不是一个实实在在的类,本身在编译中不会生成任何代码;用类模板定义一个对象时,不能省略实参:类模板的成员函数都是模板函数。C+中可以为类模板的参数设置默认值,所以选项 B)错误。36.如果一个模板声明列出了多个参数,则每个参数之间必须使用逗号隔开,每个参数都必须使用( )关键字来修饰。(分数:2.00)A.constB.staticC.voidD.class 解析:解析:如果一个模板声明列出了多个参数,则每

    22、个参数之间必须使用逗号隔开,每个参数都必须使用 class关键字来修饰。37.下列关于 this指针的叙述中,正确的是( )。(分数:2.00)A.this指针是一个隐含指针,它隐含于类的成员函数中B.只有在使用 this时,系统才会将对象的地址赋值给 thisC.类的友元函数也有 this指针D.this指针表示了成员函数当前操作的数据所属的对象 解析:解析:this 指针是成员函数所属对象的指针,它指向类对象的地址;它隐含于每个类的非静态成员函数中;this 指针只能在类的成员函数中使用,它指向该成员函数被调用的对象;静态成员函数没有this指针,因为类中只有一个静态成员函数实例,使用 t

    23、his指针无意义。38.下列有关函数重载的叙述中,错误的是( )。(分数:2.00)A.函数重载就是用相同的函数名定义多个函数B.重载函数的参数列表必须不同C.重载函数的返回值类型必须不同 D.重载函数的参数可以带有默认值解析:解析:此题考查的是函数重载的概念。在 C+语言中,允许定义一系列函数名相同,但形参的个数和类型不完全相同的函数,即函数的重载。重载函数对返回值类型不做要求,返回值类型也不参与区分函数的重载形式。故选项 C)错误。39.对于一个类定义,下列叙述中错误的是( )。(分数:2.00)A.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数B.如果没有定义缺省的构造函数,编译

    24、器将一定生成一个缺省的构造函数 C.如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数D.如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数解析:解析:此题考查的是构造函数。如果一个类中没有定义任何构造函数,编译器将生成一个不带参数的公有缺省构造函数。但只要定义了一个任意的构造函数,就不会生成缺省构造函数了。40.下列关于派生类构造函数和析构函数的说法中,错误的是( )。(分数:2.00)A.派生类的构造函数会隐含调用基类的构造函数B.如果基类中没有缺省构造函数,那么派生类必须定义构造函数C.在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数D.在撤销派生类对象时,先调用基类的析构函数,再调用派生类的析构函数 解析:解析:此题考查的是派生类的构造函数和析构函数。在撤销派生类对象时,析构函数的执行过程和构造函数严格相反,即:对派生类新增普通成员进行清理;调用成员对象析构函数,调用基类析构函数对基类进行清理。


    注意事项

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




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

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

    收起
    展开