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

以下程序的运行结果是
#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
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
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
-1的判断运算=1,是不是因为非零的数值它的判断结果都是1?
2006-09-16 14:27
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
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
以下是引用cdmalcl在2006-9-16 14:39:05的发言:

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

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

那我想再请教亮哥两道题目
[问题求助]请教两道有关c语言分支结构的问题
以下程序的输出结果是
#include"stidio.h"
main()
{int x=1;
if(x=2)
printf("OK");
else if(x<2)printf("%d\n",x);
else printf("Quit");
}
答案是OK,为什么不是1啊?

以下程序的输出结果是
main()
{int x=2,y=-1,z=2;
if(x<y)
if(y<0)z=0;
else z+=1;
printf("%d\n",z);
}
答案是2,为什么不是3啊?

2006-09-16 14:46
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 

to:nuciewth
因为x>y所以
{
if(y<0)z=0;
else z+=1;
}
这几步根本就没有执行过,所以z的值还是和原来一样是2对吗?是这样理解的吗?

2006-09-16 15:00
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
main()
{int x=1;
if(x=2)/*符值运算*/
这符值运算为什么就是打印OK,我知道反正x<2就要打印出x的值,因为一开始定义了x=1,所以我觉得答案是1,不知道我错在哪里了?
2006-09-16 15:23
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
以下是引用cdmalcl在2006-9-16 15:25:12的发言:
因为整个(x=2)整个表达式的值就是1了 而且x=2

是不是因为(x=2)这个表达是1,所以等价与if(x==1),执行打印出OK这个语句,又因为一开始就定义了x=1,所以符合if(x==1),所以答案是OK,我的理解对吗?

2006-09-16 16:14
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
以下是引用cdmalcl在2006-9-16 16:21:58的发言:

不不不
你可别这么想
你就按照我说的想就行

if(x=2) 这个地方起了两个效果
一个是判断通过 是 判断  
(x=2)表达式等于1 表达式为1 不代表x怎么样
第二个效果就是把2符给x
也就是这个时候 x下存储的值是2了 

第二个效果在这个程序中并没起到作用

而第一个效果判断if条件成立
进行 是 语句的执行
也就是运行了printf("OK");

明白了,如果程序要是再加一句输出x的值,那么x的值就是2对吗?

2006-09-16 16:31
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
以下是引用nuciewth在2006-9-16 16:35:20的发言:
怎么不看看我的呢.
if(x=2),括号内的表达式是2 而不是1.整个if语句为真所以执行printf("OK");

if(x=2),括号内的表达式是2 而不是1,这句话我还没完全理解.

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



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

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