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 */
}
}