原创 預處理、結構體預習

1. 帶參數的宏與自定義函數的區別   1.函數調用時,先求出實參表達式的值,然後帶入形參。而使用帶參的宏只是進行簡單的字符替換。   2.函數調用是在程序運行時處理的,分配臨時的內存單元;而宏展開則是在編譯時進行的,在展開時並不分配內存

原创 C語言網絡聊天室程序

共分爲四部分,服務器兩個,客戶端兩個 1.my_sever.c //******************************************************// //鐢熸垚鏃ユ湡 2017騫?2鏈?4鏃?  浣滆€?闄

原创 棧章節預習問答

1.兩棧的共享空間是如何實現的   如果我們有兩個相同類型的棧,我們爲他們各自開闢了數組空間,極有可能第一個棧已經滿了,再進棧就溢出了,而另一個棧還有很多存儲空間空閒。這時,我們完全可以用一個數組兩存儲兩個棧。       我們的做法如

原创 筆試訓練4

1.某系統中有3個併發進程,都需要同類資源4個,試問該系統不會發生死鎖的最少資源數是多少可能會發生死鎖的上限資源數,爲每個進程均只差一個資源的情況,爲9個,只要再加一個資源就不可能發生死鎖了,所以不會發生死鎖的最少資源數爲10。2.內存相

原创 進程間通信方式預習2

1.接口mmap()的使用方法 mmap()系統調用使得進程之間可以通過映射同一個普通文件實現共享內存,普通文件被映射到地址空間後,進程可以向訪問普通文件一樣對文件進行訪問,不必再調用read(),writr()等操作。Mmap()系統調

原创 進程間通信方式預習1

1.linux進程間通信的目的是什麼? 1.數據傳輸,一個進程將它的數據發送給另一個進程,發送的數據量在一個字節到幾兆字節之間。 2.共享數據,多個進程想要操作共享數據,一個進程對共享數據的修改,別的進程立刻看到。 3.通知事件,一個進程

原创 數據結構之線性表預習

1.簡述線性表中順序存儲結構的含義及主要元素 描述順序存儲結構需要三個屬性:  1. 存儲空間的起始位置:數組 data , 它的存儲位置就是存儲空間的存儲位置  2. 線性表的最大存儲容量  3. 線性表的當前長度 數組長度 與 線性表

原创 網絡編程預習1

1.TCP/IP的幾個重要特性 1.Connectionless Packet Delivery Service,是其他網絡服務的基礎,幾乎所以數據

原创 筆試訓練3

1.靜態鏈表中指針表示的是數組下標在某些語言中指針是不被支持的,只能使用數組來模擬線性鏈表的結構.在數組中每個元素不但保存了當前元素的值,還保存了一個”僞指針域”,一般是int類型,用於指向下一個元素的內存地址.這種鏈表在初始時必須分配足

原创 筆試訓練5

1.char* a, char* b;while(*b = *a){    a++;    b++;}作用是將a所指的字符串賦給b所指的空間,while(*b = *a)相當於while((*b = *a) != '\0'2.四層網絡模型

原创 算法複雜度

算法複雜度分爲時間複雜度和空間複雜度。其作用: 時間複雜度是指執行算法所需要的計算工作量; 而空間複雜度是指執行這個算法所需要的內存空間。 (算法的複

原创 多線程編程預習

1.何謂線程 線程是進程的一個實體,死cpu調度很分派的基本單位,它是比進程更小的能獨立運行的基本單位,線程自己基本上不擁有系統資源,只擁有一點運行中必不可少的資源,但是它可與同屬一個進程的其他的線程共享進程所擁有的全部資源。   2.一

原创 進程控制編程預習

1.爲什麼需要多進程,爲何需要併發 有了併發技術,就是可以在同一時間同時執行多條任務的技術,程序不僅可以規規矩矩的一條線執行,可以多條線同時執行,這樣就可以實現更加強大的功能,提供更多的服務,所以併發是必不可少的。 2.何謂進程調度 在

原创 C語言指針基礎預習

1.指針的類型與指針所指向的類型的區別 從語法的角度看,你只要把指針聲明語句裏的指針名字去掉,剩下的部 分就是這個指針的類型。這是指針本身所具有的類型。讓我們看看例一中各 個指針的類型: (1)int*ptr;//指針的類型是int* (

原创 C語言函數基礎預習

1.函數的聲明與定義 函數的聲明就是聲稱一個函數的名字,只是說明函數的名字,不涉及函數的實現,即沒有函數體,所以函數的聲明只包括前三個部分。 函數的定義就是確定一個函數的意義,即讓函數具有某項功能,但是這裏可不是隻有函數體,你要指明這個函