【简答题】
阅读以下技术说明、流程图和C程序,根据要求回答问题1和问题2。 【说明】 如图6-13所示的程序流程图描述了对8位二进制整数求补的算法。该算法的计算过程如下:从二进制数的低位(最右位)开始,依次向高位逐位查看,直到首次遇到“1”时,停止查看。然后,对该“1”位左面的更高位(如果存在的话),逐位求反,所得的结果就是对原二进制数求补的结果。例如:对二进制整数10010110求补的结果时01101010。 设8位二进制整数中的各位,从低位到高位,依次存放在整型数组BIT的BIT[1]~BIT[8]中。例如,二进制整数10010110存放在数组BIT后,则有BIT[1]=0,BIT[2]=1,…,BIT[7]=0,BIT[8]=1。若流程图中存在空操作,则用NOP表示。 以下待修改的【C程序】完成的功能是:对于给定的1个长,从其个位数开始,每隔一位取1个数字(即取其个位、百位和万位等数字),形成1个新的整数并输出。例如,将该程序修改正确后,运行时若输入“97531820”,则输出的整数为“73840”。 【C程序】 行号 C代码 01 include <stdio.h> 02 int main() 03 { long n,num; 04 int i; 05 do { 06 printf('请输入一个:'); 07 scanf('%1d',n); 08 }while(n<=0); 09 k = 1; 10 for (i=1;n>=0;i++) { 11 if (i%2=1) { 12 num = num + (n%10)*k; 13 k = k*10; 14 } 15 n = n/10; 16 } 17 printf('新数据为:%d/n',num); 18 return 0; 19 } 请将图6-13流程图中(1)~(5)空缺处的内容补充完整。其中,(1)空缺处按“循环变量名:循环初值,增量,循环终值”格式描述。
手机使用
分享
复制链接
新浪微博
分享QQ
微信扫一扫
微信内点击右上角“…”即可分享
反馈
收藏
举报
参考答案:
参考解析: