400-650-7353
登录 | 注册
400-650-7353

当前位置:中公软考> 模拟试题 >

(软考初级)程序员案例分析每日一练(9)

发布者:中公软考     来源:中公软考     2021-05-08 09:51:11     阅读()

试题1 (15分,每空3分)

阅读下列说明和流程图,将应填入(n) 的字句写 在答题纸的对应栏内。

流程图说明

下面的流程图描述了对8位二进制整数求补的算法。

该算法的计算过程如下:从二进制数的低位(最右位)开始,依次向高位逐位查看,直到首次遇到“1”时,停止查看。然后,对该“1”位左面的更高位(如果有的话),逐位求反,所得的结果就是对原二进制数求补的结果。

例如:对二进制整数10101000求补的结果是01011000。

设8位二进制整数中的各位,从低位到高位,依次存放在整型数组BIT的BIT[1]~BIT[8]中。例如,二进制整数10101000存放在数组BIT后,就有BIT[1]=0,BIT[2]=0,...,BIT[7]=0, BIT[8]=1。 若流程图中存在空操作,则用NOP表示。

流程图

流程图中(1) 处按 “循环变量名:循环初值,增量,循环终值”格式描述。

试题1分析

本题考查的是流程图。

由于题目中给出了对8位二进制整数求补的算法,并且指明将8位二进制整数中的个位,从低位到高位,依次存放在整型数组BIT的BIT[1]~BIT[8]中,因此,循环控制变量的初值应该为1(从二进制数中的最低位开始)、终值为8 (二进制数中的每一位都要检查)、增量为1(每次检查1位),按照“循环变量名:循环初值,增量,循环终值”格式描述,则为:i:l,1,8。

由题目中给出的算法可知,从最右位开始向左找到的第一个“1”及其右边的各位是不取反的,因此需要一个标志,sw起的就是这个作用。

由于sw的初始值为0,所以在找到从右边数的第1个“l”之前,当BIT[i]等于“0”且sw等于0,则说明这些二进制位无需取反,因此相应的流程图中空(4)处的操作应为空操作。当某个BIT[i]的值等于“1”且sw的值等于0,则说明找到了从右边数的第1个“l”,此时应将sw的值置为非“0”,因此流程图中空(2)处的操作为sw赋值。

最后,应将其余各位取反,即BIT[i]等于1时,在流程图中的空(3)处将其赋值0;反之,则在流程图中的空(5)处将其赋值1。

参考答案

(1) i:1,1:8

(2) 1→sw, 或k→sw且k≠0

(3) 0→BIT[i]

(4) NOP,或空操作

(5) 1→BIT[i]

软考微信公众号

分享最前沿行业动态、业内时评,打造专业软考交流圈

软考QQ群

备考交流、干货共享,学习各种软考考试技巧

相关阅读

近期考试资讯

为你推荐


在线咨询

交流群

新浪微博

软考微信


返回顶部