文档介绍::什么是预编译,何时需要预编译: 答案:
1、总是使用不经常改动的大型代码体。
2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种
情况下•可以将所有包含文件预编译为一个预编译头。
2 char * cAAA”是字符串常量。S是指针,指向这个字符串常量,所以声明S的时候就有问题。
cosnt char* s="AAA-;然后又丙为是常量,所以对是s[。]的賦值操作是不合法的。
9写一个“标准”宏,这个宏输入两个参数并返回较小的一个•
答案:-#define Min(X, Y) ((X)>(Y)?(Y):(X)) 〃结尾没有3,
IO嵌入式系统中经常要用到无限循环,你怎么用C编写死循环?
答案 J while(i){}或者 for(;;) 11关键字static的作用是什么?
答案:总义静态变量 或 静态函数
12关键字const有什么含意?
答案:表示常量不可以修改的变量。
13关键字volatile有什么含意?并举出三个不同的例子?
答案:提示编译器对象的值可能在编译器未监测到的情况下改变。
(1)并行设备的硬件寄存器(如状态寄存器〉 (2)中断函数中会访问到的非自动变量 (3)多线程应用中被几个任务共享的变量
14 int (*s[io])(int)表示的是什么啊?
答案:int(*s[io]Xint)函数指针数组,毎个指针指向一个intfunc(intparam)的函数♦
int 9=248, b=4;
int const c=2i;
const int *d=&a;
int *const e=&b;
int const *f const =&a;请问下列表达式哪些会被编译器禁止?为什么?
答案:*c=32; d=&b; *d=43; *34; e=&a; f=ox32if; *c 这是个什么东东,禁止 *d 说 了是 const, 禁止 e = &a 说了是 const 禁止 const *f const =&a;禁止 •即X3,b巧,交换之后X5,b=3;
答案:有两种解法,一种用算术算法p —种用Y异或)。a = a + b;b = a-b;a = a-b;
或者 a = a八b;H 只能对 int,char., b = a^b; a = a^b; or a b 人=a;
(7 c和CH•中的struct有什么不同?
答案:C和C++中struct的主要区别是C中的struct不可以含有成员函数,而c+十中的struct 可以。C+,而
class 默认为 private
1& #include <> #include <> void getmemory(char *p)
p=(char *) malloc(ioo);
strcpy(p,"hello world");
int main()
char*str=NULL:
getmemory(str);
printf("%s/n'\str);
24•死锁的处理
free(str);
return o;
答案J程序朋溃,getmemory中的malloc不能返回动态内存,free ()对str操作很危
19 char szstr[io];
5trcp y(5Z5tf7”oi23456789");
产生什么结果?为什么? 答案:长度不一样,会造成非法的OS
20列举几种进程的同步机制,并比较其优缺点
答案:原子操作信号量机制自旋锁管程,会合,分布式系统
2,•进程之间通借的途径
答案:共享存储系统消息传递系统皆逍:以文件系统为基础 a进程死锁的原因 答案:资源竞争及进程推进顺序非法
23•死锁的4个必要条件
答案:互斥、请求保持、不可剥夺、环路
答案:鸵鸟策略、预防策略、避免策略、检测与解除死锁
?
答案:FCFS(先来先服务).优先级•时间片轮转,多级反馈
26•类的静态成员和非静态成员有何区别?
答案:类的静态成员每个类只有一个,非静态成员每个对象一个
"•纯虚函数如何定义?使用时应注意什么? 答案:virtual void f()=o;是接口,子类必须要实现 2&数组和链表的区别
答案:数组:数据顺序存储,固定大小;
链表:数据可以随机存储,大小可动态改变
? tcp/udp >属于哪一层? tcp/udp有何优缺点?
答案:应用层表示层会话层传输层网络层链路层物理层:
tcp/udp属于传输