6.2 笔试真题 & 详解
1.每天中午从法国塞纳河畔的勒阿佛有一艘轮船驶往美国纽约,在同一时刻纽约也有一艘轮船驶往勒阿佛。 已知横渡一次的时间是 7 天 7 夜,轮船匀速航行,在同一航线,轮船近距离可见。
请问今天中午从勒阿佛开出的船会遇到几艘从纽约来的船?
2.巴拿赫病故于 1945 年 8 月 31 日。他的出生年份恰好是他在世时某年年龄的平方,问:他是哪年出生 的?
答案:
设他在世时某年年龄为 x,则 x 的平方<1945,且 x 为自然数。其出生年份 x 的平方-x=x(x-1),他在世 年龄 1945-x(x-1)。1945 的平方根=44.1,则 x 应为 44 或略小于此的数。而 x=44 时,x(x-1)=44×43=1892, 算得其在世年龄为 1945-1892=53;又 x=43 时,x(x-1)=43×42=1806,得其在世年龄为 1945-1806=139; 若 x 再取小,其在世年龄越大,显然不妥。故 x=44,即他出生于 1892 年,终年 53 岁。
3.如果模拟信号的带宽为 5kHz,要用 8k 的采样率,怎么办。
4.某个程序在一个嵌入式系统(200M 的 CPU,50M 的 SDRAM)中已经最优化了,换到另一个系统(300M
的 CPU,50M 的 SDRAM)中运行,还需要优化吗? 5.x^4+a*x^3+x^2+c*x+d 最少需要做几次乘法。
6.三个 float:a,b,c
问值:
(a+b)+c==(b+a)+c
(a+b)+c==(a+c)+b 7.把一个链表反向填空。
8.下面哪种排序法对 12354 最快?
A. quick sort
B. buble sort
C. merge sort
9.哪种结构平均来讲获取一个值最快?
A. binary tree
B. hash table
C. stack 10.
#include "stdafx.h"
#include
struct bit
{ int a:3; int b:2; int c:3;
};
int main(int argc, char* argv[])
{
bit s;
char *c = (char*)&s;
*c = 0x99; cout <<
s.a <<<<<
return 0;
}
Output:? 11.
挑 bug,在 linux 下运行:
#include char
*reverse(char* str)
{
int len=0, i=0;
char *pstr=str, *ptemp,*pd; while(*++pstr)
len++; pstr--;
//ptemp=(char*)malloc(len+1); ptemp=(char*)malloc(len+1); pd=ptemp;
while(len--){
*ptemp=*pstr; ptemp++; pstr--;
i++;
}
*ptemp=*pstr; ptemp++;
*ptemp='\0'; return pd;
}
main()
{
char string[40]= "Hello World!"; char *pstr=string;
printf("%s", pstr); printf("%s", reverse(pstr));
}
实验室笔试题
1.写出下列信号的奈亏斯特频率
(1)f(t)=1+cos(2000pait)+sin(4000pait)
(2)f(t)=sin(4000pait)/pait
(3)f(t)=(sin(4000pait)的平方)/pait 2.有两个线程
void producer()
{
while(1)
{
GeneratePacket(); PutPacketIntoBuffer(); Signal(customer);
}
}
void customer()
{
while(1)
{
WaitForSignal(); if(PacketInBuffer>10)
{
ReadAllPackets(); ProcessPackets();
}
}
}
(1)有没有其他方法可以提高程序的性能
(2)可不可以不使用信号之类的机制来实现上述的功能
3.优化下面的程序
(0)sum=0
(1)I=1
(2)T1=4*I
(3)T2=address(A)-4
(4)T3=T2[T1]
(5)T4=address(B)-4
(6)T5=4*I
(7)T6=T4[T5]
(8)T7=T3*T5
(9)sum=sum+T6
(10)I=I+1
(11)IF I<20 GOTO (2)
Intel笔试题CS部分Intel 的 CS 笔试,题目不多,一共 10 道,可是涉及到很多领域,时间也比较紧张,一 共 45 分钟。很多题目还是很复杂的,现在也记不清了,能回忆多少算多少吧!
题目是英文的,为了方便,我就用中文写了,好像回答也要用英文。 选择题的选项记不清,有的就不写选择项了,自己当作填空吧交大一共去了 9 个人,那位兄弟补充一下?
Section I
1.在 P4 的机器上,下段代码的输出结果是什么:
#include struct{ int a:3; int b:2; int c:3;
}s;
void main(void)
{
char *p; p=(char*)&s;
*p=0x99; printf("%d\n",*p);
printf("%d,%d,%d",s.a,s.b,s.c);
}
2.巨复杂的一道题,已经记不清了,在我了解的范围内还没有人做出来。
3.在 Linux 操作系统中,假设一个进程 A 对 file1 进行操作,然后一个进程 B 将 file1 改名为 file2,在改名 的同时,A 进程对 file1 进行写操作,请问进程 A,B 的执行情况。
4.判断下面的系统哪个/些是软实时的? 四个选择项:IPVoice、MP3Player、?、?
5.记不清了,好像有一个什么瓶颈什么的
6.一个关于多 CPU 的系统问题,给了一大堆条件,最后问单个 CPU 的功耗,条件太复杂记不清了,不好 意思!
Section II
7.根据条件,写出 C 编程中的一个常用宏定义(常用于求偏移量)
#include
#define offsizeof(Filed,Struction) ??????????? struct{
int a; int b;
}s;
void main(void){
void main(void){
....
printf("%d:%d",offsizeof(a,s),offsizeof(b,s));
}
输出结果是:0:4 问完整的宏定义是什么?
8.用伪代码实现如何监测 Struct 中是否含有循环?(题目记不清了,大意如此)
9.在 IP Voice 中,使用 UDP 协议还是是用 TCP 协议?为什么?
Section III
10.智力测验:一共 9 个硬币,分三行排列,第一行 2 个,第二行 3 个,第三行 4 个。有两个 Player 进行 比赛,每次可以从一行中取 1~n 个硬币(2<=n<=4),直到取完为止,规则是谁最后一次取谁输,如果你是第 一个 Player,问:如何取第一次才能保证你必胜。
并请说明原因。