Chinaunix首页 | 论坛 | 博客
  • 博客访问: 752407
  • 博文数量: 265
  • 博客积分: 6010
  • 博客等级: 准将
  • 技术积分: 1985
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-13 12:33
文章分类

全部博文(265)

文章存档

2011年(1)

2010年(66)

2009年(198)

我的朋友

分类: LINUX

2009-10-22 11:06:14

果然如传言中所说,笔试题很多,什么都考,数据库,操作系统。。。

一上来就是操作系统的。乱七八糟的一堆题,也不知道做对了几个.

中英文夹杂,哈哈,我也中英文夹杂着写。。。。

搞笑的是还要写一封英文信。。。。呵呵

乱写了一起,还要解释原因,提出建议等。毛啊,能写出来就不错了。好些个单词都是提笔忘字。

能想起来的就这些了。没看的题,不懂得记不住的题就不列了。

主要记得的题目有:

1. Windows下查看所有网络连接和端口号的命令:

我写的是:netstat –all  哈哈,其实一开始是猜的, 不过应该是netstat  -a


2. 页索引。假设页面大小4kb,在32位机中也索引的大小是:8位

相当于机器中共有2的32此方厨艺2的12次方个页面,又因为是二级索引,20位的索引一个页面放不下,二级索引只能存12位,32-12-12所以一级页面的索引需要八位。

3. A[64][64]

问以下哪个访问方式效率更高:

 i –>0..64

j->0..64

A[i][j]效率更高还是A[j][i] 效率更高。



4. C++题:

主要考了动态调用中的虚函数调用

Class A{

Virture F(){

Cout<<”A::F”<

}

}

Class B:public A{

Virture F(){

Cout<<”B::F”<

}

}

Class C:public B{

Virture F(){

Cout<<”C::F”<

}

}


Void main()

{

 C fun;

 A abc = (A*)fun;

 B bcd =(B*)fun;

 abc->F();

   bcd->F();

}

问输出什么:

我写的是

A::F

B::F


5. 继承函数的初始化顺序

A

{cout<

B{cout<


C::public A{

Void C(){cout<

Private:

 B b;

}


初始化顺序应该是:先初始化C中的A部分,及打印:A,然后初始化自己的成员变量,打印B,然后调用构造函数:打印C


6. C指针

给出一个函数如下,问存在什么问题:

Struct

{

Filed1;

Filed2;

}List,*PList

Void abc(PList * list, int* cnt)

{

 *cnt = 10;

 *list =(PList)(malloc(sizeof(LIST)*(*cnt)))

 List[1]->filed1=10;

List[1]->filed2 =10;

}

貌似是这样哈。

我改成了

(*list)[1]->filed1=10;

(*list)[1]->filed2=10;


7. 符号继承。B public 继承A,C protected继承A,D是private 继承A  

E是public继承D  问那个访问时非法的。

回答:B不能访问A的protected部分。E不能访问A的所有成员。E是继承自D,而A的所有东西都是放在D的private下面,所以D不能访问。

8. 算法题:冒泡排序,并说明算法复杂度。

9. 算法题:1..100的数,放在98个位置的数组中,其中2和2的次幂的一个数缺了,设计一个算法并说明复杂度。其实就是顺序找就行。2的次幂总共也没有几个数:2,4,8,16,32,64。我这个题还用了二分,把它复杂化了。。。。最失败的一个题。。。。

10.

还有很多操作系统的题:

比如虚存中如何管理虚拟地址到物理地址的转换,page fault是如何处理的。

这个题还好答。就不写了。


11. Protecting level和APPlication level的问题。Protectiing level 解释, 和application level  的区别。


12. MFC的东西一概不会 ,也没看。。。


13. Perl编程取出password文件中的name和passeword字段,分别打印出来。脚本编程还有好多道。没写。。。。


14. 进程间通信的东西:共享存储器,消息通信,通道(pipe,应该叫管道),信号量。。。就写了这几个,windows下用到的:我说是前两个。貌似吧。。。。没查。


Linux下还有:信号(sign,这么重要的东西都忘了。)


15. 小端 char[4]={12,34,56,78}

转换成int读出来是多少:78563412

+----------+

| 12 |<-- 0x00000021

+----------+

| 34 |<-- 0x00000020

+----------+

  双字节数12,34以little-endian的方式存在起始地址0x00000020中

 型号这个题没有选错。。。不太记得大端和小端的区别了。更详细介绍:http://hi.baidu.com/wjksd/blog/item/9a0587b5e47a4c748ad4b244.html


16. 进程和线程的区别;一个是系统(cpu)调度的最小单元,一个是资源调度的最小单元(进程)。进程包含多个线程。


17. __stdcall,__cdecl 的区别:(不懂,汗!)


请参考http://icelander.javaeye.com/blog/413493


18. Linux下输入输出重定向: 我只写了shell下的,还要求API中的。。。不记得了。。。

Linux Shell 环境中支持输入输出重定向,用符号<和>来表示。0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出,比如 2>a.txt 表示将错误信息输出到文件a.txt中。

API重定向:


19. void main()

{fork();fork();fork();printf(“Hello World”);} 会出现什么结果?这个程序有什么问题?

20. _try{

_try

{

}

Finally

{

Printf(“finally”);

}

}

Catch{

Printf(“except”);

}

问打印结果:应该只打印finally,被finally捕获出来后应该没有东西可捕获了

21. 数据库的题:给了两个表,问内联结果有几条记录

大概两个表是这样:

ID value

1 7

2 9

2 19

3 1

ID othervalue

1 8

2 10

2 13

应该是5,我答得三,想起来应该把3那条记录去掉就乐颠了,忘了2要扩展成4项,痛心疾首。


第三个题要求优化一个数据库表的设计:就是把多出来的字段去掉,不合格的字段改一下。


22. Linux/unix还有几个题,忘了,应该是不会的题。。。

23. Damemon是什么, 写一个daemon,

daemon.c

在UNIX中,我们一般都利用fork(),来实作所谓的"守护神程式",也就是DOS中所谓的"常驻程式"。一般的技巧是将父程序结束,而子程序便成为"守护神"。 

这个范例中,示范一般标准的daemon写法。

#include 

#include 

#include 

void main(void) 

pid_t pid;

pid = fork();

if (pid>0) { 

    printf("daemon on duty!\n"); 

    exit(0); 

} else 

if (pid<0) { 

    printf("Can't fork!\n"); 

    exit(-1); 

}

for (;;) { 

    printf("I am the daemon!\n"); 

    sleep(3); 

    /* do something your own here */ 

}

}


阅读(1671) | 评论(0) | 转发(0) |
0

上一篇:sohu笔试题

下一篇:测试用例设计总结

给主人留下些什么吧!~~