




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課 題第一章 程序設(shè)計(jì)基本概念教 學(xué)目 的1、了解程序設(shè)計(jì)的基本概念2、了解算法的概念和特性3、了解結(jié)構(gòu)化程序設(shè)計(jì)和模塊化結(jié)構(gòu)教 材分 析教學(xué)重點(diǎn)C程序執(zhí)行過(guò)程、三種基本結(jié)構(gòu)流程圖教學(xué)難點(diǎn)結(jié)構(gòu)化流程圖教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一、新課引導(dǎo)語(yǔ)言:人人語(yǔ)言交流;聾啞人手勢(shì)語(yǔ);人機(jī)計(jì)算機(jī)語(yǔ)言。C語(yǔ)言是一種流行的計(jì)算機(jī)高級(jí)語(yǔ)言,C語(yǔ)言適合于編寫系統(tǒng)軟件,也可以編寫應(yīng)用程序。二、講授新課(一)、程序和程序設(shè)計(jì) 1、C程序(1)程序:可以連續(xù)執(zhí)行的一條條指令的集合。(2)源程序:由高級(jí)語(yǔ)言編寫的程序。(3)目標(biāo)程序:由二進(jìn)制代碼表示的程序。(4)編譯程序:具有將源程序翻譯成目標(biāo)程序的功能的軟件。 圖1.1 C語(yǔ)言
2、編譯程序功能示意圖 注:C程序編譯之后生成一個(gè)后綴名為.obj的二進(jìn)制文件(稱為目標(biāo)文件),再由連接程序把.obj文件與C語(yǔ)言提供的各種庫(kù)函數(shù)連接生成一個(gè)后綴名為.exe的可執(zhí)行文件。 2、程序設(shè)計(jì) 簡(jiǎn)單的程序設(shè)計(jì)一般包含以下5個(gè)部分:(1) 確定數(shù)據(jù)結(jié)構(gòu)(2) 確定算法(3) 編碼(4) 在計(jì)算機(jī)上調(diào)試程序(5) 整理并寫出文檔資料(二)、算法 1、算法的概念 算法是指為解決某個(gè)特定問(wèn)題而采取的確定且有限的步驟。 2、算法的特性(1)有窮性 (2)確定性 (3)可行性(4)有零個(gè)或多個(gè)輸入 (5)有一個(gè)或多個(gè)輸出教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)3、算法的描述方法偽代碼和流程圖圖1.2 一般流程圖所用的幾種
3、基本圖形(三)、結(jié)構(gòu)化程序設(shè)計(jì)和模塊化結(jié)構(gòu) 1、結(jié)構(gòu)化程序 結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,分別是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。(1)順序結(jié)構(gòu):語(yǔ)句按在程序中的先后順序逐條執(zhí)行。語(yǔ)句1語(yǔ)句2語(yǔ)句1語(yǔ)句2 (a)一般流程圖 (b)N-S流程圖 圖1.3 順序結(jié)構(gòu)流程圖(2)選擇結(jié)構(gòu):根據(jù)不同的條件去執(zhí)行不同分支中的判斷表達(dá)式語(yǔ)句1語(yǔ)句2不滿足滿足判斷表達(dá)式滿足不滿足語(yǔ)句1語(yǔ)句2a)一般流程圖 (b)N-S流程圖 圖1.4 選擇結(jié)構(gòu)流程圖教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)(3)循環(huán)結(jié)構(gòu):根據(jù)各自的條件,使同一組語(yǔ)句重復(fù)執(zhí)行多次或零次。判斷表達(dá)式循環(huán)體不滿足滿足當(dāng)判斷表達(dá)式滿足循環(huán)體 a)一般流程圖 (b)N-S流程
4、圖 圖1.5 當(dāng)型循環(huán)流程圖 判斷表達(dá)式循環(huán)體不滿足滿足直到判斷表達(dá)式滿足循環(huán)體 a)一般流程圖 (b)N-S流程圖 圖1.6 直到型循環(huán)流程圖2、模塊化結(jié)構(gòu) 由一個(gè)個(gè)功能模塊構(gòu)成的程序結(jié)構(gòu)稱為模塊化結(jié)構(gòu)。C語(yǔ)言是一種自頂向下、逐步細(xì)化、模塊化的程序設(shè)計(jì)語(yǔ)言。三、課堂小結(jié)1、 C語(yǔ)言程序的執(zhí)行過(guò)程2、 三種基本結(jié)構(gòu):順序、選擇、循環(huán)結(jié)構(gòu) 四、布置作業(yè)P6 1.1、1.2、1.3備注課 題第二章 C程序設(shè)計(jì)的初步知識(shí)教 學(xué)目 的1、掌握C語(yǔ)言程序的構(gòu)成與格式2、掌握標(biāo)識(shí)符命名規(guī)范3、掌握整型、實(shí)型、字符型數(shù)據(jù)的常量及變量4、掌握運(yùn)算符(優(yōu)先級(jí)、結(jié)合性)與表達(dá)式教
5、材分 析教學(xué)重點(diǎn)各種基本數(shù)據(jù)類型的常量和變量、各種運(yùn)算符的使用教學(xué)難點(diǎn)混合表達(dá)式中運(yùn)算符的運(yùn)算順序、自加自減運(yùn)算教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一、復(fù)習(xí)引導(dǎo)上次課我們已經(jīng)學(xué)習(xí)了程序設(shè)計(jì)的基本概念,現(xiàn)在來(lái)學(xué)習(xí)如何編寫C語(yǔ)言程序以及程序中需用到的幾種基本數(shù)據(jù)類型、運(yùn)算符等。二、講授新課(一)、C語(yǔ)言程序的構(gòu)成與格式例2.1:求矩形的面積。 #include <stdio.h>void main( ) double a , b , area ; a = 1.2; b = 3.6; /*將矩形的兩條邊長(zhǎng)分別賦給a和b*/ area = a * b; /*計(jì)算矩形的面積并存儲(chǔ)到變量area中*/ prin
6、tf(“a = %f , b = %f , area = %f n”, a , b , area ); 注:1、函數(shù)在程序中的位置沒(méi)有限制,但程序運(yùn)行總是從主函數(shù)開始直到主函數(shù)結(jié)束,且僅有一個(gè)主函數(shù)。2、每條語(yǔ)句以分號(hào)(;)結(jié)束,一行內(nèi)可寫一條或多條語(yǔ)句,一條語(yǔ)句也可以寫在一行或多行。3、注釋可以出現(xiàn)在任何地方。4、大小寫敏感。5、由于調(diào)用了printf標(biāo)準(zhǔn)庫(kù)函數(shù),需包含相應(yīng)的頭文件stdio.h。(二)、標(biāo)識(shí)符、常量和變量 1、標(biāo)識(shí)符 標(biāo)識(shí)符的命名規(guī)則:可以由字母、數(shù)字和下劃線組成,并且第一個(gè)字符必須為字符或下劃線。 2、標(biāo)識(shí)符的分類 (1)關(guān)鍵字:C語(yǔ)言預(yù)先規(guī)定了一批標(biāo)識(shí)符,它們?cè)诔绦蛑卸?/p>
7、代表固定的含義,不能另用他用。 (2)預(yù)定義標(biāo)識(shí)符:指C語(yǔ)言預(yù)先定義并具有特定含義的標(biāo)識(shí)符,如printf、define等,但C語(yǔ)言允許其重新定義另作他用。 (3)用戶標(biāo)識(shí)符:由用戶根據(jù)需要定義的標(biāo)識(shí)符。教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)備注 3、常量 所謂常量是指在程序運(yùn)行過(guò)程中,其值不能被改變的量。在C語(yǔ)言中,可以用一個(gè)符號(hào)名來(lái)代表一個(gè)常量,稱為符號(hào)常量。例2.2 已知半徑,求圓面積#include <stdio.h> #define PI 3.1416 void main( ) float r,s; r=5; s=PI*r*r; printf(“ns=%f”,s); 注:程序中用#defin
8、e命令行(不是語(yǔ)句)定義PI代表一串字符3.14159,在程序編譯時(shí),凡本程序出現(xiàn)PI的地方均用3.14159來(lái)替換。 4、變量 所謂變量是指在程序運(yùn)行過(guò)程中其值可以改變的量。一個(gè)本來(lái)實(shí)質(zhì)上代表了內(nèi)存中的某個(gè)存儲(chǔ)單元。 注:(1)大小寫敏感(2)不能與保留字重名(3)使用前,必須先定義,指明為何種類型,然后才能在程序中使用(三)、整型數(shù)據(jù)1、整型常量的表示方法(1) 十進(jìn)制 如:123,-456,0(2) 八進(jìn)制數(shù) 如:0123,-011 (以
9、0開頭的數(shù))(3) 十六進(jìn)制數(shù) 如:0x123,-0x12,0xABC (以0x開頭的)2、整型變量(1) 整型數(shù)據(jù)在內(nèi)存中以二進(jìn)制形式存放,每一個(gè)整型變量在內(nèi)存中占2個(gè)字節(jié)。例:定義整型變量i=10 和j= -10的存放形式。(2)整型變量的分類:基本型int、短整型short、長(zhǎng)整型long、無(wú)符號(hào)型unsigned。 (3) 整型變量的定義與初始化如:int k; /*定義k為整型變量*/ int i,j,k *定義i、j、k為整型變量*/ int i=1,j=0,k=2; (4)整數(shù)在內(nèi)存中的存儲(chǔ)形式 存儲(chǔ)
10、的存儲(chǔ)單位有位、字節(jié)、字正整數(shù)在內(nèi)存中以原碼形式存儲(chǔ),負(fù)整數(shù)以補(bǔ)碼形式存儲(chǔ)。教學(xué)內(nèi)容及過(guò)程設(shè)計(jì) (四)、實(shí)型數(shù)據(jù) 1、實(shí)型常量的表示方法(1) 小數(shù)形式 如:0.123,.456,0.0,123.,123.0 整數(shù)部分和小數(shù)部分都可省,但不能同時(shí)省(2) 指數(shù)形式 如:123e3,123E3代表123×103 注:指數(shù)部分為整常數(shù); 尾數(shù)部分可以是整常數(shù),也可以是實(shí)常數(shù);尾數(shù)部分和指數(shù)部分均不可省。E10, 100.e15.2, .e5均為不
11、合法的浮點(diǎn)數(shù)。2、實(shí)型變量(1)實(shí)型數(shù)據(jù)在內(nèi)存中的存放形式一個(gè)實(shí)型數(shù)據(jù)一般在內(nèi)存中占4個(gè)字節(jié)(32位)。實(shí)型數(shù)據(jù)是按照指數(shù)形式存儲(chǔ)的。(2)實(shí)型變量的分類:?jiǎn)尉萬(wàn)loat、雙精度double、長(zhǎng)雙精度long double (五)、算術(shù)表達(dá)式 1、基本的算術(shù)運(yùn)算符:+、 、*、/、% 優(yōu)先級(jí): * / % 高于 + 結(jié)合性:左結(jié)合性注:取余運(yùn)算時(shí),%兩端的數(shù)必須是整型數(shù)據(jù)。 2、算術(shù)表達(dá)式:用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(操作數(shù))連接起來(lái)的、符合C語(yǔ)法規(guī)則的式子稱為算術(shù)表達(dá)式。 3、強(qiáng)制類型轉(zhuǎn)換運(yùn)算符:(類型名)(表達(dá)式) (六)、賦值表達(dá)式1、 簡(jiǎn)單的賦值運(yùn)算符:= 除逗號(hào)表達(dá)式
12、外,優(yōu)先級(jí)最低2、 復(fù)合賦值運(yùn)算符: += *= %=等3、 賦值表達(dá)式: <變量><賦值運(yùn)算符>< 表達(dá)式/值>一般格式:變量 = 表達(dá)式 例如: b=4*2; a=3.5; 結(jié)合性: 自右向左4、 嵌套的賦值表達(dá)式例:求表達(dá)式 a + =a - = a*(a=12) 的值?(答案:264)(七)、自加、自減與逗號(hào)表達(dá)式1、 自加運(yùn)算符“+”、自減運(yùn)算符“-” + 自加運(yùn)算符,如+i,i+, 使 i 的值加 1 - 自減運(yùn)算符,如 -i,i-, 使 i 的值減 1注:自加自減運(yùn)算符的操作數(shù)必須是一整型變量,常用于循環(huán)語(yǔ)句中循環(huán)變量的計(jì)數(shù)。例:以下運(yùn)算式是不
13、正確的:+6, (a+5)-。 例:設(shè) i、a 為一整型變量, i=4 +i; 結(jié)果:i=5教學(xué)內(nèi)容及過(guò)程設(shè)計(jì) i+; 結(jié)果:i=5 -i;結(jié)果:i=3 i-;結(jié)果:i=3 a=+i; 結(jié)果:i=5,a=5a=i+; 結(jié)果:i=5,a=4 a=-i; 結(jié)果:i=3,a=3 a=i -; 結(jié)果:i=3,a=42、 逗號(hào)表達(dá)式一般形式: 表達(dá)式1,表達(dá)式2,表達(dá)式n求解過(guò)程:先求表達(dá)式1,再求表達(dá)式2,依次求下去,直到求出表達(dá)式n,整個(gè)逗號(hào)表達(dá)式的值就是表達(dá)式n的值。例: 表達(dá)式(i=3,i+,+i,i+)的值為10,i的值為5。 表達(dá)式 3+5,6+7的值為13。 表達(dá)式 a=3*5,a*4,a
14、+5的值為 20。三、課堂小結(jié)1、 C語(yǔ)言程序的構(gòu)成與格式2、 +、-運(yùn)算3、 各種運(yùn)算符的優(yōu)先級(jí) 4、表達(dá)式值的求解 四、布置作業(yè)P20 2.14、2.15、5.24 備注課 題第三章 順序結(jié)構(gòu)教 學(xué)目 的1、掌握C語(yǔ)言常用的輸入/出方式2、學(xué)會(huì)簡(jiǎn)單的順序程序設(shè)計(jì)教 材分 析教學(xué)重點(diǎn)C語(yǔ)言常用的輸入/出方式教學(xué)難點(diǎn)格式輸入輸出教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一、復(fù)習(xí)引導(dǎo)上一章介紹的常量、變量、運(yùn)算符、表達(dá)式等都是構(gòu)成程序的基本成分。本章將介紹為編寫簡(jiǎn)單程序所必需的一些內(nèi)容。二、講授新課(一)、賦值語(yǔ)句賦值語(yǔ)句是由賦值表達(dá)式加上一個(gè)分號(hào)構(gòu)
15、成。如:b=3; a=b+c; i+; a= b=c a= b, b=c; (二)、數(shù)據(jù)輸出 1、 把數(shù)據(jù)從計(jì)算機(jī)內(nèi)部送到計(jì)算機(jī)外部設(shè)備上的操作稱為“輸出”。從計(jì)算機(jī)外部設(shè)備將數(shù)據(jù)送入計(jì)算機(jī)內(nèi)部的操作稱為“輸入”。注:(1)C語(yǔ)言不提供輸入輸出語(yǔ)句,輸入輸出操作通過(guò)函數(shù)調(diào)用實(shí)現(xiàn)。(2)要使用C語(yǔ)言庫(kù)函數(shù),應(yīng)用“#include”將頭文件sdtio.h包括到用戶源程序中。 2、輸出函數(shù)printf語(yǔ)法:printf (格式控制, 輸出項(xiàng)1,輸出項(xiàng)2,); 格式控制:是用雙引號(hào)括起來(lái)的字符串,包含兩種信息: 普通字符和轉(zhuǎn)義字符
16、(這類字符總是原樣輸出)格式說(shuō)明:由%和格式控制符組成。如:%d, %f等;(P24)如:printf(“a=%d, b=%d”,a,b); 若a、b的值分別為3和4,則輸出結(jié)果為: a=3, b=4。(1) printf函數(shù)中常用的格式說(shuō)明表3.1 格式字符及其功能格式字符說(shuō)明c輸出一個(gè)字符d或i輸出帶符號(hào)的十進(jìn)制整數(shù)o按八進(jìn)制輸出一個(gè)整型數(shù)據(jù)x或X按十六進(jìn)制輸出一個(gè)整型數(shù)據(jù)u按十進(jìn)制輸出一個(gè)無(wú)符號(hào)整數(shù)f帶小數(shù)點(diǎn)形式輸出單精度和雙精度實(shí)數(shù)e或E按指數(shù)形式輸出單精度和雙精度實(shí)數(shù)s輸出字符串%輸出% 教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)(2)附加成分說(shuō)明:格式字符說(shuō)明例子l長(zhǎng)度修飾符long a=67789;pr
17、intf(“%ld”, a); m指定寬度printf(“%5d”, 42); / 42m,n指定寬度和小數(shù)位數(shù)printf(“%6.1f”, 123.55); /123.6-左對(duì)齊int a=12;printf(“n a=%-4d4a=%4d”,a.,4*a);#加 0 或 0x 區(qū)分八/十六進(jìn)制數(shù)printf(“%o,%#o,%x,%#x”,10,10,10,10); /12,012,a,0xa0前導(dǎo)0printf(“%05d”, 42); /輸出00042(3) 使用printf函數(shù)時(shí)的注意事項(xiàng) 1)printf的輸出格式為自由格式,是否在兩個(gè)數(shù)之間留逗號(hào)、空格或回車,完全取決于格式控制
18、,如果不注意,很容易造成數(shù)字連在一起,使得輸出結(jié)果沒(méi)有意義。 2)格式控制中必須含有與輸出項(xiàng)一一對(duì)應(yīng)的輸出格式說(shuō)明,類型必須匹配。 3)還可以包含合法字符,這些字符原樣輸出。 4)printf函數(shù)有返回值,返回值是本次調(diào)用輸出字符的個(gè)數(shù)。 5)輸出數(shù)據(jù)時(shí)的域?qū)捒梢愿淖?。(三)、輸入函?shù)scanf 語(yǔ)法:scanf(格式控制,地址表列);格式控制:包含三類符號(hào) 空白字符:(空格、Tab或、),輸入時(shí)不必一一對(duì)應(yīng); 普通字符:(非格式轉(zhuǎn)換說(shuō)明符、非空白符、非%),輸入時(shí)必須一一對(duì)應(yīng); 格式轉(zhuǎn)換說(shuō)明符:注意:scanf函數(shù)規(guī)定,組成輸入項(xiàng)表的輸入對(duì)象須是地址量;如: scanf(“%d,%d,%d”
19、,&a,&b,&c); scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);第一個(gè)輸入語(yǔ)句,正確的輸入數(shù)據(jù)流為:123,456,789<enter>,處理的結(jié)果為:123a,456b,789c同理對(duì)第二個(gè)輸入語(yǔ)句,正確的輸入數(shù)據(jù)流應(yīng)是:a=123,b=456,c=789<enter> 該輸入數(shù)據(jù)流中除123,456,789被賦給相應(yīng)變量外,其余都被丟棄教學(xué)內(nèi)容及過(guò)程設(shè)計(jì) (1)格式說(shuō)明%c 輸入一個(gè)字符 %d 輸入十進(jìn)制整數(shù) %o 輸入八進(jìn)制整數(shù) %x 輸入十六進(jìn)制整數(shù) %u 輸入無(wú)符號(hào)十進(jìn)制整數(shù) %f(%l
20、f)、%e(%le) 輸入小數(shù)或指數(shù)形式的單精度(雙精度)數(shù) %s 輸入字符串注:除%s外,都需要地址符&,對(duì)雙精度數(shù),輸入時(shí)必須%lf或%le,輸出時(shí)%f(%lf)、%e(%le) 都可以。例:int a,b; char c,d;scanf(“%d%d”,&a,&b);/輸入 3 5scanf(“%d, %d”,&a,&b);/輸入3,5scanf(“a=%d,b=%d”,&a,&b);/輸入a=3,b=5scanf(“%3d%3d”,&a,&b);/輸入 123456如何?scanf(“%c%c”,&c,&am
21、p;d);/輸入mn或m n如何?scanf(“%c,%c”,&c,&d);/輸入m,n(四)、復(fù)合語(yǔ)句和空語(yǔ)句復(fù)合語(yǔ)句:在語(yǔ)法上為一條語(yǔ)句,以 為標(biāo)志。如:t=a;a=b;b=t;空語(yǔ)句:只有一個(gè)“;”的句子,執(zhí)行空語(yǔ)句不產(chǎn)生任何動(dòng)作。注:隨意加分號(hào)會(huì)導(dǎo)致邏輯上的錯(cuò)誤。(五)、程序舉例 例3.1 交換兩個(gè)整數(shù)并輸出。#include<stdio.h>void main() int x,y,t; printf("Enter x & y : n"); scanf("%d %d",&x,&y); print
22、f("x=%d y=%d n",x,y);t=x; x=y; y=t; printf("x=%d y=%d n",x,y);例3.2 輸入一個(gè)double數(shù),保留位小數(shù),第位小數(shù)四舍五入,最后輸出。#include<stdio.h>void main() double x; printf("Enter x: "); scanf("%lf",&x); printf("(1) x=%f n",x); x=x*100; x=x+0.5; x=(int)x;x=x/100; prin
23、tf("(2) x=%f n",x);三、課堂小結(jié)1、 printf和scanf語(yǔ)句2、 復(fù)合語(yǔ)句與空語(yǔ)句 四、布置作業(yè)P34 3.17、3.18、3.19、3.20備注課 題第四章 選擇結(jié)構(gòu)教 學(xué)目 的1、掌握實(shí)現(xiàn)選擇結(jié)構(gòu)的兩種語(yǔ)句、關(guān)系邏輯運(yùn)算符2、學(xué)會(huì)編寫選擇結(jié)構(gòu)的程序教 材分 析教學(xué)重點(diǎn)關(guān)系邏輯運(yùn)算符、if-else語(yǔ)句、switch語(yǔ)句、條件運(yùn)算符教學(xué)難點(diǎn)嵌套if-else語(yǔ)句中的if與else匹配問(wèn)題教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一、復(fù)習(xí)引導(dǎo)上一次課已經(jīng)介紹了程序基本結(jié)構(gòu)之一:順序結(jié)構(gòu),但在大多數(shù)情況下都要用到選擇結(jié)構(gòu)。二、講授新課(一)、關(guān)系
24、運(yùn)算和邏輯運(yùn)算 1、C語(yǔ)言的邏輯值 邏輯值只有兩個(gè):分別用“真”和“假”表示。在C語(yǔ)言中,沒(méi)有專門的“邏輯值”,而是用非0表示“真”,用0表示“假”。 2、關(guān)系運(yùn)算符和關(guān)系表達(dá)式 (1)關(guān)系運(yùn)算符:< <= > >= = = ! =優(yōu)先級(jí):< <= > >= 高于 = = != 注:關(guān)系運(yùn)算符低于算術(shù)運(yùn)算符,高于賦值運(yùn)算符。 (2)關(guān)系表達(dá)式:用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來(lái)的式子。關(guān)系表達(dá)式求值:關(guān)系成立,值為1;關(guān)系不成立,值為0。 3、邏輯運(yùn)算符和邏輯表達(dá)式(1)邏輯運(yùn)算符:&& | !優(yōu)先級(jí):! 高于 &&
25、 高于 | 注:優(yōu)先級(jí)從高到低:!、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、&&、|、賦值運(yùn)算符 (2)邏輯表達(dá)式:由邏輯運(yùn)算符和運(yùn)算對(duì)象組成的表達(dá)式。邏輯表達(dá)式的值要么為1要么為0。 (二)、if語(yǔ)句和if語(yǔ)句構(gòu)成的選擇語(yǔ)句1、不含else子句的if語(yǔ)句(1)語(yǔ)句形式 if(表達(dá)式e) 語(yǔ)句s(2)執(zhí)行過(guò)程 如果表達(dá)式e為真,則執(zhí)行語(yǔ)句s,然后去執(zhí)行if語(yǔ)句后的下一條語(yǔ)句,如果表達(dá)式e為假,則不執(zhí)行語(yǔ)句s,直接執(zhí)行if語(yǔ)句后的下一條語(yǔ)句。 例4.1 輸入兩個(gè)數(shù),分別放入x和y中,若兩數(shù)不相等,則輸出其中的大數(shù);若兩數(shù)相等,則輸出字符串x=y和x的值。#include<stdio.h&g
26、t;void main() int x,y; printf(“Enter x&y ; n”) scanf(“%d%d”,&x,&y);printf(“x,y:%d%dn,x,y); if(x>y)printf(“x=%dn”,x); if(y>x)printf(“y=%dn”,y);if(x = = y) printf(“x = = y %d;n”,x);教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)例 4.2 輸入三個(gè)整數(shù)分別放在變量a、b、c中,然后把輸入的數(shù)據(jù)按由小到大的順序放在變量a、b、c中,然后輸出a、b、c中的值。#include<stdio.h>void m
27、ain() int a,b,c,t; printf(“ a,b,c:”);scanf(%d%d%d”,&a,&b,&c); printf(“a=%d,b=%d,c=%d”n”,a,b,c); if (a>b) t=a;a=b;b=t;if(a>c) t=a;a=c;c=t;if(b>c) t=b;b=c;c=t;printf(“%d,%d,%dn”,a,b,c); 2、含else子句的if語(yǔ)句(1)語(yǔ)句形式 if(表達(dá)式e) 語(yǔ)句1 else 語(yǔ)句2 (2)執(zhí)行過(guò)程 如果表達(dá)式e為真,則執(zhí)行語(yǔ)句1,然后去執(zhí)行if語(yǔ)句后的下一條語(yǔ)句,如果表達(dá)式e為假,則
28、執(zhí)行語(yǔ)句2,然后執(zhí)行if語(yǔ)句后的下一條語(yǔ)句。 例 4.3 輸入兩個(gè)數(shù),分別賦給x和y,輸出其中的大數(shù)。#include <stdio.h>void main()int x,y; printf(“Enter x&y:”); scanf(“%d%d”,&x,&y);printf(“x,y:%d %dn”,x,y); if(x>y) printf(“max=x=%dn”,x); else printf(“max=y=$dn”,y); printf(“*end*n);例 4.4 輸入一個(gè)數(shù),判別它是否能被3整除。若能被3整除,打印YES,不能被3整除,打印NO
29、。#include <stdio.h> void main()int n; printf(“input n:”);scanf(“%d”,&n); if(n%3=0) /*判斷n能否被3整除*/printf(“n=%dYESn”,n); elseprintf(“n=%dNOn”,n);教學(xué)內(nèi)容及過(guò)程設(shè)計(jì) 3、關(guān)于if語(yǔ)句的說(shuō)明: (1)if后面圓括號(hào)的表達(dá)式可以是任意合法的C語(yǔ)言表達(dá)式也可以是任意類型的數(shù)據(jù)。(2)無(wú)論是否有else子句,if子句中如果只有一條語(yǔ)句,則此語(yǔ)句的分號(hào)不能省略。 4、嵌套的if語(yǔ)句 (1)在if子句中嵌套具有else子句的if語(yǔ)句 語(yǔ)句形式如下:
30、if(表達(dá)式1) if(表達(dá)式2) 語(yǔ)句1 else 語(yǔ)句2 else 語(yǔ)句3 (2)在if子句中嵌套不含else子句的if語(yǔ)句 語(yǔ)句形式如下: if(表達(dá)式1) if(表達(dá)式2) 語(yǔ)句1 else 語(yǔ)句2 (3)在else子句中嵌套if語(yǔ)句 1)內(nèi)嵌的if語(yǔ)句帶else 2) 內(nèi)嵌的if語(yǔ)句不帶else if(表達(dá)式1) 語(yǔ)句1 if(表達(dá)式1) 語(yǔ)句1 else else if(表達(dá)式2) 語(yǔ)句2 if(表達(dá)式2) 語(yǔ)句2 else 語(yǔ)句3 例 4.5 編寫程序,根據(jù)輸入的學(xué)生成績(jī)給出相應(yīng)的等級(jí),大于或等于90分以上的等級(jí)為A,60分以下的等級(jí)為E,其余每10分為一個(gè)等級(jí)。#include
31、<stdio.h>void main()int g; printf(“Enter g:”);scanf(“%d”,&g);printf(“g=%d:”,g)if(g>=90)printf(“An”); else if (g>=80)printf(“Bn”);else if (g>=70)printf(“Cn”);else if (g>=60)printf(“Dn”)else printf(“En”); 教學(xué)內(nèi)容及過(guò)程設(shè)計(jì) (三)、條件表達(dá)式構(gòu)成的選擇語(yǔ)句 1、條件表達(dá)式的形式如下: 表達(dá)式1?表達(dá)式2:表達(dá)式32、條件表達(dá)式的功能 當(dāng)表達(dá)式1的值為非
32、零時(shí),表達(dá)式2的值為整個(gè)條件表達(dá)式的值,當(dāng)表達(dá)式1的值為零時(shí),表達(dá)式3的值為整個(gè)條件表達(dá)式的值。 (四)、switch語(yǔ)句以及switch語(yǔ)句和break語(yǔ)句構(gòu)成的選擇結(jié)構(gòu) 1、switch語(yǔ)句 (1) switch語(yǔ)句形式如下: switch(表達(dá)式) case 常量表達(dá)式1: 語(yǔ)句1 case 常量表達(dá)式2: 語(yǔ)句2 case 常量表達(dá)式n: 語(yǔ)句ndefault : 語(yǔ)句n+1 (2) switch語(yǔ)句的執(zhí)行過(guò)程 首先計(jì)算表達(dá)式的值,然后在switch語(yǔ)句體內(nèi)尋找與該值吻合的case標(biāo)號(hào)。若有與該值相等的標(biāo)號(hào),則執(zhí)行該標(biāo)號(hào)后開始的各語(yǔ)句,包括在其后的所有case和default中的語(yǔ)句,
33、直到switch語(yǔ)句體結(jié)束;如果沒(méi)有與該值相等的標(biāo)號(hào),并且存在default標(biāo)號(hào),則從default標(biāo)號(hào)后的語(yǔ)句開始執(zhí)行,直到switch語(yǔ)句體結(jié)束;如果沒(méi)有與該該值相等的標(biāo)號(hào),同時(shí)又沒(méi)有default標(biāo)號(hào),則跳過(guò)switch語(yǔ)句體,去執(zhí)行其之后的語(yǔ)句。 例 4.6 用swith 語(yǔ)句改寫例4.5。#include<stdio.h>void main ( )int g;printf(“Enter a mark:”);scanf(“%d”,&g);printf(“g=%d:”,g);switch(g/10)case 10: case 9:printf(“An”); case
34、8:printf(“Bn”); case 7:printf(“Cn”); case 6:printf(“Dn”); default 5:printf(“En”); 2、在switch語(yǔ)句體中使用break語(yǔ)句 每當(dāng)執(zhí)行到break語(yǔ)句時(shí),立即跳出switch語(yǔ)句體。 例:修改例4.6的程序,在case語(yǔ)句后面加break。 教學(xué)內(nèi)容及過(guò)程設(shè)計(jì) (五)、語(yǔ)句標(biāo)號(hào)和goto語(yǔ)句 例如: goto stop; stop: printf(“endn”);三、課堂小結(jié)1、 關(guān)系邏輯運(yùn)算2、 if與switch語(yǔ)句 四、布置作業(yè)P49 4.21、4.22、4.25備注課 題第
35、五章 循環(huán)結(jié)構(gòu)教 學(xué)目 的1、掌握三種循環(huán)語(yǔ)句的語(yǔ)法結(jié)構(gòu)2、靈活運(yùn)用循環(huán)語(yǔ)句 教 材分 析教學(xué)重點(diǎn)三種循環(huán)語(yǔ)句while、do-while、for教學(xué)難點(diǎn)三種循環(huán)語(yǔ)句的區(qū)別教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一、復(fù)習(xí)引導(dǎo)問(wèn)題1:假如全班41人,欲從鍵盤上輸入每人的數(shù)學(xué)成績(jī),然后計(jì)算出平均成績(jī);問(wèn)題2: 編程計(jì)算n!。重復(fù)執(zhí)行一組語(yǔ)句是程序設(shè)計(jì)要求的基本功能之一。在C語(yǔ)言中可以用以下語(yǔ)句來(lái)實(shí)現(xiàn)循環(huán):(1)while (2)do-while (3)for 二、講授新課(一)、while語(yǔ)句和用while語(yǔ)句構(gòu)成的循環(huán)結(jié)構(gòu) 語(yǔ)法:while (exp) 循環(huán)體語(yǔ)句;語(yǔ)義:當(dāng)exp為真時(shí),執(zhí)行循環(huán)體;為假
36、時(shí),執(zhí)行循環(huán)語(yǔ)句的后續(xù)語(yǔ)句; 說(shuō)明:1) 循環(huán)體可以用復(fù)合語(yǔ)句;2) 在while語(yǔ)句前應(yīng)有為測(cè)試表達(dá)式(exp)中的循環(huán)控制變量賦初值的語(yǔ)句,以確保循環(huán)的正常開始;3) 循環(huán)體內(nèi)應(yīng)有改變循環(huán)控制變量的語(yǔ)句,以確保循環(huán)進(jìn)行有限次后正常結(jié)束; 如:i=1;while (i<=100) sum=sum+1; (死循環(huán))4) while 循環(huán)的特點(diǎn)是先判斷后執(zhí)行,故循環(huán)有可能一次都不被執(zhí)行; 如: i=3; while (i<3) printf(“i=%dn”,i); 例5.1 編寫程序求12+22+32+n2,直到累加和大于或等于10000
37、為止。#include<stdio.h>void main( ) int i,sum; i=0;sum=0; /*i和sum的初值為0*/while(sum<10000) /*當(dāng)sum小于10000時(shí)執(zhí)行循環(huán)體*/ sum+=i*i; /*在循環(huán)體中每累加一次后,i增加1*/i+;printf(“n=%dsum=%dn”,i-1,sum);例5.2 用公式求的近似值,直到最后一項(xiàng)的絕對(duì)值小于10為止。 #include<stdio.h>#include<math.h>教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)void main( ) int s;float n, t , pi
38、;t=1.0;pi=0;n=1.0;s=1;while(fabs(t)>1e-6) pi=pi+t; n+=2.0; s=-s; t=s/n; pi=pi*4;printf(“pi=%fn”,pi);例5.3 用迭代法求方程x=cosx的根,要求誤差小于10.#include<stdio.h>#include<math.h>void main( ) double x1,x2;x1=0.0;x2=cos(x1);while(fabs(x2-x1)>1e-6) x1=x2; x2=cos(x1); printf(“x=%fn”,x2); (二)、do-while
39、語(yǔ)句和用do-while語(yǔ)句構(gòu)成的循環(huán)結(jié)構(gòu)語(yǔ)法:do 循環(huán)體語(yǔ)句; while (exp);語(yǔ)義:當(dāng)exp為真時(shí),執(zhí)行循環(huán)體;為假時(shí),執(zhí)行循環(huán)語(yǔ)句的后續(xù)語(yǔ)句;說(shuō)明:1) 循環(huán)體可以用復(fù)合語(yǔ)句;2) 循環(huán)控制變量在執(zhí)行do前必須賦初值;循環(huán)體內(nèi)應(yīng)有改變循環(huán)控制變量的語(yǔ)句;3) do-while 循環(huán)的特點(diǎn)是先執(zhí)行后判斷,故循環(huán)至少被執(zhí)行一次。 例5.4 計(jì)算Fibonacci數(shù)列,直到某項(xiàng)大于1000為止,并輸出該項(xiàng)的
40、值。#include<stdio.h>void main() int f1,f2,f;f1=0; f2=1;dof=f1+f2;f2=f;while(f2<=1000);printf(“F=%dn”,f2);教學(xué)內(nèi)容及過(guò)程設(shè)計(jì) (四)、for 語(yǔ)句語(yǔ)法:for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 循環(huán)體語(yǔ)句;語(yǔ)義:1、先求表達(dá)式1;2、求解表達(dá)式2,若值為真,則執(zhí)行第三步;若為假,則結(jié)束循環(huán);3、執(zhí)行循環(huán)體中的語(yǔ)句;4、求解表達(dá)式3;5、轉(zhuǎn)回第二步繼續(xù)執(zhí)行如:for( i=1; i<=100; i+) sum=sum+i;可看成:for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增
41、值)語(yǔ)句;說(shuō)明:(1)顯然for循環(huán)更簡(jiǎn)潔,更靈活;(2)循環(huán)體可以是復(fù)合語(yǔ)句;(3)for語(yǔ)句中的三個(gè)表達(dá)式均可以是逗號(hào)表達(dá)式,故可同時(shí)對(duì)多個(gè)變量賦初值及修改。如:for(i=0, j=1; j<n && i<n; i+, j+) (4)for語(yǔ)句中三個(gè)表達(dá)式可?。豪?.5 編寫程序,求1+2+3+100.#include<stdio.h>void main( ) int i,sum;sum=0; for(i=1;i<=100;i+) sum+=i; printf(“sum=%dn”,sum);例5.6 編寫程序,計(jì)算半徑為0.5m
42、m、1.0mm、1.5mm、2.0mm、2.5mm時(shí)的圓的面積。#include<stdio.h>void main() doulde r , s , pi=3.1416;for(r=0.5;r = <2.5;r+=0.5) s=pi*r*r; printf(“r=%3.1f s=%fn”,r ,s );(五)、幾種循環(huán)的比較 (1)可以相互代替使用 (2)while, do-while循環(huán),在while后面指定循環(huán)條件,在循環(huán)體中應(yīng)包含使循環(huán)趨向于結(jié)束的語(yǔ)句 (3)凡是在while中能完成的,在for 語(yǔ)句中也能完成。教學(xué)內(nèi)容及過(guò)程設(shè)計(jì) (六)、循環(huán)結(jié)構(gòu)的嵌套 在一個(gè)循環(huán)體
43、內(nèi)又完整地包含了另一個(gè)循環(huán),稱為循環(huán)嵌套。 例5.7 使用雙層for循環(huán)打印如下由星號(hào)組成的倒三角形圖形: * * * *#include<stdio.h>void main( ) int k , i , j; for( i =0;i<4;i+) for(k=1;k<=i;k+) printf (“ ”); for(j=0;j<7-i*2;j+) printf(“ * ”); printf(“n”);例5.8 編寫程序,找出2100以內(nèi)的所有質(zhì)數(shù)(素?cái)?shù))。#include<stdio.h>void main( ) int k , i , tag;pri
44、ntf(“2,”);for(i=3;i<=100;i+=2)tag = 0; for(k=2;tag=0&&k<sqrt(i);k+) if(i%k=0) tag=1; if(tag=0) printf(“%d,”,i); (七)、break和continue語(yǔ)句在循環(huán)體中的作用(1)break語(yǔ)句:可以用于switch語(yǔ)句中,也可以用于循環(huán)語(yǔ)句中,當(dāng)用于循環(huán)語(yǔ)句中時(shí),用于在滿足條件情況下,跳出本層循環(huán)。(2)continue語(yǔ)句:用于循環(huán)語(yǔ)句中,在滿足條件情況下,跳出本次循環(huán)。即跳過(guò)本次循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,接著進(jìn)行下一次的循環(huán)判斷。例5.9 求s=1+2+
45、3+i,直到s大于5000為止,并給出s和i的值。#include<stdio.h>void main( ) int i , s;s=0;for( i = 1;i+) s=s+i; if(s>5000) break;printf(“s=%d,i=%dn”,s,i);教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)例5.10 在循環(huán)體中continue語(yǔ)句執(zhí)行示例。#include<stdio.h>void main( ) int k=0,s=0,i;for(i=1;i< =5;i+) s=s+i;if(s>5) printf(“* * * *i = %d,k = %dn”,i ,s
46、 ,k ); continue; k = k + s;printf(“i=%d,s=%d,k=%dn”,i,s,k); (八)、程序舉例例5.11 從輸出的若干大于零的正整數(shù)中選出最大值,用-1結(jié)束輸入。#include<stdio.h>void main( ) int x,max;printf(“Enter -1 to end:n”);do printf(“Enter x:”); scanf(“% d”,&x);while(x<0&& x! = - 1);max= x;while(x!= - 1) printf(“Enter x:”);scanf(“%d”,&x);if (x > 0&& x >max ) max=x; if(max!= - 1) printf(“max = %dn”,max);例5.12 用迭代法求某個(gè)數(shù)a的平方根。已知求平方根的迭代公式為:#include<stdi
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 商務(wù)英語(yǔ)口語(yǔ)練習(xí)的有效方法試題及答案
- 中國(guó)濕轉(zhuǎn)子循環(huán)泵行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告2025-2028版
- 2024年漢中市鐵路中心醫(yī)院招聘工作人員筆試真題
- 2025年幼兒園數(shù)學(xué)能力提升試題及答案
- 唐裝及特色服飾采購(gòu)合同
- 儒商發(fā)展面試題及答案
- 樂(lè)理考試高效復(fù)習(xí)技巧試題及答案
- 2025年家具行業(yè)市場(chǎng)調(diào)查與設(shè)計(jì)試題及答案
- 2025年土木工程師考試的考核重點(diǎn)與相互關(guān)聯(lián)性試題及答案
- 老年服務(wù)與健康管理考核試卷
- 2025年中國(guó)陳皮市場(chǎng)調(diào)查研究報(bào)告
- 2024年農(nóng)藝師考試考試形式試題及答案
- 老年綜合評(píng)估技術(shù)應(yīng)用中國(guó)專家共識(shí)解讀
- 初中語(yǔ)文第23課《“蛟龍”探?!氛n件-2024-2025學(xué)年統(tǒng)編版語(yǔ)文七年級(jí)下冊(cè)
- 汽車銷售禮儀與溝通技巧考核試卷
- 立繪買斷合同協(xié)議
- 遺體轉(zhuǎn)運(yùn)協(xié)議書范本
- 挖礦委托協(xié)議書范本
- 2025春季學(xué)期國(guó)開電大本科《人文英語(yǔ)3》一平臺(tái)在線形考綜合測(cè)試(形考任務(wù))試題及答案
- 2019 SDF-2019-0002《山東省建設(shè)工程施工合同(示范文本)》
- 藥品經(jīng)營(yíng)使用和質(zhì)量監(jiān)督管理辦法2024年宣貫培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論