C语言 程序分析题 求详解

 我来答
符元绿童书
2019-09-10 · TA获得超过3万个赞
知道大有可为答主
回答量:9554
采纳率:34%
帮助的人:868万
展开全部
这个程序应该是把
十进制数
转换成
二进制数
输出
#include
//
头文件
void
main()
{
int
a,b[10],c,i=0;
//
a存储待转换的十进制数,b[10]存储转换后的二进制位,
//
c
是存储
余数

printf("输入一个整数\n");
scanf("%d",&a);
//
输入需转换的十进制数
while(a!=0)
//
只要a不为零,就继续转换
{
c=a%2;
//
把a除以2
的余数赋值给c
a=a/2;
//
把商存入a进行下一次循环
b[i]=c;
//
把余数存到数组中作为二进制中的一位
i++;
}
for(;i>0;i--)
printf("%d",
b[i-1]);
//反向输出余数,即得到二进制
例如输入4
因为4
!=
0
4
/
2
=
2((商=a)...........0(余数=c=b[0])
因为2
!=
0
2
/
2
=
1((商=a)...........0(余数=c=b[1])
因为1
!=
0
1
/
2
=
0((商=a)...........1(余数=c=b[2])
因为
0
=
0
结束循环输出
b[2]
b[1]
b[0]

100,也就是二进制的
4
丑怡君寒言
2019-02-26 · TA获得超过3万个赞
知道小有建树答主
回答量:1.1万
采纳率:29%
帮助的人:839万
展开全部
首先输入一个数,然后求其mod2值,再将其取半,重复该过程直到该数变为0,最后输出得到的mod2的值。其实就是将该数转成二进制表示的值,如输入1,输出1;输入2,输出10;输入3,输出11;等等。该程序实际有个问题,就是输入的值不能太大,因为数组b只有10位,所以最大的数为1023;如果输出的数超出1023则会有异常。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宗政志强偶仙
2020-01-02 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:29%
帮助的人:670万
展开全部
#include
/*头文件*/
void
main()
/*定义主函数*/
{
int
a,b[10],c,i=0;
/*定义数值、数组*/
printf("输入一个整数\n");
/*输入a*/
scanf("%d",&a);
/*将数值赋予a*/
while(a!=0)
/*循环,条件是a=0终止*/
{
c=a%2;
/*将a除以2的余数赋给c*/
a=a/2;
/*将a变为前一个a除以2所得的商*/
b[i]=c;
/*将c值装入数组b*/
i++;
/*将b中指针后移一位*/
}
for(;i>0;i--)
printf("%d",
b[i-1]);
/*将b中数值倒序输出*/
整个程序是将一个十进制整数转化为二进制形式,其中,b中储存的为a的二进制的倒序形式,c为二进制的计算方式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
良藏蚁惬
2019-08-10 · TA获得超过2.9万个赞
知道小有建树答主
回答量:1.1万
采纳率:36%
帮助的人:698万
展开全部
int
s;//定义变量s
while((s=getchar())!='\n')//重键盘输入字符,并赋给s,如果不等于\n(表示结束,如回车),继续读取输入的字符!
是逐个读取,读取一个就执行下面的程序,如果读取到的不是结束字符\n,那么就继续读取,继续执行!(这个是while循环)
{
switch(s-'2')//判断读取的一个字符减2得到的值
{
//注意,case和数值之间要有空格,你的程序没有空格,所以程序全部执行了default
case
0:
//如果值为0,继续执行下面的case
case
1:putchar(s+4);
//如果值为1,输出s+4,因为没有break,所以继续执行下面的case2
case
2:putchar(s+4);break;//如果值为2,输出s+4,break跳出switch,不执行case3
case
3:putchar(s+3);
//如果值为3,输出s+3
default:putchar(s+2);break;//默认输出s+2(不等于上面的情况)
}
}
printf("\n");
//如程序输入2473
//首先读取2,
2-2=0,执行case0和case1和case2,输出66
//再读取4,
4-2=2,执行case2,输出8
//再读取7,
7-2=5,执行default,输出9
//再读取3,
3-2=1,执行case1和case2,输出77
//所以结果为668977
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式