當前位置:首頁 » 編程語言 » 學C語言要學什麼課程
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

學C語言要學什麼課程

發布時間: 2022-09-21 02:15:03

『壹』 自學c語言 零基礎 看什麼書 該怎麼學

現在,市面上的
C語言書籍多的數不過來,但是很多不適合你這種初學者使用,作為一名老程序員,我給你推薦幾本我看過認為還不錯的書:
1)
《C語言小白變怪獸》:既適合對計算機一竅不通的小白,也適合有編程基礎的讀者,還可以用來進階。同時,最重要的是,這本書的作者還在不斷地更新這本書,我認為最大的特點是通俗易懂,深入淺出,只要認真看,就一定能看懂,我認為這是C語言入門的首選教材,吐血推薦,經典中的經典!!!
2)
《啊哈C語言》:適合對計算機一竅不通的純小白,有編程基礎的讀者請忽略。這本書語言幽默,生動形象,通俗易懂,給人耳目一新的感覺,但是這本書非常淺顯,並不深入,所以適合純小白入門,找到門以後也就扔了。這本書著重於語言藝術,針對純小白下足了功夫,小學生坐在馬桶上都能學會編程。說實話,我非常欣賞作者的創意和用心,國內像這樣寫書的少之又少,入門的書就應該是這個樣子。
上邊這兩本書是我推薦給你用於C語言入門的,我不建議你使用譚浩強的《C語言程序設計》這本書入門,雖然這本書的知名度很高,因為很多大學把它作為C語言的授課教材,然而,這本書被吐槽最多,不但代碼不標准,而且有很多錯誤,據說可以找出幾十個錯誤,這樣很容易誤導你這種小白。
等你有一定的C語言基礎了,可以看下面的這幾本書,進一步提升你的編程水平:
1)
《C
Primer
Plus》:暢銷
30
余年的C語言入門經典書籍,至今無人能撼動它的地位,它是最符合C語言標準的書籍,作為一名C語言程序員,不收藏一本都覺得自己很水。
2)
《C程序設計語言,The
C
Programming
Language》:C語言創始人丹尼斯·里奇(Dennis
MacAlistair
Ritchie)的著作,和《C
Primer
Plus》並駕齊驅,很難分出伯仲,這兩本書都是一樣的優秀,都是C語言程序員必須收藏的。
3)
《C專家編程》:適合已經具備C語言基礎、想進階的讀者。這貌似是一本吐槽C語言的書,基本上介紹了大多數C語言的坑,有不少精髓,在C語言界久負盛名,進階時一定要看。
4)
《C陷阱與缺陷》:和《C專家編程》類似,也是給C語言挑刺的,闡述了很多容易讓人誤解的語法細節,重在幫助C程序員繞過編程過程中的陷阱和障礙。
5)
《程序員的自我修養
--
鏈接、裝載與庫》:這真是一本深入骨髓的書,讓你徹底明白程序的編譯、鏈接、裝載和運行的全過程,你會從此上天,拉開和別人的差距,看任何問題都有了深度和高度。重點推薦!
所有的這些書我都有電子版,需要可以找我要!

『貳』 計算機專業主要學什麼課程

計算機專業開設的主要課程有:電子技術、離散數學、程序設計、數據結構、操作系統、計算機組成原理、微機系統、計算機系統結構、編譯原理、計算機網路、資料庫系統、軟體工程、人工智慧、計算機圖形學、數字圖像處理、計算機通訊原理、多媒體信息處理技術、數字信號處理、計算機控制、網路計算、演算法設計與分析、信息安全、應用密碼學基礎、信息對抗、移動計算、數論與有限域基礎、人機界面設計、面向對象程序設計等。
計算機專業是計算機硬體與軟體相結合、面向系統、側重應用的寬口徑專業。通過基礎教學與專業訓練,培養基礎知識扎實、知識面寬、工程實踐能力強,具有開拓創新意識,在計算機科學與技術領域從事科學研究、教育、開發和應用的高級人才。

『叄』 學習C語言要些什麼基礎

C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

由於C語言簡單易學,已經成為學習編程的入門語言之一。在大學一年級,已經安排C語言相關的學習課程。由此可見,C語言的學習並不需要前置課程,可以輕松入門。附件是一本適合初學者入門學習的C語言書籍。其中包括:基本數據類型,運算符與表達式,控制流,函數,指針,數據結構,輸入輸出等基本基本知識的介紹。能夠熟練運用上述的C語言規則,就可以完成C語言入門學習的內容。

一般要掌握基本的微機原理的知識、英文閱讀的能力。學習語言注意要多動手,多思考調試,還要能堅持不懈,最重要的還有興趣。

只要同學們掌握一些方法,多讀,多寫,克服心理上畏難情緒,C語言是完全可以學好的並且靈活應用的。

至於看什麼書,推薦幾本:
1.C語言入門經典
《C語言入門經典》例子簡單生活化,而且每個例子分析很細。章節安排合理,章末的例子還特別注重思路的引導,而且分析起來特別有成就感。
這本書是自學過程的一本好書。
2.C primer plus
這本書很適合希望系統學習C語言的讀者,正如他的名字,是一本不錯的入門和進階的書。書中的每一個知識點都有很多生動簡單的示例,並給出了相應的運行結果。總之,在看這本書的過程中,有一種一氣呵成的感覺。
3.C和指針
這本書和《專家編程》《C缺陷和陷阱》可以並稱C語言(進階書)三傑。本書的部分內容更適合有C基礎的人看。如ADT、遞歸、指針和數組的部分,書中所述的思想是國內教材所缺乏的。看完本書,能得到一個正確的C語言觀。
4.C程序設計語言
難以置信的是,這樣一本C語言的入門書籍,從hello world開始講起,卻在短小的篇幅里,手把手教你寫了stdio.h stdlib.h
string.h當中大部分常式,實現了二分查找、快速排序、二叉樹、哈希表這些重要的數據結構和演算法。這本書傳遞著一種簡單、優雅、平實和閑適。
5.C專家編程
《C專家編程》展示了最優秀的C程序員所使用的編碼技巧,並專門開辟了一章對C++的基礎知識進行了介紹。書中C的歷史、語言特性、聲明、數組、指針、鏈接、運行時、內存以及如何進一步學習C++等問題進行了細致的講解和深入的分析。

『肆』 計算機專業學些什麼課程

1. 計算機數學基礎
本課程4學分,課內學時72,開設一學期。
課程的主要內容:線性代數、概率基礎、數理統計基礎等。

2. 計算機電路基礎 (1)
本課程4學分,課內學時72,其中實驗18學時,開設一學期。
本課程是計算機應用專業的專業基礎課。主要內容包括:電路基本概念(電路與電路模 型、電路基本物理量、電路基本元件、基爾霍夫定律、簡單的電阻電路),半導體基本器件 ;開關理論基礎,門電路,組合邏輯電路與時序邏輯電路,可編程邏輯器件(隨機讀寫存貯 器、只讀存貯器、可編程邏輯陣列、通用邏輯陣列、現場可編程門陣列、在系統(ISP)編 程技術),數字系統的組成。
本課程後續課程:計算機電路基礎(2)等。

3. 計算機電路基礎(2)
本課程4學分,課內學時72,其中實驗14學時,開設一學期。
本課程是計算機應用專業計算機控制方向的一門必修課。主要內容包括:模擬電路基本 概念,運算放大器的原理及應用,功率放大及穩壓電路;測試技術概述,機電系統運動參 數 (位移、速度、加速度、力、力矩、應變及應力等)的測試,過程系統參數(壓力、溫 度、 流量等),測試數據處理。
本課程先修課程:計算機電路基礎(1)等。
本課程後續課程:微機介面技術、計算機控制技術等。

4. C++語言程序設計
本課程5學分,90學時,開設一學期。
C++語言程序設計是計算機應用專業的專業基礎課。該課程的主要內容:算術、邏輯、 比較、位、條件、逗號、賦值、輸入、輸出等運算符和表達式,分支和循環控制結構,模塊 化程序設計(函數定義、函數調用、函數重載、庫函數、變數作用域和存貯類),數據類 型 (整型、實型、字元型、枚舉、數組、結構、指針、類等),動態存儲空間的分配與釋 放, C++操作環境、編譯預處理、文件鏈接和工程文件的使用,類與對象的概念,操作符重 載與 函數模板,C++標准輸入輸出流、文件流和串流,等等。
本課程先修課程:計算機入門及操作技能訓練(在集中實踐環節中)、計算機組成原理 與匯編語言等。

5. 計算機組成原理與匯編語言
本課程5學分,課內學時90,開設一學期。
本課程是計算機應用專業的專業基礎課。主要內容包括:計算機系統概述,計算機中數 據的表示,運算方法和運算器,指令系統,控制器,存貯器組織,輸入輸出系統;匯編語 言 ,匯編語言基本程序設計,程序設計舉例(輸入輸出程序設計、中斷程序設計、系統調 用及 程序設計)。
本課程先修課程:計算機電路基礎(1)等。
本課程後續課程:操作系統,計算機網路等。

6. 數據結構
本課程5學分,90學時,其中實驗佔27學時,大作業佔18學時,開設一學期。
數據結構是計算機應用專業的專業基礎課。該課程的主要內容:線性表、棧、隊列的定 義、順序存貯和鏈接存貯結構,進行插入和刪除等運算的演算法;樹、二叉樹、二叉排序樹 、 哈夫曼樹的定義、性質、存貯結構及建立過程,二叉樹的先序、中序和後序遍歷演算法, 二叉 排序樹的查找、插入和生成演算法,圖的定義,圖的鄰接矩陣、鄰接表和邊集數組存貯 結構, 圖的深度優先和廣度優先遍歷演算法,求圖的最小生成樹和最短路徑演算法,拓撲排序 演算法,數 據查找和排序的各種演算法,文件的概念和組織方法等。
本課程先修課程:計算機組成原理與匯編語言、C++語言程序設計等。

7. 微機介面技術
本課程5學分,課內學時90,其中實驗27學時,大作業18學時,開設一學期。
本課程是計算機應用專業計算機控制方向的一門必修課。主要內容包括:微機介面技術 概述,模擬量輸出輸入通道(A/D、D/A變換及其介面電路),數字量輸出輸入通道,常用 可編程並、串列介面電路,工業控制計算機匯流排技術,人機界面介面技術。
本課程先修課程:計算機組成原理與匯編語言、計算機電路基礎(2)等。
本課程後續課程:計算機控制技術、單片機技術等。

