大家帮我算算3道C语言的题,都很初级

来源:百度知道 编辑:UC知道 时间:2024/09/24 02:16:19
第一题:
main()
{
int a=0,b=0 c=0,d=0;
if(a=1) {b=1;c=2;}
else d=3;
printf("%d,%d,%d,%d\n",a,b,c,d);
}

我自己算出来等于1,1,2,0
可是书后面的答案是0,0,0,3

第二题:
以下程序运行后的输出结果是:
main()
{
int a=3,b=4,c=5,t=99;
if(b<a&&a<c) t=a;a=c;c=t;
if(a<c&&b<c) t=b;b=a;a=t;
printf("%d%d%d\n"a,b,c);
}
书后面的答案是4,5,99

第三题:
以下程序运行后的输出结果是:
main()
{
int a=1,b=2,c=3;
if(c=a) printf("%d\n",c);
else printf("%d\n",b);
我自己的答案是2,可是参考答案是1。
感谢大家 帮帮我,初学C语言,很是吃力,一头雾水的。希望大家给出具体过程,不要只是答案、对错。
问题我没有敲错,书上确实是一个“=”不是“==”我写的三道题没一道里面是用的两个“=”还有TurboC里面为什么每次都说我main()是错误的呢?

第一题:
你的答案是对的,如果把
if(a=1) 换成 if(a==1)

书上答案就是对的,是不是你敲错了。
if(a=1) 执行把a 赋值等于1了。

第二题:
以下程序运行后的输出结果是: 4,5,99
是对的,实际执行了
a=c;
c=t;
t=b;
b=a;
a=t;

int a=3,b=4,c=5,t=99;

if(b<a&&a<c) /*假,不执行t=a*/
t=a; /*不执行*/
a=c; /*执行*/
c=t; /*执行*/
if(a<c&&b<c) /*真*/
t=b; /*执行*/
b=a; /*执行*/
a=t; /*执行*/

第三题:
以下程序运行后的输出结果是:
main()
{
int a=1,b=2,c=3;
if(c=a) printf("%d\n",c);
else printf("%d\n",b);
我自己的答案是2,可是参考答案是1。

1 是对的,执行 if(c=a) 时,实际把a的值符给c,如果是if(c==a) 就是2 了
你要弄清楚 = 和 ==的区别。

记住在C语言中 =是赋值运算符
第一题:
条件是if(a=1)
好象有误,应该是a==1才是书后的答案吧

第二题
main()
{int a=3 ,b=4,c=5,t=99;
if(b<a&&a<c)t=a; //因为4>3,所以没有执行
a=c; //a=5
c=t; //c=99
if(a<c&&b<c)t=b; //执行t=4
a=c; //a=99
a=t; //a=4