游荡者818,人家怎么就错了,这些都是合法的,只是平时很少有人用到。
蓝梦34讲得很对,这也是没有人正面回答你问题的原因。
补充:
既然没人讲,我先讲讲吧
我先解释一下z>=y>=x,这是合法的,运算顺序应该是从左到右,相当于(z>=y)>=x。z>=y为真,所以z>=y这个表达式的值为1,然后判断1>=x为假,所以条件为假,即z>=y>=x表达式的值为0。
z>=y>=x与z>=y&&y>=x是不一样的
for(x=3;x<6;x++)
printf(x%2?"**%d":"##%d\n",x);也是对的,输出结果为**3##4(\n)**5。(\n)为回车
因为x为3时,x%2为1,条件为真,输出**3,x为4时x%2为0,条件为假,输出##4(\n),x为5时x%2为1条件为真,输出**5
printf("a\bre\' hi\' y\\bou\n");的输出为re' hi' y\bou(\n)。这道是最简单的,考查转义符。\b为退格(所以a没显示),\'为',\\为\
printf("%d%d\n",(x,y));原来确实见过,编译运行也没有问题,输出结果TC输出2002458,VC输出2002367460。目前手头没有参考资料,我也记不清是为什么了。我试了一下,在VC中跟printf("%d%d",y);是一个效果,但TC中不是,应该是先输出了y的值,后面那个是乱的。我记得The C Programming Language里有这个的解释,你可以查一下
你自己去书上看一下各运算符号的顺序!!呵呵
(z>=y>=x)?1:0 是0 z>=y&&>=x 你弄错了吧,
“printf(x%2?"**%d":"##%d\n",x); ”你打错了吧
“a\bre\' hi\' y\\bou\n”是a re' hi' y\bou后还有一换行符
printf("%d%d\n",(x,y));你有没有弄错啊(x,y)这个过号应该没的啊!
是吗?呵呵那我坐井啦,呵 那你们说说看啊!
这种题目都是害人的啊,实际工作中哪有写这种代码的。
鄙视出这样题的人
无聊至极
害人害己
(1)0 第二个打错了
(2)**3##4
**5
(3)没意思!自己运行以下,对着特殊符号表查嘛!
(4)200(?)
楼主,我想真正的高手肯定作不出这样的题,就是作出了也要对着书查找半天.高手写程序都是易读的.不可能写出来的程序还要读程序的人查半天书才看懂是什么意思.这种题只是应付考试用的.自己查书大多可以解决的.我不是什么高手,但看到你的标题总有种冲动来看一眼.如果我这种菜鸟级的都说的出,真正的高手岂不是很伤心...