計算機專業(yè)面試題庫_計算機專業(yè)面試問題
對于計算機專業(yè)的求職者,做好面試準備很重要,那么你了解面試題了嗎?下面小編已經(jīng)為你們整理了計算機專業(yè)面試題庫,希望可以幫到你。
計算機專業(yè)面試題庫(一)
1.操作系統(tǒng)的主要組成部分?
進程和線程的管理,存儲管理,設(shè)備管理,文件管理
2.Internet采用哪種網(wǎng)絡(luò)協(xié)議?該協(xié)議的主要層次結(jié)構(gòu)?
Internet采用TCP/IP協(xié)議 物理層,數(shù)據(jù)鏈路層,網(wǎng)絡(luò)層(IP),應(yīng)用層
3.解釋文件系統(tǒng)為什么會存在數(shù)據(jù)冗余?這種數(shù)據(jù)冗余會導(dǎo)致哪兩類典型的題?
由于文件系統(tǒng)難于實現(xiàn)數(shù)據(jù)共享,因此,相同的數(shù)據(jù)可能會在多個文件中重復(fù)出現(xiàn),即產(chǎn)生數(shù)據(jù)冗余。 數(shù)據(jù)冗余會導(dǎo)致數(shù)據(jù)(或更新)異常和數(shù)據(jù)不一致性
4.簡述中斷裝置的主要職能。
中斷裝置的職能主要有三點:
1)檢查是否有中斷事件發(fā)生。
2)若有中斷發(fā)生,保護好被中斷進程的斷點及現(xiàn)場信息,以便進程在適當時候能恢復(fù)運行。
3)啟動操作系統(tǒng)的中斷處理程序。
5.什么是虛擬設(shè)備?為什么在操作系統(tǒng)中引入虛擬設(shè)備?
虛擬設(shè)備是通過虛擬技術(shù)將一臺獨占設(shè)備變換為若干臺邏輯設(shè)備,供若干個用戶進程同時使用,通常把這種經(jīng)過虛擬技術(shù)處理后的設(shè)備稱為虛擬設(shè)備。 在操作系統(tǒng)設(shè)備管理中,引入虛擬設(shè)備是為了克服獨占設(shè)備速度較慢、降低設(shè)備資源利用率的缺點,從而提高設(shè)備的利用率。
計算機專業(yè)面試題庫(二)
1. 程序什么時候應(yīng)該使用線程,什么時候單線程效率高。
答:01.耗時的操作使用線程,提高應(yīng)用程序響應(yīng)。
02.并行操作時使用線程,如C/S架構(gòu)的服務(wù)器端并發(fā)線程響應(yīng)用戶的請求。
03.多CPU系統(tǒng)中,使用線程提高CPU利用率
04.改善程序結(jié)構(gòu)。一個既長又復(fù)雜的進程可以考慮分為多個線程,成為幾個獨立或半獨立的運行部分,這樣的程序會利于理解和修改。
其他情況都使用單線程。
2. 一般數(shù)據(jù)庫若出現(xiàn)日志滿了,會出現(xiàn)什么情況,是否還能使用?
答:只能執(zhí)行查詢等讀操作,不能執(zhí)行更改,備份等寫操作,原因是任何寫操作都要記錄日志。也就是說基本上處于不能使用的狀態(tài)。
第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進入ESTABLISHED狀態(tài),完成三次握手。
3.ICMP是什么協(xié)議,處于哪一層?答:Internet控制報文協(xié)議,處于網(wǎng)絡(luò)層(IP層)(ping命令基于這個協(xié)議)
4.winsock建立連接的主要實現(xiàn)步驟?
答:服務(wù)器端:socket()建立套接字,綁定(bind)并監(jiān)聽(listen),用accept()等待客戶端連接。
客戶端:socket()建立套接字,連接(connect)服務(wù)器,連接上后使用send()和recv(),在套接字上寫讀數(shù)據(jù),直至數(shù)據(jù)交換完畢,closesocket()關(guān)閉套接字。
服務(wù)器端:accept()發(fā)現(xiàn)有客戶端連接,建立一個新的套接字,自身重新開始等待連接。該新產(chǎn)生的套接字使用send()和recv()寫讀數(shù)據(jù),直至數(shù)據(jù)交換完畢,closesocket()關(guān)閉套接字。
5. IP組播有那些好處?
答:Internet上產(chǎn)生的許多新的應(yīng)用,特別是高帶寬的多媒體應(yīng)用,帶來了帶寬的急劇消耗和網(wǎng)絡(luò)擁擠問題。組播是一種允許一個或多個發(fā)送者(組播源)發(fā)送單一的數(shù)據(jù)包到多個接收者(一次的,同時的)的網(wǎng)絡(luò)技術(shù)。組播可以大大的節(jié)省網(wǎng)絡(luò)帶寬,因為無論有多少個目標地址,在整個網(wǎng)絡(luò)的任何一條鏈路上只傳送單一的數(shù)據(jù)包。所以說組播技術(shù)的核心就是針對如何節(jié)約網(wǎng)絡(luò)資源的前提下保證服務(wù)質(zhì)量。
6.引用與指針有什么區(qū)別?
1) 引用必須被初始化,指針不必。
2) 引用初始化以后不能被改變,指針可以改變所指的對象。
3) 不存在指向空值的引用,但是存在指向空值的指針。
7. TCP/IP 建立連接的過程?(3-way shake)
答:在TCP/IP協(xié)議中,TCP協(xié)議提供可靠的連接服務(wù),采用三次握手建立一個連接。
第一次握手:建立連接時,客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進入SYN_SEND狀態(tài),等待服務(wù)器確認;
第二次握手:服務(wù)器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發(fā)送一個SYN包(syn=k),即SYN+ACK包,此時服務(wù)器進入SYN_RECV狀態(tài);
計算機專業(yè)面試題庫(三)
1、局部變量能否和全局變量重名?
答:能,局部會屏蔽全局。要用全局變量,需要使用"::"
局部變量可以與全局變量同名,在函數(shù)內(nèi)引用這個變量時,會用到同名的局部變量,而不會用到全局變量。對于有些編譯器而言,在同一個函數(shù)內(nèi)可以定義多個同名的局部變量,比如在兩個循環(huán)體內(nèi)都定義一個同名的局部變量,而那個局部變量的作用域就在那個循環(huán)體內(nèi)。
2、如何引用一個已經(jīng)定義過的全局變量?
答:extern
可以用引用頭文件的方式,也可以用extern關(guān)鍵字,如果用引用頭文件方式來引用某個在頭文件中聲明的全局變理,假定你將那個變寫錯了,那么在編譯期間會報錯,如果你用extern方式引用時,假定你犯了同樣的錯誤,那么在編譯期間不會報錯,而在連接期間報錯。
3.描述實時系統(tǒng)的基本特性 在特定時間內(nèi)完成特定的任務(wù),實時性與可靠性。
4.全局變量和局部變量在內(nèi)存中是否有區(qū)別?如果有,是什么區(qū)別?
全局變量儲存在靜態(tài)數(shù)據(jù)庫,局部變量在堆棧。
5.什么是平衡二叉樹? 左右子樹都是平衡二叉樹 且左右子樹的深度差值的絕對值不大于1。
6.堆棧溢出一般是由什么原因?qū)е碌? 沒有回收垃圾資源。
7.什么函數(shù)不能聲明為虛函數(shù)? constructor函數(shù)不能聲明為虛函數(shù)。
8.冒泡排序算法的時間復(fù)雜度是什么? 時間復(fù)雜度是O(n2)。
9.寫出float x 與“零值”比較的if語句。 if(x<0.000001&&x>-0.000001)
10.Internet采用哪種網(wǎng)絡(luò)協(xié)議?該協(xié)議的主要層次結(jié)構(gòu)?
Tcp/Ip協(xié)議 主要層次結(jié)構(gòu)為: 應(yīng)用層/傳輸層/網(wǎng)絡(luò)層/數(shù)據(jù)鏈路層/物理層。
11.Internet物理地址和IP地址轉(zhuǎn)換采用什么協(xié)議? ARP (Address Resolution Protocol)(地址解析協(xié)議)
12.IP地址的編碼分為哪倆部分? IP地址由兩部分組成,網(wǎng)絡(luò)號和主機號。不過是要和“子網(wǎng)掩碼”按位與上之后才能區(qū)分哪些是網(wǎng)絡(luò)位哪些是主機位。
13.用戶輸入M,N值,從1至N開始順序循環(huán)數(shù)數(shù),每數(shù)到M輸出該數(shù)值,直至全部輸出。寫出C程序。
循環(huán)鏈表,用取余操作做
14.不能做switch()的參數(shù)類型是: switch的參數(shù)不能為實型。
15. 請寫出下列代碼的輸出內(nèi)容
#include
main()
{
int a,b,c,d;
a=10;
b=a++;
c=++a;
d=10*a++;
printf("b,c,d:%d,%d,%d",b,c,d);
return 0;
}
答:10,12,120
28. 寫出下列代碼的輸出內(nèi)容
#include
int inc(int a)
{
return(++a);
}
int multi(int*a,int*b,int*c)
{
return(*c=*a**b);
}
typedef int(FUNC1)(int in);
typedef int(FUNC2) (int*,int*,int*);
void show(FUNC2 fun,int arg1, int*arg2)
{
INCp=&inc;
int temp =p(arg1);
fun(&temp,&arg1, arg2);
printf("%d\n",*arg2);
}
main()
{
int a;
show(multi,10,&a);
return 0;
}
看了“計算機專業(yè)面試題庫”