C语言期末考试易错 1

 

相关知识

1 除法与小数

2 a++与++a

3 按位与操作符 与>>操作符(16进制)

一、除法与小数

C语言期末考试易错 1_第1张图片

  这里本意是想输出2.750000却输出了2.50000。

  错在做小数除法时分子分母不能同时为整数,应该把4改为4.0。

  学校常常出此出选择题迷惑考生。

二、a++ 与++a

C语言期末考试易错 1_第2张图片

这里不少同学会填“2”,然而结果是1。

因为 y=*p++ 实际上是两个语句。

y=*p;

*p=*p+1;

而y=++*p

则是*p=*p+1;

y=*p;

三  按位与& 与>>

C语言期末考试易错 1_第3张图片

这道题比较有趣,考察了几个方面

1 0x+数字代表16进制 ,%x代表打印16进制数

2 & 代表按位与操作符  (即将其化为二进制数 若相同的位同为1则取1否则取0)

如(4&6)化为二进制为(100&110)同为1取1得(1  0  0) 化为十进制是 4 

3 >>将一个数化为二进制后,从最后一位右移  如 37>>4 即(0010 0101)>>4   (0000 0010 )

 

     首先(f 1 1 f   与  f f 0 0)按位与操作   为(f 1 0 0)   (第一位都为f 第二位1为16进制化为二进制后 与f化为二进制后进行&操作,结果为1, 第三第四位为0。)

      然后将(f 1 0 0)右移四位。 

     因为最后一个0是16进制数,即 0 代表二进制 0000  右移四位后为(0 f 1 0),输出 f10。   

 

同学们好好备考,期末加油哦。

 

C语言期末考试易错 1_第4张图片

 

你可能感兴趣的:(c语言)