資源簡介
計算機專業考研面試題目及解答。適合保研和考研后面試時看。
考研視頻網阿里考研網 Www.aLhikaOyan.c0m譽出品 答:只能執行査詢等讀操作,不能執行更改,備份等寫操作,原因是任何寫操作都要記錄日忐。也就是說基本 上處于不能使用的狀態。 第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和 服務器進入 ESTABLISHE狀態,完成三次握手 8.ICMP是什么協議,處于哪一層?答: Interne控制報文協議,處丁網絡層(IP層)(ping命令基于這個協議 9. winsock建立連接的主要實現步驟? 答:服務器端: socket(建立套接字,綁定(bind)并監聽( listen),用 accept()等待客戶端連接。 客戶端: socket(建立套接字,連接( connect)服務器,連接上后使用send()和recw(),在套接字上寫讀數 據,直至數據交換完畢, closesocket0關閉套接字。 服務器端: accept()發現有客戶端連接,建立一個新的套接字,自身重新開始等待連接。該新產生的套接字 使用send(和recw()寫讀數據,直至數據交換完畢, closesocket o關閉套接字。 10.IP組播有那些好處? 答: Internet上產生的許多新的應用,特別是髙帶寬的多媒體應用,帶來了帶寬的急劇消耗和網絡擁擠問題。 組播是一種允許一個或多個發送者(組播源)發送單一的數據包到多個接收者(一次的,同時的)的網絡技術 組播可以大大的節省網絡帶寬,因為無論有多少個目標地址,在整個網絡的任何條鏈路上只傳送單·的數據 包。所以說組播技術的核心就是針對如何節約網絡資源的前提下保證服務質量。 11.引用與指針有什么區別? 引用必須被初始化,指針不必。2)引用初始化以后不能被改變,指針可以改變所指的對象。 3)不存在指向空值的引用,但是存在指向空值的指針。 12.TCP/IP建立連接的過程?(3- way shake) 答:在TCP/IP協議中,TCP協議提供可靠的連接服務,采用三次握手建立一個連接。 第一次握于:建立連接時,客戶端發送syn包(syn=j到服務器,并進入 SYN SENI狀態,等待服務器確認; 第次握手:服務器收到syn包,必須確認客戶的SVN(ack=j+1),同時自己也發送一個SYV包(syn=k),即SYN+ACK 包,此時服務器進入 SYN RECV狀態; 13、局部變量能否和全局變量重名? 答:能,局部會屏蔽全局。要用全局變量,需要使用"∷:" 局部變量可以與全局變量同名,在函數內引用這個變量時,會用到同名的局部變量,而不會用到全局變量。對 于有些編譯器而言,在同一個函數內可以定義多個同名的局部變量,比如在兩個循壞體內都定義一個同名的局 部變量,而那個局部變量的作用域就在那個循環體內 14、如何引用一個已經定義過的全局變量? 第3頁共10頁 考研視頻網阿里考研網 Www.aLhikaOyan.c0m桊譽出品 答 extern 可以用引用頭文件的方式,也可以用 extern關鍵字,如果用引用頭文件方式米引用某個在頭文件中聲明的 全局變理,假定你將那個變寫錯了,那么在編譯期間會報錯,如果你用 extern方式引用吋,假定你犯了同樣的 錯誤,那么在編譯期間不會報錯,而在連接期間報錯。 15.描述實時系統的基本特性 在特定時間內完成特定的任務,實時性與可靠性。 16.全局變量和局部變量在內存中是否有區別?如果有,是什么區別? 仝局變量儲存在靜態數據庫,局部變量在堆棧。 17.什么是平衡二叉樹? 左右子樹都是平衡二叉樹且左右子樹的深度差值的絕對值不大于1。 18.堆棧溢出一般是由什么原因導致的? 沒有回收垃圾資源。 19.什么函數不能聲明為虛函數? constructor函數不能聲明為虛函數 20.冒泡排序算法的時間復雜度是什么? 時間復雜度是0(n2)。 21.寫出 float x與“零值”比較的if語句 if(x0.00000188x>-0.000001) 22. Internet采用哪種網絡協議?該協議的主要層次結構? Tcp/Ip協議主要層次結構為:應用層/傳輸層/網絡層/數據鏈路層/物理層 23. Internet物理地址和IP地址轉換采用什么協議?AR'( Address Resolution Protocol)(地址解析協議) 24.I地址的編碼分為哪倆部分?P地址由兩部分組成,網絡號和主機號。不過是要和“子網掩碼”按位與 上之后才能區分哪些是網絡位哪些是主機位。 25.用戶輸入M,N值,從1至N開始順序循環數數,每數到M輸岀該數值,直至全部輸出。寫出C程序。 循環鏈表,用取余操作做 26.不能做 switch的參數類型是: switch的參數不能為實型。 27.請寫出下列代碼的輸出內容 t include <stdio. h> maino int a, b. c. d a=10 b=a+十 d=10*a++; printf(b, c, d: %d,%d, %d", b, c, d) 第4頁共10頁 考研視頻網阿里考研網 Www.aLhikaOyan.c0m桊譽出品 0 答:10,12,12 28.寫出下列代碼的輸出內容 #includestdio, h> int inc (int a) return(++a) int multi(int*a, int*b, int*c) return(*C=米a*b) typedef int(FUNc1)(int in) ypedef int( func2)(int*, int*, int*) void show (FUNC2 fun, int argl, int*arg2) INCp=&inc int temp =p(arg1) fun(&temp, &argl, arg2); printf(%d\n", *arg2 maino t ow(multi, 10, &a) return 0: 木冰水水水木水水水木水木冰水木水水水水木木冰水水水水冰水冰水冰木 1.對于一個頻繁使用的短小函數,在C語言中應用什么實現,在C++中應用什么實現?答:c用宏定義,c+-用 inline 第5頁共10頁 考研視頻網阿里考研網 Www.aLhikaOyan.c0m桊譽出品 2.直接鏈接兩個信令點的一組鏈路稱作什么?答:PP點到點連接 3.軟件測試都有那些種類?黑盒:針對系統功能的測試白盒:測試函數功能,各函數接凵 4.確定模塊的功能和模塊的接口是在軟件設計的那個階段完成的?要設計階段 選擇題: 1. Ethternet鏈接到 Internet用到以卜那個協議?A.HDLC;B.ARP;C.UDP;D.TCP;E.ID 2.屬于網絡層協議的是:A.TCP;B.IP;C.ICMP;D.X.25 3. Windows消息調度機制是:A.指令隊列;B.指令堆棧;C.消息隊列;D.消息堆棧 4. unsigned short hash(unsigned short key) return(key>>)% 請問hash(16),hash(256)的值分別是:A.1.16;B.8.32;C.4.16;D.1.32 四.找錯題: 1.請問下面程序有什么錯誤? int al60L250」L1000」,i,j,k; for(k=0;k<=1000;k+) for(j-0;j<250;j++) for(i=0;i<60;i++) [ij[k]=0 把循環語句內外換一下 2. #define max cB 500 void Lmi QueryCSmd(Struct MSgCB pmsg unsigned char ucCmd Nt for (uc CmdNum-0: uc md Num<Max CB; uc CmdNum++ 死循環 3.以下是求一個數的平方的程序,請找出錯誤: 第6頁共10頁 考研視頻網阿里考研網 Www.aLhikaOyan.c0m桊譽出品 #define square (a(a*(a) int a=5 int b: b=SqUarE(a++) 4. ty pede f unsigned char BYTE int examply fun (bYte gt len: BYTE *gt code) BYTE *gt buf gt buf-(BYTE *)MALLOC(Max GT Length if(gt len> Max GT Length) return GT Length ERROR 五.問答題 1. IP Phone的原理是什么?IPV6 2.TCP/IP通信建立的過程怎樣,端口有什么作用?三次握于,確定是哪個應用程序使用該協議 3.1號信令和7號信令有什么區別,我國某前廣泛使用的是那一種? 4.列舉5種以上的電話新業務? 半半半半半半半半半半半米半半米半半半半半半半半 1.進程和線程的差別。 線程是指進程內的一個執行單元,也是進程內的可調度實體.與進程的區別 (1)調度:線程作為調度和分配的基本單位,進程作為擁有資源的基本單位 (2)并發性:不僅進程之間可以并發執行,同個進程的多個線程之間也可并發執行 (3)擁有資源:進程是擁有資源的個獨立單位,線程不擁有系統資源,但可以訪問求屬于進程的資源 (4)系統廾銷:在創建或撤消進程時,由」系統都要為之分配和回收資源,導鈫系統的廾銷明顯大于創建或撤消 線程時的開銷。 2.Heap與 stack的差別。 第7頁共10頁 考研視頻網阿里考研網 Www.aLhikaOyan.c0m桊譽出品 Heap是堆, stack是棧。 Stack的空間由操作系統自動分配/釋放,Heap上的空閆手動分配/釋放。 Stack空間有限,leap是很大的自由存儲區。C中的na1loc數分配的內存空間即在堆上,C中對應的是new操作 符。 程序在編譯期對變量和函數分配內存都在棧上進行,且程序運行過程中函數調用時參數的傳遞也在棧上進行。 3.如果只想讓程序有一個實例運行,不能運行兩個。像 winamp-樣,只能開一個窗口,怎樣實現? 用內存映射或全局原子(互斥變量)、查找窗口句柄… Findwindow,互斥,寫標志到文件或注冊表,共享內存。 A存儲過程是什么?有什么用?有什么優點? 航是一堆sql的集合,可以建立非常復雜的查詢,編譯運行,所以運行一次后,以后再運行速度比單獨執行SQL 快很多 5.網絡編程中設計并發服務器,使用多進程與多線程,請問有什么區別? 進程:子進程是父進程的復制品。子進程獲得父進程數據空間、堆和棧的復制品。 2,線程:相對與進程而言,線程是一個更加接近于執行體的概念,它可以與同進程的其他線程共亨數據,但擁 有自己的棧空間,擁有獨立的執行序列。 兩者都可以提髙程序的并發度,提高程序運行效率和響應時間。 線程和進程在使用上各有優缺點:線程執行開銷小,但不利于資源管理和保護;而進程正相反。同吋,線程適 合」在SP樅器上運行,而進程則可以跨機器遷移。 6. Windows下的內存是如何管理的? 7.用一個語句實現x是否為2的若干次冪的判斷: int i =512 cout boolalpha < ((i&(i-1))? false: truc)<< endl 8.下面三個有什么區別? char s const p; char const * p; const char *p 答:char* const p;//常量指針,p的值不可以修改 char const*p;//指向常量的指針,指冋的常量值不可以改 const char*p;//和 char const*p一樣 9.一個32位的機器,該機器的指針是多少位 指針是多少位只要看地址總線的位數就行了。80386以后的機了都是32的數據總線。所以指針的位數就是4個字 節了 10. maino 第8頁共10頁 考研視頻網阿里考研網 Www.aLhikaOyan.c0m桊譽出品 inta[5]={1,2,3,4,5}; int冰ptr=(int米)(&a+1) printf("%d,%d",*(a+1),*(ptr-1)) 輸出:2,5 (a+1)就是a[1],*(ptr-1)就是a[4],執行結果是2,5 &a+1不是首地址+1,系統會認為加一個a數組的偏移,是偏移了一個數組的大小(本例是5個int) int *ptr=(int *)(&a+1) 則ptr實際是&(a[5]),也就是a+5 原因如下: &a是數組指針,其類型為int(*)[5 而指針加1要根據指針類型加上一定的值, 不同類型的指針1之后增加的大小不同 a是長度為5的int數組指針,所以要加5* sizeof(int) 所以ptr實際是a[5] 但是ptr與(&a+1)類型是不一樣的(這點很重要) 所以prt-1只會減去 sizeof(int米 a,&a的地址是一樣的,但意思不一樣,a是數組首地址,也就是a[0]的地址,&a是對象(數組)首地址,a+1是 數組下一元素的地址,即a1,&a+1是下一個對象的地址,即a5|。 11.交換兩個變量的值,不使用第三個變量。即a=3,b=5,交換之后a=5,b=3; a-a+b;b-a-b;a-a-b;/第一種方法 a=a^b;b=a^b;a=a^b;//第二和. a?=b^=a^=b;//第三種,后兩種只能用于字符和整型 12.c和c++中的 struct有什么不同? C和cH中 struc t的主要區別是c中的 struct不可以含有成員函數,而c中的 struct可以。cH中 struc ti和 class 的主要區別在于默認的存取杖限不同, struct默認為 public,而clas默認為 private 13.舉幾種進程的同步機制,并比較其優缺點。 原子操作信號量機制、自旋鎖、管程,會合,分布式系統 14.進程之間通信的途徑:共享存儲系統、消息傳遞系統、管道(以文件系統為基礎) 15.進程死鎖的原因:資源競爭及進程推進順序非法 第9頁共10頁 考研視頻網阿里考研網 Www.aLhikaOyan.c0m桊譽出品 16.死鎖的4個必要條件:互斥、請求保持、不可剝奪、環路 17死鎖的處理:鴕鳥策略、預防策略、避免策咯、檢測與解除死鎖 18.操作系統中進程調度策略有哪幾種?FHS(先來先服務),優先級,吋間片輪轉,多級反饋 19.數組和鏈表的區別數組:數據順序存儲,固定大小;鏈衣:數據可以隨機仔儲,大小可動態改變 20.IS0的七層模型是什么?tcp/udp是屬于哪一層?tcp/udp有何優缺點? 應用層、表小層、會話層、運輸層、網絡層、物理鏈路層、物理層、tcp/udp屬于運輸層 TCP服務提供了數據流傳輸、可靠性、有效流控制、仝雙工操作和多路復用技術等。 與TCP不同,UDP并不提倛對IP協議的可靠機制、流控制以及錯誤恢復功能等。由于UDP比較簡單,UDP 頭包含很少的字節,比TCP負載消耗少 tcp:提供穩定的傳輸服務,有流量控制,缺點是包頭大,冗氽性不好。 udp:不提供穩定的服務,包頭小,開銷小。 面試題:線程與進程的區別和聯系?線程是否具有相同的堆棧?d1是否有獨立的堆棧? 1)進程是死的,只是一些資源的集合,真正的程序執行都是線程米完成的,程序啟動的時候操作系統就幫你 創建了一個主線程 (2)每個線程有自己的堆棧。 3)DLL中有沒有獨立的堆棧,這個問題不好回答,或者說這個問題木身是否有問題。因為DL中的代碼是被某 些線程所執行,只有線程擁有堆棧,如果DL中的代碼是EXE中的線程所調用,那么這個時候是不是說這個DL 沒有自己獨立的堆棧?如果DLL中的代碼是由DLL自己創建的線程所執行,那么是不是說DL有獨立的堆棧? 以上講的是堆棧,如果對于堆來說,每個DL有自己的堆,所以如果是叢DL中動態分配的內存,最好是叢DL 中刪除,如果你從DL中分配內存,然后在EXE中,或者另外一個DLL中刪除,很有可能導致程序崩潰。 第10頁共10頁
代碼片段和文件信息
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????215331??2018-08-23?12:12??計算機考研專業面試試題.pdf
-----------?---------??----------?-----??----
?????文件??????215331??2018-08-23?12:12??計算機考研專業面試試題.pdf
評論
共有 條評論