| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1047 人关注过本帖
标题:请问两道题目
只看楼主 加入收藏
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
感觉第一题考的意义不大,过去就算了~噢噢,我们自然编程尽量避免题目那样在一行中应用诸多自增自减,那种写法不仅不方便阅读,而且还容易出错~

[此贴子已经被作者于2017-1-1 18:17编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-01-01 18:15
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
第一题应该是,a=8,b=8,c=10

a=(--x==y++)?--x:++y
X自减,然后判断,判断成立,然后Y自曾,得到结果,a=8.(Y不会第二次自增,因为第二次取决于前面的判断真还是假)
b=x++
先赋值给b,得到b=8,然后x自增
c=y;
y=10;

[此贴子已经被作者于2017-1-1 18:30编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-01-01 18:28
核心利益
Rank: 2
等 级:论坛游民
威 望:2
帖 子:19
专家分:44
注 册:2016-12-31
收藏
得分:0 
第一题考了增一减一运算(或者叫自增自减运算);和条件运算符和条件表达式(表达式1?表达式2:表达式3)该题先计算出表达式1(--x==y++),表达式1后面的?表示“该往哪走啊?”,有两条路,如果表达式1的值为真(非0),自然直接到表达式2,如为假(0值),就绕过表达式2,到达表达式3
对于自增,自减运算符
++i,--i(在使用i之前,先使i的值加(减)1)
i++,i--(在使用i之后,使i的值加(减)1)
因此该题表达式1(--x==y++)其中--x在使用前x的值减一 是9,y++在使用后加1,使用时的值为9,所以表达式1的值为真,那么a=表达式2的值,表达式2的值是--x,在使用前减一为8;即a=8
     b=8(b=x++,在使用后加1,使用时的值为8)
     c=10
2017-01-01 22:07
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
虽然感觉这题人为考点很强,但我还是去说一下:第一题a=8,b=8,c=10;简单说就是考了++x和x++的区别,核心抓主++x先自增,再赋值,x++先赋值,再自增~~~用这个原理不难推导出结果~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-01-01 22:24
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10538
专家分:42927
注 册:2014-5-20
收藏
得分:0 
一串左右++--,有点钻角尖。
C代码的“紧凑性”有时给人觉得有点“没人性”,这种写法也许会使令编译后代码也会紧凑点、运行高效点。如果不是追求极致,可免则免,否则会给编程或以后的维护带来不少压力。
2017-01-01 22:32
核心利益
Rank: 2
等 级:论坛游民
威 望:2
帖 子:19
专家分:44
注 册:2016-12-31
收藏
得分:0 
第二题考得是if 和else的配对问题
注意if和else的配对关系,else总与它上面的最近的未配对的if配对。
因此 main()
{
    int x=2,y=-1,z=2;
    if(x<y)
    if(y<0) z=0;
    else z=+1;
    printf("%d\n",z);
}
此题中第二个if和它下面的else配对,但是由于第一个if(x<y)为假,程序不再执行下面的if else语句(因为这个if else是第一个if的嵌套),直接到printf语句,输出z的值为2
2017-01-01 23:24
y529879803
Rank: 1
等 级:等待验证会员
帖 子:65
专家分:7
注 册:2016-11-10
收藏
得分:0 
脙茠芒鈧?∶冣

碧蓝航线真好玩
2017-01-02 08:39
快速回复:请问两道题目
数据加载中...
 
   



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

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