1.计算:
答案:2,4,40
2、计算:
① ~0;= -1; ②!0 = 1; ③ 2&4 = 0; ④2&&4 = 1 ⑤2|4=6 ⑥2||4 = 1 ⑦5<<3=40
3.分析:
答案:第一条输出:arcturan
第二条输出:错误,pb为指针,调用时用"->"
第三条输出:错误,deb为对象,调用时用"."
第四条输出:cturan(加2代表指针后移)
4.下面的代码在32位系统下各sizeof计算的结果是多少?
char a[100];
sizeof (a)的值为:100 (整个数组的大小)
sizeof(a[50])的值为:1 (一个char型常量所占用的空间大小)
sizeof(&a)的值为:8 (代表一个指针)
sizeof(&a[0])的值为:8 (一个指针大小)
5.计数
答案为:7(指针向后偏移7位);
6.以下程序编译后,简要说明各个变量的保存空间
a: b: c: s: p1[1]: "12345":
7.定义一个宏,输入两个参数,返回值较大的一个:
#define MAX(x,y) (((x)>(y))? (x):(y))
8.预处理#define 定义SECONDS_PRE_YEAR 计算一年多少秒
9.已知一个数组array,用一个宏定义数组个数:
#define num (sizeof(array)/sizeof(array[0]))
10.声明一个指向函数的指针,该函数的函数值是一个char指针和一个char值
char*(*pfun)(char*,char)
11.在aaa.c:int g_rec_count = 10:bbb.c中如果需要引用g_rec_count需要怎样声明?
extern int g_rec_count;
12.给定一个整型变量a,写两段代码,第一个设置a的bit为5,第二个清除a的bit 5。在以上两个操作中,要保持其他位不变。
13.有一个函数,功能是在/home目录下创建一个文件log.txt,也可以保存一个字符串类型的msg,返回值是int 类型:
14.请解释一下什么是“内存泄漏”,内存泄漏形成的原因和产生的后果是什么?
原因:①长生命周期的对象引用短生命周期的对象;
②没有将无用对象置为NULL;
后果:此类软件可能会被当成病毒。