Q1:請你分別劃劃OSI的七層網(wǎng)絡(luò)結(jié)構(gòu)圖,和TCP/IP的五層結(jié)構(gòu)圖?
Q2:請你詳細的解釋一下IP協(xié)議的定義,在哪個層上面,主要有什么作用? TCP與UDP呢?
Q3:請問交換機和路由器分別的實現(xiàn)原理是什么?分別在哪個層次上面實現(xiàn)的?
Q4:請問C++的類和C里面的struct有什么區(qū)別?
Q1 OSI的七層網(wǎng)絡(luò)結(jié)構(gòu)圖——物理層/數(shù)據(jù)鏈路層/網(wǎng)絡(luò)層/傳輸層/會話層/表示層/應(yīng)用層
TCP/IP的五層網(wǎng)絡(luò)結(jié)構(gòu)圖——應(yīng)用層/傳輸層/網(wǎng)絡(luò)層/鏈路層/物理層
Q2 IP協(xié)議的定義——因特網(wǎng)協(xié)議或網(wǎng)際協(xié)議(Internet Protocol)。對應(yīng)于網(wǎng)絡(luò)層,
它自身采用4層結(jié)構(gòu)模型:應(yīng)用層/傳輸層/網(wǎng)際層/網(wǎng)絡(luò)接口層
作用在于規(guī)定了互連網(wǎng)上傳輸數(shù)據(jù)的確切格式及完成路由選擇的功能,選擇一個數(shù)據(jù)發(fā)送的路徑。
TCP協(xié)議的主要是提供可靠的傳輸服務(wù),而UDP(用戶數(shù)據(jù)報協(xié)議)是定義用來在互連網(wǎng)絡(luò)環(huán)境中
提供包交換的計算機通信的協(xié)議。此協(xié)議默認認為網(wǎng)路協(xié)議(IP)是其下層協(xié)議。此協(xié)議提供了
向另一用戶程序發(fā)送信息的最簡便的協(xié)議機制。
Q3 交換發(fā)生在網(wǎng)絡(luò)的數(shù)據(jù)鏈路層,而路由則發(fā)生于網(wǎng)絡(luò)層。數(shù)據(jù)鏈路層的轉(zhuǎn)發(fā)即稱為交換,而路徑選
擇即指路由,通常,路由器的性能比交換機要差一些,因為路由器是基于軟件的查表轉(zhuǎn)發(fā),而交換
機可以實現(xiàn)硬件的直通式轉(zhuǎn)發(fā)。
Q4 區(qū)別在于C里面的struct沒有定義方法,而C++的類是將不同類型的數(shù)據(jù)和與這些數(shù)據(jù)相關(guān)的操作封
裝在一起的集合體,包含了操作方法。
智力題
1.每天中午從法國塞納河畔的勒阿佛有一艘輪船駛往美國紐約,在同一時刻紐約也有一艘輪船駛往勒阿佛。已知橫渡一次的時間是7天7夜,輪船勻速航行,在同一航線,輪船近距離可見。 請問今天中午從勒阿佛開出的船會遇到幾艘從紐約來的船?
2.巴拿赫病故于1945年8月31日。他的出生年份恰好是他在世時某年年齡的平方,問:他是哪年出生的?
答案:
設(shè)他在世時某年年齡為x,則x的平方<1945,且x為自然數(shù)。其出生年份x的平方-x=x(x-1),他在世年齡1945-x(x-1)。1945的平方根=44.1,則x應(yīng)為44或略小于此的數(shù)。而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歲。
筆試題目
1.設(shè)計一個重采樣系統(tǒng),說明如何anti-alias。
2.y1(n)=x(2n),y2(n)=x(n/2),問:
如果y1為周期函數(shù),那么x是否為周期函數(shù)?
如果x為周期函數(shù),那么y1是否為周期函數(shù)?
如果y2為周期函數(shù),那么x是否為周期函數(shù)?
如果x為周期函數(shù),那么y2是否為周期函數(shù)?
3.如果模擬信號的帶寬為5kHz,要用8k的采樣率,怎么辦。
4.某個程序在一個嵌入式系統(tǒng)(200M的CPU,50M的SDRAM)中已經(jīng)最優(yōu)化了,換到另一個系統(tǒng)(300M的CPU,50M的SDRAM)中運行,還需要優(yōu)化嗎?
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.哪種結(jié)構(gòu)平均來講獲取一個值最快?
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)可不可以不使用信號之類的機制來實現(xiàn)上述的功能
3.優(yōu)化下面的程序
(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)
相關(guān)文章導讀: