若有语句int a=8,b=2,k;,则表达式的值不为4的是

若有语句int a=8,b=2,k;,则表达式的值不为4的是
A、k=a/b
B、k=a/3+b
C、k=a>>2*(b++)
D、k=a*(b++)>>2
【正确答案】:C
名师解析:题目中给出了四个选项,每个选项都是一个赋值表达式,我们需要找出其中结果不为4的表达式。 选项A:k=a/b,其中a=8,b=2,所以k=8/2=4,结果为4。 选项B:k=a/3+b,其中a=8,b=2,所以k=8/3+2=2.666...+2=4.666...,结果不为4。 选项C:k=a>>2*(b++),这里涉及到位运算和后缀加一操作。首先计算2*(b++),因为b++是后缀加一,所以先使用b的原始值2进行乘法运算,然后b的值加1变成3。然后a=8,二进制表示为1000,右移两位后变为0001,即1。所以k=1*2=2,结果不为4。 选项D:k=a*(b++)>>2,同样b++是后缀加一,先计算a*b,即8*2=16,然后b的值加1变成3。接着16右移两位,即16的二进制表示为10000,右移两位后变为01,即1。所以k=1,结果不为4。 综上所述,只有选项C的结果不为4,所以答案是C。