软件设计师:水平练习真题3

软件设计师 责任编辑:小狐狸 2016-03-17

添加老师微信

备考咨询

加我微信

摘要:为各位考生可以更好地备考,希赛网小编为此给大家准备了2016年计算机软考《软件设计师》模拟练习真题,希望有助于各位的备考,下面是详细内容。预祝大家考试顺利,都能取得好成绩!

    >>>>软件设计师在线辅导

    >>>>软件设计师培训视频

    >>>>软件设计师考试教材

    >>>>软件设计师面授班

    为各位考生可以更好地备考,希赛网小编为此给大家准备了2016年计算机软考《软件设计师》模拟练习真题,希望有助于各位的备考,下面是详细内容。预祝大家考试顺利,都能取得好成绩!

    1、以下关于用例(usecase)的叙述中,说法不够准确的是()。

    A.用例将系统的功能范围分解成许多小的系统功能陈述

    B.一个用例代表了系统的一个单一的目标

    C.用例是一个行为上相关的步骤序列

    D.用例描述了系统与用户的交互

    参考答案:D。

    解析:用例(usecase)用来描述系统在对事件做出响应时所采取的行动,即它确定了一个与系统参与者进行交互,并由系统执行的动作序列。可见,一个用例本身并不是一个功能需求,它代表了系统的一个单一的目标,是一个行为上相关的步骤序列。

    选项D所描述的范围太广,不够准确。在UML规范中,参与者是指系统所涉及到的人,或者是用户在本系统中扮演的角色。一个参与者总是在系统的自动化边界之外。

    2、采用UML分析用户需求时,用例UCl可以出现在用例UC2出现的任何位置,那么UCl和UC2之间的关系是()关系。

    A.includeB.extendC.generalizeD.call

    参考答案:C。

    解析:用例之间的泛化(generalize)关系类似于类之间的泛化关系。子用例继承父用例的行为与含义。子用例还可以增加或者覆盖父用例的行为。子用例可以出现在父用例出现的任何位置。

    本试题中,由于用例UCl可以出现在用例UC2出现的任何位置,因此UCl与UC2之间是选项C的“泛化(generalize)”关系。要注意,不是“用例UCl可以出现在用例UC2的任何位置”。

    选项A的“包含(include)”关系,表示基础用例在它内部,说明某一位置上显式的合并是另一个用例的行为。被包含用例从不孤立存在,仅作为某些包含它的更大的基础用例的一部分出现。

    选项B的“扩展(extend)”关系,表示基础用例在延伸用例间的一个位置上,隐式合并了另一个用例的行为。基础用例可以单独存在,但是在一定的条件下,它的行为可以被另一个用例的行为延伸。

    选项D的“call”可解释成“调用”。

    3、若有以下定义,则值为3的表达式是()

    inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;

    A.p+=2,*(p++)

    B.p+=2,*++p

    C.p+=3,*p++

    D.p+=2,++*p

    参考答案:A。

    解析:数组a有10个元素,分别有值1至10,指针变量p指向a[0],A逗号表达式p+=2,*(P++),先是P+=2使P指向a[2],接着是*(P++),以当时P所指变量a[2]取内容3为表达式的值,同时使p指向a[3]。B返号表达式p+=2,*++p,先是p+=2使p指向a[2],以后是*++p,又使p增1,让它指向a[3],并取指针p所指变量a[3]的内容4作为表达式的值。C逗号表达式p+=3,*p++,先是p+=3使p指向a[3],以后是*p++,表达式的值是a[3]为4,而使p指向a[4]。D逗号表达式p+=2,++*p,先是p+=2,使p指向a[2],以后是++*p,因当时的*p就是a[2],++a[2]使a[2]增1,变成4,并以4为表达式的值。所以只有p+=2,*(p++)的值是3。所以解答是A。

    4、要求函数的功能是在一维数组a中查找x值。若找到,则返回所在的下标值;否则,返回0。设数据放在数组元素的a[1]到a[n]中。在以下给出的函数中,不能正确执行此功能的函数是()

    A.funa(int*a,intn,intx)

    {*a=x;

    whlie(a[n]!=x)n--;

    returnn;

    }

    B.funb(int*a,intn,intx)

    {intk;

    for(k=l;k<=n;k++)

    if(a[k]==x)returnk;

    return0;

    }

    C.func(inta[],intn,intx)

    {int*k;

    a[O]=x;k=a+n;

    while(*k!=x)k--;

    returnk-n;

    }

    D.fund(inta[],intn,intx)

    {intk=0;

    dok++;

    while((kif((kelsereturn0;

    }

    参考答案:C。

    解析:在数组中找指定值是经常遇到的计算要求,有多种编程方法。在这里,数据预放在数组下标1至n的元素中,下标为0的元素没有放数据,程序可以利用这个位置简化查找函数。函数funa先将要查找的情放入a[0],从数据表的最后一个元素开始逆序向前查找。这样做的好处是循环条件不必担心因数组中原先没有值为x的元素而一直顺序查找下去,访问不是数表的元素,需插入条件n>O。在a[0]处放入x后,这个条件就不必要了,循环至少在访问了a[0]后终止,并返回0值。所以该函数能完成指定的功能。函数funb采用常规的办法编写,循环在a[1]与a[n]之间顺序寻找,一旦找到立即返回找到处的下标,直至查找循环结束,查不到指定的值而返回0值。函数func采用与函数funa相同的方法,不过是另外引入一个指针变量。但是该函数return语句后的表达式有严重的错误,应返回k-a,两指针的差,其值等于找到元素的下标。表达式k-n是指针k向前移n个位置的指针值。函数fund预置k为0,循环让k增1,并在k在界内和a[k]不等于x的情况下循环。循环结束有两种情况,或k已不在界内,或k在界内,并且a[k]等于x。若是后者,函数返回k,而若前者,函数返回比该函数也能正确完成查找工作。这样,不能正确完成查找工作的函数是函数fonc。所以正确选择是C。

    5、软件架构在软件需求与设计之间架起一座桥梁,也是风险承担者进行交流的手段,允许不同的风险承担者找出他们所关心的软件架构问题。逻辑视图的主要风险承担者是()。

    A.项目管理师B.系统集成工程 C.系统实施工程师D.最终用户

    参考答案:D。

    解析:所谓风险承担者是指对软件系统某个方面(或层次)负责(或关注)的人员。也可以这样来理解风险承担者,软件系统的某个方面(或层次)如果存在缺陷或问题,对此负责任或受影响的人员。

    逻辑视图描述了设计的对象模型,支持系统的功能需求。而系统的功能需求来自于最终用户,因此最终用户是逻辑

    进程视图的风险承担者主要是系统集成人员;物理视图的风险承担者主要是系统实施工程师;开发视图的风险承担者主要是编程人员和软件项目管理人员;场景的风险承担者是最终用户和开发人员。

    6、关系模式Student(Sno,Sname,Cno,Cname,Grade,Tname,Taddr)的属性分别表示学号、学生姓名、课程号、课程名、成绩、任课教师名和教师地址。其中,一个学生可以选若干门课程,一个教师可以讲授若干门课程,一门课程可以由多个教师讲授,对于同一门课程,学生只能选定一个教师讲授的课程,教师不会重名。关系模式Student的分解ρ=(),并且是无损联接及保持函数依赖。

    A.{(Sno,Sname,Cno,Tname,Taddr),(Sno,Sname,Cno,Cname,Grade)}∈1NF

    B.{(Sno,Sname),(Sno,Cno,Grade,Tname,Taddr),(Cno,Cname)}∈2NF

    C.{(Sno,Sname),(Sno,Cno,Grade),(Tname,Taddr),(Cno,Cname,)∈3NF

    D.{(Sno,Sname),(Sno,Cno,Grade),(Tname,Taddr),(Tname,Cno),(Cno,Cname)}∈BCNF

    参考答案:B。

    解析:关系模式Student(Sno,Sname,Cno,Cname,Grade,Tname,Taddr)的候选关键字有1个,为(Sno,Cno)。最小函数依赖集中有5个函数依赖。由于存在部分依赖现象,因此该关系模式属于1NF范式,分解ρ={(Sno,Sname),(Sno,Cno,Grade,Tname,Taddr),(Cno,Cname)}∈2NF,并且是无损联接及保持函数依赖。

    7、某企业职工和部门的关系模式如下所示,其中部门负责人也是一名职工。

    职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)

    部门(部门号,部门名,负责人代码,任职时间)

    查询每个部门中月工资较高的“职工号”的SQL查询语句如下:

    Select职工号from职工asE

    where月工资=(SelectMax(月工资)from职工asM());

    A.whereM.部门号=E.部门号

    B.whereM.职工号=E.职工号

    C.whereM.职工号=E.负责人代码

    D.whereM.部门号=E.职工号

    参考答案:A。

    解析:查询每个部门中月工资较高的“职工号”的SQL查询语句如下所示。

    Select职工号from职工asE

    where月工资=(SelectMax(月工资)from职工asMwhereM.部门号=E.部门号);

    其中,子查询“SelectMax(月工资)from职工asMwhereM.部门号=E.部门号”意为找出M.部门号较高月工资。主查询“Select职工号from职工asEwhere月工资=”意为该职工的月工资等于较高工资。因此,(54)空缺处的正确答案是选项A。

    8、一级封锁协议解决了事务的并发操作带来的()不一致性的问题。

    A.读脏数据

    B.数据重复修改

    C.数据丢失修改

    D.数据不可重复读

    参考答案:C。

    解析:并发操作带来的数据不一致性表现为丢失修改、数据不可重复读和读脏数据3类。一级封锁协议是指在事务T修改数据R之前对其加X锁,直到事务结束前才释放该锁。事务T在执行期间, 其他事务不能对数据进行修改,只有事务T结束,其对数据R的修改写入数据库之后,其他事务才可以修改数据R,这样事务T的修改就不会丢失。

    由于一级封锁协议没有限制其他事务对数据R的读取操作,因此可能使其他事务在T修改期间读取数据R,产生数据不可重复读和读脏数数据的错误。

    9、以下说法正确的是()。

    A.从结构的角度看,数据仓库主要有数据集市、企业仓库和用户仓库3种模型

    B.数据挖掘就是要智能化和自动化地把数据转换为有用的信息和知识

    C.OLAP技术为提高处理效率,必须绕过DBMS直接对物理数据进行读取和写入

    D.数据仓库是从数据库中导入大量的数据,并对结构和存储进行组织以提高查询效率

    参考答案:B。

    解析:从结构的角度看,数据仓库主要有企业仓库、数据集市和虚拟仓库等3种模型。其中,企业仓库用于收集跨越整个企业的各个主题的所有信息,它提供整个企业范围的数据集成。而数据集是包含对特定的用户有用的、企业范围数据的一个子集,其范围限于所选定的主题。虚拟仓库是操作型数据库上视图的集合。因此选项A的描述是错误的。

    数据挖掘就是要智能化和自动化地把数据转换为有用的信息和知识。目前,常用的数据挖掘方法有关联分析、序列模式分析、分类分析和聚类分析等。由此可见,选项B的描述是正确的。

    OLAP(on-lineanalyticalprocessing)是联系分析处理的英文缩写。它仍使用DBMS存取数据,即选项C的描述是错误的。

    数据仓库不是用做日常查询,也不是汇总和统计,它主要用于提取数据中的潜在信息和知识。因此选项D的描述是错误的。

    相关推荐

    软件设计师考试考前串讲

    软件设计师考试习题集

    软件设计师考试下午知识点精讲与考前必练

    软件设计师考前冲刺与知识点分析


更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取

!
咨询在线老师!