| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1719 人关注过本帖, 2 人收藏
标题:请教版主
只看楼主 加入收藏
good
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2004-6-15
收藏(2)
 问题点数:0 回复次数:10 
请教版主

马上考c++了,以前课都没有听,现在自己学,遇到些问题,帮帮我啊~~~

1.设整型变量m,n,a,b,c,d 均为1,执行:(m=a>b)&&(n=a>b);后m,n的值为: 0,1

(问:逻辑与后m,n的值为什么会变化啊!)

2 #define f(x) x*x

main ()

{

int a=6,b=2,c;

c=f(a)/f(b);

cout<<c;

}

输出结果为:36

(问:为什么不是9?在 c=f(a)/f(b);中不是赋值的优先级最低吗?)

3 程序中:

x=3;

do

{

y=x--;

if (!y) {

cout<<"*";

continue;

}

cout<<"#";

}

while (1<=x<=2);

(问:为什么以上的循环为死循环?请详细说明一下)

以上是小弟学了3章之后的问题,请大家帮帮我!

搜索更多相关主题的帖子: 版主 
2004-06-15 13:35
asdliu
Rank: 1
等 级:新手上路
帖 子:175
专家分:0
注 册:2004-4-21
收藏
得分:0 

你的第二个我运行了一下,是9呀


阳光版主欢迎您
2004-06-15 14:20
good
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2004-6-15
收藏
得分:0 

晕到,老师发给我们的材料答案有错误...我也太懒了,自己不运行试试...

那么1和3可以解释一下吗?

2004-06-15 14:56
zff_ff
Rank: 1
等 级:新手上路
帖 子:147
专家分:0
注 册:2004-5-12
收藏
得分:0 

1.你既然知道a和b是逻辑运算,那m和n还会有什么值?

2。老师的答案是正确的

#define f(x) x*x 和#define f(x) (x*x)是有区别的

#define f(x) x*x 在这里c=6*6/2*2=36

#define f(x) (x*x) 在这里c=(6*6)/(2*2)=9

3 while (1<=x<=2);和(1<=x&&x<=2);是有区别的

while (1<=x<=2);在这里只有执行x<=2所以该值永远为真,这样就行成死循环

[此贴子已经被作者于2004-06-15 15:52:53编辑过]


偶是一只想要飞却忘了咋飞的菜鸟
2004-06-15 15:51
zff_ff
Rank: 1
等 级:新手上路
帖 子:147
专家分:0
注 册:2004-5-12
收藏
得分:0 

再说一句了解一个程序(小程序)最好的办法就是自己写一遍,

然后跟踪调试看看每个变量的变化。

我也是菜鸟,比vc6程序员,kai等要菜的很多

可是不到万不得以我是不会提问

因为我觉得自己弄懂学到的远远比别人说的要多。

http://websx.home.zccn.net/bbs/dispbbs.asp?boardID=44&ID=2501&page=1


偶是一只想要飞却忘了咋飞的菜鸟
2004-06-15 16:10
zff_ff
Rank: 1
等 级:新手上路
帖 子:147
专家分:0
注 册:2004-5-12
收藏
得分:0 

不好意思

第三题说错了

(1<=x<=2);在这题里应该是这样的

1<=x先执行,得出的结果再和2比较

很显然第一句的结果不是1就是0,都比2要小

所以本题会是死循环


偶是一只想要飞却忘了咋飞的菜鸟
2004-06-15 16:35
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

第一题应该是有值的,但是,这个n=1是怎么得到的,我也搞不明白。

首先,可以明确的是 ( m=a>b)---->m=0

(n=a>b)--->n=0

但是n怎么会变成1的,还没有搞明白。


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-06-15 17:53
zff_ff
Rank: 1
等 级:新手上路
帖 子:147
专家分:0
注 册:2004-5-12
收藏
得分:0 
以下是引用knocker在2004-06-15 17:53:18的发言:

第一题应该是有值的,但是,这个n=1是怎么得到的,我也搞不明白。

首先,可以明确的是 ( m=a>b)---->m=0

(n=a>b)--->n=0

但是n怎么会变成1的,还没有搞明白。

在c里边f()&&g()&&e()

如果f()=0的话g()和e()是不会去运算的直接条过。

所以n为原值,并不是逻辑运算的结果,只是刚好n的原值为1

[此贴子已经被作者于2004-06-15 18:14:18编辑过]


偶是一只想要飞却忘了咋飞的菜鸟
2004-06-15 18:11
good
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2004-6-15
收藏
得分:0 

看了"菜鸟请进".谢谢,zff_ff ,很感动,真的!这些问题是我思考很久没有答案才问的...

但是对与第一题,a和b是逻辑运算我始终想不明白 n=1到底是为什么?能在说详细点吗?

2004-06-15 18:13
good
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2004-6-15
收藏
得分:0 
以下是引用zff_ff在2004-06-15 18:11:02的发言:

在c里边f()&&g()&&e()

如果f()=0的话g()和e()是不会去运算的直接条过。

所以n为原值,并不是逻辑运算的结果,只是刚好n的原值为1

完全搞清楚拉,谢谢~~~现在类似的题目统统搞定
2004-06-15 18:18
快速回复:请教版主
数据加载中...
 
   



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

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