C語言程序設(shè)計整本書課件完整版電子教案(最新)_第1頁
C語言程序設(shè)計整本書課件完整版電子教案(最新)_第2頁
C語言程序設(shè)計整本書課件完整版電子教案(最新)_第3頁
C語言程序設(shè)計整本書課件完整版電子教案(最新)_第4頁
C語言程序設(shè)計整本書課件完整版電子教案(最新)_第5頁
已閱讀5頁,還剩236頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、CC語言程序設(shè)計第一章 C語言概述解讀課程名程序:為了讓計算機(jī)完成某項任務(wù)而編寫的逐條執(zhí)行的指令序列,每一條指令對應(yīng)計算機(jī)能執(zhí)行的最基本操作。計算機(jī)語言經(jīng)歷機(jī)器語言、匯編語言、高級語言等階段。C語言是一種結(jié)構(gòu)化的計算機(jī)高級語言,于1973年誕生,是最合適的計算機(jī)編程入門語言。語法和算法編寫程序必須具備兩個基本條件:一是掌握一門計算機(jī)高級語言的規(guī)則(語法),二是要分析出解決問題的方法和步驟(算法)。算法是靈魂,語法是工具,二者缺一不可。課程目標(biāo)牢固掌握C語言的基本語法掌握基本的分析問題和利用計算機(jī)解決問題的方法(算法)具備初步的高級語言程序設(shè)計能力,會讀、會編、會調(diào)試程序期末通過省二級C語言考試

2、在各類軟件大賽中獲獎(精英之路) 學(xué)習(xí)要求課前認(rèn)真預(yù)習(xí)上課認(rèn)真聽講,保持頭腦清醒,思維活躍多抄寫、默寫課堂示例勤思考,多練習(xí),認(rèn)真、獨(dú)立地完成課后作業(yè)重視上機(jī)實踐編輯和執(zhí)行C程序編輯:選擇適當(dāng)?shù)木庉嫵绦?將C語言源程序通過鍵盤輸入到計算機(jī)中,并以文件的形式存入到磁盤中(.c)編譯:即將源程序翻譯成機(jī)器語言程序的過程。編譯出來的程序稱為目標(biāo)程序(.obj)連接:編譯后生成的目標(biāo)文件經(jīng)過連接后生成最終的可執(zhí)行程序(.exe)執(zhí)行:得到程序的運(yùn)行結(jié)果。程序書寫規(guī)范一條語句占一行。語句的書寫要有層次,低層次的語句要比高層次的語句向右縮進(jìn)若干字符。 寫在一行的末尾, 和該層次語句的第一個字母對齊,并單獨(dú)

3、占一行。技巧:為避免遺漏必須配對使用的符號,例如函數(shù)體的起止標(biāo)識符、圓括號()、注釋符號/* */ 等等,在輸入時,可連續(xù)成對輸入這些起止標(biāo)識符,然后再在其中進(jìn)行插入來完成內(nèi)容的編輯。C程序結(jié)構(gòu)特點(diǎn)C程序是由函數(shù)構(gòu)成的。 一個函數(shù)由兩部分組成: 函數(shù)頭部和函數(shù)體。 C程序中有且只能有一個main函數(shù)。main函數(shù)通常位于程序之首, 實際上它可以位于程序的開頭、 最后及任意函數(shù)之間, 但不管在什么位置,一個C程序總是從main函數(shù)開始執(zhí)行,從main函數(shù)結(jié)束。每條語句以分號結(jié)束,分號是語句的必要組成部分。C程序結(jié)構(gòu)特點(diǎn)C程序書寫格式自由, 一行內(nèi)可以寫幾個語句, 一個語句可以分寫在多行上(每一行

4、的結(jié)尾要輸入續(xù)行符 ),但為了增強(qiáng)程序可讀性,我們一般一行只寫一條語句。C語言本身不提供輸入輸出語句,輸入和輸出的操作由庫函數(shù)scanf和printf等函數(shù)來完成。如程序中使用到這些函數(shù),在程序開頭必須包含#include??梢杂?* */(多行注釋)或 /(單行注釋) 對C程序中的任何部分作注釋, 它可增加程序的可讀性。 CC語言程序設(shè)計第二章 順序結(jié)構(gòu)整型浮點(diǎn)型字符型不同進(jìn)制的整型常量十進(jìn)制形式 由09十個數(shù)碼組成,且第一個數(shù)字不能為0。如80、-69。八進(jìn)制形式 以數(shù)字0作前綴,由07八個數(shù)碼組成。如0123、-057。 十六進(jìn)制形式 以“0 x”或“0X”作為前綴,由09、af或AF十

5、六個數(shù)碼組成。如0X53、0 x12f、0 xFFE。 指數(shù)形式的浮點(diǎn)型常量形式如3.2e5、-7.6E3、0.125e-2、-345.6E-12,分別表示3.2105、-7.6103、0.12510-2、-345.610-12。字母e或E之前必須有數(shù)字,之后必須為整數(shù)。如e3、3.2E1.5都不是合法的指數(shù)形式。轉(zhuǎn)義字符以字符開頭的字符序列,稱之為轉(zhuǎn)義字符。使用轉(zhuǎn)義字符的原因有兩點(diǎn):某一些特定的字符在C中具有特殊用途。如反斜杠(),它是轉(zhuǎn)義字符的前綴;再如雙引號(),被定義為字符串的定界符。如果想要在屏幕上輸出這些字符,只能用轉(zhuǎn)義字符的形式,直接輸出程序會出錯。用轉(zhuǎn)義字符來表示ASCll字符

6、集里的控制字符。如n,這是一種在屏幕上無法顯示的“控制字符”,在程序中也無法用一個普通的字符來表示,只能采用這種特殊形式。 符號常量可以在程序中用一個標(biāo)識符代表常量,稱為符號常量。在使用符號常量后,如需要修改程序中多次用到的同一個常量,能做到“一改全改”。 符號常量不占內(nèi)存,只是一個臨時符號,代表一個常量,所以不能對符號常量賦值。程序中若出現(xiàn)PI=3.14159;這樣的語句是錯誤的。若要改變符號常量所代表的常量,只能通過#define指令重新定義。為與變量相區(qū)分,習(xí)慣上用大寫字母表示符號常量。 變量的定義在編程時,會處理一些固定數(shù)據(jù)(常量),我們通常不會直接操作它們,而是先把這些數(shù)據(jù)保存到相應(yīng)

7、數(shù)據(jù)類型的變量中,再通過變量名引用、處理它們。變量實際代表了內(nèi)存中的一塊存儲區(qū)域,我們給這塊存儲區(qū)域起個名字,就是變量名,存放在這塊存儲區(qū)域中的數(shù)據(jù),就是變量值。 10001002100410061008100A100C100E1010int a,b,sum; /聲明a和b兩個變量a=123; /給變量a賦值123b=456; /給變量b賦值456 /進(jìn)行a+b運(yùn)算,并把結(jié)果存放在sum中sum=a+b; /把a(bǔ)中原來的值加上1后再重新賦給變量aa=a+1; ab123456124sum579變量的聲明和初始化 變量的聲明 向內(nèi)存申請一個指定類型的存儲空間,這樣才能存儲變量的值。變量只有先聲明

8、才能使用。變量的聲明必須放在函數(shù)的開頭,否則出錯。 int m; float a,b,sum; 變量的初始化 在聲明變量的同時給變量一個初值。 int m=5; float a=2.5,b=6.2,sum;變量的賦值和調(diào)用 變量的賦值 可以多次賦值,但變量的當(dāng)前值只有1個,為最后一個賦值所得到的值。 m=98; m=m+3; 變量的調(diào)用 變量在聲明并賦值后,可以在程序中通過變量名來操作變量中保存的數(shù)據(jù)。 sum=a+b; printf(a+b=%dn,sum);變量的命名規(guī)則 變量名只能由下劃線、數(shù)字09與大小寫字母az,AZ構(gòu)成。 變量的首個字符必須是字母或下劃線,而不能是數(shù)字或其它符號。

9、區(qū)分大小寫字母,如name和Name是兩個不同的變量。 不能使用系統(tǒng)關(guān)鍵字作為變量名。 盡量作到“見名知義”,例如max、score等,而不用象abc、x1、y2等標(biāo)識符。變量的命名規(guī)則關(guān)鍵字是指系統(tǒng)預(yù)定義的保留標(biāo)識符,又稱之為保留字。它們有特定的含義,不能再作其它用途使用。ANSI C定義的關(guān)鍵字共32個。C語言的關(guān)鍵字都是小寫的。 數(shù)據(jù)類型轉(zhuǎn)換C語言中有3種形式的數(shù)據(jù)類型轉(zhuǎn)換自動類型轉(zhuǎn)換賦值轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換自動類型轉(zhuǎn)換同種數(shù)據(jù)類型的數(shù)據(jù)做算術(shù)運(yùn)算時,結(jié)果類型不變;當(dāng)一個運(yùn)算符兩邊的數(shù)據(jù)類型不同時,則先遵循規(guī)則自動進(jìn)行類型轉(zhuǎn)換,使二者具有同一種類型,然后進(jìn)行計算。因此整型、實型、字符型數(shù)據(jù)間

10、可以進(jìn)行混合運(yùn)算。 賦值轉(zhuǎn)換賦值轉(zhuǎn)換是在作賦值運(yùn)算時發(fā)生的。如果賦值運(yùn)算符兩側(cè)的類型一致,則直接進(jìn)行賦值;如果兩側(cè)的類型不一致(但都是整型,浮點(diǎn)型或字符型),在賦值時會進(jìn)行類型轉(zhuǎn)換。強(qiáng)制類型轉(zhuǎn)換有時為了達(dá)到某種目的,需要將一個表達(dá)式的類型轉(zhuǎn)變成所需的類型,這時就要用到強(qiáng)制類型轉(zhuǎn)換運(yùn)算符。其一般形式為: (數(shù)據(jù)類型名) (表達(dá)式) (int)a 將變量a強(qiáng)制轉(zhuǎn)換為int型 (double)(x+y) 將x+y的值強(qiáng)制轉(zhuǎn)換為double型強(qiáng)制轉(zhuǎn)換運(yùn)算符的使用#include stdio.h void main() int a=2; float b=3.6; printf(“%dn”,a+b);pr

11、intf(“%dn”,a+(int)b);a+b的計算結(jié)果為float型數(shù)據(jù),無法用%d顯示 printf函數(shù)的一般格式printf(“格式控制串”,輸出列表)例如:printf(”i=%d,c=%cn”,i,c);普通字符printf函數(shù) printf函數(shù)的一般格式printf(“格式控制串”,輸出列表)例如:printf(”i=%d,c=%cn”,i,c);printf函數(shù)格式聲明 printf函數(shù)的一般格式printf(“格式控制串”,輸出列表)例如:printf(”i=%d,c=%cn”,i,c);printf函數(shù)可以是常量、變量或表達(dá)式 scanf函數(shù)的一般格式scanf(“格式控制

12、串”,地址列表)例如:scanf(”a=%d,b=%d”,&a,&b);scanf函數(shù)普通字符,需要原樣輸入 scanf函數(shù)的一般格式scanf(“格式控制串”,地址列表)例如:scanf(”a=%d,b=%d”,&a,&b);scanf函數(shù)格式字符 scanf函數(shù)的一般格式scanf(“格式控制串”,地址列表)例如:scanf(”a=%d,b=%d”,&a,&b);scanf函數(shù)&為“取地址符”,不可省略對于 scanf(“%c%c”,&a,&b);輸入 1 3 13 使用scanf函數(shù) 對于 scanf(“%d%d”,&a,&b); 輸入 1 3 13 還可以用Tab鍵和回車鍵分隔scan

13、f函數(shù)對于 scanf(“a=%d,b=%d”,&a,&b);輸入 1,3 a=1,b=3 使用scanf函數(shù) 對于 scanf(“%d,%d”,&a,&b); 輸入 1 3 1,3 scanf函數(shù)putchar()函數(shù)putchar函數(shù)可以輸出顯示一個字符putchar函數(shù)的一般格式 putchar( 單個字符); char ch=a; putchar(ch); putchar(a); putchar(97); putchar(141); putchar(x61); getchar()函數(shù)getchar函數(shù)可以從鍵盤接收一個字符,該函數(shù)對鍵盤上的任何鍵都是有效的。getchar函數(shù)的一般格式

14、 getchar(); /無參函數(shù) char ch=getchar();運(yùn)算符C語言中共有13類45個運(yùn)算符 學(xué)習(xí)運(yùn)算符要注意的問題運(yùn)算符的功能運(yùn)算符與操作對象的關(guān)系: 操作數(shù)的個數(shù)(一元、二元、三元); 操作數(shù)的類型(如求余運(yùn)算符%要求操作數(shù)是整型);運(yùn)算符的優(yōu)先級;運(yùn)算符的結(jié)合性:左結(jié)合、右結(jié)合;運(yùn)算結(jié)果的數(shù)據(jù)類型:不同類型數(shù)據(jù)運(yùn)算將發(fā)生類型轉(zhuǎn)換 表達(dá)式變量、常量與符號的組合稱為表達(dá)式。表達(dá)式中的符號稱為運(yùn)算符,運(yùn)算符作用的變量、常量稱為操作數(shù)。 printf(“%dn”,num+3); a+b num3=num1 ch=ch-32 32 (a+b)/(a-b) 32&53+1算術(shù)運(yùn)算符

