嵌入式系统开发人员C语言测试题--设计问答题(运算符与表达式)

2.3 问答与设计
(209) 按位运算中左移后的低位、右移后的高位是如何填补的?
(210) 什么是"位屏蔽(bit masking)"?
(211) 位域(bit fields)是可移植的吗?
(212) 移位和乘以2这两种方式中哪一种更好?
(213) 请写出sizeof运算符的原型。
(214) 为什么要将常量和表达式置于比较操作的左边?
(215) 指出下面程序的错误
{
    z = x+y;
    t = z/100;
    printf("%f", t);
};

(216) 指出下面程序的错误并改正:
void main(void)
{
    int a = 5, b = 6, c= 7, d = 8;
    if ((a > b) & (c > d))
    {
        printf("Good\n");
    }
    else
    {
        printf("Bad\n");
    }
}
(217) 指出下面程序的错误并改正:
void main(void)
{
    unsigned char a;
    a = 0x10;
    while (a)
    {
        printf("0x%x left shift 2bit:0x%x\n", a, a>>2);
    }
}

(218) 指出下面程序的错误并改正:
void main(void)
{
    int a,b;
    a = 1;
    b = a/++a;
    printf("b equals %d\n", b);
}

(219) int a=391,b=1971; 写出 a^b^a的值。

(220) 语句:x++;?++x; x=x+1;?x=l+x; ,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句。

 

作者:Gavin   更新日期:2006-04-30
来源:upsdn.net   浏览次数:

相关文章

相关评论   发表评论