2017年下半年程序员考试真题+答案解析(上午选择+下午案例完整版)全国计算机软考 下载本文

列的适当位置,完成本趟(即第i-1趟)排序。以下关于直接插入排序的叙述中,正确的是( )。

A. 若原关键码序列已经升序排序,则排序过程中关键码间的比较次数最少 B. 若原关键码序列已经降序排序,则排序过程中关键码间的比较次数最少 C. 第1趟完成后即可确定整个序列的最小关键码 D. 第1趟完成后即可确定整个序列的最大关键码 答案: A 44、采用面向对象程序设计语言C++/Java进行系统实现时,定义类S及其子类D。若类S中已经定义了一个虚方法int fun(int a,int b) ,则方法(44)不能同时在类S中。D中定义方法int fun(int a,int b) ,这一现象称为(45)。 A. int fun(int x,double y) B. int fun(double a,int b) C. double fun(int x,double y) D. int fun(int x,int y) 答案: A

在同一类中是不能定义两个名字相同、参数个数和类型都相同的函数的,否则就是重复定义,但是在类的继承层次结构中,在不同的层次中可以出现名字相同、参数个数和类型都相同而功能不同的函数。虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。

重载是在同一类中允许同时存在一个以上的同名方法,只要这些方法的参数个数或类型不同即可,而重置(覆盖)是子类重新定义父类中己经定义的方法,即子类重写父类方法。 45、采用面向对象程序设计语言C++/Java进行系统实现时,定义类S及其子类D。若类S中已经定义了一个虚方法int fun(int a,int b) ,则方法(44)不能同时在类S中。D中定义方法int fun(int a,int b) ,这一现象称为(45)。 A. 覆盖/重置 B. 封装

C. 重载/过载 D. 多态 答案: A

46UML中行为事物是模型中的动态部分,采用动词描述跨越时间和空间的行为。(46)属于行为事物,它描述了(47)。 A. 包 B. 状态机 C. 注释 D. 构件 答案: B

47、UML中行为事物是模型中的动态部分,采用动词描述跨越时间和空间的行为。(46)属于行为事物,它描述了(47)。

A. 在特定语境中共同完成一定任务的一组对象之间交换的消息组成 B. 计算机过程执行的步骤序列

C. 一个对象或一个交互在生命期内响应事件所经历的状态序列 D. 说明和标注模型的任何元素 答案: C

48、行为型设计模式描述类或对象如何交互和如何分配职责。以下( )模式是行为型设计模式。

A. 装饰器 (Decorator) B. 构建器 (Builder) C. 组合(Composite) D. 解释器(Interpreter) 答案: D

AC为结构型,B为创建型。在面向对象系统设计中,每一个设计模式都集中于一个特定的面向对象设计问题或设计要点,描述了什么时候使用它,在另一些设计约束条件下是否还能使用,以及使用的效果和如何取舍。按照设计模式的目的可以分为创建型模式、结构型模式和行为型模式3大类。创建型模式与对象的创建有关:结构型模式处理类或对象的组合,涉及如何组合类和对象以获得更大的结构:行为型模式对类或对象怎样交互和怎样分配职责进行描述。创建型模式包括Factory Method、Abstract Factory、Builder、Prototype和Singleton;结构型模式包括Adapter(类)、Adapter(对象)、Bridge、Composite、Decorator、Façade、Flyweight和Proxy;行为型模式包括Interpreter、Template Method、Chain of Responsibility、Command、Iterator、Mediator、Memento Observer State Strategy和Visitor

49、在结构化分析方法中,用于对功能建模的(49)描述数据在系统中流动和处理的过程,它只反映系统必须完成的逻辑功能;用于行为建模的模型是(50),它表达系统或对象的行为。 A. 数据流图 B. 实体联系图 C. 状态-迁移图 D. 用例图 答案: A

数据流图:用图形的方式从数据加工的角度来描述数据在系统中流动和处理的过程,只反 映系统必须完成的功能,是一种功能模型。

在结构化分析方法中用状态迁移图表达系统或对象的行为。

50、在结构化分析方法中,用于对功能建模的(49)描述数据在系统中流动和处理的过程,它只反映系统必须完成的逻辑功能;用于行为建模的模型是(50),它表达系统或对象的行为。 A. 数据流图 B. 实体联系图 C. 状态-迁移图 D. 用例图

答案: C

51、若采用白盒测试法对下面流程图所示算法进行测试,且要满足语句覆盖,则至少需要(51)个测试用例,若表示输入和输出的测试用例格式为(A,B,X;X),则满足语句覆盖的测试用例是(52)。

A. 1 B. 2 C. 3 D. 4 答案: A

52、 A. (1,3,3;8) B. (1,3,5;10) C. (5,2,15;8) D. (5,2,20;9) 答案: A

白盒测试方法:

(1)语句覆盖。被测程序的每个语句至少执行一次。是一种很弱的覆盖标准。 (2)判定覆盖。也称为分支覆盖,判定表达式至少获得一次真、假值。判定覆盖比语句覆盖强。

(3)条件覆盖。每个逻辑条件的各种可能的值都满足一次。 (4)路径覆盖。覆盖所有可能的路径。

(5)判定/条件覆盖。每个条件所以可能的值(真/假)至少出现一次。 (6)条件组合覆盖。每个条件的各种可能值的组合都至少出现一次。 此处只需要一个测试用例就可以完成所有的语句覆盖。

此题有误,无正确答案。按照要求,应该选择A=2.B=3,X取任意值。

53、在( )时,一般需要进行兼容性测试。 A. 单元测试 B. 系统测试 C. 功能测试 D. 集成测试 答案: B

软件兼容性测试是指检查软件之间能否正确地进行交互和共享信息。随着用户对来自各种类型软件之间共享数据能力和充分利用空间同时执行多个程序能力的要求,测试软件之间能否协作变得越来越重要。软件兼容性测试工作的目标是保证软件按照用户期望的方式进行交互。

根据软件需求规范的要求进行系统测试,确认系统满足需求的要求,系统测试人员相当于用户代言人,在需求分析阶段要确定软件的可测性,保证有效完成系统测试工作。系统测试主要内容有: a.所有功能需求得到满足 b.所有性能需求得到满足  c.其他需求(如安全性、容错性、兼容性等)得到满足。

54、关于用户界面(UI)测试的叙述中,不正确的是( )。

A. UI测试的目的是检查界面风格是否满足用户要求,用户操作是否友好 B. 由于同一软件在不同设备上的界面可能不同,UI测试难以自动化 C. UI测试一般采用白盒测试方法,并需要设计测试用例 D. UI测试是软件测试中经常做的、很繁琐的测试 答案: C

户界面测试英文名为User interface testing,简称UI测试,测试用户界面的功能模块的布局是否合理,整体风格是否一致和各个控件的放置位置是否符合客户使用习惯,更重要的是要符合操作便捷,导航简单易懂,界面中文字是否正确,命名是否统一,页面是否美观,文字、图片组合是否完美等等。白盒测试是单元测试所用的方法

55、创建好的程序或文档所需遵循的设计原则不包括( )。 A. 反复迭代,不断修改 B. 遵循好的标准和设计风格 C. 尽量采用最新的技术

D. 简约,省去不必要的元素 答案: C

最新的技术很可能不够完善,或者容易被市场所淘汰,一般不采用。

56、专业程序员小王记录的编程心得体会中,( )并不正确。 A. 编程工作中记录日志很重要,脑记忆并不可靠 B. 估计进度计划时宁可少估一周,不可多算一天 C. 简单模块要注意封装,复杂模块要注意分层 D. 程序要努力文档化,让代码讲自己的故事 答案: B

项目进度计划是在拟定年度或实施阶段完成投资的基础上,根据相应的工程量和工期要求,对各项工作的起止时间、相互衔接协调关系所拟定的计划,同时对完成各项工作所需的时间、劳力、材料、设备的供应做出具体安排,最后制定出