关于网友提出的“ c语言的问题”问题疑问,本网通过在网上对“ c语言的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: c语言的问题描述:
设a,b为整形变量二者均不为零,一下关心以下关系表达式恒为真的是()
A a*b/a*b==1 B a/b*b/a==1 C a/b*b+a%b==a D a/b*b==a
解释一下Thanks.....
解决方案1:
当a小于b时:a/b*b=0,第二项a%b=a
第一项 解决方案2:
你说呢? 解决方案3:
A:左边表达式实际结果为b^2
B:当a小于b时左边结果恒为0
C:正解
D:同B选项 解决方案4:
选C吧。
解决方案5:赞同
解决方案6:
答案是C
分别考虑a>b,a=b,a
回复四楼,你的a/b*b+a%b=a+a%b 这个结论就是错的 要知道a,b是整形变量 a/b就取整数部分,再乘b后能等a吗
*/为相同的优先级,所以运算从左到右
A a*b/a*b==1
所以:a*b/a*b=b^2------------A式不成立
B a/b*b/a==1
a/b*b/a=(a/b*b)/a=a/a=1-----B式成立
C a/b*b+a%b==a
a/b*b+a%b=a+a%b,只有当a%b=0即,a是b的倍数时才成立,-----C式不成立
D a/b*b==a-------------明显是成立的
知识点就是整型变量的除法运算,结果取整数部分
解决方案10: C
a/b 7/3=2 *b=6
a%b=7%3=1
6+1=7
A第一步乘有溢出(超出整型量的表示范围)的可能
B与D相关,整除会丢失余数部分,再乘也不会恢复
C在D的基础上,单独考虑整除的余数--正确
DB中说过了