威盛S3软件工程师3笔试试题分享

威盛S3软件工程师3笔试

威盛S3软件工程师3笔试试题分享

1。看程序写运行结果

m=5;

If(m++>5) printf(“%dn”, m);

Else printf(“%dn”, --m);

2.简述 AND, XOR, OR的功能

oc和malloc的区别

4.3x3九点,四条连线

5.1x1x1, 2x2x2, 3x3x3的三个容器。每个容器只能灌一次,如何量出

13ml的水。

有人这样回答:关于罐水 是否可解为:

因为是立方体所以其边长是可资利用的条件

把8的容器套进27的容器 1的容器套进8的`容器

然后知从27的容器罐水 罐到与8的容器平齐 这时 27罐的水是3*3*2-

8=10

继续向27容器倒水 水溢入到8的容器 罐到与8中1的容器平齐 这时8容器中

的水是2*2*1-

1=3

27容器中的水加8容器中的水=10+3=13

如图所示 从左侧罐水一次

___________

| |

| _______|

| | |

| | ___|

|__|___|__|

6.求sizeof(p)

char *p=”hello!”

char p[]=”hello!”

void *p=malloc(100)

void Func(char p[100])

7.一段很长的程序,要求写出程序的意图。基本上是把字节指针pData指向的一块内存数据复制到双字指针pwdData指向的内存区域。每次复制4字节,不足处补零。

8.

#define SQR(x) x*x

int a=10; int k=2; int m=1;

a/=SQR(k+m)/SQR(k+m);

a=?

9.一段程序找效率不高的地方。也是复制内存区域。

10.10个房间里放着随机数量的金币。每个房间只能进入一次,并只能在一个房间中拿

金币。一个人采取如下策略:前四个房间只看不拿。随后的房间只要看到比前四个房间

都多的金币数,就拿。否则就拿最后一个房间的金币.

a) 编程计算这种策略拿到最多金币的概率。

b) 证明这是不是最优策略。