日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

复试-专业问题

發布時間:2023/12/15 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 复试-专业问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這是我的學長,SDZ學長整理,我就發出了,如果你們有幸去了浙大軟科記得謝謝他,哈哈哈

這兩種方法在形式上相像,其區別在于:pa是指針變量,a是數組名。值得注意的是:pa是一個可以變化的指針變量,而a是一個常數。因為數組一經被說明,數組的地址也就是固定的,因此a是不能變化的,不允許使用a++、++a或語句a+=10,而pa++、++pa、pa+=10則是正確的。

假設現在我們有以下數組:

int a[5] = { 1,2,3,4,5 }; 那么,在C語言中如何取得數組中的元素呢?第一種方式:直接通過下標獲取//取得第0個元素 printf("%d\n", a[0]);

第二種方式:通過數組的地址,在C語言中,數組的名稱實際上就是該數組首個元素的地址,可以通過(*名稱)獲取其中的值。

//獲取第0個元素 printf("%d\n", *a); //獲取第1個元素,只需要將地址+1,存儲輸出的是是連續的內存空間 printf("%d\n", *(a+1));

第三種方式:通過指向該數組的指針。

//聲明一個指針,同時讓其指向a int* p = a; //通過解引用來獲取指針p指向的值,獲得第0個元素 printf("%d\n", *p); //指針+1即可獲得第1個元素 printf("%d\n", *(p + 1));
  • (1)棧(stack):數調用過程中的各種參數、局部變量、返回值以及函數返回地址。
  • (2)堆(heap):用于程序動態申請分配和釋放空間。C語言中的malloc和free,C++中的new和delete均是在堆中進行的。
  • (3)全局(靜態)存儲區:分為DATA段和BSS段。DATA段(全局初始化區)存放初始化的全局變量和靜態變量;BSS段(全局未初始化區)存放未初始化的全局變量和靜態變量。
  • (4)文字常量區:存放常量字符串。程序結束后由系統釋放。
  • (5)程序代碼區:存放程序的二進制代碼。

英文自我介紹,提問你做過哪些項目并介紹項目內容實現方法,問你來自哪里介紹你的家鄉/學校,研究生計劃,為什么想要讀研等問題。

計算機網絡

