| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2079 人关注过本帖
标题:[求助]请教几道与逻辑运算及分支结构的问题
只看楼主 加入收藏
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
 问题点数:0 回复次数:32 
[求助]请教几道与逻辑运算及分支结构的问题

以下程序的运行结果是
#include"stidio.h"
main()
{int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d",a,b);
}
答案是2,1
为什么?


设有语句说明:int a=1,b=2,c=3,d=4,m=2,n=2;则执行(m=a>b)&&(n=c>d)后n的值是
答案是2,为什么?


已知int x=10,y=20,z=30;执行以下语句后x,y,z的值是
if(x>y)
z=x;x=y;y=z;
答案是x=20,y=30,z=30
为什么?

[此贴子已经被作者于2006-9-16 13:58:54编辑过]

搜索更多相关主题的帖子: 分支 逻辑运算 结构 int 
2006-09-16 11:46
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
以下是引用inku在2006-9-16 11:46:41的发言:

以下程序的运行结果是
#include"stidio.h"
main()
{int a,b,d=241;
a=d/100%9;/*从做到右运算 d/100 等于 2 %9等于 2*/
b=(-1)&&(-1);/*(-1)判断运算 等于 1 1&&1等于1*/
printf("%d,%d",a,b);
}
答案是2,1
为什么?


设有语句说明:int a=1,b=2,c=3,d=4,m=2,n=2;则执行(m=a>b)&&(n=c>d)后n的值是
答案是2,为什么?

当程序判断到(m=a>b)时 因为判断表达式等于0 并且下面的是&&
所以整个式子就不往下判断和运算了
可用这个程序证明:

main()
{
int a=1,b=2,c=3,d=4,m=2,n=2;
(m=a>b)&&(n=1000000);
printf("%d",n);
getch();
}

已知int x=10,y=20,z=30;执行以下语句后x,y,z的值是 什么语句
答案是x=20,y=30,z=30
为什么?

2006-09-16 13:47
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
逻辑运算只分0(假)和非0(真).
&& 前面为假则不计算&&后的表达式.
||前面是真则不计算||后的表达式.

类似这样的帖以前也说过,楼主搜搜看,看看别人是怎么解释的.

倚天照海花无数,流水高山心自知。
2006-09-16 13:53
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
以下是引用cdmalcl在2006-9-16 13:47:26的发言:

那么m=a>b这个语句是先看a>b是真还是假,然后在把值赋给m,还是先把a的值赋给m,再用m去和b比较?

[此贴子已经被作者于2006-9-16 14:02:32编辑过]

2006-09-16 14:02
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用inku在2006-9-16 14:02:09的发言:

那么m=a>b这个语句是先看a>b是真还是假,然后在把值赋给m,还是先把a的值赋给m,再用m去和b比较?


赋值运算符的优先级比关系运算符的要低.


倚天照海花无数,流水高山心自知。
2006-09-16 14:06
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
以后这些问题自己编个程序测试一下就行了
2006-09-16 14:13
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
-1的判断运算=1,是不是因为非零的数值它的判断结果都是1?
2006-09-16 14:27
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
2006-09-16 14:30
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
以下是引用cdmalcl在2006-9-16 14:30:19的发言:

已知int x=10,y=20,z=30;执行以下语句后x,y,z的值是
if(x>y)
z=x;x=y;y=z;
答案是x=20,y=30,z=30
为什么?

2006-09-16 14:33
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 

???
怎么和我们这的一个老师出的考试题一样

if后面没加{}
所以只不执行z=x 

2006-09-16 14:39
快速回复:[求助]请教几道与逻辑运算及分支结构的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031631 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved