问题 填空题

下面程序段的功能是将形参x的值转换成二进制数,所得二进制数的每一位数放在一维数组中返回,二进制数的最低位放在下标为0的元素中,其他以此类推。
#include
main(int x,int b[])
{int k=0,r,i;
scanf("%d",x);
do
{r=x%2;
b[______]=r;/*第一空*/
x/=2;
}while(______);/*第二空*/
for(______);i>=0;i--)/*第三空*/
printf("%d",b[i]);
}

答案

参考答案:k++/*第一空。将余数r赋值给数组元素b[k]并使k自加1,为下一次循环做准备*/

解析:x/*第二空。当x=0时则终止循环。当算术运算获得的值小于1时,变量将被赋于0值*/ i=k-1/*第三空。在循环体内最高位获值后,k又自加1一次;故输出时需将k的值减1以使第一次输出能正确地输出最高位的值*/

选择题
单项选择题