第一篇:項目經理(C/C++)崗位職責
1.參與軟件架構設計工作,負責系統設計。
2.協助軟件架構師實現影響系統架構的關鍵用例。
3.負責核心模塊的編碼工作。
4.指導開發員的編碼工作。
第二篇:C/C++軟件工程師崗位職責
1.設計并實現高效的算法和數據結構。
2.開發一個或多個關鍵軟件組件并且負責它們的接口定義,實現優化調試和維護。
3.與本地和海外的項目組成員交流。
第三篇:C、C++總結
1、類:類是一種抽象的數據結構,用來描述對象的屬性,是將不同數據類型的數據以及與這些數據相關的操作封裝在一起的集合體。(封裝性)
一個類的對象所占空間的大小由它的數據成員所占據的空間總和決定;當類有virtual函數時,再加上4個字節的大小。
2、面向過程與面向對象程序設計的不同:
(1)過程是基于算法的,而對象是基于類的;
(2)過程是以函數(過程)的設計來實現的,而對象是以類的設計來實現的;
(3)過程通過數據流圖(流程圖)來體現的,而對象是通過類圖(用例圖)來體現的;(4)過程需要將步驟一步一步的具體化,而對象則只注重類的設計,不管實現方法。
3、面向對象的四大特點:抽象、封裝、繼承、多態
4、訪問控制權限:
(1)public公有型:外部可以訪問
(2)protected 保護型:除了本類、子類與友元可訪問外其它的都不能訪問(3)private 私有型:除了本類外,外部的都不能訪問
5、類與對象的區別:
(1)二者的定義不同:類是不同類型數據及其相關操作的集合,對象則是類的實例化(2)類是個類型,不占空間,但對象占空間。
(3)類是類型而不是數據對象,每個類的對象都是該類數據成員的拷貝
6、繼承與派生的目的:(1)實現代碼的重用
(2)使已存在的類不需修改地適應新應用 7.繼承的特點:
(1)每個派生類代表基類的特定版本
(2)基類的屬性和方法,派生類必須擁有(構造與析構不會被繼承)8.繼承的3種方式:public,private,protected
9、多態:是指發出同樣的消息被不同類型的對象接收后導致完全不同的行為(1)多態的條件:
○1有兩個是父子關系的類 ○2有同名的虛函數
○3有父類指針或引用調用子類對象(2)多態的實現:
函數的重載 運算符重載 虛函數
1、static有什么用途?(請至少說明兩種)關鍵字static的作用是什么?
定義靜態變量 1.限制變量的作用域 2.設置變量的存儲域
C和C++中static用法(1)C中:
○1當一個變量被定義成static型時,表明該變量是一個靜態變量,存儲在靜態存儲區中,只能被定義初始化一次;特別的當全局變量被定義成static型時,還表明該變量不能被外部文件所引用
○2當一個函數被聲明為static型時,表明該函數是一個靜態函數,不能被外部文件所調用
1(2)C++的類中:
○1當類的數據成員被聲明為static型時,表明該成員是一個能被所有對象共享的數據成員,不與任何具體對象掛勾
○2 當類的成員函數被聲明為static型時,表明該成員是靜態成員函數。
2、引用與指針有什么區別? 1)引用必須被初始化,指針不必。
2)引用初始化以后不能被改變,指針可以改變所指的對象。2)不存在指向空值的引用,但是存在指向空值的指針。
3、描述實時系統的基本特性
在特定時間內完成特定的任務,實時性與可靠性
4、全局變量和局部變量在內存中是否有區別?如果有,是什么區別? 全局變量儲存在靜態數據庫,局部變量在堆棧 5 什么是平衡二叉樹?
左右子樹都是平衡二叉樹 且左右子樹的深度差值的絕對值不大于1
6、堆棧溢出一般是由什么原因導致的? 沒有回收垃圾資源
7、什么函數不能聲明為虛函數? constructor 8 冒泡排序算法的時間復雜度是什么? O(n^2)
9、Internet采用哪種網絡協議?該協議的主要層次結構? tcp/ip 應用層/傳輸層/網絡層/數據鏈路層
10、Internet物理地址和IP地址轉換采用什么協議? ARP(Address Resolution Protocol)(地址解析協議)
11、.IP地址的編碼分為哪倆部分?
IP地址由兩部分組成,網絡號和主機號。不過是要和“子網掩碼”按位與上之后才能區分哪些是網絡位哪些是主機位。
12、分別給出BOOL,int,float,指針變量 與“零值”比較的 if 語句(假設變量名為var)
BOOL型變量:if(!var)int型變量: if(var==0)float型變量:
const float EPSINON = 0.00001;
if((x >=-EPSINON)&&(x <= EPSINON)
指針變量:
if(var==NULL)
13、不能做switch()的參數類型是: switch的參數不能為實型/
14、局部變量能否和全局變量重名?
答:能,局部會屏蔽全局。要用全局變量,需要使用“::” /
15、如何引用一個已經定義過的全局變量? 答:extern
16、全局變量可不可以定義在可被多個.C文件包含的頭文件中?為什么? 答:可以,在不同的C文件中以static形式來聲明同名全局變量。
17、語句for(;1 ;)有什么問題?它是什么意思?
答:和while(1)相同。
18、do??while和while??do有什么區別?
答:前一個循環一遍再判斷,后一個判斷以后再循環
18、static全局變量與普通的全局變量有什么區別?static局部變量和普通局部變量有什么區別?static函數與普通函數有什么區別?
static全局變量與普通的全局變量有什么區別:static全局變量只初使化一次,防止在其他文件單元中被引用;static局部變量和普通局部變量有什么區別:static局部變量只被初始化一次,下一次依據上一次結果值;
static函數與普通函數有什么區別:static函數在內存中只有一份,普通函數在每個被調用中維持一份拷貝。
程序的局部變量存在于(堆棧)中,全局變量存在于(靜態區)中,動態申請數據存在于(堆)中。
19、sizeof(...)是運算符,它的功能是:獲得保證能容納實現所建立的最大對象的字節大小;strlen(...)是函數,要在運行時才能計算。參數必須是字符型指針(char*)。它的功能是:返回字符串的長度。20、隊列和棧有什么區別? 隊列先進先出,棧后進先出
21、在c語言庫函數中將一個字符轉換成整型的函數是atool()嗎,這個函數的原型是什么?
函數名: atol 功 能: 把字符串轉換成長整型數
用 法: long atol(const char *nptr);
22、對于一個頻繁使用的短小函數,在C語言中應用什么實現,在C++中應用什么實現? c用宏定義,c++用inline
25、直接鏈接兩個信令點的一組鏈路稱作什么? PPP點到點連接
26、軟件測試都有那些種類? 黑盒:針對系統功能的測試
白合:測試函數功能,各函數接口
27.確定模塊的功能和模塊的接口是在軟件設計的那個隊段完成的? 概要設計階段
28/TCP/IP通信建立的過程怎樣,端口有什么作用? 三次握手,確定是哪個應用程序使用該協議 29/進程和線程的差別。
線程是指進程內的一個執行單元,也是進程內的可調度實體.與進程的區別:(1)調度:線程作為調度和分配的基本單位,進程作為擁有資源的基本單位
(2)并發性:不僅進程之間可以并發執行,同一個進程的多個線程之間也可并發執行
(3)擁有資源:進程是擁有資源的一個獨立單位,線程不擁有系統資源,但可以訪問隸屬于進程的資源.(4)系統開銷:在創建或撤消進程時,由于系統都要為之分配和回收資源,導致系統的開銷明顯大于創建或撤消線程時的開銷。30、測試方法
人工測試:個人復查、抽查和會審
機器測試:黑盒測試和白盒測試
31、Heap與stack的差別。Heap是堆,stack是棧。
Stack的空間由操作系統自動分配/釋放,Heap上的空間手動分配/釋放。Stack空間有限,Heap是很大的自由存儲區
C中的malloc函數分配的內存空間即在堆上,C++中對應的是new操作符。
1、軟件測試(英語:software testing),描述一種用來促進鑒定軟件的正確性、完整性、安全性和質量的過程。換句話說,軟件測試是一種實際輸出與預期輸出間的審核或者比較過程。軟件測試的經典定義是:在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟件質量,并對其是否能滿足設計要求進行評估的過程。流程:1.軟件測試流程 :需求了解--測試計劃--測試設計--測試用例編寫--測試執行--bug管理跟蹤--測試報告生成
2.bug就是測試過程中發現的程序缺陷,可以指需求上的,也可以指功能、性能上的
3.bug提交有多種方式,可以通過測試管理工具來管理bug,比如QC等 4.bug的生命周期: 發現bug(open)--修復bug(fixed)--關閉bug(closed)4.軟件測試方法:是指測試軟件性能的方法。包括有:白盒測試、黑盒測試、動態測試(單元測試、集成測試、系統測試、驗收測試、回歸測試等。)
5.測試工具:三類軟件測試工具: Mercury測試工具,Rational測試工具,Segue測試工具,qtp自動化測試工具和AutoRunner工具
6.測試內容:負載壓力、功能測試、白盒測試、測試管理、測試輔助。
2、算法(Algorithm)是一系列解決問題的清晰指令,即能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。圖像處理算法工程師
1、一個算法的優劣可以用空間復雜度與時間復雜度來衡量。
2、一個算法應該具有以下五個重要的特征: 有窮性、確定性、輸入、輸出、可行性。
3、冒泡排序(BubbleSort)一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。基本概念是:依次比較相鄰的兩個數,將小數放在前面,大數放在后面。即在第一趟:首先比較第1個和第2個數,將小數放前,大數放后。然后比較第2個數和第3個數,將小數放前,大數放后,如此繼續,直至比較最后兩個數,將小數放前,大數放后。此第一趟結束,將最大的數放到了最后。在第二趟:仍從第一對數開始比較(因為可能由于第2個數和第3個數的交換,使得第1個數不再小于第2個數),將小數放前,大數放后,一直比較到倒數第二個數(倒數第一的位置上已經是最大的),第二趟結束,在倒數第二的位置上得到一個新的最大數(其實在整個數列中是第二大的數)。如此下去,重復以上過程,直至最終完成排序。由于在排序過程中總是小數往前放,大數往后放,相當于氣泡往上升,所以稱作冒泡排序。
4快速排序:基本思想是:通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然后再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。
算法的時間復雜度是一個函數,它定量描述了該算法的運行時間。一個程序的空間復雜度是指運行完一個程序所需內存的大小。
第四篇:C和C++總結
1C中分為這幾個存儲區: 棧,堆,全局區(靜態區)—靜態變量,常量區
C++中分為這幾個存儲區:棧,堆(new創建,delete結束或者操作系統自動回收),全局區(靜態區),自由存儲區-(malloc創建,free結束),常量存儲區,2看到一本書上寫了進程通信方式有如下:
1)信號 ——軟中斷,2)管道
3)文件和記錄鎖定
4)消息隊列
5)信號量
6)共享內存
Unix的啟動順序排序。
第一步:通過/boot/vm進行啟動 linux內核
第二步:init /etc/inittab
第三步:啟動相應的腳本,并且打開終端
rc.sysinit
rc.d(里面的腳本)
rc.local
第四步:啟動login登錄界面 login
第五步:在用戶登錄的時候執行sh腳本的順序:每次登錄的時候都會完全執行的/etc/profile.d/file
/etc/profile
/etc/bashrc
/root/.bashrc
/root/.bash_profile
Linux中查看目錄大小的命令:du –sh filename
修改文件屬性的命令是:chmod 777 file-R
切換為其他用戶身份的命令是:du
第一次:第一次握手:建立連接時,客戶端發送syn包(syn=j)到服務器,并進入SYN_SEND狀態,等待服務器確認;SYN:同步序列編號(Synchronize Sequence Numbers)。
第二次:第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;
第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包
ACK(ack=k+1),此包發送完畢,客戶端和服務器進入established狀態,完成三次握手
指令用途
#空指令,無任何效果
#include包含一個源代碼文件
#define定義宏
#undef取消已定義的宏
#if如果給定條件為真,則編譯下面代碼
#ifdef如果宏已經定義,則編譯下面代碼
#ifndef如果宏沒有定義,則編譯下面代碼
#elif如果前面的#if給定條件不為真,當前條件為真,則編譯下面代碼
#endif結束一個#if……#else條件編譯塊
#error停止編譯并顯示錯誤信息
static全局變量與普通的全局變量有什么區別:static全局變量只初使化一次,防止在其他文件單元中被引用;
static局部變量和普通局部變量有什么區別:static局部變量只被初始化一次,下一次依據上一次結果值;
static函數與普通函數有什么區別:static函數在內存中只有一份,普通函數在每個被調用中維持一份拷貝
第五篇:C C++程序設計大賽策劃
曲阜師范大學IT協會
C語言程序設計大賽活動策劃書
一、活動背景:
C語言是當今世界使用最為廣泛的語言,小到家用電器,大到航空航天,無處不見C語言的身影。我校理科生及部分文科生均已開設C語言課并報名參加NCRE(全國計算機等級考試)二級C語言的考試,但成績不甚理想。
因此,我們本著“以賽促學,全面提升”的原則,開展此次競賽活動。希望是進一步提高大家的編程水平。為以后更深入地學習C語言和C類語言,以及參加更高層次的有關編程的競賽活動(如數學建模、電子設計,ACM/ICPC等)做好準備。
二、活動地點:機房
三、活動目的及意義:
1.以賽促學,全面提升。推動全校科技活動發展,繼承學校科技節學術文化節精神,培養學生創新和實踐能力,提高全校學生的科學素養。
2.為學生的個性發展搭設平臺,使學生在全面發展的基礎上,展現個性,探索科學奧秘,體驗創造與成功的快樂,激發對科學的求知欲望。
3.以本次活動為載體培養科技人才,加大協會宣傳及建設力度,踐行協會宗旨,促進科學普及。
四、活動對象:全校學生
五、人員安排:
組委會成員:協會會長、副會長,各部部長 裁判組成員:技術指導中心,出題及評分。宣傳成員:
協會秘書處負責宣傳文案、策劃資料的整理工作。協會宣傳部負責展板制作,海報制作,宣傳資料打印; 學生會干部聯系相關部門配合工作(場地、資金支持等等); 外聯部協助進行校外宣傳,爭取活動資金。組織、監督人員:協會組織部,負責賽前培訓報名、賽中、頒獎場地的組織,監考及收卷工作。
六、比賽方式:
組委會統計好報名名單后,把眾多報名者進行分組(具體分組情況根據總報名人數和可利用的電腦數目而定),方便比賽的順利進行。
參賽選手分批次到實驗室參加上機比賽。附注:
1、根據人數多少確定是否舉辦初賽-決賽,或者僅舉辦一次比賽。
2、決賽評出一等獎 名,二等獎 名,三等獎 名,優秀獎若干。
3、程序設計大賽相關題型為上機題
七、活動流程
1、賽事準備(9月 日): 組建賽事組委會,明確分工。
與校方協商活動的具體事宜(各方面取得校方的支持),選定比賽場地。進行校內宣傳(包括以展板、海報、橫幅以及各班委等形式的宣傳)。制定比賽題目、比賽規則和評分標準,開始報名并分組。進行校外宣傳,爭取活動資金。
2、賽前培訓(9月 日):
由技術指導中心進行。培訓時間為一下午。
3、活動開展(9月 日): 組委會連同協會其他成員全面做好賽事組織工作(包括每場比賽的組織和監督以及對突發事件的應對),與參賽選手保持聯系,組織做好賽事報道工作
4、活動后繼(9月 日): 解題大會暨頒獎典禮。屆時將分析題目,進一步有針對性的對NCRE進行輔導。
八、經費預算
宣傳橫幅:30 元 展板展示:30 元
資料打印:5 元
獎金:一等獎 1 名 獎金 元
二等獎 2 名 獎金 元
三等獎 5 名 獎金 元 優秀獎 若干
九、技術參數及評獎辦法
1.校級的程序設計大賽,難度適中,定位于初中級編程愛好者。2.本次程序設計大賽所有題目由組委會制定,采用黑盒測試與白盒測試相結合的評測方式。
3.本次活動均采取上機答題的方式,在規定時間內完成競賽題目,提交試卷方可離開。
4.使用C/C++語言,只要能解決題目提出的問題,給出答案,均算通過。5.組委會閱題將根據所編程序的具體情況(如實現難易程度,代碼耗時長短,是否有出錯判斷等)給分,從而選出優勝者。
十、賽場守則
1.競賽者在比賽過程中不得交頭接耳、左顧右盼,抄襲他人答案,一經發現此類情況,取消競賽資格。
2.競賽者不可攜帶相關文字、書籍資料,程序清單,不可攜帶任何電子存儲介質和電子資料,不可連接互聯網,一經發現立刻取消競賽成績。3.競賽者不得將任何通訊工具帶入競賽現場,一經發現立刻取消競賽成績。4.競賽過程中如出現計算機故障和相關疑問,請競賽者及時聯系我們負責當場比賽的裁判員。
5.參加競賽者需保持比賽現場的情節衛生。
6.每位工作人員一定要注意自己的一言一行,注意禮貌;合理安排人員,認真執行任務,井然有序;活動資料整理后交由辦公室存檔。7.競賽后安排協會干事打掃比賽現場
主辦單位:學生社團聯合會 協辦單位:信傳學院學生會 承辦單位:IT協會
年 月 日