1、请写出 float x 与“零值”比较的 if 语句
答案:if(x>=0.000001&&x<=-0.000001)
2、写出输出结果
char* s = “AAA”;
printf(“%s”, s);
s[0] = 'B';
printf(“%s”, s);
答案: AAA,段错误
解析:指针变量是全局变量,对应的是内存中的全局区域。字符串常量保存在只读的数据段,是不可以修改的
3、用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
答案:define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
解析:预处理器将为你计算常数表达式的值,因此不要写出具体数值,这个表达式将使一个16位机的整数溢出,因此要用到长整型符号L,告诉编译器这个常数是长整型
4、下面程序的输出结果是多少
#include <stdio.h>
int main()
{
unsigned char a = 0xA5;
unsigned char b = ~ a >> 4 + 1;
printf(“b = %d\n”, b);
return 0;
}
答案:250
解析:考察两个知识点:一是类型转换问题,二是运算符优先级的问题,优先级~ > + > 》
0000000010100101取反1111111101011010,再右移(4+1)位,即0000011111111010,要注意取反操作时,会对a进行整形提升,a是无符号的,提升时左边补零