c语言==笔试题4(26)

来源:互联网 发布:汉仪全唐诗简体 mac 编辑:程序博客网 时间:2024/04/30 06:01

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 + 1printf(“b = %d\n”, b);return 0;}
答案:250
解析:考察两个知识点:一是类型转换问题,二是运算符优先级的问题,优先级~ > + > 》0000000010100101取反1111111101011010,再右移(4+1)位,即0000011111111010,要注意取反操作时,会对a进行整形提升,a是无符号的,提升时左边补零
0 0
原创粉丝点击