您的位置:首页 > 其它

其他公司的笔试题8

2006-11-22 14:52 281 查看
我面试一家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地址是
该子网的网络号+主机地址全1
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语句

要求在不使用任何库函数的前提下,判断一个数是否是2的N次幂?要求用宏的形式实现。
#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");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: