1
1 設順序循環隊列Q[0: M-1]的頭指針和尾指針分別為F和R.頭指針F總是指向隊頭元素的前一位置.尾指針R總是指向隊尾元素的當前位置.則該循環隊列中的元素個數為() 2 A、 (R-F+M)%M 3 B、 R-F 4 C、 (F-R+M)%M 5 D、 F-R
正確答案: A
A 待處理數據的狀態
B 處理器的速度
C 問題的規模
D 程序所占空間
正確答案: A C
解析:
比如說快排,初始數據的順序影響快排的時間復雜度。
3、
1 int f(int x) 2 return ((x>2) ? x*f(x-1) : 3); 3 } 4 int i; 5 I=f(f(2)):
A 30 B 無限遞歸 C 9 D 2160
正確答案: C
4、有關操作系統常用調度算法敘述正確的是()
A、FCFS調度算法不利於短作業
B、SPF調度算法不利於短作業
C、HRN調度算法不利於長作業
D、HRN調度算法既利於短作業又有利於長作業
正確答案: A D
2.短作業優先調度算法 (SPF): 就是優先調度並處理短作業,所謂短是指作業的運行時間短。而在作業未投入運行時,並不能知道它實際的運行時間的長短,因此需要用戶在提交作業時同時提交作業運行時間的估計值。
3.最高響應比優先算法(HRN):FCFS可能造成短作業用戶不滿,SPF可能使得長作業用戶不滿,於是提出HRN,選擇響應比最高的作業運行。響應比=1+作業等待時間/作業處理時間。 因此選D;
4. 基於優先數調度算法(HPF):每一個作業規定一個表示該作業優先級別的整數,當需要將新的作業由輸入井調入內存處理時,優先選擇優先數最高的作業。
5、promise的狀態有()
A 、Unfulfilled
B 、Pause
C 、Resolved
D 、Rejected
正確答案: C D
答案:
- 一個promise可能有三種狀態:等待(pending)、已完成(fulfilled)、已拒絕(rejected)
- 一個promise的狀態只可能從“等待”轉到“完成”態或者“拒絕”態,不能逆向轉換,同時“完成”態和“拒絕”態不能相互轉換
- promise必須實現then方法(可以說,then就是promise的核心),而且then必須返回一個promise,同一個promise的then可以調用多次,並且回調的執行順序跟它們被定義時的順序一致
- then方法接受兩個參數,第一個參數是成功時的回調,在promise由“等待”態轉換到“完成”態時調用,另一個是失敗時的回調,在promise由“等待”態轉換到“拒絕”態時調用。同時,then可以接受另一個promise傳入,也接受一個“類then”的對象或方法,即thenable對象。
6、下面的哪個選項是自底向上分析方法()
遞歸下降分析法 預測分析法 LL( 1)分析法 算符優先分析法
正確答案: D
解析:
在信號位開始時不改變信號極性,表示輯”1” 模擬數據轉換為數字信號 在信號位中電平從高到低跳變表示0 數字數據轉換為數字信號
正確答案: B C
8、關於中間件特點的描述.不正確的是()
A 中間件運行於客戶機/服務器的操作系統內核中,提高內核運行效率
B 中間件應支持標准的協議和接口
C 中間件可運行於多種硬件和操作系統平台上
D 跨越網絡,硬件,操作系統平台的應用或服務可通過中間件透明交互
正確答案: A
解析:
中間件位於操作系統之上,應用軟件之下,而不是操作系統內核中
A、resolve()和reject都是直接生成一個進入相應狀態的promise對象,其參數就是進入相應狀態時傳遞過去的參數,可以在完成回調的參數中得到
B 、Promise.resolve(value),Promise.reject(reason)是Promise構造器上還直接提供了一組靜態方法
C、在調用then方法或者catch方法時都是異步進行的,但是執行速度比較快
D、Promise構造器的prototype上還有兩個方法,分別是then和catch。這兩個方法的參數也是回調函數,這些函數會在Promise實例進入不同狀態后被調用。Then對應到resolve,catch對應到reject
正確答案: D
10、KMP算法下,長為n的字符串中匹配長度為m的子串的復雜度為()
A 、O(N) B、O(M+N) C、O(M+LOGM) D、O(N+LOGM)
正確答案: B
解析:
1 private static int Bf(int[] a, int[] b) { 2 int i =0,j=0; 3 while(i<a.length&&j<b.length){ 4 if(a[i]==b[j]){ 5 i++; 6 j++; 7 }else{ 8 i = i - j+1; 9 j=0; 10 } 11 } 12 if(j>=b.length){ 13 return i - b.length+1; 14 }else{ 15 return 0; 16 } 17 }
A、歸並排序
B、選擇排序
C、希爾排序
D、插入排序
正確答案: D
解析:
A、-rw-r--r-- B、rw-r--r-- C、-rwxr--r-- D、rwxr- -rw-
正確答案: A
13、下列說法正確的是()
A、二維以上的數組其實是一種特殊的廣義表
B、數組一旦建立,結構的元素個數和元素間的關系就不再變化
C、數組是一種線性結構,因此只能用來存儲線性表
D、數組采用順序存儲方式表示
正確答案: A B D
14、為了提高數據庫的性能,需要針對系統設計基准測試進行壓力測試,那么進行壓力而是時需要考慮以下哪些指標()
A、可擴展性
B、響應時間
C、開發性
D、吞吐量
正確答案: A B C D
15、假如在MySQL中有存儲過程proc1(員工編號,月份)用來查詢員工的工資,兩個參數類型均為字符類型,則下列調用存儲過程的方法正確的是()
A、call Proc1(‘emp001’ ,’ 201601’ ); B、exec Proc1(‘emp001’ ,’ 201601’ ); C、call Proc1(‘emp001’ ,null); D、call Proc1(‘emp001’ ,);
正確答案: A C
解析:
存儲過程的調用用call語句: CALL 存儲過程名 ( 參數列表 )
CALL 語句調用一個先前用CREATE PROCEDURE創建的程序。
CALL 語句可以用聲明為OUT或的INOUT參數的參數給它的調用者傳回值。
存儲過程名稱后面必須加括號,哪怕該存儲過程沒有參數傳遞
16、利用時間重疊概念實行並行處理的是()
A、多處理機
B、流水處理機
C、相聯處理機
D、並行(陣列)處理機
正確答案: B
17、下列關於策略處理規則描述正確的是()
A、如果子容器的某個策略被配置,則此配置值會覆蓋由其父容器所傳遞下來的配置值
B、當組策略的用戶配置和計算機配置沖突的時候,優先處理用戶配置
C、組策略的配置值是有累加性的
D、系統是先處理計算機配置,再處理用戶配置
正確答案: A C D
18、設哈夫曼樹中的結點總數為49,若用二叉鏈表作為存儲結構,則該哈夫曼樹中總共有多少個空指針域()
51 52 50 49
正確答案: C
解析:
一共有 n個節點。那么每一個節點都有兩個域,共有2n個。一共有多少個分支呢?每一個節點都有父節點(除了根節點)那么就會有n-1個分支。那么空指針的域就是2n - (n-1) = n+1;那么就會有n+1個空指針域。也就是50個。不管是不是滿二叉樹,這個結論都是正確的。
19、Linux中包括兩種鏈接:硬鏈接(Hard Link)和軟連接(Soft Link),下列說法正確的是()
A、軟連接可以跨文件系統進行連接,硬鏈接不可以
B、當刪除原文件的時候硬鏈接文件仍然存在,且內容不變
C、硬鏈接被刪除,磁盤上的數據文件會同時被刪除
D、硬鏈接會重新建立一個inode,軟鏈接不會
正確答案: A
20、在java中重寫方法應遵循規則的包括()
A、訪問修飾符的限制一定要大於被重寫方法的訪問修飾符
B、可以有不同的訪問修飾符
C、參數列表必須完全與被重寫的方法相同
D、必須具有不同的參數列表
正確答案: B C
解析:
A、LinkedList
B、ArrayList
C、Vector
D、Hashtabie
正確答案: C D
22、下列有關java構造跟使用敘述正確的是()
構造器的返回值為vold類型
如果一個源文件中有多個類,那么構造器必須與公共類同名
構造器可以有0個,1個或一個以上的參數
每個類可以有一個以上的構造器
正確答案:BCD
23、
1 public class Test{ 2 static int cnt = 6; 3 static{ 4 cnt += 9; 5 } 6 public static void main(string[] args){ 7 System.out.println(“cnt =” + cnt); 8 } 9 static{ 10 Cnt /=3; 11 }; 12 }
A、Cnt=5 B、Cnt=2 C、Cnt=3 D、Cnt=6
正確答案: A
解析:
靜態塊中的代碼按寫的順序首先依次執行,執行於方法前
24、
b = 2*a/ 4 a = "one" print(a,b)
執行下列語句后的顯示結果是什么()
A、10 B、one0.5 C、error D、one 0
正確答案:C
25、
1.bit = input("Enter a binary digit:") 2.if bit = 0 or 1: 3. print "your input is" ,bit 4.else 5. print "your input is invalid"
以上程序要求用戶輸入二進制數字0/1並顯示之,請指出程序中的錯誤:()
A、4 B、5 C、3 D、2
正確答案: A D
26、下列有關this指針使用方法的敘述正確的是()
A、保證基類保護成員在子類中可以被訪問
B、保證基類私有成員在子類中可以被訪問
C、保證基類共有成員在子類中可以被訪問
D、保證每個對象擁有自己的數據成員,但共享處理這些數據的代碼
正確答案: D
27、設有定義char *p[]={"Shanghai","Beijing","Honkong"};則結果為j字符的表達式是()
A、*p[1] +3 B、*(p[1] +3) C、*(p[3] +1) D、p[3] [1]
正確答案: B
28、
1 void func(char *p) 2 { 3 p=p+1; 4 } 5 int main() 6 { 7 char s[]={‘1’,’2’,’3’,’4’}; 8 func(s); 9 printf(“%c”,s); 10 return 0; 11 }
A、2 B、編譯錯誤 C、1 D、無法確定
正確答案: C
題目似乎有錯誤......
29、以下字符串定義與賦值中,正確的是()
A、char s[80] = {"A", "B" ,"C"} B、char s[80]; s = {'A', 'B','C'} C、char s[80]; s = "ABC"; D、char s[80] ="ABC";
正確答案: D
30、在MySQL中,下列關於出發機器的描述正確的是()
A、MySQL的觸發器只支持行級出發,不支持語句級觸發
B、觸發器可以調用將數據返回客戶端的存儲程序
C
C、在MySQL中,使用new和old引用觸發器中發生的記錄內容
D、在觸發器中可以使用顯示或者隱式方式開始或結束事務的語句
正確答案: A C
31、對於工資表結構如下(員工編號,姓名,部門,工資),如果要對查詢的結果按照部門升序與工資降序進行排序,則下列排序正確的是()
A、order by部門,工資
B、order by部門,工資desc
C、order by部門 asc,工資desc
D、order by部門desc,工資desc
正確答案: B C
32、為了提高數據的查詢效率,需要在數據庫中建立索引,則下列設計索引的原則描述正確的是()
A、在頻繁進行排序或分組(即進行group by 或order by操作)的列上建立索引
B、考慮列中指的分布,列的基數越大,索引的效果越好
C、在select關鍵字后選擇列表的列上,建立索引
D、在表中,索引越多越好
正確答案: A B
33、網絡地址為172.16.0.0,采用子網掩碼255.255.224.0 .以下說法正確的是()
A、其中一個子網的廣播地址為:172.16.32.255 B、其中一個子網的廣播地址為:172.16.128.255 C、划分了8個有效子網 D、划分了6個有效子網
正確答案: C
解析:
根據子網掩碼可以知道網絡號有多少位,主機號有多少位!
255.255.224.0
1111 1111 1111 1111 1110 0000 0000 0000
網絡號有19位,主機號有13位
有效子網:block size = 256-224 = 32 ;
34、對下列常見的各種網絡術語描述正確的是()
A、ADNS是一種用於TCP/IP應用程序的分布式數據庫,因此它在TCP/IP體系中處於應用層 B、TFTP是一種文件傳遞應用程序,它使用的傳輸層協議是TCP C、Ping是對兩個TCP/IP系統連通性進行測試的基本工具,它利用CMP進行基本的請求的應答 D、Telnet 是標准的提供遠程登錄功能的應用,可以在不同OS系統的主機之間運行
正確答案: C D
35、Arthur最近搬到了新的別墅,別墅特別大,原先的桌子顯得比較小,所以他決定換一張新的桌子。他買了一張特別大的桌子,桌子是由很多條桌腿進行支撐的,可是回到家之后他發現桌子不穩,原來是桌子腿長度不太相同。他想要自己把桌子修理好,所以他決定移除掉一些桌腿來讓桌子變得平穩。桌子腿總共有n條腿,第i條腿長度為li,Arthur移除第i桌腿要花費代價為di。假設k條腿桌子平穩的條件:超過一半桌腿能夠達到桌腿長度的最大值。例如:一條腿的桌子是平穩的,兩條腿的桌子腿一樣長時是平穩的。請你幫Arthur計算一下是桌子變平穩的最小總代價。
1 大體思路是把先把輸入的腿長映射到一個106維的腿長數目數組,數組中的值為對應腿長的的數目。然后從后往前遍歷 2 沒碰到一個腿長,將比他高的腿長砍掉,同時計算還需要砍多少桌腿,對剩余的桌腿排序砍掉對應部分,然后計算最小值。 3 #include<iostream> 4 #include<vector> 5 #include<algorithm> 6 using namespace std; 7 8 int main() 9 { 10 int n; 11 while(cin>>n) 12 { 13 vector<int >l,d,d_cut; 14 int a[106]={0}; 15 int li,di; 16 for(int i=0;i<n;i++) 17 { 18 cin>>li; 19 l.push_back(li); 20 a[li]++; 21 } 22 int minCost=0; 23 for(int i=0;i<n;i++) 24 { 25 cin>>di; 26 d.push_back(di); 27 minCost+=di; 28 } 29 for(int i=105;i>0;i--) 30 { 31 int cost=0; 32 d_cut.clear(); 33 if(a[i]) 34 { 35 int cutLegNum=l.size()-a[i]; 36 for(int j=i+1;j<=105;j++) 37 { 38 cutLegNum-=a[j]; 39 } 40 cutLegNum-=(a[i]-1); 41 for(int k=0;k<n;k++) 42 { 43 if(l[k]<i) 44 d_cut.push_back(d[k]); 45 if(l[k]>i) 46 cost+=d[k]; 47 } 48 if(cutLegNum>0) 49 { 50 sort(d_cut.begin(),d_cut.end()); 51 for (int k = 0; k <cutLegNum; k++) 52 cost+=d_cut[k]; 53 if(cost<minCost) 54 minCost=cost; 55 } 56 } 57 } 58 cout<<minCost<<endl; 59 } 60 return 0; 61 }
36、現有一個n個整數的序列,你要做的就是交換兩個數的位置直到整個序列按照升序排列,那么將這個整數序列排好序,需要交換多少次?例如,1,2,3,5,4,我們只需要交換一次,即將5和4交換即可。
1 #include <iostream> 2 #include <vector> 3 4 using namespace std; 5 6 classSolution 7 { 8 public: 9 intMinChange(vector<int>& array,intlen) 10 { 11 if(len<1) 12 { 13 return0; 14 } 15 16 intcount = 0; 17 18 for(inti = 0; i < len;i++) 19 { 20 for(intj = i + 1; j < len;j++) 21 { 22 if(array[i]>array[j]) 23 { 24 count++; 25 } 26 } 27 } 28 29 returncount; 30 } 31 }; 32 intmain() 33 { 34 intn = 0; 35 cin >> n; 36 vector<int>array; 37 inttemp = 0; 38 for(inti = 0; i < n;i++) 39 { 40 cin >> temp; 41 array.push_back(temp); 42 } 43 44 Solution s; 45 cout << s.MinChange(array,n); 46 return0; 47 }