15、基本算術(shù)運(yùn)算符算術(shù)運(yùn)算符+和-符號在C語言中有雙重含義,既可以表示正號和負(fù)號,也可以表示加號和減號。在表示正號和負(fù)號時,只能在運(yùn)算符的一側(cè)出現(xiàn)一個操作數(shù),我們稱之為一元運(yùn)算符,又稱單目運(yùn)算符。在表示加號和減號時,要求在運(yùn)算符兩側(cè)各有一個操作數(shù),我們稱之為二元(雙目)運(yùn)算符。*、/、%也是二元運(yùn)算符。兩個整數(shù)進(jìn)行算術(shù)運(yùn)算,結(jié)果仍為整數(shù)。取余運(yùn)算符“%”要求兩邊的操作數(shù)必須為整型。 如:5%3.2 18.0%7.0 錯誤 其它運(yùn)算符操作數(shù)的類型可以是任意的。 算術(shù)運(yùn)算符自增、自減運(yùn)算符 自增運(yùn)算符“+”和自減運(yùn)算符“-”也是一元運(yùn)算符,作用是使操作數(shù)的值加1或減1。 如:i+ 相當(dāng)于 i=i+1

16、-i 相當(dāng)于 i=i-1+和-運(yùn)算符的操作數(shù)只能是變量,不能是常量、函數(shù)或表達(dá)式。如2+、(a+b)+都是錯誤的表達(dá)式。 設(shè)已作聲明:int i=6,a;算術(shù)運(yùn)算符自增、自減運(yùn)算符算術(shù)運(yùn)算符的優(yōu)先級和結(jié)合性優(yōu)先級:當(dāng)一個運(yùn)算對象兩側(cè)的運(yùn)算符的優(yōu)先級別不同時,應(yīng)遵循優(yōu)先級高的先處理的規(guī)則。 結(jié)合性:當(dāng)一個運(yùn)算對象兩側(cè)的運(yùn)算符的優(yōu)先級別相同時,應(yīng)遵循運(yùn)算符的結(jié)合方向。賦值運(yùn)算符C語言中賦值運(yùn)算符為“=”,它的一般形式為: 變量=表達(dá)式賦值表達(dá)式的作用是將賦值號=右邊表達(dá)式的值賦給左邊的變量。其中,表達(dá)式可以是常量、變量或C語言中任意合法表達(dá)式。 如: sum=a+b a=8 注意:賦值運(yùn)算符左邊只

17、能是變量,不能是常量或表達(dá)式,如2=a、a+b=c都是錯誤的。復(fù)合賦值運(yùn)算符C語言允許在賦值運(yùn)算符“=”之前加上算術(shù)運(yùn)算符或位運(yùn)算符以構(gòu)成復(fù)合的賦值運(yùn)算符。復(fù)合賦值運(yùn)算符【問題】x*=y+5是等價于x=x*y+5還是x=x*(y+5)? 【分析】因為+的優(yōu)先級比*=高,所以先計算y+5,再進(jìn)行復(fù)合賦值運(yùn)算。因此表達(dá)式與x=x*(y+5)是等價的。 CC語言程序設(shè)計第三章 分支結(jié)構(gòu)分支結(jié)構(gòu)【問題】編程計算一個分段函數(shù):順序、分支(條件、選擇)、循環(huán)是結(jié)構(gòu)化程序中三種基本結(jié)構(gòu)。分支結(jié)構(gòu)是根據(jù)判定所給條件是否滿足,從而決定程序執(zhí)行哪些語句。單分支if語句單分支 if 語句的基本形式為: if (表達(dá)

18、式) 語句體 雙分支if語句雙分支 if 語句為 if-else 形式,語句的結(jié)構(gòu)為: if (表達(dá)式) 語句體1 else 語句體2 if語句語法注意if語句的條件表達(dá)式一般是邏輯表達(dá)式或關(guān)系表達(dá)式,表達(dá)式的值非0,即為“真”;表達(dá)式值為0,即為“假”。語句體中可包含1條或多條語句,如只有1條語句,則花括號可以省略,但從語法規(guī)范考慮,最好不要省略。關(guān)系運(yùn)算符 小于 大于 = 大于或等于 = 等于 != 不等于 優(yōu)先級:關(guān)系運(yùn)算符的優(yōu)先級低于算術(shù)運(yùn)算符,高于賦值運(yùn)算符。其中、=、=優(yōu)先級高于= =和!= 的優(yōu)先級。結(jié)合性:左結(jié)合關(guān)系運(yùn)算符關(guān)系運(yùn)算符都是二元運(yùn)算符,其結(jié)果為int類型的值。當(dāng)關(guān)系

