关于c语言的基础问题

题目如图,求详细解释如何得出答案来... 题目如图,求详细解释如何得出答案来 展开
 我来答
三天打鱼N
2018-12-25 · TA获得超过1540个赞
知道大有可为答主
回答量:2032
采纳率:74%
帮助的人:570万
展开全部

?:是三元运算 条件?成立返回这个:不成立返回这个

x大于10条件不成立所以返回x -10 结果是0

w++||z++ 或运算 由于前面的w不为0 所以直接返回结果1 而后面的z++不执行 z值不变

!w>z  w取反大于z  !的优先级高 所以先取反w w不等于0 所以取反结果是0  而0不大于z所以返回0

w&&z  w与z是不是都不是0 w=4 z=7 条件成立 返回1

结果是 0 1  0 1

上机测试结果

你那题目是错的…………

syx54
2018-12-25 · TA获得超过7376个赞
知道大有可为答主
回答量:6567
采纳率:83%
帮助的人:2635万
展开全部
主要是考察对于各种运算符号以及运算优先级别的知识掌握;
优先级别:
先算术运算,然后
最高:!
>、>=、<、<=
==、!=
&&
最低:||
第一个printf语句中
x>10?x+100:x-10
这是一个?运算,其一般格式为
表达式1?表达式2:表达式3
其运算规则如下:
表达式1是一个逻辑表达式,如果表达式1结果为真,就以表达式2的结果为最终结果;如果表达式1结果为假,就以表达式3的结果为最终结果。
本题:x>10 为假,因为x的赋值为10;所以结果为: x-10 = 10-10=0
第二个printf语句中
++是加1运算,而||是逻辑或运算
w++||++ ==> 4||8,逻辑运算先把非零值转换成TRUE,0值转换成FALSE
所以 4||8 ==> TRUE||TRUE ==> TRUE 再把TRUE转换成1,所以输出结果为:1
第三个printf语句中
!是逻辑运算的非运算,>是关系运算,这里先做!运算,!3==>!True==>False==>0
所以!w>z ==> !3>7 ==> !True>7 ==> False>7 ==> 0>7 ==> False ==> 0
C语言里面,在进行逻辑运算的时候,把非0值看作True,把0看作False,反之在输出的时候True输出1,False输出0。
所以输出结果为:0
第四个printf语句中
w&&z,其中&&是逻辑与运算
w&&z ==> 3&&7 ==> True&&True ==> True ==> 1
所以输出:1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小卒丶蹴
2018-12-25
知道答主
回答量:18
采纳率:0%
帮助的人:1.3万
展开全部

w =3,z=7,x=10

  1. printf("%d\n", x>10?x+100:x-10);

    判断x>10是否为真,结果是为假,输出冒号后的值:x-10 = 10 -10 =0

  2. printf("%d\n",w++||z++);

    w++ || z++ = 3++ || 7++ = 4 || 8 = 1 ,4 || 8两个非零数相或输出 1

  3. printf("%d\n",!w>z);

    !w>z = !3 > 7 = 0 > 7 = 0, 先进行!运算,在判断大小,输出:0

  4. printf("%d\n",w&&z);

    w && z = 3 && 7, 两个非零数相与 输出: 1

答案: C

注:按照运算符优先级进行计算即可,可参照这个网址

网页链接

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式