




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、12關(guān)于本課程的學(xué)習(xí)關(guān)于本課程的學(xué)習(xí)l 為什么要學(xué)本課程為什么要學(xué)本課程l 怎么來學(xué)習(xí)本課程怎么來學(xué)習(xí)本課程3關(guān)于本課程的學(xué)習(xí)關(guān)于本課程的學(xué)習(xí)l 為什么要學(xué)程序設(shè)計?為什么要學(xué)程序設(shè)計?4關(guān)于本課程的學(xué)習(xí)關(guān)于本課程的學(xué)習(xí)為什么要學(xué)為什么要學(xué)C C?l C C不實用?不實用?l C C落后了?落后了?l C C難學(xué)?難學(xué)?5關(guān)于本課程的學(xué)習(xí)關(guān)于本課程的學(xué)習(xí)l 怎么來學(xué)習(xí)本課程?怎么來學(xué)習(xí)本課程?6C程序設(shè)計程序設(shè)計第一章第一章C語言概述語言概述第二章第二章數(shù)據(jù)類型及基本運算數(shù)據(jù)類型及基本運算第三章第三章順序結(jié)構(gòu)程序設(shè)計順序結(jié)構(gòu)程序設(shè)計第四章第四章選擇結(jié)構(gòu)程序設(shè)計選擇結(jié)構(gòu)程序設(shè)計第五章第五章循環(huán)結(jié)
2、構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計第六章第六章數(shù)組數(shù)組第七章第七章函數(shù)函數(shù)第八章第八章指針指針第九章第九章結(jié)構(gòu)與其他自定義類型結(jié)構(gòu)與其他自定義類型第十章第十章文件文件7第一章第一章 C語言概述語言概述l 概述概述l C程序簡介程序簡介8概述概述l 程序設(shè)計與高級語言程序設(shè)計與高級語言l C語言的產(chǎn)生與發(fā)展語言的產(chǎn)生與發(fā)展l C語言的特點語言的特點9程序設(shè)計與高級語言程序設(shè)計與高級語言l 機器指令機器指令l 指令系統(tǒng)指令系統(tǒng)l 機器語言機器語言l 機器程序機器程序10程序設(shè)計與高級語言程序設(shè)計與高級語言l 匯編指令匯編指令l 匯編語言匯編語言l 匯編語言源程序匯編語言源程序l 匯編程序匯編程序11程序設(shè)
3、計與高級語言程序設(shè)計與高級語言l 程序設(shè)計語言程序設(shè)計語言l 低級語言和高級語言低級語言和高級語言l 高級語言源程序、編高級語言源程序、編譯程序譯程序l 集成環(huán)境集成環(huán)境例:例:TC、VC等等12C語言的產(chǎn)生與發(fā)展語言的產(chǎn)生與發(fā)展l C語言發(fā)明于語言發(fā)明于1972年年l C+發(fā)明于發(fā)明于1980年年13C語言的特點語言的特點l 語言描述簡潔、靈活、高效語言描述簡潔、靈活、高效l 有豐富的數(shù)據(jù)類型和運算符有豐富的數(shù)據(jù)類型和運算符l 提供了功能齊全的函數(shù)庫提供了功能齊全的函數(shù)庫l 具有結(jié)構(gòu)化程序設(shè)計風(fēng)格具有結(jié)構(gòu)化程序設(shè)計風(fēng)格l 具有匯編語言特征具有匯編語言特征l 具有良好的通用性和程序的可移埴性具
4、有良好的通用性和程序的可移埴性14C程序簡介程序簡介l C程序設(shè)計規(guī)則程序設(shè)計規(guī)則l C程序的編譯與運行程序的編譯與運行15C程序設(shè)計規(guī)則程序設(shè)計規(guī)則l 程序中使用到的一切數(shù)據(jù)都必須在程序中使用到的一切數(shù)據(jù)都必須在使用之前對其類型和存儲屬性加以使用之前對其類型和存儲屬性加以定義和說明定義和說明l 函數(shù)是函數(shù)是C程序的基本模塊,它應(yīng)該包程序的基本模塊,它應(yīng)該包括函數(shù)名、參數(shù)說明表和函數(shù)體三括函數(shù)名、參數(shù)說明表和函數(shù)體三個部分個部分16C程序設(shè)計規(guī)則程序設(shè)計規(guī)則l一行上允許寫多個語句,或一句語句分一行上允許寫多個語句,或一句語句分寫在多行上,但語句結(jié)束前必須加分號寫在多行上,但語句結(jié)束前必須加分號
5、l允許在程序中插入注釋,注釋行必須以允許在程序中插入注釋,注釋行必須以規(guī)定的符號規(guī)定的符號“/*”開頭,以符號開頭,以符號“*/”結(jié)結(jié)束束l書寫格式自由,為提高程序的可讀性,書寫格式自由,為提高程序的可讀性,可采用可采用“縮進縮進”方式書寫方式書寫17C程序的編譯與運行程序的編譯與運行l(wèi) Cl C+l TCl VC18第第1章作業(yè):章作業(yè):l 利用利用printf函數(shù)打印自函數(shù)打印自己的姓名。己的姓名。將源文件將源文件hw1_1.c上上傳傳19第二章第二章 數(shù)據(jù)類型及基本運算數(shù)據(jù)類型及基本運算l 數(shù)據(jù)的表示數(shù)據(jù)的表示l 基本數(shù)據(jù)類型及其表示基本數(shù)據(jù)類型及其表示l 算術(shù)運算符和算術(shù)表達(dá)式算術(shù)運算
6、符和算術(shù)表達(dá)式20數(shù)據(jù)的表示數(shù)據(jù)的表示l 信息與數(shù)據(jù)的特征信息與數(shù)據(jù)的特征l 數(shù)據(jù)類型數(shù)據(jù)類型21信息與數(shù)據(jù)的特征信息與數(shù)據(jù)的特征l 信息信息l 數(shù)據(jù)數(shù)據(jù)l 數(shù)據(jù)處理數(shù)據(jù)處理22數(shù)據(jù)類型數(shù)據(jù)類型在在C語言中,數(shù)據(jù)總體上可分為語言中,數(shù)據(jù)總體上可分為l 基本類型基本類型l 構(gòu)造類型構(gòu)造類型l 指針類型指針類型23基本數(shù)據(jù)類型及其表示基本數(shù)據(jù)類型及其表示l 標(biāo)識符、常量與變量標(biāo)識符、常量與變量l 整型數(shù)據(jù)整型數(shù)據(jù)l 實型數(shù)據(jù)實型數(shù)據(jù)l 字符型數(shù)據(jù)字符型數(shù)據(jù)24標(biāo)識符、常量與變量標(biāo)識符、常量與變量l 標(biāo)識符標(biāo)識符l 常量常量l 變量變量25標(biāo)識符必須滿足以下定義規(guī)則:標(biāo)識符必須滿足以下定義規(guī)則:l
7、必須由字母或下劃線開始,由字必須由字母或下劃線開始,由字母、數(shù)字和下劃線組成的長度不母、數(shù)字和下劃線組成的長度不超過超過32的字符串的字符串l 大、小寫字母表示不同意義大、小寫字母表示不同意義l 不能與不能與C關(guān)鍵字同名關(guān)鍵字同名標(biāo)識符、常量與變量標(biāo)識符、常量與變量26常量可分為:常量可分為:l 數(shù)值常量數(shù)值常量l 符號常量符號常量標(biāo)識符、常量與變量標(biāo)識符、常量與變量27l 符號常量符號常量l 符號常量的定義:符號常量的定義:#define l 例:例:#define PI 3.1415926#define N 50標(biāo)識符、常量與變量標(biāo)識符、常量與變量28l 變量變量l 規(guī)定變量在使用前必須說
8、明規(guī)定變量在使用前必須說明l 變量的說明:變量的說明: l 例:例:int a,b,x;標(biāo)識符、常量與變量標(biāo)識符、常量與變量29l 在程序中,一個變量占據(jù)著一個在程序中,一個變量占據(jù)著一個實際的存儲單元,變量名實際上實際的存儲單元,變量名實際上是存儲單元的標(biāo)志,存儲單元中是存儲單元的標(biāo)志,存儲單元中的內(nèi)容是變量的值。的內(nèi)容是變量的值。l 允許在定義變量的同時對其賦初允許在定義變量的同時對其賦初值值標(biāo)識符、常量與變量標(biāo)識符、常量與變量30整型數(shù)據(jù)整型數(shù)據(jù)int a,b;short c,d; long m=6;long n=j=8;unsigned long k;a=123;b=045;c=d=0
9、 x3d8;k=0773L;31實型數(shù)據(jù)實型數(shù)據(jù)float a,b;double x,sum;a=29.56;b=6.8e-07;x=.33;sum=55.;32字符型數(shù)據(jù)字符型數(shù)據(jù)l 字符型常量字符型常量l 字符型常量中字母區(qū)分大小寫字符型常量中字母區(qū)分大小寫l 轉(zhuǎn)義字符以轉(zhuǎn)義字符以“”開頭來標(biāo)記開頭來標(biāo)記33字符型數(shù)據(jù)字符型數(shù)據(jù)char c1,c2,c3=A;c1=98int a,b=49;c2=b; a=c1;34基本運算符和表達(dá)式基本運算符和表達(dá)式l 算術(shù)運算符和算術(shù)表達(dá)式算術(shù)運算符和算術(shù)表達(dá)式l 賦值運算符和賦值表達(dá)式賦值運算符和賦值表達(dá)式l 逗號運算符和逗號表達(dá)式逗號運算符和逗號表
10、達(dá)式l 關(guān)系運算符和關(guān)系表達(dá)式關(guān)系運算符和關(guān)系表達(dá)式l 邏輯運算符和邏輯表達(dá)式邏輯運算符和邏輯表達(dá)式l 位運算符和位表達(dá)式位運算符和位表達(dá)式35算術(shù)運算符和算術(shù)表達(dá)式算術(shù)運算符和算術(shù)表達(dá)式l 算術(shù)運算符算術(shù)運算符36算術(shù)運算符和算術(shù)表達(dá)式算術(shù)運算符和算術(shù)表達(dá)式l 算術(shù)運算符的運算優(yōu)先級算術(shù)運算符的運算優(yōu)先級和結(jié)合性和結(jié)合性37算術(shù)運算符和算術(shù)表達(dá)式算術(shù)運算符和算術(shù)表達(dá)式l 算術(shù)表達(dá)式算術(shù)表達(dá)式l 說明:說明:l 在算術(shù)表達(dá)式中沒有上標(biāo)和下標(biāo)在算術(shù)表達(dá)式中沒有上標(biāo)和下標(biāo)l 乘號必須用乘號必須用*表示,不能省略表示,不能省略l 括號一律使用圓括號括號一律使用圓括號38算術(shù)運算符和算術(shù)表達(dá)式算術(shù)運算
11、符和算術(shù)表達(dá)式l 寫出下列代數(shù)式的寫出下列代數(shù)式的C表達(dá)式:表達(dá)式:l x是個三位數(shù),寫出取其各位數(shù)的是個三位數(shù),寫出取其各位數(shù)的表達(dá)式表達(dá)式xx212)1(loglog4xebbca101 x39算術(shù)運算符和算術(shù)表達(dá)式算術(shù)運算符和算術(shù)表達(dá)式l 自動類型轉(zhuǎn)換:自動類型轉(zhuǎn)換:main()float y,z=242.5; unsigned x=2; short s=4; y=10+b+5.7*x+z/a-s*12.5; printf(y=%f,y);40算術(shù)運算符和算術(shù)表達(dá)式算術(shù)運算符和算術(shù)表達(dá)式l 強制類型轉(zhuǎn)換:強制類型轉(zhuǎn)換:main()float x=4.55; printf(int)x=%d
12、,x=%f,(int)x,x); x=8*(int)(1/2+5/(float)2);41算術(shù)運算符和算術(shù)表達(dá)式算術(shù)運算符和算術(shù)表達(dá)式例:設(shè)例:設(shè)float x,y,z;x=6/4;y=6./4;z=-6.8%4結(jié)果:結(jié)果:x的值為的值為1.0,y的值為的值為1.542算術(shù)運算符和算術(shù)表達(dá)式算術(shù)運算符和算術(shù)表達(dá)式l 自增自增1、自減、自減1運算符為單目運算符運算符為單目運算符l 其有兩種運算形式:前綴形式和后綴其有兩種運算形式:前綴形式和后綴形式,功能不同形式,功能不同l 前綴形式的自增、自減前綴形式的自增、自減1運算的優(yōu)運算的優(yōu)先級高于算術(shù)運算符中的所有雙目運先級高于算術(shù)運算符中的所有雙目運
13、算符算符l 其運算對象只能是變量其運算對象只能是變量(可以是實數(shù)可以是實數(shù))43算術(shù)運算符和算術(shù)表達(dá)式算術(shù)運算符和算術(shù)表達(dá)式例:設(shè)例:設(shè)int x=5;則:則:y=+x;結(jié)果:結(jié)果:y=6,x=6y=x+;結(jié)果:結(jié)果:y=5,x=6x+;結(jié)果:結(jié)果:x=6y=x+*-x 結(jié)果:?結(jié)果:?44賦值運算符和賦值表達(dá)式賦值運算符和賦值表達(dá)式l 基本賦值運算符基本賦值運算符形式:形式:=功能:將賦值運算符右邊的表達(dá)式功能:將賦值運算符右邊的表達(dá)式的值賦給其左邊的變量。的值賦給其左邊的變量。45賦值運算符和賦值表達(dá)式賦值運算符和賦值表達(dá)式注意:注意:l 賦值號左邊只能是變量賦值號左邊只能是變量l 如果右
14、邊表達(dá)式類型與左邊變量的如果右邊表達(dá)式類型與左邊變量的類型不一致,則先將右邊表達(dá)式的類型不一致,則先將右邊表達(dá)式的值自動轉(zhuǎn)換成與左邊變量相同的類值自動轉(zhuǎn)換成與左邊變量相同的類型,再進行賦值型,再進行賦值46賦值運算符和賦值表達(dá)式賦值運算符和賦值表達(dá)式l 復(fù)合賦值運算符復(fù)合賦值運算符形式:形式:=功能:對賦值運算符左、右兩邊的功能:對賦值運算符左、右兩邊的運算對象進行指定的算術(shù)運算符運算對象進行指定的算術(shù)運算符的運算,再將運算結(jié)果賦予左邊的運算,再將運算結(jié)果賦予左邊的變量。的變量。47賦值運算符和賦值表達(dá)式賦值運算符和賦值表達(dá)式l a+=b;等價于等價于a=a+b;l a-=b; 等價于等價于a
15、=a-b;l a*=b+1; 等價于等價于a=a*(b+1);l x+=3+x%(-3);設(shè)設(shè)x=1148賦值運算符和賦值表達(dá)式賦值運算符和賦值表達(dá)式l 賦值表達(dá)式賦值表達(dá)式l k=j=1;l int k,a=1,j=5;l a+=j+;l a=20+(j=7);l a=(j=9)+(k=7);49逗號運算符和逗號表達(dá)式逗號運算符和逗號表達(dá)式l 逗號的用法有兩種:分隔符;逗號的用法有兩種:分隔符;運算符。運算符。l C允許用逗號連接表達(dá)式,雙目允許用逗號連接表達(dá)式,雙目運算符,運算優(yōu)先級最低。運算符,運算優(yōu)先級最低。a=2*6,a-4,a+15;50逗號運算符和逗號表達(dá)式逗號運算符和逗號表達(dá)式
16、l 逗號表達(dá)式逗號表達(dá)式t=a;a=b;b=t;t=a,a=b,b=t;x=(5+5,10+10);x=?int j=5;a=(a=j+1,a+2,a+3);a=?51關(guān)系運算符和關(guān)系表達(dá)式關(guān)系運算符和關(guān)系表達(dá)式關(guān)系運算符關(guān)系運算符l 6種關(guān)系運算符:種關(guān)系運算符:、=、=(優(yōu)先級高)、(優(yōu)先級高)、=、!=(優(yōu)先級低)(優(yōu)先級低)l 關(guān)系運算符優(yōu)先級低于算術(shù)運算符,關(guān)系運算符優(yōu)先級低于算術(shù)運算符,高于賦值運算符。高于賦值運算符。52關(guān)系運算符和關(guān)系表達(dá)式關(guān)系運算符和關(guān)系表達(dá)式l 關(guān)系表達(dá)式關(guān)系表達(dá)式fabs(x-y)y+xx!=y=z-2x=y=z-1若關(guān)系表達(dá)式成立,其值為非零,否則為零若
17、關(guān)系表達(dá)式成立,其值為非零,否則為零53邏輯運算符和邏輯表達(dá)式邏輯運算符和邏輯表達(dá)式邏輯運算符邏輯運算符l 3種邏輯運算符:!、種邏輯運算符:!、&、|l 運算規(guī)則運算規(guī)則l 優(yōu)先級優(yōu)先級54邏輯運算符和邏輯表達(dá)式邏輯運算符和邏輯表達(dá)式l 邏輯表達(dá)式邏輯表達(dá)式例:設(shè)例:設(shè)a=1,b=2,c=3(ab)&(c0)|a!a|(b=0)&(c=a)(!ab)&(c=b)&!a(a1)|(b+14)(ab)&(+c)c=?55邏輯運算符和邏輯表達(dá)式邏輯運算符和邏輯表達(dá)式注意:注意:l 代數(shù)中的不等式代數(shù)中的不等式0 x2l 15+8l 1133|2l 1&3|359運算符的優(yōu)先級運算符的優(yōu)先級+、-、
18、*/、%+-=,、=!=& |!& |60第第2章作業(yè):章作業(yè):l 完成教材中第完成教材中第2章的全部章的全部習(xí)題,答案寫在文本文件習(xí)題,答案寫在文本文件hw2.txt中上傳。中上傳。61第三章第三章 順序結(jié)構(gòu)程序設(shè)計順序結(jié)構(gòu)程序設(shè)計l 順序結(jié)構(gòu)的基本特點是構(gòu)成順序結(jié)構(gòu)的基本特點是構(gòu)成程序的語句都是按照其出現(xiàn)程序的語句都是按照其出現(xiàn)的順序逐條執(zhí)行的。的順序逐條執(zhí)行的。62第三章第三章 順序結(jié)構(gòu)程序設(shè)計順序結(jié)構(gòu)程序設(shè)計l 語句概述語句概述l 表達(dá)式語句表達(dá)式語句l 數(shù)據(jù)的輸出數(shù)據(jù)的輸出l 數(shù)據(jù)的輸入數(shù)據(jù)的輸入l 順序結(jié)構(gòu)程序設(shè)計舉例順序結(jié)構(gòu)程序設(shè)計舉例63語句概述語句概述說明:說明:l 每個語句
19、都要用分號結(jié)尾,分號每個語句都要用分號結(jié)尾,分號是語句間的分隔符是語句間的分隔符l 聲明部分的內(nèi)容不是語句聲明部分的內(nèi)容不是語句64基本語句基本語句l 包括表達(dá)式語句、復(fù)合語句包括表達(dá)式語句、復(fù)合語句和空語句和空語句65選擇控制語句選擇控制語句l 可以根據(jù)某個條件來控制和可以根據(jù)某個條件來控制和改變程序流向。改變程序流向。66重復(fù)控制語句重復(fù)控制語句l 這類語句可以根據(jù)某種條件這類語句可以根據(jù)某種條件控制一段程序被重復(fù)執(zhí)行多控制一段程序被重復(fù)執(zhí)行多次。次。67轉(zhuǎn)移語句轉(zhuǎn)移語句l 這類語句可以無條件地改變這類語句可以無條件地改變程序的流向。程序的流向。68表達(dá)式語句表達(dá)式語句x=y+z;x+y;
20、i+;printf(“%d”,x);a=b=c=2;i+=5+j;69表達(dá)式語句表達(dá)式語句注意:注意:l 表達(dá)式語句和賦值語句、賦值表達(dá)表達(dá)式語句和賦值語句、賦值表達(dá)式的關(guān)系式的關(guān)系l 賦值表達(dá)式可以出現(xiàn)在任何表達(dá)式賦值表達(dá)式可以出現(xiàn)在任何表達(dá)式允許出現(xiàn)的地方允許出現(xiàn)的地方l 聲明變量時不能采用多重賦值形式聲明變量時不能采用多重賦值形式70數(shù)據(jù)的輸出數(shù)據(jù)的輸出l C語言有輸入、輸出函數(shù),而語言有輸入、輸出函數(shù),而沒有輸入、輸出語句。沒有輸入、輸出語句。l include命令的格式:命令的格式:#include 或或#include “stdio.h”71putchar函數(shù)函數(shù)形式:形式:put
21、char ();功能:在顯示器上輸出功能:在顯示器上輸出一個一個字符字符參數(shù):可以是字符型變量、整型變量參數(shù):可以是字符型變量、整型變量或相應(yīng)的常量或相應(yīng)的常量72putchar函數(shù)函數(shù)例:使用庫函數(shù)例:使用庫函數(shù)putchar()輸出各種字符。輸出各種字符。main()char ch1,ch2;int i; ch1=C;ch2=h; i=105; putchar(ch1);putchar(ch2); putchar(i);putchar(n); putchar(141);putchar(n);73printf函數(shù)函數(shù)形式:形式:printf(“”,);74printf函數(shù)函數(shù)功能:功能:l
22、將各輸出項的值按指定的格式將各輸出項的值按指定的格式顯示在屏幕上顯示在屏幕上75printf函數(shù)函數(shù)參數(shù):參數(shù):l輸出項可以是變量、常量和表達(dá)式輸出項可以是變量、常量和表達(dá)式l格式控制字符串中允許包含格式編輯符和原格式控制字符串中允許包含格式編輯符和原樣輸出的字符串樣輸出的字符串l格式編輯符形式:格式編輯符形式:%l格式修飾包括:標(biāo)志、類型修飾、輸出最小格式修飾包括:標(biāo)志、類型修飾、輸出最小寬度和精度等寬度和精度等76printf函數(shù)函數(shù)標(biāo)志:標(biāo)志:l 標(biāo)志字符主要有標(biāo)志字符主要有-、+等。等。77printf函數(shù)函數(shù)輸出寬度:輸出寬度:l 可以用十進制數(shù)限定輸出數(shù)據(jù)可以用十進制數(shù)限定輸出數(shù)據(jù)
23、的位數(shù)的位數(shù)78printf函數(shù)函數(shù)精度:精度:l 對于對于float或或double類型的實型類型的實型數(shù),可以用數(shù),可以用“m.n”的形式指定的形式指定數(shù)據(jù)的輸出寬度和小數(shù)位數(shù)數(shù)據(jù)的輸出寬度和小數(shù)位數(shù)79printf函數(shù)函數(shù)類型修飾:類型修飾:l 類型修飾符有類型修飾符有h和和l兩種,兩種,l表示輸出表示輸出項是長整型、無符號長整型或雙精項是長整型、無符號長整型或雙精度實型度實型80printf函數(shù)函數(shù)特殊字符的輸出:特殊字符的輸出:l 可以用可以用“”輸出一個輸出一個“”;用用“%”輸出一個輸出一個“%”81printf函數(shù)函數(shù)注意:注意:l 格式控制字符串中的格式說明格式控制字符串中的
24、格式說明與輸出項必須保持類型相同和與輸出項必須保持類型相同和個數(shù)一致個數(shù)一致82數(shù)據(jù)的輸入數(shù)據(jù)的輸入83getchar函數(shù)函數(shù)形式:形式:getchar ();功能:從鍵盤上讀取功能:從鍵盤上讀取一個一個字符字符參數(shù):不帶任何參數(shù),函數(shù)的返回值參數(shù):不帶任何參數(shù),函數(shù)的返回值是輸入字符的是輸入字符的ASCII碼碼84getchar函數(shù)函數(shù)main()char c; c=getchar(); printf(%c:%dn,c,c);85scanf函數(shù)函數(shù)形式:形式:scanf (“”,輸入項輸入項1,輸入項輸入項2,);86scanf函數(shù)函數(shù)功能:功能:l 按指定的格式接收由鍵盤輸入的按指定的格式
25、接收由鍵盤輸入的數(shù)據(jù),并存入輸入項變量所在的數(shù)據(jù),并存入輸入項變量所在的內(nèi)存單元中內(nèi)存單元中87scanf函數(shù)函數(shù)參數(shù):參數(shù):l 格式控制字符串與格式控制字符串與printf函數(shù)函數(shù)類似,包含格式編輯符和原樣類似,包含格式編輯符和原樣輸入字符輸入字符l 輸入項必須為地址引用,通常輸入項必須為地址引用,通常由由“&”后面跟變量名組成后面跟變量名組成88scanf函數(shù)函數(shù)參數(shù)參數(shù)l 格式編輯符的形式:格式編輯符的形式:%89scanf函數(shù)函數(shù)常用的格式控制常用的格式控制l格式字符:用于規(guī)定相應(yīng)輸入項的輸入格式格式字符:用于規(guī)定相應(yīng)輸入項的輸入格式l輸入數(shù)據(jù)寬度:輸入數(shù)據(jù)寬度:scanf函數(shù)允許用十
26、進制整函數(shù)允許用十進制整數(shù)設(shè)定輸入數(shù)據(jù)的寬度,系統(tǒng)自動按此寬度數(shù)設(shè)定輸入數(shù)據(jù)的寬度,系統(tǒng)自動按此寬度截取所需數(shù)據(jù)截取所需數(shù)據(jù)l類型修飾符:類型修飾符為類型修飾符:類型修飾符為h和和l,分別表示,分別表示輸入短整型和長整型數(shù)據(jù)(或雙精度實型)輸入短整型和長整型數(shù)據(jù)(或雙精度實型)90scanf函數(shù)函數(shù)注意:注意:l對于基本類型變量,對于基本類型變量,scanf函數(shù)要求在函數(shù)要求在輸入項中給出變量地址,但使用輸入項中給出變量地址,但使用s格式格式輸入字符串時除外輸入字符串時除外l輸入數(shù)據(jù)時,不允許規(guī)定精度輸入數(shù)據(jù)時,不允許規(guī)定精度l輸入數(shù)據(jù)時,數(shù)據(jù)與數(shù)據(jù)之間應(yīng)使用分輸入數(shù)據(jù)時,數(shù)據(jù)與數(shù)據(jù)之間應(yīng)使用
27、分隔符隔符91scanf函數(shù)函數(shù)注意:注意:l按原樣輸入的字符在鍵入時不能遺漏,按原樣輸入的字符在鍵入時不能遺漏,否則將導(dǎo)致數(shù)據(jù)項與對應(yīng)讀入數(shù)據(jù)錯位否則將導(dǎo)致數(shù)據(jù)項與對應(yīng)讀入數(shù)據(jù)錯位l鍵入數(shù)據(jù)的類型、寬度應(yīng)該與格式控制鍵入數(shù)據(jù)的類型、寬度應(yīng)該與格式控制中給定的相一致中給定的相一致92順序結(jié)構(gòu)程序設(shè)計舉例順序結(jié)構(gòu)程序設(shè)計舉例l 將鍵盤輸入的兩個整數(shù)相互交換并將鍵盤輸入的兩個整數(shù)相互交換并輸出交換前后的值輸出交換前后的值l 將鍵盤輸入的三位整數(shù)逆序并輸出將鍵盤輸入的三位整數(shù)逆序并輸出93第第3章作業(yè):章作業(yè):l 完成教材中第完成教材中第3章習(xí)題章習(xí)題3.1(1) ,答案寫在文,答案寫在文本文件中上
28、傳。本文件中上傳。l 完成教材中第完成教材中第3章習(xí)題章習(xí)題3.4 、3.7、3.8,上,上傳源文件。傳源文件。94第四章第四章 選擇結(jié)構(gòu)程序設(shè)計選擇結(jié)構(gòu)程序設(shè)計l C語言提供的選擇結(jié)構(gòu)語句語言提供的選擇結(jié)構(gòu)語句有有if語句和語句和switch語句語句l 由這類選擇語句構(gòu)成的程序由這類選擇語句構(gòu)成的程序稱為選擇結(jié)構(gòu)程序。稱為選擇結(jié)構(gòu)程序。95第四章第四章 選擇結(jié)構(gòu)程序設(shè)計選擇結(jié)構(gòu)程序設(shè)計l 條件條件l if語句語句l switch語句語句l 應(yīng)用舉例應(yīng)用舉例96條件條件l 條件就是一個表達(dá)式,若以非條件就是一個表達(dá)式,若以非零作為表達(dá)式成立,以零作為零作為表達(dá)式成立,以零作為表達(dá)式不成立,就會
29、得到兩種表達(dá)式不成立,就會得到兩種可能,即可能,即“真真”或或“假假”,這,這就是條件判斷。就是條件判斷?!罢嬲妗迸c與“假假”又稱為邏輯值。又稱為邏輯值。97關(guān)系運算關(guān)系運算關(guān)系運算符關(guān)系運算符l 6種關(guān)系運算符:種關(guān)系運算符:、=、=(優(yōu)先級高)、(優(yōu)先級高)、=、!=(優(yōu)先級低)(優(yōu)先級低)l 關(guān)系運算符優(yōu)先級低于算術(shù)運算符,關(guān)系運算符優(yōu)先級低于算術(shù)運算符,高于賦值運算符。高于賦值運算符。98邏輯運算邏輯運算邏輯運算符邏輯運算符l 3種邏輯運算符:!、種邏輯運算符:!、&、|l 運算規(guī)則運算規(guī)則l 優(yōu)先級優(yōu)先級99條件運算條件運算條件運算符條件運算符l 1個條件運算符:個條件運算符:?:l
30、 優(yōu)先級優(yōu)先級100條件運算條件運算l 條件表達(dá)式條件表達(dá)式形式:形式:?:101條件運算條件運算語義:語義:l 先計算表達(dá)式先計算表達(dá)式1的值,若結(jié)果為非的值,若結(jié)果為非0,則以表達(dá)式,則以表達(dá)式2的值作為整個條的值作為整個條件表達(dá)式的值;若為件表達(dá)式的值;若為0,則以表達(dá),則以表達(dá)式式3的值作為整個表達(dá)式的值。的值作為整個表達(dá)式的值。102條件運算條件運算l 例:例:(x0)?1:-1x0?1:(xy)?x:y;103條件運算條件運算說明:說明:l 條件表達(dá)式中的表達(dá)式條件表達(dá)式中的表達(dá)式2和表達(dá)式和表達(dá)式3應(yīng)該有確定的值,二者通常為同類應(yīng)該有確定的值,二者通常為同類型型l 表達(dá)式表達(dá)式2
31、和表達(dá)式和表達(dá)式3中有一個表達(dá)式中有一個表達(dá)式不會被計算。不會被計算。104if語句語句l if語句是用于選擇結(jié)構(gòu)的控制語句是用于選擇結(jié)構(gòu)的控制語句,根據(jù)給定條件進行判斷,語句,根據(jù)給定條件進行判斷,以決定所要執(zhí)行的操作。以決定所要執(zhí)行的操作。105單邊形式單邊形式if語句語句形式:形式:if();語義:語義:l 先計算先計算“表達(dá)式表達(dá)式”的值,若結(jié)果為非的值,若結(jié)果為非0,就執(zhí)行就執(zhí)行“語句語句”,否則直接執(zhí)行,否則直接執(zhí)行if語句語句的后續(xù)語句的后續(xù)語句106單邊形式單邊形式if語句語句注意:注意:l if是是C語言的關(guān)鍵字語言的關(guān)鍵字l “表達(dá)式表達(dá)式”允許是任何表達(dá)式,其兩允許是任何
32、表達(dá)式,其兩側(cè)的圓括號不可少側(cè)的圓括號不可少l “語句語句”為為if的執(zhí)行塊,如果其中包含的執(zhí)行塊,如果其中包含多個語句,必須用多個語句,必須用將其括成復(fù)合語句將其括成復(fù)合語句107雙邊形式雙邊形式if語句語句形式:形式:if();else;語義:語義:l 先計算先計算“表達(dá)式表達(dá)式”的值,若結(jié)果為的值,若結(jié)果為非非0,則執(zhí)行,則執(zhí)行“語句語句1”;若為;若為0,則,則執(zhí)行執(zhí)行“語句語句2”。108雙邊形式雙邊形式if語句語句說明:說明:l else必須與必須與if語句配對使用語句配對使用l else前面的語句必須用分號結(jié)束前面的語句必須用分號結(jié)束l 雖然條件表達(dá)式和雖然條件表達(dá)式和if語句都
33、能構(gòu)語句都能構(gòu)成選擇結(jié)構(gòu),但條件表達(dá)式不能成選擇結(jié)構(gòu),但條件表達(dá)式不能取代所有的取代所有的if語句語句109if語句的嵌套語句的嵌套l 當(dāng)當(dāng)if語句或語句或else語句的執(zhí)行塊語句的執(zhí)行塊中又出現(xiàn)中又出現(xiàn)if語句時,就形成了語句時,就形成了if語句的嵌套。語句的嵌套。110if語句的嵌套語句的嵌套說明:說明:l 在多層嵌套中,在多層嵌套中,C語句規(guī)定,語句規(guī)定,else總是與前面最近的沒有配過對的總是與前面最近的沒有配過對的if配對,與程序書寫格式無關(guān)配對,與程序書寫格式無關(guān)111應(yīng)用舉例應(yīng)用舉例l 編寫程序,從鍵盤輸入三個數(shù),按編寫程序,從鍵盤輸入三個數(shù),按從小到大的順序依次輸出。從小到大的
34、順序依次輸出。l 編寫程序,從鍵盤輸入一個成績,編寫程序,從鍵盤輸入一個成績,輸出其成績等級。輸出其成績等級。112switch語句語句形式:形式:switch() case :;break; case :;break; case :;break; default: ;113switch語句語句語義:語義:l先計算先計算switch右邊右邊“表達(dá)式表達(dá)式”的值,并將其的值,并將其逐個與逐個與case行中的行中的“常量表達(dá)式常量表達(dá)式”的值相比的值相比較,若相等,則執(zhí)行該較,若相等,則執(zhí)行該case行給出的語句,行給出的語句,然后跳出然后跳出switch語句;若語句;若“表達(dá)式表達(dá)式”的值不的值
35、不等于任何等于任何case行給出的行給出的“常量表達(dá)式常量表達(dá)式”的值,的值,則轉(zhuǎn)向并執(zhí)行則轉(zhuǎn)向并執(zhí)行default行指引的語句;若沒行指引的語句;若沒有有default行,則直接跳出行,則直接跳出switch結(jié)構(gòu),轉(zhuǎn)結(jié)構(gòu),轉(zhuǎn)去執(zhí)行后續(xù)語句。去執(zhí)行后續(xù)語句。114switch語句語句說明:說明:lswitch是關(guān)鍵字,其后面用是關(guān)鍵字,其后面用括起來的括起來的部分是其語句體部分是其語句體lcase也是關(guān)鍵字,其后跟的也是關(guān)鍵字,其后跟的“常量表達(dá)常量表達(dá)式式”與冒號一起構(gòu)成語句標(biāo)號,與冒號一起構(gòu)成語句標(biāo)號,case與與“常量表達(dá)式常量表達(dá)式”之間必須有空格之間必須有空格115switch語句語
36、句說明:說明:l在同一個在同一個switch語句中,語句中,“常量表達(dá)式常量表達(dá)式”的值必須唯一的值必須唯一lswitch后面的后面的“表達(dá)式表達(dá)式”可以是整型、可以是整型、字符型和枚舉型,但不能是實型,字符型和枚舉型,但不能是實型,“表表達(dá)式達(dá)式”的值與的值與“常量表達(dá)式常量表達(dá)式”的值應(yīng)保的值應(yīng)保持類型一致持類型一致116switch語句語句說明:說明:ldefault行可以出現(xiàn)在行可以出現(xiàn)在switch語句體的任語句體的任何位置,也可以省略何位置,也可以省略lcase標(biāo)號后面跟的語句允許是多個語句,標(biāo)號后面跟的語句允許是多個語句,可以不加語句括號可以不加語句括號l一個語句也可以被多個一個
37、語句也可以被多個case行共用行共用lbreak也是關(guān)鍵字,其可以中止也是關(guān)鍵字,其可以中止switch語語句繼續(xù)往下執(zhí)行句繼續(xù)往下執(zhí)行117應(yīng)用舉例應(yīng)用舉例l 編寫程序,從鍵盤輸入編寫程序,從鍵盤輸入1到到7之間之間的一個整數(shù),要求:輸入正確則輸?shù)囊粋€整數(shù),要求:輸入正確則輸出相應(yīng)的星期名稱,否則輸出錯誤出相應(yīng)的星期名稱,否則輸出錯誤提示。提示。118第第4章作業(yè):章作業(yè):l 作業(yè)上傳系統(tǒng)中作業(yè)上傳系統(tǒng)中N4.doc中的習(xí)題。中的習(xí)題。l 完成教材中第完成教材中第4章習(xí)題章習(xí)題4.2 、4.4、4.7、4.9,上傳源文件。上傳源文件。119第五章第五章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計l 循
38、環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計的三種循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu)之一,它與順序結(jié)構(gòu)、選基本結(jié)構(gòu)之一,它與順序結(jié)構(gòu)、選擇結(jié)構(gòu)一起,構(gòu)成各種復(fù)雜的程序。擇結(jié)構(gòu)一起,構(gòu)成各種復(fù)雜的程序。l 在在C語言中,用于循環(huán)結(jié)構(gòu)程序設(shè)計語言中,用于循環(huán)結(jié)構(gòu)程序設(shè)計的語句有:的語句有:while語句、語句、do-while語語句和句和for語句。語句。120第五章第五章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計l while語句語句l do-while語句語句l for語句語句l 循環(huán)結(jié)構(gòu)中的轉(zhuǎn)移語句循環(huán)結(jié)構(gòu)中的轉(zhuǎn)移語句l 循環(huán)結(jié)構(gòu)的嵌套循環(huán)結(jié)構(gòu)的嵌套l 應(yīng)用舉例應(yīng)用舉例121while語句語句形式:形式:while(
39、);122while語句語句語義:語義:l 先計算圓括號中表達(dá)式的值,判斷先計算圓括號中表達(dá)式的值,判斷其是否為其是否為0,若為非,若為非0,表示循環(huán)條,表示循環(huán)條件滿足,執(zhí)行循環(huán)體,如此重復(fù),件滿足,執(zhí)行循環(huán)體,如此重復(fù),直至表達(dá)式的值為直至表達(dá)式的值為0,退出,退出while循循環(huán),執(zhí)行后續(xù)語句。環(huán),執(zhí)行后續(xù)語句。123while語句語句k=4;while(k2)printf(“*”);k=k-1;printf(“k=%d”,k);124while語句語句說明:說明:l while是是C關(guān)鍵字,圓括號內(nèi)的關(guān)鍵字,圓括號內(nèi)的“表表達(dá)式達(dá)式”可以是任意合法的表達(dá)式可以是任意合法的表達(dá)式l 循環(huán)
40、體只包含一句語句循環(huán)體只包含一句語句l 注意注意if語句和語句和while語句的差別語句的差別l 循環(huán)體要有使循環(huán)結(jié)束的語句循環(huán)體要有使循環(huán)結(jié)束的語句125while語句語句實例:實例:l 求正整數(shù)求正整數(shù)n的階乘的階乘l 用字符打印圖形用字符打印圖形126do-while語句語句形式:形式:do ;while();127do-while語句語句語義:語義:l 先執(zhí)行循環(huán)體一次,然后判斷表先執(zhí)行循環(huán)體一次,然后判斷表達(dá)式是否成立,若為非達(dá)式是否成立,若為非0,表示,表示成立,就繼續(xù)執(zhí)行循環(huán)體,否則成立,就繼續(xù)執(zhí)行循環(huán)體,否則結(jié)束循環(huán),執(zhí)行結(jié)束循環(huán),執(zhí)行do-while語句的語句的后續(xù)語句。后續(xù)
41、語句。128do-while語句語句int sum=0,i=1;do sum=sum+i;i+;while(i=5);129do-while語句語句說明:說明:l do和和while是是C關(guān)鍵字,圓括號內(nèi)的關(guān)鍵字,圓括號內(nèi)的“表達(dá)式表達(dá)式”可以是任意合法的表達(dá)可以是任意合法的表達(dá)式式l 循環(huán)體至少被執(zhí)行一次循環(huán)體至少被執(zhí)行一次l 循環(huán)體只包含一句語句循環(huán)體只包含一句語句l 循環(huán)體要有使循環(huán)結(jié)束的語句循環(huán)體要有使循環(huán)結(jié)束的語句130do-while語句語句實例:實例:l求正整數(shù)求正整數(shù)n的階乘的階乘l求求 或或的值的值975369753xxxxx31x73523152313112! 41! 31
42、! 21! 111e9171513114131for語句語句形式:形式:for(;) ;等價于:等價于:;while() ; ;132for語句語句語義:語義:l先計算表達(dá)式先計算表達(dá)式1的值;的值;l再計算表達(dá)式再計算表達(dá)式2的值,并判斷其是否為的值,并判斷其是否為0,若為,若為0,則跳出循環(huán),執(zhí)行,則跳出循環(huán),執(zhí)行for語句語句的后續(xù)語句;的后續(xù)語句;l表達(dá)式表達(dá)式2的值若為非的值若為非0,則執(zhí)行循環(huán)體,則執(zhí)行循環(huán)體一次,再計算表達(dá)式一次,再計算表達(dá)式3的值,轉(zhuǎn)到步驟的值,轉(zhuǎn)到步驟2重復(fù)執(zhí)行。重復(fù)執(zhí)行。133for語句語句product=1for(i=1;i5;i+) product=pr
43、oduct*i;134for語句語句說明:說明:l for是是C關(guān)鍵字,圓括號內(nèi)的三個關(guān)鍵字,圓括號內(nèi)的三個“表達(dá)式表達(dá)式”可以是任意合法的表可以是任意合法的表達(dá)式達(dá)式l 循環(huán)體只包含一句語句循環(huán)體只包含一句語句l 循環(huán)體要有使循環(huán)結(jié)束的語句循環(huán)體要有使循環(huán)結(jié)束的語句135for語句語句說明:說明:l for語句中的各表達(dá)式都可以省略,語句中的各表達(dá)式都可以省略,但分號間隔符不能少但分號間隔符不能少l 若表達(dá)式若表達(dá)式2省略,則循環(huán)體中必須省略,則循環(huán)體中必須有控制循環(huán)結(jié)束的有控制循環(huán)結(jié)束的break語句,否語句,否則將造成死循環(huán)則將造成死循環(huán)l 循環(huán)體可以是空語句循環(huán)體可以是空語句136fo
44、r語句語句實例:實例:l求正整數(shù)求正整數(shù)n的階乘的階乘l求求 或或的值的值975369753xxxxx31x73523152313112! 41! 31! 21! 111e9171513114137循環(huán)結(jié)構(gòu)中的轉(zhuǎn)移語句循環(huán)結(jié)構(gòu)中的轉(zhuǎn)移語句break語句語句l 形式:形式:break;l break語句只能用在語句只能用在switch語句或語句或循環(huán)語句中,當(dāng)用在循環(huán)中時,其循環(huán)語句中,當(dāng)用在循環(huán)中時,其功能是終止當(dāng)前的循環(huán),轉(zhuǎn)向后續(xù)功能是終止當(dāng)前的循環(huán),轉(zhuǎn)向后續(xù)語句執(zhí)行。語句執(zhí)行。138循環(huán)結(jié)構(gòu)中的轉(zhuǎn)移語句循環(huán)結(jié)構(gòu)中的轉(zhuǎn)移語句例:例:for(x=1,y=0;x5)break; printf(“
45、y=%dn”,y);實例:實例:判斷一個整數(shù)是否為素數(shù)判斷一個整數(shù)是否為素數(shù)139循環(huán)結(jié)構(gòu)中的轉(zhuǎn)移語句循環(huán)結(jié)構(gòu)中的轉(zhuǎn)移語句continue語句語句l 形式:形式:continue;l 該語句只能用在循環(huán)中,其功能是該語句只能用在循環(huán)中,其功能是結(jié)束本次循環(huán),即跳過循環(huán)體中位結(jié)束本次循環(huán),即跳過循環(huán)體中位于于continue語句后面的語句,轉(zhuǎn)入語句后面的語句,轉(zhuǎn)入下一次循環(huán)條件的判斷與執(zhí)行,并下一次循環(huán)條件的判斷與執(zhí)行,并不結(jié)束循環(huán)。不結(jié)束循環(huán)。140循環(huán)結(jié)構(gòu)的嵌套循環(huán)結(jié)構(gòu)的嵌套l 當(dāng)一個循環(huán)語句的循環(huán)體中又當(dāng)一個循環(huán)語句的循環(huán)體中又出現(xiàn)另一個循環(huán)語句時,就構(gòu)出現(xiàn)另一個循環(huán)語句時,就構(gòu)成了循環(huán)的
46、嵌套。成了循環(huán)的嵌套。141循環(huán)結(jié)構(gòu)的嵌套循環(huán)結(jié)構(gòu)的嵌套注意:注意:l 內(nèi)循環(huán)是外循環(huán)的循環(huán)體,外內(nèi)循環(huán)是外循環(huán)的循環(huán)體,外循環(huán)每執(zhí)行一遍,內(nèi)循環(huán)就執(zhí)循環(huán)每執(zhí)行一遍,內(nèi)循環(huán)就執(zhí)行一周行一周142應(yīng)用舉例應(yīng)用舉例l 用字符打印圖形用字符打印圖形(楊輝三角形楊輝三角形)l 求解百雞問題求解百雞問題l 輸出輸出2到到200之間的所有素數(shù)之間的所有素數(shù)l 求兩個整數(shù)的最大公約數(shù)和最求兩個整數(shù)的最大公約數(shù)和最小公倍數(shù)小公倍數(shù)143第第5章作業(yè):章作業(yè):l 作業(yè)上傳系統(tǒng)中作業(yè)上傳系統(tǒng)中N5.doc中的習(xí)題。中的習(xí)題。l 完成教材中第完成教材中第5章習(xí)題章習(xí)題5.1 、5.9,上傳源文件。,上傳源文件。14
47、4第六章第六章 數(shù)組數(shù)組l 例:求一個班級例:求一個班級50個學(xué)生的平均個學(xué)生的平均成績。成績。l 如果還要找出高于平均成績的學(xué)如果還要找出高于平均成績的學(xué)生名單,如何實現(xiàn)?生名單,如何實現(xiàn)?145第六章第六章 數(shù)組數(shù)組l C語言支持兩種構(gòu)造數(shù)據(jù)類型:語言支持兩種構(gòu)造數(shù)據(jù)類型:數(shù)組類型和結(jié)構(gòu)類型數(shù)組類型和結(jié)構(gòu)類型l 構(gòu)造類型的數(shù)據(jù)可分解為多個元構(gòu)造類型的數(shù)據(jù)可分解為多個元素,其中每一個元素可以是基本素,其中每一個元素可以是基本類型或又是一個構(gòu)造類型。作為類型或又是一個構(gòu)造類型。作為構(gòu)造類型的最低層元素只能是基構(gòu)造類型的最低層元素只能是基本類型本類型146第六章第六章 數(shù)組數(shù)組l 數(shù)組概念的引入
48、數(shù)組概念的引入l 數(shù)組的說明數(shù)組的說明l 數(shù)組的引用數(shù)組的引用l 數(shù)組的存儲結(jié)構(gòu)數(shù)組的存儲結(jié)構(gòu)l 數(shù)組的賦初值數(shù)組的賦初值l 數(shù)組應(yīng)用舉例數(shù)組應(yīng)用舉例l 字符數(shù)組與字符串處理字符數(shù)組與字符串處理147數(shù)組概念的引入數(shù)組概念的引入l 數(shù)組是個多值變量,一個數(shù)組數(shù)組是個多值變量,一個數(shù)組變量由一組同名但不同下標(biāo)的變量由一組同名但不同下標(biāo)的元素構(gòu)成元素構(gòu)成l 用數(shù)組來存儲邏輯相關(guān)的數(shù)據(jù)用數(shù)組來存儲邏輯相關(guān)的數(shù)據(jù)實體,程序可方便地按下標(biāo)組實體,程序可方便地按下標(biāo)組織循環(huán)織循環(huán)148數(shù)組概念的引入數(shù)組概念的引入l 數(shù)組包含的所有元素都具有數(shù)組包含的所有元素都具有相同名字和相同的數(shù)據(jù)類型相同名字和相同的數(shù)
49、據(jù)類型l 用數(shù)組名和元素在數(shù)組中的用數(shù)組名和元素在數(shù)組中的序號可唯一地確定某個數(shù)組序號可唯一地確定某個數(shù)組元素元素l 多維數(shù)組多維數(shù)組149數(shù)組的說明數(shù)組的說明形式:形式: 例:例:int a5,b45;float x4;150數(shù)組的說明數(shù)組的說明l 數(shù)組說明的作用是為數(shù)組預(yù)留數(shù)組說明的作用是為數(shù)組預(yù)留空間空間l 數(shù)據(jù)類型為數(shù)組的數(shù)據(jù)類型為數(shù)組的“基類型基類型”,整數(shù)整數(shù)表達(dá)式定義了數(shù)組中所含表達(dá)式定義了數(shù)組中所含元素的個數(shù),元素的個數(shù),運算符的個數(shù)運算符的個數(shù)決定了數(shù)組的維數(shù)。決定了數(shù)組的維數(shù)。151數(shù)組的說明數(shù)組的說明注意:注意:l 在在C語言中,數(shù)組元素的下標(biāo)起語言中,數(shù)組元素的下標(biāo)起始
50、值為始值為0而不是而不是1l 下標(biāo)運算符中的整數(shù)表達(dá)式代表下標(biāo)運算符中的整數(shù)表達(dá)式代表數(shù)組每一維的長度數(shù)組每一維的長度l 下標(biāo)運算符中不允許使用變量定下標(biāo)運算符中不允許使用變量定義數(shù)組長度,允許包含常量和義數(shù)組長度,允許包含常量和sizeof表達(dá)式表達(dá)式152數(shù)組的說明數(shù)組的說明#define N 50int a3+2;char cN;float dsizeof(double);double fsizeof(a);153數(shù)組的引用數(shù)組的引用形式:形式:其中:其中:“下標(biāo)下標(biāo)1”、“下標(biāo)下標(biāo)2”等為整等為整型表達(dá)式,代表了該元素在內(nèi)存中型表達(dá)式,代表了該元素在內(nèi)存中的排列位置。的排列位置。154
51、數(shù)組的引用數(shù)組的引用說明:說明:l 引用下標(biāo)變量時,所給出的下標(biāo)引用下標(biāo)變量時,所給出的下標(biāo)個數(shù)必須與所定義的數(shù)組維數(shù)相個數(shù)必須與所定義的數(shù)組維數(shù)相一致,而且每一個下標(biāo)表達(dá)式的一致,而且每一個下標(biāo)表達(dá)式的值不得超界值不得超界l 凡是數(shù)組基類型變量能使用的運凡是數(shù)組基類型變量能使用的運算,數(shù)組元素也能使用算,數(shù)組元素也能使用155一維數(shù)組遍歷一維數(shù)組遍歷for(i=0;in;i+)ai156二維數(shù)組遍歷二維數(shù)組遍歷for(i=0;in;i+) for(j=0;jm;j+) aij 157數(shù)組的賦初值數(shù)組的賦初值形式:形式: =;158數(shù)組的賦初值數(shù)組的賦初值float x4=-1.0,0.0,2
52、.7,5.2E-8;int y32=0,1,2,3,4,5;int z32=0,1,2,3,4,5;char s6=H,e,l,l,o;或:或:char s6=“hello”;char s5=“hello”;char s4=“hello”;159數(shù)組的賦初值數(shù)組的賦初值注意:注意:l 對數(shù)組賦初值時,若初值表中常數(shù)對數(shù)組賦初值時,若初值表中常數(shù)個數(shù)少于數(shù)組元素的個數(shù),這表示個數(shù)少于數(shù)組元素的個數(shù),這表示僅對數(shù)組中排列靠前的元素賦初值,僅對數(shù)組中排列靠前的元素賦初值,后面元素的值自動賦后面元素的值自動賦0;若初值表;若初值表中給定的初值多于下標(biāo)變量的個數(shù),中給定的初值多于下標(biāo)變量的個數(shù),將出現(xiàn)編
53、譯錯誤將出現(xiàn)編譯錯誤160數(shù)組的賦初值數(shù)組的賦初值注意:注意:l C語言允許使用一維數(shù)組賦初值的語言允許使用一維數(shù)組賦初值的方法對多維數(shù)組賦初值方法對多維數(shù)組賦初值l C語言允許在數(shù)組定義時不指定維語言允許在數(shù)組定義時不指定維的長度(只能是第一維),由初值的長度(只能是第一維),由初值表中初值的個數(shù)來間接決定長度表中初值的個數(shù)來間接決定長度161數(shù)組的賦初值數(shù)組的賦初值float x=-1.0,0.0,2.7,5.2E-8;int y2=0,1,2,3,4,5;int z2=0,1,2,3,4,5;char s=“hello”162數(shù)組應(yīng)用舉例數(shù)組應(yīng)用舉例l 閱讀程序?qū)懗鼋Y(jié)果:閱讀程序?qū)懗鼋Y(jié)果
54、:l 冒泡排序(選擇排序)冒泡排序(選擇排序)l 打印楊輝三角形打印楊輝三角形163數(shù)組的存儲結(jié)構(gòu)數(shù)組的存儲結(jié)構(gòu)l 一維數(shù)組的存儲結(jié)構(gòu)一維數(shù)組的存儲結(jié)構(gòu)l 二維數(shù)組的存儲結(jié)構(gòu)二維數(shù)組的存儲結(jié)構(gòu)164數(shù)組的存儲結(jié)構(gòu)數(shù)組的存儲結(jié)構(gòu)l 數(shù)組第一個元素的存儲數(shù)組第一個元素的存儲地址就是整個數(shù)組的存地址就是整個數(shù)組的存儲首地址,該地址放在儲首地址,該地址放在數(shù)組名中數(shù)組名中l(wèi) 一維數(shù)組的存儲結(jié)構(gòu)一維數(shù)組的存儲結(jié)構(gòu)165數(shù)組的存儲結(jié)構(gòu)數(shù)組的存儲結(jié)構(gòu)l 二維數(shù)組的存儲結(jié)構(gòu)為二維數(shù)組的存儲結(jié)構(gòu)為“按按行線性展開,順序存放行線性展開,順序存放”,即按:即按:a00,a01,a02,a10,a11,a12,l 二
55、維數(shù)組的存儲結(jié)構(gòu)二維數(shù)組的存儲結(jié)構(gòu)166數(shù)組的存儲結(jié)構(gòu)數(shù)組的存儲結(jié)構(gòu)l 比較兩組程序段:比較兩組程序段:for i=0 to 3 for j=0 to 4 aij=i*10+j和:和:for j=0 to 4 for i=0 to 3 aij=i*10+j167字符數(shù)組與字符串處理字符數(shù)組與字符串處理l 在在C語言中,沒有標(biāo)準(zhǔn)的字符語言中,沒有標(biāo)準(zhǔn)的字符串定義類型,字符串被當(dāng)作字串定義類型,字符串被當(dāng)作字符數(shù)組來處理。符數(shù)組來處理。168字符數(shù)組的定義字符數(shù)組的定義形式:形式:char 169字符數(shù)組的定義字符數(shù)組的定義說明說明l 字符數(shù)組中的元素只能存放一字符數(shù)組中的元素只能存放一個字符型數(shù)
56、據(jù)個字符型數(shù)據(jù)l 與普通數(shù)組一樣,字符數(shù)組也與普通數(shù)組一樣,字符數(shù)組也可以在定義時賦初值可以在定義時賦初值170字符數(shù)組的定義字符數(shù)組的定義char string100,cblock2020;string0=T;cblock25=h;char chr6=C,h,i,n,a;char line1100=“Shanghai”;或或char line1100=”Shanghai”;line1=“Shanghai”;171字符串的結(jié)束標(biāo)記字符串的結(jié)束標(biāo)記l 為了便于識別一個字符串的為了便于識別一個字符串的結(jié)尾,結(jié)尾,C語言約定,字符串語言約定,字符串的末尾以轉(zhuǎn)義字符的末尾以轉(zhuǎn)義字符0作為作為結(jié)束標(biāo)記。
57、結(jié)束標(biāo)記。172字符串的輸入與輸出字符串的輸入與輸出使用使用scanf和和printf函數(shù)輸入與輸出函數(shù)輸入與輸出main()char str80; scnaf(“%s”,str); printf(“%s”,str);173字符串的輸入與輸出字符串的輸入與輸出注意:注意:l用用%s格式輸入輸出字符串時,輸出格式輸入輸出字符串時,輸出項應(yīng)該為項應(yīng)該為字符數(shù)組名字符數(shù)組名,不能是數(shù)組,不能是數(shù)組元素名元素名l數(shù)組名是個不占實際內(nèi)存的數(shù)組名是個不占實際內(nèi)存的地址常地址常量量,它代表整個字符數(shù)組的存儲首,它代表整個字符數(shù)組的存儲首地址,本身已經(jīng)是地址,不能再對地址,本身已經(jīng)是地址,不能再對它加地址運算
58、符它加地址運算符“&”174字符串的輸入與輸出字符串的輸入與輸出注意:注意:l%s格式輸入字符串時,遇空格字符、格式輸入字符串時,遇空格字符、Tab鍵和回車符將自動結(jié)束輸入鍵和回車符將自動結(jié)束輸入l%s格式輸出字符串,遇格式輸出字符串,遇0就結(jié)束輸就結(jié)束輸出出l若輸入字符串長度超過字符數(shù)組所定義若輸入字符串長度超過字符數(shù)組所定義的長度時,將造成數(shù)組下標(biāo)越界,但系的長度時,將造成數(shù)組下標(biāo)越界,但系統(tǒng)對此不報錯統(tǒng)對此不報錯175字符串的輸入與輸出字符串的輸入與輸出使用使用gets和和puts函數(shù)輸入與輸出:函數(shù)輸入與輸出:gets函數(shù)調(diào)用形式:函數(shù)調(diào)用形式:gets();其中,其中,str_adr
59、為字符數(shù)組名或字為字符數(shù)組名或字符指針名,代表輸入字符串的存儲符指針名,代表輸入字符串的存儲起始地址。起始地址。176字符串的輸入與輸出字符串的輸入與輸出功能:功能:l 接受由鍵盤輸入的字符串(包接受由鍵盤輸入的字符串(包括空格符),并將它原樣存儲括空格符),并將它原樣存儲到由到由str_adr所指向的內(nèi)存段所指向的內(nèi)存段中,系統(tǒng)并不保存字符串末尾中,系統(tǒng)并不保存字符串末尾的換行符,而是自動將的換行符,而是自動將0作作為字符串的內(nèi)容存放在串尾。為字符串的內(nèi)容存放在串尾。177字符串的輸入與輸出字符串的輸入與輸出使用使用gets和和puts函數(shù)輸入與輸出:函數(shù)輸入與輸出:puts函數(shù)調(diào)用形式:函
60、數(shù)調(diào)用形式:puts();其中,其中,str_adr為字符數(shù)組名或字為字符數(shù)組名或字符指針名,代表輸出字符串的存儲符指針名,代表輸出字符串的存儲起始地址。起始地址。178字符串的輸入與輸出字符串的輸入與輸出功能:功能:l 由由str_adr所指向的地址開所指向的地址開始,依次輸出存儲單元中的始,依次輸出存儲單元中的字符,直到遇到第一個字符,直到遇到第一個0結(jié)束輸出,并自動輸出一個結(jié)束輸出,并自動輸出一個回車換行?;剀嚀Q行。179字符串的輸入與輸出字符串的輸入與輸出注意:注意:l gets和和puts函數(shù)只能有一個輸出函數(shù)只能有一個輸出項和輸入項項和輸入項l gets函數(shù)不識別字符串中的轉(zhuǎn)義函數(shù)
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 有關(guān)合同離婚合同書集合
- 中外合資企業(yè)生產(chǎn)合作協(xié)議合同
- 銀行個人消費貸款合同范本
- 教育行業(yè)小學(xué)教師合同書
- 物流運輸合同(示范文本)
- 農(nóng)村土地使用權(quán)轉(zhuǎn)讓合同范本
- 標(biāo)準(zhǔn)家庭保姆雇傭合同范本
- 星辰物業(yè)管理有限公司合同范本
- 商品購銷合同范本大全
- 公寓租賃合同定金條款
- 2025年全國國家版圖知識競賽題庫及答案(中小學(xué)組)
- 2025年合肥職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫完整版
- 2025年黑龍江旅游職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫匯編
- 2025年湖南城建職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫新版
- 國家基本藥物臨床應(yīng)用指南
- 2025春-新版一年級語文下冊生字表(200個)
- 企業(yè)級軟件開發(fā)作業(yè)指導(dǎo)書
- 護士法律法規(guī)知識培訓(xùn)
- 《中國古代文學(xué)史及作品選II》教學(xué)大綱
- 代工生產(chǎn)合同范本
- 人教版英語2025七年級下冊 Unit1Animal Friends教師版 語法講解+練習(xí)
評論
0/150
提交評論