1,设有以下语句:int a=3,b=6,c;
c=a^b<<2;
解析:因为“<<”的优先级更高,先将b以二级制的形式运算,等于ob0001 1000,再与a异或,结果为ob001 1011,转换为十进制为c=27。
2,两个数的交换
解析:新建第三数,先将a的值赋值给c,再将b的值赋值给a,最后将c的值赋值给b。
3,
解读代码
void main()
{
int a=3,b=5,x,y,z;
printf(“%d\n”, a>3+2);
printf(“%d\n”, x=12+3/4-a>1);
printf(“%d\n”, y=a>2&&a<10);
printf(“%d\n”, z=1?a+2:b-1);
}
解析:a>3+2,因为a=3<5,所以条件为假,输出为0;
x=12+3/4-a>1,因为12+3=15,再对15/4取整,得3,3>1,则条件为真,输出为1;
y=a>2&&a<10,因为2<a=3<10,条件为真,输出为1;
z=1?a+2:b+1,因为条件为1,执行第一个代码a+2,输出为5;
4,给定一个整数,判断它是否被3、5、7整除,并输出一下信息
1,能同时被3,5,7整除(直接输出3 5 7,每个数字之间一个空格)
2,只能被其他两个整数整除(输出两个数,小的在前,大的在后,例如3 5或者3 7或者5 7,中间使用空格隔开)
3,只能被其中一个整数整除(输出这个除数)
4,不能被任何数整除,输出小写字母n
结果: