linux程序分析题怎么做,经典LINUX程序员面试题

(FILE)

1.按值和按地址传递(此题太简单,略)

2.指针的取地址和取值、指针运算操作(比较简单,略)

3.char   *p;

p=malloc(20);

char   q*;

q=strcpy(p,"Please   answer   the   question   carefully");

q+=7;

printf("%s",q);

printf("%s",p);

4.#define   X   1

#define   Y   X+1

int   p;

p=x+y/2;

printf("%d",p);

5.struct   n{

int   p;

char   name;

}a;

void   structp(struct   n   b)

{

b.p=10;

b.name='X';

}

int   main()

{

int   x=5;

char   name='Y';

a.p=x;

a.name=name;

structp(a);

printf("%d",a.p);

printf("%c",a.name);

}

6.略(记不清楚了,好像是字符串操作题)

7.略(结构和双链表,此题比较难,花时间多)

8.分析以下程序,写出结果

Void   GetMemory2(char   **p,   int   num)

{

*p   =   (char   *)malloc(num);

}

void   Test(void)

{

char   *str   =   NULL;

GetMemory(&str,   100);

strcpy(str,   "hello");

printf(str);

}

9.分析以下程序,写出结果

char   *GetMemory(void)

{

char   p[]   =   "hello   world";

return   p;

}

void   Test(void)

{

char   *str   =   NULL;

str   =   GetMemory();

printf(str);

}

三、程序写作题:

1.用C语言实现下现函数(不能调用库函数)

char   *strcpy(char   *dest,const   char   *src)

为什么此字符串拷贝函数还要返回一个字符指针?

2.有两个整型变量x,y如何不使用任何中间变量的同时将两个值交换

3.写出BOOl   flag与零值的比较,指针与零值的比较

四、英语基础题(本人英语不好,所以记不住,此题有两部分,第一部分是声明变量,第二部分是完型填空)

五、选择题(此题的具体备选答案我记不住了,不过你若掌握了这部分知识,不需要备选答案,若没有了解,   也不过是在猜题)

1.在网络数据传输时,哪种方式数据延迟最大?为了尽可能减少误码,最不宜采用哪种方式传输?分组交   换主要是对数据报文传输的哪方面的改进?改进的直接结果是什么?为了达到数据的最小误码率,应采   哪种方式(或组合方式)进行传输?(提示:备选答案中有:线路交换,分组交换,虚电路等等)

2.下面有一棵二叉搜索树,物理存储的方式按一个节点占三个存储单元,例如:有一结点P,在内存1001   中存储P的信息,1002中存储P的左边链接指针,1003中存储P的右边链接指针,以下是一张将要存储的   节点表:

P:P(节点本身信息),L1(P的左链节点指针),R1(P的右链节点指针);(以下以此类推)

W:W,L2,R2

E:E,L3,R3

R:R,L4,R4

C:C,L5,R5

将上述节点以字母表的顺序生成二叉搜索树,并存储在内存1001之后的连续单元中(存储节点时按字    母顺序存储,比如C存储在1001,1002,1003中,那么E就应存储在1004,1005,1006中)。

请问:L2,R3,L5将分别存储在哪个内存单元

对此二叉搜索树进行后序遍历和前序遍历,请分别写出遍历顺序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值