8. 資料庫基礎與應用
本課程6學分,108學時,開設一學期。
資料庫基礎與應用是計算機應用專業信息管理方向的一門必修課,其它方向的選修課。 該課程的主要內容:資料庫系統的概念、組成和主要功能,資料庫保護和數據模型,關系 模 型和各種關系運算,利用SQL進行資料庫的定義、查詢、更新、插入和刪除數據,關系規 范 化和函數依賴,第一、二、三範式和BCNF範式,資料庫的概念結構設計、邏輯結構設計 和物 理結構設計,FoxPro資料庫的建立、顯示、修改、查詢、統計、復制、索引、排序、 更新、 關聯等,Foxpro應用程序設計和用戶界面設計。
先修課程:計算機入門及操作技能訓練(在集中實踐環節中)、離散數學等。

9. 操作系統
本課程5學分,課內學時90,開設一學期。
操作系統是計算機應用專業的專業基礎課。操作系統對計算機系統資源實施管理,是所 有其他軟體與計算機硬體的唯一介面。學生通過本課程的學習,理解操作系統的基本概念 和主要功能,掌握常用操作系統的使用和一般管理方法,了解它是如何組織和運作的,從 而為今後的學習和工作打下基礎。
課程主要內容:操作系統引論;進程管理;處理機管理;存儲器管理;文件系統;設備 管理;中斷和信號機構;死鎖;微內核體系結構;網路操作系統;操作系統展望與中文操 作系統。
本課程先修課程:計算機組成原理與匯編語言、C++語言程序設計、離散數學基礎等。
本課程後續課程:網路操作系統等。

10. 計算機控制技術
本課程4學分,課內學時72,其中實驗15學時,開設一學期。
本課程是計算機應用專業計算機控制方向的一門必修課。主要內容包括:自動控制的基 本概念,計算機控制系統基本組成及工作原理,計算機控制系統的基本特性,計算機控制 系統的控制演算法,控制用計算機系統的配製,實時控制軟體技術,計算機控制系統的抗干 擾技術,可編程序控制器的原理及應用,分散型控制系統及其應用,計算機控制系統設計 與調試舉例。
本課程先修課程:計算機組成原理與匯編語言、C++語言程序設計等。
本課程後續課程:單片機技術等。

11. 單片機技術
本課程4學分,課內學時72,開設一學期。
本課程是計算機應用專業計算機控制方向的一門必修課。主要內容包括:單片機概述, 單片機晶元結構,單片機指令系統,單片機程序設計,單片機系統擴展,單片機開發系統 及應用,單片機在控制系統中的應用(數據採集系統,智能數字電壓表,機械手控制系統 等) 。
本課程先修課程:計算機組成原理與匯編語言等。

12. 計算機網路
本課程5學分,課內學時90,開設一學期。
本課程是計算機應用專業的專業基礎課。主要內容包括:計算機網路概述(計算機網路 基本概念、計算機網路硬體、計算機網路軟體、互連網路標准體系、開放式系統互連參考 模型、計算機網路的新進展及發展趨勢);計算機網路的層次模型,計算機網路中的通信 子網 (概述、數字通信基礎知識、局域計算機網路、城域計算機網路、廣域計算機網路、 網際互 連技術);計算機網路中的高層服務(概述、區域網絡服務/廣域網路服務、電子郵 政服務 、WWW多媒體信息發布服務、文件傳輸與終端模擬服務、其他網路高層應用);計算 機網路應用開發與相關技術,使用計算機網路的道德和法律法規。
本課程先修課程:計算機組成原理與匯編語言等。
本課程後續課程:組網與網路管理技術、Internet與Intranet應用、網路操作系統、計 算機組成原理與匯編語言、網路信息製作與發布等。

13. 多媒體技術基礎
本課程4學分,課內學時72,其中實驗24學時,開設一學期。
多媒體技術基礎課程是計算機應用專業計算機應用軟體開發方向的一門必修課。通過本 課程的學習,使學生了解多媒體技術的發展,掌握多媒體軟硬體的配置及使用,為今後更 好地應用多媒體技術打下基礎。
課程主要內容:多媒體計算機技術概論;視頻與音頻信息獲取與存儲技術;多媒體計算 機硬體結構;壓縮技術;超文本和超媒體;多媒體素材的採集和處理;動畫製作工具和創 作技術;編輯多媒體軟體。
本課程先修課程:Windows使用、計算機組成原理。

14. 軟體工程
本課程4學分,課內學時72,開設一學期。
軟體工程課程是計算機應用專業計算機應用軟體開發方向和計算機信息管理方向的必修 課。本課程闡述了軟體開發、維護和管理等方面的軟體工程學的概念、原理以及典型的技術 方法。通過本課程的學習,使學生樹立軟體工程的科學思想,能自覺按照軟體工程的方法學 進行軟體的開發和維護工作,並掌握與此相應的方便的工具,形成良好的軟體開發習慣。
課程主要內容:軟體工程概述;可行性研究;需求分析;總體設計;詳細設計;編碼; 測試;維護;原型法。
本課程先修課程:一門高級程序設計語言,操作系統,數據結構等。

15. Visual Basic程序設計
本課程5學分,課內學時90,其中實驗32學時,開設一學期。
Visual Basic程序設計課程是計算機應用專業計算機應用軟體開發方向的一門必修課。 通過本課程的學習,使學生熟悉VB這一集應用程序開發、設計、編輯、編譯和調試為一體 的集成化開發環境,掌握VB的基本語言和語法,培養學生使用VB進行程序設計的技能。
課程主要內容:VB集成化開發環境;VB 窗體;VB控制項;VB模塊;VB類;VB輸出;VB創 建並使用菜單和工具;VB使用數組、變數和常量;VB存儲和獲取數據;VB創建和使用幫助文 件;VB使用對話框;VB使用滑鼠;VB使用Dll和API;VB使用ActiveX;VB面向對象的編程方 法。
本課程先修課程:程序設計基礎、Windows操作系統、多媒體技術基礎。

16. 軟體工具與環境
本課程3學分,課內學時54,其中實驗34學時,開設一學期。
軟體工具與環境課程是計算機應用專業計算機應用軟體開發方向的一門必修課。在軟體 開發活動中,採用合適的軟體開發工具、平台和環境,可以大大提高軟體生產率,也是保 證軟體產品的質量的一個重要手段。應用軟體開發人員掌握有關概念,熟悉常用軟體開發 工具、平台和環境是十分必要的。
課程主要內容:軟體開發環境概論;人機界面;程序設計環境;系統集成環境;維護環 境;速成原型環境;程序自動生成環境。
本課程先修課程:軟體工程等。

17. 信息管理系統 本課程4學分,72學時,大作業佔18學時,開設一學期。
信息管理系統是計算機應用專業信息管理方向的一門必修課,它綜合利用了先前學過的 知識,解決信息管理系統的實際問題。主要內容有:信息管理系統的概念與結構,信息管理 系統的開發過程,信息管理系統的管理與維護,信息管理系統的開發環境與工具,信息管理 系統的開發實例等。
本課程先修課程:計算機組成原理與匯編語言、計算機網路、數據結構、資料庫基礎與 應用、管理學基礎等。

18. 組網與網路管理技術
本課程4學分,課內學時72,開設一學期。
本課程是計算機應用專業計算機網路方向的一門必修課。主要內容包括:組網用的物理 信道,組網實踐,計算機網路互連(交換網路的概念、區域網絡互連、區域網與廣域網的 互連),計算機網路管理(網路管理的基本概念、簡單網路管理協議SNMP、全面網路管理 ,計算機網路的測試與維護)。
本課程先修課程:計算機網路等。

19. 網路操作系統
本課程4學分,課內學時72,開設一學期。
本課程是計算機應用專業計算機網路方向的一門必修課。主要內容包括:網路操作系統 概論(網路操作系統概念、功能描述),網路操作系統比較(UNIX、Windows NT和Netware 網路操作系統性能價格比較),網路操作系統的發展預測,UNIX操作系統及使用,Windows NT操作系統及使用,Netware網路操作及使用。
本課程先修課程:計算機網路、操作系統等。

20. Internet與Intranet應用
本課程4學分,課內學時72,開設一學期。
本課程是計算機應用專業計算機網路方向的一門必修課。主要內容包括: Internet和 Intranet應用及互連網路應用概貌,域名服務(DNS),電子郵政服務(E-mail),文件 傳輸服務(FTP),遠程登錄服務(Telnet),Web服務,代理(Proxy)服務,其他互連網 絡服務,新的應用,ISP的實施例子。
本課程先修課程:計算機網路等。

21. 網路信息製作與發布
本課程5學分,課內學時90,開設一學期。
本課程是計算機應用專業計算機網路方向的一門必修課。主要內容包括:網路信息的收 集與組織,網路信息製作工具介紹( Word、Front Page),網路信息的製作(預備知識: 色彩、構圖與網頁設計;利用Word製作簡單網頁,利用Front Page製作網頁;視覺與創意 ),網路信息的發布,網路信息的維護。
先修課程:計算機網路等。

22. 英語Ⅰ(1) (2)
本課程6學分,課內學時108,開設一學年。
本課程為公共英語課程。通過課程的學習,學生應能掌握1600左右的常用詞彙(包括入 學時要求掌握的600詞)和若干相關的常用片語及基礎語法知識;能夠聽懂發音清楚、語速較 慢的教學用語和日常生活用語,並能用英語進行簡單的日常交談;能夠讀懂所學詞彙和語法 范圍內的故事、短文及通知、便條等;能夠寫出簡短的私人信函,或用便條轉達具體信息。

統設服務課程:

1. 計算機入門及操作技能訓練
本實踐環節4學分,實驗36學時(2學分),開設一學期。
主要內容:計算機系統組成與基本工作原理,計算機的基本操作與維護(鍵盤和滑鼠使用, 中英文輸入,外設與主機的連接、配置與使用,計算機常規維護),操作系統使用(Window s95以上),字處理軟體使用(Word 97以上),計算機網路基本知識,Internet實用(瀏覽 器IE5.0、電子郵件Email使用)。

2. OFFICE辦公軟體
本實踐環節4學分,實驗45學時(2.5學分),開設一學期。
主要內容:字處理軟體Word (97以上)深入使用,電子表格處理軟體Excel (97以上)使 用,電子演示軟體Power Point (97以上)使用,OFFICE辦公軟體綜合使用訓練。

『伍』 c語言的先修課程有哪些

