1.設計一個重採樣系統,說明如何anti-alias。
2.y1(n)=x(2n),y2(n)=x(n/2),問:
如果y1爲周期函數,那麼x是否爲周期函數?
如果x爲周期函數,那麼y1是否爲周期函數?
如果y2爲周期函數,那麼x是否爲周期函數?
如果x爲周期函數,那麼y2是否爲周期函數?
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 sor
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)