19、成立時,關(guān)系表達(dá)式的值為1,關(guān)系不成立時,值為0。a50 值為3+2 = 2*3 值為526 值為0101-3-2b?a:b求值規(guī)則:計算表達(dá)式1的值,若表達(dá)式1的值為真,則以表達(dá)式2的值作為整個條件表達(dá)式的值,否則以表達(dá)式3的值作為整個條件表達(dá)式的值。條件運(yùn)算符max=ab?a:b if (ab) max=a; else max=b;等價邏輯運(yùn)算符【問題】鍵盤輸入學(xué)生的原始成績,如果在80到100之間,則把成績打8折,然后輸出成績;否則給出錯誤信息。if(80=score=80 & scoreb | cd 等價于 (ab) | (cd) !a= =b& cd 等價于 (!a) = =b)&(

20、cd)結(jié)合性:邏輯運(yùn)算符中,非運(yùn)算符(?。┑慕Y(jié)合性為右結(jié)合; 與運(yùn)算(&)和或運(yùn)算(|)的結(jié)合性為左結(jié)合。邏輯運(yùn)算符 a & b 當(dāng)且僅當(dāng)a,b都為真時,結(jié)果為1 a | b 當(dāng)且僅當(dāng)a,b都為假時,結(jié)果為0 ! a 當(dāng)a為真時,結(jié)果為0; 當(dāng)a為假時,結(jié)果為1多重if結(jié)構(gòu)和嵌套if結(jié)構(gòu)【問題】編程計算下列分段函數(shù):110if(x1) y=x;else if(x10) y=2*x-1;else y=3*x-11;if(x1) y=x;else if(x10) y=2*x-1; else y=3*x-11;if(x=1) y=2*x-1; else y=x;else y=3*x-11; xy=x

21、y=2x-1y=3x-11多重 if 結(jié)構(gòu)嵌套 if 結(jié)構(gòu)多重if結(jié)構(gòu) 多分支選擇結(jié)構(gòu)的 if 語句一般形式為: if(表達(dá)式1) 語句體1 else if (表達(dá)式2) 語句體2 . else if (表達(dá)式n) 語句體n else 語句體n+1 語義:依次判斷表達(dá)式的值,當(dāng)某個表達(dá)式的值為真時, 則執(zhí)行其對應(yīng)的語句,然后跳到整個if語句之外繼續(xù)執(zhí)行程序;如果所有的表達(dá)式均為假,則執(zhí)行語句n+1,然后繼續(xù)執(zhí)行后續(xù)程序。多重if結(jié)構(gòu)的控制流程多重if結(jié)構(gòu)【例】分析下面程序段的運(yùn)行結(jié)果int a,k;a=75;if (a60) k=1;else if(a70) k=2;else if(a80)

22、k=3;else if(a90) k=4;printf(k=%dn,k); k=1嵌套if結(jié)構(gòu) 當(dāng) if 語句中的語句體又是 if 語句時,這種情況就叫嵌套的 if 結(jié)構(gòu)。其一般形式為: if (表達(dá)式) if (表達(dá)式) 語句組1; else 語句組2; else if (表達(dá)式) 語句組3; else 語句組4; int x,y;x=1; y=0;if(x=2) if(x=2) if(x10) y=3*x-1;else y=x; y=1 y=0嵌套if結(jié)構(gòu)switch結(jié)構(gòu) switch語句專門用于解決多分支選擇問題,其一般形式為: switch(表達(dá)式) case 常量表達(dá)式1: 語句組1

23、;break; case 常量表達(dá)式2: 語句組2; break; case 常量表達(dá)式n: 語句組n; break; default : 語句組n+1; break; 計算表達(dá)式的值,并逐個與其后的常量表達(dá)式值相比較,當(dāng)表達(dá)式的值與某個常量表達(dá)式的值相等時, 即執(zhí)行其后的語句,然后跳出switch結(jié)構(gòu)繼續(xù)執(zhí)行程序; 如表達(dá)式的值與所有的常量表達(dá)式均不相同時,則執(zhí)行default后的語句,然后跳出switch結(jié)構(gòu)繼續(xù)執(zhí)行程序。 a=1,b=0Switch結(jié)構(gòu)int x=1,a=0,b=0;switch(x) case 0 : b+; break; case 1 : a+; break; def

24、ault : a+; b+; break;printf(a=%d,b=%dn,a,b); 在case后,允許有多個語句,可以不用 括起來。 case和default子句出現(xiàn)的先后順序可以變動,不會影響程序執(zhí)行結(jié)果。default子句也可以省略不用。 a=1,b=0Switch結(jié)構(gòu)語法注意int x=1,a=0,b=0;switch(x) case 0 : b+; break; default : a+; b+; break; case 1 : a+; break;printf(a=%d,b=%dn,a,b); switch后跟的“表達(dá)式”允許為任何類型的表達(dá)式,但計算結(jié)果必須為 int 型或

25、char 型。 error C2050:switch expression not integralSwitch結(jié)構(gòu)語法注意float x=1,a=0,b=0;switch(x) case 0 : b+; break; case 1 : a+; break; default : a+; b+; break;printf(a=%f,b=%fn,a,b); case后必須為整型常量或由整型常量構(gòu)成的表達(dá)式。這里的整型也包括字符型。 error C2052: const double : illegal type for case expressionSwitch結(jié)構(gòu)語法注意int x=1,a=0,

26、b=0;switch(x) case a : b+; break; case 1.5 : a+; break; default : a+; b+; break;printf(a=%f,b=%fn,a,b); error C2051: case expression not constant 在每一個case后的各常量表達(dá)式的值不能相同,否則會出現(xiàn)錯誤。 error C2196: case value 0 already usedSwitch結(jié)構(gòu)語法注意int x=1,a=0,b=0;switch(x) case 0 : b+; break; case 0 : a+; break; defaul

27、t : a+; b+; break;printf(a=%f,b=%fn,a,b); 多個case可以共用一組執(zhí)行語句。 a=1,b=0Switch結(jié)構(gòu)語法注意int x=1,a=0,b=0;switch(x) case 0 : b+; break; case 1 : case 2 : a+; break; default : a+; b+; break;printf(a=%f,b=%fn,a,b);注意: case 和 default 后的 break;語句不能省略,否則在執(zhí)行完某個case或 default的語句體后,程序?qū)⒉荒芴鰏witch結(jié)構(gòu),而是不管后面的case表達(dá)式是否滿足條件,

28、都會執(zhí)行其語句體,直到遇到 break; 或 。int x=1,a=0,b=0;switch(x) case 0 : b+; case 1 : a+; case 2: b+; default : a+; b+; printf(a=%f,b=%fn,a,b);Switch結(jié)構(gòu)語法注意 a=1,b=2比較多重 if 結(jié)構(gòu) 和 switch 結(jié)構(gòu)多重if結(jié)構(gòu)和switch結(jié)構(gòu)都可以用來實現(xiàn)多路分支。當(dāng)需要判斷輸入的數(shù)據(jù)是否在某個范圍時,使用多重 if 結(jié)構(gòu)比較方便。switch結(jié)構(gòu)只能處理等值條件判斷的情況。CC語言程序設(shè)計第四章 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)【問題1】張浩C語言考試得了80分,沒達(dá)到自己的目標(biāo)

29、。為了表明自己勤奮學(xué)習(xí)的決心,他決定寫一百遍“好好學(xué)習(xí),天天向上”。#include main() printf(“第1遍寫:好好學(xué)習(xí),天天向上n); printf(“第2遍寫:好好學(xué)習(xí),天天向上n); printf(“第3遍寫:好好學(xué)習(xí),天天向上n); printf(“第4遍寫:好好學(xué)習(xí),天天向上n); /此處省略94句輸出語句 printf(“第99遍寫:好好學(xué)習(xí),天天向上n); printf(“第100遍寫:好好學(xué)習(xí),天天向上n);printf(“第%d遍寫:好好學(xué)習(xí),天天 向上n,i);i=i+1;while(i=100)int i=1;循環(huán)結(jié)構(gòu)【問題2】編寫一個程序,計算半徑為0.5

