c++超级小问题

来源:百度知道 编辑:UC知道 时间:2024/05/12 17:07:30
(1)若有定义:int a=10,b=9,c=8;执行下面语句
a*=a*=b+(c+=12) ;
后,变量a的值为( )请把解题过程写我看看哈?
(2).在下列字符型常量表示中,( )是错误的。
A. ‘\87’; B. ‘\33’; C. ‘\\’; D. ‘\“’
答案是什么,为什么?

1.
a*=a*=b+(c+=12) ;
从右至左运算,分解后可看成:
c=c+12;/*c=8+12=20*/
a=a*(b+c);/*a=10*(9+20)=290*/
a=a*a;/*a=290*290=84100*/

2.A
'\ddd',ddd是1到3位的8进制数。这种是将ddd转换成对应的ASCII码
而87不是一个8进制数,超出8进制范围,所以是错的。

(1)应该是 2900吧
(2)应该是D吧
我也是刚学的, 不太懂

在vc6下测试,xndcn的答案正确。