大学职业搜题刷题APP
下载APP
首页
课程
题库模板
Word题库模板
Excel题库模板
PDF题库模板
医考护考模板
答案在末尾模板
答案分章节末尾模板
题库创建教程
创建题库
登录
logo - 刷刷题
创建自己的小题库
搜索
【简答题】

图7-5所示的流程图描述了对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。例如:二进制10101000按位求反后得到的二进制是01010111,加1后为01011000。也可以这样来看,原二进制从最右边开始到遇到的第1个1为止都不变,而后面剩下的位按位求反即可。


本题流程图采用的是后一种思路,首先设置一个标志sw的值为0,从最右边一位开始往左循环遍历整个二进制数,到遇到第1个1后将标志位置1。由此可见,循环要进行8次,循环变量值依次从1递增到8。根据题目要求按“循环变量名:循环初值,增量,循环终值”格式描述循环,而循环开始下面一条判断是“BIT[i]=1”,所以循环变量是i,第1空应填i:1,1,8。
如果当前遍历的二进制位BIT[i]是1,且标志sw为0时,则证明是第1次遇到1,所以直接设置sw为1即可,故第2空应填1→sw。
如果当前遍历的二进制位BIT[i]是1,且标志sw为1时,说明已经不是第1次遇到1了,所以直接设置当前二进制位为0即可,故第3空应填0→BIT[i]。
如果当前遍历的二进制位BIT[i]是0,且标志sw为0时,则证明还没有遇到过一次1,所以该步什么都不用做,故第4空应填NOP。
如果当前遍历的二进制位BIT[i]是0,且标志sw为1时,说明已经遇到过1了,所以该步需将当前的二进制位求反,故第5空应填1→BIT[i]。

手机使用
分享
复制链接
新浪微博
分享QQ
微信扫一扫
微信内点击右上角“…”即可分享
反馈
收藏 - 刷刷题收藏
举报
参考答案:
刷刷题-刷题-导入试题 - 刷刷题
参考解析:
AI解析
重新生成
题目纠错 0
发布
刷刷题-刷题-导入试题 - 刷刷题刷刷题-刷题-导入试题 - 刷刷题刷刷题-刷题-导入试题 - 刷刷题
刷刷题-刷题-导入试题 - 刷刷题
刷刷题-刷题-导入试题 - 刷刷题
刷刷题-单词鸭