文档库 最新最全的文档下载
当前位置:文档库 › 笔试题-经典LINUX程序员面试题:

笔试题-经典LINUX程序员面试题:

笔试题-经典LINUX程序员面试题:
笔试题-经典LINUX程序员面试题:

比较经典(闭卷,100分钟完卷,最好写出解题步骤),若你能答对百分之七八十,说明你一只脚踏进了linux 编程的大门,若你能答对百分之九十以上,你收我做弟子(可怜可怜我吧),你若不及格,那就跟我一样:菜鸟!

一、基础题:

1.请列举出你用过的LINUX发行版及其中的GCC版本、GLIB版本

2.ISO七层参考模型中的PPP协议、HTTP协议处于哪一层?

3.说出TCP和UDP的相同和不同之处

4.IP数据包头部是多长?146.0.0.0属于哪一类IP地址?

5.请写出linux嵌入式系统开发过程

6.在以下列举的GCC中的参数,请一一写出代表的意思:

-c

-o

-share

-static

7.写出以下参数的含义:

_attribute_ (packet)

volatile

#define ANYONE((DIR)<

(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;

https://www.wendangku.net/doc/721176339.html,='X';

}

int main()

{

int x=5;

char name='Y';

a.p=x;

https://www.wendangku.net/doc/721176339.html,=name;

structp(a);

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

printf("%c",https://www.wendangku.net/doc/721176339.html,);

}

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

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

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

V oid 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将分别存储在哪个内存单元

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

C /C 笔试题-LINUX常用命令

一,注销,关机,重启

注销系统的logout命令

1,Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可:[root@localhost root]#logout

Red Hat Linuxrelease 9(Shike)

Kernel 2.4.20.8 on an i686

Login: ←回到登陆的画面

2,关机或重新启动的shutdown命令

Shutdown命令可以关闭所有程序,依照用户的需要,重新启动或关机。

参数说明如下:

立即关机:-h 参数让系统立即关机。范例如下:

[root@localhost root]#shutdown –h now ←要求系统立即关机

指定关机时间:time参数可指定关机的时间;或设置多久时间后运行shutdown命令,范例如下:

[root@localhost root]#shutdown now ←立刻关机

[root@localhost root]#shutdown +5 ←5分钟后关机

[root@localhost root]#shutdown 10:30 ←在10:30时关机

关机后自动重启:-r 参数设置关机后重新启动。范例如下:

[root@localhost root]#shutdown -r now ←立刻关闭系统并重启

[root@localhost root]#shutdown -r 23:59 ←指定在23:59时重启动

3,重新启动计算机的reboot命令

顾名思义,reboot命令是用来重新启动系统的。常用的参数如下:

-f 参数:不依正常的程序运行关机,直接关闭系统并重新启动计算机。

-I 参数:在在重新启动之前关闭所有网络接口。

虽然reboot命令有个参数可以使用,但是一般只需要单独运行reboot命令就可以了

二,文件与目录的操作

列出文件列表的ls命令

1,ls(list)命令是非常有用的命令,用来显示当前目录中的文件和子目录列表。配合参数的使用,能以不同的方式显示目录内容。范例如下:

显示当前目录的内容:

[tony@free tony]$ ls

Desktop mail myinstall.log test.txt ←有两个目录及两个文件夹

当运行ls命令时,并不会显示名称以“.”开头的文件。因此可加上“-a”参数指定要列出这些文

件。范例如下:

[tony@free tony]$ ls –a

以“-s”参数显示每个文件所有的空间,并以“-S”参数指定按所有占用空间的大小排序。范例如下:

[tony@free tony]$ ls –s –S

总计36

4 Desktop 4 mail 24 myinstall.log 4 test.txt

在ls命令后直接加上欲显示的目录路径,就会列出该目录的内容。范例如下:

[tony@free tony]$ ls –l/usr/games

2,切换目录的cd命令

cd(change directory)命令可让用户切当前所在的目录。范例如下:

[tony@free home]$ cd tony ←切换到当前目录下的tony子目录

[tony@free tony]$ cd .. ←切换到上一层目录

[tony@free home]$ cd / ←切换到系统根目录

[tony@free /]$ cd ←切换到用户主目录

[tony@free tony]$ cd /usr/bin ←切换到/usr/bin目录

3,创建目录的mkdir命令

Mkdir(make directory)命令可用来创建子目录。下面的范例会在所在目录下创建tool子目录。

[tony@free tony]$ mkdir tool

4,删除目录的rmdir命令

rmdir(remove directory)命令可用来删除“空”的子目录。范例如下:

[tony@free tony]$ rmdir tool ←删除tool目录

5,复制文件的cp命令

cp(copy)命令可以将文件从一处复制到另一处。一般在使用cp命令将以个文件复制成另一个文件或复制到某个目录时,需要指定原始文件名与目的文件名或目录。范例如下:

[tony@free tony]$ cp data1.txt data2.txt ←将data1.txt复制成data2.txt

[tony@free tony]$ cp data3.txt /tmp/data ←将data3复制到/tmp/data目录中

显示复制过程:加入-v参数可显示命令执行过程。范例如下:

[tony@free tony]$ cp zip.txt zip2.txt ←一般状态下不会显示复制过程

[tony@free tony]$ cp –v zip.txt zip3.txt ←以-v显示复制过程

zip.txt ->zip3.txt

递回复制:加入“-R”参数可同时复制目录下的所有文件及子目录。范例如下:

[tony@free tony]$ cp –v –R * backup ←将所有文件(含子目录文件)复制到backup目录

6,删除文件或目录的rm命令

rm(remove)命令可以删除文件或目录。范例如下:

[tony@free tony]$ rm myfile ←删除指定的文件

[tony@free tony]$ rm * ←删除当前目录中的所有文件

相关文档