| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1057 人关注过本帖
标题:请教C语言
只看楼主 加入收藏
lilico927927
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-10-4
收藏
 问题点数:0 回复次数:18 
请教C语言
fun(int a, int b)
{
return a+b;
}
main()
{
int x=6, y=7, z;
z=fun(fun(x++,y++), fun(--x, --y));
printf("%d\n", z);
}

为什么答案是22呢?
搜索更多相关主题的帖子: C语言 
2008-10-08 15:39
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
未规定的行为
不推荐的写法
无意义的题目

如果非要说原因,只能从结果推断,先5+6,再5+6,最后11+11

从BFS(Breadth First Study)到DFS(Depth First Study)
2008-10-08 16:19
守鹤
Rank: 4
来 自:山東臨沂
等 级:贵宾
威 望:12
帖 子:337
专家分:0
注 册:2008-6-20
收藏
得分:0 
回复 1# lilico927927 的帖子
注意运算符的优先级问题,
z=fun(fun(x++,y++), fun(--x, --y));
函数在参数传递时,若参数为表达式,先将表达式转化数值,
然后在传递参数值,注意多项表达式运算时运算符的优先级,及先后顺序;
先算--x,--y;   x=5,y=6
x++,y++是先使用,在加加。
故为22;

不过建议不要这要使用

多少个日日夜夜想起你,只希望有缘再次相见
2008-10-08 16:53
xfcy
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-9-15
收藏
得分:0 
int x=6, y=7, z;
z=fun(fun(x++,y++), fun(--x, --y));
运算顺序从右向左
先算fun(--x, --y),里面同样按从右向左,fun(5,6)==11,
fun(x++,y++)有fun(5,6)==11
所以结果为22
这种一般不会被用于写程序,但是作为考试题却很能反映水平,
2008-10-08 22:47
lingluoz
Rank: 2
来 自:苏州科技学院
等 级:新手上路
威 望:4
帖 子:749
专家分:0
注 册:2008-2-2
收藏
得分:0 
可怜的中国孩子啊 青春就葬送在这种没有意义的题目中了哦、额

Murphy's Law :
If there are two or more ways to do something, and one of those ways can result in a catastrophe, then someone will do it.
2008-10-08 23:07
kd0376
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2007-12-7
收藏
得分:0 
看书吧
2008-10-08 23:14
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
[bo][un]xfcy[/un] 在 2008-10-8 22:47 的发言:[/bo]

int x=6, y=7, z;
z=fun(fun(x++,y++), fun(--x, --y));
运算顺序从右向左
先算fun(--x, --y),里面同样按从右向左,fun(5,6)==11,
fun(x++,y++)有fun(5,6)==11
所以结果为22
这种一般不会被用于写程序 ...


对不起,你的解释是错误的。答案也是错误的。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-10-08 23:18
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
同样,这种题目根本就不会考察到你的水平——只是能了解你是不是真的熟悉C语言的标准。当然,如果答案不是“未定义操作”的话,建议你好好教育一顿你们的老师。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-10-08 23:19
kd0376
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2007-12-7
收藏
得分:0 
?为什么是未定义操作呢????在WIN-TC下能运行啊
2008-10-08 23:27
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
http://c-faq-chn.

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-10-08 23:44
快速回复:请教C语言
数据加载中...
 
   



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

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