C测试,看看你的C语言过关了没。

aotianshenhua2 2011-10-16 04:26:10
不要复制运行,判断输出的是什么结果,并且说出为什么。看看你C语言学习到什么程度了。
不要看别人的回复,自己先好好想一下。
#include <stdio.h>

int func(int x , int y)
{
if (x<y){
return 1;
}else if (x==y){
return 0;
}else{
return -1;
}
}

int main(void)
{
int a=100;

int b=func(a,a++);
printf ("%d\n",b);

return 0
}
...全文
5537 252 打赏 收藏 转发到动态 举报
写回复
用AI写文章
252 条回复
切换为时间正序
请发表友善的回复…
发表回复
lhp_1 2011-12-30
  • 打赏
  • 举报
回复
少个分好、、、、、、vc++6.0显示结果 0
大刘SZ 2011-12-30
  • 打赏
  • 举报
回复
不过这种问题没什么意义呀。
大刘SZ 2011-12-30
  • 打赏
  • 举报
回复
-1、

函数参数入栈顺序的确是从右至左的。func左边参数为101,右边为100
sharksir 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 32 楼 akirya 的回复:]

典型的未定义行为,结果是啥都正确。
[/Quote]
++
GIS_wudi 2011-12-30
  • 打赏
  • 举报
回复
都低调点,不管是几,咱心里清楚就行了
kingkong_zhang 2011-12-30
  • 打赏
  • 举报
回复
写这用东西,不是自寻烦恼
GAOHUACSDN 2011-12-29
  • 打赏
  • 举报
回复
答案是-1,第一次比较a==a,第二次a=a+a,所以前两条if豫剧都是不满足的,接下来返回-1
nanjingnew4 2011-12-29
  • 打赏
  • 举报
回复
实际中这么写就是害自己么
anoldfarmer 2011-12-28
  • 打赏
  • 举报
回复
这种题目就不应该出
zttbill 2011-12-28
  • 打赏
  • 举报
回复
VC是0
zttbill 2011-12-28
  • 打赏
  • 举报
回复
VC是0 如果是-1的话加括号得
Programmerlq2011 2011-12-28
  • 打赏
  • 举报
回复
#include <stdio.h>

int func(int x , int y)
{
if (x<y){
return 1;
}else if (x==y){
return 0;
}else{
return -1;
}
}

int main(void)
{
int a=100;

int b=func(a,a++);
printf ("%d %d\n",b,a);

return 0;
}
又会是怎样
yaoyueer 2011-12-28
  • 打赏
  • 举报
回复
答案为0.main函数中,将a和a++传递给func的x和y,所以x=y=100.return 0.b=0
hengyu654 2011-12-28
  • 打赏
  • 举报
回复
sb问题
不多解释
9527free 2011-12-28
  • 打赏
  • 举报
回复
根据编译器而定:
天台的故事 2011-12-28
  • 打赏
  • 举报
回复
可能是-1,各个各个编译器都有不同是实现
BiggerCode 2011-12-24
  • 打赏
  • 举报
回复
优先级问题输出应该0
kow12358 2011-12-24
  • 打赏
  • 举报
回复
二级c试题,无意义,不解释
mm11214014 2011-12-24
  • 打赏
  • 举报
回复
无趣,这没啥水平可言的
blh 2011-12-24
  • 打赏
  • 举报
回复
如果你不属于下列行为,就不要浪费生命去研究这种有关++ --顺序的问题了,用不会产生歧义的方法编写程序才是正途

1.做C语言语法研究
2.做C编译器编译行为研究
3.致力于混乱编程
4.初学者好奇心态
5.心理变态
加载更多回复(233)

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