您的位置:首页 > 移动开发 > Objective-C

EMC2012笔试体会

2011-09-25 20:17 204 查看
一、不定项选择题(主要分析一下考察重点)

PART1:

//语言知识

1、引用不用指向临时变量原因

2、类型安全检查的好处

3、interface derivation/implementation derivation区别

4、virtual可重写问题

5、top/pop分开实现用意

6、char a[]="abcedfghi"; char* pa = a;哪个可以编译通过

A、a = pa++  B、pa[-1]=33 C、a[5]=23 D、pa=&(a[8]) E、pa[9]=a[7]

7、全局、局部、指针等,变量存储位置

//逻辑思维

8、猜该补全的图

9、给一列数找规律,给出另一列数

//数据库

10、数据库事务的ACID性,auomic, consistency, isolation, durability

11、数据库中"5/null"意思

12、SQL语句用B+树如何实现检索

13、事务deadlocks

//内核、文件系统、锁、组成原理

14、spinlocks/nutexlocks区别

15、提高cache hit方法

16、kernel可以访问的资源

17、file的metadata有哪些

 

PART2:

18、总资源16CPU(2GHZ), 10GB memory, 300G disk, VMM消耗1G memory, 10G disk, 每个VM消耗1G(CPU), 512 MB, 20 GB disk,问可支持多少VM同时运行?

A、32 B、20 C、16 D、15 E、14

19、storage thin provisioning, 写时分配空间用途

20、Hack, struct中如何用成员的地址找到结构首地址。需要对C的地址计算很了解, 详见参考代码

21、Hack, 字符串溢出行为。考察程序栈变量分配方式、小尾端存储, 详见参考代码

 

二、主观题

22、文件系统中dup(int fd)与dup2(int fd1, int fd2)区别

23、系统设计,N个Object存在M个disk上

(1)如何通过Object(id)找到disk

(2)如何disk增加,需要检查到哪些disk坏掉,(1)方法好处坏处

(3)在(2)中的坏处如何改进

 

//参考代码

//20题,hack struct
#include <stdio.h>

#define abc(s,m) (size_t)&(((s*)0)->m)
#define bcd(ptr, type, member) ({const typeof(((type*)0)->member)* __mptr=(ptr);\
(type*)((char*)__mptr-abc(type,member));})

struct test{
int a;
char b;
long t;
};
int main()
{
struct test *p;
struct test m;
m.a = -1;
m.t = 37;
p = bcd(&(m.t), struct test, t);
printf("%d\n", p->a);
return 0;
}


 

//21题, hack overflow
#include <stdio.h>
#include <string.h>

union AAA
{
unsigned int a;
char b;
};
bool isLittleEnd()
{
AAA i;
i.a = 0x1;
return i.b==0x1;
}
int main(int argc, char* argv[])
{
int x=345;
char buf[4];
//debug
printf("&x:%x\t&buf:%x\n", &x, buf);
printf("sizeof(int):%d\n", sizeof(int));
printf("isLittleEnd:%d\n", isLittleEnd());

sprintf(buf,"%s", argv[1]);
buf[4]='\0';
buf[3]='k';
//may be 26112 and abck
printf("x=%d, buf=%s\n", x, buf);

return 0;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息