30、、1.5、2.5、3.5、4.5厘米的圓面積。#include #define PI 3.14159 /定義符號常量PImain() float r1,r2,r3,r4,r5; float s1,s2,s3,s4,s5; r1=0.5; s1=PI*r1*r1; printf(r1=%.1f,s1=%.2fn,r1,s1); r2=1.5; s2=PI*r2*r2; printf(r2=%.1f,s2=%.2fn,r2,s2); r3=2.5; s3=PI*r3*r3; printf(r 3=%.1f,s3=%.2fn,r3,s3); r4=3.5; s4=PI*r4*r4; printf(r

31、4=%.1f,s4=%.2fn,r4,s4); r5=4.5; s5=PI*r5*r5; printf(r5=%.1f,s5=%.2fn,r5,s5);s=PI*r*r; printf(r=%.1f,s=%.2fn,r,s);r=r+1;while(r=4.5)float r=0.5,s;什么是循環(huán)循環(huán)就是重復(fù)地做一件事。生活中循環(huán)的例子: 打印50份試卷 在400米跑道上進(jìn)行3000米賽跑 鍥而不舍地學(xué)習(xí) 滾動的車輪什么是循環(huán)打印50份試卷: 循環(huán)條件:只要打印的試卷份數(shù)不足50份就繼續(xù)打印。 循環(huán)操作:打印1份試卷,打印總數(shù)加1。3000米賽跑: 循環(huán)條件:跑過的距離不足3000米就繼續(xù)跑

32、。 循環(huán)操作:跑一圈,跑過的距離增加400米。鍥而不舍地學(xué)習(xí): 循環(huán)條件:沒有達(dá)到預(yù)定的目標(biāo)就繼續(xù)努力。 循環(huán)操作:學(xué)習(xí),離預(yù)定目標(biāo)更近。滾動的車輪: 循環(huán)條件:沒有到達(dá)目的地就繼續(xù)。 循環(huán)操作:車輪滾一圈,離目的地更近。循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序中最重要的一種結(jié)構(gòu)。其特點(diǎn)是,在給定條件成立時,反復(fù)執(zhí)行某程序段,直到條件不成立為止。循環(huán)結(jié)構(gòu)中控制循環(huán)的條件稱為循環(huán)條件,循環(huán)條件中出現(xiàn)的變量成為循環(huán)變量,反復(fù)執(zhí)行的程序段稱為循環(huán)體。循環(huán)結(jié)構(gòu)的3種形式C語言提供了3種基本的循環(huán)結(jié)構(gòu): while do-while forwhile循環(huán)while循環(huán)又稱為“當(dāng)型”循環(huán)。 while語句的一般格式為

33、: while (循環(huán)表達(dá)式) 循環(huán)體 while語句的執(zhí)行過程為: (1) 計算并判斷循環(huán)表達(dá)式的值。若值為非0,則執(zhí)行循環(huán)體;若值為0,則結(jié)束循環(huán),退出while結(jié)構(gòu)。 (2) 轉(zhuǎn)步驟(1)。while循環(huán)語法注意與 if 語句中的表達(dá)式相同,while 語句中的表達(dá)式可以是任意合法的表達(dá)式。表達(dá)式也叫做循環(huán)條件。循環(huán)體包括一條或多條語句,多條語句必須用 括起來。合理的循環(huán)是有限次循環(huán)。如果循環(huán)不能退出,則稱為“死循環(huán)”,在程序設(shè)計中應(yīng)該避免出現(xiàn)。 while循環(huán)【問題】判斷以下循環(huán)各執(zhí)行了多少次 int k=-10; while(k=0) k=k+1; /循環(huán) 次 int k=-10;

34、while(k=1) k=k+1; /循環(huán) 次 int k=-10; while(k) k=k+1; /循環(huán) 次010do-while循環(huán)do-while循環(huán),又稱為“直到 型”循環(huán),用do-while語句來實現(xiàn),其一般格式為: do 循環(huán)體 while(循環(huán)表達(dá)式); do-while語句的執(zhí)行過程為: 先執(zhí)行循環(huán)體語句再判斷表達(dá)式的值。若值為0,則結(jié)束循環(huán),退出do-while語句;若值為非0,則繼續(xù)執(zhí)行循環(huán)體。do-while循環(huán)【問題1】以下兩個程序段的運(yùn)行結(jié)果分別是多少?int i=10,s=0;while(i=10) s=s+i; i=i+1; printf(s=%dn,s); s

35、=10int i=10,s=0;do s=s+i; i=i+1; while(i=10); printf(s=%dn,s); s=10總結(jié):當(dāng)?shù)谝淮闻袛嘌h(huán)表達(dá)式,表達(dá)式的值為真時,while和do-while循環(huán)在功能上沒有任何區(qū)別。do-while循環(huán)【問題2】以下兩個程序段的運(yùn)行結(jié)果分別是多少?int i=11s=0;while(i=10) s=s+i; i=i+1; printf(s=%dn,s); s=0int i=11,s=0;do s=s+i; i=i+1; while(i=10); printf(s=%dn,s); s=11總結(jié):當(dāng)?shù)谝淮闻袛嘌h(huán)表達(dá)式,如果表達(dá)式的值為假,則w

36、hile循環(huán)不會執(zhí)行循環(huán)體,而do-while循環(huán)會把循環(huán)體執(zhí)行一遍。for 循環(huán)for語句的一般格式為: for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 循環(huán)體 int i,s=0;i=1;while(i=100) s=s+i; i=i+1;等價int i,s=0;for ( ; ; ) i=1i=100i+s=s+i;for 循環(huán)3個表達(dá)式的主要作用是: 表達(dá)式1:通常用于循環(huán)的初始化。包括循環(huán)變量的賦初值、其他變量的準(zhǔn)備等; 表達(dá)式2:循環(huán)的條件判斷式,用于判斷循環(huán)是否繼續(xù)執(zhí)行,可以是任意合法的表達(dá)式; 表達(dá)式3:循環(huán)的調(diào)整部分,主要是循環(huán)變量的變化; 循環(huán)體:由一條或多條語句構(gòu)成,多條語句需要

37、用 括起來。for語句的執(zhí)行流程for(i=1;i=100;i+) s=s+i;for循環(huán)語法注意13個表達(dá)式之間用分號“;”分隔,3個表達(dá)式都可以省略,但兩個分號不能省略。表達(dá)式1和表達(dá)式3可以是一個簡單的表達(dá)式,也可以是逗號表達(dá)式,即包含一個以上的簡單表達(dá)式,中間用逗號間隔。如: for(i=1,s=0; i=100;i+) s=s+i; for(i=0,j=10;i=j;i+,j-) k=i+j; 表達(dá)式1可以省略,如: i=1; for(;i=100;i+) s=s+i;for循環(huán)語法注意2表達(dá)式2可以省略,即不設(shè)置和檢查循環(huán)條件,此時相當(dāng)于表達(dá)式2始終為“真”,循環(huán)無終止地進(jìn)行,如:

