计算机等级考试二级Visual C++

来源:百度知道 编辑:UC知道 时间:2024/05/18 02:33:32
紧急!!!有哪位好心人士能给我解答下(要有详细的解答过程),谢谢啦!
1、设x,y,z为整数,下列格式中运算结果与x=y=24的表达是相同是——( )
(A)x=(y=z=8,4*6) (B)x=y=(z=8,4*6)
(C)x=y=z=8,4*6 (D)x=(y=z=8),4*6
2、若变量a已说明为float类型,i为int类型,则表达式(或语句)( ) 能实现将a中的数值保留小数点后两位,第三位进行四舍五入的运算。(多项选择)
(A)a=(a*100+0.5)/100.0 (B)i=a*100+0.5,a=1/100.0
(C)a=(int)(a*100+0.5)/100.0 (D)a=(a/100+0.5)*100.0
3、(填空题)设有语句“int a=258,b;ungigned char c;b=c=a;”则b的值是( )
有哪位高手给我详细解答啊? 答案是:1、(B) 2、(B)(C) 3、2

1:B 逗号优先级最低 A:x=(y=z=8,4*6)可以看成是x=( (y=z=8) ,4*6)
z=8,y=8,x=4*6 逗号运算的话 就看最后的那个 如(3,6) 该表达式的值 为6 A弄懂了话后面就讲快点了 帮你加下先后顺序 B:x=y=( z=8 , 4*6) z=8 y=4*6 x=4*6
C (x=y=z=8) ,4*6 x=y=z=8 D:( x=(y=z=8) ),4*6 C一样的结果

2: 假设a=0.117 让其变成0.12 对吧
A:a=(a*100+0.5)/100.0=(11.7+0.5)/100=0.122 错误
B:i=a*100+0.5,a=1/100.0=(11.7+0.5)=12.2 将其存入 i 而 i是 整型 所以 变成 12 然后 12/100=0.12 对的
C:a=(int)(a*100+0.5)/100.0=int(12.2)/100 强行变成整数 12/100=0.12 对的
D:a=(a/100+0.5)*100.0=50.117 错的离谱

3 :char c是字符型 -128~127 且无符号的话 0~127(可存128个数) a=258的话 先看 如果 a=128 超过了 127 c 还是不能存放 所以规定是将其等于0 存入c 129的话 将其变成1 存入c ··· 从最小的开始
258 存入c (128个位子) 258-128*2=2 所以结果是2 然后给b

还有不懂的可以再问哈

(B)x=y=(z=8,4*6)//逗号操作符的基本使用,取右值
(C)a=(int)(a*100+0.5)/100.0 //没什么解释,自己算就知道了
b = 2 楼上的说了原因

等效即结果等效,也就是说,x=y=24的结果是x=24,y=24
那么只需答案中x=24,y=24就可以了,A中,x=24,y=8
B中,x=24,y=24 C中,x=8,y=8 D中,x=8,y=8
第2题,关键是第三位要四舍