#include <stdio.h> void Dec2Bin(long m,char *s) { int i,k; for(i=0;i<32;i++) { k=m & 0x80000000; if(k!=0) s[i]='1'; else ____1_____; ____2____; /* m 左移1位 */ } } int main() { char a[33]=""; long n; int i; for(i=1;i<=4;i++) { scanf("%ld",&n); _____3______; ____ 4_____; } }
时间: 2023-12-09 20:02:27 浏览: 78
这段代码中有 4 处需要填空:
```c
#include <stdio.h>
void Dec2Bin(long m,char *s) {
int i,k;
for(i=0;i<32;i++) {
k=m & 0x80000000;
if(k!=0) s[i]='1'; else s[i]='0';
m = m << 1; /* m 左移1位 */
}
}
int main() {
char a[33]="";
long n;
int i;
for(i=1;i<=4;i++) {
scanf("%ld",&n);
Dec2Bin(n,a);
printf("%s\n",a);
}
return 0;
}
```
第一处需要填空的是 `else` 分支中的语句,应该将当前位的字符设置为 `'0'`,即 `s[i]='0'`。
第二处需要填空的是 `for` 循环中的位移操作,应该将 `m` 左移一位,即 `m = m << 1`。
第三处需要填空的是 `scanf` 函数读入输入的整数 `n`,应该使用地址符 `&`,即 `scanf("%ld", &n)`。
第四处需要填空的是输出转换后的二进制字符串 `a`,应该使用 `printf` 函数并指定 `%s` 格式占位符,即 `printf("%s\n", a)`。
运行程序后,程序将会提示输入 4 个整数,然后将它们分别转换成 32 位的二进制字符串并输出。
阅读全文