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