38、 for(i=1; ;i+) s=s+i; for(i=1;1;i+) s=s+i;表達(dá)式3可以省略,如: for (i=1;i=100;) s=s+i; i+; 等價for循環(huán)語法注意3表達(dá)式1和表達(dá)式3均可以省略,如: i=1; i=1; for (;i=100;) while(i=100) s=s+i; s=s+i; i+; i+; 循環(huán)體可以省略,如: for (i=1;i=100;i+); ;表示空語句等價【問題1】編寫一個程序,計算半徑為0.5、1.5、2.5、3.5、4.5cm的圓面積,直到面積大于20cm2。#include #define PI 3.14159 /定義符號常量

39、PIvoid main() float r=0.5,s; while(r20) break; printf(r=%.1f,s=%.2fn,r,s); r+; 【問題2】輸出100到200之間可以被7整除的數(shù)。void main() int k; for(k=100;k=200;k+) if( ! (k%7) printf(“能被7整除的數(shù)有%dn”,k); void main() int k; for(k=100;k=200;k+) if(k%7) continue; printf(“能被7整除的數(shù)有%dn”,k); 參考程序2:參考程序1:break和continue語句switch結(jié)構(gòu)中可

40、以用break語句跳出switch語句。break語句也可以用在循環(huán)結(jié)構(gòu)中,用以結(jié)束本層 循環(huán)。continue語句用以結(jié)束本次 循環(huán),不再執(zhí)行continue語句后的循環(huán)體,直接回到循環(huán)表達(dá)式處判斷。break和continue通常和if語句配合使用。break可以用于switch結(jié)構(gòu)和循環(huán)結(jié)構(gòu),continue只能用于循環(huán)結(jié)構(gòu)。循環(huán)嵌套(1) while ( ) while ( ) (2) for (;) for (;) (3) do do while ( ); while ( );(4) while ( ) for (;) (5) for (;) while ( ) (6) do for

41、 (;) while ( );CC語言程序設(shè)計第五章 函數(shù)函數(shù)【問題】編寫一個程序,計算半徑為0.5、2、2.5、3.2、5厘米的圓面積。#include #define PI 3.14159 /定義符號常量PImain() float r1,r2,r3,r4,r5; float s1,s2,s3,s4,s5; r1=0.5; s1=PI*r1*r1; printf(r1=%.1f,s1=%.2fn,r1,s1); r2=2; s2=PI*r2*r2; printf(r2=%.1f,s2=%.2fn,r2,s2); r3=2.5; s3=PI*r3*r3; printf(r 3=%.1f,s3

42、=%.2fn,r3,s3); r4=3.2; s4=PI*r4*r4; printf(r4=%.1f,s4=%.2fn,r4,s4); r5=5; s5=PI*r5*r5; printf(r5=%.1f,s5=%.2fn,r5,s5);void area(float r) float s=PI*r*r; printf(r=%.1f,s=%.2fn,r,s); void main() area(0.5); area(2); area(2.5); area(3.2); area(5);模塊化程序設(shè)計方法人們在求解一個問題時,通常采用的是逐步分解、分而治之的方法,即把一個大問題分解成若干個比較易解的

43、小問題,然后分別求解。我們也通常把一個較大的程序分為若干個子程序模塊,每個子程序模塊實現(xiàn)一個特定的功能。這樣的程序便于編寫、閱讀、修改和維護(hù),提高了程序的可靠性,保證了程序的質(zhì)量。在C語言中,這些子程序模塊是由函數(shù)來完成的。一個C程序可由一個主函數(shù)和若干個函數(shù)組成。函數(shù)分類從函數(shù)定義的角度內(nèi)置函數(shù) 即庫函數(shù)。由系統(tǒng)提供,用戶無須定義和說明,只需在程序前包含有該函數(shù)原型的頭文件,就可在程序中直接使用。如scanf、printf、getchar、puts、strcpy等都是標(biāo)準(zhǔn)函數(shù)。自定義函數(shù) 用戶根據(jù)需要,自己定義的用以完成某種功能的函數(shù)。函數(shù)分類從函數(shù)參數(shù)的角度無參函數(shù) 函數(shù)定義、函數(shù)說明、函

44、數(shù)調(diào)用均不帶參數(shù)。主調(diào)函數(shù)和被調(diào)函數(shù)之間不進(jìn)行參數(shù)傳遞,此類函數(shù)通常用來完成一組指定的功能,一般沒有返回值。 有參函數(shù) 函數(shù)定義、函數(shù)說明時都有參數(shù),稱為形式參數(shù)(簡稱形參)。函數(shù)調(diào)用時必須給出參數(shù),稱為實際參數(shù)(簡稱實參)。進(jìn)行調(diào)用時,主調(diào)函數(shù)把實參的值傳遞給形參,供被調(diào)函數(shù)使用,被調(diào)函數(shù)也可以將值帶回來供主調(diào)函數(shù)使用。 函數(shù)的定義無參函數(shù)定義的一般形式 類型說明符 函數(shù)名() 語句序列 函數(shù)的定義有參函數(shù)定義的一般形式 類型說明符 函數(shù)名(形式參數(shù)類型說明 形式參數(shù)) 語句序列 函數(shù)定義語法說明一個函數(shù)由頭部和函數(shù)體組成。其中類型說明符和函數(shù)名稱為頭部,花括號中的內(nèi)容稱為函數(shù)體。類型說明符

45、是指該函數(shù)值的類型,即函數(shù)返回值的類型。 void表示空類型,表示函數(shù)返回時不帶回任何值。函數(shù)名是用戶自己定義的標(biāo)識符函數(shù)名后面必須有一對圓括號( ),不管里面有沒有參數(shù)。不能在一個函數(shù)體內(nèi)再定義另一個函數(shù),即函數(shù)不能嵌套定義。 函數(shù)的調(diào)用函數(shù)調(diào)用的一般形式 函數(shù)名(實際參數(shù)表)在調(diào)用函數(shù)時,多個實參彼此間用逗號分隔。實參與形參的個數(shù)應(yīng)相等,類型應(yīng)一致。如果調(diào)用無參函數(shù),則實參表為空,但函數(shù)名后的一對圓括號“( )”不能省略。函數(shù)的調(diào)用main()int a;fun1(a);fun1(int x) 調(diào) 用返 回函數(shù)調(diào)用的方式函數(shù)語句把函數(shù)調(diào)用作為一個語句,一般用于沒有返回值的函數(shù)的調(diào)用。函數(shù)表

