c语言习题求解10 11 12 ,求解析
10、&&表示与,||表示非,其运算结果是0或1,表示对错。
A、x与y,两个都有值存在,所以是对的,结果是1。
B、3<=4,是对的,结果是1。
C、((x或y+1)与y-z),按这个顺序来,(3或(4+1))都是存在的,为1,。继续(1与(5-5))都是存在的,结果是1。
D、((这段不用看了)或1)只要有1存在,或的结果一定是1。但是最前面!表示取反,即原式为1,现在就是0。此选项正确√
11、如下
A、int定义时不能连等,y无法解释是新定义变量还是之前就有的。
B、int是定义属性为整数,不能进行带变量的运算,一旦x或y不是int型变量此式运算结果将不准确。
C、 x= (+8==7),而+8==7是比较两个数据是否相等。又因为+8和7不相等,所以x值为1。此选项正确√
D、%=是求模赋值运算符,即x的模为4.5,x不能确认正负,所以无效,然后报错。
12、如下
根据运算符的优先级和结合性,先做后面那一串的乘除a%3*(int)(x+y)%2/4。
其中%为取余数。而这一串的乘除法是从左到右依次计算的。故而倒数第二和第一的运算是%和/。Y%2表示Y除以2剩多少是除不开的(余数),其结果只能是0或1;而这个0或者1再/4(注意这里是整数除法,只能得到整数部分,0/4=0,1/4=0.25=0),结果一定就是0了。故这个表达式的最终结果就是原来x的值,就是2.5,float为单精度变量(跟一串小数)。A选项正确√