第一讲 软件之启蒙--初识软件工程专业

本讲模拟练习题(不计分)随堂测验

1、视频中主讲教师将软件工程和建筑工程进行了类比,将建筑工程归纳为以下几个步骤:建筑设计调研分析、建筑方案设计、建筑施工设计、建筑施工建设、以及建筑工程竣工交付。请问以下选项中的哪一项软件相关工作与建筑工程中的建筑施工建设相类似?
    A、软件需求分析
    B、软件设计
    C、软件实现(又称软件构造 )
    D、软件交付

2、在软件开发过程中,客户告诉软件开发者他们的日常业务流程,提出了他们对于软件系统的期望(即软件系统如何支撑或协助他们完成日常工作),软件开发人员将这些细节记录下来,并用一系列的模型对客户的叙述进行描述和表达。上述的工作属于软件相关工作中的哪一项工作?
    A、软件需求分析
    B、软件设计
    C、软件实现
    D、软件交付

3、本讲介绍了计算机系统及其组成,以下关于这部分内容叙述不正确的是________。
    A、计算机系统包括了硬件系统和软件系统
    B、内存和硬盘都有存储功能,都属于计算机系统的外设
    C、鼠标和键盘属于计算机系统的输入设备
    D、软件系统包括了系统软件、支撑软件和应用软件

4、以下不属于应用软件的是________。
    A、行业应用软件
    B、文字与媒体处理软件
    C、微软操作系统
    D、工业控制软件

5、本讲给出了关于软件工程的各类定义,例如,软件工程(经典定义):应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品的工程,或以此为研究对象的学科。那么通过对这些定义的理解,请判断以下关于软件工程的叙述中有误的是________。
    A、软件工程的目标是生产具有正确性、可用性以及成本合适的软件产品
    B、软件工程的过程是生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤
    C、软件工程的过程只包括设计并构建计算机程序
    D、软件工程的原则是围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则

6、本讲中主讲老师用了一则black cat的幽默,形象地描述了软件的特性,那么以下不属于这则幽默所描绘的软件特性是________。
    A、不可视性与主观性
    B、软件规模与复杂性
    C、易变性与不确定性
    D、灵活性与易用性

7、视频中主讲教师介绍了计算机科学技术学科,该学科的主要范畴为________。
    A、计算机科学理论、计算机系统结构
    B、计算机软件、计算机网络
    C、人工智能
    D、本题所有选项及其他

8、视频中主讲教师介绍了几十年来计算机科学技术的主要发展趋势,这些趋势悄然地改变着人们的生活。例如,当今,人们在日常生活中可以通过电脑或手机随时随地与世界各地的网友进行聊天。那么,这个现象是以下哪一个趋势带来的变化?
    A、巨型化
    B、微型化
    C、网络化
    D、交叉化

9、本讲介绍的软件工程方法发展历程的正确顺序是________。
    A、结构化方法->面向对象的方法->构件化方法和Web Services->面向服务的SOA方法->基于互联网与云计算的软件开发方法
    B、面向对象的方法->结构化方法->构件化方法和Web Services->面向服务的SOA方法->基于互联网与云计算的软件开发方法
    C、面向对象的方法->结构化方法->面向服务的SOA方法->构件化方法和Web Services->基于互联网与云计算的软件开发方法
    D、结构化方法->面向对象的方法->面向服务的SOA方法->构件化方法和Web Services->基于互联网与云计算的软件开发方法

10、本讲介绍的软件工程技术的主要发展趋势是________。
    A、新型软件体系结构及开发方法
    B、软件构件化、软件服务化
    C、软件需求工程、软件领域化
    D、本题所有选项及其他

11、视频中主讲教师介绍的软件工程科学技术范畴有________。
    A、软件过程、软件开发方法
    B、软件需求工程、软件体系结构
    C、软件开发工具与环境、软件复用与软构件
    D、本题所有选项及其他

12、由IEEE CS发布的SWEBOK 3.0版,成为软件工程知识体系的样板,其内容都是被普遍接受的,并应用与大多数软件项目的知识。有能力的软件工程人员,为了胜任潜在的应用应该具有的这些知识。该知识体系包含的知识领域有________。
    A、软件需求、软件设计、软件构造、软件测试、软件维护
    B、软件质量、软件工程管理、软件配置管理、软件工程模型与方法
    C、软件工程过程、软件工程经济学、软件工程职业实践、计算基础、工程基础、数学基础
    D、本题所有选项

13、面向中国软件工程教育需要,基于SWEBOK 3.0及相关知识体系, 结合中国软件工程教育的实践经验,中国软件工程教指委提出面向中国的软件工程知识体系C-SWEBOK,支持中国高校的软件工程专业教育。该知识体系新增了2个知识领域,改造和扩充了1个知识领域。请问以下哪个不属于这三个新增或改动的知识领域?
    A、软件服务工程
    B、软件工程典型应用
    C、软件工程模型与方法
    D、软件工程职业实践

14、下列选项中,不属于系统软件的是________。
    A、办公软件
    B、操作系统
    C、数据库管理系统
    D、编译器与解释器

15、下图的网络结构是________。
    A、星型结构
    B、总线型结构
    C、环型结构
    D、树型结构

16、下列选项中,不属于结构化编程语言的是________。
    A、Java语言
    B、Fortran语言
    C、Pascal语言
    D、C语言

17、下列选项中,不属于面向对象编程语言的是________。
    A、C语言
    B、C++
    C、Java
    D、C#

18、视频中主讲教师提到,当今世界处于信息化时代,需要运用计算机、各类软件、软件工程来完成对自然/社会现象的计算化和问题求解,因此,作为软件工程专业的学生需要了解相关的概念有________。(多选题)
    A、计算机系统
    B、计算机软件
    C、软件系统
    D、软件工程

19、视频中主讲教师介绍的软件工程关注点包括________。(多选题)
    A、软件开发过程
    B、软件开发方法
    C、软件开发工具
    D、软件开发质量

20、本讲介绍的软件工程学科设置中包括________。(多选题)
    A、软件科学理论
    B、软件服务工程
    C、软件工程技术
    D、领域软件工程

21、指令是指挥计算机工作的指示和命令,在计算机内部用二进制表示,由操作码(操作类型)与操作数(地址)组成。而程序是为实现特定目标或解决特定问题而用计算机语言编写的命令(指令)序列的集合。

22、1948年, Von Neumann领导发明了世界上第一部通用计算机,他提出的冯•诺依曼结构采用了“存储程序”和“程序控制”原理,对计算机体系结构的影响一直延续至今。以上的叙述是否正确?

23、随着集成电路技术的发展和成熟,(超大规模)集成电路逐步取代了电子管和晶体管成为了计算机的主要元器件,从而使得计算机的运算速度不断提高。以上的叙述是否正确?

24、本讲介绍了催生软件工程技术领域的软件危机,请判断以下对该危机的叙述是否正确。1960年代后期爆发的软件危机暴露了软件开发中的一系列问题,例如,对软件开发工作量和成本估计不准,软件开发进度难以控制,软件产品质量与可靠性差强人意,等,为此人们开始考虑按照工程化原则和方法组织软件开发工作。

第二讲 计算思维起步--符号化、计算化与自动化

本讲模拟练习题(不计分)随堂测验

1、逻辑运算是最基本的基于“真/假”值的运算,也可以被看作是基于“1/0”的运算,1为真,0为假。关于基本逻辑运算,下列说法不正确的是_____。
    A、“异或”运算是“相同为1,不同为0”
    B、“与”运算是“有0为0,全1为1”
    C、“或”运算是“有1为1,全0为0”
    D、“非”运算是“非0则1,非1则0

2、
    A、1,0
    B、0,0
    C、0,1
    D、1,1

3、
    A、1,1
    B、0,0
    C、0,1
    D、1,0

4、逻辑的符号化案例,启示我们________。
    A、其它各选项全部
    B、逻辑运算可以被认为是基于0和1的运算,其本质是一种基于位的二进制运算
    C、形式逻辑的命题与推理可以基于0和1的运算来实现
    D、硬件设计的基础理论--布尔代数,即是将逻辑与0和1的运算结合起来的一种数字电路设计理论

5、将十六进制数586转换成16位的二进制数,应该是 。
    A、0000 0101 1000 0110
    B、0110 1000 0101 0000
    C、0101 1000 0110 0000
    D、0000 0110 1000 0101

6、下列数中最大的数是 。
    A、
    B、
    C、
    D、

7、关于十进制245的下列说法不正确的是 。
    A、它转换为二进制表示为1101 0101
    B、它转换为八进制表示为365
    C、它转换为十六进制表示为0F5
    D、其它各项都是正确的

8、关于计算机为什么基于二进制数来实现,下列说法不正确的是 。
    A、二进制可以用逻辑运算实现算术运算
    B、能表示两种状态的元器件容易实现
    C、二进制运算规则简单,易于实现
    D、其它各项说法有不正确的

9、关于二进制算术运算,下列说法不正确的是 。
    A、二进制算术运算的符号位不能和数值位一样参与运算但能得到正确的结果
    B、二进制算术运算可以用逻辑运算来实现
    C、二进制算术运算的符号位可以和数值位一样参与运算并能得到正确的结果
    D、其它各项说法有不正确的

10、关于二进制数计算部件的实现,下列说法正确的是 。
    A、设计和实现一个最简单的计算部件只需实现逻辑与、或、非、异或等基本运算即可,则所有加减乘除运算即可由该计算部件来实现
    B、设计和实现一个最简单的计算部件只需实现加法运算,则所有加减乘除运算即可由该计算部件来实现
    C、设计和实现一个最简单的计算部件需要实现加法运算和乘法运算,则所有加减乘除运算即可由该计算部件来实现
    D、设计和实现一个最简单的计算部件需要分别实现加、减、乘、除运算,则所有加减乘除运算才可由该计算部件来实现

11、已知A-Z的ASCII码是42H-51H,请将下面一段ASCII码存储的文件解析出来,正确的是______。 “0100 0111 0100 0101 0100 0111 0100 0110 0100 1000 0100 0010”
    A、HBGFGE
    B、HBFFEG
    C、GEGFHB
    D、GBHEGB

12、下列说法不正确的是______。
    A、任何信息,若想用计算机进行处理,只需要将其用0和1表示出来即可
    B、数值信息可采用二进制数进行表示
    C、非数值信息可采用基于0/1的编码进行表示
    D、其它各项说法有不正确的

13、0和1的思维反映了语义符号化è符号计算化è计算0(和)1化è0(和)1自动化è分层构造化è构造集成化,关于此思维的说法不正确的是______。
    A、符号化计算化是社会/自然与计算融合的基本思维模式,即:若要使任何社会/自然问题被计算机处理,则首先要将该问题相关的内容符号化并提出相应的计算规则
    B、0和1是实现任何计算的基础,是最基本的抽象与自动化机制
    C、0和1是连接硬件与软件的纽带,理论上来说,任何计算既可以由硬件实现,也可以由软件实现
    D、其它各项说法有不正确的

14、下列说法中,不正确的是______。
    A、当X和Y都为假时, X AND Y也为假;其他情况, X AND Y均为真。
    B、当X和Y都为真时, X AND Y也为真;其他情况, X AND Y均为假。
    C、当X为真时, NOT X为假;当X为假时, NOT X为真。
    D、当X和Y都为真或都为假时, X XOR Y为假;否则, X XOR Y为真。

15、下列说法中,正确的是______。
    A、高级语言编程效率比机器语言高,执行效率比机器语言低。
    B、高级语言编程效率比机器语言高,执行效率比机器语言高。
    C、高级语言编程效率比机器语言低,执行效率比机器语言低。
    D、高级语言编程效率比机器语言低,执行效率比机器语言高。

16、下列说法中,不正确的是______。
    A、高级语言具有机器相关性;汇编语言具有机器无关性。
    B、所有计算机语言的程序都必须转换成机器语言程序,机器才能够执行。这种转换,是由“编译”程序来实现的。
    C、高级语言编程效率比机器语言高,执行效率比机器语言低。
    D、高级语言具有机器无关性;汇编语言具有机器相关性。

17、关于十进制235,下列正确的是______。
    A、其ASCII码为0011 0010 0011 0011 0011 0101
    B、其ASCII码为0000 0010 0000 0011 0000 0101
    C、其ASCII码为1110 1011
    D、其ASCII码为0010 0011 0101

18、假设基本门电路的符号为, 已知如下电路 问该电路所实现的正确的逻辑运算为______。
    A、P = A XOR B
    B、P = (A AND B) AND (A OR B)
    C、P = NOT (A AND B) AND (A AND B)
    D、P = (A OR B) AND (A AND (NOT B))

19、假设基本门电路的符号为,已知如下电路 问该电路不能实现的功能为______。
    A、当A=1,B=1, 则P=1
    B、当A=1,B=0, 则P=1
    C、当A=0,B=1, 则P=1
    D、当A=0,B=0, 则P=0

20、假设基本门电路的符号为 已知如下电路 问该电路不能实现的功能为______。
    A、当A=0,B=1, 则P=0
    B、当A=1,B=0, 则P=1
    C、当A=1,B=1, 则P=1
    D、当A=0,B=0, 则P=

21、假设基本门电路的符号为 已知如下电路 问该电路所实现的正确的逻辑运算为______。
    A、P = A XOR B
    B、P = NOT (A AND B) AND (A AND B)
    C、P = (A AND (NOT B)) AND ((NOT A) OR B)
    D、P = (A OR B) AND (A AND (NOT B))

22、假设基本门电路的符号为 已知如下电路 问该电路不能实现的功能为______。
    A、当A=1,B=1, 则P=1
    B、当A=1,B=0, 则P=1
    C、当A=0,B=1, 则P=1
    D、当A=0,B=0, 则P=0

第三讲 软件与程序思想--组合-抽象-重复-构造-递归

本讲模拟练习题(不计分)随堂测验

1、关于计算系统与程序,下列说法正确的是_____。
    A、任何系统都需要程序,只是这个程序是由人来执行还是由机器自动执行,可以由机器自动执行程序的系统被称为计算系统
    B、只有用计算机语言编写出来的代码才是程序,其他都不能称其为程序
    C、构造计算系统是不需要程序的,程序对构造计算系统没有什么帮助
    D、程序是用户表达的随使用者目的不同而千变万化的复杂动作,不是使用者实现的而是需要计算系统事先完成的

2、关于程序,下列说法不正确的是_____。
    A、普通人是很难理解“程序”的,其也和“程序”无关
    B、“程序”是由人编写的、以告知计算系统实现人所期望的复杂动作
    C、“程序”可以由系统自动解释执行,也可以由人解释由系统执行
    D、“程序”几乎和每个人都有关系,如自动售票系统、自动取款机等

3、关于程序,下列说法不正确的是_____。
    A、抽象是对各种元素的组合进行命名,并将该名字用于更复杂的组合构造中
    B、程序的基本特征是复合、抽象与构造
    C、复合就是对简单元素的各种组合,即将一个(些)元素代入到另一个(些)元素中
    D、其它各项说法有不正确的

4、一般而言,设计和实现一个计算系统,需要设计和实现_____。
    A、基本动作、控制基本动作的指令和一个程序执行机构
    B、基本动作和程序
    C、基本动作和控制基本动作的指令
    D、基本动作、控制基本动作的指令和程序

5、一般而言,一个较高抽象层次的计算系统是可以这样实现的,即_____。
    A、高抽象层次的程序通过其程序执行机构解释为高抽象层次的指令及其操作次序
    B、将较低抽象层次的重复性组合,命名为较高抽象层次的指
    C、利用较高抽象层次的指令进行复合、抽象与构造,即形成高抽象层次的程序
    D、以上三项全包括

6、熟悉下列运算组合式(前缀表达式),其中结果为56的是_____。
    A、(* (+ 5 3) (+ 5 2))
    B、(* 7 (+ 5 2))
    C、(+ 20 (+ 6 6))
    D、(- (* 9 8) (- 20 2))

7、已知一个新运算被定义为(define (newCalc x y) (* (+ x 1) (* y 2))),问newCalc可以完成的计算功能为_____。
    A、(x+1)*2y
    B、(x+1)+2y
    C、(x+1) +(y+2)
    D、(x+1)*(y+2)

8、已知一个新运算被定义为(define (newCalc x y) (* (+ x 1) (* y 2))),问正确使用了newCalc并得到正确结果的为_____。
    A、(newCalc 4 5),其结果为50
    B、((newCalc) (4 5)),其结果为50
    C、(newCalc 4),其结果为40
    D、(newCalc 2 3),其结果为21

9、已知一个新运算被定义为(define (newCalc x y) (* (+ x 1) (+ y 1))),问(newCalc (newCalc (newCalc 1 1) 2) 3)的计算结果为_____
    A、24
    B、64
    C、13
    D、6

10、已知一个新运算被定义为(define (newCalc x y) (* (+ x 1) (+ y 1))),问(newCalc (newCalc (newCalc 1 1) (newCalc 1 1)) (newCalc 1 1))的计算结果为_____。
    A、1
    B、130
    C、64
    D、8

11、若要表达从1计算到n的运算组合式,(* …(* (* (* (* 1 1) 2) 3) 4) …n) 定义一个过程。正确的定义为_____。
    A、(define (f product counter max-count) (cond ((> counter max-count) product) ((<= counter max-count) (f (* counter product) (+ counter 1) max-count )) ))
    B、(define (f product counter max-count) (f (* counter product) (+ counter 1) max-count ))
    C、(define (f product counter max-count) (cond ((> counter max-count) product) ((<= counter max-count) (f (counter*product) (counter+ 1) max-count )) ))
    D、(define (f product counter max-count) (cond ((> counter max-count) product) ((<= counter max-count) (f product counter max-count )) ))

12、已知f(x)=x,, 其中均为自然数,新函数h可递归的构造如下:h(0,x) = f(x), 且h(S(n), x) = g(h(n,x),n,x),其中S(n)为后继函数,请按递归式进行计算下列式子,正确的是_____。
    A、h(4,x) = 5x+6
    B、h(1,x) = x
    C、h(2,x) = 2x
    D、h(3,x) = 3x+1

13、已知f(x)=5,,其中均为自然数,新函数h可递归的构造如下: h(0,x) = f(x), 且h(S(n), x) = g(h(n,x),n,x),其中S(n)为后继函数,请按递归式进行计算下列式子,正确的是_____。
    A、h(1,x) = 5
    B、h(2,x) = 5+x
    C、h(3,x) = 5+2x
    D、h(4,x) = 5+3x

14、已知,其中均为自然数,新函数h可递归的构造如下:h(0,x) = f(x), 且h(S(n), x) = g(h(n,x),n,x),其中S(n)为后继函数,请按递归式进行计算下列式子,不正确的是_____。
    A、h(1,x) = x
    B、h(2,x) = 2x
    C、h(4,x) = 12x
    D、h(3,x) = 6x

15、关于“递归”,下列说法不正确的是_____。
    A、“递归”是由前n-1项计算第n项的一种方法
    B、“递归”是自后项(即第n项)向前项(第n-1项)代入,直到递归基础获取结果,再从前项计算后项获取结果,直至最终结果的获得
    C、“递归”源自于数学上的递推式和数学归纳法
    D、“递归”与递推式一样,都是自递推基础计算起,由前项(第n-1项)计算后项(第n项),直至最终结果的获得

16、关于“递归”,下列说法不正确的是_____。
    A、可以利用“递归”进行具有自相似性无限重复事物的定义
    B、可以利用“递归”进行具有自重复性无限重复动作的执行,即“递归计算”或“递归执行”
    C、可以利用“递归”进行具有自相似性无限重复规则的算法的构造
    D、其它各项说法不全正确

17、关于递归定义的函数,下列说法正确的是_____。
    A、递归定义的函数一定是“递归计算”的
    B、有些递归定义的函数可以“迭代计算”,有些递归定义的函数则必须“递归计算”
    C、凡是可以“迭代计算”的函数,一定可以“递归计算”,凡是可以“递归计算”的函数,也一定可以“迭代计算”
    D、递归定义的函数一定是“迭代计算”的

18、用递归是可以定义语言的。如表述命题逻辑的一种语言可以如下定义: (1)一个命题是其值为真或假的一个判断语句; (2)如果X是一个命题,Y也是一个命题,则X and Y,X or Y, not X也是一个命题; (3)如果X是一个命题,则(X)也是一个命题,括号内的命题运算优先; (4)命题由以上方式构造。 若X,Y,Z,M等均是一个命题,问不符合上述递归定义的语句是_____。
    A、(X)
    B、((X and Y) or (not Z)) and (not M)
    C、X
    D、( X and Y not Z)

19、关于“程序”和“递归”的关系,下列说法不正确的是_____。
    A、“程序”是计算系统体现千变万化功能的一种重要手段:计算系统仅需要实现简单元素以及一个程序执行机构即可
    B、其它各项说法有不正确的
    C、“程序”的基本特征是复合、抽象与构造。而最重要的是,如何解决近乎无限的、具有自相似性的复杂组合的构造问题,这就需要递归和迭代
    D、本质上讲,“程序”就是对简单元素的组合(或称复合);此外,“程序”需要有能力对一些常见的组合A进行命名,并利用该名字参与更为复杂的组合B的构造中,此即为“抽象”;在执行时(或称计算时),再将该组合A替换组合B中的该名字,实现计算并获取结果

20、下列说法中,不正确的是_____。
    A、递归是一种算法或程序的构造技术---自身调用自身,高阶调用低阶,构造无限的计算步骤
    B、递归是一种典型的计算/执行过程---先由后向前代入,再由前向后计算
    C、递归是一种典型的计算/执行过程---先由前向后计算,再由后向前代入
    D、递归是一种关于抽象的表达方法---用递归定义无限的相似事物

21、程序的三种基本控制结构是_____。
    A、过程、子程序和分程序
    B、顺序、分支和循环
    C、调用、返回和转移
    D、递归、堆栈和队列

22、结构化程序设计的一种基本方法是_____。
    A、递归法
    B、迭代法
    C、逐步求精法
    D、筛选法

23、递归计算是重要的执行手段。例如一种形式的阿克曼函数如下所示: 任何一个A(m, n)都可以递归地进行计算,例如A(1,2)的递归计算过程如下所示: A(1,2) = A(0,A(1,1)) = A(0, A(0,A(1,0))) = A(0, A(0,A(0,1)))=A(0,A(0,2))=A(0,3)=4。 请你按上述方法递归计算下列项,并判断,计算结果正确的是_____。
    A、A(2, 0) = 2
    B、A(1, 8) = 9
    C、A(2, 1) = 4
    D、A(1, n) = n + 2

24、递归计算是重要的执行手段。例如一种形式的阿克曼函数如下所示: 任何一个A(n, m)都可以递归地进行计算,例如m=1时,A(n,1)的递归计算过程如下所示: m=1时,A(n,1)=A(A(n-1,1),0)=A(n-1,1)+2,和A(1,1)=2故A(n,1)=2n 请你按上述方法递归计算m=2时,即A(n,2),并判断计算结果正确的是_____。
    A、A(n, 2) =
    B、A(n, 2) =
    C、A(n, 2) = 2n
    D、A(n, 2) = n+2

25、用条件运算符定义一个过程。正确的定义为_____。
    A、
    B、
    C、
    D、

26、用条件运算符定义一个过程。正确的定义为_____。
    A、
    B、
    C、
    D、

27、已知一个运算被定义为(define (firstCalc x) (* x x)),在其基础上进一步定义新运算secondCalc为,下列运算组合式书写正确的是_____。
    A、(define (secondCalc x y z) (+ firstCalc x y z))
    B、(define secondCalc (+ (firstCalc x) (firstCalc y) (firstCalc z)))
    C、(define secondCalc x y z (+ (firstCalc x) (firstCalc y) (firstCalc z)))
    D、(define (secondCalc x y z) (+ (firstCalc x) (firstCalc y) (firstCalc z)))

28、已知一个运算被定义为(define (firstCalc x) (* x x)),在其基础上进一步定义新运算为(define (secondCalc x) (firstCalc (firstCalc (firstCalc x)))),问secondCalc表达的运算功能为_____。
    A、
    B、++
    C、
    D、

29、斐波那契数列与阿克曼函数都是递归函数,但它们是不同的,下列说法不正确的是_____。
    A、斐波那契数列是原始递归的,而阿克曼函数不是原始递归的
    B、阿克曼函数是双递归函数,不仅函数自身是递归定义的,同时函数的变量也是递归定义的
    C、阿克曼函数也可如斐波那契数列一样自前项(第n-1项)计算到后项(第n项
    D、斐波那契数列可以递推地计算即迭代计算;而阿克曼函数只能递归地计算

30、对于计算式,其正确的运算组合式(前缀表示法)为_____。
    A、(/ (/ 20 (+ 10 (+ 8 4))) (* (+ 3 6) (+ 8 2)))
    B、((10 + (20 / (8 + 4))) / ((3 * 6) + (8 * 2)))
    C、(/ (+ 10 (/ 20 (+ 8 4))) (+ (* 3 6) (* 8 2)))
    D、(/ (+ 10 / 20 + 8 4) (+ * 3 6 * 8 2 ))

31、请用define运算,定义一个过程实现计算,其正确定义的过程为_____。
    A、(define (cube x) (* x x x))
    B、(define (cube a (* a a a))
    C、(define cube a (* a a a))
    D、(define (cube a) (* x x x))

第四讲 软件之灵魂--算法

本讲模拟练习题(不计分)随堂测验

1、关于算法的特性,下列说法不正确的是_____。
    A、算法可以有零个或多个输入,也可以有零个或多个输出,此即算法的输入输出性
    B、算法必须有明确的结束条件,即算法应该能够结束,此即算法的有穷性
    C、算法的步骤必须要确切地定义,不能有歧义性,此即算法的确定性
    D、算法中有待执行的运算和操作必须是相当基本的,可以由机器自动完成,进一步,算法应能在有限时间内完成,此即算法的能行性

2、关于算法的命题,下列说法不正确的是_____。
    A、算法所规定的计算/处理步骤是有限的,但算法实际执行的计算/处理步骤可以是无限的
    B、算法规定了任务执行/问题求解的一系列、有限的步骤
    C、算法可以没有输入,但必须有输出
    D、算法的每一个步骤必须确切地定义,且其运算和操作必须相当基本,可以由机器自动完成

3、关于算法与程序、计算机语言之间的关系,下列说法不正确的是_____。
    A、算法只能由高级(计算机)语言实现,不能通过机器语言实现
    B、算法是解决问题的步骤,某个问题可能有多个求解算法
    C、算法不能直接由计算机执行,必须将其转换为程序才能够由计算机执行
    D、求解问题的多个算法不一定获得相同的解

4、算法是计算系统的灵魂,为什么?不正确的是_____。
    A、问题求解都可以归结到算法的构造与设计,系统和算法的关系是:算法是龙,而系统是睛,画龙要点睛
    B、计算系统是执行程序的系统,而程序是用计算机语言表达的算法
    C、一个问题的求解可以通过构造算法来解决,“是否会编程序”本质上讲是“能否想出求解该问题的算法”
    D、一个算法不仅可以解决一个具体问题,它可以在变换输入输出的情况下,求解一个问题系列

5、哥尼斯堡七桥问题,推而广之就是m个顶点n条边的图的“一笔画”问题,我们可以给出一个算法来求解该问题,即“对河流隔开的m块陆地上建造的n座桥梁,若要找到走遍这n座桥且只许走过每座桥一次的路径”。 关于该算法的基本思想,下列说法正确的是_____。
    A、以任何一个顶点为起点,按照图的“边”的指示,找到按该边与该顶点相连的下一个顶点,并标记该边为“已访问”,依次循环,直到所有的边都被访问过为止,便可找到给定问题的解
    B、以任何一个顶点为起点,按照图的未访问过“边”的指示,找到按该边与该顶点相连的下一个顶点,并标记该边为“已访问”,依次循环,直到所有的边都被访问过为止,便可找到给定问题的解
    C、首先判断该问题是否有解,若无解,则直接退出;若有解,则选择一个奇数度的顶点为起点,按照图的未访问过“边”的指示,找到按该边与该顶点相连的下一个顶点,并标记该边为“已访问”,依次循环,直到所有的边都被访问过为止,便可找到给定问题的解
    D、首先判断该问题是否有解,若无解,则直接退出;若有解,则以任何一个顶点为起点,按照图的未访问过“边”的指示,找到按该边与该顶点相连的下一个顶点,并标记该边为“已访问”,依次循环,直到所有的边都被访问过为止,便可找到给定问题的解

6、TSP-旅行商问题,是一个经典问题,如下图所示,描述为“有n个城市,任何两个城市之间的距离都是确定的,现要求一旅行商从某城市出发必须经过每一个城市且只能在每个城市逗留一次,最后回到原出发城市,问如何事先确定好一条最短的路线使其旅行的费用最少”。围绕TSP,回答问题:关于TSP问题的遍历算法和贪心算法,下列说法正确的是_____。
    A、对TSP问题而言,遍历算法和贪心算法求得的解是一样的,所不同的是贪心算法更快一些,而遍历算法更慢一些
    B、对TSP问题而言,遍历算法和贪心算法求得的解是不一样的,贪心算法是求近似解,执行更快一些,而遍历算法是求精确解,执行更慢一些
    C、对TSP问题而言,遍历算法和贪心算法求得的解是一样的,所不同的是遍历算法更快一些,而贪心算法更慢一些
    D、对TSP问题而言,遍历算法和贪心算法求得的解是不一样的,贪心算法是求精确解,执行更快一些,而遍历算法是求近似解,执行更慢一些

7、TSP-旅行商问题,是一个经典问题,如下图所示,描述为“有n个城市,任何两个城市之间的距离都是确定的,现要求一旅行商从某城市出发必须经过每一个城市且只能在每个城市逗留一次,最后回到原出发城市,问如何事先确定好一条最短的路线使其旅行的费用最少”。围绕TSP,回答问题:关于TSP的贪心算法的求解思想,下列说法不正确的是_____。
    A、无需对所有组合(所有可能解)进行比较,而仅需依照某种办法确定其中的一个组合即可,该组合不一定是最优解,但却是一个较优解或次优解
    B、贪心算法确定的路径,是由局部最优(即看来是最优的)组合起来的路径,该路径从全局角度也一定是最优的
    C、在确定一个组合时,是与相连接的城市中与距离最短的城市,即是由确定的,与连接的若干城市中的特性最优的城市
    D、对一个具体的TSP问题,每次执行贪心算法,所求得的最终解可能是不同的

8、关于数据结构,下列说法不正确的是______________。
    A、在树结构中,指针用于表达元素之间的逻辑关系——父子关系,每个元素的指针指向其父节点,因此一个元素可以有一个或多个指针
    B、数据结构由逻辑结构、存储结构及运算3部分组成
    C、存储结构定义了数据在存储器中的存储方式
    D、向量使用顺序存储结构,并借助元素在存储器中的相对位置来表示数据元素的逻辑关系

9、阅读下列算法,回答: Start of the algorithm(算法开始) (1) N=10; (2) i=2;sum=2; (3) 如果 i<=N,则执行第(4)步,否则转到第(8)步执行; (4) 如果i / 2 ==0 则转到第(6)步执行; (5) sum = sum + i; (6) i = i+1; (7) 返回到第(3)步继续执行; (8) 输出sum的结果。 End of the algorithm(算法结束) 算法执行的结果为_________。
    A、24
    B、55
    C、46
    D、26

10、算法的时间复杂性,可以表达为关于问题规模n的一个函数T(n),T(n)可以用大O表示法来处理。问T(n)=O(f(n))是什么意思?正确的是_________。
    A、T(n)是关于f(n)的一个函数
    B、T(n)是将函数f(n)代入O(x)中所形成的新函数
    C、T(n)是与f(n)同数量级的函数
    D、T(n)是依据f(n)计算出来的

11、下列说法中,不正确的是_________。
    A、有界循环是指“重复执行A直到条件Q成立”或“当Q成立时反复执行A”,其中Q是条件。
    B、算法的控制结构设计是指算法的计算规则或计算步骤设计。
    C、循环结构分为有界循环结构和条件循环结构。
    D、有界循环是指“执行A指令N次”,其中N是一个整数。

12、下列说法中,不正确的是_________。
    A、计算复杂性是指问题的一种特性,即利用计算机求解问题的难易性或难易程度。
    B、当算法的时间复杂度的表示函数是一个多项式时,如时,则对于大规模问题,计算机是无法执行该算法的。
    C、算法的复杂性包括时间复杂性和空间复杂性。
    D、当算法的时间复杂度的表示函数是一个多项式时,如时,则对于大规模问题,计算机是可以执行该算法的。

13、下列说法中,不正确的是_________。
    A、当算法的时间复杂度是用指数函数表示时,如或阶乘函数时,如O(n!),当n很大(如10000)时计算机是可以执行该算法的。
    B、算法的数据结构设计---问题或算法相关的数据之间的逻辑关系及存储关系的设计。
    C、算法的复杂性包括时间复杂性和空间复杂性。
    D、当算法的时间复杂度是用指数函数表示时,如或阶乘函数时,如O(n!),当n很大(如10000)时计算机是无法执行该算法的。

14、下列说法中,不正确的是_________。
    A、时间复杂度是指计算所需的步数或指令条数。
    B、计算机在有限时间内不能求解的问题是不可计算问题。
    C、空间复杂度是指计算所需的存储空间大小。
    D、计算机在有限时间内不能求解的问题是难求解问题。

15、一般而言,算法设计完成后,需要进行算法的模拟与分析。通常从哪些方面,进行算法的模拟与分析?_________。
    A、算法的正确性问题,即一个算法求得的解是满足问题约束的正确的解吗?
    B、算法的效果评价问题,即算法输出的是最优解还是可行解,其可行解与最优解的偏差有多大?
    C、算法的时间效率问题(时间复杂性),即算法执行所需要的时间是多少?
    D、其它三个选项全部。

16、阅读下面的程序,其时间复杂度为_________? int index = 5; int condition=1; if (condition==1) then index++; else index--; for i = 1 to 100 for j = 1 to 200 index=index+2;
    A、O(n)
    B、O(1)
    C、
    D、O(n*log n)

17、一般而言,算法设计完成后,需要进行算法的模拟与分析。关于算法的模拟与分析回答问题: 算法的时间复杂性T(n),可以通过评估算法基本语句的执行次数来获得。分析下列算法的时间复杂性。 Start of the algorithm(算法开始) (1) 输入结点的数目n; (2) 当前最短路径Path设为空,当前最短距离Dtemp设为最大值; 注:一个路径是n个结点的一个组合,任何一个结点在路经中不能重复出现 (3) 组合一条新路径NewPath并计算该路径的距离D; (4) 如果D<Dtemp 则Path = NewPath,且Dtemp = D; (5) 如果所有路径组合完毕,则结束;否则转第(3)步继续执行; (6) 输出Path及Dtemp; End of the algorithm(算法结束) 该算法的时间复杂性表达正确的是_________。
    A、O(n!)
    B、
    C、
    D、

18、哥尼斯堡七桥问题,是一个经典问题,如下图(a)所示,描述为“由河流隔开的四块陆地上建造了七座桥,寻找走遍这七座桥且只许走过每座桥一次最后又回到原出发点的路径”。关于哥尼斯堡七桥问题,著名数学家欧拉对该问题做了一个抽象:“顶点”为陆地,“边”为连接两块陆地的桥梁。这个抽象被称为“图”,并定义了顶点的“度”为连接一个顶点的边的数量。关于此问题回答问题: 参见图(c),增加哪些边,使得能够找到走遍每一座桥,且每座桥仅走过一次、最后又回到原出发点的路径呢? (C)
    A、BG边
    B、AG边
    C、AD
    D、CG边

19、TSP-旅行商问题,是一个经典问题,如下图所示,描述为“有n个城市,任何两个城市之间的距离都是确定的,现要求一旅行商从某城市出发必须经过每一个城市且只能在每个城市逗留一次,最后回到原出发城市,问如何事先确定好一条最短的路线使其旅行的费用最少”。围绕TSP,回答问题: 关于下列四个数学抽象,说法正确的是_____。
    A、只有数学抽象I是TSP问题,数学抽象II和III不是
    B、数学抽象I和III可以被认为是TSP问题,数学抽象II和IV不是
    C、数学抽象I、II、III和IV都可以被认为是TSP问题
    D、其它选项的说法都不正确

20、算法的时间复杂性T(n),可以通过计算算法基本语句的执行次数来获得。分析下列程序的时间复杂性。 (10) K = 0; (20) I = 2; (30) While (I<=8) (40) { K = K + I; (50) I = I + 2;} 该程序时间复杂性表达正确的是_________。
    A、O(1)
    B、O(n)
    C、
    D、O(n!)

21、对于算法类问题求解,下列说法正确的是_________。
    A、一般而言,算法类问题求解包括数学建模、算法策略设计、算法的数据结构与控制结构设计三个基本步骤
    B、一般而言,算法类问题求解包括数学建模、算法策略设计、算法的数据结构与控制结构设计、算法的程序实现、算法的正确性与复杂性分析五个基本步骤
    C、一般而言,算法类问题求解包括数学建模、算法策略设计、算法的数据结构与控制结构设计、算法的正确性与复杂性分析四个基本步骤
    D、其它三个选项的说法都正确

22、背包问题的定义是:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。背包问题的一个例子:应该选择哪些盒子,才能使价格尽可能地大,而保持重量小于或等于15 kg?其示意图如下: 假定求解该问题的一种贪心策略是:优先选择能装下盒子中价格最高的,依据该算法策略所得到的解的总价值是_____。
    A、13
    B、14
    C、15
    D、15

23、关于数据结构,下列说法不正确的是_____。
    A、数据结构是问题域数学模型中各种数据的存储结构
    B、数据结构是将逻辑上有一定语义关系的数据,转换成计算机可以存储和处理的变量,便于算法和程序进行处理
    C、数据结构是将具有一定语义关系的变量进行命名,以便隐藏数据结构内部的操作细节,便于算法按逻辑语义通过操控该名字来操控该数据结构
    D、其它选项的说法有不正确的

24、程序流程图是表达算法控制结构或者说算法步骤的重要方法。观察下图I.,没有错误的流程图为_________。
    A、没有无错误的流程图
    B、流程图(a)无错误
    C、流程图(b)无错误
    D、流程图(c)无错误

25、TSP算法流程图如下图I.示意,回答问题:最内层循环(L变量控制的循环)的作用是_________。
    A、用于判断某个城市是否是已访问过的城市
    B、用于寻找距当前城市距离最近的城市
    C、用于完整地产生一个路径
    D、其它三个选项都不是

26、一般而言,算法设计完成后,需要进行算法的模拟与分析。关于算法的模拟与分析回答问题:为什么要评估算法的复杂性?下列说法不正确的是_________。
    A、当算法的时间复杂性量级为非多项式函数时,如指数函数、阶乘函数时,计算机是不能够完成计算的
    B、当算法的时间复杂性量级为多项式函数时,计算机是能够完成计算的
    C、当算法的时间复杂性量级为非多项式函数时,如指数函数、阶乘函数时,对于大规模问题,计算机是不能够完成计算的
    D、其它三个选项的说法有不正确的

27、关于算法类问题的基本求解步骤,下列说法不正确的是_________。
    A、算法类问题求解首先要进行数学建模,即用数学语言对问题进行抽象
    B、一个问题,进行了数学建模后,可以通过模型的一些性质的分析判断该问题是否有解;在有解的情况下,再设计算法进行求解,否则则可能做的是无用功!
    C、一个问题,进行了数学建模后,可以依据数学的一些求解方法,设计出让计算机求解的算法
    D、其它选项的说法有不正确的

第五讲 软件系统构造--函数-对象-组件与软件框架

本讲模拟练习题(不计分)随堂测验

1、面向对象方法中的“对象”是一个个相互可以区分的个体,那么用于区分对象的是________。
    A、对象标识
    B、对象属性
    C、对象函数
    D、对象消息

2、视频中主讲教师介绍了传统面向过程的计算机语言(程序)的基本构成要素,那么下列不属于这些基本构成要素的是________。
    A、变量与常量
    B、表达式
    C、语句与函数
    D、事件响应

3、本讲在讲述如何实现“若干同类别对象,虽有相同的程序,但却处理不同的数据而产生不同的结果呢?”时介绍了抽象与封装技术,那么以下关于该技术的描述中有误的是________。
    A、数据结构封装了若干个变量
    B、函数封装了若干行的语句
    C、类/对象封装了若干数据结构和函数
    D、其他选项中有错误描述

4、下图给出了一个类的UML图,假设我们将这个类实例化后得到了两个对象a1和a2,选项中给出的对这个类或对象的操作语句中有误的是________。
    A、a1.attr1 = “hello world” //对象a1的数据attr1被赋值为“hello world”
    B、a2.attr2 = 20 //对象a2的数据attr2被赋值为20
    C、A.getAttr1()//调用类A中的getAttr1()的函数
    D、a2.setAttr2(15)// 调用对象a2中的setAttr2 ()的函数

5、本讲介绍了关于对象的创建及运行,以下对这部分内容的解释有误的是________。
    A、对象被创建之后会占用相对独立的内存区域
    B、基于一个类的定义可以创建出多个对象
    C、一个对象可以通过调用另一个对象中的函数,来实现与该对象的消息交互
    D、其他选项中有错误描述

6、本讲介绍了统一建模语言-UML(Unified Modeling Language),它是软件工程领域的一种共用的表达方法,也是软件工程专业学生必须要掌握的方法。以下关于UML的解释有误的是________。
    A、UML是面向对象程序分析、设计与构造的一种表达方法
    B、UML包含了类图/对象图、次序图、状态图、用例图等图形化的表达方法
    C、UML便于人们交流分析设计的成果
    D、其他选项中有错误描述

7、汽车是由各个部件组成的,例如,轮胎、引擎、车框、车窗等,但是这些部件与整体汽车并不是紧耦合的关系,换句话说,部件离开了车仍然可以存在。那么,当我们对汽车及其部件进行UML建模时,汽车及其部件之间的关系是________。
    A、继承关系
    B、关联关系
    C、聚合关系
    D、组合关系

8、从若干同类别对象中抽取相同或相似的特征,并将其定义成为一个具有若干的数据结构以及基于这些数据结构的操作的类。这属于面向对象技术中的什么概念________。
    A、抽象与封装
    B、继承
    C、多态
    D、实例化

9、视频中主讲教师介绍了面向过程的计算机语言,下列关于这部分内容的说法中有误的是________。
    A、程序的基本构成元素有变量与常量、表达式、语句与函数
    B、函数是若干语句的集合,是具有先后次序的若干语句的集合
    C、通过调用一个函数可以完成一个计算
    D、函数不可以独立定义,必须定义在主函数中

10、下图是UML统一建模语言中用于描述对象间交互关系的图,请问这类图被称之为:
    A、序列图
    B、状态图
    C、流程图
    D、类图

11、本讲介绍的统一建模语言-UML包含了多种图形化的表达方式,其中有类图、次序图、状态图等,以下关于这些图形化表达方式描述不正确的是________。
    A、类图是描述类及其之间关系的一种图示化方法
    B、状态图是描述对象/类的状态变化关系的一种图示化方法
    C、次序图是描述类的对象之间交互关系的一种图示化方法
    D、其他选项中有错误描述

12、本讲介绍了一种软件系统的构造环境Visual Basic (VB),讲解了VB所提供的对象框架,下列关于对象框架的描述中正确的是________。
    A、只有窗体才是VB对象框架中的对象
    B、窗体和控件都是VB对象框架中的对象
    C、只有控件才是VB对象框架中的对象
    D、窗体和控件都不是VB对象框架中的对象

13、本讲介绍了一种软件系统的构造环境Visual Basic (VB),描述了VB的特点,以下不是VB的特点的是________。
    A、可将用户的编程思想自动转换成程序代码
    B、集成可视化程序开发环境
    C、对象框架中的对象具有事件编程机制
    D、是一种基于对象框架构造软件的集成开发环境

14、以下关于用面向对象思维构造对象框架的说法有误的是________。
    A、对象框架中的每一个对象都是对同类别对象的共性内容进行了封装
    B、Visual Basic编程中拖拽生成的每一个文本框控件都是对象框架中文本框控件对象的一个副本(copy)
    C、对象框架中的每一个对象都会对应一个具体的类,这些类会事先完成初始化该类对象的工作,应用对象框架进行开发的程序员可以无需关心这部分的代码
    D、对于一个系统提供的对象可以识别哪些事件,需要应用对象框架进行开发的程序员自行决定

15、以下关于消息循环的叙述中有误的是________。
    A、消息循环是对象之间调用关系的一种处理机制
    B、Windows系统的消息循环会循环接收属于操作系统的消息
    C、应用程序的消息循环会接收属于该应用程序的消息
    D、来自Windows操作系统的消息可以依据消息和对象控制序列直接将消息发送给想对应的对象程序进行执行

16、本讲中介绍了组件/构件,给出了它的定义及作用描述,下列关于组件/构件的描述不正确的是________。
    A、组件/构件是可独立发布的二进制单元,即机器级程序文件,它将若干对象及其内部关系进行封装所形成的一个可执行程序文件
    B、组件/构件通常包括两部分:组件/构件接口和接口实现
    C、当程序员应用组件/构件进行开发的时候既要关心组件/构件内部的构造和实现细节,也需要了解如何按照对象或者组件的通信协议实现对组件/构件的使用
    D、组件/构件实现了解耦,即尽可能地消除软件之间或者软件的不同部分之间的联系

17、视频中主讲教师介绍了一种基于MVC(Model-View-Controller)结构框架实现用户界面与业务逻辑程序分离的方法。以下对于MVC的描述不正确的是________。
    A、Model指的是业务处理程序
    B、View指的是界面要素及其操作
    C、Controller指的是界面要素及其操作与业务处理程序的映射
    D、其他选项中有错误描述

18、本讲视频介绍了软件系统构造方法的演变史,那么符合视频讲解的正确的演变顺序是________。
    A、结构化程序构造->面向对象的程序->构件化系统->面向服务的体系结构SOA->基于Internet的软件开发与云计算体系结构
    B、结构化程序构造->面向对象的程序->面向服务的体系结构SOA->构件化系统->基于Internet的软件开发与云计算体系结构
    C、面向对象的程序->结构化程序构造 -> 面向服务的体系结构SOA->构件化系统->基于Internet的软件开发与云计算体系结构
    D、面向对象的程序->结构化程序构造->构件化系统->面向服务的体系结构SOA->基于Internet的软件开发与云计算体系结构

19、面向对象方法中,对象都将自己可以执行的一段代码封装成了对象函数,用于完成自身能提供的服务。对象只有在得到了请求之后,对象函数才会响应并得以执行。以上的说明是否正确?

20、视频中主讲老师提到了类的两种特性——继承和多态。其中,继承指的是一个对象(类)继承另一个对象(类)的属性与函数,并重定义父类的函数或者赋予同一函数名的函数参数不同的形式。以上说法是否正确?

21、视频中主讲教师介绍了一种由细到粗的传统程序构造及其表达方法,这种方法的基本思路是:首先编写一些基础性的函数,并确定其正确后,再处理上一层次的问题。上一层次的函数依据下层函数来编写,确认正确后再转至更上层问题处理。上述说法是否正确?

22、基于复用的软件开发指的是用可重复使用的软件组件开发应用程序,而面向复用的软件开发指的是开发可重复使用的软件组件。以上说法是否正确?

23、结构框架相当于一个容器,可以承载多种不同的构件,不同的构件之间需要按照通信协议进行连接,那么也就是说,在基于结构框架的应用程序开发中,可以由许多的程序员分别对不同的构件进行开发,同时为了保证完整的应用程序开发,程序员需要按连接约定编写连接件,从而结构框架才能按连接约定给予实现构件间的连接交互。以上说法是否正确?

24、面向服务的软件系统构造中,服务的基础是一个个的具有独立功能且可重用的构件,当我们运用一些特定的手段将这些构件的接口发布到网络当中(如,注册到ESB中)使其变成开放的接口,则这些构件就变成了Web Services。以上说法是否正确?

第六讲 软件生命周期

本讲模拟练习题(不计分)随堂测验

1、基本的软件过程包括需求分析、概要设计、详细设计、编码、测试、运行和维护等几个阶段。 其中,________ 阶段对每个模块要完成的工作进行具体描述,为源程序编写打下基础。
    A、需求分析
    B、概要设计
    C、详细设计
    D、编码

2、需求分析是指对解决现实世界某个问题的软件产品的描述,及对软件产品约束的描述。需求分析最终结果是产生________。
    A、软件设计说明书
    B、软件评测报告
    C、软件需求说明书
    D、“源程序”与“可执行程序模块”

3、软件生命周期一般包括:软件开发期和软件运行期,下述________不是软件开发期所应包含的内容。
    A、需求分析
    B、结构设计
    C、程序编制
    D、软件维护

4、在基本软件过程的各个阶段中, ________是指对解决现实世界某个问题的软件产品的描述,及对软件产品约束的描述。
    A、详细设计
    B、编码
    C、需求分析
    D、概要设计

5、软件设计是指要表达出怎样做出规定的软件,即将需求转换为可以实现的技术方案。软件设计最终结果是产生________。
    A、软件评测报告
    B、软件设计说明书
    C、“源程序”与“可执行程序模块”
    D、软件需求说明书

6、模型驱动的体系结构(MDA)是OMG组织提出的一种软件体系结构,它将建模阶段分为CIM、PIM、PSM和Code,模型之间需要做一些转换。以下关于MDA建模顺序正确的是________。
    A、CIM → PIM→ PSM → Code
    B、PIM → CIM→ PSM → Code
    C、PIM → CIM → Code → PSM
    D、Code → PIM → CIM → PSM

7、根据瀑布模型可知,软件从需求到运行可以被划分为一个一个的阶段,如需求分析、软件设计、编码、测试、运行和维护等。其中, ________阶段要表达出怎样做出规定的软件,即将需求转换为可以实现的技术方案。
    A、软件设计
    B、编码
    C、测试
    D、需求分析

8、本讲在讲述软件建模方法时,主讲教师介绍了面向对象的思维与方法。其基本思想是识别对象与类,以对象为中心,思维结果通过UML方法表达,辅之以文档和其他方法。下列各种图中,________不属于UML。
    A、类图
    B、状态图
    C、活动图
    D、数据流图

9、基本的软件过程包括需求分析、概要设计、详细设计、编码、测试、运行和维护等几个阶段。 其中, ________阶段把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应。
    A、概要设计
    B、编码
    C、详细设计
    D、需求分析

10、软件编码就好比一栋建筑的建造施工过程。它是指把软件设计转换成结构良好、清晰易读的,且与设计相一致的计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的“源程序清单”。软件编码阶段提交的结果是________。
    A、“源程序”与“可执行程序模块”
    B、软件评测报告
    C、软件设计说明书
    D、软件需求说明书

11、根据瀑布模型可知,软件从需求到运行可以被划分为一个一个的阶段,如需求分析、软件设计、编码、测试、运行和维护等。 其中, ________阶段把软件设计转换成结构良好、清晰易读的,且与设计相一致的计算机可以接受的程序代码。即写成以某一种特定程序设计语言表示的“源程序清单”。
    A、测试
    B、编码
    C、设计
    D、需求分析

12、软件测试是指测试软件是否满足规定的功能和性能,是否存在问题。测试是软件生命周期的重要组成部分。测试的目的是及早发现软件所存在的问题,避免出现缺陷导致事故。软件测试最终结果是产生________。
    A、软件评测报告
    B、软件需求说明书
    C、“源程序”与“可执行程序模块”
    D、软件设计说明书

13、原型化方法是用户和设计者之间执行的一种交互构成,适用于________系统。
    A、管理信息
    B、需求确定的
    C、实时
    D、需求不确定性高的

14、基本的软件过程包括需求分析、概要设计、详细设计、编码、测试、运行和维护等几个阶段。其中,________阶段的任务是如何改正软件运行过程中发现的缺陷、如何提高软件性能或其他属性、如何使软件产品适应新的环境。
    A、软件运行与维护
    B、测试
    C、编码
    D、设计

15、本讲在讲述软件建模方法时,主讲教师介绍了结构化思维与方法。其基本思想是自顶向下逐层分解,其思维结果通过图形化方法表达,辅之以文档和其他方法。下列各种图中,________不属于结构化思维方法中采用的图。
    A、类图
    B、PAD图
    C、IDEF图
    D、数据流图

16、本讲在讲述软件建模方法时,主讲教师介绍了形式化思维方法。其基本思想是数学、集合、图与逻辑。思维结果通过数学方法表达。基于数学的方法一般用于一致性检查、类型检查、有效性验证、行为预测, 设计求精验证。下列各选项中,________不属于形式化思维方法中采用的表达方法。
    A、VDM语言
    B、Z语言
    C、C语言
    D、Petri网

17、模型驱动的体系结构(MDA)是OMG组织提出的一种软件体系结构,它将建模阶段分为CIM、PIM、PSM和Code,模型之间需要做一些转换。以下关于CIM的叙述不正确的是________。
    A、用于软件设计层建模
    B、面向客户可理解,可确认
    C、面向业务领域
    D、将业务系统和软件系统统一考虑

18、模型驱动的体系结构(MDA)是OMG组织提出的一种软件体系结构,它将建模阶段分为CIM、PIM、PSM和Code,模型之间需要做一些转换。以下关于PIM的叙述不正确的是_______。
    A、用于实现层建模
    B、面向向程序编码人员可理解、可确认
    C、面向软件系统较为宏观、较为全局的设计
    D、不考虑开发时所用具体平台/技术

19、软件,如同其它有形产品一样,是有生命周期的。软件生命周期模型是指人们为开发更好的软件而归纳总结的软件生命周期的典型过程,以便实践中参照执行。上述说法是否正确?

20、模型是为某种目的而建立的关于系统及其环境的描述或规格说明。模型可以表达思想,促进思维,增进理解。模型可以使不可见的内容变成可见的内容,不可理解的内容变成可理解的内容,不清晰的内容变成清晰的内容。上述说法是否正确?

第七讲 理解问题--软件需求

本讲模拟练习题(不计分)随堂测验

1、“软件需求”被定义为软件用于解决真实世界问题而必须展示的特性,指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。以下关于需求的描述中,不正确的是 ________ 。
    A、需求是多样化的
    B、需求是可以量化的
    C、需求是固定的
    D、需求是可验证的

2、视频中主讲教师介绍了结构化思维方法的基础包括系统论基础、控制论基础和分解论基础三个方面。以下关于系统论基础的描述中,不正确的是________。
    A、系统是有组成要素的且各组成要素之间是有关联的
    B、系统通常是很复杂的,组成要素很多,每一个要素都需要描述
    C、系统是有目标的
    D、系统是有边界的

3、一般来说,需求分析涉及五个阶段:需求获取、需求建模、形成需求规约、需求验证和确认和需求管理。以下关于需求分析的描述中,不正确的是________。
    A、需求获取是指通过与用户的交流,对现有系统的观察,以及对任务的分析理解,捕获用户的需求
    B、需求建模是指为最终用户所看到的系统建立一个概念模型,作为对需求的抽象描述,并尽可能多地捕获现实世界的语义
    C、形成需求规约是指生成关于需求模型的精确的形式化的描述,作为用户和开发者之间的一个约定
    D、需求管理是指以需求规格说明为输入,通过符号执行、模拟或快速原型等途径,分析需求规格的正确性和可行性,包含有效性检查、一致性检查、可行性检查和可验证性确认等

4、软件需求是软件生命周期的第一个阶段。成功地开发软件产品,首先需要深入理解待用软件解决的问题----软件需求。需求分析最终结果是产生________。
    A、项目开发计划
    B、可行性分析报告
    C、需求规格说明书
    D、设计说明书

5、软件需求是软件生命周期的第一个阶段。成功地开发软件产品,首先需要深入理解待用软件解决的问题----软件需求。需求分析中,开发人员要从用户那里解决的最重要的问题是________。
    A、要给软件提供哪些信息
    B、让软件做什么
    C、要求软件工作效率怎样
    D、让软件具有何种结构

6、需求是使用简单、高阶和抽象的文字叙述来描述使用者需要的系统服务和操作限制,或正式定义系统详细功能的规格书。需求规格说明书的内容不应包括对________的描述。
    A、主要功能
    B、算法的详细过程
    C、用户界面和运行环境
    D、软件性能

7、IDEF0是一种典型的结构化思维表达方法。以下关于IDEF0的描述中,不正确的是________。
    A、在IDEF0中,“目标与控制”一般都是从下到上指向“功能”
    B、在IDEF0中,功能或活动构通常由矩形框表示
    C、在IDEF0中,输入都是从左面指向“功能”,输出都是从“功能”指向右面
    D、在IDEF0中,“支撑”一般都是从下到上指向“功能”

8、视频中主讲教师在讲解需求的多样性时,指出既可以从功能角度描述需求,又可以从过程角度描述需求。以下关于功能和过程的描述中,不正确的是________。
    A、功能体现了系统某一方面的静态特性。是可以分解的,从而形成了不同的层次。功能图是一种树形结构
    B、在从过程角度进行需求描述时,功能是不能重复的
    C、在从功能角度进行描述时,功能通常是不重复的
    D、过程体现了系统某一方面的动态性和交互性,体现了某一层面各功能的相互之间逻辑与次序关系

9、软件需求包括很多类别,在表达需求的时候,应该从哪一方面进行表达。________
    A、“产品需求”和“过程需求”
    B、“功能性需求”和“非功能性需求”
    C、“定性需求”和“定量需求”
    D、其它各项全部

10、需求建模(或称需求分析)是指为最终用户所看到的系统建立一个概念模型,作为对需求的抽象描述,并尽可能多地捕获现实世界的语义。在进行需求建模在进行时需要考虑什么问题。________
    A、需求分类
    B、概念建模
    C、体系结构设计与需求分配
    D、其它各项都包括

11、需求验证是指以需求规格说明为输入,通过符号执行、模拟或快速原型等途径,分析需求规格的正确性和可行性,包含有效性检查、一致性检查、可行性检查和可验证性确认等。如果需求能够表达成形式化的方式,就可以通过一些符号的执行、逻辑的判断来验证需求规格的正确性。有些时候可以通过模拟或仿真来判断。需求验证过程中需要进行________。
    A、需求评审
    B、原型法确认
    C、模型验证
    D、其它各项都包括

12、需求过程是迭代的过程,是迭代地向一个更详细和更好质量水平前进的过程。需求是需要认真管理的。需求管理是指在整个软件开发过程中,对需求进行管理,尤其管理需求变更,并追踪需求的实现途径。需求管理主要涉及________。
    A、变更管理
    B、需求追踪
    C、需求度量
    D、其它各项都包括

13、“软件工程知识体系指南(SWEBOK)”将软件工程学科的本体知识分为十余个知识域,各种重要概念之间的区别在每个知识域描述中都有阐述。其中关于软件需求的知识范畴包括________。
    A、软件需求基础、需求过程、需求捕获
    B、需求分析、需求规约、需求验证
    C、实际考虑、软件需求软件工具
    D、其它各项都包括

14、视频中主讲教师介绍了场景理解的一种思路,其中涉及到实物流、信息流和决策流。对于三者建立的顺序,下列说法正确的是________。
    A、信息流→实物流→决策流
    B、实物流→信息流→决策流
    C、决策流→实物流→信息流
    D、信息流→决策流→实物流

15、视频中主讲教师在讲解需求的多样性时,指出可以从多视角多层次来理解需求。其中视角包括________。
    A、What(是什么)、How(如何做)
    B、When(何时做)、Why(为什么要做)
    C、Where(在何处做)、Who(由谁来做)
    D、其它各项都包括

16、客户期望在需求阶段(从需求分析开始到需求分析结束)停留在一定水平,随着开发进行过程中与需求人员之间的交互,客户对软件的理解可能会有提升,因此随着时间的变化,客户对软件的期望也越来越高。以上的说法是否正确?

17、通常软件开发人员精通于程序的设计、软件的开发与构造,而软件应用人员精通于软件的应用,需要在二者之间架起一座桥梁,让软件应用人员和软件开发人员能够更好地进行理解,达到理解的一致性,这就是需求表达或需求分析。以上的说法是否正确?

18、需求是使用简单、高阶和抽象的文字叙述来描述使用者需要的系统服务和操作限制,或正式定义系统详细功能的规格书。软件代码是一个较精确的层面,称为“低阶”;而“高阶”是指更为宏观的、面向业务的,与软件代码离得比较远层次。以上的说法是否正确?

19、一般来说,需求是在描述系統应该做什么(What),而不是系统如何做到这些功能(How)。以上的说法是否正确?

20、需求是无止境的,客户提出的很多需求并不一定能完全满足。不能满足的时候可以不满足。以上的说法是否正确?

第八讲 软件的艺术--软件设计

本讲模拟练习题(不计分)随堂测验

1、本讲中主讲教师介绍了传统行业的设计,即将人们头脑中想象的事物表达成模型或文档的过程,进而介绍了“软件设计”的基本概念和特点,以下关于这部分的描述有误的是________。
    A、“软件设计”是依据需求分析结果,产生如何构造软件的相关技术文档和模型的过程。
    B、“软件设计”可以告诉软件构造者具体的软件构造方法。
    C、“软件设计”是软件生命周期中的关键活动,是一种创新活动,是一种艺术。
    D、其他选项中存在错误的描述。

2、本讲中主讲教师介绍了关于设计的一些说法,如,“设计是尝试将技术世界和目标世界结合在一起”,“设计是不断作出决策,使得最终设计达到最优”,“设计是天才+创造力, 是最充分展现设计者个人水平的工作”。请判断以下关于设计的其他说法中有误的是________。
    A、设计需要满足用户需求,可被应用和使用
    B、设计给予用户的体验应该是愉快的,赏心悦目的
    C、设计应该不含任何妨碍其功能的缺陷
    D、其他选项中存在错误的描述

3、本讲中主讲教师提到软件设计过程包括了总体设计(概要设计)和详细设计,前者主要对系统模块间的关系进行设计,后者主要对模块内部的具体逻辑进行详细的设计。那么在面向功能/过程的结构化软件设计过程中,不属于总体设计(概要设计)的是________。
    A、功能(模块)设计
    B、数据概念结构设计
    C、业务处理逻辑设计
    D、文件存储设计

4、本讲中主讲教师提到软件设计过程包括了总体设计(概要设计)和详细设计,前者主要对系统模块间的关系进行设计,后者主要对模块内部的具体逻辑进行详细的设计。那么在面向功能/过程的结构化软件设计过程中,不属于详细设计的是________。
    A、用户界面设计及界面处理规则设计
    B、数据库模式设计及文件存储设计
    C、数据结构设计及程序处理流程/逻辑设计
    D、输入输出(接口)设计

5、本讲主讲老师以库存管理系统的设计为例讲述了使用面向对象思维进行软件设计的过程,那么请问以下哪个顺序是正确的面向对象思维进行软件设计的过程?
    A、识别对象(类)->识别每一个对象(类)状态->识别每一对象(类)的状态的转换->识别对象(类)的功能
    B、识别对象(类)->识别对象(类)的功能->识别每一个对象(类)状态->识别每一对象(类)的状态的转换
    C、识别对象(类)->识别对象(类)的功能->识别每一对象(类)的状态的转换->识别每一个对象(类)状态
    D、识别对象(类)->识别每一对象(类)的状态的转换->识别每一个对象(类)状态->识别对象(类)的功能

6、本讲介绍了UML统一建模语言中用于描述(对象)类及其之间关系的一种图示化方法——UML类图。类图中的图元“类”具有三要素,请问以下选项中哪一项不属于该三要素?
    A、类名
    B、数据结构
    C、功能/方法/函数
    D、变量类型

7、本讲中主讲教师用库存记账-过账的例子讲解了三种不同的类设计方案:一种单据一个处理程序(类),多种单据一个处理程序(类),多种单据一个处理程序(类)+规则表。以下关于这三种类的设计方案说法有误的是________。
    A、一种单据一个处理程序(类)是一种紧耦合的设计方案,每增加一种单据就需要增加一种处理程序(类),这种方案可能存在一致性问题,并且每次拓展系统功能都需要修改程序。
    B、多种单据一个处理程序(类)是一种松耦合的设计方案,每增加一种单据不需要增加一种处理程序(类),仅需要在原有的处理程序(类)中增加一种处理逻辑,为此减少了每次系统功能拓展时的程序修改量。
    C、多种单据一个处理程序(类)+规则表是一种松耦合的设计方案,每增加一种单据不需要增加一种处理程序(类),只需要在规则表中增加一条逻辑处理规则,处理程序(类)会根据新增的规则逻辑进行自动的处理,为此每次拓展系统功能不需要修改程序。
    D、其他选项中有错误的说法。

8、本讲用服务中心系统与车队系统协同工作的例子介绍了一种直接连接式集成的软件体系结构设计方法。这种方法可以用于完成不同系统之间的功能调用,从而实现异构系统间的协作。那么下列关于这种设计方法描述不正确的是________。
    A、这种方法是一种紧耦合的设计
    B、服务中心系统需要知道车队系统相应的函数名才能完成对应方法的调用
    C、车队系统函数名发生变化,则服务中心系统的程序也需要随之改变,否则不能正确集成
    D、如果新增了车队,服务中心系统无需修改程序,就可以直接调用新增车队的系统的函数

9、本讲用服务中心系统与车队系统协同工作的例子介绍了一种基于中间件的间接连接式集成的软件体系结构设计方法。这种方法可以用于完成不同系统之间的功能调用,从而实现异构系统间的协作。其中,中间件实现了路由器的功能,可以为服务中心系统提供路径选择功能,能自动选择服务中心请求的车队系统进行对接,实现方法调用。那么,以下的哪个功能不属于该设计方法中路由器应有的功能?
    A、表示与存储:存储了一系列的路径选择规则(即什么条件,选择什么路径)
    B、执行:按服务中心系统给出的条件,查找规则,根据找到的规则,确定相应的路径即车队系统,实现二者的连接。
    C、转换:必要的话要进行格式的转换。不同车队有不同的信息格式,服务中心有统一的格式,与不同车队连接时,由路由器进行相应格式的转换。
    D、转发:将服务中心系统的请求同时转发给多个车队系统,实现服务中心系统与多车队系统的连接。

10、本讲介绍了两种不同的软件体系结构设计Client/Server (C/S)结构和Browser/Server (B/S)结构,以下关于这两种结构的说法有误的是________。
    A、两种体系结构都有服务器端程序用于处理全局性集中性的内容。
    B、C/S结构中需要为每一个客户机安装客户端程序用于处理局部性个体性的内容。
    C、B/S结构不需要为每一个客户机安装客户端程序,只需使用通用浏览器即可,但是为了处理局部性个体性的内容,需要为浏览器安装相应插件。
    D、服务器端程序发生变化的时候,C/S结构需要对每一处客户机的客户端程序进行更新,B/S结构的更新只需在服务器端进行即可。

11、本讲中主讲教师提出软件设计的本质是抽象与构造,并介绍了软件工程学科必需的三种手段:抽象-理论-设计,下列关于这三种手段的说法有误的是________。
    A、抽象--是感性认识世界的手段。理论和设计的前提都需要抽象,没有抽象二者都是没有办法达成目标的(抽象的价值)
    B、设计--是指构造软件系统来改造世界的手段,是工程的主要内容,只有设计才能造福于人类(设计的价值)
    C、理论--是发现世界规律的手段,理论,如果不能指导设计,则是反映不出其价值的;设计,如果没有理论指导,则设计的严密性、可靠性、正确性是没有保证的(理论的价值)
    D、其他选择中有错误的说法

12、设计是构建软件系统的过程,是技术、原理在软件系统中实现的过程。本讲中主讲教师将其简化为“形式->构造->自动化”的过程。下列关于该过程的描述中有误的是________。
    A、我们可以基于抽象过程中得到的形式设计一种广义的“语言”,让用户表达其对具体需求进行表达,即形式与构造。
    B、基于广义“语言”设计软件系统自动执行用户用广义“语言”表达的需求,即自动化。
    C、基于已实现的“系统”,再设计应用程序,即不断地自动化。
    D、其他选项中有错误的说法。

13、抽象结果可以用设计手段进行设计范畴的表达,也可以用数学手段进行理论范畴的表达,抽象、理论、设计之间是存在着紧密的关系。以下对于抽象、理论、设计三者之间关系表述不正确的是________。
    A、抽象区分并命名了不同具体事物的每一个相同的形式要素,基于要素进行设计,可以做到从管理一个具体事物,变成管理所有的具体事物
    B、理论是数学化逻辑,严密化各种概念,在理论指导下的抽象会更加严密
    C、理论支持设计,建立设计正确性、完备性的判定方法
    D、其他选项中有错误的说法

14、本讲中主讲教师提到从使用者的角度来看,软件约等于功能组织加功能模块,其中功能模块包含了数据输入与展现方式的设计,以及操作的设计,但是在表层展现的背后还需要大量的程序处理设计。那么从设计者的角度来看,软件设计应该包括________。(多选题)
    A、数据组织方式设计、数据库概念结构设计及数据库模式设计
    B、用户界面设计、应用过程设计和输入输出接口设计
    C、状态变换关系设计及功能-角色区分与设计、业务处理逻辑设计及程序处理流程设计
    D、软件系统性能设计

15、本讲中主讲教师介绍了结构化软件设计要素及设计符号,以下关于这些要素和符号说法正确的是________。(多选题)
    A、数据流图可以用于功能/模块关系设计
    B、IDEF1X图/E-R图可以用于永久存储与数据库的设计
    C、程序流程图可以用于数据结构与算法的设计
    D、业务单据可以用于数据组织及输入输出方式的设计

16、本讲中主讲教师介绍了面向对象软件设计过程及设计要素与设计符号,以下关于这些要素和符号说法正确的是________。(多选题)
    A、类图可以用于类结构关系的设计
    B、状态图可以用于对象状态转换关系的设计
    C、次序图可以用于对象的函数调用关系的设计
    D、部署图可以用于节点关系的设计

17、理论是对抽象和设计内容进行严格定义及严密化论证的过程。本讲中主讲教师将其简化为“定义->性质(公理、定理)->证明”的过程。这个过程的具体工作内容是________。(多选题)
    A、将抽象形态区分出概念,用数学语言进行严格定义
    B、分析所定义概念的性质,形成公理
    C、进一步分析相关的衍生的但重要的性质,形成定理
    D、论证相关定理的正确性

18、本讲介绍的软件设计是软件工程生命周期的重要活动,它在分析软件需求的基础上,进一步产生软件内部结构的描述以作为软件构造的基础。上述描述是否正确?

19、面向对象方法是软件工程学科的一种典型的分析系统、设计系统的思维方法,它以对象为中心,逐一地独立地分析或设计系统每一对象的各种特性,达到系统分析与设计的目的。以上说法是否正确?

20、UML统一建模语言可以用于描述(对象)类及其之间关系,其中包括了继承关系、聚合关系、组合关系等,每一个类之间的连线都表达了不同的含义,因此在使用UML类进行建模的时候不可以随意地进行连线,非必要的连线会增加系统的复杂性,不正确的连线会混淆系统模块间的关联,最终导致系统功能及数据的不一致。以上说法是否正确?

21、本讲介绍的UML状态图是用于描述对象类的状态变化关系的一种图示化方法。该图示表示的内容为:某对象可能存在的各种状态,其中每一个状态都包含了该对象在此状态下可执行的动作,而在特定的动作执行之后,将可能使该对象从当前状态转变成为另一个状态。以上说法是否正确?

22、本讲介绍了基于软件体系结构的设计,其中软件体系结构包含了一系列的构件(即一组基本构成要素),以及这些要素之间的连接关系——连接件,另外还包括了,这些要素连接之后形成的拓扑结构(物理分布),以及作用于这些要素或连接关系上的限制条件,最后还包含了软件运行时的性能——质量。以上说法是否正确?

23、抽象是指由具体事物中发现其本质性特征和方法的过程,通过寻找相同的形式,以处理可变的内容。以上说法是否正确?