標籤:軟體開發(上海站)筆試題解答
軟體開發(上海)
簡答題
描述OSI(開放系統互聯基本參考模型)七層結構:
第七層:應用程式層,直接對用程式提供服務,應用程式可以變化,但要包括電子訊息從傳輸;
第六層:展示層,格式化資料,以便為應用程式提供通用介面,這可以包括Data Encryption Service
第五層:會話層:在兩個節點之間建立端串連。此服務包括建立串連是以全雙工系統還是以半雙工的方式進行設定,儘管可以再層4中處理雙工方式
第四層:傳輸層,常規資料遞送,連線導向或無串連。包括全雙工系統或半雙工,流量控制和錯誤恢複服務
第三層:網路層,通過定址來建立兩個結點之間的串連,它包括通過互連網來路由和中繼資料
第二層:資料連結層,將資料分幀,並處理流量控制。本層指定拓撲結構並提供硬體定址
第一層:物理層,原始化位元流的傳輸,電子訊號傳輸和硬體介面
資料發送時從第七層到第一層,接受方則相反
上三層總稱應用程式層,用來控制軟體方面
下四層總稱資料流層,用來管理硬體
資料在發送至資料流層的時候將被拆分
在傳輸層的資料叫段 網路層叫包 資料連結層叫幀 物理層叫位元流 這種叫法叫PDU(協議資料單元)
寫出進程間資料共用的方式,至少三種
1)通過共用記憶體對應檔
2)利用共用記憶體dll
3)向另一個進程發送WM_COPYDATA訊息
4)調用ReadProcessMemory以及WriteProcessMemory函數,使用者可以發送由GlobalLock(GMEM_SHARE,...)函數調用提取的控制代碼、GlobalLock函數返回的指標以及VirtualAlloc函數返回的指標。
描述TCP和UDP的區別,並各寫出他們的一個上層協議
TCP是面向連結的,TCP的三向交握在很大程度上保證了串連的可靠性
UDP傳送資料前並不與對方進行建立串連,對接收到的資料不發送確認訊號,發送端不知道資料是否會正確接收,當然也不用重發,所以UDP是一種不需連線的,不可靠的一種資料轉送協議
UDP由於不進行資料確認,所以傳輸速率更快,即時性更好
上層協議很多,比如TCP:HTTP,FTP,SMTP;UDP:nfs,tftp,snmp,snmp。
程式與演算法設計
給出數組A={a_0,a_1,a_2,…,a_n}(你是可變的),列印出所有元素的組合
程式碼為:
#include<iostream>
#include<sstream>
#include<string>
usingnamespace std;
voidmain(){
string* str_arr=new string[10];
int len=10;
for(int i=0;i<len;i++)
{
ostringstream oss;
oss<<i;
str_arr[i]="a_"+oss.str();
}
cout<<"組合結果為:"<<endl;
for(int i=0;i<len;i++)
{
for(int j=i+1;j<len;j++){
cout<<str_arr[i]<<"-"<<str_arr[j]<<" ";
}
cout<<endl;
}
cin>>len;//防止運行後關閉視窗
}
數組A中任意兩個相鄰元素大小相差1,現給定這樣的數組A和目標整數t,找出t在數組A中的位置。
程式碼:
#include<iostream>
#include<math.h>
usingnamespace std;
voidmain()
{
constint len=12;
intnums[len]={1,2,3,4,5,4,3,2,1,0,-1,-2,},find;
cout<<"請輸入要尋找的數"<<endl;
cin>>find;
int i=0;
while(i<len)
{
int tmp=abs(find-nums[i]);
if(tmp==0)
{
cout<<"位置為"<<i;
break;
}
else if(i+tmp<len)
{
i+=tmp;
}
else
{
cout<<"要尋找的元素不在數組中";
break;
}
}
cin>>find;//防止運行後關閉視窗
}
求二叉樹的面積(高乘寬),高為二叉樹根結點到葉子結點的最大距離,寬為二叉樹最多的結點數
此題由於需要封裝樹的操作,故略去代碼,具體思路為:先進性深度優先搜尋,得到樹的高度,再進行廣度優先搜尋得到樹的寬,然後相乘即可。
系統設計題
給定一個百度地圖的,對於地圖上的某一點,需要在地圖上標註該點的資訊,將資訊抽象成一個矩形,可以在該點的左邊標記,也可以在該店的右邊標記。但是任意兩點標記後的矩形是不能有覆蓋的,否則刪除其中一個點。
問題1:現給一固定地區,設計一個演算法,要求標記足夠多的點
問題2:當點足夠多的時候,演算法可能遇到效能瓶頸,需要對演算法重新最佳化
這條實在是不會,只想到將地圖柵格化。
本文出自 “虎哥的部落格” 部落格,請務必保留此出處http://7613577.blog.51cto.com/7603577/1560280
百度軟體開發(上海站)筆試題解答