- C语言基本数据类型及其占用的内存空间大小分别是:int:4字节;short int:2字节;long int :4字节;unsigned int:4字节;unsigned short int :2字节;unsigned long int:4字节;char :1字节;float:4字节;double:8字节。
- 算数运算符有:+ - * / % ++ --
- 关系运算符有:> < == >= <= != <>
- 逻辑运算符的优先顺序是:! && ||
- 赋值运算符有:= += -= *= /= %=
- 下面代码的输出结果是什么?请解释原因。
6.
#include<stdio.h> int main() { char c=132; printf("%d",c); }
输出的结果是-124,因为char占一个字节,132的二进制为:1000 0100,第一位为1,计算机识别为负数,取反为1111 1011,进位加一为1111 1100,所以输出-124
7. int a=-7; printf(“%d”,a>>1);
#include<stdio.h> int main() { int a=-7; printf("%d",a>>1); }
输出的结果是-4,因为int占四个字节,-7是负数,存储取反进一为:1111 1111 1111 1111 1111 1111 1111 1001
-7>>1:1111 1111 1111 1111 1111 1111 1111 1100
再取反进一为 :0000 0000 0000 0000 0000 0000 0000 0100,所以输出为-4
8. int a=7;
int b=8;
printf(“%d”,a&b);
#include<stdio.h> int main() { int a=7; int b=8; printf("%d",a&b); }
输出结果为0,因为&是按位与,上下都是1才是1,否则为0,7是0000 0000 0000 0000 0000 0000 0000 0111
8是0000 0000 0000 0000 0000 0000 0000 1000,所以32位都为0,输出为0
9. int a=7;
int b=8;
printf(“%d”,a^b);
#include<stdio.h> int main() { int a=7; int b=8; printf("%d",a^b); }
输出结果为15,因为^是按位异或,不相同的为1,相同的为0,7是0000 0000 0000 0000 0000 0000 0000 0111
8是0000 0000 0000 0000 0000 0000 0000 1000,
a^b为:0000 0000 0000 0000 0000 0000 0000 1111,所以输出15