版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、說 明教案是除課件之外,重要的教學資料,甚至比課件更為重要。在教學管理中,每個學校對教案的要求是相當嚴格的,我院也是一樣,每學期結束后,都要求教師必須打印教案并上交。而備課要占用大量的時間和精力,為了讓廣大使用該教材的教師從繁重的書寫教案中解脫出來,現(xiàn)將本人幾年前的教案資料貢獻出來,希望大家從中受益。需要指出的是,該教案是按我院3年前教學要求書寫的,可能與各個學校的格式不盡相同,但大體差別應該不大,希望對大家有所幫助。 武春嶺程序設計基礎教案計應51、52、計控51、信管51、52、網絡55授課班級: 周 學 時: 4節(jié) 開課時間: 2005-9-19 授課教師: 武春嶺 部 門:計算機系信息
2、安全教研室重慶電子工程職業(yè)學院課 題:第一章 C語言概述教學目標:通過本次講授,使學生了解C語言產生的背景及歷程,掌握C語言的基本特點。教學重點:C語言及C程序的特點。教 法:講授法所用課時:2節(jié)授課班級:計應51、52、計控51、 網絡55 信管51、52授課時間:9.19(5-6節(jié)) 9.19(7-8節(jié)) 9.20(1-2節(jié)) 9.20(7-8節(jié)) 教學過程: 活動:1 上互聯(lián)網,在統(tǒng)一資源定位器URL(網址欄)里輸入 ,進入該搜索網站,然后在google搜索中輸入:C語言程序開發(fā)招聘,然后點擊“google搜索”按鈕,通過搜索信息看一下C語言目前是否還有實用價值,其招聘的“C開發(fā)”主要從
3、事何種類型的開發(fā)?通過這個活動,你覺得C語言程序設計還有用嗎?還值得學嗎?2 本書229頁是國內一流的信息安全產品集成生產廠商衛(wèi)士通公司2004年的招聘啟事(下載于2004年7月26日),仔細閱讀該招聘啟事,想一想“學C的感覺”,你覺得計算機類/信息類專業(yè)不學好C語言行嗎?好好思考一下如何學習才能便于將來自己的專業(yè)擴展和就業(yè)擴展。一、C語言出現(xiàn)的歷史背景講述最初的匯編語言編寫系統(tǒng)軟件的局限性,引出C語言應孕而生的必然性。C語言大致歷程為:ALGOL60 CPL BCPL B C 1973年K.Thompson和D.M.Ritchie用C語言改寫了UNIX 90%以上,使UNIX與C相互促進,共
4、同發(fā)展。二、C語言程序的特點在沒講C語言程序的特點之前,先看幾個小小的C程序:例1 #include <stdio.h> /*頭文件包含*/void main( ) /*main函數(shù)是C語言固定的主函數(shù),不能少*/函數(shù)體 printf(“Hello World!”); /*輸出函數(shù)*/*注意花括號的配對出現(xiàn)*/每一個C程序都必須有main函數(shù),否則,程序將無法運行,同學們記住,今后要編程序時,可先搭建主函數(shù)框架。例2求3個數(shù)的平均值(a=3.5、b=4.6、c=7.9)。float averager(float x,float y,float z) /*定義一個求三個平均值的函數(shù)*
5、/x,y,z三個變量為形式參數(shù),都為實型 float aver; aver=(x+y+z)/3 ;/*求平均*/ return(aver); /*返回到主函數(shù)的調用處*/main( ) float a,b,c,ave; /*定義幾個變量為實型*/ a=3.5;b=4.6;c=7.9; /*給實際參數(shù)變量賦值*/ ave=averager(a,b,c); /*調用求平均函數(shù)averager*/ printf(“averager=%f”,ave); /*按實數(shù)輸出格式%f輸出ave的值*/思考:若求三個任意數(shù)的平均值怎么辦?我們可以利用鍵盤輸入函數(shù)scanf( )來實現(xiàn)!只要我們修改一下main函
6、數(shù)就行了。代碼如下:main( ) int a,b,c;float ave; printf("input a,b,c:"); scanf("%d%d%d",&a,&b,&c); /*鍵盤輸入函數(shù)*/ ave=average(a,b,c); printf("average=%f",ave);其中,scanf函數(shù)雙引號內的“%d%d%d”是分別說明變量a、b、c按整型格式輸入,“&”表示地址符號,運用輸入函數(shù)輸入變量值時,必須在變量前加地址符號,這樣才能保證輸入的值正確存入相應的變量所在內存單元。有興趣的學
7、習者可以在計算機上運行一下,看效果如何。自定義函數(shù)averager由編程者命名。命名時,只要符合C語言的語法要求,都是可以的,在此為了見名思義,故取名為averager。由上可總結出C語言程序的一般特點為:(1)C語言是由函數(shù)構成的,一個C源程序至少包含一個main函數(shù);(2)一個C程序總是從main函數(shù)開始開始執(zhí)行的而不論main函數(shù)在程序中的位置;(3)C語言書寫格式自由,一行內可寫幾個語句;(4)每個語句和數(shù)據(jù)定義的最后一個語句必須有一個分號;(5)C語言本身沒有輸入輸出語句,輸入輸出是由函數(shù)完成的;(6)可以用“/*”和“*/”對C程序中的任何部分作注釋;說明:C程序的基本單位是函數(shù),
8、一個源程序由若干函數(shù)組成,但至少包括一個main函數(shù),且main函數(shù)的位置不限。三、C程序的開發(fā)過程執(zhí)行連接編譯編輯鍵盤輸入 f.c磁盤文件 f.obj f.exe 結果源程序 成功 出錯見課本第6頁。四、技能測試:見課本第8頁。作業(yè):P9 1.4已知三角形的三邊長分別為:3、4、5,試編程求其面積。課 題:實驗(熟悉Turbor C語言的編譯環(huán)境)教學目標:通過本次實驗使學生熟練掌握C的編譯環(huán)境,學會一般程序的調試方法。教學重點:掌握C程序的編輯、調試和運行方法。教 法:試驗法。授課班級:計應51、52、計控51、 網絡55 信管51、52授課時間: 試驗內容:一、演示實驗內容1程序的編輯方
9、法打開file菜單(按ALT+F快捷鍵或按F10功能鍵,然后通過移動光標鍵來選file菜單);通過光標鍵選擇new選項,如下圖:在編輯區(qū)域內,輸入一個小程序,如下圖所示:2保存程序打開file菜單,選擇Write To選項,便出現(xiàn)如下情況:在上圖所示的New Name對話框中,輸入自己程序的保存路徑及文件名,假如程序名取為P1,將其保存在D盤的MYFILE目錄下,可像如下輸入:回車后,將會將你所輸入的程序保存到指定的路徑下。3運行程序打開Run菜單,選擇Run選項,或者直接用快捷方式Ctrl+F9執(zhí)行。若程序無錯,則會顯示編譯成功畫面,否則會顯示出錯信息,可排錯后再執(zhí)行。4顯示運行結果程序正確
10、編譯后,并不能出現(xiàn)運行結果,若要看運行結果,可打開Run菜單,選擇User Screen選項,或者直接用快捷鍵ALT+F5,如下所示:結果如下:若返回程序編輯狀態(tài)可,按任意鍵。說明:對同一個程序來講,若修改后再保存,則用File菜單的Save選項即可,不要再用Write to項;若想再編輯調試其它程序,千萬不要接著第一個程序往下輸,可重新選File菜單的New選項,從而開始新程序的編輯。二、學生練習活動:1學生完成課本第9頁練習1.4的程序編輯及其調試運行;2觀察學生的練習過程;3根據(jù)學生練習中出現(xiàn)的問題逐一進行演示糾正;4學生自行消化鞏固C編譯器的應用。三、小結:1 熟悉C程序的編輯運行環(huán)境
11、;2 掌握一個完整C程序的運行調試方法。課 題:第2章 數(shù)據(jù)描述教學目標:通過本次講授,使學生了解C語言的數(shù)據(jù)類型及標識符的概念和用法。教學重點:常量和變量的理解。教 法:講授法所用課時:2節(jié)授課班級:計應51、52、計控51、 網絡55 信管51、52授課時間: 教學過程:活動:1找學生寫出main()的框架、printf( )和scanf( );2評作業(yè):求三角形的面積。3讓學生討論什么是數(shù)據(jù)?C語言的數(shù)據(jù)類型 見P11:數(shù)據(jù)類型1、標識符:標識符是給程序中的實體(變量、常量、函數(shù)、數(shù)組等)所起的一個名字。例:float x,y,z ;float為實數(shù)類型標識符,也是專用標識符。x、y、z
12、則為一般的變量標識符。關于標識符的說明:見P12:說明:標識符必須以字母或下劃線開頭,由字母、數(shù)字或下劃線組成的字符序列;用戶不能采用C語言已有的32個關鍵字作為同名的用戶標識符;標識符長度沒限制;標識符區(qū)分大小寫。關鍵字見課本P221。例如:1sum, PI , aa , bb43 , ch , a_53ff ,_lab 都是合法的標識符。24mm , ma , tt$a , _ch#a 均是不合法的標識符。思考:count、Count和COUNT是否為相同的標識符?main、float能否作為用戶標識符?1 常量:在程序中,其值不能改變的量。例:12 , 3 ,12.3 , -2.4 ,
13、3.14159 , a(代表字符a,為字符常量) 都是常量。說明:常量可用宏定義命令#define來定義一個常量的標識,且一旦定義后,該標識將永久性代表此常量,常量標識符一般用大寫字母表示。符號常量定義的一般格式為:#define 常量標識符 數(shù)值例:#define PI 3.14 /*定義PI為3.14,即圓周率值近似值*/ main( ) int r ; float s ,l; /*變量類型定義*/ r = 2 ; /*為半徑賦值為2*/ s = PI * r * r ; /*求圓面積,并且存到s所在的內存中*/ l=2*r*PI; /*求圓周長*/ printf( s=%f l=%f ,
14、 s,l ) ; /*輸出面積s和周長l的值*/ 運行結果:s=12.560000 l=12.5600003.變量:在程序的運行過程中其值可改變的量。變量在程序中起著“容器”的重要作用,沒有變量就沒有數(shù)據(jù)存儲,計算機也就無法處理數(shù)據(jù)。變量的命名完全如標識符的命名規(guī)則,因為變量名本身就屬于標識符的范疇。由于計算機中不同的數(shù)據(jù)類型所分配的內存單元不同,所以C變量在使用之前必須定義,有些書上也稱為變量聲名,否則,系統(tǒng)將無法為變量分配合適的內存單元。變量定義的一般方式為:類型 變量名;例:int i,j,l; float a,b,c;1)變量的初始化:變量賦初值。賦值的一般格式為:變量名=表達式;例如
15、:x=3; a=a+1;f=3*4+2;思考:看下面程序段中的語句是否正確?#define MAX 20main( ) int a; a=3; MAX=8; 9=a; printf(這樣賦值行嗎?);另外,變量初始化也可與變量定義同時進行。例如:int a=3,b=4,c=5;float x=7.5;均是在變量定義的同時,進行的賦初值操作。見書上P14:畫龍點睛作業(yè):1 仔細閱讀并理解講過的內容。2 課本40頁單選題1、2。小結1C語言的數(shù)據(jù)類型2標識符的概念3常量與變量課 題:第二章 基本數(shù)據(jù)類型教學目標:通過本堂講授,使學生掌握C語言常用的數(shù)據(jù)類型及存儲特征教學重點:基本數(shù)據(jù)類型的正確運用
16、教 法:講授法。所用課時:2節(jié)授課班級:網絡45教學過程:一、 基本數(shù)據(jù)類型 我們知道數(shù)據(jù)在計算機內存中是以二進制數(shù)存在的(不清楚的可參閱有關計算機基礎方面的書),我們的C語言程序在執(zhí)行過程中,首先被編譯成目標代碼,即二進制代碼或機器碼,這樣程序變量的值就會以二進制的形式存在于內存。由于二進制數(shù)在實際應用中很不方便,所以我們在編程時用到的數(shù)據(jù)通常以十進制、八進制等形式出現(xiàn)。下面將對基本數(shù)據(jù)類型一個一個進行講解。1. 整型數(shù)據(jù)(int)整型數(shù)據(jù)在C語言中有三種表示形式,在具體應用中,往往根據(jù)需要選用。(1)整型常量十進制表示:如:123、-34、0 。八進制表示:以0開頭符合八進制規(guī)則的整型常量
17、。如:045、0611、011。十六進制表示:以0x開頭符合十六進制規(guī)則的整型常量。如:0x123、0xabc、0xaf。(2)整型變量整型數(shù)據(jù)在內存中的表示范圍如課本P15表2.1,要使變量成為整型,必須將其聲明為整型,至此,這對我們來說已經不是難題了。例如: main( ) int a , b =7 ; a = 6; printf(%d%d,a,b); 該程序段,將變量a、b定義成整型,并給它們分別賦了初值。值的注意的是整型數(shù)據(jù)輸出的格式控制符為“%d”,初學者務必記牢!活動:例: 有這樣的數(shù)據(jù)定義:int a;則a=32768;行嗎?2、實型數(shù)據(jù)(float或double)(1)實型常量
18、 實型數(shù)據(jù)有兩種表示形式,這與我們現(xiàn)實生活中所用的實數(shù)表示方法有所不同。C語言中,實型常量或常數(shù)由小數(shù)點和數(shù)字組成,你也許會認為這與我們在數(shù)學中的表示沒什么兩樣,實際上是有區(qū)別的,C語言中,實數(shù)的小數(shù)點前允許沒有數(shù)字。一般形式表示如:0.21、.12、3.141592、9999987.76660等。指數(shù)形式表示指數(shù)表示法有點類似數(shù)學中的科學記數(shù)法,只不過C語言中用e或E代替數(shù)學表示中的10。例如:1240000用C語言可表示為1.24E6。C語言的指數(shù)表示法是有規(guī)則的,一定注意在e或E之前必須有數(shù)字,在其后的指數(shù)部分必須為整數(shù)。見課本P16中間。如:123e3、-1.2E3、2e2、1.6e+
19、2、1.9E-3 都是合法的形式,但1.23e0.7和e3都不是合法形式。(2)實型變量:分為單精度(float)和雙精度(double)。見課本P15表2.1。例1 見課本P16例2-2。代碼:main( ) float x , y ; /*定義單精度變量x和y*/ double c, d ; /*定義雙精度變量c和d*/ x = y = 4.6; /*x、y均被賦值為4.6*/ c = 988888987.111; d = x + c ; printf(%f %f, x , d ); 運行結果:4.600000 988888991.711000分析:(1)變量x、y、c、d被賦的值必須在其
20、表示范圍內,若上面程序中,將d定義為float型就會出現(xiàn)溢出錯誤,想一下為什么?(2)不管是單精度還是雙精度,其輸出格式均為“%f”;(3)在C語言中,不管是單精度還是雙精度實數(shù),輸出時小數(shù)點后默認保留6位小數(shù)。3、字符型數(shù)據(jù)(char)(1)字符常量:用單撇號括起來的單個字符,或轉義字符。如a、E、¥、$、9、t、101、x1f都是字符常量(后3個是轉義字符)。應當注意,單撇號只是字符常量的一個“標志”,并非字符常量的一部分,字符常量只能是單個字符,當輸出一個字符常量時不輸出單撇號。字符型數(shù)據(jù)是以ASCII碼的形式存儲的,關于ASCII碼見書后附錄P220。轉義字符見課本P17。活動:(1)
21、5與5是否相同?為什么?分析:5與5不同,5是整數(shù),但5是字符常量,其值為53,5遠遠大于5。(2)a與a是否相同?為什么?分析:不相同,a是個標識符,可看作變量,其值由所賦的值決定。(2)字符變量字符變量主要是為了存儲字符常量,字符常量是以ASCII碼值的方式存儲的。字符變量的定義方法為:char 變量名;例 2 本程序用來演示字符常量和字符變量的使用。(先寫出來然后分析)代碼: main( ) char ch,c; /*定義字符變量ch,c*/ch=362;/*給字符變量ch賦一個轉義字符,其中362為8進制數(shù)*/c=g;不勝數(shù)/*把字符常量g給字符變量c*/printf(%cn%c,c,
22、ch); /*n為轉義字符,表示換行*/運行結果:g 說明:字符在內存中是以ASCII的值的形式存在的,所以字符型變量可與整型變量互相賦值。(寫課本P18)例2-4 本程序演示字符型數(shù)據(jù)與整型數(shù)據(jù)互相賦值的情況。(先寫出來后分析)代碼:main( ) char c1 , c2 ; int a ; c1= a , c2 = 98 ; a = a; /*體會“=”兩邊的a意義有何不同?*/ printf( c1=%c c2=%c a=%d , c1 ,c2 , a) ;運行結果:c1=a c2=b a=97分析: c1 c2 a979798(a)c1 01100001c201100010a0110
23、0001(b)二、字符串字符串常量:由雙引號括起的若干字符序列。如CHINA、ab$、I love chong qing !都屬于字符串常量。字符串在存貯時,每一個字符元素占一個字節(jié),但是整個串占用的空間并不等于串中字符元素的個數(shù),而是字符元素個數(shù)加1,因為字符串有一個結束標志0要占一個字節(jié)(0是一個ASCII碼為0的“空操作字符”)。如“CHINA”的存儲情況如下:0ANIHC說明:C語言沒有專門的字符串變量,一般用字符數(shù)組來存放。串和字符是不能混為一談的。單個字符用單引號括起來是字符串常量,如a,但a卻是一個串常量,它們所占的內存空間大小也不一樣。三、小結:1 掌握基本數(shù)據(jù)類型的表示方法;
24、2 掌握基本數(shù)據(jù)類型的數(shù)據(jù)定義和使用方法;3 記住基本數(shù)據(jù)類型在內存中的表示范圍;4 了解字符串的特征及存儲特性。四、作業(yè):P40 2.1題的18;P41 2.2題的13;課 題:基本類型修飾符及輸入輸出函數(shù)教學目標:通過本堂講授,使學生掌握C語言常用的輸入輸出函數(shù)用法教學重點:輸入輸出函數(shù)的正確運用教學難點:類型修飾符的用法教 法:講授法所用課時:2節(jié)授課班級:網絡45教學過程:活動提問:1. int型數(shù)據(jù)的表示范圍;2float 與double類型分別占多少個字節(jié)?3. 0字符的ASCII碼值是多少?4a的ASCII碼值是多少?52與2是相同的常量(判斷并分析)6字符串”wangling”
25、占幾個字節(jié)的單元?7說出哪些是合法的常量:3e2 e1 2.3e0.3 n 086 xhh一、基本類型修飾符基本類型前面還可以通過添加修飾符實現(xiàn)基本類型的“范圍擴充”。類型修飾符可以改變基本類型的含義,以更加精確地適合特定環(huán)境的需要。C語言提供的修飾符如下:signed(有符號)unsigned(無符號)long(長型)short(短型)以上修飾符均可修飾int基類型,其中部分也可修飾char和double類型,關于修飾符的用法,我們只關心它與int的搭配,如需要了解其它類型與修飾符組合用法的,可參閱相關C語言書籍。具體修飾后的表示寬度見P20頁表2.3類型修飾符是為了給用戶提供更大范圍的數(shù)據(jù)
26、定義而提供的,我們知道基本類型int實際上指的是signed int類型,其表示范圍相當小,若用到比較大的整型數(shù)據(jù)時,可考慮使用修飾符。當類型修飾符獨自使用時,則認為是修飾int型的。因此,下面幾種類型修飾符是等效的:見P21頁上面。修 飾 符 等 效 于signed signed intunsigned unsigned intlong long intshort short int教法指引:先寫出如下程序例題,然后分析其用法。例 1 本程序顯示了修飾符long的正確使用。main( ) int x1,y1; long x2,y2; x1=32767;y1=32769; /*注意y1的賦值超
27、出了其表示范圍*/ x2=32767L;y2=32769L;/*數(shù)字后的L表示該數(shù)據(jù)是長整型,是合法的書寫方法*/ printf(x1=%d,x2=%ldny1=%d,y2=%ld,x1,x2,y1,y2);/*n為換行符*/運行結果:x1=32767,x2=32767y1=-32767,y2=32769二、常用輸入輸出函數(shù)1)printf函數(shù):格式輸出函數(shù)。格式:printf ( 格式控制,輸出表列 )格式控制是用雙引號括起來的字符串,它包括兩種信息:格式說明:由“% ”和格式字符組成,如:%d ,%f等;普通字符:即需要原樣輸出的字符,如 printf ( a = %d , a) ;中的劃
28、線部分就是普通字符。見書中P22頁下邊。輸出表列可以是若干個需要輸出的數(shù)據(jù)變量,也可以是表達式。例見課本P22。注意格式控制符總結:見P23中間。例:2見課本P23例2-8,對其進行解釋。2)scanf函數(shù):格式輸入函數(shù)(1)格式:scanf (格式控制,地址表列)說明:格式控制的含義與printf函數(shù)的相同;地址表列是由若干個以&打頭的地址項;見書P23下面。分析例2-9(P24頁)三、字符數(shù)據(jù)的輸入輸出函數(shù)1、putchar函數(shù):字符輸出函數(shù)格式:putchar(字符變量/字符常量)功能:在顯示設備上輸出一個字符變量的值。2、getchar函數(shù):字符輸入函數(shù)格式:getchar()
29、功能:從終端設備輸入一個字符,一般是從鍵盤輸入字符。見課本P25例2-10和例2-11:說明:使用字符輸入輸出函數(shù)時,必須用#include “stdio.h”;getchar和putchar函數(shù)每次只能處理一個字符,而且getchar函數(shù)沒有參數(shù)。四、小結1printf( )的基本用法;2scanf( )的基本用法;3 putchar( ) 的基本用法;4getchar( )的 基本用法;五、作業(yè)P40 2.1 79課 題:2.4基本運算及表達式中的類型轉換教學目標:通過本堂講授,使學生掌握C語言基本算術運算符的合理用法,以及混合運算時類型轉換原則教學重點:運算符的基本用法教學難點:增量運算
30、與減量運算教 法:講授法所用課時:2節(jié)授課班級:網絡45教學過程:復習上堂內容;活動:提問1 長整型數(shù)據(jù)占幾個字節(jié)?2 無符號整型數(shù)據(jù)表示的數(shù)值范圍是多少?3 字符輸入函數(shù)有參數(shù)嗎?導入新課內容。一、算術運算符與算術表達式1算術運算符見課本P27表2.4算術運算符:+、-、*、/(整除運算符)、%(模運算符) 主要講解/和%運算符。說明:當“ /”兩邊的運算量完全是整數(shù)或字符時,結果取整;模運算符“%”是一種求余運算,也叫模運算,但是切記,模運算取整數(shù)除法的余數(shù),所以“%”不能用于實型數(shù)據(jù)的運算。見課本P27表2。4下面一段。例:7 % 3 = 4 ; 10 / 3 = 3 ;請考慮表達式:a
31、 = 8.9 % 3 ; 是否正確?例見P282-122算術表達式用算術運算符和括號將數(shù)據(jù)對象連接起來的式子,稱為算術表達式。如表達式:a*d/c-2.5+a就是一個合法的算術表達式。表達式的運算按照運算符的結合性和優(yōu)先級來進行。C語言規(guī)定了運算符的結合方向,即結合性。例如表達式7+9+1計算機在運算時,是先計算7+9還是先計算9+1呢?這就是一個左結合性還是右結合性的問題。算術運算的結合性是自左向右的左結合,所以應該先算7+9。·結合性:左結合(自左向右結合);如果只有結合性顯然不夠,上面的例子屬于同級運算(只有加運算),但是如7+9*2,豈能只考慮運算的結合性?這就要考慮運算符的
32、優(yōu)先級的問題了。其實在小學里我們就知道混合運算規(guī)則:先算括號里面的,然后乘除,最后算加減。C語言算術運算符的優(yōu)先級與小學數(shù)學中的混合運算規(guī)則大致相同,即優(yōu)先級從高到低是:·優(yōu)先級:見P28第二段下面。() 負號 *、/ 、% +、-優(yōu)先級 高 低二、賦值運算符及賦值表達式1賦值運算格式:變量名=表達式;說明:“=”是一種運算符。2復合賦值 賦值表達式有一種變形,稱為復合賦值,它簡化了一定類型的賦值操作的編碼。例如,x=x+10;可以改寫成x+=10;操作符“+=”告訴編譯程序:x被賦值為:x加10。類似的還有:-=,*=,/=,%=,它們的使用方法完全一樣,如: b-=9 等價于 b
33、=b-9 y*=x+12 等價于 y=y*(x+12) t/=3 等價于 t=t/3 a%=b+2 等價于 a=a%(b+2)活動:思考:下面的算術表達式如何轉化為合法的復合賦值表達式?y=y+9*xa=a%(b*2)3自增和自減運算C包括兩種其它語言一般不支持的非常實用的操作符,即增量操作符+和減量操作符-也稱自增運算符和自減運算符。操作符+ +對操作數(shù)增加一個單位,操作符- -對操作數(shù)減一個單位。也就是說,x=x+1;與+ +x;一樣,而x=x-1;與x- -;完全一樣。增量和減量操作符都能放到操作數(shù)前面,也可放到操作數(shù)后面。P30表2.5說明:見P30表2.5下面一段。例如: x=10;
34、 y=+x;x的值先增1,變成11,然后將x的值11置給y,使y的值也為11。當寫成: x=10; y=x+;例:見書P31 2-13:三、表達式中的類型轉換1自動類型轉換見P32中間示例:說明:見P32劃線處。2強制類型轉換使用強制類型轉換,可以把表達式的結果硬性轉換為指定類型,其一般形式為:(類型)表達式其中類型是將要轉換的有效C數(shù)據(jù)類型。例如,為確保表達式x/2求值成float型,可以書寫成(float) x/2。 實際上強制轉換(類型)是操作符,由于它是一元單目運算,所以優(yōu)先級較高,它與自增自減運算符屬于同一優(yōu)先等級。例 2-14 程序演示了強制類型轉換的用法。代碼:main( ) i
35、nt a=2,b=7,c; float x=15.5,y,z; y=a/b; z=(float)a/b; /*將整型變量a轉換成實型*/ c=(int)x%a; /* 變量x不轉換類型可以嗎?*/ printf(y=%f z=%f c=%d x=%f,y,z,c,x);運行結果:y=0.000000 z=0.285714 c=1 x=15.500000小結:1 算術運算符及算術表達式的用法;2 賦值運算及復合賦值運算;3 增量運算的用法;4 表達式中的類型轉換。作業(yè):P40:2.1題的 1014;2.2題的 68課 題:2.4關系運算、邏輯運算教學目標:通過本堂講授,使學生掌握C語言關系運算、
36、邏輯運算的基本規(guī)則和其運算過程教學重點:關系運算、邏輯運算在現(xiàn)實問題中的運用教學難點:關系運算和邏輯運算的實質意義教 法:講授法所用課時:2節(jié)授課班級:網絡45教學過程:復習上堂內容活動:1提問:將如下表達式轉換為合法的復合賦值表達式:y=y%(4+x)將如下復合賦值表達式轉換為一般形式:a/=b-3程序段:int a; float s=9; a=s%4;是否合法,若有錯,將如何將其改正?語句:#define PI 3 main() int a; PI+; a=PI;printf(“a=%d”,a); 是否有錯,若有錯,錯在哪里?若:int a=4;char t=0; float d=9; 則
37、表達式:19*a-t/d的值類型是什么?2講解,并引入今天課題一、關系運算關系運算是指數(shù)據(jù)之間的關系(比如數(shù)間的大小等),關系運算的結果要么為真,要么為假,若為真就用1表示,為假就用0表示。1關系運算符< 、<=、 >、 >=、 =、 != 優(yōu)先級相同 優(yōu)先級相同 高 低需要說明的是,關系運算符=是“比較等”,也就是說,兩個運算量通過比較看是否相等?運算結果要么為真/1,要么為假/0,它完全不同于賦值運算符=,賦值運算是將右值賦給左部變量,賦值運算符沒有比較的意思,一定要搞清楚它們的用法區(qū)別。說明:見課本:P34中間(1)-(3)例:如下面每組表達式是等價的: b<
38、;=a*2 與 b<=(a*2) a =b>7 與 a=(b>7) a=b>c 與 a=(b>c)2關系表達式用關系運算符將兩個表達式連接起來的式子叫關系表達式。關系表達式的值是1或0。試分析下面表達式的值。說明:關系表達式的值為真時用1表示,為假時用0表示。(1)若a = 3 , b = 2 , c = 1,則下列表達式的值分別為多少? (a > b )= = c b + c < a f = a < b > c 分析:(a>b)=c b + c < a f=a < b > c 1 =1 3 < 3 0 >
39、; 1 0 0 0 所以f=0。(2)表達式(a=3)>(b=5)的值是多少?(3)表達式c!=C的值是多少?例 2-15 該程序演示關系運算符的運用。(見書P35頁)main( ) int a=3,b=2; printf(%d,%d,%d,%d,%d,%d,a<b,a<=b,a>b,a>=b,a=b,a!=b);運行結果:0,0,1,1,0,1二、 邏輯運算1邏輯運算符邏輯運算表示兩個數(shù)據(jù)或表達式之間的邏輯關系??陕?lián)系到現(xiàn)實中邏輯關系的運用。C提供的邏輯運算符有三個,它們分別是:&&(邏輯與) |(邏輯或) !(邏輯非)邏輯運算的結果也只有真和假
40、,即:1和0。它們的運用情況看表2.6。表2.6 邏輯運算的真值情況數(shù)值情況運算及結果ab!a!ba && ba | b001100011001100101110011關于邏輯運算的符的使用說明:見課本P36上面開始。(1)&&是雙目運算符,僅當兩個操作數(shù)都為真時,其運算值才為真,否則為假;(2)|也是雙目運算符,其操作數(shù)中只要有一個為真,則整個運算值為真,否則為假;(3)!是單目運算符,其運算值是取操作數(shù)的相反邏輯值。優(yōu)先級及結合性說明:說明: &&和|的優(yōu)先級低于關系運算符,但!高于算術運算符;邏輯表達式中的邏輯量,若不是0,則認為該量為真;
41、邏輯運算符!的結合性為“從右向左”,&&和|的結合性仍是“左結合性”。邏輯運算符的優(yōu)先級情況是這樣的:高低 | && ! 優(yōu)先級 由以上可知,下面是等效的C語言寫法:(x>y)&&(9<5) 與 x>y && 9<5(a+b)|(c=d) 與 a+b | c=d(a>c)|(!d) 與 a>c | !d2邏輯表達式若a = 5,b = 3試分析下面表達式的邏輯值是多少? 5 > 3 && 2 | 7 < 4 - ! 0分析:計算機對該表達式的執(zhí)行先后順序大致如下:第一
42、步 5 > 3 && 2 | 7 < 4 - ! 0 第二步: 5 > 3 && 2 | 7 < 4 - 1 第三步: 5 > 3 && 2 | 7 < 3 第四步: 1 && 2 | 7 < 3第五步: 1 && 2 | 0第六步: 1 | 0第七步: 1所以表達式最后結果是:1畫龍點睛用合法的C語言描述下列命題: a和b中有一個大于c; a不能被b整除;判斷某年year是否為閏年;(提示:某年若是閏年,則必須符合下列條件之一:.該年可以被4整除,但不能被100整除;.該
43、年可以被400整除)解: a>c | b>c 或 (a>c)|(b>c) a % b!= 0(year % 4 = 0 && year % 100 != 0) | (year % 400 = 0)若該表達式成立,則該年為閏年。特殊說明:需要提出的是,在邏輯表達式的求解過程中,并不是所有的邏輯量、運算符都被執(zhí)行,只是必須執(zhí)行該邏輯量才能求出整個表達式的解時,才執(zhí)行該運算量或運算符。例如: 表達式1&&表達式2中,若表達式1為0,則計算機不再考慮表達式2的值的情況,也就是說表達式不再執(zhí)行。例:int a=5,b=9,s; s=(a-=5)&a
44、mp;&+b;計算機執(zhí)行該程序段后,s=?,a=?,b=?a && b && c 只有a為非零值時,才需判斷邏輯量b的值,只有a和b都為真的情況下才需考慮c的值。如果a為假,則就不用判斷b和c的值了,因為這是與運算,整個表達式的值已經可以確定為假了。同樣的道理,對于邏輯或,如:a|b|c 只要a為真,不需再判斷b和c了,就能確定整個表達式的值為真。思考:若a=9,b=10,c=1,d=7,x=8,y=15 ,則計算機執(zhí)行了語句:m=(x=a>b) && (y=c<d);后,m和y的值分別是多少?小結1 關系運算符及其運算規(guī)律;
45、2 理解關系運算在現(xiàn)實中的運用;3 邏輯運算符及邏輯表達式的用途;4 深刻理解邏輯運算在現(xiàn)實生活中的運用。作業(yè)P41 15小題,填空題的9-15課 題:2.5幾種特殊的運算符及表達式教學目標:通過本堂講授,使學生掌握逗號表達式和條件表達式的用法,同時理解順序程序設計的基本思想。教學重點:條件運算符的運算機理及順序程序設計的方法教學難點:條件運算符的靈活運用教 法:講授法所用課時:2節(jié)授課班級:網絡45教學過程:復習上堂內容活動:1提問:寫出:“A小于B或小C”的C語言表達式;寫出:“a和b中有一個小于c”的C語言表達式;寫出:“a不能被b整除”的C語言表達式若有:a=3,b=4,c=5,則表達
46、式:?。╝>b)&&!c|1的值為多少?2引入本堂內容一、逗號運算符和逗號表達式逗號運算符主要用于連接表達式。例如:a=a+1,b=3*4;用逗號運算符連接起來的表達式稱為逗號表達式。它的一般形式為: 表達式1,表達式2,表達式n;逗號表達式的運算過程是:先算表達式1,再算表達式2,依次算到表達式n。整個逗號表達式的值是最后一個表達式的值。逗號表達式的結合性從左向右,它的優(yōu)先級是最低的。如:b=(a=4,3*4,a*2)它的運算過程是:a=4 > 3*4 >a*2 > b=a*2二、 條件運算符和條件表達式 條件運算符是C語言的唯一的三目運算符,即它需要
47、3個數(shù)據(jù)或表達式構成條件表達式。它的一般形式為: 表達式1?表達式2:表達式3 如果表達式1成立,則表達式2的值是整個表達式的值,否則表達式3的值是整個表達式的值。如圖所示: 今后要學習的if-else結構可以替換條件運算符,但是條件運算符不能替換所有的if-else結構。只有當if-else結構為兩個分支情況,并且都給同一個變量賦值時才可以用條件運算符替換,關于這點,今后再慢慢體會。 例如,將a,b兩個變量中大者放到變量max中,我們可以利用條件運算這樣來完成:max=a>b?
48、 a:b條件運算符的結合方向為從右往左。 例如: a > b ? a : b > c ? b : c 等價于a>b ? a : (b > c ? b:c)例 1 該程序的功能是求三個數(shù)中的最大數(shù)。代碼:main( )int a,b,c,max; scanf(%d,%d,%d,&a,&b,&c);max=a>(b>c?b:c)? a :(b>c?b:c); printf(a=%d,b=%d,c=%d,max=%dn,a,b,c,max);執(zhí)行情況:3,4,5<回車>運行結果:a=3,b=4,c=5,max=5
49、例2 從鍵盤上輸入學生的三門成績,求其總成績和平均成績。小結1逗號運算符及逗號表達式;2條件運算符及條件表達式;3順序程序設計的基本過程;作業(yè)P41 2.1 2.22.42.5(作業(yè)本上做)上機作業(yè):理解驗證題1P28 例:2-12 2P31 例:2-133編程理解驗證題:P37 思考題。試驗項目:運算符的合理用法及順序程序設計方法試驗目的:通過本次實驗使學生熟練掌握各種運算符的特征及合理應用,同時掌握順序程序設計的思想及編程方法。試驗重點:仔細理解揣測程序中各語句的真正作用及運行結果的由來試驗難點:C編譯器的熟練運用不夠施用班級:網絡45試驗內容:一、驗證理解內容1通過調試程序,仔細分析增量運算在不同場景下的使用的不同。代碼:main() int a,b,c,d,e,f; a=b=c=d=10; a+; +b; c-; -d; printf(a=%d b=%d c=%d d=%dn,a,b,c,d);/*注意輸出后換行*/ e=a+;f=+b; /*認真分析e,f的結果是否相同*/ printf(a=%d b=%d e=%d f=%d,a,b,e,f);2通過調試程序,分析運算符/和%的用法特點及其區(qū)別。代碼:main( ) int a,b; float c; a=5/3; c=5/3.0; b=5%3; /*注意%運算符要求操作數(shù)必須為整型
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025物業(yè)管理權轉讓服務合同-智慧城市綜合體專業(yè)版3篇
- 二零二五年度內部控制制度實施與監(jiān)督合同
- 2025年度個人承包水利工程合同范本2篇
- 2025年度城市應急響應與安保員預備役合同3篇
- 第二單元 近代化的早期探索與民族危機的加?。ń馕霭妫? 2023-2024學年八年級歷史上學期期中考點大串講(部編版)
- 課題申報參考:內蒙古美麗鄉(xiāng)村生產性景觀遺產調查研究
- 課題申報參考:面向碳排放雙控的省域間輸入電隱含碳減排責任厘定與策略方法研究
- 課題申報參考:面向跨市就醫(yī)的醫(yī)療設施城際供需關系評估與優(yōu)化調控
- 課題申報參考:媒介社會與智能傳播研究
- 2025年度高端酒店管理團隊聘用勞務合同4篇
- 初一語文上冊基礎知識訓練及答案(5篇)
- 初中班級成績分析課件
- 勞務合同樣本下載
- 聰明格練習題(初、中級)
- 血液透析水處理系統(tǒng)演示
- GB/T 27030-2006合格評定第三方符合性標志的通用要求
- GB/T 13663.2-2018給水用聚乙烯(PE)管道系統(tǒng)第2部分:管材
- 同角三角函數(shù)的基本關系式同步練習
- 糖尿病足與周圍血管病01課件
- 固定污染源自動監(jiān)控監(jiān)測系統(tǒng)現(xiàn)場端建設技術規(guī)范
- 教科版六年級科學下冊第一單元《小小工程師》背背默默知識點
評論
0/150
提交評論