選擇題(綜合題)
確定得分的
1、Linux外設目錄是什么
? ? ?/dev。存儲磁盤的目錄
2、Linux外設sdc類型設備屬于什么
? ?scsi hard disk。根據第一個字母s盲猜的
3、計算機中讓程序計數器PC不能指向當前運行程序的技術是
? 流水線。根據流水線的原理
4、Python程序[a**2 for a in range(12345) if a % 2 == 0]的結果
?[4,16]。取為偶數的
5、數據庫的第三范式目的是?
消除傳遞依賴。數據庫范式原理。
6、數據庫()操作不會激活觸發器
Select。查詢語句不對數據庫表結構做改動,不會激活觸發器
7、數據庫分組后篩選條件用?
having。group by having的用法。
8、進程間同步于互斥
信號量。通過信號量控制
9、有6個進程,每個進程需要3個資源R,最少需要幾個資源不發生死鎖?
13。設想發生了死鎖的場景,也就是每個進程都要等待,那么最少每個進程已經擁有了兩個資源R,此時每個進程都還需要1個R形成了循環等待,這個時候只要再來一個資源R,就能打破這種循環等待。所以12+1=13
10、下面哪項屬于適應性維護?
改進系統使其可以在新的操作系統上運行。為適應新的環境(操作系統)
11、分布式存儲系統中地址結構,系統字長32位,31~12位分頁,11~0位頁內地址
頁大小4K,頁數1M。
12、哪個不在關鍵路徑上
c
13 最大延期天數
3
14 時間戳可以防止什么攻擊
重放攻擊
15 團隊成員水平差異大
重分配
16 二分查找 不可能是什么序列
17 開源軟件
18 哈弗曼編碼
19 棧操作數
20 時鐘周期
21傳值傳參
22違背單一原則
23數據流分層越多越不清晰
24適合瀑布模型
25無向圖遍歷
26軟件配置管理不包括 項目計劃
27 頻繁調用的臨時變量存儲在寄存器效率最高
28產品裂變細化目的:明確任務優先級
29二叉樹表達式
30模塊劃分明細是微服務
31測試用例分組是等價類劃分
32計算所有點的歐氏距離
33天氣變化手機更新,觀察者模式
34事務不互相干擾,是隔離性
35模塊間接口問題發現,通過集成測試
36從阻塞進入ready,是阻塞事件完成了
37對象之間是怎么通信的?消息
38采用策略模式
39策略模式是對象行為型
40該算法使用于算法的不同變體
41該模式是將算法封裝使其可以相互替換
專業英語
independent、how、migrating、issues、optimize/suit
不太確定得分
狀態圖兩個題、矩陣上三角、A類地址
應用題
智慧農業
1、用例補充。實時監控、自定義配置
2、實體補充。Ai、農業技術員、農業專家、
3、需要在不同場景使用不同的算法。使用策略模式。以及原因是包裝了不同算法以便可以相互替換。
智慧醫療
1、腕表、Ai、醫生
2、血糖記錄、個性建議、提醒
3、缺失數據流。只找出個性化建議那個
4、可視化信息、干預信息組成
拍賣
藝術家、藝術品、拍賣行、拍賣。
1、藝術家id(外鍵)
藝術品id(外鍵)
2、加入創作關系,關聯到藝術家和藝術品,加*表示多的關系。
回溯代碼題
算法題:子數組和
?
#include <stdio.h>
#include <stdlib.h>// 全局變量
int *A; ? ? ? ? ? ? ?// 輸入數組
int M; ? ? ? ? ? ? ?// 目標和
int *remaining_sum; // 剩余和數組
int n; ? ? ? ? ? ? ?// 數組長度
int found = 0; ? ? ?// 是否找到解// 打印數組函數
void printArray(int path[], int path_len) {printf("[");for(int i = 0; i < path_len; i++) {printf("%d", path[i]);if(i < path_len - 1) printf(",");}printf("]");
}// 回溯函數
void backtracking(int index, int current_sum, int path[], int path_len) {// 找到一個解if(current_sum == M) {//空1,填寫找到解的條件found = 1;printArray(path, path_len);return;}// 剪枝條件1:如果當前和加上剩余所有元素和小于M,返回if(current_sum + remaining_sum[index] < M) return; ? // 空(2)剪枝就是return// 邊界檢查if(index >= n) return; ?// 單層if判斷,滿足條件則選擇當前元素if(current_sum + A[index] <= M) { //空3,說明累加還不到M,可以加入當前元素嘗試搜素path[path_len] = A[index];backtracking(index + 1, current_sum + A[index], path, path_len + 1);}// 嘗試下一個元素 if(current_sum + remaining_sum[index+1] >= M) {backtracking(index + 1, current_sum, path, path_len);}
}int main() {printf("請輸入數組長度: ");scanf("%d", &n);// 動態分配內存A = (int*)malloc(n * sizeof(int));remaining_sum = (int*)malloc(n * sizeof(int));printf("請輸入數組元素:\n");for(int i = 0; i < n; i++) {scanf("%d", &A[i]);}// 計算remaining_sum數組remaining_sum[n-1] = A[n-1];for(int i = n-2; i >= 0; i--) {remaining_sum[i] = remaining_sum[i+1] + A[i]; ? // 空(4)剩下元素的和,上個計算值加上當前元素}printf("請輸入目標和M: ");scanf("%d", &M);int *path = (int*)malloc(n * sizeof(int));printf("\n查找和為 %d 的所有子序列:\n", M);backtracking(0, 0, path, 0); ? // 空(5)整行代碼?if(!found) {printf("沒有找到符合條件的子序列\n");}// 釋放內存free(A);free(remaining_sum);free(path);return 0;
}
輸入數組A={1,2,3,4,5},M=5,結果為([1, 4][2, 3][5])
最壞時間復雜度為:()
適配器題
public interface MediaPlayer {public ___(1)__void play(String audioType, String fileName)?_;
}public interface AdvancedMediaPlayer {?public __(2)___void playVlc(String fileName);public __(3)___void playMp4(String fileName);
}public class VlcPlayer implements AdvancedMediaPlayer{public void playVlc(String fileName) {System.out.println("Playing vlc file. Name: "+ fileName); ? ? ?}public void playMp4(String fileName) {//}
}public class Mp4Player implements AdvancedMediaPlayer{public void playVlc(String fileName) {//}public void playMp4(String fileName) {System.out.println("Playing mp4 file. Name: "+ fileName); ? ? ?}
}public class MediaAdapter implements MediaPlayer {private AdvancedMediaPlayer___(4)____advancedMusicPlayer;public MediaAdapter(String audioType){//}public void play(String audioType, String fileName) {//}
}public class AudioPlayer implements MediaPlayer {_private MediaAdapter__(5)____ mediaAdapter;?public void play(String audioType, String fileName) { ? ?/} ??
}