46、達(dá)式函數(shù)出現(xiàn)在表達(dá)式中,以函數(shù)的返回值參與表達(dá)式的運(yùn)算。函數(shù)參數(shù)函數(shù)作為另一個函數(shù)調(diào)用的實參。這種情況是把該函數(shù)的返回值作為實參進(jìn)行傳遞,因此要求該函數(shù)必須帶值返回。函數(shù)的返回值函數(shù)的返回值是通過被調(diào)函數(shù)中的return語句實現(xiàn)的。return語句的一般形式為: return(表達(dá)式);功能為:計算表達(dá)式的值,并返回給主調(diào)函數(shù)。一條return語句只能返回一個值。函數(shù)的返回值的語法說明函數(shù)返回值的類型和函數(shù)定義的類型應(yīng)保持一致。如果兩者不一致,以函數(shù)定義的類型為準(zhǔn),函數(shù)類型決定函數(shù)返回值的類型。如果函數(shù)的返回值是整型,則在函數(shù)定義時可省略類型說明。在一個函數(shù)中允許有多個return語句,但每次

47、調(diào)用只執(zhí)行一個return語句,因此只能返回一個函數(shù)值。當(dāng)遇到return語句時,函數(shù)返回到主調(diào)函數(shù)中調(diào)用該函數(shù)的位置。函數(shù)原型聲明函數(shù)定義是指對函數(shù)功能的確立,包括指定函數(shù)名、函數(shù)值的類型、形參及其類型、函數(shù)體等。它是一個完整的、獨(dú)立的函數(shù)單位。函數(shù)聲明是指對已定義的函數(shù)的返回值進(jìn)行類型說明,它只包括函數(shù)名、函數(shù)類型等,不包括函數(shù)體。其作用是告訴編譯系統(tǒng),在本函數(shù)中將要調(diào)用的函數(shù)是何種類型,以便在主調(diào)函數(shù)中按此類型對函數(shù)值作相應(yīng)的處理。函數(shù)原型聲明可以省略的情況如果被調(diào)函數(shù)的定義出現(xiàn)在主調(diào)函數(shù)之前,則可以省略聲明。如果函數(shù)類型為整型,則在主調(diào)函數(shù)中可以不要聲明。函數(shù)的參數(shù)傳遞在函數(shù)的調(diào)用過程

48、中,大部分都存在著數(shù)據(jù)上的聯(lián)系,主要表現(xiàn)在兩個方面:一是外部數(shù)據(jù)如何傳遞到函數(shù)內(nèi)部;二是函數(shù)內(nèi)部加工過的數(shù)據(jù)如何傳遞給外部程序。因此 C程序中,函數(shù)間的參數(shù)傳遞有兩個方面: 1. 函數(shù)調(diào)用時傳遞給函數(shù)的值 2. 函數(shù)調(diào)用結(jié)束時返回給主調(diào)函數(shù)的值 值傳遞值傳遞是將實參的值傳遞給形參。按這種方式傳遞時,形參的類型是變量,而實參可以是常量、變量或表達(dá)式,但必須有確定的值。 值傳遞的特點(diǎn):形參和實參各自占用不同的存儲空間,在函數(shù)內(nèi)部對形參的任何操作,其結(jié)果只能影響形參的值,而不會影響到實參的值。10001002100410061008100A100C100E1010num135val13564num2

49、64val23665#include void increment(int,int);void main()int num1,num2;printf(n 請輸入兩個數(shù): );scanf(%d %d,&num1,&num2);printf(n 主函數(shù)中遞增前的值是%d 和 %dn, num1, num2);increment(num1,num2);printf(n 主函數(shù)中遞增后的值是%d 和 %dn, num1, num2);void increment(int val1,int val2)val1+;val2+;printf(n 子函數(shù)中值 %d 和 %dn, val1, val2);值傳遞

50、應(yīng)用演示【問題1】變量一旦聲明,是否在程序中任何地方都能使用? 【問題2】任何事物有產(chǎn)生,也必然會有消亡,那么變量的生命周期是多久? 變量的作用域變量的作用域是指變量的有效范圍,在該范圍里,變量是可用的。C語言中,變量的說明方式不同,其作用域也不同,通常分為局部變量和全局變量兩類。 局部變量在一個函數(shù)內(nèi)部定義的變量稱為局部變量其作用域僅限于函數(shù)體內(nèi),離開該函數(shù)再使用這些變量是非法的。在不同的函數(shù)內(nèi)可以定義同名的局部變量,這些同名變量之間不會發(fā)生沖突。全局變量在所有函數(shù)(包括main函數(shù))之外定義的變量稱為全局變量。它不屬于任何函數(shù),而屬于一個源程序文件,其作用域是從定義的位置開始到本源程序文件

51、結(jié)束。默認(rèn)初值為0。在一個源程序中,全局變量和局部變量可以同名,在局部變量有效的范圍內(nèi),全局變量不起作用。變量的存儲方式變量的存儲方式是指變量使用內(nèi)存空間的方式,通??煞譃椤皠討B(tài)存儲”和“靜態(tài)存儲”兩種。動態(tài)存儲是指在程序執(zhí)行過程中,使用到變量時才分配存儲單元,使用完畢立即釋放。靜態(tài)存儲是指在變量定義時就分配存儲單元并一直保持,直至整個程序結(jié)束。變量的4種存儲類型自動類型auto寄存器類型register靜態(tài)類型static外部類型externauto類型 和 register類型 屬于動態(tài)存儲static類型 和 extern類型 屬于靜態(tài)存儲自動類型auto在變量定義的類型前面加上auto

52、,就將變量說明為自動類型。 auto int sum;C語言規(guī)定:函數(shù)內(nèi)凡未加存儲類型說明的變量、所有函數(shù)的形參變量均視為自動變量。自動變量屬于動態(tài)存儲方式,即僅當(dāng)定義自動變量的函數(shù)被調(diào)用時,系統(tǒng)才分配內(nèi)存單元,若沒有賦初值,則其初值是隨機(jī)的;離開該函數(shù),空間釋放,自動變量的值消失。10001002100410061008100A100C100E1010sum0num24523num168sum#include void addNumbers(); /函數(shù)原型聲明void main()int sum=0;addNumbers();printf(n 主函數(shù)中 sum 的值是 %d n ,sum)

