ImageVerifierCode 换一换
格式:DOC , 页数:15 ,大小:85.50KB ,
资源ID:1324736      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1324736.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

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

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

1、二级 C+笔试 325 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.对于以下带参数的 main( )函数的第二形参,void main(int argc,_),不可能的形式是(分数:2.00)A.char*argvB.char argvC.char*aD.char*m2.下列程序的输出结果是 main( ) int x=1,a=0,b=0; switch(x) case 0:b+; case 1:a+; case 2:a+;b+; cout“a=“a“b=“bendl; (分数:2.00)A.a=2 b=1B.a=1 b=1C.a

2、=1 b=0D.a=2 b=23.以下程序的输出结果是 int a,b; void fun( ) a=100;b=200;) main( ) int a=5,b=7; fun( ); coutabendl; (分数:2.00)A.100200B.57C.200100D.754.最简单的交换排序方法是(分数:2.00)A.快速排序B.选择排序C.堆排序D.冒泡排序5.软件开发的结构生命周期法的基本假定是认为软件需求能做到(分数:2.00)A.严格定义B.初步定义C.早期冻结D.动态改变6.能保证对所有的参数能够结束的递归函数是(分数:2.00)A.int f(int if(n1)return 1

3、;else return n*f(n+1);B.int f(int if(n1)return 1;else return n*f(n-1);C.int f(int if(abs(1)return 1;else return n*f(n/2);D.int f(int if(n1)return 1;else return n*f(n*2);)7.如果表达式- -x/y 中的“- -”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可以表示为(分数:2.00)A.operator /(operator- -( ),;B.operator /(operator- -(,;C.op

4、erator- -( ).Operator /(;D.operator /(operator- -();8.有以下程序: #includeiostream using namespace std; int main( ) int x=15; while(x10 if(x/3) x+; break; coutxendl; return 0; 执行后的输出结果是(分数:2.00)A.15B.16C.17D.189.有关构造函数的叙述不正确的是(分数:2.00)A.构造函数名必须和类名一致B.构造函数在定义对象时自动执行C.构造函数无任何函数类型D.在一个类中构造函数有且仅有一个10.详细设计的结果

5、基本决定了程序最终的(分数:2.00)A.代码的规模B.运行速度C.代码质量D.可维护性11.需求分析阶段的任务是确定(分数:2.00)A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能12.假定 MyClass 为一个类,则该类的拷贝构造函数的声明语句为(分数:2.00)A.Myclass cout“a=“a“b=“cendl; (分数:2.00)A.a=% b=%5B.a=2 b=5C.a=d b=dD.a=%d b=%d18.下列说法中不正确的是(分数:2.00)A.数据库减少了数据冗余B.数据库中的数据可以共享C.数据库避免了一切数据的重复D.数据库具有较高的数据独立性1

6、9.设有语句 int n,m; char a5,b; cinnamb; 为了分别将 10 和 20 分别赋给 n 和m,look 赋给 a,t 赋给 b,则正确的输入为(分数:2.00)A.10“look“ 20tCRB.10“look“10C.10 look 20 tD.10CRlook20CRtCR20.若已定义 int a=1,2,3,4,5,6,7,8,9,10,p=a,i=5; 则对数组元素的不正确的引用是(分数:2.00)A.ap-aB.*( y=3*x-4; return y; (分数:2.00)A.intB.不确定C.voidD.float22.以下循环体的执行次数是 main

7、( ) int i,j; for(i=0,j=1;i=j+1;i+=2,j- -)coutiendl; (分数:2.00)A.3B.2C.1D.023.已知语句 int m=10;则下列引用的表示中正确的是(分数:2.00)A.intB.intC.intD.float24.一个关系中属性个数为 1 时,称此关系为(分数:2.00)A.对应关系B.单一关系C.一元关系D.二元关系25.有如下函数模板声明: templatetypename T T Max(T a,T b)return(a=b)? a:b; 下列对函数模板 Max( )的调用中错误的是(分数:2.00)A.Max(3.5,4.5)

8、B.Max(3.5,4)C.Maxdouble(3.5,4.5)D.Maxdouble(3.5,4)26.有以下程序 main( ) int a=5,b=4,c=3,d=2; if(abc) coutdendl; else if(c-1=d)=1) coutd+1endl; else coutd+2endl; 执行后输出结果是(分数:2.00)A.2B.3C.4D.编译时有错,无结果27.设有两个串 p 和 q,求 q 在 p 中首次出现位置的运算称作(分数:2.00)A.连接B.模式匹配C.求子串D.求串长28.有以下程序 main( ) int i=1,j=1,k=2; if(j+| k+

9、) 执行后输出结果是(分数:2.00)A.1,1,2B.2,2,1C.2,2,2D.2,2,329.执行下面程序中的输出语句后,a 的值是 main( ) int a; cout(a=3*5,a*4,a+5); (分数:2.00)A.65B.20C.15D.1030.执行完下列语句 int a,b,c= int* p= 后 c 指向(分数:2.00)A.aB.bC.cD.无效地址31.为了避免嵌套的 ifelse 语句的二义性,C+规定与 else 配对的是(分数:2.00)A.缩排位置相同的 ifB.在其之前未配对的 ifC.在其之前未配对的最近的 ifD.同一行上的 if32.下列关系运算

10、的叙述中,正确的是(分数:2.00)A.投影、选择、连接是从二维表行的方向进行的运算B.并、交、差是从二维表的列的方向来进行运算C.投影、选择、连接是从二维表列的方向进行的运算D.以上 3 种说法都不对33.面向对象程序设计将数据和什么放在一起,作为一个相互依存、不可分割的整体来处理?(分数:2.00)A.对数据的操作B.信息C.数据隐藏D.数据抽象34.以下关于友元函数的叙述不正确的是(分数:2.00)A.友元函数提供了类之间数据共享的一个途径B.一个友元函数可以访问任何类的任何成员C.友元函数破坏了数据的封装D.友元函数增加了程序设计的灵活性35.有如下程序 main( ) int n=9

11、; while(n6)n- -;coutnendl;) 该程序段的输出结果是(分数:2.00)A.987B.876C.8765D.9876二、B填空题/B(总题数:15,分数:30.00)36.冒泡排序算法在最好的情况下的元素交换次数为 1。(分数:2.00)填空项 1:_37.在最坏情况下,堆排序需要比较的次数为 1。(分数:2.00)填空项 1:_38.若串 s=“MathTypes“,则其子串的数目是 1。(分数:2.00)填空项 1:_39.在软件生命周期的各个阶段都会发生一系列的文件,如手册、数据和程序等,它们总称为 1。(分数:2.00)填空项 1:_40.关系数据库的关系演算语言

12、是以 1 为基础的 DML 语言。(分数:2.00)填空项 1:_41.执行语句序列 char str110=“ABCD“,str210=“XYZxyz“; for(int i=0;strli=str2i;i+); 后,数组 strl 中的字符串是_。(分数:2.00)填空项 1:_42.下列程序的执行结果是_。 #includelostream.h int a; int sum_a(void) a=a+5; return a; void main(void) a=a+sum_a( ); coutaendl; (分数:2.00)填空项 1:_43.根据输出结果填空完成下面程序。 #includ

13、eiostream.h class Test private: static int val; int a; public: static int func( ); void sfunc(Test ; _/初始化静态变量 val int Test:func( ) return val+; void Test:sfunc(Test cout“Result3=“r.a; void main( ) cout“Resultl=“Test:func( )endl; Test A; cout“Result2=“A.fune( )endl; A. sfunc(A); 输出结果为: Result1=201 R

14、esult2=202 Result3=125(分数:2.00)填空项 1:_44.下列程序的运行结果是_。 #includeiostream.h class test private: int hum; public: test( ); int TEST( )return num+100;) test( ); ; test:test( )num=0;) test:test( )cout“Destructor is active“endl;) void main( ) test x3; coutx1.TEST( )endl; (分数:2.00)填空项 1:_45.请将下列类定义补充完整。 cla

15、ss Basepublic:void fun( )cout“Base:fun“endl; class Derived:public Base public: void fun( ) _/显式调用基类的 fun 函数 cout“Derived:fun“endl; ;(分数:2.00)填空项 1:_46.有以下程序: #includeiostream.h class A int x; public: A(int a) x=a; friend class B; ; Class B public: void print(A a) a.x- -; couta.xendl; ; void main() A

16、 a(10); B b; b.print(a); 程序执行后的输出结果是_(分数:2.00)填空项 1:_47.下列程序编译时发现 pb-f(10);语句出现错误,其原因是_。 #includeiostream.h class Base public: void f(int x)cout“Base:“xendl;) ; class Derived:public Base public: void f(char*str)cout“Derived:“strendl; ; void main(void) Derived*pd=new Derived; Pd-f(10); (分数:2.00)填空项 1

17、:_48.下列程序的运行结果是_。 #includeiostream.h class SomeClass public: SomeClass(int value) some value=value; ); void show_data(voiD) coutdatasome_valueendl; ; static void set_data(int value) data=value; ; private: static int data; int some_value; ; int SomeClass:data=0; void main(void) SomeClass my_class(100

18、1), your_class(2002); your_class.set_data(4004); my_class.show_data( ); (分数:2.00)填空项 1:_49.有以下程序: #includediostream using namespace std; class Base public: Base( ) x=0; int x; ; class Derived1:virtual public Base public: Derived1( ) x=10; ; class Derived2:virtual public Base public: Derived2( ) x=20

19、; ; class Derived: public Derived1,protected Derived2 ; int main( ) Derived obj; coutobj. xendl; return 0; 该程序运行后的输出结果是_。(分数:2.00)填空项 1:_50.下列程序对加号进行了重载,划线部分的语句是_。 #includeiostream.h #includemath.h class Triangle int x,y,z; double area; public: Triangle(int i,int j,int k) double s; x=i;y=j;z=k; s=(x

20、+y+z)/2.0; area=sqrt(s*(s-x)*(s-y)*(s-z); void disparea( ) cout“Area=“areaendl; friend double operator+(Triangle tl,Triangle t2) _ ; void main( ) Triangle tl(3,4,5),t2(5,12,13); double s; cout“tl:“;t1. disparea( ); cout“t2:“;t2. disparea( ); s=t1+t2: cout“总面积:=“sendl; (分数:2.00)填空项 1:_二级 C+笔试 325 答案解

21、析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.对于以下带参数的 main( )函数的第二形参,void main(int argc,_),不可能的形式是(分数:2.00)A.char*argvB.char argv C.char*aD.char*m解析:解析 本题要考查的实际是字符数组,用于向函数传递参数,属于指针或引用传递方式。要注意的是考生不要被名称所迷惑,即根据 A 和 D 是相同类别的,故可以排除。对 C 来说,也属于指针传递方式,而 B 不仅不属于指针传递,而且还没有限定数组大小,编译器在编译时就会产生错误。2.下列程序的输出结果

22、是 main( ) int x=1,a=0,b=0; switch(x) case 0:b+; case 1:a+; case 2:a+;b+; cout“a=“a“b=“bendl; (分数:2.00)A.a=2 b=1 B.a=1 b=1C.a=1 b=0D.a=2 b=2解析:解析 本题主要考查 switch 语句中,break 语句的作用。每个 case 语句后面如果没有 break 语句,则程序的执行流程将发生变化,即顺序执行各个 case 语句。这种情况一般不符合程序员的设计思路,但也可以用这种特性完成特殊控制。3.以下程序的输出结果是 int a,b; void fun( ) a

23、=100;b=200;) main( ) int a=5,b=7; fun( ); coutabendl; (分数:2.00)A.100200B.57 C.200100D.75解析:解析 本题考查同名变量的作用域大小。考生应掌握,同名局部变量在函数内部将屏蔽全局同名变量,因此,main 函数内部使用的局部变量 a 和 b,即 5 和 7,答案为 B。4.最简单的交换排序方法是(分数:2.00)A.快速排序B.选择排序C.堆排序D.冒泡排序 解析:解析 冒泡排序是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线性表变成有序表。交换排序方法有冒泡排序和快速排序,显然选项 B 和选项

24、C 错误,冒泡排序比较简单,其算法也容易理解,但快速排序本身较为复杂,且采用了递归调用,其算法理解也较难。5.软件开发的结构生命周期法的基本假定是认为软件需求能做到(分数:2.00)A.严格定义B.初步定义C.早期冻结 D.动态改变解析:解析 软件需求经过分析阶段后,通过软件需求说明书表示出来,后面的开发工作以此为基础进行,故结构生命周期法中需假定软件需求确定后一般不再改变,即“早期冻结”。6.能保证对所有的参数能够结束的递归函数是(分数:2.00)A.int f(int if(n1)return 1;else return n*f(n+1);B.int f(int if(n1)return

25、1;else return n*f(n-1);C.int f(int if(abs(1)return 1;else return n*f(n/2); D.int f(int if(n1)return 1;else return n*f(n*2);)解析:解析 递归函数的两个重要条件是要有结束和递归表达式。选项 A、B、D 无法结束。根据这两个条件可以进行判断出答案为 C。7.如果表达式- -x/y 中的“- -”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可以表示为(分数:2.00)A.operator /(operator- -( ),;B.operator /(o

26、perator- -(,; C.operator- -( ).Operator /(;D.operator /(operator- -();解析:解析 本题考核运算符的重载。假定已经作为某个类的成员函数重载了二元运算符+,且 c1、c2都是该类的对象,则 c1.operator+(c2)与 c1+c2 含义相同。如果+作为该类的非成员函数重载,则operator+(cl,c2)与 c1+c2 含义相同。同理,运算符“/”作为友元函数重载,则(- -x)/y 与表达式operator/(- -x),y)相同。前缀运算符“- -”作为友元函数重载,则- -x 与 operator- -(x)相同,

27、所以组合起来是 operator/(operator- -(x),y);,即 B 选项。8.有以下程序: #includeiostream using namespace std; int main( ) int x=15; while(x10 if(x/3) x+; break; coutxendl; return 0; 执行后的输出结果是(分数:2.00)A.15B.16C.17 D.18解析:解析 本题考核选择语句与循环语句的嵌套。由程序可知,当 x=16 时,满足 if 条件表达式,进入 if 分支,执行“x+; break;”,所以最后程序输出 x 的值为 17。9.有关构造函数的叙

28、述不正确的是(分数:2.00)A.构造函数名必须和类名一致B.构造函数在定义对象时自动执行C.构造函数无任何函数类型D.在一个类中构造函数有且仅有一个 解析:解析 本题考查构造函数的基本知识。构造函数名字与类名相同;可以重载;不需要参数;不需要指定返回类型等。本题答案为 D。10.详细设计的结果基本决定了程序最终的(分数:2.00)A.代码的规模B.运行速度C.代码质量 D.可维护性解析:解析 详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统,但详细设计阶段的任务还不是具体的编写程序,而是要设计出程序的“蓝图“,以后程序员将根据这个蓝图写出实际的程序代码,因此,详细设计阶段的结果基本

29、上就决定了最终的程序代码的质量。11.需求分析阶段的任务是确定(分数:2.00)A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能 解析:解析 需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。12.假定 MyClass 为一个类,则该类的拷贝构造函数的声明语句为(分数:2.00)A.Myclass,其中 const 是修饰符可以省略。13.假定其中的 x 的单位是角度且不考虑 值的精度,则与数学公式 (分数:2.00)A.sqrt(cos()B.

30、sqrt(abs(cos(x*3.14/180)C.sqrt(abs(cos(x*(/180)D.sqrt(fabs(cos(x*3.14/180) 解析:解析 本题考查数学表达式的掌握,首先应转换为弧度,然后作为 cos 函数的参数,求绝对值,最后是开方函数。考生需要掌握的是常用的数学函数。14.下列叙述中,错误的是(分数:2.00)A.数据的存储结构与数据处理的效率密切相关B.数据的存储结构与数据处理的效率无关 C.数据的存储结构在计算机中所占的空间不一定是连续的D.一种数据的逻辑结构可以有多种存储结构解析:解析 一般来说,一种数据结构根据需要可以表示成多种存储结构。常用的存储结构有顺序、

31、链接、索引等,而采用不同的存储结构,其数据处理的效率是不同的;一个数据结构中的各数据元素在计算机存储空间中的位置关系与逻辑关系是有可能不同的。15.以下选项中合法的实型常数是(分数:2.00)A.5 E 2.0B.E-3C2 E0 D.1.3 E解析:解析 本题考查实型常数的指数表示法,可以肯定的是指数不能为小数即必须为整数,故排除A。 由于符号 E 前面必须有数字,故 B 也是错误的。D 在指数符号后面没有数字,是错误的。答案为 C。16.完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例的测试方法是(分数:2.00)A.黑箱测试法 B.白箱测试法C.错误推测法D.安装测试法

32、解析:解析 黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据功能导出测试用例。白箱测试是根据对程序内部逻辑结构的分析来选取测试用例,白箱测试也称为逻辑覆盖测试,故选项 B 不正确;错误推测法只是黑箱测试所使用的一种具体的方法,故选项 C 不正确;安装测试是测试层次中的一种,它属于高级测试,故选项 D 不正确。17.下列程序的运行结果是 main( ) int a=2,c=5; cout“a=“a“b=“cendl; (分数:2.00)A.a=% b=%5B.a=2 b=5 C.a=d b=dD.a=%d b=%d解析:解析 本题非常简单,考查 C+中基本的输出语句,注意不要与 C 语

33、言的输出控制字符混淆。18.下列说法中不正确的是(分数:2.00)A.数据库减少了数据冗余B.数据库中的数据可以共享C.数据库避免了一切数据的重复 D.数据库具有较高的数据独立性解析:解析 数据库系统具有以下几个特点:数据的集成性、数据的高共享性与低冗余性、数据的独立性、数据统一管理与控制。19.设有语句 int n,m; char a5,b; cinnamb; 为了分别将 10 和 20 分别赋给 n 和m,look 赋给 a,t 赋给 b,则正确的输入为(分数:2.00)A.10“look“ 20tCRB.10“look“10C.10 look 20 t D.10CRlook20CRtCR

34、解析:解析 本题考查 C+中流操作符的操作规则,即分割符。首先根据字符不需要加引号可以排除选项 A 和 B,而 D 用回车作分割符,但却在 took 和 20 之间缺少一个回车符,故据此可选出正确答案为 C。20.若已定义 int a=1,2,3,4,5,6,7,8,9,10,p=a,i=5; 则对数组元素的不正确的引用是(分数:2.00)A.ap-aB.*( y=3*x-4; return y; (分数:2.00)A.int B.不确定C.voidD.float解析:解析 本题考查 C+当中函数的默认返回类型,这种类型与函数内部的局部变量的类型没有关系。如果不小心处理函数返回类型,可能造成数

35、据丢失。本题答案为 A。22.以下循环体的执行次数是 main( ) int i,j; for(i=0,j=1;i=j+1;i+=2,j- -)coutiendl; (分数:2.00)A.3B.2C.1D.0 解析:解析 本题考查考生对 for 循环中三个表达式的执行顺序及使用方法。首先执行第一个表达式,然后判断第二个表达式是否成立,如果成立则执行循环体,然后执行第三个表达式,随后再去判断第二个表达式。根据这个顺序,可以很容易的判断出,循环体只执行了一次。23.已知语句 int m=10;则下列引用的表示中正确的是(分数:2.00)A.int B.intC.intD.float解析:解析 本题

36、考查 C+中引入的新类型:引用。引用表示变量的别名,使用方式同变量,效果同指针。引用不能用常数进行赋值,引用的类型必须一致,引用在使用之前必须初始化。24.一个关系中属性个数为 1 时,称此关系为(分数:2.00)A.对应关系B.单一关系C.一元关系 D.二元关系解析:解析 在关系模型数据库中,基本结构是二维表,这种二维表称为关系。关系的列称为属性。一个具有 N 个属性的关系称为 N 元关系。25.有如下函数模板声明: templatetypename T T Max(T a,T b)return(a=b)? a:b; 下列对函数模板 Max( )的调用中错误的是(分数:2.00)A.Max(

37、3.5,4.5)B.Max(3.5,4) C.Maxdouble(3.5,4.5)D.Maxdouble(3.5,4)解析:解析 本题考核函数模板的使用。引用模板函数和引用一般的函数在语法形式上没有任何区别。所有的类型替换都是编译器在幕后悄悄进行的。但是要注意的是说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确定是否匹配函数模板中对应的形参。例如,本题中的 B选项,编译系统从第一个参数“3.5“获得的信息是“T 对应于 double“,而从第二个参数“4“处获得的信息是“T 对应于 int“,二者相互矛盾,在编译时会产生错误。对于 D 选项中紧跟在函数名后的do

38、uble就是模板实参表,通过它通知编译系统在调用过程中,将 int 型的参数“4“将换成 double 型。26.有以下程序 main( ) int a=5,b=4,c=3,d=2; if(abc) coutdendl; else if(c-1=d)=1) coutd+1endl; else coutd+2endl; 执行后输出结果是(分数:2.00)A.2B.3 C.4D.编译时有错,无结果解析:解析 本题考查逻辑表达式的结合特性,即左结合性。对于表达式 abc,首先判断 ab 为真,结果为 l,然后判断 1c,为假,故转去判断 c-1=d 是否成立,成立,结果为 1,再判断 1= =1,结

39、果为真,因此,执行 d+1,答案为 B。27.设有两个串 p 和 q,求 q 在 p 中首次出现位置的运算称作(分数:2.00)A.连接B.模式匹配 C.求子串D.求串长解析:解析 子串的定位操作通常称作串的模式匹配,是各种串处理系统中最重要的操作之一,算法的基本思想是:从主串的开始字符起和模式的第一个字符比较,若相等则继续比较后续字符,否则从主串的下一个字符起再重新和模式的字符比较,依次类推,直至模式中的每一个字符依次和主串中的一个连续的字符序列相等,称匹配成功,否则称匹配不成功。28.有以下程序 main( ) int i=1,j=1,k=2; if(j+| k+) 执行后输出结果是(分数

40、:2.00)A.1,1,2B.2,2,1C.2,2,2 D.2,2,3解析:解析 本题考查逻辑表达式及自增运算符的联合使用。考生要注意本题里面隐藏的考点:|在左侧表达式为真时,将不再进行该逻辑操作符右侧表达式的运算,即 j+本身为非零,故 k+不再执行。29.执行下面程序中的输出语句后,a 的值是 main( ) int a; cout(a=3*5,a*4,a+5); (分数:2.00)A.65B.20 C.15D.10解析:解析 本题考查逗号表达式的运算特点。逗号表达式是所有表达式中优先级最低的,从左到右结合,其求解过程是:将逗号表达式各表达式按从左到右的顺序依次求值,并将最右边的表达式结果

41、作为整个逗号表达式的结果。这里考生要注意的是,第二个表达式执行完后,a 的值并没有发生变化,依然是15,所以在执行 a+5 的时候,结果是 20,而不是 65。正确答案应是 B。30.执行完下列语句 int a,b,c= int* p= 后 c 指向(分数:2.00)A.aB.b C.cD.无效地址解析:解析 p 为 c 的引用,即两者实际上是一个指针,故 p 指向 b 后,c 自然也指向 b,故答案为 B。31.为了避免嵌套的 ifelse 语句的二义性,C+规定与 else 配对的是(分数:2.00)A.缩排位置相同的 ifB.在其之前未配对的 ifC.在其之前未配对的最近的 if D.同

42、一行上的 if解析:解析 C+规定 else 总是与之前未配对的最近的 if 进行配对,这样可以避免二义性,也便于编译器分析。32.下列关系运算的叙述中,正确的是(分数:2.00)A.投影、选择、连接是从二维表行的方向进行的运算B.并、交、差是从二维表的列的方向来进行运算C.投影、选择、连接是从二维表列的方向进行的运算 D.以上 3 种说法都不对解析:解析 在关系模型的数据语言中,一般除了运用常规的集合运算(并、交、差、笛卡尔积等),还定义了一些专门的关系运算,如投影、选择、连接等。前者是将关系(即二维表)看成是元组的集合,这些运算主要是从二维表的行的方向来进行的。后者是从二维表的列的方向来进

43、行运算的。33.面向对象程序设计将数据和什么放在一起,作为一个相互依存、不可分割的整体来处理?(分数:2.00)A.对数据的操作 B.信息C.数据隐藏D.数据抽象解析:解析 面向对象语言包含 3 个要素,即对象、类和继承。这 3 个要索反映了面向对象的传统观念。面向对象程序设计的本质是把数据和对数据的操作当成一个整体即对象。34.以下关于友元函数的叙述不正确的是(分数:2.00)A.友元函数提供了类之间数据共享的一个途径B.一个友元函数可以访问任何类的任何成员 C.友元函数破坏了数据的封装D.友元函数增加了程序设计的灵活性解析:解析 友元的作用在于提高程序的运行效率,但是,它破坏了类的封装性和

44、隐藏性,使得非成员函数可以访问类的私有成员。容易混淆是 B,只有在类中声明了某个函数是自己的友元函数之后,该友元函数才能够访问本类的私有成员,而不是任何类的任何成员都可以访问。故答案为 B。35.有如下程序 main( ) int n=9; while(n6)n- -;coutnendl;) 该程序段的输出结果是(分数:2.00)A.987B.876 C.8765D.9876解析:解析 注意到 n- -的运算顺序,知道第一次输出的应是 8,据此就可以很快排除 A 和 D。然后判断循环几次结束,由于当 n=6 时,while 的条件判断已经不成立了,直接跳过循环体结束程序了。故当n=9,8,7

45、时执行了循环体,故答案为 B。二、B填空题/B(总题数:15,分数:30.00)36.冒泡排序算法在最好的情况下的元素交换次数为 1。(分数:2.00)填空项 1:_ (正确答案:0)解析:解析 根据冒泡排序算法思想可知,若待排序的初始序列为“正序”序列,则只需进行一趟排序,在排序过程中进行 n-1 次关键字间的比较,且不移动和交换记录,这种情况是冒泡排序的最好情况,故冒泡排序算法在最好的情况下的元素交换次数为 0。37.在最坏情况下,堆排序需要比较的次数为 1。(分数:2.00)填空项 1:_ (正确答案:O(nlog 2n))解析:解析在最坏情况下,堆排序、需要比较的次数是 O(nlog2

46、n)。38.若串 s=“MathTypes“,则其子串的数目是 1。(分数:2.00)填空项 1:_ (正确答案:46)解析:解析 串 s 中共有 9 个字符,由于串中字符各不相同,则其子串中有 0 个字符的 1 个(空串),1个字符的 9 个,2 个字符的 8 个,3 个字符的 7 个,4 个字符的 6 个,5 个字符的 5 个,6 个字符的 4 个,7 个字符的 3 个,8 个字符的 2 个,9 个字符的 1 个,共有 1+2+3 十 4+5+6+7+8+9+1=46。39.在软件生命周期的各个阶段都会发生一系列的文件,如手册、数据和程序等,它们总称为 1。(分数:2.00)填空项 1:_ (正确答案:软件配置)解析:解析 在软件生命周期的各个阶段会产生一系列的文件,包括报告、数据和程序,它们的总称为软件配置。软件配置

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