华为2017笔试
8。char* s="AAA"; printf("%s",s); s[0]="B"; printf("%s",s); 有什么
错?答案:"AAA"是字符串常量。s是指针,指向这个字符串常量,所以声明s
的时候就有问题。 cosnt char* s="AAA"; 然后又因为是常量,所以对是s
[0]的赋值操作是不合法的。
9。写一个“标准”宏,这个宏输入两个参数并返回较小的一个。答
案:.#define Min(X, Y) ((X)>(Y)?(Y):(X)) //结尾没有‘;’
10。嵌入式系统中经常要用到无限循环,你怎么用C编写死循环。答案:
while(1){}或者for(;;)
11。关键字static的作用是什么?答案:定义静态变量
12。关键字const有什么含意?答案:表示常量不可以修改的变量。
13。关键字volatile有什么含意?并举出三个不同的例子?答案:提示编译
器对象的值可能在编译器未监测到的情况下改变。
14。int (*s[10])(int) 表示的是什么啊?答案:int (*s[10])(int) 函数
指针数组,每个指针指向一个int func(int param)的函数。
15。有以下表达式: int a=248; b=4;int const c=21;const int *d=&a;
int *const e=&b;int const *f const =&a; 请问下列表达式哪些会被编译
器禁止?为什么?答案:*c=32;d=&b;*d=43;e=34;e=&a;f=0x321f; *c 这是
个什么东东,禁止 *d 说了是const, 禁止 e = &a 说了是const 禁止
const *f const =&a; 禁止
16交换两个变量的值,不使用第三个变量。即a=3,b=5,交换之后a=5,b=3; 答
案:有两种解法, 一种用算术算法, 一种用^(异或) a = a + b; b = a - b; www.89xue.com
a = a - b; or a = a^b;// 只能对int,char.. b = a^b; a = a^b; or a ^=
b ^= a;
17.c和c++中的struct有什么不同?答案:c和c++中struct的主要区别是c中
的struct不可以含有成员函数,而c++中的struct可以。c++中struct和class
的主要区别在于默认的存取权限不同,struct默认为public,而class默认为
private
18.#include #include void getmemory(char *p)
{
p=(char *) malloc(100);
strcpy(p,"hello world"); } int
main( ) {
char *str=NULL;
getmemory(str);
printf("%
s/n",str);
free(str);
return 0;
} 答案:程序崩溃,
getmemory中的malloc 不能返回动态内存, free()对str操作很危险
19.char szstr[10]; strcpy(szstr,"0123456789"); 产生什么结果?为什
么?答案: 长度不一样,会造成非法的OS
20.列举几种进程的同步机制,并比较其优缺点。答案: 原子操作 信号量
机制
自旋锁
管程,会合,分布式系统
21.进程之间通信的途径答案:共享存储系统消息传递系统管道:以文件系统
为基础
22.进程死锁的原因答案:资源竞争及进程推进顺序非法
23.死锁的4个必要条件答案:互斥、请求保持、不可剥夺、环路
24.死锁的处理答案:鸵鸟策略、预防策略、避免策略、检测与解除死锁
25. 操作系统中进程调度策略有哪几种?答案:FCFS(先来先服务),优先级
,时间片轮转,多级反馈
26.类的静态成员和非静态成员有何区别?答案:类的静态成员每个类只有一
个,非静态成员每个对象一个
27.纯虚函数如何定义?使用时应注意什么?答案:virtual void f()=0; 是
接口,子类必须要实现
28.数组和链表的区别答案:数组:数据顺序存储,固定大小连表:数据可以
随机存储,大小可动态改变
29.ISO的七层模型是什么?tcp/udp是属于哪一层?tcp/udp有何优缺点?答
上一页 [1] [2] [3] [4] [5] [6] 下一页