53、;/* 函數(shù)定義 */void addNumbers()int num1,num2,sum;printf(n 請輸入兩個數(shù):);scanf(%d,%d,&num1,&num2);sum=num1+num2;printf( 子函數(shù)中 sum 的值是 %d n,sum);自動類型auto應(yīng)用演示寄存器類型register在變量定義的類型前面加上register,就將變量說明為寄存器類型。 register int m;寄存器變量屬于動態(tài)存儲方式,其生存期和作用域與自動類型變量相同,只不過系統(tǒng)把這類變量直接分配在CPU的通用寄存器中。當(dāng)需要使用這些變量時,無須訪問內(nèi)存,直接從寄存器中讀寫,提高了效率

54、。一般寄存器變量只能是int、char或指針型,全局變量不能定義為寄存器變量。 外部類型extern在變量定義的類型前面加上extern,就將變量說明為外部類型。 extern int m;如果全局變量的定義與使用在同一個文件中,則該文件的函數(shù)在使用外部變量時不需進(jìn)行其他說明,直接可以使用如果全局變量的定義與使用在兩個不同的文件中,則在使用全局變量之前需用“extern”存儲類型加以說明。 外部類型extern在變量定義的類型前面加上extern,就將變量說明為外部類型。 extern int m;如果全局變量的定義與使用在同一個文件中,則該文件的函數(shù)在使用外部變量時不需進(jìn)行其他說明,直接可以

55、使用如果全局變量的定義與使用在兩個不同的文件中,則在使用全局變量之前需用“extern”存儲類型加以說明。 靜態(tài)類型static在變量定義的類型前面加上static,就將變量說明為靜態(tài)類型。 static int m;作用域是在所定義的函數(shù)內(nèi)有效。生存期從定義開始直到程序結(jié)束,退出函數(shù),值不丟失,但不能引用。若沒有給內(nèi)部靜態(tài)變量賦初值,則系統(tǒng)自動賦初值0。 10001002100410061008100Ai1s11m210001002100410061008100Ai111m2s2362#includevoid format();void main() int i; for(i=1;i=5;i

56、+) printf(i=%d ,i); format(); /*定義函數(shù)format()*/void format() static int m =1,s=1; s=s*m; m+; printf(i!=%dn,s); 靜態(tài)類型static應(yīng)用演示234sm11CC語言程序設(shè)計第七章 數(shù)組【問題】輸入某班級6個學(xué)生某門課的成績,求平均成績并輸出小于平均分的學(xué)生分?jǐn)?shù)?!痉治觥客ㄟ^循環(huán)結(jié)構(gòu),用一個變量依次存儲6個成績,可以非常方便地求成績的累加和,進(jìn)而求出平均分。但要找出比平均分小的數(shù)就無法實現(xiàn)。當(dāng)然,可以用6個變量來實現(xiàn)存儲,但這樣會讓程序無法用循環(huán)結(jié)構(gòu)實現(xiàn),變得繁瑣?!窘鉀Q】可以使用數(shù)組來解決

57、,先將6個數(shù)保存到數(shù)組中去,等求過平均數(shù)后再從數(shù)組里取出6個數(shù)進(jìn)行比較。 數(shù)組的定義和分類在程序設(shè)計中,按序排列的同類型數(shù)據(jù)元素的集合稱為數(shù)組。數(shù)組屬于構(gòu)造數(shù)據(jù)類型。一個數(shù)組可以分解為多個數(shù)組元素,這些數(shù)組元素可以是基本數(shù)據(jù)類型或是構(gòu)造類型。根據(jù)數(shù)組的維數(shù),數(shù)組可分為一維數(shù)組和多維數(shù)組。根據(jù)數(shù)組元素的類型不同,數(shù)組又可分為數(shù)值數(shù)組、字符數(shù)組、指針數(shù)組、結(jié)構(gòu)數(shù)組等各種類別的數(shù)組。一維數(shù)組一維數(shù)組的聲明 數(shù)據(jù)類型 數(shù)組名長度; int a5; 定義了一個一維整型數(shù)組,數(shù)組名為a,有5個成員(數(shù)組元素),分別是: a0、a1、a2、a3、a4一維數(shù)組數(shù)組這一數(shù)據(jù)類型幫助我們實現(xiàn)了這樣多個數(shù)據(jù)的批量處

58、理問題。數(shù)組可以一次性聲明多個變量,只不過這些變量比較特別,具有相同的名字(即數(shù)組名),用下標(biāo)進(jìn)行區(qū)分。數(shù)組名用合法的標(biāo)識符命名,與變量的命名方法相同,且不能和程序中其它變量名相同。方括號中的數(shù)字表示數(shù)組的長度,即數(shù)組元素的個數(shù)。數(shù)組長度可以用常量、符號常量或常量表達(dá)式表示,不能是變量。數(shù)組元素的下標(biāo)從0開始,即下標(biāo)范圍從0到n-1。一維數(shù)組的賦值數(shù)組定義時給數(shù)組元素賦以初值逐個對數(shù)組元素賦值數(shù)組定義時給數(shù)組元素賦以初值對數(shù)組的全部元素賦初值 int num5=1,2,3,4,5; 將數(shù)組元素的初值依次放在一對花括號內(nèi),經(jīng)過上述定義及初始化之后,num0中為1, num1中為2, num2中為

59、3, num3中為4, num4中為5。 當(dāng)初值的個數(shù)大于數(shù)組長度時,作語法錯誤處理。 int num5=1,2,3,4,5,6; 是不合法的,因為num數(shù)組只能有5個元素。數(shù)組定義時給數(shù)組元素賦以初值對數(shù)組的部分元素賦初值 int num5=1,2,3; 只給前3個元素賦初值,其余2個元素的值為0。對全部數(shù)組元素賦初值時,可以不指定數(shù)組的長度。 int num =1,2,3,4,5; 等價于 int num 5=1,2,3,4,5;逐個對數(shù)組元素賦值int a5;a0=1;a1=2;a2=3;a3=4;a4=5;int a5,i; for(i=0;i5;i+) ai=i+1;等價逐個對數(shù)組元

60、素賦值int a5; scanf(“%d”,&a0);scanf(“%d”,&a1);scanf(“%d”,&a2); scanf(“%d”,&a3);scanf(“%d”,&a4);int a5,i; for(i=0;i5;i+) scanf(“%d”,&ai);等價冒泡法排序895420859420854920854290854209大數(shù)沉淀,小數(shù)起泡a0a1a2a3a4a5for(j=0;jaj+1) t=aj;aj=aj+1;aj+1=t; 985420854209584209548209542809542089a0a1a2a3a4a5for(i=0;jaj+1) t=aj;aj=aj

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論