嵌入式笔试面试题(11)---运算符的优先级

1、前置++运算符总比后置++效率更高吗?为什么?

a++   取出a的值充当a++表达式的值

      a=a+1;

++a   a=a+1;

      取出a的值,充当++a表达式的值

-----------------------------------------------

a++   会产生一个临时变量,a+1后会赋值给临时变量

++a   a+1后就可以直接使用

————————————————————————

2、char x =0x05, y = 0x0A, i = 0x01

有下面两个表达式,x|y && ++i      x>=y||y>x

0x05---->0000 0101

0x0A---->0000 1010

x|y && ++i--->1

X>=Y||Y>X---->1

3、Short  a= 3,b;

Char c = 14;

b=~(c^a)<<4;

b?//-224

补码:1000 1110 0000

4、优化下面表达式(提示:& | >> << ^)

int a=b*4          

int a=(b+2)*4      

int a=(b/3)*4

int a=(b%2)*8

5、float a=2, b=4, c=3;,以下C语言表达式与代数式 (a+b)+c计算结果不一致的是
A.(a+b)*c/2
B.(1/2)*(a+b)*c 
C.(a+b)*c*1/2
D.c/2*(a+b)

6、C语言中,下列运算符优先级最高的是
A.! 
B.%
C.>>
D.==

7、执行语句“ k=7>>1; ”后,变量 k 的当前值是
A.15
B.31
C.3
D.1

8、下列程序段运行后, x 的值是()
a=1;b=2;x=0;
if(!( -- a))x -- ;
if(!b)x=7;else ++x;
A.0
B.3
C.6
D.7

9、算术运算符,赋值运算符和关系运算符的运算优先级按从高到低依次为
A.算术运算、赋值运算、关系运算
B.算术运算、关系运算、赋值运算 
C.关系运算、赋值运算、算术运算
D.关系运算、算术运算、赋值运算

10、写一语句实现x是否为2的若干次幂的判断。

return x&(x-1)==0?1:0;

11、运算符优先级问题如:b = a * b++;     

                    C = a * ++b;

12、C=a+++b;是否合法

是合法的

13、  unsigned char a,result;

a=1;

 result = a << 4 &&0x11;

result 的值1

14、a = 4,

A)a += a++;//9 (B)  a += ++a //10;(C)  (a ++)  += a ;//a++为表达式故错误 (D)(++a)+= a;//++a为表达式故错误;请问ABCD中的是否正确,如果正确,写出a的值.?

猜你喜欢

转载自blog.csdn.net/xt18971492243/article/details/79371947