牢記每一層的協議及其內容、應用。

  • 物理層:

  • 數據鏈路層

    功能:為網絡層提供服務;封裝成幀(透明傳輸);鏈路管理;流量控制;差錯控制;

  • 網絡層

  • 功能一:路由選擇與分組轉發(最佳路徑)

  • 功能二:異構網絡互聯

  • 功能三:擁塞控制(全局性)

  • 協議:IP協議

  • 傳輸層

  • 傳輸層提供進程和進程之間的邏輯通信。
    網絡層提供主機之間的邏輯通信。
  • 復用和分用
    復用:應用層所有的應用進程都可以通過傳輸層再傳輸到網絡層。
    分用:傳輸層從網絡層收到數據后交付指明的應用進程。
  • 傳輸層對收到的報文進行差錯檢測。
  • 數據鏈路層的首部校驗和只校驗了首部
  • 傳輸層的兩種協議TCP與UDP。
  • 物理層

    在物理層上所傳送的數據單位是比特。 物理層(physical layer)的作用是實現相鄰計算機節點之間比特流的透明傳送,盡可能屏蔽掉具體傳輸介質和物理設備的差異。使其上面的數據鏈路層不必考慮網絡的具體傳輸介質是什么。“透明傳送比特流”表示經實際電路傳送后的比特流沒有發生變化,對傳送的比特流來說,這個電路好像是看不見的。

    解釋什么DNS,為什么要用DNS,有了IP地址為什么還要有域名?域名結構為什么這樣設計?ICMP、IGMP協議;IP地址的分類?等。
    1.OSl,TCP/IP;五層協議的體系結構,以及各層協議
    2.IP地址的分類

    • 分類的IP地址(網絡號+主機號)
    • 子網的劃分(網絡號+子網號+主機號)
    • 構成超網(無分類編址方法)

    3.ARP是地址解析協議,簡單語言解釋一下工作原理
    1.首先,每個主機都會在自己的ARP緩沖區中建立一個ARP列表,
    以表示IP地址和MAC地址之間的對應關系。

    2.當源主機要發送數據時,首先檢查ARP列表中是否有對應IP地址的目的主機的MAC地址,
    如果有,則直接發送數據,
    如果沒有,就向本網段的所有主機發送ARP數據包,
    該數據包包括的內容有:源主機 IP地址,源主機MAC地址,目的主機的IP 地址。

    3.當本網絡的所有主機收到該ARP數據包時,首先檢查數據包中的IP地址是否是自己的IP地址,
    如果不是,則忽略該數據包,
    如果是,則首先從數據包中取出源主機IP地址和MAC地址寫入到ARP列表中,
    如果已經存在,則覆蓋,
    然后將自己的MAC地址寫入ARP響應包中,告訴源主機自己是它想要找的MAC地址。

    4.源主機收到ARP響應包后,將目的主機的IP地址和MAC地址寫入ARP列表,并利用此信息發送數據。
    如果源主機一直沒有收到ARP響應數據包,表示ARP查詢失敗。

    廣播發送ARP請求,單播發送ARP響應。

    4.TCP三次握手和四次揮手的全過程

    5.在瀏覽器中輸入www.baidu.com后執行的全部過程

    6.TCP和UDP的區別?
    TCP與UDP區別

    UDPTCP
    是否連接無連接面向連接
    是否可靠不可靠傳輸,不使用流量控制和擁塞控制可靠傳輸,使用流量控制和擁塞控制
    連接對象個數支持一對一,一對多,多對一和多對多交互通信只能是一對一通信
    傳輸方式面向報文面向字節流
    首部開銷首部開銷小,僅8字節首部最小20字節,最大60字節
    適用場景適用于實時應用(IP電話、視頻會議、直播等)適用于要求可靠傳輸的應用,例如文件傳輸

    7.DNS域名系統,簡單描述其工作原理。
    當DNS客戶機需要在程序中使用名稱時,它會查詢DNS服務器來解析該名稱。客戶機發送的每條查詢信息包括三條信息:指定的DNS域名,指定的查詢類型,DNS域名的指定類別。基于UDP服務,端口53. 該應用一般不直接為用戶使用,而是為其他應用服務,如HTTP,SMTP等在其中需要完成主機名到IP地址的轉換。

  • 客戶機向其本地域名服務器發出DNS請求報文
  • 本地域名服務器收到請求后,查詢本地緩存,假設沒有該記錄,則以DNS客戶的身份向根域名服務器發出解析請求
  • 根域名服務器收到請求后,判斷該域名所屬域,將對應的頂級域名服務器的IP地址返回給本地域名服務器
  • 本地域名服務器向頂級域名服務器發出解析請求報文
  • 頂級域名服務器收到請求后,將所對應的授權域名服務器的IP地址返回給本地域名服務器
  • 本地域名服務器向授權域名服務器發起解析請求報文
  • 授權域名服務器收到請求后,將查詢結果返回給本地域名服務器
  • 本地域名服務器將查詢結果保存到本地緩存,同時返回給客戶機
  • 8.了解交換機、路由器、網關的概念,并知道各自的用途

    交換機(多接口網橋):擴展以太網

    路由器:
    第一,網絡互連
    第二,數據處理,提供包括分組過濾、分組轉發、優先級、復用、加密、壓縮和防火墻等功能;
    第三,網絡管理,路由器提供包括配置管理、性能管理、容錯管理和流量控制等功能。

    網段:一般指一個計算機網絡中使用同一物理層設備(傳輸介質,中繼器,集線器等)能夠直接通訊的那一部分。

    數據結構

    出棧順序滿足卡特蘭數:(1/(n+1))?C2nn(1/(n+1)) * C_{2n}^n (1/(n+1))?C2nn?
    括號匹配,后綴式的求值

    隊列

    循環隊列實現

    稀疏矩陣的存儲方法:

    順序:三元組法和偽地址法
    鏈式:鄰接表法和十字鏈表法

    KMP(O(m+n))

    #include<iostream> using namespace std; const int N=1000010; char p[N],s[N]; int n,m; int ne[N]; int main() {cin>>n>>p+1>>m>>s+1;for(int i=2,j=0;i<=n;i++){while(j&&p[i]!=p[j+1]) j=ne[j];if(p[i]==p[j+1]) j++;ne[i]=j;}for(int i=1,j=0;i<=m;i++){while(j&&s[i]!=p[j+1]) j=ne[j];if(s[i]==p[j+1]) j++;if(j==n){printf("%d ",i-j);j=ne[j];}}return 0; }

    普通模式串比較優點:適合規模較大的外存字符串匹配,因為可以分段進行,先讀入內存一部分進行匹配,完成之后即可寫回外存,確保發生不匹配的時候不需要將之前的寫回外存的部分再次讀入,減少了I/O操作,提高效率。

    二叉樹

    五個主要性質

  • 在二叉樹的第i(i>=1)層最多有2^(i - 1)個結點。
  • 深度為k(k>=0)的二叉樹最少有k個結點,最多有2^k-1個結點。
  • 對于任一棵非空二叉樹,若其葉結點數為n0,度為2的非葉結點數為n2,則n0 = n2 +1。
    靈活運用:n個節點的樹,空指針的個數為n+1.
  • 具有n個結點的完全二叉樹的深度為int_down(log(2,n)+1=int_UP(log(2,n+1))
  • 如果將一棵有n個結點的完全二叉樹自頂向下,同一層自左向右連續給結點編號1,2,3,......,n,然后按此結點編號將樹中各結點順序的存放于一個一維數組,并簡稱編號為i的結點為結點i( i>=1 && i<=n),則有以下關系:
    (1)若 i= 1,則結點i為根,無父結點;若 i> 1,則結點 i 的父結點為結點int_DOWN(i / 2);
    (2)若 2*i <= n,則結點 i 的左子女為結點 2*i;
    (3)若2*i<=n,則結點i的右子女為結點2*i+1;
    (4)若結點編號i為奇數,且i!=1,它處于右兄弟位置,則它的左兄弟為結點i-1;
    (5)若結點編號i為偶數,且i!=n,它處于左兄弟位置,則它的右兄弟為結點i+1;
    (6)結點i所在的層次為 int_DOWN(log(2,i))+1。
  • 補充:
    n個節點可以構造的二叉樹個數為卡特蘭數:(1/(n+1))?C2nn(1/(n+1)) * C_{2n}^n (1/(n+1))?C2nn?
    遍歷的改進:非遞歸(避免了系統棧)或線索二叉樹(避免用戶棧)

    數據結構:排序算法及時間復雜度,隨手寫一個你自己熟悉排序算法(偽代碼形式),二叉樹相關知識。
    九大排序九大排序

    所有排序方法可分為兩類,

    (1)一類是穩定的,包括直接插入排序、起泡排序、和歸并排序,基數桶式排序;

    (2)另一類是不穩定的,包括直接選擇排序、希爾排序、快速排序和堆排序。

    二叉搜索樹:中序遍歷為順序

    AVL樹的旋轉:

    右旋A:自己左兒子的右兒子–》自己的左兒子,自己–》自己的左兒子的右兒子。

    左旋A:自己右兒子的左兒子–》自己的右兒子,自己–》自己的右兒子的左兒子。

    #include<iostream> #include<cstring> #include<vector> #include<algorithm> #include<unordered_map> using namespace std; const int N=10005,M=100005; int n,m,K,st[N],l[N],r[N],w[N],h[N],idx=0;void update(int u) {h[u]=max(h[l[u]],h[r[u]])+1; } int get_balance(int u) {return h[l[u]]-h[r[u]]; } void R(int &u) {int p=l[u];l[u]=r[p],r[p]=u;update(u),update(p);u=p; } void L(int &u) {int p=r[u];r[u]=l[p],l[p]=u;update(u),update(p);u=p; }void insert(int &u,int val) {if(u==-1){u=++idx;w[idx]=val;}else if(val<=w[u]){insert(l[u],val);if(get_balance(u)==2){if(get_balance(l[u])==1) R(u);else L(l[u]),R(u);}}else{insert(r[u],val);if(get_balance(u)==-2){if(get_balance(r[u])==-1) L(u);else R(r[u]),L(u);}}update(u);} int q[N]; int maxx=0; void bfs(int u) {int hh=0,tt=-1;q[++tt]=u;int id=0;while(hh<=tt){int t=q[hh++];id++;if(l[t]!=-1) q[++tt]=l[t],maxx=max(id*2,maxx);if(r[t]!=-1) q[++tt]=r[t],maxx=max(id*2+1,maxx);} } int main() {cin>>n;memset(l, -1, sizeof l);memset(r, -1, sizeof r);memset(w,0x3f,sizeof w);int root=-1;for(int i=1;i<=n;i++){int val;scanf("%d",&val);insert(root,val);}bfs(root);for(int i=0;i<n-1;i++){printf("%d ",w[q[i]]);}printf("%d\n",w[q[n-1]]);//cout<<idx<<" "<<maxx<<endl;if(maxx>idx){printf("NO");}else{printf("YES");}return 0; }

    在大量查找的情況下,平衡二叉樹的效率更高,也是首要選擇。在大量增刪的情況下,紅黑樹是首選。

    數據結構中有一類平衡的二叉搜索樹,稱為紅黑樹。

    它具有以下 5 個屬性:

    • 節點是紅色或黑色。
    • 根節點是黑色。
    • 所有葉子都是黑色。(葉子是 NULL節點)
    • 每個紅色節點的兩個子節點都是黑色。
    • 從任一節點到其每個葉子的所有路徑都包含相同數目的黑色節點。

    鄰接矩陣與鄰接表優缺點:
    鄰接矩陣的優點是可以快速判斷兩個頂點之間是否存在邊,可以快速添加邊或者刪除邊。而其缺點是如果頂點之間的邊比較少,會比較浪費空間。因為是一個 n?n 的矩陣。

    而鄰接表的優點是節省空間,只存儲實際存在的邊。其缺點是關注頂點的度時,就可能需要遍歷一個鏈表。還有一個缺點是,對于無向圖,如果需要刪除一條邊,就需要在兩個鏈表上查找并刪除。

    擴展
    逆鄰接表
    在鄰接表中對于有向圖有一個很大的缺陷,如果我們比較關心頂點入度那么就需要遍歷所有鏈表。為了避免這種情況出現,我們可以采用逆鄰接表來存儲,它存儲的鏈表是別的頂點指向它。這樣就可以快速求得頂點的入度。
    鄰接表:反映的是頂點出度的情況。
    逆鄰接表:反映的是頂點的入度情況。

    十字鏈表的好處就是因為把鄰接表和逆鄰接表整合在一起,這樣既容易找到vi為尾的弧,也容易打到以vi為頭的弧,因而容易求得頂點的出度和入度。而且它除了結構復雜一點燃上,其實創建圖的算法的時間復雜度與鄰接表相同,因此,在有向圖的應用中,十字鏈表是非常好的數據結構模型。

    圖論

    最短路

    最短路算法分為兩大類:
    m:邊數,n:點數

    • 單源最短路,常用算法有:
    • dijkstra,邊權為正。在稠密圖上的時間復雜度是 O(n2n^2n2),稀疏圖上的時間復雜度是 O(mlogn)。
      算法思想:
      證明集合S里面的點已經是最短距離。假設集合S點為x,dist[x]有兩個選擇:dist[x],dist[u]+d[u][s],因為d[u][s]>0且dist[u]>dist[x]。
    • bellman - ford算法,不論邊權是正的是負。算法平均時間復雜度是 O(nm)
      for n次
      for 所有邊 a,b,w (松弛操作)
      dist[b] = min(dist[b],back[a] + w)
    • spfa,不論邊權是正的是負。算法平均時間復雜度是 O(km),k 是常數。 強烈推薦該算法。
    • 多源最短路,一般用floyd算法。代碼很短,三重循環,時間復雜度是 O(n3n^3n3)。

    代碼:

    樸素dijkstra算法 —— 模板題 AcWing 849. Dijkstra求最短路 I

    int g[N][N]; // 存儲每條邊 int dist[N]; // 存儲1號點到每個點的最短距離 bool st[N]; // 存儲每個點的最短路是否已經確定// 求1號點到n號點的最短路,如果不存在則返回-1 int dijkstra() {memset(dist, 0x3f, sizeof dist);dist[1] = 0;for (int i = 0; i < n - 1; i ++ ){int t = -1; // 在還未確定最短路的點中,尋找距離最小的點for (int j = 1; j <= n; j ++ )if (!st[j] && (t == -1 || dist[t] > dist[j]))t = j;// 用t更新其他點的距離for (int j = 1; j <= n; j ++ )dist[j] = min(dist[j], dist[t] + g[t][j]);st[t] = true;}if (dist[n] == 0x3f3f3f3f) return -1;return dist[n]; }

    堆優化版dijkstra —— 模板題 AcWing 850. Dijkstra求最短路 II

    typedef pair<int, int> PII;int n; // 點的數量 int h[N], w[N], e[N], ne[N], idx; // 鄰接表存儲所有邊 int dist[N]; // 存儲所有點到1號點的距離 bool st[N]; // 存儲每個點的最短距離是否已確定// 求1號點到n號點的最短距離,如果不存在,則返回-1 int dijkstra() {memset(dist, 0x3f, sizeof dist);dist[1] = 0;priority_queue<PII, vector<PII>, greater<PII>> heap;heap.push({0, 1}); // first存儲距離,second存儲節點編號while (heap.size()){auto t = heap.top();heap.pop();int ver = t.second, distance = t.first;if (st[ver]) continue;st[ver] = true;for (int i = h[ver]; i != -1; i = ne[i]){int j = e[i];if (dist[j] > distance + w[i]){dist[j] = distance + w[i];heap.push({dist[j], j});}}}if (dist[n] == 0x3f3f3f3f) return -1;return dist[n]; }

    Bellman-Ford算法 —— 模板題 AcWing 853. 有邊數限制的最短路

    注意在模板題中需要對下面的模板稍作修改,加上備份數組,詳情見模板題。int n, m; // n表示點數,m表示邊數 int dist[N]; // dist[x]存儲1到x的最短路距離struct Edge // 邊,a表示出點,b表示入點,w表示邊的權重 {int a, b, w; }edges[M];// 求1到n的最短路距離,如果無法從1走到n,則返回-1。 int bellman_ford() {memset(dist, 0x3f, sizeof dist);dist[1] = 0;// 如果第n次迭代仍然會松弛三角不等式,就說明存在一條長度是n+1的最短路徑,由抽屜原理,路徑中至少存在兩個相同的點,說明圖中存在負權回路。for (int i = 0; i < n; i ++ ){for (int j = 0; j < m; j ++ ){int a = edges[j].a, b = edges[j].b, w = edges[j].w;if (dist[b] > dist[a] + w)dist[b] = dist[a] + w;}}if (dist[n] > 0x3f3f3f3f / 2) return -1;return dist[n]; }

    spfa 算法(隊列優化的Bellman-Ford算法) —— 模板題 AcWing 851. spfa求最短路
    時間復雜度 平均情況下 O(m)O(m),最壞情況下 O(nm)O(nm), nn 表示點數,mm 表示邊數

    int n; // 總點數 int h[N], w[N], e[N], ne[N], idx; // 鄰接表存儲所有邊 int dist[N]; // 存儲每個點到1號點的最短距離 bool st[N]; // 存儲每個點是否在隊列中// 求1號點到n號點的最短路距離,如果從1號點無法走到n號點則返回-1 int spfa() {memset(dist, 0x3f, sizeof dist);dist[1] = 0;queue<int> q;q.push(1);st[1] = true;while (q.size()){auto t = q.front();q.pop();st[t] = false;for (int i = h[t]; i != -1; i = ne[i]){int j = e[i];if (dist[j] > dist[t] + w[i]){dist[j] = dist[t] + w[i];if (!st[j]) // 如果隊列中已存在j,則不需要將j重復插入{q.push(j);st[j] = true;}}}}if (dist[n] == 0x3f3f3f3f) return -1;return dist[n]; }

    spfa判斷圖中是否存在負環 —— 模板題 AcWing 852. spfa判斷負環
    時間復雜度是 O(nm), n 表示點數,m 表示邊數

    int n; // 總點數 int h[N], w[N], e[N], ne[N], idx; // 鄰接表存儲所有邊 int dist[N], cnt[N]; // dist[x]存儲1號點到x的最短距離,cnt[x]存儲1到x的最短路中經過的點數 bool st[N]; // 存儲每個點是否在隊列中// 如果存在負環,則返回true,否則返回false。 bool spfa() {// 不需要初始化dist數組// 原理:如果某條最短路徑上有n個點(除了自己),那么加上自己之后一共有n+1個點,由抽屜原理一定有兩個點相同,所以存在環。queue<int> q;for (int i = 1; i <= n; i ++ ){q.push(i);st[i] = true;}while (q.size()){auto t = q.front();q.pop();st[t] = false;for (int i = h[t]; i != -1; i = ne[i]){int j = e[i];if (dist[j] > dist[t] + w[i]){dist[j] = dist[t] + w[i];cnt[j] = cnt[t] + 1;if (cnt[j] >= n) return true; // 如果從1號點到x的最短路中包含至少n個點(不包括自己),則說明存在環if (!st[j]){q.push(j);st[j] = true;}}}}return false; }

    floyd算法 —— 模板題 AcWing 854. Floyd求最短路

    初始化:for (int i = 1; i <= n; i ++ )for (int j = 1; j <= n; j ++ )if (i == j) d[i][j] = 0;else d[i][j] = INF;// 算法結束后,d[a][b]表示a到b的最短距離 void floyd() {for (int k = 1; k <= n; k ++ )for (int i = 1; i <= n; i ++ )for (int j = 1; j <= n; j ++ )d[i][j] = min(d[i][j], d[i][k] + d[k][j]); }

    什么圖一定包含歐拉回路?
    B 樹和紅黑樹的區別是什么?
    歐拉回路和哈密爾頓回路有啥區別
    都是平衡的。 然后B+樹的高度是log_m的。 一個結點保存更多元素 因此對磁盤操作友好

    操作系統:解釋操作系統的文件、鏈接,什么是抖動?
    l 交流環節
    數據結構:決策樹相關知識問的非常多,因為涉及到現在廣泛應用的機器學習基礎算法
    項目交流:
    項目整體介紹
    l 項目創新點、項目來源、項目的效益
    l 項目負責部分,采用了什么技術實現的,所寫代碼量,與現有類似系統相比的有什么優勢
    l 然后老師會就你負責的部分深入問,比如你說采用了技術老師反問現在用**比較多為什么不用,一系列的問題問道啞口無言未知
    論文交流:
    (1)論文第幾作者;
    (2)論文中負責哪幾部分;
    (3)論文發表的期刊的性質(中文核心、SCI、EI、國家級、省級等);
    (4)有沒有通訊作者(指導老師),若有老師給予你們什么幫助;
    (5)論文發表的意義或者說為什么要發表這篇論文;
    軟著交流:此部分涉及的比較少,一般問在軟著中第幾位、軟著的代碼量、申請軟著中你擔任了什么角色此部分一般和項目交流結合。

    操作系統

    線程和進程的區別

  • 進程是資源分配最小單位,線程是程序執行的最小單位。
  • 進程有自己獨立的地址空間,每啟動一個進程,系統都會為其分配地址空間,建立數據表來維護代碼段、堆棧段和數據段,線程沒有獨立的地址空間,它使用相同的地址空間共享數據;
  • 資源擁有:進程之間的資源是獨立的;同一進程內的線程共享本進程的資源。
  • 線程之間通信更方便,同一個進程下,線程共享全局變量,靜態變量等數據,進程之間的通信需要以通信的方式(IPC)進行;(但多線程程序處理好同步與互斥是個難點)
  • 進程的通信方式

  • 共享存儲
  • 消息傳遞
    直接通信方式
    間接通信方式(郵箱通信方式)
  • 管道通信
    管道連接讀進程和寫進程實現他們通信的共享文件。(是共享存儲的優化與發展,存儲空間到緩沖區,可以實現一邊讀一遍寫)
  • I/O系統的層次結構

    1.用戶層I/O軟件

    實現與用戶的交互,用戶可以直接調用此層提供的接口、函數等;

    2.設備獨立性軟件

    用于實現用戶程序和設備驅動器的統一接口、設備命名、設備保護以及設備分配和釋放等,同時為數據的傳輸提供必要的空間

    3.設備驅動程序

    與硬件直接相關,用于具體實現系統施加給硬件設備的指令

    4.中斷處理程序

    保護被中斷的CPU環境,轉入中斷處理程序,處理,返回恢復現場

    虛擬存儲器的定義和特征

    基于局部性原理,在程序裝入時,可以將程序的一部分裝入內存,而將其余部分留在外存,就可以啟動程序執行。在程序執行過程中,當所訪問的信息不在內存時,由操作系統將所需要的部分調入內存,然后繼續執行程序。另一方面,操作系統將內存中暫時不使用的內容換出到外存上,從而騰出空間存放將要調入內存的信息。這樣,系統好像為用戶提供了一個比實際內存 大得多的存儲器,稱為虛擬存儲器。

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-LaqC7Ybw-1626070952001)(C:%5CUsers%5Cpxlsdz%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20201229182347967.png)]

    為什么說分段系統較之分頁系統更易于實現信息共享和保護?
    A.對于分頁系統,每個頁面是分散存儲的,為了實現信息共享和保護,則頁面之間需要一一對應起來,為此需要建立大量的頁表項;

    B.而對于分段系統,每個段都從0開始編址,并采用一段連續的地址空間,這樣在實現共享和保護時,只需為所要共享和保護的程序設置一個段表項,將其中的基址與內存地址一一對應起來即可.

    其他

    在數據中查找異常值的方法

  • 簡單統計,或者簡單使用散點圖也能很清晰的觀察到異常值的存在,排序
  • 3?原則
    這個原則有個條件:數據需要服從正態分布。在3?原則下,異常值如超過3倍標準差,那么可以將其視為異常值。
  • 箱型圖
    四分位距(IQR)就是上四分位與下四分位的差值。而我們通過IQR的1.5倍為標準,規定:超過**(上四分位+1.5倍IQR距離,或者下四分位-1.5倍IQR距離)**的點為異常值。
  • [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-qLKtVeic-1626070952002)(C:%5CUsers%5Cpxlsdz%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20201229182357739.png)]

    LSTM
    由于在誤差反向傳播時,算出來的梯度會隨著往前傳播而發生指數級的衰減或放大!而且這是在數學上板上釘釘的事情。因此,**RNN****的記憶單元是短時的。
    計一個全新的、可以解決梯度爆炸消失問題從而記住長距離依賴關系的神經網絡。

    input gate 決定了對輸入的數據做哪些處理,forget gate 決定了哪些知識被過濾掉,無需再繼續傳遞,而 output gate 決定了哪些知識需要傳遞到下一個時間序列。
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-EcdWlPEF-1626070952003)(%E4%B8%93%E4%B8%9A%E9%97%AE%E9%A2%98_md_files/image_20200717140940.png?v=1&type=image&token=V1:xFVbt772xm4VIXnq0ZIOVRXoGy9X5rCXjU4CUYqmlGc)]

    二項分布的前提是什么

    回歸分析的應用場景

    數據庫數據模型的組成
    1.數據模型通常由數據結構、數據操作和數據的完整性約束條件三部分組成。

    2.數據結構:數據結構描述數據庫的組成對象以及對象之間的聯系。

    3.數據操作:數據操作是指對數據庫中各種對象(型)的實例(值)允許執行的操作的集合,包括操作及有關的操作規則。(增刪改查)

    4.完整性約束條件:數據的完整性約束條件是一組完整性規則

    操作系統原理課程里面有很多數據結構的實現,部分歸納總結如下:

    鏈表

    • 進程管理-PCB的連接
    • 外存分配方式-鏈接分配

    隊列

    • 進程通信-消息隊列的實現
    • 處理機調度-任務就緒列隊的實現
    • 存儲器管理-Clock置換算法的實現(循環隊列)

    • 存儲器管理-LRU(Least Recently used)置換算法

    • 進程管理-進程家族關系描述:進程樹

    散列表

    • 內存管理-連續分配方式:Hash算法
    • 文件管理-hash文件

    計算機的啟動過程?

    開機上電–>系統自檢(POST)–>運行主引導記錄–>裝載操作系統–>運行操作系統–>進入桌面

    • 開機上電和系統自檢與硬件設備有關
    • 運行主引導記錄,裝載操作系統和運行操作系統與操作系統有關
    • 進入桌面與應用軟件有關

    一、先驗概率

    1.1 定義

    直觀理解,所謂“先”,就是在事情之前,即在事情發生之前事情發生的概率。是根據以往經驗和分析得到的概率。

    1.2 例子

    比如拋硬幣,我們都認為正面朝上的概率是0.5,這就是一種先驗概率,在拋硬幣前,我們只有常識。這個時候事情還沒發生,我們進行概率判斷。所謂的先驗概率是對事情發生可能性猜測的數學表示。

    二、后驗概率

    1.1 定義

    事情已經發生了,事情發生可能有很多原因,判斷事情發生時由哪個原因引起的概率。

    貝葉斯定理
    概率是基于基于已有經驗(背景信息)的更新
    貝葉斯公式所討論的事:我們的假設在現有證據下成立的概率
    先驗概率:在目前信息獲得前/沒有任何信息情況下(僅有背景信息),假設的成立概率
    似然概率:假設成立的情況下,看到證據的概率(假設成立的空間<樣本總數*先驗概率>中,包含證據的比例)
    后驗概率:分子–我們看見的信息 | 分母–所有的信息

    多態
    不同對象對消息做出的不同的表現


    相位(虛部)、頻率(實部)
    傅里葉變化就是去摘,根據標準正交基的含義。

  • 首先讓做中文自我介紹,我叫….
  • 問題一:你知道數據庫查詢可以怎么優化嗎?select底層的東西是什么啊?mysql是怎么優化這個的?
  • 問題二:python中不用第三個變量怎么進行交換兩個變量的值
  • 問題三:lucence的檢索方式有幾種?分別介紹一下
  • 你搭建過zookeeper集群,你知道這種集群為什么都要用奇數臺機器嗎?你都用集群做了什么事情?
  • 問題五:你說一下反射的原理嗎,是怎么實現的?
    spring 核心:IOC(控制反轉:依賴注入)和AOP(面向切面編程),IOC中最基本的技術就是“反射(Reflection)”編程,通俗來講就是根據給出的類名來動態地生成對象。這種編程方式可以讓對象在生成時才決定到底是哪一種對象。
  • 問題六:項目+畢業設計
  • 問題七:為什么想要做這個項目,你都用到了哪些技術?
  • 問題八:linux問題:在一個文件夾下面怎么使用命令找含有某字段的文件
  • 問題九:Python中對哪些庫比較熟悉啊?
  • 問題十:學碩?專碩?
  • 問題十一:你想做什么方向?如果這個方向名額不夠了,你愿意接收調劑嗎?
  • 編譯型:先將源代碼編譯成目標語言之后通過連接程序連接到生成的目標程序進行執行,例如C++。

    解釋型:由解釋器根據輸入的數據當場執行而不生成任何的目標程序,例如python。

    混合型:兩種語言的特征都存在,典型的就是Java。

    c和c++,java的區別?

    c是純過程,c++是對象加過程,java是純面向對象的
    java的特點?
    一次編譯到處運行,沒有指針,完全對象化。

    后面就是專業面試:首先一個老師根據我的簡歷上的java web項目,問了我一下接口和抽象類的作用。然后又問了我TCP和UDP的區別;別的老師又問了我數據庫的ACID屬性;數學中距離的概念等等。

    一、原子性(atomicity)

    一個事務要么全部提交成功,要么全部失敗回滾,不能只執行其中的一部分操作,這就是事務的原子性

    二、一致性(consistency)

    事務的執行不能破壞數據庫數據的完整性和一致性,一個事務在執行之前和執行之后,數據庫都必須處于一致性狀態。

    如果數據庫系統在運行過程中發生故障,有些事務尚未完成就被迫中斷,這些未完成的事務對數據庫所作的修改有一部分已寫入物理數據庫,這是數據庫就處于一種不正確的狀態,也就是不一致的狀態

    三、隔離性(isolation)

    事務的隔離性是指在并發環境中,并發的事務時相互隔離的,一個事務的執行不能不被其他事務干擾。不同的事務并發操作相同的數據時,每個事務都有各自完成的數據空間,即一個事務內部的操作及使用的數據對其他并發事務時隔離的,并發執行的各個事務之間不能相互干擾。

    四、持久性(durability)

    一旦事務提交,那么它對數據庫中的對應數據的狀態的變更就會永久保存到數據庫中。–即使發生系統崩潰或機器宕機等故障,只要數據庫能夠重新啟動,那么一定能夠將其恢復到事務成功結束的狀態

    歐氏距離
    曼哈頓距離
    切比雪夫距離
    閔可夫斯基距離(Minkowski Distance)
    馬氏距離(Mahalanobis Distance)
    夾角余弦(Cosine)

    皮爾遜系數的定義

    兩個變量之間的皮爾遜相關系數定義為兩個變量之間的協方差和標準差的商:

    比如簡述虛擬地址的轉換吶、靜態變量有什么特征吶、如何在64位的操作系統中聲明一個64位的int(long long)吶等等
    頁號+頁內偏移,TLB或頁表取出物理塊號

    (1)它占據一個永久性的存儲單元。隨著文件的存在而存在。
    (2)靜態局部變量是在編譯時賦初值,在程序執行期間,一旦存儲單元中 的值改變,就不會再執行賦初值的語句。未賦初值的變量其值為0。

    • **編譯型語言 用專用的編譯器,針對特定的操作系統,將高級語言一次性翻譯成機器可執行的二進制機器碼,如C語言、C++
    • 解釋型語言 用專門的解釋器對源程序解釋成特定平臺的機器碼并立即執行,效率低,不能脫離解釋器運行,跨平臺容易,如Python(同時也是腳本語言)與Ruby等
    • 腳本語言 程序代碼即是最終的執行文件,過程需要解釋器,如JavaScript,Python,shell等**

    總結

    以上是生活随笔為你收集整理的复试-专业问题的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。