怎麼說呢,一般開始學習c語言都是從譚浩強的書開始的,這本書寫的很容易理解,想學好c語言看這本書就夠了。但是想成為軟體工程師可不是掌握一門語言就可以的!總之樓主先學好c語言,然後學好演算法(建議看《演算法導論》),這樣就可以向編程高手進階,最後再慢慢向軟體工程師的夢想靠近,加油喔

『陸』 c語言的基本課程是什麼

全書共12章,第1章計算機程序設計的含義,第2章C語言程序的基本結構,第3章C語言的基本數據類型與簡單I/0,第4章C語言的語句特徵,第5章函數,第6章變數的存儲屬性,第7章編譯預處理與工程,第8章C語言的數組及其應用,第9章指針變數及其屬性,第10章結構體、共用體數據及其應用,第11章C語言的文件I,0及其應用,第12章C語言的位運算與低級操作。
替你了,懶。

『柒』 大學c語言怎麼學

1.學C語言重要的是你的邏輯思維和堅持學習的恆心,學編程特別是語言就要多看,多思考,多練,也就是多敲代碼.
2.就C語言來說,是編程者應該好好學的一門語言,因為它是你日後要學的其他一些更高級的面向對象的編程語言的基礎,學好了C語言,日後學高端語言就相對容易一些,而且在學習C語言的同時你的邏輯思維也開始形成.總之他是你經常聽到的VB
C++
JAVA
.NET等等語言的一個基礎.
3.學習C在學校主要看你們那講師的水平了,有實際軟體開發經驗的老師會讓你聽的很輕松就理解了,要是只會照本喧照的老師那就會把其實不是太復雜的問題將的很復雜並難以理解(在傳統學校里是很常見的).其實C語言也並不是非常難學.如果你認真去學把該理解的東西理解了學好C是沒有問題的,3個月也夠了.
但是這種水平也只是說你把C語言基本學會了,對以後的學習打了個不錯的基礎.
4.如果你想找編程的工作向軟體開發的方向努力的話,那麼你應該有一個正確的明確的方向規劃.3
4個月把C語言的核心語法和指針
數組等學好
理解了,會用,然後對做些小的程序練習加以鞏固.然後隨著你學習的接觸你會學VB
SQL資料庫
ORACLE
C++
JAVA
JSP
ASP.NET
.NET等等現代所用的高級語言,工作中大都也是用這些高級的面向對象的語言在編程.
總之編程,編程,再編程...這就是訣竅!
對於初學者來說,自己寫程序有點兒困難,那就先按書上的例子來,一定要上機親手實踐,不管這個程序有多麼的簡單..
希望我的回答對你有幫助!

『捌』 學習C語言需要掌握哪些基本知識

1.入門程序

#include <stdio.h>
int main()
{
printf("Hello World!");
return 0;
}

2.數據類型

數據類型:

1.基本數據類型:

1.1. 整型:int 4個位元組

1.2. 字元型:char 1個位元組

