【正确答案】正确答案:char str[32]; inti: for(i=30;i>=0;i--) //计算二进制 { if(x%2)str[i]='1'; //求余,如果余不为零字符串s仃第i位为1 else str[i]='0'; //否则为0 x>>=1: if(!x)break; } str[31]='/0’; //串加尾符 cout<<&strl[i]<
【答案解析】解析:审题分析: (1)该程序功能是实现十进制转换成二进制数。十进制到二进制的转换是对十进制的数字进行2的取余运算,余数不为零则取1,否则为0,然后对余数进行循环取余运算,直到余数为0。 (2)从已给部分源程序的main主函数开始入手,核心函数fun(intx)中的x参数为输入的十进制数。 解题思路: (1)定义存放二进制的字符串str。 (2)然后利用for循环对十进制数字x进行取余运算,直到余数为0结束。 (3)如果取余结果为0,则二进制字符串这个字符位的值为0,否则为1。 (4)最后调用WriteFile将运算结果存入文件。