软考复习
计算机组成原理部分:
数字语音的采样频率定义为8KHz,这是因为(语音信号定义的频率最高值是4kHz)
采样频率大于等于工作频率的2倍,才能在以后恢复出实际波形,防止信息的丢失
高级编程语言:
在仅有字符a,b构成的所有字符串中,其中以b结尾的字符串合集可以表示为:()
(a|b)*b
编译原理:
在一阶段划分的编译过程中,判断语句的形式是否正确属于(语法分析)阶段的工作
词法分析阶段:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词,删掉无用信息,报告分析时的错误
语法分析阶段:语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式,赋值循环等,按语法规则分析检查每条语句是否有正确的逻辑解构
语义分析阶段: 主要是检查源程序是否存在语义错误,并收集类型信息供后面的代码生成阶段使用,如:赋值语句的右端和左端的类型不匹配。表达式的除数是否为零
操作系统:
某系统中有3个并发进程竞争资源R。每个进程需要5个R,那么至少需要(B)个R 。才能保证不会发生死锁。
A.12 B. 13 C.14 D.15
系统保证不发生死锁的资源数为:并发进程*(进程需要的资源数-1)+1.这样不管哪个进程得到最后这个资源都可以顺利执行完,释放它所占有的资源后,其他进程可以就行顺利执行
某计算机系统页面大小为4k,进程的页面变换表如下所示。若进程的逻辑地址为2D16H。该地址经过变换后,其物理地址应为()
页号 物理块号
0 1
1 3
2 4
3 6
A 2048H B 4096H C4D16H D.6D16H
分析:页面大小为4k,说明需要12位(4k=4096=2^12)来表示页内地址。2D16H表示十六进制数2016,转成二进制为0010 1101 0001 0110 从右向左划出12位表示页内地址,即0010 1101 0001 0110 红色部分表示页内地址,剩余的部分表示页号,页号为0010, 转成十进制为2,通过页表查询对应的物理块号为4,4的二进制为0100,再连上页内地址,所以物理地址为: 0100 1101 0001 0110 转成十六进制为:4D16H
26-28 进程P1,P2,P3,P4和P5的前趋图如下所示:
若用PV操作控制进程P1,P2,P3,P4,P5并发执行的过程,需要设置5个信号量S1,S2,S3,S4,S5,且信号量S1~S5的初值都等于零。如下的进程执行图中a和b处应分别写(B),c处和d处应分别写为(C);e和f处应分别写为(A)
软件工程:
例题:在进行软件开发时,采用无主程序员的开发小组,成员之间相互平等,而主程序员负责制的开发小组,由一个主程序员和若干成员组成,成员之间没有沟通。在一个由8名开发人员构成的小组中,无主程序员组合主程序员组的沟通路径分别是(D)
A.32和8 B .32和7 C 28和8 D 28和7
沟通渠道=N(N-1)/2, N是指参与沟通者的人数。所以8*7/2=28
成员之间没有沟通,只与主程序员沟通,所以沟通路径为7
软件开发是一门技术,也是一门艺术。
瀑布模型、极限编程、敏捷开发是有代表性的开发模式,在对开发者、客户、最终的产品的关注上的变化,体现了软件开发管理者在管理模式上的变化
是一种理想化的开发模型,要求有明确的需求分析,无法解决软件需求不明确或不准确的问题。瀑布模型像工厂流水线一样把软件开发过程分成各种工序,并且每个工序可以根据软件产品的规模、参与人员的多少进一步细分成更细的工序。更符合分层的设计思想,比较适合于大型软件的开发。也因此瀑布模型是使用最多的开发模型。
特点:
1、强调文档,前一个阶段的输出就是下一个阶段的输入。文档是各个阶段衔接的重要信息,所以文档
为重中之重。但是各个阶段之间产生大量的文档,极大地增加了工作量。
2、没有迭代与反馈。瀑布模型对反馈没有涉及,所以对变化的客户需求非常不容易适应,意味着使用
了瀑布模型,最好不要走回头路,否则付出的代价会很大的。
3、管理人员较开发人员更喜欢瀑布。文档很适合向领导汇报用,即使不了解项目的人也能看懂项目的
进度情况;同时它也束缚了开发人员的创造性。
由于瀑布模型不适合客户需求不断变化的软件开发,并且把开发者编程流水线上的机器,大量重复性工作让编程人员提不起兴趣,编程成了一种没有创意的机械劳动,于是极限编程带来了新鲜的空气。
1、角色定位:明确的把客户加入到开发团队中。用户在软件开发过程中的责任被提到与开发者同样的
重要程度。
2、敏捷开发:追求合作与响应变化。迭代就是缩短版本的发布周期,缩短到周、日,完成一个小的功
能模块,可以快速测试、并及时展现给客户,以便及时反馈。小版本加快了客户沟通反馈的频率,功
能简单,在设计、文挡环节大大简化。极限编程中文挡不再重要的原因就是因为每个版本功能简单,
不需要复杂的设计过程。极限编程追求设计简单,实现客户要求即可,无需为扩展考虑太多,因为客
户的新需求随时可以添加。
3、追求价值:极限编程把软件开发变成自我与管理的挑战,追求沟通、简单、反馈、勇气,体现开发
团队的人员价值,激发参与者的情绪,最大限度地调动开发者的积极性,情绪高涨,认真投入,开发
的软件质量就大大提高。
核心是迭代。最终目标是让客户满意,所以能主动接受需求变更,这样就使设计出来的软件有灵活性,可
注意:
1、客户最关心的功能最先完成
2、小版本。快速功能的展现。
3、敏捷开发不等于不写文档,而是减轻了繁重的文档,不以文档为驱动。
瀑布模型由于其过程的不可回溯性,自 然决定了它无法应对需求的变化,对软件开发过程无法及时反馈与
修改,或者说对于应对变化的成本较大。因此瀑布模型是面向过程的;
而敏捷开发是面向人的,在开发过程中,人是第一位。使软件利用人的特点,充分发挥人的创造能力。
三种软件开发模型的特点:
螺旋模型:软件开发是一系列的增量发布,逐步产生更完善的版本,强调风险分析
瀑布模型:分阶段进行,一个阶段的工作得到确认后,继续进行下一个阶段,否则返回前一个阶段
迭代模型:分阶段进行,每个阶段都执行一个传统的,完整的串行过程,起哄都包括不同比例的需求分析,设计,编码,测试等活动
以下关于极限编程中对编程的叙述中,不正确的是(D)
A 支持共同代码拥有和共同对系统负责 B 承担了非正式 的代码审查过程
C 代码质量更高 D 编码速度更快
模块A、B和C有相同的程序块,块内的语句之间没有任何联系,现把该程序块取出,形成新的模块D,则模块D的内聚类型为()内聚,以下关于该内聚类型的叙述中,不正确的是()。
A.巧合
B.逻辑
C.时间
D.过程
*******************
A.具有最低的内聚性
B.不易修改和维护
C.不易理解
D.不影响模块间的耦合关系
解析: