版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、+平時:綜合作業(yè) 15分+考勤: 5分+期末:筆試+上機(jī)考試 60+20分+選擇題選擇題( (共共 2 20 0 題,每題題,每題 2 2 分,共分,共 4 40 0 分分) );+其中結(jié)構(gòu)體部分(第九章一道選擇題);+文件部分(第十章一道選擇題)+填空題填空題( (共共 7 7 題題(1010空)空),每題每題 2 2 分,共分,共 20 20 分分) )+編程編程題題( (共共 5 5 題,每題,每題題8 8分分,共共4 40 0分分) )是語言的基本成分,是組成程序的基本元是語言的基本成分,是組成程序的基本元素,要掌握。素,要掌握。熟悉各種基本數(shù)據(jù)類型的常量和變量:常熟悉各種基本數(shù)據(jù)類型
2、的常量和變量:常量的表示形式;變量的定義、變量初始化、量的表示形式;變量的定義、變量初始化、變量賦值變量賦值熟悉常用運(yùn)算符的定義及優(yōu)先級別。熟悉常用運(yùn)算符的定義及優(yōu)先級別。會計算各表達(dá)式的值會計算各表達(dá)式的值重點:重點:輸入輸出輸入輸出函數(shù)的各種使用方式,如八進(jìn)制,函數(shù)的各種使用方式,如八進(jìn)制,十進(jìn)制,十六進(jìn)制的輸入輸出。十進(jìn)制,十六進(jìn)制的輸入輸出。自增和自減運(yùn)算符的使用。自增和自減運(yùn)算符的使用。賦值和計算時的類型轉(zhuǎn)換(自動和強(qiáng)制)。賦值和計算時的類型轉(zhuǎn)換(自動和強(qiáng)制)。逗號表達(dá)式的使用。逗號表達(dá)式的使用。3.2.1 常量和變量常量和變量1.常量常量:在程序運(yùn)行過程中,其值在程序運(yùn)行過程中,其
3、值不能被改變的量不能被改變的量整型常量整型常量:如如1000,12345,0,-345實型常量實型常量u十進(jìn)制小數(shù)形式十進(jìn)制小數(shù)形式:如如0.34 -56.79 0.0u指數(shù)形式指數(shù)形式:如如12.34e3 (代表代表12.34 103)字符常量字符常量:如:如?u轉(zhuǎn)義字符轉(zhuǎn)義字符:如:如n字符串常量字符串常量:如如”boy”符號常量符號常量:#define PI 3.14163.2.1 常量和變量常量和變量2. 變量變量:在程序運(yùn)行期間,變量的值是可以改變的在程序運(yùn)行期間,變量的值是可以改變的變量必須變量必須先定義先定義,后使用后使用定義定義變量變量時指定該變量的時指定該變量的名字名字和和類
4、型類型變量名變量名和和變量值變量值是是兩個不同的概念兩個不同的概念變量名實際上是以一個名字代表的一個變量名實際上是以一個名字代表的一個存儲地址存儲地址從變量中取值,實際上是通過變量名找到相應(yīng)的從變量中取值,實際上是通過變量名找到相應(yīng)的內(nèi)存地址,從該存儲單元中讀取數(shù)據(jù)內(nèi)存地址,從該存儲單元中讀取數(shù)據(jù)3.2.1 常量和變量常量和變量3.常變量常變量:const int a=3;l 4.標(biāo)識符標(biāo)識符:一個對象的名字一個對象的名字語言規(guī)定標(biāo)識符只能由語言規(guī)定標(biāo)識符只能由字母字母、數(shù)字?jǐn)?shù)字和和下劃線下劃線3種字符組成,且種字符組成,且第一個字符必須為字母或下劃線第一個字符必須為字母或下劃線合法的標(biāo)識符:
5、合法的標(biāo)識符:如如sum,average, _total, Class, day, BASIC, li_ling不合法的標(biāo)識符不合法的標(biāo)識符:M.D.John,¥,¥123,33,3D64,ab大小寫字母是不同的字符大小寫字母是不同的字符3.2.7 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式1.基本的算術(shù)運(yùn)算符基本的算術(shù)運(yùn)算符:+ :正號運(yùn)算符正號運(yùn)算符(單目運(yùn)算符單目運(yùn)算符) - :負(fù)號運(yùn)算符負(fù)號運(yùn)算符(單目運(yùn)算符單目運(yùn)算符)* :乘法運(yùn)算符乘法運(yùn)算符/ :除法運(yùn)算符除法運(yùn)算符% :求余運(yùn)算符求余運(yùn)算符+ :加法運(yùn)算符加法運(yùn)算符 - :減法運(yùn)算符減法運(yùn)算符3.2.7 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式說明說明
6、兩個整數(shù)相除的結(jié)果為整數(shù)兩個整數(shù)相除的結(jié)果為整數(shù)u如如5/3的結(jié)果值為,舍去小數(shù)部分的結(jié)果值為,舍去小數(shù)部分u如果除數(shù)或被除數(shù)中有一個為負(fù)值,舍入方向不固定如果除數(shù)或被除數(shù)中有一個為負(fù)值,舍入方向不固定。例如,例如,-5/3,有的系統(tǒng)中得到的結(jié)果為,有的系統(tǒng)中得到的結(jié)果為-1,在有的,在有的系統(tǒng)中則得到結(jié)果為系統(tǒng)中則得到結(jié)果為-2; 1/2=?uVC+采取采取“向零取整向零取整”的方法的方法 如如5/3=1,-5/3=-1,取整后向零靠攏,取整后向零靠攏 % 運(yùn)算符要求參加運(yùn)算的運(yùn)算對象運(yùn)算符要求參加運(yùn)算的運(yùn)算對象(即操作數(shù)即操作數(shù))為整數(shù),為整數(shù),結(jié)果也是整數(shù)。結(jié)果也是整數(shù)。余數(shù)符號與被除數(shù)
7、相同。余數(shù)符號與被除數(shù)相同。 如如8%3,結(jié)果為,結(jié)果為2 。-8%3=? 8%-3=? -8%-3=?0-22-2#include#include int main( ) float f1,f2; scanf(“%f”,&f1); f2=pow(f1,0.5);/f2=sqrt(f1); printf(“root of %0.2f=%fn”f1,f2);Return 0;3.2.7 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式C沒有乘方運(yùn)算,冪運(yùn)算采用庫函數(shù)沒有乘方運(yùn)算,冪運(yùn)算采用庫函數(shù)pow(x,y)2. 自增、自減運(yùn)算符自增、自減運(yùn)算符:作用是使變量的值作用是使變量的值加加或減或減u+i,-i:
8、在使用在使用i之前,先使之前,先使i的值加(減)的值加(減)1ui+,i-:在使用在使用i之后,使之后,使i的值加(減)的值加(減)1+/-運(yùn)算符運(yùn)算符注意注意:n+、-只能作用于變量,不能用于表達(dá)式只能作用于變量,不能用于表達(dá)式和常量,如:和常量,如:22+、+(a+b)錯誤錯誤n右結(jié)合性右結(jié)合性 -i+ -(i+)n不建議不建議+、-運(yùn)算符連用,如果要在一條運(yùn)算符連用,如果要在一條語句中將特定變量自增自減不止一次時,語句中將特定變量自增自減不止一次時,最好分多條語句執(zhí)行,而不要在一條語句最好分多條語句執(zhí)行,而不要在一條語句中自增自減多次中自增自減多次3.2.7 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式
9、3. 算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級與結(jié)合性算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級與結(jié)合性:用算術(shù)運(yùn)算符和括號將運(yùn)算對象(也稱操作用算術(shù)運(yùn)算符和括號將運(yùn)算對象(也稱操作數(shù))連接起來的、符合語法規(guī)則的式子,數(shù))連接起來的、符合語法規(guī)則的式子,稱為算術(shù)表達(dá)式稱為算術(shù)表達(dá)式運(yùn)算對象包括常量、變量、函數(shù)等運(yùn)算對象包括常量、變量、函數(shù)等語言規(guī)定了運(yùn)算符的優(yōu)先級語言規(guī)定了運(yùn)算符的優(yōu)先級和和結(jié)合性結(jié)合性3. 算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級與結(jié)合性算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級與結(jié)合性( ) 圓括號圓括號-,+,- 單目運(yùn)算符,取負(fù)、自加、自減單目運(yùn)算符,取負(fù)、自加、自減*、/、% 雙目運(yùn)算符,乘、除、取模雙目運(yùn)算符,乘、除、取模+
10、、- 雙目運(yùn)算符,加、減雙目運(yùn)算符,加、減雙目算術(shù)運(yùn)算符:左結(jié)合雙目算術(shù)運(yùn)算符:左結(jié)合單目運(yùn)算符取負(fù)單目運(yùn)算符取負(fù)“-”、“+”、“-”:右結(jié)合:右結(jié)合高高 低低3.2.7 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式l6.運(yùn)算符運(yùn)算符(1) 算術(shù)運(yùn)算符算術(shù)運(yùn)算符 (+ - * / % + -)(2) 關(guān)系運(yùn)算符關(guān)系運(yùn)算符 ( ?。。?3) 邏輯運(yùn)算符邏輯運(yùn)算符 (?。ǎ?|)(4) 位運(yùn)算符位運(yùn)算符 ( | )(5) 賦值運(yùn)算符賦值運(yùn)算符 (及其擴(kuò)展賦值運(yùn)算符)(及其擴(kuò)展賦值運(yùn)算符)(6) 條件運(yùn)算符條件運(yùn)算符 (?:)(?:)寫出下列式子的寫出下列式子的C表達(dá)式:表達(dá)式:寫出下列寫出下列C表達(dá)式的值:表
11、達(dá)式的值:(x=4*5,x*5),x+25(逗號表達(dá)式逗號表達(dá)式)i=6;j=(+i)+(i+);i,j各為多少?各為多少?!2+12&15%5+2a=12;a-=a*a; 3.3 C語句語句3.3.1 C語句的作用和分類語句的作用和分類l3.3.2 最基本的語句最基本的語句-賦值語句賦值語句歸納歸納總結(jié):總結(jié):1.賦值運(yùn)算符賦值運(yùn)算符2.復(fù)合的賦值運(yùn)算符復(fù)合的賦值運(yùn)算符u在賦值符在賦值符“”之前加上其他運(yùn)算符,可以構(gòu)之前加上其他運(yùn)算符,可以構(gòu)成復(fù)合的運(yùn)算符成復(fù)合的運(yùn)算符 += -= *= /= %=ua+=b 等價于等價于 a=a+bux*=y+8 等價于等價于 x=x*(y+8)u
12、X%=y/3 等價于等價于 x=x%(y/3) 歸納歸納總結(jié):總結(jié):1.賦值運(yùn)算符賦值運(yùn)算符2.復(fù)合的賦值運(yùn)算符復(fù)合的賦值運(yùn)算符3.賦值表達(dá)式賦值表達(dá)式u一般形式為一般形式為: 變量變量 賦值運(yùn)算符賦值運(yùn)算符 表達(dá)式表達(dá)式u對賦值表達(dá)式求解的過程:對賦值表達(dá)式求解的過程:l求賦值運(yùn)算符求賦值運(yùn)算符右側(cè)右側(cè)的的“表達(dá)式表達(dá)式”的值的值l賦給賦值運(yùn)算符賦給賦值運(yùn)算符左側(cè)左側(cè)的變量的變量歸納歸納總結(jié):總結(jié): 3.賦值表達(dá)式賦值表達(dá)式u賦值表達(dá)式賦值表達(dá)式“a=3*5”的值為的值為15,對表達(dá),對表達(dá)式求解后,變量式求解后,變量a的值和表達(dá)式的值都是的值和表達(dá)式的值都是15u“a=(b=5)”和和“a
13、=b=5”等價等價u“a=b”和和“b=a”含義不同含義不同例:例: a=5+(c=6) 后后 a=11 a=b=c=5 后后 a=5問:問: int a=12;a+=a-=a*a a=?歸納歸納總結(jié):總結(jié):1.賦值運(yùn)算符賦值運(yùn)算符2.復(fù)合的賦值運(yùn)算符復(fù)合的賦值運(yùn)算符3.賦值表達(dá)式賦值表達(dá)式4.賦值過程中的類型轉(zhuǎn)換賦值過程中的類型轉(zhuǎn)換u兩側(cè)類型一致兩側(cè)類型一致時時,直接賦值,直接賦值u兩側(cè)類型不一致,但都是算術(shù)類型時,兩側(cè)類型不一致,但都是算術(shù)類型時,自動將自動將右側(cè)的右側(cè)的類型轉(zhuǎn)換類型轉(zhuǎn)換為左側(cè)類型后賦值為左側(cè)類型后賦值u定義變量時要防止數(shù)據(jù)溢出定義變量時要防止數(shù)據(jù)溢出3.4 數(shù)據(jù)的輸入輸出
14、數(shù)據(jù)的輸入輸出3.4.1 輸入輸出舉例輸入輸出舉例3.4.2 有關(guān)數(shù)據(jù)輸入輸出的概念有關(guān)數(shù)據(jù)輸入輸出的概念3.4.3 用用printf函數(shù)輸出數(shù)據(jù)函數(shù)輸出數(shù)據(jù)l3.4.4 用用scanf函數(shù)輸入數(shù)據(jù)函數(shù)輸入數(shù)據(jù)3.4.5 字符數(shù)據(jù)的輸入輸出字符數(shù)據(jù)的輸入輸出3.4.2 有關(guān)數(shù)據(jù)輸入輸出的概念有關(guān)數(shù)據(jù)輸入輸出的概念幾乎每一個幾乎每一個C程序都包含輸入輸出程序都包含輸入輸出輸入輸出是程序中最基本的操作之一輸入輸出是程序中最基本的操作之一3.4.2 有關(guān)數(shù)據(jù)輸入輸出的概念有關(guān)數(shù)據(jù)輸入輸出的概念(1) 所謂輸入輸出是以計算機(jī)主機(jī)為主體所謂輸入輸出是以計算機(jī)主機(jī)為主體而言的而言的從計算機(jī)向輸出設(shè)備從計算
15、機(jī)向輸出設(shè)備(如顯示器、打印機(jī)如顯示器、打印機(jī)等等)輸出數(shù)據(jù)稱為輸出輸出數(shù)據(jù)稱為輸出從輸入設(shè)備(如鍵盤、磁盤、光盤、掃描從輸入設(shè)備(如鍵盤、磁盤、光盤、掃描儀等)向計算機(jī)輸入數(shù)據(jù)稱為輸入儀等)向計算機(jī)輸入數(shù)據(jù)稱為輸入3.4.2 有關(guān)數(shù)據(jù)輸入輸出的概念有關(guān)數(shù)據(jù)輸入輸出的概念(2) 語言本身不提供輸入輸出語句語言本身不提供輸入輸出語句輸入和輸出操作是由輸入和輸出操作是由C標(biāo)準(zhǔn)函數(shù)庫中的函標(biāo)準(zhǔn)函數(shù)庫中的函數(shù)來實現(xiàn)的數(shù)來實現(xiàn)的printf和和scanf不是語言的關(guān)鍵字,而不是語言的關(guān)鍵字,而只是庫函數(shù)的名字只是庫函數(shù)的名字putchar、getchar、puts、gets3.4.2 有關(guān)數(shù)據(jù)輸入輸出的
16、概念有關(guān)數(shù)據(jù)輸入輸出的概念(3)在使用在使用輸入輸出輸入輸出函數(shù)時,要在程序文件函數(shù)時,要在程序文件的開頭用預(yù)編譯指令的開頭用預(yù)編譯指令#include 或或#include stdio.h3.4.3 用用printf函數(shù)輸出數(shù)據(jù)函數(shù)輸出數(shù)據(jù)在在C程序中用來實現(xiàn)輸出和輸入的,主要程序中用來實現(xiàn)輸出和輸入的,主要是是printf函數(shù)和函數(shù)和scanf函數(shù)函數(shù)這兩個函數(shù)是格式輸入輸出函數(shù)這兩個函數(shù)是格式輸入輸出函數(shù)用這兩個函數(shù)時,必須指定格式用這兩個函數(shù)時,必須指定格式3.4.3 用用printf函數(shù)輸出數(shù)據(jù)函數(shù)輸出數(shù)據(jù)1.printf函數(shù)的一般格式函數(shù)的一般格式printf(格式控制,輸出表列)
17、(格式控制,輸出表列)例如:例如:printf(”i=%d,c=%cn”,i,c);格式聲明格式聲明3.4.3 用用printf函數(shù)輸出數(shù)據(jù)函數(shù)輸出數(shù)據(jù)1.printf函數(shù)的一般格式函數(shù)的一般格式printf(格式控制,輸出表列)(格式控制,輸出表列)例如:例如:printf(”i=%d,c=%cn”,i,c);普通字符普通字符3.4.3 用用printf函數(shù)輸出數(shù)據(jù)函數(shù)輸出數(shù)據(jù)1.printf函數(shù)的一般格式函數(shù)的一般格式printf(格式控制,輸出表列)(格式控制,輸出表列)例如:例如:printf(”i=%d,c=%cn”,i,c);可以是常量、變量或表達(dá)式可以是常量、變量或表達(dá)式3.4.
18、3 用用printf函數(shù)輸出數(shù)據(jù)函數(shù)輸出數(shù)據(jù)2. 常用常用格式字符格式字符u格式符。用來輸出一個有符號的十進(jìn)制整數(shù)格式符。用來輸出一個有符號的十進(jìn)制整數(shù)l可以在格式聲明中指定輸出數(shù)據(jù)的域?qū)捒梢栽诟袷铰暶髦兄付ㄝ敵鰯?shù)據(jù)的域?qū)?printf(”%5d%5dn”,12,-345);l%d輸出輸出int型數(shù)據(jù)型數(shù)據(jù)l%ld輸出輸出long型數(shù)據(jù)型數(shù)據(jù)3.4.3 用用printf函數(shù)輸出數(shù)據(jù)函數(shù)輸出數(shù)據(jù)2. 常用常用格式字符格式字符u格式符。用來輸出一個字符格式符。用來輸出一個字符 char ch=a; printf(”%c”,ch); 或或 printf(”%5c”,ch);輸出字符輸出字符:a3.4
19、.3 用用printf函數(shù)輸出數(shù)據(jù)函數(shù)輸出數(shù)據(jù)2. 常用常用格式字符格式字符u格式符。用來輸出一個字符串格式符。用來輸出一個字符串 printf(”%s”,”CHINA”); 輸出字符串輸出字符串:CHINA3.4.3 用用printf函數(shù)輸出數(shù)據(jù)函數(shù)輸出數(shù)據(jù)2. 常用常用格式字符格式字符uf格式符。用來輸出實數(shù),以小數(shù)形式輸出格式符。用來輸出實數(shù),以小數(shù)形式輸出不不指定數(shù)據(jù)寬度和小數(shù)位數(shù),用指定數(shù)據(jù)寬度和小數(shù)位數(shù),用%f 例例3.6 用用%f輸出實數(shù),只能得到位小數(shù)。輸出實數(shù),只能得到位小數(shù)。 double a=1.0; printf(”%fn”,a/3);3.4.3 用用printf函數(shù)輸
20、出數(shù)據(jù)函數(shù)輸出數(shù)據(jù)2. 常用常用格式字符格式字符uf格式符。用來輸出實數(shù),以小數(shù)形式輸出格式符。用來輸出實數(shù),以小數(shù)形式輸出 指定數(shù)據(jù)寬度和小數(shù)位數(shù)。用指定數(shù)據(jù)寬度和小數(shù)位數(shù)。用%m.nf printf(%20.15fn,1/3); printf(%.0fn”,10000/3.0);3.4.3 用用printf函數(shù)輸出數(shù)據(jù)函數(shù)輸出數(shù)據(jù)2. 常用常用格式字符格式字符uf格式符。用來輸出實數(shù),以小數(shù)形式輸出格式符。用來輸出實數(shù),以小數(shù)形式輸出 指定數(shù)據(jù)寬度和小數(shù)位數(shù)。用指定數(shù)據(jù)寬度和小數(shù)位數(shù)。用%m.nf float a; a=10000/3.0; printf(%fn,a);3.4.3 用用pr
21、intf函數(shù)輸出數(shù)據(jù)函數(shù)輸出數(shù)據(jù)2. 常用常用格式字符格式字符uf格式符。用來輸出實數(shù),以小數(shù)形式輸出格式符。用來輸出實數(shù),以小數(shù)形式輸出 輸出的數(shù)據(jù)向左對齊,用輸出的數(shù)據(jù)向左對齊,用%-m.nf3.4.3 用用printf函數(shù)輸出數(shù)據(jù)函數(shù)輸出數(shù)據(jù)2. 常用常用格式字符格式字符uf格式符。用來輸出實數(shù),以小數(shù)形式輸出格式符。用來輸出實數(shù),以小數(shù)形式輸出lfloat型數(shù)據(jù)只能保證型數(shù)據(jù)只能保證6位有效數(shù)字位有效數(shù)字ldouble型數(shù)據(jù)能保證型數(shù)據(jù)能保證15位有效數(shù)字位有效數(shù)字l計算機(jī)輸出的數(shù)字計算機(jī)輸出的數(shù)字不都不都是絕對精確有效的是絕對精確有效的3.4.3 用用printf函數(shù)輸出數(shù)據(jù)函數(shù)輸出
22、數(shù)據(jù)2. 常用常用格式字符格式字符ue格式符。指定以指數(shù)形式輸出實數(shù)格式符。指定以指數(shù)形式輸出實數(shù)l%e,VC+給出小數(shù)位數(shù)為位給出小數(shù)位數(shù)為位 指數(shù)部分占指數(shù)部分占5列列 小數(shù)點前必須有而且只有小數(shù)點前必須有而且只有1位非零數(shù)字位非零數(shù)字 printf(”%e”,123.456); 輸出:輸出:1.234560 e+0023.4.3 用用printf函數(shù)輸出數(shù)據(jù)函數(shù)輸出數(shù)據(jù)2. 常用常用格式字符格式字符ue格式符。指定以指數(shù)形式輸出實數(shù)格式符。指定以指數(shù)形式輸出實數(shù)l%m.ne printf(”%13.2e”,123.456); 輸出:輸出: 1.23e+002 (前面有前面有4個空格個空格
23、)3.4.4 用用scanf函數(shù)輸入數(shù)據(jù)函數(shù)輸入數(shù)據(jù)1. scanf 函數(shù)的一般形式函數(shù)的一般形式l scanf(格式控制,地址表列)(格式控制,地址表列)含義同含義同printf函函數(shù)數(shù)3.4.4 用用scanf函數(shù)輸入數(shù)據(jù)函數(shù)輸入數(shù)據(jù)1. scanf 函數(shù)的一般形式函數(shù)的一般形式 scanf(格式控制,地址表列)(格式控制,地址表列)可以是變量的地址,或字可以是變量的地址,或字符串的首地址符串的首地址3.4.4 用用scanf函數(shù)輸入數(shù)據(jù)函數(shù)輸入數(shù)據(jù)2. scanf函數(shù)中的格式聲明函數(shù)中的格式聲明與與printf函數(shù)中的格式聲明相似函數(shù)中的格式聲明相似以開始以開始,以一個格式字符結(jié)束,中間
24、可以以一個格式字符結(jié)束,中間可以插入附加的字符插入附加的字符scanf(a=%f,b=%f,c=%f,&a,&b,&c);3.4.4 用用scanf函數(shù)輸入數(shù)據(jù)函數(shù)輸入數(shù)據(jù)3.使用使用scanf函數(shù)時應(yīng)注意的問題函數(shù)時應(yīng)注意的問題scanf(”%f%f%f”,a,b,c); 錯錯scanf(”%f%f%f”,&a,&b,&c); 對對對于對于scanf(a=%f,b=%f,c=%f,&a,&b,&c); 1 3 2 錯錯 a=1,b=3,c=2 對對 a=1 b=3 c=2 錯錯3.4.4 用用scanf函數(shù)輸入數(shù)據(jù)函數(shù)輸
25、入數(shù)據(jù)3.使用使用scanf函數(shù)時應(yīng)注意的問題函數(shù)時應(yīng)注意的問題對于對于scanf(”%c%c%c”,&c1,&c2,&c3); abc 對對 a b c 錯錯對于對于scanf(”%d%c%f”,&a,&b,&c);若輸入若輸入 1234a123o.26 3.4.4 用用scanf函數(shù)輸入數(shù)據(jù)函數(shù)輸入數(shù)據(jù)3.使用使用scanf函數(shù)時應(yīng)注意的問題函數(shù)時應(yīng)注意的問題對于對于scanf(”%c%c%c”,&c1,&c2,&c3); abc 對對 a b c 錯錯對于對于scanf(”%d%c%f”,&a,&b,
26、&c);若輸入若輸入 1234a123o.26 3.4.4 用用scanf函數(shù)輸入數(shù)據(jù)函數(shù)輸入數(shù)據(jù)3.使用使用scanf函數(shù)時應(yīng)注意的問題函數(shù)時應(yīng)注意的問題對于對于scanf(”%c%c%c”,&c1,&c2,&c3); abc 對對 a b c 錯錯對于對于scanf(”%d%c%f”,&a,&b,&c);若輸入若輸入 1234a123o.26 3.4.5 字符數(shù)據(jù)的輸入輸出字符數(shù)據(jù)的輸入輸出1.用用putchar函數(shù)輸出一個字符函數(shù)輸出一個字符從計算機(jī)向顯示器輸出一個字符從計算機(jī)向顯示器輸出一個字符 putchar函數(shù)的一般形式為函數(shù)
27、的一般形式為: putchar(c) 3.4.5 字符數(shù)據(jù)的輸入輸出字符數(shù)據(jù)的輸入輸出2. 用用getchar函數(shù)輸入一個字符函數(shù)輸入一個字符向計算機(jī)輸入一個字符向計算機(jī)輸入一個字符getchar函數(shù)的一般形式為函數(shù)的一般形式為: getchar( )4.1 選擇結(jié)構(gòu)和條件判斷選擇結(jié)構(gòu)和條件判斷l(xiāng)4.2 用用if語句實現(xiàn)選擇結(jié)構(gòu)語句實現(xiàn)選擇結(jié)構(gòu)4.3關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符和關(guān)系表達(dá)式l4.4 邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式4.5 條件運(yùn)算符和條件表達(dá)式條件運(yùn)算符和條件表達(dá)式4.6 選擇結(jié)構(gòu)的嵌套選擇結(jié)構(gòu)的嵌套l4.7 用用switch語句實現(xiàn)多分支選擇結(jié)構(gòu)語句實現(xiàn)多分支
28、選擇結(jié)構(gòu)4.8選擇結(jié)構(gòu)程序綜合舉例選擇結(jié)構(gòu)程序綜合舉例C語言有兩種選擇語句語言有兩種選擇語句:(1)if語句語句,實現(xiàn)兩個分支的選擇結(jié)構(gòu),實現(xiàn)兩個分支的選擇結(jié)構(gòu)(2)switch語句語句,實現(xiàn)多分支的選擇結(jié)構(gòu),實現(xiàn)多分支的選擇結(jié)構(gòu) if (表達(dá)式表達(dá)式) 語句語句1 else 語句語句2 關(guān)系表達(dá)式關(guān)系表達(dá)式邏輯表達(dá)式邏輯表達(dá)式數(shù)值表達(dá)式數(shù)值表達(dá)式方括號內(nèi)的部分為可選的方括號內(nèi)的部分為可選的 if (表達(dá)式表達(dá)式) 語句語句1 else 語句語句2 簡單的語句簡單的語句復(fù)合語句復(fù)合語句另一個另一個if語句語句等等最常用的最常用的3種種if語句語句形式形式:1. if (表達(dá)式表達(dá)式) 語句語句
29、1 (沒有沒有else子句子句)2. if (表達(dá)式表達(dá)式) 語句語句1 else 語句語句2 (有有else子句子句)3. if(表達(dá)式)(表達(dá)式) 語句語句 else if(表達(dá)式)(表達(dá)式) 語句語句 else if(表達(dá)式)(表達(dá)式) 語句語句 else if(表達(dá)式)(表達(dá)式) 語句語句 else 語句語句m+1 (在在else部分又嵌套了多層的部分又嵌套了多層的if語句語句)if(number 500) cost = 0.15;else if (number 300) cost = 0.10;else if (number 100) cost = 0.075;else if (nu
30、mber 50) cost = 0.05;else cost=0;if (number 500) cost = 0.15;else if (number 300) cost = 0.10; else if (number 100) cost = 0.075; else if (number 50) cost = 0.05; else cost = 0;等價于等價于分號不能丟分號不能丟說明:說明:(1)整個整個if語句可寫在多行上,也可寫在一行上語句可寫在多行上,也可寫在一行上 但但都是一個整體,屬于同一個語句都是一個整體,屬于同一個語句(2)“語句語句1”“語句語句m”是是if中的內(nèi)嵌語句中的
31、內(nèi)嵌語句 內(nèi)嵌語句也可以是一個內(nèi)嵌語句也可以是一個if語句語句(3)“語句語句1”“語句語句m”可以是簡單的語句可以是簡單的語句,也可以是復(fù)合語句,也可以是復(fù)合語句4.3.1關(guān)系運(yùn)算符及其優(yōu)先次序關(guān)系運(yùn)算符及其優(yōu)先次序4.3.2 關(guān)系表達(dá)式關(guān)系表達(dá)式關(guān)系運(yùn)算符關(guān)系運(yùn)算符:用來對兩個數(shù)值進(jìn)行比較用來對兩個數(shù)值進(jìn)行比較的的比較運(yùn)算符比較運(yùn)算符語言提供種關(guān)系運(yùn)算符:語言提供種關(guān)系運(yùn)算符: (小于小于) = (小于或等于小于或等于) (大于大于) = (大于或等于大于或等于) = (等于等于) != (不等于不等于) 優(yōu)先級相同優(yōu)先級相同 (高高)優(yōu)先級相同優(yōu)先級相同 (低低)關(guān)系關(guān)系、算術(shù)算術(shù)、賦值
32、運(yùn)算符賦值運(yùn)算符的優(yōu)先級的優(yōu)先級算術(shù)運(yùn)算符算術(shù)運(yùn)算符 (高高)賦值運(yùn)算符賦值運(yùn)算符 (低低)關(guān)系運(yùn)算符關(guān)系運(yùn)算符 ca+b 等效于等效于 c(a+b)ab=c 等效于等效于 (ab)=ca=bc 等效于等效于 a=(bc 等效于等效于 a=(bc)關(guān)系表達(dá)式關(guān)系表達(dá)式u用關(guān)系運(yùn)算符將兩個數(shù)值或數(shù)值表達(dá)式連用關(guān)系運(yùn)算符將兩個數(shù)值或數(shù)值表達(dá)式連接起來的式子接起來的式子u關(guān)系表達(dá)式的值是一個邏輯值,即關(guān)系表達(dá)式的值是一個邏輯值,即“真真”或或“假假”u在在C的邏輯運(yùn)算中,以的邏輯運(yùn)算中,以“”代表代表“真真”,以,以“”代表代表“假假”4.4.1 邏輯運(yùn)算符及其優(yōu)先次序邏輯運(yùn)算符及其優(yōu)先次序4.4.
33、2 邏輯表達(dá)式邏輯表達(dá)式4.4.3 邏輯型變量邏輯型變量3種邏輯運(yùn)算符:種邏輯運(yùn)算符:&(邏輯與邏輯與) |(邏輯或邏輯或) !(邏輯非邏輯非)&和和|是雙目是雙目(元元)運(yùn)算符運(yùn)算符!是一目是一目(元元)運(yùn)算符運(yùn)算符邏輯表達(dá)式邏輯表達(dá)式u用邏輯運(yùn)算符將關(guān)系表達(dá)式或其他邏輯量連用邏輯運(yùn)算符將關(guān)系表達(dá)式或其他邏輯量連接起來的式子接起來的式子ab! a! ba & ba | b 真真真真假假假假真真真真真真假假假假真真假假真真假假真真真真假假假假真真假假假假真真真真假假假假邏輯運(yùn)算的真值表邏輯運(yùn)算的真值表邏輯運(yùn)算符的優(yōu)先次序邏輯運(yùn)算符的優(yōu)先次序! & | (!為三者
34、中最高為三者中最高)與其他運(yùn)算符的優(yōu)先次序與其他運(yùn)算符的優(yōu)先次序 ! (高)(高)算術(shù)運(yùn)算符算術(shù)運(yùn)算符關(guān)系運(yùn)算符關(guān)系運(yùn)算符 & 和和 |賦值運(yùn)算符賦值運(yùn)算符 (低)(低)邏輯表達(dá)式的值應(yīng)該是邏輯量邏輯表達(dá)式的值應(yīng)該是邏輯量“真真”或或“假假”編譯系統(tǒng)在編譯系統(tǒng)在表示表示邏輯運(yùn)算邏輯運(yùn)算結(jié)果結(jié)果時時u以數(shù)值以數(shù)值1代表代表“真真”,以,以0代表代表“假假”但在但在判斷判斷一個量是否為一個量是否為“真真”時時u以以0代表代表“假假”,以非,以非0代表代表“真真”注意:注意:將一個非零的數(shù)值認(rèn)作為將一個非零的數(shù)值認(rèn)作為“真真”(1) 若若a=4,則,則!a的值為的值為0(2) 若若a=4,b
35、=5,則,則a & b的值為的值為1(3) a和和b值分別為值分別為4和和5,則則a|b的值為的值為1(4) a和和b值分別為值分別為4和和5,則則!a|b的值為的值為1(5) 4 & 0 | 2的值為的值為1修改后的修改后的邏輯運(yùn)算真值表邏輯運(yùn)算真值表ab! a! ba & ba | b 非非0非非00011非非000101假假非非01001假假01100有一種有一種if語句,當(dāng)被判別的表達(dá)式的值語句,當(dāng)被判別的表達(dá)式的值為為“真真”或或“假假” 時,都執(zhí)行一個賦值時,都執(zhí)行一個賦值語句且向同一個變量賦值語句且向同一個變量賦值如:如:if (ab) max=a; el
36、se max=b;max = (a b) ? a : b;條件運(yùn)算符條件運(yùn)算符有一種有一種if語句,當(dāng)被判別的表達(dá)式的值語句,當(dāng)被判別的表達(dá)式的值為為“真真”或或“假假” 時,都執(zhí)行一個賦值時,都執(zhí)行一個賦值語句且向同一個變量賦值語句且向同一個變量賦值如:如:if (ab) max=a; else max=b;max = (a b) ? a : b;條件條件表達(dá)式表達(dá)式條件表達(dá)式的一般形式為條件表達(dá)式的一般形式為表達(dá)式表達(dá)式?表達(dá)式表達(dá)式: 表達(dá)式表達(dá)式條件運(yùn)算符的執(zhí)行順序:條件運(yùn)算符的執(zhí)行順序:u求解表達(dá)式求解表達(dá)式1u若為非若為非0(真)則求解表達(dá)式(真)則求解表達(dá)式2,此時表達(dá),此時表達(dá)
37、式式2的值就作為整個條件表達(dá)式的值的值就作為整個條件表達(dá)式的值u若表達(dá)式若表達(dá)式1的值為的值為0(假),則求解表達(dá)式(假),則求解表達(dá)式3,表達(dá)式,表達(dá)式3的值就是整個條件表達(dá)式的值的值就是整個條件表達(dá)式的值條件運(yùn)算符優(yōu)先于賦值運(yùn)算符條件運(yùn)算符優(yōu)先于賦值運(yùn)算符條件運(yùn)算符的結(jié)合方向為條件運(yùn)算符的結(jié)合方向為“自右至左自右至左”以下為合法的使用方法:以下為合法的使用方法:uab ? (max=a):(max=b);uab ? printf(“%d”,a): printf(“%d”,b);switch語句用來實現(xiàn)多分支選擇結(jié)構(gòu)語句用來實現(xiàn)多分支選擇結(jié)構(gòu)u學(xué)生成績分類學(xué)生成績分類85分以上為分以上為A等
38、等7084分為分為B等等6069分為分為C等等u人口統(tǒng)計分類人口統(tǒng)計分類 按年齡分為老、中、青、少、兒童按年齡分為老、中、青、少、兒童switch語句的作用是根據(jù)表達(dá)式的值,語句的作用是根據(jù)表達(dá)式的值,使流程跳轉(zhuǎn)到不同的語句使流程跳轉(zhuǎn)到不同的語句switch語句的一般形式語句的一般形式:switch(表達(dá)式)(表達(dá)式) case 常量常量1 :語句:語句1 case 常量常量2 :語句:語句2 case 常量常量n :語句:語句n default : 語句語句n+1整數(shù)類型整數(shù)類型(包括字符型包括字符型)switch語句的作用是根據(jù)表達(dá)式的值,語句的作用是根據(jù)表達(dá)式的值,使流程跳轉(zhuǎn)到不同的語句
39、使流程跳轉(zhuǎn)到不同的語句switch語句的一般形式語句的一般形式:switch(表達(dá)式)(表達(dá)式) case 常量常量1 :語句:語句1 case 常量常量2 :語句:語句2 case 常量常量n :語句:語句n default : 語句語句n+1不能相同不能相同分段函數(shù)分段函數(shù)例:例:例:讀程序,給出程序的運(yùn)行結(jié)果例:讀程序,給出程序的運(yùn)行結(jié)果5.1 為什么需要循環(huán)控制為什么需要循環(huán)控制5.2 用用while語句實現(xiàn)循環(huán)語句實現(xiàn)循環(huán)5.3 用用do-while語句實現(xiàn)循環(huán)語句實現(xiàn)循環(huán)5.4 用用for 語句實現(xiàn)循環(huán)語句實現(xiàn)循環(huán)5.5 循環(huán)的嵌套循環(huán)的嵌套5.6 幾種循環(huán)的比較幾種循環(huán)的比較5.
40、7 改變循環(huán)執(zhí)行的狀態(tài)改變循環(huán)執(zhí)行的狀態(tài)5.8 循環(huán)程序舉例循環(huán)程序舉例重點重點:三種基本循環(huán)結(jié)構(gòu)的使用,三種基本循環(huán)結(jié)構(gòu)的使用,while和和dowhile的區(qū)別,的區(qū)別,for結(jié)構(gòu)中三個表達(dá)式的作結(jié)構(gòu)中三個表達(dá)式的作用用判斷素數(shù)算法判斷素數(shù)算法遞推算法遞推算法求求n個數(shù)的和,平均值,最大值,最小值等個數(shù)的和,平均值,最大值,最小值等拆數(shù)算法:如數(shù)值轉(zhuǎn)換(學(xué)會使用拆數(shù)算法:如數(shù)值轉(zhuǎn)換(學(xué)會使用 n=n/d和和r=n%d)窮舉算法,如水仙花數(shù)窮舉算法,如水仙花數(shù)實現(xiàn)循環(huán)的語句(四種)實現(xiàn)循環(huán)的語句(四種)1、用、用goto語句和語句和if語句構(gòu)成循環(huán);語句構(gòu)成循環(huán); (不提倡)(不提倡)2、用
41、、用while語句;語句; (當(dāng)型循環(huán)(當(dāng)型循環(huán)先判斷后執(zhí)行)先判斷后執(zhí)行)3、用、用do-while語句;語句; (直到型循環(huán)(直到型循環(huán)先執(zhí)行后判斷)先執(zhí)行后判斷)4、用、用for語句。語句。 (多功能)(多功能) while語句的一般形式如下:語句的一般形式如下: while (表達(dá)式表達(dá)式) 語句語句;循環(huán)體循環(huán)體表達(dá)式語句N-S圖 while語句的一般形式如下:語句的一般形式如下: while (表達(dá)式表達(dá)式) 語句語句“真真”時時執(zhí)行循環(huán)體語句執(zhí)行循環(huán)體語句“假假”時不執(zhí)行時不執(zhí)行循環(huán)條件表達(dá)式循環(huán)條件表達(dá)式while循環(huán)的特點是:循環(huán)的特點是:先判斷條件表達(dá)式,后執(zhí)行循環(huán)體語句先
42、判斷條件表達(dá)式,后執(zhí)行循環(huán)體語句注意:注意:u若循環(huán)體包含一條以上的語句,應(yīng)以復(fù)合語句的形式出若循環(huán)體包含一條以上的語句,應(yīng)以復(fù)合語句的形式出現(xiàn);現(xiàn);u循環(huán)循環(huán)前,必須給循環(huán)控制變量賦初值;前,必須給循環(huán)控制變量賦初值;u循環(huán)體循環(huán)體中,必須有改變循環(huán)控制變量值的語句(使循環(huán)中,必須有改變循環(huán)控制變量值的語句(使循環(huán)趨于結(jié)束的語句);趨于結(jié)束的語句);u循環(huán)體可以為空。循環(huán)體可以為空。例:例:while((c=getchar()!=A);等價等價于于 c=getchar();while(c!=A) c=getchar();do-while語句的特點:先無條件地語句的特點:先無條件地執(zhí)行循環(huán)體,
43、然后判斷循環(huán)條件是否成執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立立do-while語句的一般形式為:語句的一般形式為: do 語句語句 while (表達(dá)式表達(dá)式);表達(dá)式表達(dá)式Y(jié)N循環(huán)體語句循環(huán)體語句分號不能省略, 切記for語句的一般形式為語句的一般形式為 for(表達(dá)式表達(dá)式1;表達(dá)式;表達(dá)式2;表達(dá)式;表達(dá)式3) 語句語句設(shè)置初始條件,只執(zhí)行一設(shè)置初始條件,只執(zhí)行一次??梢詾榱銈€、一個或次??梢詾榱銈€、一個或多個變量設(shè)置初值多個變量設(shè)置初值執(zhí)行執(zhí)行for語句的一般形式為語句的一般形式為 for(表達(dá)式表達(dá)式1;表達(dá)式;表達(dá)式2;表達(dá)式;表達(dá)式3) 語句語句循環(huán)條件表達(dá)式,用來判定是否繼續(xù)循環(huán)
44、條件表達(dá)式,用來判定是否繼續(xù)循環(huán)。在每次執(zhí)行循環(huán)體前先執(zhí)行此循環(huán)。在每次執(zhí)行循環(huán)體前先執(zhí)行此表達(dá)式,決定是否繼續(xù)執(zhí)行循環(huán)表達(dá)式,決定是否繼續(xù)執(zhí)行循環(huán)for語句的一般形式為語句的一般形式為 for(表達(dá)式表達(dá)式1;表達(dá)式表達(dá)式2;表達(dá)式;表達(dá)式3) 語句語句作為循環(huán)的調(diào)整器,例如作為循環(huán)的調(diào)整器,例如使循環(huán)變量增值,它是在使循環(huán)變量增值,它是在執(zhí)行完循環(huán)體后才進(jìn)行的執(zhí)行完循環(huán)體后才進(jìn)行的for語句的執(zhí)行過程語句的執(zhí)行過程:(1) 先求解表達(dá)式先求解表達(dá)式1(2) 求解表達(dá)式求解表達(dá)式2,若,若其其值為真,執(zhí)行循環(huán)體,值為真,執(zhí)行循環(huán)體,然后執(zhí)行下面第然后執(zhí)行下面第(3)步。若為假,則結(jié)束循環(huán),步
45、。若為假,則結(jié)束循環(huán),轉(zhuǎn)到第轉(zhuǎn)到第(5)步步(3) 求解表達(dá)式求解表達(dá)式3(4) 轉(zhuǎn)回上面步驟轉(zhuǎn)回上面步驟(2)繼續(xù)執(zhí)行繼續(xù)執(zhí)行(5) 循環(huán)結(jié)束,執(zhí)行循環(huán)結(jié)束,執(zhí)行for語句下面的一個語句語句下面的一個語句求解表達(dá)式1表達(dá)式2語句求解表達(dá)式3for語句不僅可以用于循環(huán)次數(shù)已經(jīng)確語句不僅可以用于循環(huán)次數(shù)已經(jīng)確定的情況,還可以用于循環(huán)次數(shù)不確定定的情況,還可以用于循環(huán)次數(shù)不確定而只給出循環(huán)結(jié)束條件的情況而只給出循環(huán)結(jié)束條件的情況for語句完全可以代替語句完全可以代替while語句語句5.7.1 用用break語句提前終止循環(huán)語句提前終止循環(huán)5.7.2 用用continue語句提前結(jié)束本次循環(huán)語句提
46、前結(jié)束本次循環(huán)5.7.3 break語句和語句和continue語句的區(qū)別語句的區(qū)別break語句可以用來從循環(huán)體內(nèi)跳出語句可以用來從循環(huán)體內(nèi)跳出循環(huán)體,即提前結(jié)束循環(huán),接著執(zhí)行循環(huán)體,即提前結(jié)束循環(huán),接著執(zhí)行循環(huán)下面的語句循環(huán)下面的語句l 例例判斷判斷m是否為素數(shù)是否為素數(shù)輸入mk=sqrt(m)i=2i=k+1 是 否 m是素數(shù) m不是素數(shù)#include”math.h”void main()int m,i,k; scanf(“%d”,&m); k=sqrt(m); for(i=2;ik)printf(“%d是素數(shù)是素數(shù)”,m) else printf(“%d是合數(shù)是合數(shù)”,m);
47、結(jié)束循環(huán),即轉(zhuǎn)到for循環(huán)的下一語句。Break總是作if的內(nèi)嵌語句flag=1flag=0;break;flag有時并不希望終止整個循環(huán)的操作,而有時并不希望終止整個循環(huán)的操作,而只希望提前結(jié)束本次循環(huán),而接著執(zhí)行只希望提前結(jié)束本次循環(huán),而接著執(zhí)行下次循環(huán)。這時可以用下次循環(huán)。這時可以用continue語句語句l 例例5.5 要求輸出要求輸出100200之間的不之間的不能被能被3整除的數(shù)。整除的數(shù)。(不能被不能被3也不能被也不能被7)編程思路:編程思路:u對對100到到200之間的每一個整數(shù)進(jìn)行檢查之間的每一個整數(shù)進(jìn)行檢查u如果不能被如果不能被3整除,輸出,整除,輸出,否則否則不輸出不輸出u
48、無論是否輸出此數(shù),都要接著檢查下一個無論是否輸出此數(shù),都要接著檢查下一個數(shù)數(shù)(直到直到200為止為止)。Nn=100n200Yn能被能被3整除整除Nn=n+1輸出輸出nYfor(n=100;n=200;n+) if (n%3=0) continue; printf(%d ,n); If(n%3)printf(“%d”,n);continue語句只結(jié)束本次循環(huán),而不語句只結(jié)束本次循環(huán),而不是終止整個循環(huán)的執(zhí)行是終止整個循環(huán)的執(zhí)行break語句結(jié)束整個循環(huán)過程,不再判語句結(jié)束整個循環(huán)過程,不再判斷執(zhí)行循環(huán)的條件是否成立斷執(zhí)行循環(huán)的條件是否成立N表達(dá)式表達(dá)式1Y表達(dá)式表達(dá)式2NYN表達(dá)式表達(dá)式1Y表
49、達(dá)式表達(dá)式2NYbreak語句語句continue語句語句強(qiáng)行退出循環(huán)強(qiáng)行退出循環(huán)只結(jié)束本次循環(huán)只結(jié)束本次循環(huán) 例例5.9輸入一個大于輸入一個大于3的整數(shù)的整數(shù)n,判定它,判定它是否素數(shù)是否素數(shù)(prime,又稱質(zhì)數(shù),又稱質(zhì)數(shù))。解題思路:解題思路:u讓讓n被被i整整除除(i的值從的值從2變到變到n-1)u如果如果n能被能被2(n-1)之中任何一個整數(shù)整除之中任何一個整數(shù)整除,則表示,則表示n肯定不是素數(shù),不必再繼續(xù)被后面肯定不是素數(shù),不必再繼續(xù)被后面的整數(shù)除,因此,可以提前結(jié)束循環(huán)的整數(shù)除,因此,可以提前結(jié)束循環(huán)u注意:此時注意:此時i的值必然小于的值必然小于nNNYn=i+1輸入輸入ni=
50、2i n-1Yn被被i整除整除i a輸出不是素數(shù)輸出不是素數(shù)Y輸出是素數(shù)輸出是素數(shù)N#include int main() int n,i; printf(“n=?); scanf(%d,&n); for (i=2;i=n-1;i+) if(n%i=0) break; if(in) printf(%d is notn,n); else printf(%d isn,n); return 0;#include int main() int n,i; printf(“n=?); scanf(%d,&n); for (i=2;i=n-1;i+) if(n%i=0) break; if(
51、in) printf(%d is notn,n); else printf(%d isn,n); return 0;nk=sqrt(n);#include int main() int n,i,k; printf(“n=?); scanf(%d,&n); for (i=2; i=k; i+) if(n%i=0) break; if(in) printf(%d is notn,n); else printf(%d isn,n); return 0;k=sqrt(n);#include #include int main() int n,i,k; printf(“n=?); scanf(%
52、d,&n); for (i=2; i=k; i+) if(n%i=0) break; if(i=k) printf(%d is notn,n); else printf(%d isn,n); return 0;k=sqrt(n);#include 例例5.10 求求100200間的全部素數(shù)。間的全部素數(shù)。(非非素數(shù)之和素數(shù)之和)解題思路:解題思路:u使用使用例例5.9的的算法算法u在在例例5.9程序中程序中只要增加一個外循環(huán),先后對只要增加一個外循環(huán),先后對100200間的全部整數(shù)一一進(jìn)行判定即可間的全部整數(shù)一一進(jìn)行判定即可 for(n=101;n=200;n=n+2) k=sqrt(
53、n); for (i=2;i=k+1) printf(%d ,n); m=m+1; if(m%10=0) printf(“n”); 只對奇數(shù)進(jìn)行檢查只對奇數(shù)進(jìn)行檢查控制每行輸出控制每行輸出10個數(shù)據(jù)個數(shù)據(jù)例:求例:求1001000之間的之間的“水仙花水仙花”數(shù)。數(shù)。如:如:153=13+53+33“水仙花水仙花”數(shù):水仙花數(shù)是指一個數(shù):水仙花數(shù)是指一個 n 位數(shù)位數(shù) ( n3 ),它的每個位上的數(shù)字的,它的每個位上的數(shù)字的 n 次冪之次冪之和等于它本身。和等于它本身。水仙花數(shù)只是自冪數(shù)的一種,嚴(yán)格來說三位水仙花數(shù)只是自冪數(shù)的一種,嚴(yán)格來說三位數(shù)的數(shù)的3次冪數(shù)才成為水仙花數(shù)。次冪數(shù)才成為水仙花數(shù)
54、。例:讀程序,寫出程序運(yùn)行結(jié)果例:讀程序,寫出程序運(yùn)行結(jié)果7c98例:猴子吃桃例:猴子吃桃。猴子第一天摘下若干個桃子,當(dāng)即吃了一半。猴子第一天摘下若干個桃子,當(dāng)即吃了一半,還不過癮,又多吃了一個。第二天早上又將剩下的桃子吃,還不過癮,又多吃了一個。第二天早上又將剩下的桃子吃掉一半,又多吃一個。以后每天早上都吃了前一天剩下的一掉一半,又多吃一個。以后每天早上都吃了前一天剩下的一半零一個。到第半零一個。到第10天早上想再吃時,見只剩下一個桃子了天早上想再吃時,見只剩下一個桃子了。求第一天共摘多少桃子。求第一天共摘多少桃子。 分析:由到第10天早上想再吃時,見只剩下一個桃子了可知,事實上在第九天吃過
55、后就只有一個了.我們用total(day)來表示每一天的桃子數(shù),這樣由題意,total(10)=1,那么total(9)=(total(10)+1)*2,total(8)=(total(9)+1)*2. #include total(int day) int sum; if(day=10) sum=1; else if(day=2*n并并m3*n則則n為滿足條件的為滿足條件的三位數(shù)三位數(shù)void main()int I,j,k,n,m,s=0; for(i=0;i=2;+i) for(j=0;j=9;+j) for(k=2;k=2*n&m=2*i并并m3*i則則i為為滿足條滿足條件的三
56、位數(shù)件的三位數(shù)For(i=101;i=299;+i) n1=i/100 n2=(i-n1*100)/10 n3=i-100*n1-10*n2 m=100*n3+10*n2+n1例:例:1100中其各位數(shù)字的平方等于其本中其各位數(shù)字的平方等于其本身的所有整數(shù)。身的所有整數(shù)。數(shù)組是一組數(shù)組是一組有序數(shù)據(jù)的集合有序數(shù)據(jù)的集合。數(shù)組中。數(shù)組中各數(shù)據(jù)的排列是有一定規(guī)律的,下標(biāo)各數(shù)據(jù)的排列是有一定規(guī)律的,下標(biāo)代表數(shù)據(jù)在數(shù)組中的序號代表數(shù)據(jù)在數(shù)組中的序號用一個用一個數(shù)組名數(shù)組名和和下標(biāo)下標(biāo)惟一確定數(shù)組中惟一確定數(shù)組中的元素的元素數(shù)組中的每一個元素都屬于數(shù)組中的每一個元素都屬于同一個數(shù)同一個數(shù)據(jù)類型據(jù)類型6.
57、1 怎樣定義和引用一維數(shù)組怎樣定義和引用一維數(shù)組6.2 怎樣定義和引用二維數(shù)組怎樣定義和引用二維數(shù)組6.3 字符數(shù)組字符數(shù)組6.1.1 怎樣定義一維數(shù)組怎樣定義一維數(shù)組6.1.2 怎樣引用一維數(shù)組元素怎樣引用一維數(shù)組元素6.1.3 一維數(shù)組的初始化一維數(shù)組的初始化6.1.4 一維數(shù)組程序舉例一維數(shù)組程序舉例定義一維數(shù)組的一般形式為:定義一維數(shù)組的一般形式為: 類型符類型符 數(shù)組名數(shù)組名常量表達(dá)式常量表達(dá)式;數(shù)組名的命名規(guī)則和變量名相同數(shù)組名的命名規(guī)則和變量名相同如如 int a10;數(shù)組名數(shù)組名定義一維數(shù)組的一般形式為:定義一維數(shù)組的一般形式為: 類型符類型符 數(shù)組名數(shù)組名常量表達(dá)式常量表達(dá)式
58、;數(shù)組名的命名規(guī)則和變量名相同數(shù)組名的命名規(guī)則和變量名相同如如 int a10;數(shù)組數(shù)組長度長度定義一維數(shù)組的一般形式為:定義一維數(shù)組的一般形式為: 類型符類型符 數(shù)組名數(shù)組名常量表達(dá)式常量表達(dá)式;數(shù)組名的命名規(guī)則和變量名相同數(shù)組名的命名規(guī)則和變量名相同如如 int a10;10個元素個元素:a0,a1,a2,a9每個元素的數(shù)據(jù)類型每個元素的數(shù)據(jù)類型a0 a1 a2 a3a7 a8 a9定義一維數(shù)組的一般形式為:定義一維數(shù)組的一般形式為: 類型符類型符 數(shù)組名數(shù)組名常量表達(dá)式常量表達(dá)式;int a4+6; 合法合法int n=10; int an;int A10,b5; char c8; fl
59、oat X20,y4*M+1,w5; &(M是符號常量是符號常量)不合法不合法引用數(shù)組元素的表示形式為:引用數(shù)組元素的表示形式為: 數(shù)組名下標(biāo)數(shù)組名下標(biāo)如如a0=a5+a7-a2*3 合法合法int n=5,a10;an=20;合法合法在定義數(shù)組的同時,給各數(shù)組元素賦值在定義數(shù)組的同時,給各數(shù)組元素賦值int a10=0,1,2,3,4,5,6,7,8,9;int a10=0,1,2,3,4;相當(dāng)于相當(dāng)于 int a10=0,1,2,3,4,0,0,0,0,0;int a10=0,0,0,0,0,0,0,0,0,0;相當(dāng)于相當(dāng)于 int a10=0;int a5=1,2,3,4,5;可
60、寫為可寫為 int a =1,2,3,4,5;6.3.1怎樣定義字符數(shù)組怎樣定義字符數(shù)組6.3.2字符數(shù)組的初始化字符數(shù)組的初始化6.3.3怎樣引用字符數(shù)組中的元素怎樣引用字符數(shù)組中的元素6.3.4字符串和字符串結(jié)束標(biāo)志字符串和字符串結(jié)束標(biāo)志6.3.5 字符數(shù)組的輸入輸出字符數(shù)組的輸入輸出l6.3.6善于使用善于使用字符串處理函數(shù)字符串處理函數(shù)6.3.7字符數(shù)組應(yīng)用舉例字符數(shù)組應(yīng)用舉例一、字符數(shù)組的定義一、字符數(shù)組的定義 在在C語言中,沒有專門的字符串變量,而是將字符串存入語言中,沒有專門的字符串變量,而是將字符串存入字符數(shù)組來處理字符數(shù)組來處理 即用一個一維數(shù)組來存放一個字符串,每個元素存放一個即用一個一維數(shù)組來存放一個字符串,每個元素存放一個字符字符 字符數(shù)組是數(shù)組的一個特殊情況,但它的定義方法與上述字符數(shù)組是數(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國原子力顯微鏡行業(yè)投資前景及策略咨詢研究報告
- 2025至2030年中國厚硬材料用特滑針車線數(shù)據(jù)監(jiān)測研究報告
- 2025年中國脫水食品市場調(diào)查研究報告
- 2024跨境教育服務(wù)與合作合同
- 2025年消防現(xiàn)場施工安全文明施工合同范本
- 2025年度高風(fēng)險投資借貸合同風(fēng)險預(yù)警版3篇
- 2024版建筑工程勘察合同書
- 二零二五年度酒水行業(yè)專業(yè)論壇與合作交流合同3篇
- 個人與企業(yè)間產(chǎn)品代理合同(2024版)
- 2025年豆粕代銷委托管理標(biāo)準(zhǔn)合同3篇
- 建筑史智慧樹知到期末考試答案2024年
- 金蓉顆粒-臨床用藥解讀
- 社區(qū)健康服務(wù)與管理教案
- 2023-2024年家政服務(wù)員職業(yè)技能培訓(xùn)考試題庫(含答案)
- 2023年(中級)電工職業(yè)技能鑒定考試題庫(必刷500題)
- 藏歷新年文化活動的工作方案
- 果酒釀造完整
- 第4章-理想氣體的熱力過程
- 生涯發(fā)展展示
- 手術(shù)室應(yīng)對突發(fā)事件、批量傷員應(yīng)急預(yù)案及處理流程
- 動機(jī)-行為背后的原因課件
評論
0/150
提交評論