[实战演练]腾讯2013年校招软件开发类笔试题目(选择题部分)
該要開(kāi)始做一下真題了,為了保證在本文中答案的準(zhǔn)確性,所有不確定的題目我都已經(jīng)在網(wǎng)上找到了相關(guān)答案。但是百密一疏,這樣也不可能保證所有答案都是準(zhǔn)確的,不過(guò)百分之九十以上應(yīng)該正確吧。如有不正確的地方,歡迎指正。
題目:
(一)不定項(xiàng)選擇題
1. 以下表的設(shè)計(jì),最合理的是()
A 學(xué)生:{id,name,age},學(xué)科:{id,name},分?jǐn)?shù):{學(xué)生id,學(xué)科id,分?jǐn)?shù)}
B 學(xué)生:{id,name,age},分?jǐn)?shù):{學(xué)生id,學(xué)科名稱(chēng),分?jǐn)?shù)}
C 分?jǐn)?shù):{學(xué)生姓名,學(xué)科名稱(chēng),分?jǐn)?shù)}
D 學(xué)科:{id,name},分?jǐn)?shù):{學(xué)生姓名,學(xué)科id,分?jǐn)?shù)}
2. 在數(shù)據(jù)庫(kù)系統(tǒng)中,產(chǎn)生不一致的根本原因是()
A 數(shù)據(jù)存儲(chǔ)量太大
B 沒(méi)有嚴(yán)格保護(hù)數(shù)據(jù)
C 未對(duì)數(shù)據(jù)進(jìn)行完整性控制
D 數(shù)據(jù)冗余
3. 用容積分別為15L和27L的兩個(gè)杯子向一個(gè)水桶中裝水,可以精確向水桶中注入()L水?
A 53 ? ?B 25 ? ?C 33 ? ?D 52
4. 考慮左遞歸文法 S->Aa|b ?A->Ac|Sd|ε,消除左遞歸后應(yīng)該為()?
A S->Aa|b ? ?A->bdA'|A' ? ?A'->cA'|adA'|ε
B?S->Ab|a ? ?A->bdA'|A' ? ?A'->cA'|adA'|ε
C S->Aa|b ? ?A->cdA'|A' ? ?A'->bA'|adA'|ε
D S->Aa|b ? ?A->bdA'|A' ? ?A'->caA'|dA'|ε
5. 下面的排序算法中,初始數(shù)據(jù)集的排列順序?qū)λ惴ǖ男阅軣o(wú)影響的是()
A 插入排序 ? ?B 堆排序 ? ?C 冒泡排序 ? ?D 快速排序
6. 使用二分查找算法在一個(gè)有序序列中查找一個(gè)元素的時(shí)間復(fù)雜度為()
A O(N) ? ?B O(log N) ? ?C O(N*N) ? ?D O(N*log N)
7. 路由器工作在網(wǎng)絡(luò)模型中的哪一層()?
A 數(shù)據(jù)鏈路層 ? ?B 物理層 ? ?C 網(wǎng)絡(luò)層 ? ?D 應(yīng)用層
8. 對(duì)于滿(mǎn)足SQL92標(biāo)準(zhǔn)的SQL語(yǔ)句:SELECT foo, count(foo) FROM poles WHERE foo>10 GROUP BY foo HAVING count(foo)>10 ORDER BY foo,其執(zhí)行的順序應(yīng)該為()
A FROM->WHERE->GROUP BY->HAVING->SELECT->ORDER BY
B FROM->GROUP BY->WHERE->HAVING->SELECT->ORDER BY
C FROM->WHERE->GROUP BY->HAVING->ORDER BY->SELECT
D FROM->WHERE->ORDER BY->GROUP BY->HAVING->SELECT
9. 使用深度優(yōu)先算法遍歷下面的圖,遍歷的順序?yàn)?#xff08;)
A 順序ABCDEFGHI ? ?B 順序BCEHIFGDA ? ?C 順序ABCEFHIGD ? ?D 順序HIFEGBCDA
10. 在UNIX系統(tǒng)中,目錄結(jié)構(gòu)采用
A 單級(jí)目錄結(jié)構(gòu) ? ?B 二級(jí)目錄結(jié)構(gòu) ? ?C 單純樹(shù)形目錄結(jié)構(gòu) ? ?D 帶鏈接樹(shù)形目錄結(jié)構(gòu)
11. 題目:請(qǐng)問(wèn)下面的程序一共輸出多少個(gè) “-” ?
1 #include<stdio.h> 2 #include<sys/types.h> 3 #include<unistd.h> 4 int main(void) 5 { 6 int i; 7 for(i=0;i<2;i++)} 8 fork(); 9 printf("-"); 10 } 11 return 0; 12 }A 2個(gè) ? ?B 4個(gè) ? ?C 6個(gè) ? ?D 8個(gè)
12. 題目:請(qǐng)問(wèn)下面的程序一共輸出多少個(gè)“-” ?
#include<stdio.h> #include<sys/types.h> #include<unistd.h> int main(void) {int i;for(i=0;i<2;i++){fork();printf("-\n");}return 0; }A 2個(gè) ? ?B 4個(gè) ? ?C 6個(gè) ? ?D 8個(gè)
13. 避免死鎖的一個(gè)著名算法是()
A 先入先出法 ? ?B 銀行家算法 ? ?C 優(yōu)先級(jí)算法 ? ?D 資源按序分配法
14. 你怎么理解的分配延遲(dispatch lantency)?
A 分配器停止一個(gè)進(jìn)程到開(kāi)啟另一個(gè)進(jìn)程的時(shí)間
B 處理器將一個(gè)文件寫(xiě)入磁盤(pán)的時(shí)間
C 所有處理器占用的時(shí)間
D 以上都不對(duì)
15. 以下哪一個(gè)不是進(jìn)程的基本狀態(tài)()?
A 阻塞態(tài) ? ?B 執(zhí)行態(tài) ? ?C 就緒態(tài) ? ?D 完成態(tài)
16. 假定我們有3個(gè)程序,每個(gè)程序花費(fèi)80%的時(shí)間進(jìn)行I/O,20%的時(shí)間使用CPU。每個(gè)程序啟動(dòng)時(shí)間和其需要使用CPU進(jìn)行計(jì)算的分鐘數(shù)如下,不考慮進(jìn)程切換時(shí)間:
程序編號(hào) 啟動(dòng)時(shí)間 需要CPU時(shí)間(分鐘) 1 00:00 3.5 2 00:10 2 3 00:15 1.5請(qǐng)問(wèn),在多線程/進(jìn)程環(huán)境下,系統(tǒng)的總響應(yīng)時(shí)間為()
A 22.5 ? ?B 23.5 ? ?C 24.5 ? ?D 25.5
17. 在所有非搶占CPU調(diào)度算法中,系統(tǒng)平均響應(yīng)時(shí)間最優(yōu)的是()
A 實(shí)時(shí)調(diào)度算法 ? ?B 短任務(wù)優(yōu)先算法 ? ?C 時(shí)間片輪轉(zhuǎn)算法 ? ?D 先來(lái)先服務(wù)算法
18. 什么是內(nèi)存抖動(dòng)(Thrashing)?
A 非常頻繁的換頁(yè)活動(dòng) ? ?B 非常高的CPU執(zhí)行活動(dòng) ? ?C 一個(gè)極長(zhǎng)的執(zhí)行過(guò)程 ? ?D一個(gè)極大的虛擬內(nèi)存
19. Belady‘s Anomaly出現(xiàn)在哪里()
A 內(nèi)存管理算法 ? ?B 內(nèi)存換頁(yè)算法 ? ?C 預(yù)防死鎖算法 ? ?D 磁盤(pán)調(diào)度算法
20. 以下的生產(chǎn)者消費(fèi)者程序中,那個(gè)不會(huì)出現(xiàn)鎖死,并且開(kāi)銷(xiāo)最少?
注:
down()
1. 判斷信號(hào)量的取值是否大于等于1
2. 如果是,將信號(hào)量的值減去一,繼續(xù)向下執(zhí)行
3. 否則,在該信號(hào)量上等待(進(jìn)程被掛起)
up()
1. 將信號(hào)量的值增加1(此操作將叫醒一個(gè)在信號(hào)量上面等待的進(jìn)程)
2. 線程繼續(xù)往下執(zhí)行
down()和up()是一組原子操作
選項(xiàng):
A:
#define N 100 //定義緩沖區(qū)的大小 typedef int semaphore; //定義信號(hào)量類(lèi)型 semaphore mutex = 1; //互斥信號(hào)量 semaphore empty = N; //緩沖區(qū)計(jì)數(shù)信號(hào)量 semaphore full = 0; //緩沖區(qū)計(jì)數(shù)信號(hào)量,用來(lái)計(jì)數(shù)緩沖區(qū)里的商品數(shù)量 void producer(void) {int item;while(TRUE){item = produce_item();down(&empty);down(&empty);insert_item(item);up(&mutex);up(&full);} } void consumer(void) {int item;while(TRUE){down(&full);down(&mutex);item = remove_item();up(&mutex);up(&empty);consume_item(item);} }B:
#define N 100 typedef int semaphore; semaphore empty = N; semaphore full = 0; void producer(void) {int item;while(TRUE){item = produce_item();down(&empty);insert_item(item);up(&full);} } void consumer(void) {int item;while(TRUE){down(&full);item = remove_item();up(&empty);consume_item(item);} }C:
#define N 100 typedef int semaphore; semaphore mutex = 1; semaphore empty = N; semaphore full = 0; void producer(void) {int item;while(TRUE){item = produce_item();down(&empty);down(&empty);insert_item(item);up(&mutex);up(&full);} } void consumer(void) {int item;while(TRUE){down(&mutex);down(&full);item = remove_item();up(&mutex);up(&empty);consume_item(item);} }D:
#define N 100 typedef int semaphore; semaphore mutex = 1; semaphore empty = N; semaphore full = 0; void producer(void) {int item;while(TRUE){item = produce_item();down(&empty);down(&mutex);insert_item(item);up(&full);up(&mutex);} } void consumer(void) {int item;while(TRUE){down(&full);down(&mutex);item = remove_item();up(&empty);up(&mutex);consume_item(item);} }暫且先寫(xiě)到選擇題部分,填空題部分隨后放出。
參考答案:
1. A
2. D 數(shù)據(jù)冗余
3. C 33 用排除法很容易看出來(lái),因?yàn)檫@幾個(gè)選項(xiàng)中只有C 33是3的倍數(shù),作為15L和27L的杯子,再怎么加加減減,得到的水量一定是3的倍數(shù),因?yàn)檫@是他們的最大公約數(shù)。
4. A
5. B 堆排序
6. B O(log N) 這個(gè)屬于基礎(chǔ)題目
7. C 網(wǎng)絡(luò)層
8. A 總結(jié)SQL的執(zhí)行順序大致有(1)FROM;(2)ON;(3)JOIN;(4)WHERE;(5)GROUP BY;(6)CUBE|ROLLUP;(7)HAVING;(8)SELECT;(9)DISTINCT;(10)ORDER BY;(11)TOP
9. B 這道題和我們平時(shí)用的深度優(yōu)先遍歷順序有點(diǎn)不一樣,平時(shí)用的有點(diǎn)像樹(shù)的先序遍歷,然而這道題是基于樹(shù)的后序遍歷,根節(jié)點(diǎn)最后一個(gè)訪問(wèn)。不過(guò)通過(guò)排除法應(yīng)該是只有B正確。
10. D 帶鏈接樹(shù)形目錄結(jié)構(gòu)
11. D 8個(gè)
12. C 6個(gè) 關(guān)于第11和第12題,可以參考http://yjbys.com/bishi/timu/529909.html?
13. B 銀行家算法
14. B 處理器將一個(gè)文件寫(xiě)入磁盤(pán)的時(shí)間
15. D 完成態(tài)。 沒(méi)有這個(gè)狀態(tài)
16. B 在0至10分鐘,系統(tǒng)CPU利用率20%,有2分鐘用在CPU上,此時(shí)1號(hào)程序還有1.5分鐘才能結(jié)束;在10至15分鐘,兩道程序同時(shí)運(yùn)行,CPU利用率為1-0.8^2 = 36%,因此5分鐘里面有5*0.36=1.8分鐘用于CPU,兩程序平分這1.8分鐘,因此1號(hào)程序還有0.6分鐘CPU才結(jié)束,2號(hào)程序還有1.1分鐘CPU才結(jié)束;在15分鐘往后,一直是3道程序同時(shí)運(yùn)行直至1號(hào)程序率先結(jié)束,這段時(shí)間CPU利用率為1-0.8^3 = 48.8%,其中1號(hào)程序占用0.6分鐘,因此總共CPU是1.8分鐘,總時(shí)間為1.8/48.8%=3.6885分鐘,因此進(jìn)行到18.6885分鐘時(shí)候,1號(hào)程序結(jié)束,2號(hào)程序還有0.5分鐘CPU,3號(hào)程序還有0.9分鐘CPU,兩道程序運(yùn)行,CPU利用率36%,直至2號(hào)程序運(yùn)行結(jié)束,因此0.5*2/36%=2.7778分鐘,在18.6885+2.7778=21.4663分鐘時(shí)候2號(hào)程序結(jié)束,只剩下3號(hào)程序還有0.4分鐘CPU使用,CPU利用率20%,因此再過(guò)0.4/20%=2分鐘,所有程序結(jié)束,總時(shí)間為21.4663+2=23.4663約等于23.5.因此B選項(xiàng)正確。
17. C
18. A 非常頻繁的換頁(yè)活動(dòng)
19. B 內(nèi)存換頁(yè)算法
20. A
轉(zhuǎn)載于:https://www.cnblogs.com/xuning/p/3322558.html
總結(jié)
以上是生活随笔為你收集整理的[实战演练]腾讯2013年校招软件开发类笔试题目(选择题部分)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 让自己开发的Web应用程序与ShareP
- 下一篇: 基本概念