1 //C語言學習筆記 2 第一講 C語言概述 3 第二講 基本編程知識 4 第三講 運算符和表達式 5 第四講 流程控制 6 第五講 函數 7 第六講 數組 8 第七講 指針 9 第八講 變量的做用域和存儲方式 10 第九講 拓展類型 11 第十講 專題: 12 字符串的處理 13 進制轉換 14 補碼 15 動態內存分配 16 綜合應用:鏈表的使用 17 18 19 1、C語言概述 20 1.爲何要學習C語言 21 1). C的起源和發展 22 機器語言->彙編語言->高級語言 23 機器語言:0000 0001 1101 10000 執行速度最快 24 彙編語言:ADD AX,BX 25 高級語言:a+b 速度最慢 26 高級語言->結構化思想 {C、Basic、Fortan、Pascal} 27 ->面向對象思想 {JAVA、C++、C#、Algo} 28 發展: C->C++->JAVA、C# 29 三大操做系統 Windows 內核C、C++ 30 unix系統 內核C 穩定 31 linux系統 內核C 穩定 32 硬件由操做系統控制 33 34 2). C的特色 35 優勢: 代碼量小、速度快、功能強大(可訪問硬件) 36 缺點: 危險性高、開發週期長、可移植性低 37 行業需求: 38 C/C++、JAVA、C# 39 40 3). C的應用領域 41 系統軟件開發: 42 操做系統:Windows、Linux、Unix 43 驅動程序:主板驅動、顯卡驅動、攝像頭驅動 44 數據庫:DB二、Oracle、Sql Server 45 應用軟件開發: 46 辦公軟件:WPS、OFFICE 47 圖形圖像多媒體:ACDsee、PhotoShop、MediaPlayer 48 嵌入式軟件開發:智能手機、掌上電腦 49 遊戲開發:2D、3D遊戲開發 50 51 4). C的重要性 52 最重要的系統都是由C編寫的 53 一個合格黑客必須掌握的語言 —>訪問內存感染 54 全部大學工科和理科學生必修課程 55 任何一個想要終身從事程序設計和開發人員必須熟練掌握的語言 56 大企業、外企招聘程序員必考語言 57 爲學習數據結果、C++、java、C#奠基基礎 58 59 /*入門最基本的方法就是從C語言入手 60 當你成爲C語言高手,那麼你就很容易進入到操做系統的平臺裏去; 61 當你進入到操做系統的平臺裏去實際作程序時,就會懂得調試; 62 當你懂得調試的時候,你就會發現能垂手可得地瞭解到整個平臺的架構。 63 這時候,計算機基本上一切都在你的掌握之中了,沒有什麼東西能逃出 64 你的手掌心。 65 ————《編程箴言》梁肇新*/ 66 67 68 2.怎樣去學習C語言 69 途徑:多思考原理和思路,多上機練習 70 目標:看懂程序,調試程序,自學能力 71 練習:大量試錯,總結積累 72 參考資料 73 譚浩強《C語言程序設計》 74 《C primer Plus》郵電 系統學習語法 75 《C和指針》《C專家編程》《C陷阱與缺陷》 76 彙編語言 王爽 77 78 3.學習的目標 79 瞭解程序語言及發展歷史 80 熟練掌握C語言的語法規則 81 掌握簡單的算法 82 理解面向過程的思想,有助於對面向對象思想的學習 83 能看懂程序,會調試程序,會分解問題 84 爲學習C++、數據結構、C#、java打下基礎 85 86 4.常見問題答疑 87 1.學習JAVA爲何建議先學C語言 88 學C就是學JAVA,由於C緣由至少80%的語法知識都被繼承過來。 89 C是面向過程語言的表明,學好C有助學習JAVA中面向對象思想。 90 學好C中的指針是理解JAVA中引用的基礎。 91 92 2.英語和數學很差能學好C嘛 93 英語 不懂英語對學習編程毫無影響,但懂會學得更快。 94 數學 只有研究高深算法及專業課題才須要專業的數學知識。 95 96 5.課程計劃 十講23課時 97 6.例子 一元二次方程*/ 98 99 /* VC操做流程 100 File->new->C++Source File->name */ 101 102 //Hello World 103 #include<stdio.h> 104 int main() 105 { 106 print("Hello World") ; 107 return 0 ; 108 } 109 110 //32個關鍵字 111 auto break case char const 112 continue default do double else 113 enum extern float for goto 114 if int long register return 115 short signed sizeof static struct 116 switch typedef unsigned union void 117 volatile while 118 119 //一元二次方程詳解 120 //ax^2+bx+c=0 121 /*變量a、b、c 122 求b^2-4ac */ 123 #include<stdio.h> 124 int main() 125 { 126 //把三個係數保存到計算機中 127 int a = 1 ; //"="不表示相等,表示賦值 128 int b = 2 ; 129 int c = 3 ; 130 double delta ; //delta存放的是b*b-4*a*c 131 double x1 ; //存放一元二次方程的其中一個解 132 double x2 ; //存放一元二次方程的其中一個解 133 //定義delta 134 delta = b*b -4*a*c ; 135 136 if(delta>0) 137 { 138 //兩個解 139 x1=(-b + sqrt(delta)) / (2*a); 140 x2=(b + sqrt(dalta))/ (2*a) ; 141 printf("該一元二次方程有兩個解,x1=%f,x2=%f\n",x1,x2) ; 142 } 143 else if(delta ==0) 144 { 145 //惟一解 146 x1 = (-b) / (2*a) ; 147 x2 = x1 ; 148 printf("該一元二次方程只有一個解,x1=x2=%f\n",x1,x2) ; 149 } 150 else 151 { 152 //無解 153 printf("該方程無解") ; 154 } 155 156 return 0 ; 157 } 158 159 //VC++6.0使用詳解 160 File->New 161 ->File->C++ Source->定義名字,放置位置 162 #include<stdio.h> 163 int main() 164 { 165 printf("Hello World") ; 166 printf("Good Moring") ; 167 return 0 ; 168 } 169 170 //要運行第二個程序,點選Close Workspace,選擇Close並無完全關閉 171 //.cpp爲代碼源文件 172 //時刻記住,寫完一步就要保存,Ctrl + S 保存 173 //代碼規範 養成習慣