本文目錄一覽:
哪能找到石油大學 曾怡教授C語言的ppt? 好心人發到這個郵箱liu323121@126.com,加分
油大學曾怡副教授的C語言視頻講座,和譚浩強寫的《C程序設計》教的一樣。
簡介:
C程序設計視頻教程(曾怡):本套視頻教程由曾怡副教授講解,使用教材為:《C程序設計》 譚浩強 清華大學出版社出版。是難得的C語言學習視頻教程。全程共30講,每講45分鐘左右,CSF視頻格式。講課內容如下:
第一講 第一章 C語言概述
第二講 第二章 程序的靈魂—演算法
第三講 第三章 數據類型、運算符與表達式
第四講 第三章 數據類型、運算符與表達式
第五講 第三章 數據類型、運算符與表達式
第六講 第三章 數據類型、運算符與表達式
第四章 最簡單的C程序設計—順序程序設計
第七講 第四章 最簡單的C程序設計—順序程序設計
第八講 第四章 最簡單的C程序設計—順序程序設計
第九講 第五章 選擇結構的程序設計
第十講 第五章 選擇結構的程序設計
第十一講 第五章 選擇結構的程序設計
第十二講 第六章 循環結構程序設計
第十三講 第六章 循環結構程序設計
第十四講 第六章 循環結構程序設計
第十五講 第六章 循環結構程序設計
第七章 數組
第十六講 第七章 數組
第十七講 第七章 數組
第十八講 第七章 數組
第十九講 第七章 數組
第二十講 第七章 數組
第八章 函數
第二十一講 第八章 函數
第二十二講 第八章 函數
第二十三講 第八章 函數
第二十四講 第十章 指針
第二十五講 第十章 指針
第二十六講 第十章 指針
第二十七講 第十章 指針
第十一章 結構體
第二十八講 第十一章 結構體
複習總結第一講
複習總結第二講
c語言教程的目錄
第0章從零開始
0.1為什麼要用C
0.2ANSIC標準
0.3從C到C++
0.4從C和C++到Java
第1章C語言概述
第1章 C語言概述
1.1 C語言發展簡史
1.2 C語言的特點
1.3 簡單C語言程序舉例
1.4 C語言程序的組成與結構
1.5 C語言程序的開發步驟
小結
習題
第2章 演算法與程序設計基礎
2.1 演算法概述
2.1.1 演算法的概念
2.1.2 演算法的特徵
2.2 演算法的常用表示方法
2.2.1 自然語言
2.2.2 流程圖
2.2.3 N—S流程圖
2.3 程序設計典型演算法
2.4 結構化程序設計方法
小結
習題
第3章 數據類型、運算符與表達式
3.1 C語言的基本符號
3.1.1 標識符
3.1.2 常量
3.1.3 變數
3.1.4 關鍵字
3.2 C語言的數據類型
3.2.1 整型數據
3.2.2 實型數據
3.2.3 字元型數據
3.3 運算符和表達式
3.3.1 算術運算符和算術表達式
3.3.2 賦值運算符和賦值表達式
3.3.3 逗號運算符和逗號表達式
3.4 數據類型轉換
3.4.1 不同數據類型的數據間的混合運算
3.4.2 強制類型轉換
3.5 自增運算和自減運算
3.6 位運算
小結
習題
第4章 數據的輸入和輸出
4.1 數據的輸出
4.1.1 格式輸出函數printf
4.1.2 字元輸出函數putchar
4.2 數據的輸入
4.2.1 格式輸入函數scanf
4.2.2 字元輸入函數getchar
4.3 應用舉例
小結
習題
第5章 選擇結構
5.1 關係運算符和關係表達式
5.1.1 關係運算符
5.1.2 關係表達式
5.2 邏輯運算符和邏輯表達式
5.2.1 邏輯運算符
5.2.2 邏輯表達式
5.3 選擇語句
5.3.1 if語句
5.3.2 if語句的嵌套
5.3.3 switch語句
5.4 條件運算符和條件表達式
5.5 應用舉例
小結
習題
第6章 循環結構
6.1 goto語句與標號
……
第7章 數 組
第8章 函數
第9章 指針
第10章 結構體與共用體
第11章 文件
第12章 面向對象程序設計與C++基礎
第13章 數據結構基礎
附錄A C語言的關鍵字
附錄B 雙目算術運算中兩邊運算類型轉換規律
附錄C 運算符的優先順序和結合性
附錄D 常用字元與ASCII碼對照表
附錄E 常用庫函數
參考文獻
C語言,高級編程
呵呵,這位兄台很像我前幾個月的樣子。學c以前覺得c應該什麼都能實現。可是能學完發現自己離windows還有很遠的距離。不過我現在不這麼想了。開發平台不是問題所在。其實就像上面那位兄台所說得C只是一個工具。學會了c就相當於會用了一個工具。而真正的學習才剛剛開始。一個計算機的體系是與很多東西組成的。想寫出很好程序就要知道怎麼用好自己的這支筆。下面是我對計算機體系的一點淺顯的認識:
1、計算機組成原理。這個就不多說了,學編成的連我們的勞動對象都不清楚那還玩什麼啊?
2、數據結構和演算法。其實所謂的程序就是對數據進行處理,而處理的數據當然要有存儲的方式,而應對這些數據存儲的方式應運而生了演算法。也就是處理問題的方法。這是真正編程的靈魂。十分重要。
3、操作系統。學完了上說的那些東西你還會認為操作系統很神秘。那我們就來親手掀開他神秘的面紗,知道操作系統都為我們做了些什麼是一件很令人愉快的事。
4、編譯原理。這門課有點難度,不過也很重要,其中有很多思維方式需要掌握,不多說了,看了就知道了。
懂了上面我說的這些東西,我想你對計算機程序設計會有一種新的認識。可千萬不要被嚇倒了哦。每個出色的程序員都是這麼混出來的。為成為一名優秀的程序員而努力吧!
求C語言教程
我給你電子文檔筆記吧~~
複製來的….
第一章 概述
1. C語言的特點
①語言簡潔、緊湊,使用方便、靈活。共有32個關鍵字,9種控制語句。
②運算符豐富,公有34種運算符。
③數據結構豐富,數據類型有:整型、實型、字元型、數組、指針、結構體、共用體等。
④具有結構化的控制語句(如if…else、while、do…while、switch、for)
⑤語法限制不太嚴格,程序設計自由度大。
⑥允許直接訪問物理地址,能進行位(bit)操作,可以直接對硬體操作。
⑦生成目標代碼質量高,程序執行效率高。
⑧可移植性好。
2. C語言的用途
C雖不擅長科學計算和管理領域,但對操作系統和系統實用程序以及對硬體進行操作方面,C有明顯的優勢。現在很多大型應用軟體也用C編寫。
Top of Page
第二章 數據類型、運算符與表達式
1. C的數據類型
C的數據類型包括:整型、字元型、實型或浮點型(單精度和雙精度)、枚舉類型、數組類型、結構體類型、共用體類型、指針類型和空類型。
2. 常量與變數
常量其值不可改變,符號常量名通常用大寫。變數其值可以改變,變數名只能由字母、數字和下劃線組成,且第一個字元必須為字母或下劃線。否則為不合法的變數名。變數在編譯時為其分配相應存儲單元。
3. 整型數據
整型常量的表示方法:十進位不用說了,八進位以0開頭,如0123,十六進位以0x開頭,如0x1e。
整型變數分為:基本型(int)、短整型(short int)、長整型(long int)和無符號型。不同機器上各類數據所佔內存位元組數不同,一般int型為2個位元組,long型為4個位元組。
4. 實型數據
實型常量表示形式:十進位形式由數字和小數點組成(必須有小數點),如:0.12、.123、123
0.0等。指數形式如123e3代表123×10的三次方。
實型變數分為單精度(float)和雙精度(double)兩類。在一般系統中float型佔4位元組,7位有效數字,double型佔8位元組,15~16位有效數字。
5. 字元型數據
字元變數用單引號括起來,如’a’,’b’等。還有一些是特殊的字元常量,如’\n’,’\t’等。分別代表換行和橫向跳格。
字元變數以char 來定義,一個變數只能存放一個字元常量。
字元串常量是由雙引號括起來的字元序列。這裡一定要注意’a’和”a”的不同,前者為字元常量,後者為字元串常量,c規定:每個字元串的結尾加一個結束標誌”,實際上”a”包含兩個字元:’a’和”。
6. 數值型數據間的混合運算
整型、字元型、實型數據間可以混合運算,運算時不同類型數據要轉換成同一類型再運算,轉換規則:
char,short – int – unsigned – long – double – float
7. 運算符和表達式
c運算符包括:
算數運算符( + – * / % )
關係運算符( == = = != )
邏輯運算符( ! || )
位運算符( ~ | ^ )
賦值運算符( = )
條件運算符( ? : )
逗號運算符( , )
指針運算符( * )
求位元組數( sizeof )
強制類型轉換(類型)
分量運算符( . – )
下標運算符( [ ] )
其它運算符( 如函數調用運算符( ) )
自增自減運算符( ++ — )注意:++i和i++的不同之處,++i使用i之前先使i加1,i++使用i之後,使i加1。
逗號表達式的求解過程:先求解表達式1,再求解表達式2,整個表達式的值是表達式2的值。
Top of Page
第三章 最簡單的c程序設計
1.c的9種控制語句:
if() ~ else~
for()~
while()~
do~while()
continue
break
switch
goto
return
程序的三種基本結構:順序結構,選擇結構,循環結構
2.數據輸出
c語言不提供輸入輸出語句,輸入輸出操作是由c的庫函數完成。但要包含頭文件stdio.h。
putchar( ) 向終端輸出一個字元
printf( )的格式字元:
① d格式符 用來輸出十進位整數
%d 按整型數據的實際長度輸出
%md 使輸出長度為m,如果數據長度小於m,則左補空格,如果大於m,則輸出實際長度
%ld 輸出長整型數據
② o格式符 以八進位形式輸出整數
③ x格式符 以十六進位形式輸出整數
④ u格式符 用來輸出unsigned型數據,以十進位形式輸出
⑤ c格式符 用來輸出一個字元
⑥ s格式符 輸出一個字元串
%s 輸出實際長度字元串
%ms 輸出的串佔m列,如果串長度小於m,左補空格,如果大於m,實際輸出
%-ms輸出的串佔m列,如果串長度小於m,右補空格,
%m.ns 輸出佔m列,但只取字元串中左端n個字元並靠右對齊
%-m.ns m、n含義同上,靠左對齊,如果nm,則m自動取n值
⑦ f格式符 以小數形式輸出實數
%f 整數部分全部輸出,小數部分輸出6位
%m.nf 輸出數據共佔m列,其中有n位小數。如果數值長度小於m,左補空格
%-m.nf 同上,右補空格
⑧ e格式符 以指數形式輸出實數
%e 系統指定6位小數,5位指數(e+002 )
⑨ g格式符 輸出實數,根據數值大小,自動選f格式或e格式
3.數據輸入
getchar( ) 從終端輸入一個字元
scanf( 格式控制,地址列表) 標準C scanf中不使用%u,對於unsigned型數據,以%d或%o或%x輸入。%後的*,用來跳過它相應的數據。輸入數據時不能規定精度如scanf( “%7.2f”, a );是不合法的。
Top of Page
第四章 邏輯運算和判斷選取控制
1. 關係運算符:
c提供6種關係運算符( = = == != )前四種優先順序高於後兩種。
2. If語句
C提供了三種形式的if語句
If(表達式) 語句
If(表達式) 語句1 else 語句2
If(表達式1) 語句1
Else if(表達式2) 語句2
…
else 語句n
3. 條件運算符
(ab)?a:b 條件為真,表達式取值a,否則取值b
4. Switch語句
Switch(表達式)
{
case 常量表達式1:語句1; break;
case 常量表達式2:語句2; break;
…
case 常量表達式n:語句n; break;
default :語句n+1;
}
Top of Page
第五章 循環控制
1. 幾種循環語句
goto語句(現已很少使用)
while語句 先判斷表達式後執行語句
do-while語句 先執行語句後判斷表達式
for語句
2. Break語句和continue語句
Break語句用於跳出循環,continue用於結束本次循環。
Top of Page
第六章 數組
1. 一維數組
c規定只有靜態存儲(static)和外部存儲(extern)數組才能初始化。給數組初始化時可以不指定數組長度。
2. 二維數組
3. 字元數組
部分字元串處理函數
puts(字元數組) 將一個字元串輸出到終端。
gets(字元數組) 從終端輸入一個字元串到字元數組,並且得到一個函數值,為該字元數組的首地址
strcat(字元數組1,字元數組2) 連接兩個字元數組中的字元串,數組1必須足夠大。
Strcpy(字元數組1,字元串2) 將字元串2拷貝到字元數組1中。
Strcmp(字元串1,字元串2) 比較字元串,相等返回0,字元串1字元串2,返回正數,小於返回負數。
Strlen(字元數組) 求字元串長度。
Strlwr( 字元串) 將字元串中的大寫字母轉換成小寫
Strupr( 字元串) 將字元串中的小寫字母轉換成大寫
以上是一些比較常用的字元串處理函數。
Top of Page
第七章 函數
1. 關於形參和實參的說明
① 在函數被調用之前,形參不佔內存
② 實參可以是常量、變數或表達式
③ 必須指定形參的類型
④ 實參與形參類型應一致
⑤ 實參對形參的數據傳遞是”值傳遞”,即單向傳遞
2. 函數返回值
如果想讓函數返回一個值,在函數中就要用return語句來獲得,在定義函數時也要對函數值指定類型,如果不指定,默認返回整型。
3. 函數調用
1)注意在函數調用時實參和形參的個數、類型應一一對應。對實參表求值的順序是不確定的,有的系統按自左至右,有的系統則按自右至左的順序。這一點要注意。
2)函數調用的方式:函數語句,函數表達式,函數參數
3)如果主調函數和被調函數在同一文件中,並且主調函數在前,那麼一般要在主調函數中對被調函數進行說明。除非:(1)被調函數的返回值類型為整型或字元型(2)被調函數出現在主調函數之前。
4)對函數的說明和定義是不同的,定義是指對函數功能的確立,包括指定函數名,函數值類型,形參及其類型、函數體等。說明則只是對已定義的函數返回值類型進行說明,只包括函數名、函數類型以及一個空的括弧,不包括形參和函數體。
5)c語言允許函數的遞歸調用(在調用一個函數的過程中又出現直接或間接的調用該函數本身)。
4. 數組作為函數參數
1)數組元素作為函數參數 和一般變數相同
2)數組名作參數應該在主調和被調函數分別定義數組,形參數組的大小可以不定義。注意:數組名作參數,不是單向傳遞。
3)多維數組作參數,在被調函數中對形參數組定義時可以省略第一維的大小說明,但不能省略第二維或更高維的說明。
5. 局部變數和全局變數
從變數作用域角度分,變數可分為局部變數和全局變數。
1)內部變數(局部變數)
在一個函數內定義,只在函數範圍內有效的變數。
2)外部變數(全局變數)
在函數外定義,可以為本文件其它函數所共用,有效範圍從定義變數的位置開始
到本文件結束。建議盡量少使用全局變數,因為它在程序全部執行過程中都佔用
資源,而且使函數的通用性降低了。如果在定義外部變數之前的函數要想使用該
外部變數,則應在該函數中用extern作外部變數說明。
6. 動態存儲變數與靜態存儲變數
從變數值存在的時間(生存期)角度來分,可分為靜態存儲變數和動態存儲變數。靜態存儲指在程序運行期間給變數分配固定的存儲空間,動態存儲指程序運行期間根據需要動態的給變數分配存儲空間。
C語言中,變數的存儲方法分為兩大類:靜態存儲類和動態存儲類,具體包括:自動的(auto),靜態的(static),寄存器的(register),外部的(extern)。
1) 局部變數的存儲方式
函數中的局部變數如不作專門說明,都之auto的,即動態存儲的,auto可以省略。局部變數也可以定義為static的,這時它在函數內值是不變的。靜態局部變數如不賦初值,編譯時系統自動賦值為0,動態局部變數如不賦初值,則它的值是個不確定的值。C規定,只有在定義全局變數和局部靜態變數時才能對數組賦初值。為提高執行效率,c允許將局部變數值放在寄存器中,這種變數叫register變數,要用register說明。但只有局部動態變數和形式參數可以作為register變數,其它不行。
2) 全局變數的存儲方式
全局變數在函數外部定義,編譯時分配在靜態存儲區,可以在程序中各個函數所引用。多個文件的情況如何引用全局變數呢?假如在一個文件定義全局變數,在別的文件引用,就要在此文件中用extern對全局變數說明,但如果全局變數定義時用static的話,此全局變數就只能在本文件中引用了,而不能被其它文件引用。
3) 存儲類別小結
從作用域角度分,有局部變數和全局變數
局部變數:自動變數,即動態局部變數(離開函數,值就消失)
靜態局部變數(離開函數,值仍保留)
寄存器變數(離開函數,值就消失)
(形參可定義為自動變數和寄存器變數)
全局變數:靜態全局變數(只限本文件引用)
全局變數(允許其它文件引用)
從存在的時間分,有靜態存儲和動態存儲
動態存儲:自動變數(本函數內有效)
寄存器變數(本函數內有效)
形參
靜態存儲:靜態局部變數(函數內有效)
靜態全局變數(本文件內有效)
全局變數(其它文件可引用)
從變數值存放的位置分
靜態存儲區:靜態局部變數
靜態全局變數
全局變數
動態存儲區:自動變數和形參
寄存器內:寄存器變數
7. 內部函數和外部函數
內部函數:只能被本文件中的其它函數調用,定義時前加static,內部函數又稱靜態函數。
外部函數:可以被其它文件調用,定義時前加extern,如果省略,則隱含為外部函數,在需要調用此函數的文件中,一般要用extern說明。
Top of Page
第八章 預編譯處理
c編譯系統在對程序進行通常的編譯之前,先進行預處理。c提供的預處理功能主要有以下三種:1)宏定義 2)文件包含 3)條件編譯
1. 宏定義
不帶參數的宏定義
用一個指定的標識符來代表一個字元串,形式:#define 標識符 字元串
幾點說明:
1) 宏名一般用大寫
2) 宏定義不作語法檢查,只有在編譯被宏展開後的源程序時才會報錯
3) 宏定義不是c語句,不在行末加分號
4) 宏名有效範圍為定義到本源文件結束
5) 可以用#undef命令終止宏定義的作用域
6) 在宏定義時,可以引用已定義的宏名
帶參數的宏定義
定義形式:#define 宏名(參數表) 字元串
這和函數有些類似,但他們是不同的:
1) 函數調用時,先求實參表達式值,再代入形參,而宏只是簡單替換,並不求值
2) 函數調用是在程序運行時分配內存的,而宏展開時並不分配內存,也沒有返回值的概念
3) 對函數中的實參和形參都要定義類型,而且要求一致,宏名無類型,其參數也沒有類型。
4) 函數只有一個返回值,而宏可以得到幾個結果
5) 宏替換不佔運行時間,只佔編譯時間,而函數調用占運行時間
2. 文件包含處理
#include “文件1” 就是將文件1的全部內容複製插入到#include位置,作為一個源文件進行編譯。
在#include命令中,文件名可以用” “也可以用 ,假如現在file1.c中包含file2.h文件,” “表示系統先在file1.c所在目錄中找file2.h,如果找不到,再按系統指定的標準方式檢索目錄, 表示系統直接按指定的標準方式檢索目錄。所以用” “保險一點。
3. 條件編譯
條件編譯指不對整個程序都編譯,而是編譯滿足條件的那部分。條件編譯有以下幾種形式:
1)#ifdef 標識符
程序段1
#else
程序段2
#endif
它的作用:當標識符在前面已經被定義過(一般用#define),則對程序段1編譯,否則對程序段2編譯。
2)#ifndef 標識符
程序段1
#else
程序段2
#endif
它的作用和#ifdef相反,當標識符沒被定義過,對程序段1編譯,否則對程序段2編譯。
3)#if 表達式
程序段1
#else
程序段2
#endif
它的作用:當表達式值為真(非0)時,對程序段1編譯,否則對程序段2編譯。
Top of Page
第九章 指針
指針說白了就是地址。指針變數就是用來存放指針(地址)的變數。
1. 變數的指針和指向變數的指針變數
讀起來很拗口,說白了就是變數的地址和用來存放變數地址的地址變數。因為一個變數在編譯的時候系統要為它分配一個地址,假如再用一個變數來存放這個地址,那麼這個變數就叫做指向變數的指針變數,也就是用來存放變數地址的這麼一個變數。所謂”指向”就是指存放××的地址,如指向變數的指針變數,”指向”就是指用來存放變數的地址,再如指向數組的指針變數,”指向”就是指存放數組的地址。只要理解了這個,指針也就不難了。另外,還有指向字元串的指針變數,指向函數的指針變數,指向指針的指針變數等。
1) 指針變數的定義
形式:類型標識符 *標識符 如:int *pointer;
要注意兩點:*表示pointer是個指針變數,在用這個變數的時候不能寫成*pointer, *pointer是pointer指向的變數。一個指針變數只能指向同一個類型的變數。如上面
pointer只能指向int型變數。
2)指針變數的引用
兩個有關的運算符:
取地址運算符 a 就代表變數a的地址
* 指針運算符 *a 就代表變數a的值
2. 數組的指針和指向數組的指針變數
數組的指針指數組的起始地址,數組元素的指針指數組元素的地址。
1)指向數組元素的指針變數的定義與賦值
定義和指向變數的指針變數定義相同,c規定數組名代表數組的首地址,即第一個數組元素地址。
2)通過指針引用數組元素
我們通常引用數組元素的形式是a[i],如果用指針可以這樣引用,*(a+i),或定義一個指針變數p,將數組a的首地址賦給p,p=a;然後用*(p+i)引用。
注意:指針變數p指向數組a首地址,則p++指向數組a的下一元素地址,即a[1]的地址。
3)數組名作函數參數
形參數組和實參數組之間並不是值傳遞,而是共用同一段地址,所以在函數調用過程中如果形參的值發生變化,則實參的值也跟著變化。
4)指向多維數組的指針和指針變數
以二維數組為居多。假設定義了一個二維數組a[3][4],那麼
a代表整個二維數組的首地址,也代表第0行的首地址,同時也是第0行第0列的元素的首地址。a +0和a[0]代表第0行首地址,a+1和a[1]代表第一行的首地址。
假設a是一個數組的首地址,那麼如果a是一維的,a+I代表第I個元素的地址,如果a是二維的,則a+I代表第I行的首地址。
那麼第一行第二列的元素地址如何表示呢?a[1]+2或a[1][2]或*(a+1)+2。
我們只要記住:在二維數組中a代表整個數組的首地址,a[I]代表第I行的首地址,a[I]與*(a+I)等價就行了。只要運用熟練了就沒什麼複雜的了。
5)指向由m個整數組成的一維數組的指針變數
如:int (*p)[4],p是一個指向包含4個元素的一維數組,如果p先指向a[0],則p+1指向a[1],即p的增值是以一維數組的長度為單位的,這裡是4,舉個例子:
假設a[3][4]=,p先指向a[0]也就是數組a的首地址,那麼p+1就是a[1]的首地址即元素9的地址,因為在定義p時int (*p)[4],定義一維數組長度為4,所以p+1就等於加了一個一維數組的長度4。
3. 字元串的指針和指向字元串的指針變數
1)字元串的表示形式
c中字元串有兩種表示形式:一種是數組,一種是字元指針
char string[]=”I love c!”;
char *str=”I love c!”;
其實指針形式也是在內存中開闢了一個數組,只不過數組的首地址存放在字元指針變數str中,千萬不要認為str是一個字元串變數。
2)字元串指針作函數參數
實際上字元串指針就是數組的首地址。
3)字元指針變數與字元數組的區別
① 字元數組由若干元素組成,每個元素存放一個字元,而字元指針變數只存放字元串的首地址,不是整個字元串
② 對數組初始化要用static,對指針變數不用。
③ 對字元數組賦值,只能對各個元素賦值,不能象下面這樣:
char str[14];
str=”I love c!”;
對指針變數可以,
char *str;
str=”I love c!”;
注意:此時賦給str的不是字元,而是字元串首地址。
④ 數組在定義和編譯時分配內存單元,而指針變數定義後最好將其初始化,否則指針變數的值會指向一個不確定的數.
嘎嘎。。。就這麼多啦~~
C語言知識總結
c語言概要
第一章、 概述
1、 c語言的基本知識
1.1、 c語言的執行步驟
編輯-程序代碼的錄入,生成源程序*.c
編譯-語法分析查錯,翻譯生成目標程序*.obj
(語法或邏輯錯誤,從第一個開始改,變數定義,語句格式,表達式格式等)
鏈接-與其他目標程序或庫鏈接裝配,生成可執行程序*.exe
執行
1.2、 main函數的基本知識
main()函數的位置
c程序總是從main( )函數開始執行
一個c程序可以包含一個主函數,即main()函數;也可以包含一個main()函數和若干其它函數
1.3、 c程序的結構
函數與主函數
程序由一個或多個函數組成
必須有一個且只能有一個主函數main()
程序執行從main開始,在main中結束,其他函數通過嵌套調用得以執行
程序語句
C程序由語句組成
用「;」作為語句終止符
注釋
//
或
/* */ 為注釋,不能嵌套
不產生編譯代碼
1.4、c 程序書寫的規則
習慣用小寫字母,大小寫敏感
不使用行號,無程序行概念:通常一個語句佔一行
可使用空行和空格
常用鋸齒形的書寫格式;同一層次結構的語句上下對齊。
第二章、基本數據類型與運算
2.1、c程序的數據類型
注意類型和變數含義的不同(類型是固定好的名字,變數是自己起的名字)
變數佔用的存儲空間
數據類型
基本類型:整型、字元型、浮點型(單精度型,雙精度型)
構造類型:數組類型、結構體類型
指針類型
空類型
注意基本類型賦初值的方式
基本數據類型的表示形式
整形數據
十進位:以非0數字開頭,如:123,-9,0
八進位;以0數字開頭,如:0123,067
十六進位:以0x開頭,如:0x123,0xff
實型數據
十進位:必須帶小數點,如:123.0,-9.0
指數形式;如:1.23E3,0.9e-2,5e2
字元型數據
普通字元:如:』a』,』2』,』H』,』#』
轉義字元:如:』\n』,』\167』,』\xlf,』\\』
(實現幾列的對齊:指定寬度。如%100\ 『\t』製表位)
(字元串長度。「abc\n\t\\」 strlen 6; sizeof 7)
基本數據類型的存儲長度
整型
Int 位元組數 2 位數 16 數的表示範圍 -32768—32767
Short 2 16 -32768—32767
Long 4 32 -2147483648—2147483647
實型
Float 4 32 3.4e-38—3.4e38
Double 8 64 1.7e-308—1.7e308
字元型
Char 1 8 -128—-127
2.2、標識符命名規則
C語言標誌符命名規則
標識符有數字,字母,下劃線組成
標識符的首字元必須為字母和下劃線
標識符不能為c語言的保留字(關鍵字)
如:auto extern sizeof float static case for struct char goto switch continue in typedef const if union default long unsigned do register void double return else short while enum signed
算術運算符 + – * / %
關係運算符 == = = !=
邏輯運算符 ! ||
位運算符 ~ | ^
賦值運算符 = 及其擴展賦值運算符
條件運算符 ? :
逗號運算符 ,
指針運算符 *
求位元組數運算符 sizeof
強制類型轉換運算符 (類型)
分量運算符 . –
下標運算符 [ ]
其他 如函數調用運算符()
運算符的優先順序
由高到低:單目運算符,算數運算符,關係運算符,賦值運算符
說明:單目運算符:自增運算符,自減運算符,類型裝換運算符。結合方向:自右至左
如:++–I 先—i.。
算術運算 結合方向自左至右
2.3基本運算和表達式
關係表達式和邏輯表達式
(ab)(xy) (a==b)||(x==y) !=a||(ab)
Ab.a為0.不執行b
A||b a為1.不執行b
在 c 中邏輯運算結果:1代表「真」,0代表「假」;
判斷一個表達式是否真:0代表「假」,非0代表「真」
條件表達式 逗號表達式
如:k=5,k++
逗號值為5;k為6.
表達式1?表達式2 :表達式3
K=56 ? 1 : 0
2.4、混合運算的數據類型轉換
2/3+0.5 雙精度浮點型
第三章、順序結構程序設計
3.1、c語句的分類
簡單語句
表達式語句 表達式+分號
空語句 只有分號的語句
複合語句 用花括弧將若干語句括起來
流程式控制制語句
選擇語句 if ,switch
循環語句 while, do while , for
轉移語句 break ,continue ,return goto
3.2、格式輸入函數scanf
一般形式:scanf(「格式控制字元串「,地址列表);
使用scanf函數時,需要注意:
格式字元的個數必須與輸入項的個數相同,數據類型必須一一對應,非格式字元串(說明性的)要原封不動的輸入。
輸入實行數據時,可以不帶小數點,即按整型數據輸入
數值型數據與字元或字元串混合輸入時,需要注意輸入方式。
3.3、格式輸出函數printf
Printf(「格式控制字元串「,輸出列表);
指定輸出格式,由格式字元串和非格式字元串兩種組成,非格式字元串照原樣輸出。
%[標誌][輸出最小寬度][.精度][長度]類型
標誌:- 左對齊;+ 右對齊;
%f, %d, %c, %s
3.4、其他輸入輸出函數
Putchar getchar puts gets
第四章、選擇結構程序設計
If選擇結構
單分支
If(表達式)
語句
雙分支
If(表達式)
語句1
Else
語句2
多分支
If (表達式1)
語句1
Else if(表達式2)
語句2
。。。
Else if(表達式m)
語句m
Else
語句n
Switch(表達式)
{
Case 常量表達式1:語句1;break;
Case 常量表達式2:語句2;break;
。。。
Case 常量表達式m:語句m;break;
Default:語句n;break;
}
注意break的使用
第五章、循環結構程序設計
循環三要素
初始條件 ;終止條件 ;在初始條件和終止條件間反覆做某件事情(循環體)
While(表達式)
語句
Do
語句
While(表達式);
For(循環體變數賦初值;循環條件;循環變數增量)
( for( ) ; // ; 進行時間延遲。在信息交換等時用。如for(i=0,i100) ; 互相通訊的時間延遲。 Delay )
Break語句 :不能用於循環語句和switch語句之外的任何其他語句;跳出循環。
Continue語句 :跳過循環體中剩餘的語句而強行執行下一次循環;跳出本次循環。
第六章、函數與編譯預處理
6.1、函數的定義和調用
類型標識符 函數名 (形式參數列表)
{ 聲明部分
語句
}
例:
Int max (int x,int y)
{int z;brZ=xy?x:y;brReturn(z);}
6.2、局部變數和全局變數
注意函數中靜態變數的定義和使用
6.3、變數的存儲類型
局部變數的存儲類型
自動變數(auto) 動態存儲
局部靜態變數(static) 靜態存儲
寄存器變數(register) 靜態存儲
全局變數的存儲類型
自動變數(auto) 動態存儲
外部變數 (extern) 靜態存儲
全局靜態變數(static )靜態存儲
Extern 外部引用
Static 不能用extern 引用。
第七章、數組
7.1、一維數組的定義和使用
特別需要注意循環體的初值,終止條件
例:
Main()
{
Int I,a[10];
For(i=0;i=9;i++)
A=I;
For(i=9;i=0;i–)
Printf(「%d」,a);
}
注意下標問題
7.2、二維數組的定義和使用
二維數組的初始化
例如:
Int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
Int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
Int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};
Int a[ ][4]={{1,2,3,4},{5},{9,10,11,12}};
例如:int a[3][3]={{1},{2},{3}};
是對每一行的第一列元素賦值,未賦值的元素取0
7.3、字元數組和 字元串
字元串用字元數組來處理,結束標誌符 『\0』
如:char c[ ]={「I am happy」};
用字元串常量使字元數組初值化
Char c[ ]={『I』,』 『,』a』,』m』,』 『,』h』,』a』,』p』,』p』,』y』,』\0』};
第八章、指針
8.1、地址和指針的概念
Int I;
Int *i_point;
8.2、指針變數和變數的地址
操作符:*
8.3、指針和一維數組
若有定義
Int a[10];
Int *p=a;
分析下面表達式的含義:
A, a,
*(a+i), a+I,
*(p+i), p+i
A=*(a+i)=*(P+i)
a=a+i=p+i
8.4、指針與字元串
Main()
{
Char string[ ]=」I love china!」;
Printf(「%s\n」,string);
}
Main()
{ char *string=」I love china!」;
Printf(「%s\n」,string);
}
8.5、指針變數作為函數參數
形參的定義方式;實參的形式;參數的傳遞方式。
第九章、結構體
9.1、結構體類型和變數的定義
Struct 結構體名
{成員列表};
Struct student
{char stuNO[8];brChar name[20];brChar sex;brInt age;brFloat score;brChar addr[30];br};
Stuct student
{char stuNO[8];brChar name[20];brChar sex;brInt age;brFloat score;brChar addr[30];br};
Struct student stu1, stu2;
9.2、結構體變數的引用
一般形式為:
結構體變數名.成員名
9.3、結構體數組
結構體數組 結構體數組元素.成員名
指向結構體的指針變數
(*p).成員名
p-成員名
其他
Strcpy(字元數組1,字元串2)
Strcat(字元數組1,字元數組2)
Strcmp(字元串1,字元串2)
Strlen(字元數組)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/250773.html