1.3. 實型(浮點型)

  • 1.3.1.單精度型:float 4個位元組

  • 1.3.2.雙精度型:double 8個位元組

  • 2.構造類型:

    2.1.枚舉類型

    2.2.數組類型

    2.3.結構體類型

    2.4.共用體類型

    3.指針類型:

    4.空類型:

    3.格式化輸出語句

  • %d:十進制整數;

  • %c:單個字元;

  • %s:字元串;

  • %f:6位小數;

  • #include <stdio.h>

  • int main()

  • {

  • int age = 18;

  • float height = 1.85;

  • char unit = 'm';

  • printf("小明今年%d歲 ", age);

  • printf("小明身高%f%c ", height, unit);

  • printf("小明現在在慕課網上學習IT技術 ");

  • return 0;

  • }

  • 學好C++才是入職大廠的敲門磚! 當年要是有這課,我的C++也不至於這樣

    已失效

    4.常量

    值不發生改變的量成為常量;

    定義字元常量(注意後面沒有;)

  • #include <stdio.h>

  • #define POCKETMONEY 10 //定義常量及常量值

  • int main()

  • {

  • printf("小明今天又得到%d元零花錢 ", POCKETMONEY);

  • return 0;

  • }

  • 5.運算符

    5.1.算數運算符:+,-,*,/,%,++,--;前++/--,先運算,再取值.後++/--,先取值,再運算;

    5.2.賦值運算符:

    5.3.關系運算符;

    5.4.邏輯運算符;

    5.5.三目運算符:

  • 表達式1 ? 表達式2 : 表達式3;

  • 6.水仙花數計算

    輸出所有三位數的水仙花數字

    所謂「水仙花數」是指一個三位數,其各位數字立方和等於該數,如:153就是一個水仙花數,153=111+555+333。

  • #include <stdio.h>


  • int main()

  • {

  • //定義三位數num,個位數sd,十位數td,百位數hd

  • int num, sd, td, hd;

  • //循環所有三位數

  • for( num=100 ; num<1000 ; num++ )

  • {

  • //獲取三位數字num百位上的數字

  • hd = num/100 ;

  • //獲取三位數字num十位上的數字

  • td = num/10%10 ;

  • //獲取三位數字num個位上的數字

  • sd = num%10 ;

  • //水仙花數的條件是什麼?

  • if(num ==hd*hd*hd+td*td*td+sd*sd*sd )

  • {

  • printf("水仙花數字:%d ", num);

  • }

  • }

  • return 0;

  • }

  • 7.列印正三角形的*

  • #include <stdio.h>

  • int main()

  • {

  • int i, j, k;

  • for(i=1; i<5; i++)

  • {

  • /* 觀察每行的空格數量,補全循環條件 */

  • for( j=i ; j<5 ; j++ )

  • {

  • printf(" "); //輸出空格

  • }

  • /* 觀察每行*號的數量,補全循環條件 */

  • for( k=0 ; k<2*i-1 ; k++ )

  • {

  • printf("*"); //每行輸出的*號

  • }

  • printf(" "); //每次循環換行

  • }

  • return 0;

  • }

  • 8.臭名遠揚的goto語句

    很少使用

  • #include <stdio.h>

  • int main()

  • {

  • int sum = 0;

  • int i;

  • for(i=1; i<=10; i++)

  • {

  • printf("%d ", i);

  • if(i==3){

  • goto LOOP;//滿足條件就執行goto語句

  • }

  • }

  • //執行goto

  • LOOP:printf("結束for循環了...."); //請選擇合適位置添加標識符

  • return 0;

  • }

  • 9.形參與實參

    形參:形參是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳入的參數;

    實參:實參是在調用時傳遞該函數的參數。

    函數的形參和實參具有以下特點:

  • 形參只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。因此,形參只有在函數內部有效。函數調用結束返回主調函數後則不能再使用該形參變數。

  • 實參可以是常量、變數、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值等辦法使實參獲得確定值。

  • 在參數傳遞時,實參和形參在數量上,類型上,順序上應嚴格一致,否則會發生類型不匹配」的錯誤。

  • 10.函數返回值注意

    注意:void函數中可以有執行代碼塊,但是不能有返回值,另void函數中如果有return語句,該語句只能起到結束函數運行的功能。其格式為:return;

    11.遞歸

  • #include <stdio.h>


  • int getPeachNumber(int n) //這里要定義n,要不編譯器會報錯!

  • {

  • int num;

  • if(n==10)

  • {

  • return 1;

  • }

  • else

  • {

  • num = (getPeachNumber(n+1)+1)*2;

  • printf("第%d天所剩桃子%d個 ", n, num);

  • }

  • return num;

  • }

  • int main()

  • {

  • int num = getPeachNumber(1);

  • printf("猴子第一天摘了:%d個桃子。 ", num);

  • return 0;

  • }

  • 12.變數存儲類別 !

    12.1.生存周期劃分存儲方式

    C語言根據變數的生存周期來劃分,可以分為靜態存儲方式和動態存儲方式。

    靜態存儲方式:是指在程序運行期間分配固定的存儲空間的方式。靜態存儲區中存放了在整個程序執行過程中都存在的變數,如全局變數。

    動態存儲方式:是指在程序運行期間根據需要進行動態的分配存儲空間的方式。動態存儲區中存放的變數是根據程序運行的需要而建立和釋放的,通常包括:函數形式參數;自動變數;函數調用時的現場保護和返回地址等。

    12.2.存儲類型劃分

    C語言中存儲類別又分為四類:自動(auto)、靜態(static)、寄存器的(register)和外部的(extern) ;

  • 用關鍵字auto定義的變數為自動變數,auto可以省略,auto不寫則隱含定為「自動存儲類別」,屬於動態存儲方式。

  • 用static修飾的為靜態變數,如果定義在函數內部的,稱之為靜態局部變數;如果定義在函數外部,稱之為靜態外部變數。

  • 注意:靜態局部變數屬於靜態存儲類別,在靜態存儲區內分配存儲單元,在程序整個運行期間都不釋放;靜態局部變數在編譯時賦初值,即只賦初值一次;如果在定義局部變數時不賦初值的話,則對靜態局部變數來說,編譯時自動賦初值0(對數值型變數)或空字元(對字元變數)

  • 為了提高效率,C語言允許將局部變數的值放在CPU中的寄存器中,這種變數叫「寄存器變數」,用關鍵字register作聲明。

  • 注意:只有局部自動變數和形式參數可以作為寄存器變數;一個計算機系統中的寄存器數目有限,不能定義任意多個寄存器變數;局部靜態變數不能定義為寄存器變數。

  • 用extern聲明的的變數是外部變數,外部變數的意義是某函數可以調用在該函數之後定義的變數。

  • #includ <stdio.h>

  • //來源公眾號:C語言與CPP編程

  • int main()

  • {

  • //定義外部局部變數

  • extern int x;

  • return 0;

  • }

  • int x=100;

  • 13.內部函數外部函數 !

    在C語言中不能被其他源文件調用的函數稱為內部函數 ,內部函數由static關鍵字來定義,因此又被稱為靜態函數,形式為:

    static [數據類型] 函數名([參數])

    這里的static是對函數的作用范圍的一個限定,限定該函數只能在其所處的源文件中使用,因此在不同文件中出現相同的函數名稱的內部函數是沒有問題的。

    在C語言中能被其他源文件調用的函數稱為外部函數 ,外部函數由extern關鍵字來定義,形式為:

    extern [數據類型] 函數名([參數])

    C語言規定,在沒有指定函數的作用范圍時,系統會默認認為是外部函數,因此當需要定義外部函數時extern也可以省略。 extern可以省略; 14.數組 數組:一塊連續的,大小固定並且裡面的數據類型一致的內存空間, 數組的聲明:數據類型 數組名稱[長度n]

  • 數據類型 數組名稱[長度n] = {元素1,元素2,元素3,......};

  • 數據類型 數組名稱[] = {元素1,元素2,元素3,......};

  • 數類類型 數組名稱[長度n]; 數組名稱[0] = 元素1;數組名稱[1] = 元素2;...... 注意: 1、數組的下標均以0開始; 2、數組在初始化的時候,數組內元素的個數不能大於聲明的數組長度; 3、如果採用第一種初始化方式,元素個數小於數組的長度時,多餘的數組元素初始化為0; 4、在聲明數組後沒有進行初始化的時候,靜態(static)和外部(extern)類型的數組元素初始化元素為0,自動(auto)類型的數組的元素初始化值不確定。

  • 15.數組遍歷

  • #include <stdio.h>


  • int main()

  • {

  • int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

  • int i;

  • for(i=0;i<10;i++)

  • {

  • printf("%d ",arr[i]);

  • }

  • return 0;

  • }

  • 數組的冒泡排序

  • 冒泡排序的思想:相鄰元素兩兩比較,將較大的數字放在後面,直到將所有數字全部排序。

  • 字元串與數組

  • 在C語言中,是沒有辦法直接定義子字元串數據類型的,需使用數組來定義所要的字元串,形式如下:

  • char 字元串名稱[長度] = "字元串內容";

  • char 字元串名稱[長度] = {'字元串1','字元串2',....,'字元串n',''};

  • 注:

  • []中的長度可以省略不寫;

  • 採用第二種方式最後一個元素必須是'',表示結束;

  • 第二種方式不能寫中文!; 輸出字元串時,要使用:printf("%s",字元數組名);或puts(字元數組名);

  • 16.字元串函數

  • strlen(s):獲取字元串s的長度;

  • strcmp(s1,s2):比較字元串;比較的時候會把字元串轉換成ASCII碼再進行比較,返回結果為0表示s1和s2的ASCII碼值相等,返回結果為1表示s1比s2的ASCII碼大,返回結果為-1表示s1比s2的ACSII碼小;

  • strcpy(s1,s2):字元串拷貝;s2會取代s1中的內容;

  • strcat(s1,s2)將s2拼接到s1後面;注意:s1的length要足夠才可以!

  • atoi(s1)將字元串轉為整數!

  • 17.多維數組

    數據類型 數組名稱[常量表達式1]...[常量表達式n];

    多維數組的初始化與一維數組的初始化類似也是分兩種:

  • 數據類型 數組名稱[常量表達式1][常量表達式2]...[常量表達式n] = {{值1,..,值n},{值1,..,值n},...,{值1,..,值n}};

  • 數據類型 數組名稱[常量表達式1][常量表達式2]...[常量表達式n]; 數組名稱[下標1][下標2]...[下標n] = 值;

  • 多維數組初始化要注意以下事項:

  • 採用第一種始化時數組聲明必須指定列的維數。因為系統會根據數組中元素的總個數來分配空間,當知道元素總個數以及列的維數後,會直接計算出行的維數;

  • 採用第二種初始化時數組聲明必須同時指定行和列的維數。

  • 18.多維度數組的遍歷

    使用嵌套循環

    注意:多維數組的每一維下標均不能越界!

    19.結構體

    C 數組允許定義可存儲相同類型數據項的變數,結構是 C 編程中另一種用戶自定義的可用的數據類型,它允許您存儲不同類型的數據項。

    結構用於表示一條記錄,假設您想要跟蹤圖書館中書本的動態,您可能需要跟蹤每本書的下列屬性:

  • Title

  • Author

  • Subject

  • Book ID

  • 定義結構

    為了定義結構,您必須使用 struct 語句。struct 語句定義了一個包含多個成員的新的數據類型,struct 語句的格式如下:

  • struct tag {

  • member-list

  • member-list

  • member-list

  • ...

  • } variable-list ;

  • tag 是結構體標簽。

    member-list 是標準的變數定義,比如 int i; 或者 float f,或者其他有效的變數定義。

    variable-list 結構變數,定義在結構的末尾,最後一個分號之前,您可以指定一個或多個結構變數。下面是聲明 Book 結構的方式:

  • struct Books

  • {

  • char title[50];

  • char author[50];

  • char subject[100];

  • int book_id;

  • } book;

  • 在一般情況下,tag、member-list、variable-list 這 3 部分至少要出現 2 個。以下為實例:

  • //此聲明聲明了擁有3個成員的結構體,分別為整型的a,字元型的b和雙精度的c

  • //同時又聲明了結構體變數s1

  • //這個結構體並沒有標明其標簽

  • struct

  • {

  • int a;

  • char b;

  • double c;

  • } s1;


  • //此聲明聲明了擁有3個成員的結構體,分別為整型的a,字元型的b和雙精度的c

  • //結構體的標簽被命名為SIMPLE,沒有聲明變數

  • struct SIMPLE

  • {

  • int a;

  • char b;

  • double c;

  • };

  • //用SIMPLE標簽的結構體,另外聲明了變數t1、t2、t3

  • struct SIMPLE t1, t2[20], *t3;


  • //也可以用typedef創建新類型

  • typedef struct

  • {

  • int a;

  • char b;

  • double c;

  • } Simple2;

  • //現在可以用Simple2作為類型聲明新的結構體變數

  • Simple2 u1, u2[20], *u3;

  • 訪問結構成員

    為了訪問結構的成員,我們使用成員訪問運算符(.)。成員訪問運算符是結構變數名稱和我們要訪問的結構成員之間的一個句號。您可以使用 struct 關鍵字來定義結構類型的變數。下面的實例演示了結構的用法:

  • #include <stdio.h>

  • #include <string.h>

  • //來源公眾號:C語言與CPP編程


  • struct Books

  • {

  • char title[50];

  • char author[50];

  • char subject[100];

  • int book_id;

  • };


  • int main( )

  • {

  • struct Books Book1; /* 聲明 Book1,類型為 Books */

  • struct Books Book2; /* 聲明 Book2,類型為 Books */


  • /* Book1 詳述 */

  • strcpy( Book1.title, "C Programming");

  • strcpy( Book1.author, "Nuha Ali");

  • strcpy( Book1.subject, "C Programming Tutorial");

  • Book1.book_id = 6495407;


  • /* Book2 詳述 */

  • strcpy( Book2.title, "Telecom Billing");

  • strcpy( Book2.author, "Zara Ali");

  • strcpy( Book2.subject, "Telecom Billing Tutorial");

  • Book2.book_id = 6495700;


  • /* 輸出 Book1 信息 */

  • printf( "Book 1 title : %s ", Book1.title);

  • printf( "Book 1 author : %s ", Book1.author);

  • printf( "Book 1 subject : %s ", Book1.subject);

  • printf( "Book 1 book_id : %d ", Book1.book_id);


  • /* 輸出 Book2 信息 */

  • printf( "Book 2 title : %s ", Book2.title);

  • printf( "Book 2 author : %s ", Book2.author);

  • printf( "Book 2 subject : %s ", Book2.subject);

  • printf( "Book 2 book_id : %d ", Book2.book_id);


  • return 0;

  • }

  • 學好C++才是入職大廠的敲門磚! 當年要是有這課,我的C++也不至於這樣

    已失效

    20.共用體

    共用體是一種特殊的數據類型,允許您在相同的內存位置存儲不同的數據類型。您可以定義一個帶有多成員的共用體,但是任何時候只能有一個成員帶有值。共用體提供了一種使用相同的內存位置的有效方式。

  • #include <stdio.h>

  • #include <string.h>


  • union Data

  • {

  • int i;

  • float f;

  • char str[20];

  • };


  • int main( )

  • {

  • union Data data;


  • printf( "Memory size occupied by data : %d ", sizeof(data));


  • return 0;

  • }

  • 21.指針

  • #include <stdio.h>


  • int main ()

  • {

  • int var = 20; /* 實際變數的聲明 */

  • int *ip; /* 指針變數的聲明 */


  • ip = &var; /* 在指針變數中存儲 var 的地址 */


  • printf("Address of var variable: %p ", &var );


  • /* 在指針變數中存儲的地址 */

  • printf("Address stored in ip variable: %p ", ip );


  • /* 使用指針訪問值 */

  • printf("Value of *ip variable: %d ", *ip );


  • return 0;

  • }

  • 22.文件讀寫

    寫入文件

  • #include <stdio.h>


  • int main()

  • {

  • FILE *fp = NULL;


  • fp = fopen("/tmp/test.txt", "w+");

  • fprintf(fp, "This is testing for fprintf... ");

  • fputs("This is testing for fputs... ", fp);

  • fclose(fp);

  • }

  • 讀取文件

  • #include <stdio.h>


  • int main()

  • {

  • FILE *fp = NULL;

  • char buff[255];


  • fp = fopen("/tmp/test.txt", "r");

  • fscanf(fp, "%s", buff);

  • printf("1: %s ", buff );


  • fgets(buff, 255, (FILE*)fp);

  • printf("2: %s ", buff );


  • fgets(buff, 255, (FILE*)fp);

  • printf("3: %s ", buff );

  • fclose(fp);


  • }

  • C語言與C++學習路線

    23.排序演算法

    十大經典排序演算法(動態演示+代碼)

    24.查找演算法

    九種查找演算法

    25.面試知識

    C語言與C++面試知識總結

    26.字元串操作

    字元串操作的全面總結

    27.C語言常用標准庫解讀

    C語言常用標准庫解讀

    28. C語言最常用的貪心演算法

    C語言最常用的貪心演算法就這么被攻克了

    29. 常見的C語言內存錯誤及對策

    常見的C語言內存錯誤及對策

    30. C語言實現面向對象的原理

    C語言實現面向對象的原理

    31. C語言/C++內存管理

    看完這篇你還能不懂C語言/C++內存管理?

    32. 再談C語言指針

    再談指針:大佬給你撥開 C 指針的雲霧

    C語言函數指針之回調函數

    C語言指針詳解(文末有福利)

    33. C語言預處理命令

    長文詳解:C語言預處理命令

    34. C語言高效編程與代碼優化

    C語言高效編程與代碼優化

    35. C語言結構體

    C語言之結構體就這樣被攻克了!值得收藏!

    36. 原碼, 反碼, 補碼 詳解

    原碼, 反碼, 補碼 詳解

    37. C語言宏定義

    簡述C語言宏定義的使用

    38. c語言之共用體union、枚舉、大小端模式

    c語言之共用體union、枚舉、大小端模式