其他公司的笔试题8

来源:互联网 发布:linux ftp配置文件丢失 编辑:程序博客网 时间:2024/04/30 09:59
 
我面试一家LINUX公司的笔试答卷!应聘系统管理员
1,如果使用Bourne   shell,那么用户退出时,所有正在运行的后台进程将理所当然的被终止。  
 为了避免发生这种情况,可以使用             命令。  
     nohup  
 2,以下哪些shell在用户退出时,所有正在运行的后台进程不会被关闭?  
 A,bash   B,  tcsh     C,ksh   D,sh   E,csh  
   
 3,   在sh脚本中,符号`代表                   命令,#代表                    
command   substitution,  
comments  
 4, 请说出以下命令的含义:  
 %   cp   `nom   backup`   backup  
 答                                                                                                               
    cp   the   result   of   the   command   "nom   backup"   to   backup  
 5,请写出在当前目录开始找出所有以.c结尾的文件,并输出在屏幕上。  
 %   find                                                      
    find ./ -name "*.c" 一定要加双引号
 6,删除当前目录下(不包含子目录)所有名称以.txt结尾的文件,除了han.txt以外  
    %rm                                                          
   
 7,清空文件test.txt,并且只保留最后10行,请写出具体步骤  
        %                                
        %                                
        %                                
    tail -10  test.txt   >   test.txt.bak;   cat   test.txt.bak   >   test.txt
 8,设定文件test.sh为可执行,并且设定拥有者为test,组为livedoor。  
 %                                          
 %                                          
    chmod   a+x   test.sh;   chown   test:livedoor   test.sh  
 9,编写用户mfx的crontab的命令为  
    %                                            
     crontab   -u   mfx   -e
 10,已知crontab的前几列如下  
 #minute   hour         mday         month       wday         who           command  
 #  
 */5           *               *               *               *               root         /usr/libexec/atrun  
 #  
    #crontab   -u   mfx   -e  
            50   6   *   *   2-5   /home/mfx/app/bin/startmfx.sh   >/home/mfx/app/logs/startmfx.log  
 请书写以mfx用户,在周二~~周五早上6:50分自动执行/home/mfx/app/bin/startmfx.sh脚本的crontab命令,并且把此命令执行的结果输出保存在/home/mfx/app/logs/startmfx.log。  
   
                                                                                                                                                
   
 11,察看unix类型操作系统网络连接状况(包括服务器)的命令为  b
 A,   netstat     -nr     B,netstat   –na  
   netstat -na
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State     
tcp        0      0 0.0.0.0:1024            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp        0      0 202.117.49.140:22       202.117.49.139:4804     ESTABLISHED
tcp        0     36 202.117.49.140:22       202.117.49.132:1612     ESTABLISHED
tcp        0      0 202.117.49.140:21       202.117.15.181:2251     ESTABLISHED
udp        0      0 0.0.0.0:1024            0.0.0.0:*                          
udp        0      0 0.0.0.0:860             0.0.0.0:*                          
udp        0      0 0.0.0.0:111             0.0.0.0:*                          
udp        0      0 0.0.0.0:631             0.0.0.0:*                           
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node Path
unix 2      [ ACC ]     STREAM     LISTENING     2140   /dev/gpmctl
unix 2      [ ACC ]     STREAM     LISTENING     2241   /tmp/.font-unix/fs7100
unix 11     [ ]         DGRAM                    1595   /dev/log
unix 2      [ ACC ]     STREAM     LISTENING     2539   /tmp/ssh-XX98rJcd/agent.1863
unix 2      [ ACC ]     STREAM     LISTENING     2628   /tmp/ssh-XX9XEIkj/agent.1915
unix 3      [ ]         STREAM     CONNECTED     2529  
unix 3      [ ]         STREAM     CONNECTED     2528  
unix 3      [ ]         DGRAM                    2357  
unix 3      [ ]         DGRAM                    2356  
unix 2      [ ]         DGRAM                    2355  
unix 2      [ ]         DGRAM                    2295  
unix 2      [ ]         DGRAM                    2139  
unix 2      [ ]         DGRAM                    2106  
unix 2      [ ]         DGRAM                    2092  
unix 2      [ ]         DGRAM                    2043  
unix 2      [ ]         DGRAM                    1787  
unix 2      [ ]         DGRAM                    1645  
unix 2      [ ]         DGRAM                    1603  
netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window irtt Iface
202.117.49.0    0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U         0 0          0 lo
0.0.0.0         202.117.49.1    0.0.0.0         UG        0 0          0 eth0
 12,route命令可以用来查看和增加,删除本地路由表,请分别写出  
 Windows,linux,bsd这3种操作系统下,追加通过网关10.4.5.32来访问  
 100.1.2.0   ,netmask   为255.255.255.0的局域网。  
   
 Win)       route   add                                                                          
 Linux)   route   add   -net   100.1.2.0/24   gateway   10.4.5.32  
 BSD)       route                                                                                   
   
win)   route   -p   add   100.1.2.0   mask   255.255.255.0   10.4.5.32  
 bsd)   route   add   -net   100.1.2.0   10.4.5.32   -netmask   255.255.255.0       
 13,unix类型操作系统,放在哪个目录下的脚本将被系统启动的时候,自动运行?  
 A,   /usr/etc/   B,/usr/local/etc/rc.d/   C,/usr/etc/rc.d/   D,/usr/autorun/  
    /etc/rc.d/  
 14,当freebsd操作系统的root密码遗忘后,你能通过启动的时候,按住空格键,然后输入  
                              命令进入单用户模式来更改超级用户的口令。  
     boot   -s  
 15,已知在日本的一台远程服务器,它拥有一个外部IP地址210.83.201.28,和一个局域网内部IP10.0.143.110。但远程服务器关闭了对外开放的80端口,80端口只能对局域网10.0.143.X段的用户开放使用。现已经得到该远程服务器的一个普通用户的账号及密码,请你想一个途径,来使远在大连的公司内部电脑可以访问到日本的局域网的web服务。  
   
                                                                                                                                                            
                                                                                                                                                           
   
 16,公司内部网络感觉突然变慢,已知结果为某个同事使用BT正在下载大型软件。请你使用一系列手段,定位该问题,并解决。  
      1,登录服务器,使用                                   ,监视包发送情况,查出有异常的IP  
 2,使用                         定位该可疑IP   ,找出它的机器名  
   
 17,ezmlm是一个邮件列表管理工具,已知增加hanwei@livedoor.cn到邮件列表all-ml@livedoor.cn中的命令为  
 ezmlm-sub   /var/qmail/alias/all-ml   hanwei@livedoor.cn  
 那么删除该列表中用户test@livedoor.cn的命令为?  
                                                                                           
   
 18,已知Cicco   2600   路由器。s0/0   串口接外部V.35线,E0/0接100M外部网。  
 现在已经登录了路由器,请写出查看端口s0/0状态的命令?  
 #                                        
   
 19,路由器为以下状态:  
 Serial0/0   is   up,   line   protocol   is   up  
      Hardware   is   PowerQUICC   Serial  
      Internet   address   is   202.107.48.234/30  
      MTU   1500   bytes,   BW   1544   Kbit,   DLY   20000   usec,  
            reliability   255/255,   txload   9/255,   rxload   43/255  
      Encapsulation   HDLC,   loopback   not   set,   keepalive   set   (10   sec)  
      Last   input   00:00:04,   output   00:00:00,   output   hang   never  
      Last   clearing   of   "show   interface"   counters   never  
      Queueing   strategy:   fifo  
      Output   queue   0/40,   26440   drops;   input   queue   0/75,   5   drops  
      5   minute   input   rate   263000   bits/sec,   39   packets/sec  
      5   minute   output   rate   59000   bits/sec,   28   packets/sec  
            326144572   packets   input,   2600766491   bytes,   0   no   buffer  
            Received   1068510   broadcasts,   0   runts,   10   giants,   0   throttles  
            184488   input   errors,   127975   CRC,   55666   frame,   0   overrun,   0   ignored,  
 847   abo   rt  
            268364196   packets   output,   1650247021   bytes,   0   underruns  
            0   output   errors,   0   collisions,   690   interface   resets  
            0   output   buffer   failures,   0   output   buffers   swapped   out  
            686   carrier   transitions  
            DCD=up     DSR=up     DTR=up     RTS=up     CTS=up  
   
 请问以上现象代表该路由器是否正常?请说明原因。  
   
 答:                                                                                                                            
                                                                                                                                      
   
 20,鉴于目前冲击波病毒发作比较猖狂,所以我们准备在公司防火墙ipfw上  
 增加一条命令,来杜绝冲击波病毒的发作,已知目前的ipfw规则如下:  
 00400   divert   8668   ip   from   any   to   any   via   bge0  
 00402   allow   ip   from   10.4.0.0/16   to   any  
 00403   allow   ip   from   any   to   10.4.0.0/16  
 65535   deny   ip   from   any   to   any  
 请写出这条命令。  
 %                         
 
1  
 假如比尔.盖茨带着windows2000的源代码来找你,希望帮他添加一个消息:在鼠标三次连击时给应用程序一个   WM_TRICLICK消息.开始给你看源代码之前,请向他简述一下技术路线.  
   
 2  
 某个程序在一个嵌入式系统(200M的CPU,50M的SDRAM)中已经最优化了,换到另一个系统(300M的CPU,50M的SDRAM)中运行,还需要优化吗?  
   
 3  
 请描述最近在C语言开发中你的几个错误,给出简单的源代码以及缺陷分析.  
   
 4  
 编程题:请给出源代码以及适当的文档.  
 写一个函数,反转一个无符号字符变量x(unsigned   char   x   ),并且把结果保存在无符号字符变量y中.  
 这种反转处理应该是这样的:  
                                            x   =   10101111   (二进制)    
                                            x   反转后   =   11110101   (二进制)    
         unsigned   char   x1   =   0xf0;  
 unsigned   char   x2   =   0;  
 for   (int   i=0;   i<8;   i++)  
 {  
 x2   =   x2   <<   1;  
 x2   |=   (x1   &   0x01);  
 x1   =   x1   >>   1;  
 }
 5  
 编程题:请给出源代码以及适当的文档.  
 求出10的10次方以内的素数,并针对提高效率简要介绍所使用的技巧.  
      -请记录程序完成计算所需的时间(我们期望它小于10小时),以及计算机的配置。  
      -不需要输出或者保存结果,请在确定一个数是素数的地方用注释标出.  
   
 6  
 有一个软件产品中包含许多可执行文件(*.exe和*.dll),几乎每个都使用了_lopen(),_lread(),_lseek(),_lclose(),以及CreateFile(),ReadFile(),SetFilePointer()及CloseHandle()等文件操作函数.  
 现在大于4G的文件已经出现,你的任务是升级这个软件,使它支持大于4G的文件,请简述你的方法.  
   
 7  
 地球人在星际大战中获胜,但是绝大部分人的大脑结构受到伤害,他们将永远无法理解书面文字,只能通过图像声音等形式沟通.政府把剩下能够理解文字的人类(仅占千分之一人口)集中在大学里,命令他们设法通过一切可能的技术,帮助社会尽快恢复繁荣.你受命重建计算机系,你认为哪三门课程的内容和现在相比将有最大的变化,请说明理由.  
 =====================================================================================  
 其它问题:  
   
 一.请在300字以内简单介绍一下你的毕业论文.  
   
 二.请介绍三件最令你自豪的成就.  
   
 三.软件开发人员的成长大概分几个阶段?你当前处于哪个阶段,请描述一下当前阶段最适合你的任务.
 
1.       进程调度算法 
fifo:先来先服务;短优先,时间片

  2.ping   时ARP   包发的经过如MAC地址等。  
   
  3.内存泄漏原理和处理方法  
   
  4.广播包的ip地址是  
   该子网的网络号+主机地址全
  5.子函数参数压站次序。  
  6.子函数参数出战如何完成?
 
1.   if   (10   ==   n)   //   预防漏写=,编译器会报错。  
   
   
 2、void   DoSomeThing(...)  
 {  
    char*   p;  
    ...  
    p   =   malloc(1024);     //   分配1K的空间  
    if   (NULL   ==   p)  
      return;  
    ...  
 /*void   *realloc(void   *memblock,size_t   size);返回null有两种情况:  
 1.若memblock不为null,size为0,则memblock被释放,返回null;  
 2.分配空间不足,memblock保持不变,返回null,需要调用free释放*/  
    char*   temp   =   realloc(p,   2048);   //   空间不够,重新分配到2K  
    if   (NULL   ==   temp)  
 {  
      free(p);      
      return;  
    ...  
 }  
   
   
 3、void   DoSomeThing(char*   p)  
 {  
    char   str[16];  
    int   n;  
    assert(NULL   !=   p);  
    sscanf(p,   "%s%d",   str,   &n);     //函数要通过参数返回数值,不能值传递,只能通过指针传递  
    if   (0   ==   strcmp(str,   "something"))  
    {  
      ...  
    }  
 }
 
union{int   n;   char   c[4];}   uu;      
 int   main()  
 {  
        uu.c[0]=0;  
        uu.c[1]=1;  
        cout   <<   uu.n   <<   endl;  
   
       return   0;  
 }
256
 
1、作为开发团队的一员,你需要实现一些库函数提供给其他人使用。假设你实现的一个  
 函数原型如下:  
 int   DoSomeThing(char*   pParam)  
 {  
    ...  
 }  
      int   DoSomeThing(const char*   pParam)  
 
   
 2、下面的代码有什么问题?  
 char   *_strdup(   const   char   *strSource   )  
 {  
    static   char   str[MAX_STR_LEN];  
    strcpy(str,   strSource);  
    return   str;  
 }  
   
      char   *_strdup(   const   char   *strSource   )  
 {  
static   char   str[MAX_STR_LEN];  
assert(strSource);
    strncpy(str,   strSource);  
    return   str;  
 }  
 
 3、实现一个函数:取出一个全路径文件名中的全路径。  
 /*   [in]     pszFullPath   全路径文件名  
        [out]   pszPathName   接收全路径的缓冲区  
        [out]   nCount       缓冲区大小  
 */  
 int   ExtractFilePath(char*   pszFullPath,   char*   pszPathName,   int   nCount)  
 {  
    ...  
 }
从右向左搜索第一个     '/'   字符
 
单向链表的排序操作?(一道笔试题,请给出程序,要求改变节点的指针,不能只交换值)
typedef   struct   A  
 {  
        int   data;  
        A   *next;  
 }  
   
 要求根据   data   完成链表的升序?
 
一般情况下goto语句的使用会大大降低程序的结构性和可读性,  
 结构化编程一书中指出,程序的结构性是和goto语句的使用次数成反比的  
 因此ansi标准c/cpp中“限制使用goto语句”,并提出了一系列的  
 “限制性跳转语句”,如break,continue,switch来替代goto语句的  
 功能。专家已经做出证明:这些语句结合循环,完全可以完成goto语句的功能。  
   
 但在某些情况下,goto语句的使用可以大大其高程序的效率,因此  
 c/c++中仍然保留了goto语句
 
要求在不使用任何库函数的前提下,判断一个数是否是2N次幂?要求用宏的形式实现。  
#define   IS_POWER2(   n   )   (((~n   +0x01)&n)   ==   n)
证明: ~n   +   n   =   2^32   -   1  
 ~n   +   1   =   2^32   -   n  
   
 因此现在要证明的是   (2^32   -   n)&n   ==   n  
 不考虑   n   ==   0   的情况,假设   n   不是   2的整数次幂,考虑最小情况,  
    n   =   2^i   +   2j,   i   >   j  
    2^32   -   n   =   2^31   +   2^30   +   ...   +   2^i+1   +   2^i-1   +   ...   +   2^j  
 显然   2^32   -   n&   n   !=   n  
 因此   n   必然是   2   的整数次幂。
 
1.在嵌入式系统程序中如果要把一段数据映射(强制转换)成一个结构体。如数据地址为data_p,自定义结构Tstructure,可以做如下定义:Tstructure   *   m_p=(Tstructure   *)data_p;请问这样做需要注意什么问题?  
注意系统的对齐问题,防止编译器优化产生的不必要的错误  
 2.请问在嵌入式系统中内存池技术(memory   pool)主要有什么作用?  
 3.请编写一个程序,实现对一个已知的双向链表的反序。  
 4.在c语言头文件中,一般都有如下语句:  
 #if   !defined   xxxx_J  
 #define   xxxx_H  
 ...  
 #endif  
 这主要是用来干什么?  
 
有一个十进制数,末位是2,把末位放到首位的前面构成一个新的数字,这个新数字恰好是原来数字的两倍。请编程求出该数字。(注意:该数字超出32位机器整数最大表示范围)
逐位的向上推,首先个位是2,那么新数的个位就是4,新数的个位就是原数的十位,每一位的计算要注意进位。
int   main()  
 {  
 int   n[48]   =   {   2   }   ;     //定义一个int数组48个元素第一个元素是2其他全是0  
 int   i,   carry  =   0,   index   =   0   ;   //carry是用来存放低位*2之后向上一位进的数  
                                                                                   
                                                                    
   do   {  
 i   =   2   *   n[index]   +   carry   //   想象一下最后几位的36842其中6之前的3怎么来的  
 carry   =   i   /   10   ;                        
 n[++index]   =   i   %   10   ;       //index个元素代表从尾往前属第index   +1位置上的数   
 }   while(   carry   ||   n[index]   !=   2    )   ; 
   
 while(   index   )   {  
 printf(   "%d",   n[--index]   )   ;  
 }  
 printf(   "/n"   )   ;  
   
 return   0   ;  
 }  
 
C++写个程序,如何判断一个操作系统是16位还是32位的?不能用sizeof()函数
非正规,但是有效的做法:  
 int   i   =   65535;  
 switch(i)  
 {  
 case   -1:  
 printf   ("16-bit   system/n");  
 break;  
 case   65535:  
 printf   ("32-bit   system/n");  
 break;  
 default:  
 printf   ("unkown   system/n");  
 }
 
原创粉丝点击