客户分级管理方案:C语言高手请进!!!!!!!!

来源:百度文库 编辑:中科新闻网 时间:2024/05/03 03:46:09
(1)若x=3,y=z=4,则下列表达式的值分别为多少?为什么?
(z>=y>=x)?1:0
z>=y&&>=x

(2)x为int类型,下列语句执行结果?为什么?
for(x=3;x<6;x++)
printf(x%2?"**%d":"##%d\n",x);

(3)语句printf("a\bre\' hi\' y\\bou\n");的输出结果是:为什么?

(4)若x和y为int类型,x=100,y=200,则printf("%d%d\n",(x,y));输出结果是?为什么?
合对过了,是没有打错的,南开里的试题哦!!!!

游荡者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(?)

楼主,我想真正的高手肯定作不出这样的题,就是作出了也要对着书查找半天.高手写程序都是易读的.不可能写出来的程序还要读程序的人查半天书才看懂是什么意思.这种题只是应付考试用的.自己查书大多可以解决的.我不是什么高手,但看到你的标题总有种冲动来看一眼.如果我这种菜鸟级的都说的出,真正的高手岂不是很伤心...