|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 请问两道题目
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1147
人关注过本帖
标题:
请问两道题目
只看楼主
加入收藏
九转星河
来 自:长长久久
等 级:
贵宾
威 望:
52
帖 子:5023
专家分:14003
注 册:2016-10-22
第
11
楼
收藏
得分:0
感觉第一题考的意义不大,过去就算了~噢噢,我们自然编程尽量避免题目那样在一行中应用诸多自增自减,那种写法不仅不方便阅读,而且还容易出错~
[此贴子已经被作者于2017-1-1 18:17编辑过]
[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-01-01 18:15
举报帖子
使用道具
赠送鲜花
renkejun1942
来 自:不是这样
等 级:
贵宾
威 望:
33
帖 子:1645
专家分:5297
注 册:2016-12-1
第
12
楼
收藏
得分: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
举报帖子
使用道具
赠送鲜花
核心利益
等 级:
论坛游民
威 望:
2
帖 子:19
专家分:44
注 册:2016-12-31
第
13
楼
收藏
得分: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
举报帖子
使用道具
赠送鲜花
九转星河
来 自:长长久久
等 级:
贵宾
威 望:
52
帖 子:5023
专家分:14003
注 册:2016-10-22
第
14
楼
收藏
得分:0
虽然感觉这题人为考点很强,但我还是去说一下:第一题a=8,b=8,c=10;简单说就是考了++x和x++的区别,核心抓主++x先自增,再赋值,x++先赋值,再自增~~~用这个原理不难推导出结果~~~
[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-01-01 22:24
举报帖子
使用道具
赠送鲜花
吹水佬
等 级:
版主
威 望:
451
帖 子:10610
专家分:43210
注 册:2014-5-20
第
15
楼
收藏
得分:0
一串左右++--,有点钻角尖。
C代码的“紧凑性”有时给人觉得有点“没人性”,这种写法也许会使令编译后代码也会紧凑点、运行高效点。如果不是追求极致,可免则免,否则会给编程或以后的维护带来不少压力。
2017-01-01 22:32
举报帖子
使用道具
赠送鲜花
核心利益
等 级:
论坛游民
威 望:
2
帖 子:19
专家分:44
注 册:2016-12-31
第
16
楼
收藏
得分: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
等 级:
等待验证会员
帖 子:65
专家分:7
注 册:2016-11-10
第
17
楼
收藏
得分:0
脙茠芒鈧?∶冣
碧蓝航线真好玩
2017-01-02 08:39
举报帖子
使用道具
赠送鲜花
17
2/2页
1
2
快速回复:
请问两道题目
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.038568 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved