几道c语言题

来源:百度知道 编辑:UC知道 时间:2024/05/10 12:55:38
1) 输入一个整数A(32bit),将其按位从高至位输出。用C语言实现

例如:8 00000000000000000000000000001000

2) 将整数A按位逆置。

例如:8(1000)è0001 结果:1

3) 某人有12品脱的啤酒一瓶,想从中倒出6品脱,但是没有6品脱的器,仅有一个8品脱和5品脱的容器,怎么倒才能将啤酒分为两个6品脱呢?(品脱-----容积单位,1品脱=568.26125 毫升)

试分析其倒酒过程。用C语言表达

1.
#include<stdio.h>
void main()
{
int i,n,a[32];
for(i=0;i<32;i++)
a[i]=0;
printf("Please input a integer:");
scanf("%d",&n);
i=0;
while(n>1)
{
a[i]=n%2;
n/=2;
i++;
}
a[i]=1;

for(i=31;i>=0;i--)
printf("%d",a[i]);
}

2.支持16位整数

#include<stdio.h>
void main()
{
int start,i,n,sum=0,b=1,a[16];
for(i=0;i<16;i++)
a[i]=0;
printf("Please input a integer:");
scanf("%d",&n);
i=0;
while(n>1)
{
a[i]=n%2;
n/=2;
i++;
}
a[i]=1;
start=15;
while(a[start]==0)
start--;
printf("befor=");
for(i=start;i>=0;i--)
printf("%d",a[i]);
printf("\n");
printf("after=");
for(i=0;i<=start;i++)
print