C語言程序設(shè)計案例教程教學(xué)課件匯總完整版電子教案_第1頁
C語言程序設(shè)計案例教程教學(xué)課件匯總完整版電子教案_第2頁
C語言程序設(shè)計案例教程教學(xué)課件匯總完整版電子教案_第3頁
C語言程序設(shè)計案例教程教學(xué)課件匯總完整版電子教案_第4頁
C語言程序設(shè)計案例教程教學(xué)課件匯總完整版電子教案_第5頁
已閱讀5頁,還剩1068頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C語言程序的特點Teacher teaching designCONTENTS 目 錄C語言程序的特點C語言的結(jié)構(gòu)組成案例分析仿真演練標(biāo)識符C語言程序的特點PART 011、C語言提供的語句簡潔、使用方便、格式緊湊,語法靈活。C語言一共有32個關(guān)鍵字,9種控制語句,語句簡練,書寫自由。以下關(guān)鍵字由系統(tǒng)定義,不能用作其他定義。C語言程序的特點與數(shù)據(jù)類型相關(guān)的關(guān)鍵字:char(字符型) int(整型) short(短整型) long(長整型) signed(有符號)unsigned(無符號) float(單精度實型或單精度浮點型 ) double(雙精度浮點型)enum(枚舉型) struct(結(jié)

2、構(gòu)體類型) typedef(自定義類型)union (共用體類型或公用體類型或聯(lián)合體類型)與存儲類型相關(guān)的關(guān)鍵字auto(自動類型) register(寄存器類型) static(靜態(tài)類型) extern(外部類型)C語言程序的特點與控制語句相關(guān)的關(guān)鍵字if(如果) else(否則) switch(開關(guān)) case(事例) default(預(yù)置默認(rèn)) do(做或干) while(在期間,與同時,雖然) for(C語言表示在于從“控制變量”等于“初值”開始,循環(huán)) break(中斷或終止當(dāng)前循環(huán)或終止switch) continue(繼續(xù)) goto(轉(zhuǎn)移) return(返回)其他關(guān)鍵字con

3、st( 表示定義常量,在程序運行過程中,常量的值不能改變) sizeof(C語言的關(guān)鍵字但并不是函數(shù)表示某某類型的大小長度) volatile(volatile的本意是“易變的”,volatile定義的變量,它的值在編譯時是會改變的)9種控制語句if()else switch()case for() while()dowhile() continue break goto return C語言程序的特點2、C語言有34種運算符,有算術(shù)、關(guān)系、邏輯、位、賦值、指針、條件、逗號、下標(biāo)、類型轉(zhuǎn)換等;3、C語言是格式化模塊化程序設(shè)計語言主,采用自頂向下、逐步求精的結(jié)構(gòu)化程序設(shè)計方法,即化整為零,分工合

4、作、資源共享。4、C語言具在移植性、通用性的特點;C語言的結(jié)構(gòu)組成PART 02C語言的結(jié)構(gòu)組成案例1、請同學(xué)們觀察分析以下程序的結(jié)構(gòu) (程序功能是:求兩數(shù)之和 ),完成任務(wù)。#include /*頭文件*/ main( ) /*主函數(shù)*/ 函數(shù)首部 int a,b,sum; /*聲明部分,定義變量*/ a=123;b=456; /*給變量賦值*/sum=a+b; /*通過求各運算把結(jié)果存儲在變量單元*/printf(sum is %dn ,sum); /* 輸出sum的值*/C語言的結(jié)構(gòu)組成案例2、閱讀以下程序(程序功能是:求兩數(shù)中的最大值 )int max(int a,int b); /*

5、函數(shù)說明*/main() /*主函數(shù)*/ int x,y,z; /*變量說明*/int max(int a,int b); /*函數(shù)說明*/ printf(input two numbers:n);scanf(%d%d,&x,&y); /*輸入x,y值*/ z=max(x,y); /*調(diào)用max函數(shù)*/ printf(maxmum=%d,z); /*輸出*/ int max(int a,int b) /*定義max函數(shù),指明函數(shù)類型,形參名稱及數(shù)據(jù)類型*/ if(ab) /*if條件判斷指如果條件成立 執(zhí)行下面程序段*/return a; /*上述條件成立,把變量a值返回主調(diào)函數(shù)*/else

6、/*指if條件不成立,執(zhí)行下面程序段*/return b; /*把變量b值返回主調(diào)函數(shù)*/C語言的結(jié)構(gòu)組成1、C程序的基本單位是 函數(shù) 。2、C程序中語句都以 分號 作為結(jié)束標(biāo)記。3、C語言的源程序是存放在擴展名為 .C 文件中。4、C語言中,以 /* */為標(biāo)記組成的內(nèi)容稱為 注釋 ,它不被系統(tǒng)編譯和執(zhí)行,目的是幫助閱讀程序,增強程序的 。5、C源程序是由函數(shù)構(gòu)成的,每一個C程序只有一個main()函數(shù),它代表程序開始執(zhí)行的起始位置,C程序執(zhí)行時總是從 主函數(shù)( main() ) 開始,main() 函數(shù)可以在任何位置。6、案例2中的max函數(shù),其函數(shù)說明各部分如下所示,請?zhí)畛涓鞑糠炙傅膬?nèi)

7、容。函數(shù)類型 函數(shù)名 函數(shù)參數(shù)表 ( int ) ( max ) ( int a, int b )7、一個函數(shù)由 函數(shù)首部 和 函數(shù)體 兩部分組成。其中函數(shù)首部包括:函數(shù)類型 、函數(shù)名 、函數(shù)參數(shù) 三部分。函數(shù)體包含在一對 花括號 中。且其中可以包含多對,即可以嵌套。最外層的大括號是函數(shù)的開始和結(jié)束的標(biāo)志。函數(shù)體部分包含 函數(shù)變量聲明部分 和 函數(shù)執(zhí)行部分 兩部分。提醒:請務(wù)必注意函數(shù)說明部分與函數(shù)定義部分在格式上的區(qū)別?9、函數(shù)之間的調(diào)用。函數(shù)的調(diào)用從 main()開始,先由main()函數(shù)調(diào)用其他函數(shù),然后其他函數(shù)再發(fā)生若干級調(diào)用,然后根據(jù)調(diào)用順序?qū)訉臃祷氐秸{(diào)用點,最后返回到 main()

8、函數(shù)結(jié)束。標(biāo)識符PART 03標(biāo)識符C語言規(guī)定標(biāo)識符只能由字母 、 數(shù)字和下劃線三種字符組成,且第一個字符必須為字母或下劃線 。例如:sum,day,_class,student_No,a1等都是合法的標(biāo)識符。2a_q,a#_12,$abc等都是非法的標(biāo)識符。須注意的是:1標(biāo)識符不能和C語言的關(guān)鍵字重名。如:if(C語言的關(guān)鍵字),main(C語言的關(guān)鍵字)都是不合法的標(biāo)識符。2在C語言中,大寫字母和小寫字母被認(rèn)為是兩個不同的字符。如:max和MAX是兩個不同的標(biāo)識符。3ANSI C標(biāo)準(zhǔn)沒有規(guī)定標(biāo)識符的長度,但各個C編譯系統(tǒng)都有自己的規(guī)定。在Turbo C中規(guī)定標(biāo)識符的長度不超過32個字符,如

9、果超過只有前32個字符有效。仿真演練 體驗探索PART 04仿真演練 體驗探索1、以下敘述中錯誤的是( C )。A)C語句必須以分號結(jié)束B)C語言的關(guān)鍵字以及數(shù)據(jù)定義常以小寫字母作為書寫形式C)函數(shù)定義后其結(jié)尾要加分號D)函數(shù)名后圓括號內(nèi)是形式參數(shù)表,有多個參數(shù)則用逗號分隔2、一個C程序的執(zhí)行是從( A )A)main()函數(shù)開始,直到main()函數(shù)結(jié)束 B)第一個函數(shù)開始,直到最后一個函數(shù)結(jié)束C)第一個語句開始,直到最后一個語句結(jié)束D)main()函數(shù)開始,直到最后一個函數(shù)結(jié)束3、在一個C程序中( B )A) main函數(shù)必須出現(xiàn)在所有函數(shù)之前 B) main函數(shù)可以在任何地方出現(xiàn)C) m

10、ain函數(shù)必須出現(xiàn)在所有函數(shù)之后 D) main函數(shù)必須出現(xiàn)在固定位置仿真演練 體驗探索4、C語言程序的基本單位是( A )。A)函數(shù) B)過程 C)子程序 D)主程序和子程序5、用C語言編寫的代碼程序( B )A)可立即執(zhí)行 B)是一個源程序 C)經(jīng)過編譯后即可執(zhí)行 D)經(jīng)過編譯解釋后才能執(zhí)行6、以下敘述不正確的是 ( D )A)一個C源程序可由一個或多個函數(shù)組成B)一個C源程序必須包含一個main函數(shù)C)C程序的基本組成單位是函數(shù)D)在C程序中,注釋說明只能位于一條語句的后面7、C語言源程序要正確地執(zhí)行,必須要有( C )函數(shù)A)printf()函數(shù) B)自定義函數(shù) C)main()函數(shù)

11、D)不需要函數(shù)仿真演練 體驗探索8、C語言是下列語言中哪一種( B )A)匯編語言 B)高級語言 C)低級語言 D)機器語言9、在C程序中,可以作為用戶標(biāo)識符的一組標(biāo)識符是( B )。A) void define WORD B) as_b3 _224 ElseC) Switch -wer case D) 4b DO SIG10、下列選項中,是C語言提供的合法的關(guān)鍵字的是( C )。A)swicth B)cher C)default D)CaseC 程序的開發(fā)過程Teacher teaching designCONTENTS 目 錄提出問題 引入新課C語言開發(fā)步驟C程序開發(fā)環(huán)境案例分析仿真演練常

12、用的定界符提出問題 引入新課PART 01提出問題 引入新課1、C語言的基本數(shù)據(jù)類型是: 、 、 、 。2、C語言是下列語言中哪一種( )A)匯編語言 B)高級語言 C)低級語言 D)機器語言3、以下不是C語言的特點是( )A)C語言簡潔、緊湊 B)能夠編制出功能復(fù)雜的程序 C)C語言可以直接對硬件進(jìn)行操作 D)C語言移植性好4、C語言編寫的程序稱( )A)高級程序 B)源程序 C)目標(biāo)程序 D)C#程序5、結(jié)構(gòu)化程序設(shè)計的思想是:采用自頂向下,逐步求精的結(jié)構(gòu)化程序設(shè)計思想。C語言開發(fā)步驟PART 02開發(fā)步驟1、C源程序的編輯任選一種文字處理軟件如word、記事本等編輯源文件。檢查確認(rèn)無誤后

13、,保存擴展名為.C的源文件。2、編譯C源文件 編譯是對源文件詞法和語法進(jìn)行檢查和翻譯的過程。編譯時先處理頭文件如#include等,將其包含在源文件中一并進(jìn)行分析,產(chǎn)生中間代碼,最后由代碼生成器生成目標(biāo)文件存于文件系統(tǒng)中。其文件擴展名為.obj的目標(biāo)文件。3、鏈接過程編譯生成的目標(biāo)文件不能直接運行,因為目標(biāo)文件是一個可浮動的程序模塊,必須通過鏈接程序,將編譯生成的目標(biāo)文件,與其他目標(biāo)文件、庫函數(shù)鏈接在一起,形成一個可執(zhí)行文件。可執(zhí)行文件的擴展名為.exe可執(zhí)行程序。開發(fā)步驟4、執(zhí)行過程 可執(zhí)行文件,可以脫離編譯系統(tǒng)而獨立存在。在操作系統(tǒng)支持下,單擊運行按鈕或鍵入文件名即可立刻執(zhí)行。 程序能運行

14、,并不意味著結(jié)果一定正確,如果存在邏輯性錯誤是難以發(fā)現(xiàn)的,這就要求程序員從算法到程序設(shè)計各個環(huán)節(jié)認(rèn)真檢查,跟蹤測試,再經(jīng)歷“編輯編譯鏈接運行”全過程,直到達(dá)到預(yù)期目的為止。C程序集成開發(fā)環(huán)境PART 03集成開發(fā)環(huán)境(一)Turboc 2.0的安裝和啟動(1)、安裝過程(略)(2)、啟動過程:運行Turboc 2.0時,只要在TC目錄下運行主程序TC.EXE即可進(jìn)入Turboc 2.0集成開發(fā)環(huán)境。(3)、安裝完畢后將在當(dāng)前目錄下建立一個TC子目錄,TC目錄還建立兩個子目錄LIB和 INCLUDE,其中LIB子目錄用于存放庫文件,INCLUDE子目錄中存放所有頭文件。(4)Turboc 2.0

15、集成開發(fā)環(huán)境的界面操作介紹1、采用投影儀進(jìn)行直觀演示教學(xué):(略);集成開發(fā)環(huán)境2、完成以下內(nèi)容:(課堂上完成)(1)在Turboc 2.0集成開發(fā)環(huán)境編輯狀態(tài),要激活主菜單可以按功能鍵:F10 。(2)默認(rèn)的C語言源文件的文件名后綴為:.C 。(3)文件存盤的熱鍵是:F2。(4)運行程序的熱鍵是:CTRL+F9、顯示程序運行結(jié)果的熱鍵是:ALT+F5。(5)將一個C源文件編譯生成.OBJ目標(biāo)文件的熱鍵是:ALT+F9。(6)把當(dāng)前.OBJ文件及庫文件連接生成可執(zhí)行.EXE文件的熱鍵是:F9 。(二)wintc運行環(huán)境界面操作介紹(1)安裝和啟動(略)。(2)界面介紹:采用投影儀進(jìn)行直觀演示教學(xué)

16、。常用的定界符PART 04常用的定界符1、花括號和 2、尖括號 3、圓括號(和) 4、方括號和5、注釋符/*和*/ 6、 雙引號“ 7、單引號 定界符包括: 仿真演練 體驗探索PART 05仿真演練 體驗探索【編輯第一個程序】L1/*這是我的第一個程序*/L2 #includeL3 void main()L4 L5 printf(welcome to learning c language);L6 仿真演練 體驗探索【編輯第二個程序】 L1/*這是我的第一個程序*/L2 #include L3 void main( )L4 L5 int a,b,sum; L6 a=123;b=456; L7

17、 sum=a+b; L8 printf(sum is %dn ,sum); L9 仿真演練 體驗探索(一)、根據(jù)上述程序思考以下內(nèi)容:1、程序1、程序2中L1行的含義是:2、程序1、程序2中L2行的含義是:3、程序1、程序2中L3行的含義是:4、程序1的L4、L6行,程序2的L4、L9行的含義是:5、程序2的L5行的含義是:6、程序2的L6行的含義是:7、程序2的L7行的含義是:8、程序2的L8行的含義是:9、程序中的分號作用是:(二)想一想 編輯C源程序在書寫方面要注意些什么?格式化輸出函數(shù)Teacher teaching designCONTENTS 目 錄數(shù)據(jù)的輸出函數(shù)輸出函數(shù)格式說明符

18、明確考點 交流提升案例分析 仿真演練數(shù)據(jù)的輸出函數(shù)PART 01數(shù)據(jù)的輸出函數(shù)printf函數(shù)(稱為格式輸出函數(shù))printf函數(shù)所以稱為格式輸出函數(shù),按用戶指定的格式,把數(shù)據(jù)輸出到顯示器屏幕上。其關(guān)鍵字最末一個字母f是format的縮寫,即為“格式” 的意思。 1) printf函數(shù)調(diào)用的一般形式:printf(“格式控制字符串”,輸出表列)功能:按“格式控制字符串”的指定格式,輸出對應(yīng)的變量 。說明: (1)格式控制字符串用于指定輸出格式。格式控制串可由格式字符串和非格式字符串(普通字符)兩種組成。格式字符串是以%開頭的字符串,在%后面跟有各種格式字符,以說明輸出數(shù)據(jù)的類型、形式、長度、小

19、數(shù)位數(shù)等。如:“%d”表示按十進(jìn)制整型輸出;“%ld”表示按十進(jìn)制長整型輸出;“%c”表示按字符型輸出等。(2)非格式字符串在輸出時原樣照印,在顯示中起提示作用。(3)輸出表列中給出了各個輸出項,要求格式字符串和各輸出項在數(shù)量和類型上應(yīng)該從左到右一一對應(yīng)。數(shù)據(jù)的輸出函數(shù)2)輸出表列(1)變量輸出表屬于可選內(nèi)容。如果輸出的數(shù)據(jù)多于1個,相鄰之間用逗號分隔。如: printf(How do you do !n); printf(a=%d b=%dn, a, b); (2)變量輸出表內(nèi)容可以是表達(dá)式:如: printf(%d,3*a+5);(3)“格式控制字符串”中的格式字符,必須與“輸出表列”中輸

20、出項的數(shù)據(jù)類型 一致,否則會引起輸出錯誤。如初學(xué)者會無意間出現(xiàn)如下的錯誤,看著莫名其妙的程序結(jié)果卻不知道是怎么回事: int a=10; printf(%f,a);輸出函數(shù)格式說明符PART 02格式說明符格式字符意 義d以十進(jìn)制形式輸出帶符號整數(shù)(正數(shù)不輸出符號)o以八進(jìn)制形式輸出無符號整數(shù)(不輸出前綴0)x,X以十六進(jìn)制形式輸出無符號整數(shù)(不輸出前綴Ox)u以十進(jìn)制形式輸出無符號整數(shù)f以小數(shù)形式輸出單、雙精度實數(shù)e,E以指數(shù)形式輸出單、雙精度實數(shù)g,G以%f或%e中較短的輸出寬度輸出單、雙精度實數(shù)c輸出單個字符s輸出字符串格式說明符printf 附加格式說明字符 (如 %m.nf和 %m.

21、ns等):標(biāo) 志意 義-結(jié)果左對齊,右邊填空格m( 正整數(shù))數(shù)據(jù)最小寬度n( 正整數(shù))對實數(shù)表示輸出n位小數(shù),對字符串表示截取的字符個數(shù)字母l用于長整型整數(shù),可以加在格式符d,o,x,u前面。 #對c,s,d,u類無影響;對o類,在輸出時加前綴0;對x類,在輸出時加前綴0 x;對e,g,f 類當(dāng)結(jié)果有小數(shù)時才給出小數(shù)點空格輸出值為正時表示以空格,為負(fù)時加以負(fù)號明確考點 交流提升PART 03明確考點 交流提升(1)格式字符d以帶符號的十進(jìn)制整數(shù)形式輸出允許形式:%d 、%md、%-md 、%ld等。%d按整型數(shù)據(jù)的實際長度輸出;%md -m是正整數(shù),表示輸出數(shù)據(jù)寬度,若m小于數(shù)據(jù)的實際位數(shù),m

22、不起作用;%-md-數(shù)據(jù)寬度小于m時,負(fù)號”-”要求結(jié)果左對齊,右邊填空格;%md-數(shù)據(jù)寬度小于m時,結(jié)果右對齊,左邊填空格;%ld-字母l用于長整型數(shù)據(jù)輸出,還可以加在格式符o,x,u前面。明確考點 交流提升【例1】格式符d的使用。 main() int n1=111; long n2=222222; printf(n1=%d,n1=%4d,n1=%-4d,n1=%2dn,n1,n1,n1,n1); printf(n2=%ld,n2=%9ld,n2=%2ldn,n2,n2,n2); printf(n1=%ldn,n1); 運行結(jié)果:n1=111,n1=111,n1=111,n1=111n2=

23、222222,n2=222222,n2=222222請思考為什么產(chǎn)生這樣的結(jié)果?整數(shù)還有下面的輸出形式:%o(小寫字母o )-整數(shù)八進(jìn)制無符號形式輸出;%x -整數(shù)十六進(jìn)制無符號形式輸出。%u-對于unsigned型數(shù)據(jù),以十進(jìn)制無符號形式輸出。明確考點 交流提升(2)、格式字符f以小數(shù)形式,輸出單精度和雙精度實數(shù)允許形式:%f、%m.nf、%-m.nf 、%mf、%.nf等。%f - 按系統(tǒng)默認(rèn)寬度輸出實數(shù):整數(shù)部分全部輸出,小數(shù)部分輸出6位。單精度變量的輸出有效位是7位;雙精度變量的輸出有效位是16位。%-m.nf - m是正整數(shù),表示數(shù)據(jù)最小寬度;n是正整數(shù),表示小數(shù)位數(shù),m和負(fù)號的用法

24、與前面相同。%g - 讓系統(tǒng)根據(jù)數(shù)值的大小,自動選擇%f或%e格式、且不輸出無意義的零。 【例2】 輸出實數(shù)的有效位。 main( ) float x=11111.111,y=33333.333; printf(x+y=%fn,x+y); 程序運行結(jié)果 : x+y=44444.443359,但有效數(shù)字只有7位:44444.44。雙精度變量的輸出與此類似,只是有效位是16位。明確考點 交流提升【例3】 思考題:以下輸出語句的結(jié)果:printf( %fn,12.3); 12.300000printf( %2fn,12.3); 12.300000printf( %10fn,12.3); 12.300

25、000printf( %.3fn,12.3); 12.300printf( %10.3fn,12.34567); 12.346 printf( %5.3fn,12.3) 12.300printf( %10.3fn,12.3); 12.300printf( %5.3fn,12.34444); 12.344明確考點 交流提升(3)、格式字符e以指數(shù)形式輸出實數(shù)允許形式:%e、%m.ne、%-m.ne 、%me、%.ne等m限定輸出實型數(shù)據(jù)的總寬度,n-1限定輸出的小數(shù)位數(shù)。 %e -以標(biāo)準(zhǔn)指數(shù)形式輸出:尾數(shù)中的整數(shù)部分大于等于1、小于10,小數(shù)點占一位,尾數(shù)中的小數(shù)部分占5位;指數(shù)部分占4位,其中

26、e占一位,指數(shù)符號占一位,指數(shù)占2位,共11位(不同系統(tǒng)的規(guī)定略有不同)。如,3.33333e-03?!纠?】思考題:以下%e的輸出格式事例,思考以下輸出語句的結(jié)果:printf( %en,12.3); 1.23000e+01printf( %2en,12.3); 1.23000e+01printf( %15en,12.3); 1.23000e+01printf( %.3en,12.3); 1.23e+01printf( %15.3en,12.3); 1.23e+01 printf( %5.3en,12.3); 1.23e+01printf( %15.3en,12.345); 1.23e+01

27、 明確考點 交流提升4、格式字符c輸出一個字符 允許形式:%mc %c -以字符形式輸出一個字符?!纠?】字符和整數(shù)的輸出。 main() char ch=a; int i=97;printf(ch=%c,ch=%cn, ch,i); /*c,i以字符形式輸出*/printf( i=%d,i=%dn, ch,i); /*c,i以整數(shù)形式輸出*/printf( ch=%2cn, ch);/* m限定輸出字符的總寬度,m大于字符寬度則字符左端填充空格*/ 程序運行結(jié)果 :ch=a, ch=ai=97,i=97ch= a明確考點 交流提升5、格式符s輸出一個字符串允許形式:%s、%m.ns %s-輸

28、出一個字符串。%m.ns-m是正整數(shù),表示允許輸出的字符串寬度;n是正整數(shù),表示對字符串截取的字符個數(shù)?!纠?】輸出字符串。 main() printf(%s,%3s,%-9sn,student, student , student ); printf(%8.3s,%-8.3s,%3.4sn,student ,student ,student ); 運行結(jié)果 :student, student, studentstu, stu, stud說明: 如果想輸出字符 % ,可以在“格式控制字符串“中連續(xù)用兩個%表示,如, printf(“%5.2f%”,1.0/2); 輸出結(jié)果為:50.00%。仿真

29、演練 體驗探索PART 04案例分析 仿真演練1、以下程序運行后的輸出結(jié)果是( )。 main() int x=0210; printf(%Xn,x); 2、以下程序運行后的輸出結(jié)果是 ( ) 。 main() char c; int n=100; float f=10; double x; x=f*=n/=(c=50); printf(%d %fn,n,x); 3、有以下程序運行后的輸出結(jié)果是( ) main() int m=0256,n=256; printf(%o %on,m,n); A)0256 0400 B)0256 256 C)256 400 D)400 400 4、有以下程序運行

30、后的輸出結(jié)果是( ) main() int a=666,b=888; printf(%dn,a,b); A)錯誤信息 B)666 C)888 D)666,888 5、以下程序段的輸出結(jié)果是( )main() int i=9; printf(%on,i); 6、以下程序運行后的輸出結(jié)果是 ( ) main() int a,b,c; a=25; b=025; c=0 x25; printf(%d %d %dn,a,b,c); 案例分析 仿真演練案例分析 仿真演練7、有以下程序執(zhí)行后輸出結(jié)果是( )main( ) int x=102,y=012; printf(%2d,%2dn,x,y); A) 1

31、0,01 B) 02,12 C) 102,10 D) 02,108、已知字符A的ACSII碼值為65,以下語句的輸出結(jié)果是( ) main( ) char ch=B; printf(“%c %dn”,ch,ch); 9、 有以下程序語句 main() int n1=10,n2=20; printf( ,n1,n2); 要求按以下格式輸出n1和n2的值,每個輸出行從第一列開始,請?zhí)羁?。n1=10n2=20案例分析 仿真演練10、有以下程序運行后的輸出結(jié)果是( )main() int a,b,d=25; a=d/10%9; b=a&(-1); printf(%d,%dn,a,b);A)6,1B)2

32、,1C)6,0 D)2,011、有以下程序運行后的輸出結(jié)果是( )main() int c=35; printf(%dn,c&c); A)0B)70C)35D)112、若有以下程序段運行后的輸出結(jié)果是( ) main() int a=2,b=5; printf(a=%d,b=%dn,a,b); A)a=%2,b=%5 B)a=2,b=5 C)a=%d,b=%d D)a=%d,b=%d格式化數(shù)據(jù)的輸入函數(shù)Teacher teaching designCONTENTS 目 錄數(shù)據(jù)的輸入函數(shù)格式控制字符串附加格式說明符案例分析 仿真演練 數(shù)據(jù)輸入格式明確考點 交流提升數(shù)據(jù)的輸入函數(shù)PART 01數(shù)據(jù)

33、的輸入函數(shù)數(shù)據(jù)的輸入函數(shù)scanf函數(shù)稱為格式輸入函數(shù),它可以按用戶指定的格式從鍵盤上把數(shù)據(jù)輸入到指定的變量中。1、 scanf函數(shù)的一般形式是: scanf(“格式控制字符串”,地址表列);功能:按“格式控制字符串”的要求,從鍵盤上把數(shù)據(jù)輸入到變量中。說明:、地址列表中給出各變量的地址。地址是由地址運算符“&”后跟變量名組成的。例如:&a, &b【解析】分別表示變量a和變量b 的地址。這個地址就是編譯系統(tǒng)在內(nèi)存中給a,b變量分配的地址。變量的地址是C編譯系統(tǒng)分配的,用戶不必關(guān)心具體的地址是多少。、 變量地址表由若干個被輸入數(shù)據(jù)的地址組成,相鄰地址之間,用逗號分開。地址表中的地址,可以是變量的

34、地址,也可以是字符數(shù)組名或指針變量。和的關(guān)系是數(shù)量、類型及位置要從左至右一一對應(yīng),在格式控制字符串中指定變量接收輸入值的位置和格式。例如:從鍵盤上輸入三個整數(shù): scanf(%d,%d,%d”,&a,&b,&c);思考:如果格式控制字符串與變量地址沒有一 一對應(yīng)時,會出現(xiàn)什么結(jié)果?如:、scanf(%d,%d,&a,&b,&c); 、 scanf(%d,&a,&b,&c);格式控制字符串PART 02格式控制字符串格式控制字符串、格式字符串的一般形式為:%*輸入數(shù)據(jù)寬度長度類型其中有方括號的項為任選項。各項的意義如下:類型:表示輸入數(shù)據(jù)的類型,其格式符和意義如輸入數(shù)據(jù)的類型表所示。格式字符意義

35、d輸入十進(jìn)制整數(shù)o輸入八進(jìn)制整數(shù)x輸入十六進(jìn)制整數(shù)u輸入無符號十進(jìn)制整數(shù)f或e輸入實型數(shù)(用小數(shù)形式或指數(shù)形式)c輸入單個字符s輸入字符串附加格式說明符PART 03格式舉例(1)寬度n: 指定輸入數(shù)據(jù)的列寬為n。 即,只接收輸入數(shù)據(jù)中相應(yīng)的n位,賦給對應(yīng)的變量,多余部分舍去。 例如,scanf(%2c%c,&c1,&c2); printf(c1=%c,c2=%cn,c1,c2); 如果輸入“abcd”,則系統(tǒng)將讀取的“ab”中的“a”賦給變量c1;將讀取的“cd”中的“c”賦給變量c2,所以printf()函數(shù)的輸出結(jié)果為:c1=a,c2=c。思考:scanf(%5d,&a); 輸入:123

36、45678 則a的值是 scanf(%4d%4d,&a,&b);輸入:12345678 則變量a,b的值是 (2)抑制符號 *該字符可以使對應(yīng)的數(shù)據(jù)輸入后,被抑制,不賦給任何變量。如: scanf(%2d%*2d%2d,&x1,&x2); printf(x1=%d,x2=%dn,x1,x2); 如果輸入112233,則輸出結(jié)果為: (3)字符l-%ld.%lo,%lx,%lu,用于輸入長整型數(shù)據(jù);%lf,%le,用于輸入實型數(shù)據(jù)。(4)字符h-%hd.%ho,%hx,用于輸入短整型數(shù)據(jù)數(shù)據(jù)輸入格式PART 04數(shù)據(jù)輸入格式(1)如果相鄰格式說明符之間,沒有數(shù)據(jù)分隔符號(如%d%d ),則由鍵盤

37、輸入的數(shù)據(jù)可以用空格分隔(至少一個),或者用Tab鍵分隔,或者輸入1個數(shù)據(jù)后按“回車”,然后再輸入下個數(shù)據(jù)。 例如,scanf(%d%d,&x1,&x2); 如果給x1輸入11,給x2輸入33,則正確的輸入操作為:1133 或者:11 33(2)“格式控制字符串”中出現(xiàn)的普通字符(非格式字符),包括轉(zhuǎn)義字符,需要原樣輸入。否則產(chǎn)生對應(yīng)錯誤,這點務(wù)必注意,例如,scanf(%d,%d,&x1,&x2); 輸入格式為:11,33 scanf(%d :%d,&x1,&x2); 輸入格式為:11 :33 scanf(x1=%d,x2=%dn,&x1,&x2); 輸入格式為: x1=11,x2=33n注

38、:這樣的輸入格式是很麻煩的,最好不這樣設(shè)計。數(shù)據(jù)輸入格式(3)輸入數(shù)據(jù)時,遇到以下情況,該數(shù)據(jù)被認(rèn)為輸入結(jié)束: 遇到空格,或者“回車“鍵,或者“跳格”(Tab)鍵。 指定的輸入寬度結(jié)束時。如“%5d”,只取5列。 遇到非法輸入。如,輸入數(shù)值數(shù)據(jù)時,遇到非數(shù)值符號 。(4)使用“%c”輸入字符時,不要忽略空格的存在。如, scanf(%c%c ,&c1,&c2,); printf(c1=%c,c2=%c n,c1,c2); 如果輸入:xy,則系統(tǒng)將空格賦值給c1,字母x賦值給c2。 思考練習(xí):scanf(%c%c%c,&a,&b,&c);輸入為:d e f則a,b,c的值分別是:(5) 有以下程

39、序main() int a;printf(input a numbern);scanf(%d,&a);printf(%ld,a);如果輸入2時,結(jié)果為131074與題意不符,請思考結(jié)果不正確的原因? 數(shù)據(jù)輸入格式 注意:(1)如果需要實現(xiàn)人機對話的效果,設(shè)計數(shù)據(jù)輸入格式時,可以先用printf()函數(shù)輸出提示信息,再用scanf()函數(shù)進(jìn)行數(shù)據(jù)輸入。 例如,把scanf(x1=%d,x2=%dn,&x1,&x2);改為: printf(x1=); scanf(%d,&x1); printf(x2=); scanf(%d,&x2);這樣就可以有屏幕提示的效果了。(6)有以下程序main() in

40、t a,b,c; printf(input a,b,cn); scanf(%d%d%d,&a,&b,&c); printf(a=%d,b=%d,c=%d,a,b,c);思考如何從鍵盤上輸入數(shù)據(jù)?學(xué)習(xí)提示:格式輸入輸出函數(shù)的規(guī)定比較繁瑣,但不要死記硬背,可以先掌握一些基本的規(guī)則,多上機操作,隨著以后學(xué)習(xí)的深入,通過編寫和調(diào)試程序逐步深入自然地去掌握。明確考點 交流提升PART 05明確考點 交流提升【例1】main() char a,b;printf(input character a,bn);scanf(%c%c,&a,&b);printf(%c%cn,a,b);思考:如輸入M N則變量a,b

41、的值是: ;如果賦值不正確如何修改?【例2】#include main() int a,b; char c,ch; printf(Enter integer a and b:); scanf(%d %d,&a,&b); printf(Enter character c and ch:); scanf(%c%c,&c,&ch); printf(a=%d b=%dn,a,b); printf(c=%d ch=%dn,c,ch);運行結(jié)果為:Enter integer a and b:123 456Enter character c and ch: ABa=123 b=456c=10 ch=65思考

42、:請分析程序運行后,結(jié)果產(chǎn)生的原因是?。明確考點 交流提升【例4】有以下程序main() int m,n,p; scanf(m=%dn=%dp=%d,&m,&n,&p); printf(%d%d%dn,m,n,p); 若想從鍵盤上輸入數(shù)據(jù),使變量M中的值為123,N中的值為456,P中的值為789,則正確的輸入是( )A)M=123 N=456 P=789 B)M=123 N=456 P=789 C)M=123,N=456,P=789 D)123 456 78【例3】#include main() int a,b; char c,ch; printf(Enter integer a and b

43、:); scanf(%d %d,&a,&b); printf(Enter character c and ch:); scanf(%*c%c%c,&c,&ch); printf(a=%d b=%dn,a,b); printf(c=%c ch=%cn,c,ch);如輸入以下數(shù)據(jù)Enter integer a and b:123 456Enter character c and ch:AB則輸出結(jié)果是:明確考點 交流提升【例5】有定義語句:int b;char c10;,則正確的輸入語句是( )A)scanf(%d%s,&b,&c);B)scanf(%d%s,&b,c);C)scanf(“%d%s

44、”,b,c); D)scanf(%d%s,b,&c);【例6】以下程序運行時若從鍵盤輸入:10 20 30。輸出結(jié)果是( )。#includemain() int i=0,j=0,k=0; scanf(%d%*d%d,&i,&j,&k); printf(%d%d%dn,i,j,k); 仿真演練 體驗探索PART 06仿真演練 體驗探索1、有以下程序若運行時從鍵盤上輸入:6,5,65,66,則輸出結(jié)果是( )。main() char a,b,c,d;scanf(%c,%c,%d,%d,&a,&b,&c,&d);printf(%c,%c,%c,%cn,a,b,c,d);A)6,5,A,B B)6,

45、5,65,66 C)6,5,6,5 D)6,5,6,62、已知字母A的ASCII碼為65。以下程序運行后的輸出結(jié)果是 ( )。 main() char a, b;a=A+5-3; b=a+6-2 ;printf(%d %cn, a, b);仿真演練 體驗探索3、運行如下程序后其運算結(jié)果是( )main() char a,b; a=120; b=121; printf(%c,%cn,a,b);printf(%d,%dn,a,b); 4、運行如下程序,其結(jié)果為( )main() char a,b; a=a; b=b; a=a-32; b=b-32; printf(%c,%cn%d,%dn,a,b,

46、a,b); 仿真演練 體驗探索5、數(shù)字字符0的ASCII值為48,若有以下程序運行后的輸出結(jié)果是( )main() char a=1,b=2; printf(%c,b+); printf(%dn,b-a); A)3,2B)50,2C)2,2D)2,506、有以下程序main() char a=a,b; printf(%c,+a); printf(%cn,b=a+); 程序運行后的輸出結(jié)果是( ) A)b,b B)b,c C)a,b D)a,c 數(shù)據(jù)類型概述Teacher teaching designCONTENTS 目 錄C語言中數(shù)據(jù)類型標(biāo)識符常量案例分析 仿真演練變量明確考點 交流提升C語

47、言中數(shù)據(jù)類型PART 01數(shù)據(jù)類型眾所周知,計算機內(nèi)部使用二進(jìn)制形式來存放各種信息,對不同的信息有著不同的解釋,于是人們對信息的存放作出規(guī)定,即數(shù)據(jù)的組織形式。那么在C語言中,是如何規(guī)定數(shù)據(jù)的存放形式的呢?為了解決這一問題,C語言規(guī)定,程序中用到的任何一個數(shù)據(jù)類型必須首先指定其數(shù)據(jù)類型。于是C語言就根據(jù)不同的信息的存放形式及功能的不同,把數(shù)據(jù)劃分為:基本類型(標(biāo)準(zhǔn)類型、構(gòu)造類型、指針類型、空類型如圖所示: 面對不同的對象或不同的信息出現(xiàn)、存放形式的不同,于是又把數(shù)據(jù)分為常量與變量變量、常量需要有名字,命名是要講規(guī)則的,C語言中,標(biāo)識符是用來標(biāo)識變量名、符號常量名、文件名等的有效字符序列。所以先

48、介紹標(biāo)識符的概念。標(biāo)識符PART 02標(biāo)識符語言規(guī)定標(biāo)識符只能由 字母 、 數(shù)字和下劃線三種字符組成,且第一個字符必須為為母或下劃線。例如:sum,day,_class,student_No,a1等都是合法的標(biāo)識符。2a_q,a#_12,$abc等都是非法的標(biāo)識符。注意:1標(biāo)識符不能和C語言的關(guān)鍵字重名。如:if(C語言的關(guān)鍵字),main(C語言的關(guān)鍵字)都是不合法的標(biāo)識符。2在C語言中,大寫字母和小寫字母被認(rèn)為是兩個不同的字符。如:max和MAX是兩個不同的標(biāo)識符。3ANSI C標(biāo)準(zhǔn)沒有規(guī)定標(biāo)識符的長度,但各個C編譯系統(tǒng)都有自己的規(guī)定。在Turbo C中規(guī)定標(biāo)識符的長度不超過32個字符,如

49、果超過只有前32個字符有效。常量PART 03常量 程序在運行的過程中,其值不能被改變的量稱為常量。常量又可分為直接常量(常數(shù))、符號常量。從數(shù)據(jù)類型結(jié)構(gòu)上分為整型常量、實型常量、字符常量、字符串常量。、常數(shù)是各種不同類型的具體數(shù)值,用數(shù)據(jù)本身的值直接表示。如整型常數(shù)據(jù)120,實型常數(shù)3.14,字符常數(shù)A,字符串常數(shù)“computer”。、符號常量(標(biāo)識符形式的常量)符號常量則用一個標(biāo)識符來代表一個常量,相當(dāng)于為常量取了一個名字,但仍保持常量的性質(zhì),即它的值在運行過程中不能被改變。 符號常量名的取名規(guī)則是:以字母開頭,由字母、數(shù)字和下劃線組成,最好用大寫字母表示,且不能與系統(tǒng)關(guān)鍵字相同。符號常

50、量的定義分為以下兩種形式。1)使用宏定義命令定義格式是:#define 或為 #define 例如: #define PI 3.14159常量2)使用const命令定義格式是:const = ; const float PI= 3.1415926;const int N=10;const int x=10,y=20;例如:有如下程序#define PI 3.1415926#define R 2.0main()float s,c;s=PI*R*R;c=2.0*PI*R;printf(s=%f,c=%fn,s,c);在程序預(yù)處理時,凡是出現(xiàn)標(biāo)識符PI的地方都將用數(shù)據(jù)3.1415926來替換, 出現(xiàn)

51、標(biāo)識符R的地方都將用數(shù)據(jù)2.0來替換。如果用戶要修改PI,R的值,則只在定義處修改即可。變量PART 04變量、變量的定義變量是指程序在運行的過程中,其值能被改變的數(shù)據(jù)稱為變量。在使用前對變量進(jìn)行定義,定義變量的數(shù)據(jù)類型和名稱,甚至變量的初始值。變量可分為整型變量、實型變量、字符變量。注:知識拓展在程序中,數(shù)據(jù)連同其存儲空間被抽象為變量。一個變量有一個名字,占一定的存儲單元,在該存儲單元中存儲變量的值。變量名代表某個存儲空間及其所存儲的數(shù)據(jù)。存儲空間首地址即為變量地址。程序中引用變量,實際上是對指定的存儲空間的引用,因此必須先分配存儲空間才能引用,即變量在引用前須先定義變量的類型,編譯時就會根

52、據(jù)指定的類型分配其一定的存儲空間,并決定數(shù)據(jù)的存儲方式及操作方式。如:double a ;a 代表8個連續(xù)的存儲單元,空間中的數(shù)據(jù)為變量值。變量、變量的取名規(guī)則以字母或下劃線開頭,由字母、數(shù)字和下劃線組成,不能超過32個字符,不能用C語言中的關(guān)鍵字作為變量名,也不要與符號常量名和函數(shù)名同名。、定義變量的格式是: ;初始化定義格式是: =;例如:變量的定義(一般應(yīng)在函數(shù)一開始就進(jìn)行定義。)int a,b; /*定義兩個整型變量a和b*/unsigned short c,d,f ;/*定義三個無符號短整型變量c、d、f*/float x,y,z=12.56;/*表示定義了三個變量但只是將12.56

53、賦給了變量z*/注:1、一個變量應(yīng)有確定的類型,在一個程序中一個變量只能有一個類型,不能先后被定義為兩個或多個類型。 2、不同類型的變量其存儲單元的大小不同。3、對幾個變量賦同一個初值,如果事先未定義好則不能采用連續(xù)賦值的形式,如語句int a=b=c=2;是錯誤的,應(yīng)該寫成int a=a,b=2,c=2;案例分析 交流提升PART 05案例分析 交流提升例1、C語言中定義了一個變量,該變量代表內(nèi)存中的一個( )A)區(qū)域 B)單元 C)地址 D)容量【解析】C語言中定義的一個變量代表內(nèi)存中的一個地址,也就是在內(nèi)存中分配給這個變量一個單元,用來存放變量的值,這個內(nèi)存單元的大小根據(jù)變量的類型不同而

54、不同,所以本題答案為C。例2、C語言中最簡單的數(shù)據(jù)類型包括( )A) 整型、實型、邏輯型 B) 整型、實型、字符型 C) 整型、字符型、邏輯型 D) 整型、實型、邏輯型、字符型【解析】C語言中的數(shù)據(jù)類型有基本類型、空類型、指針類型、構(gòu)造類型,但基本類型主要是指整型、實型、字符型三種,所以本題答案為B例3、下面符合C語言定義變量的格式是( )A) int a:=b; B)int a=b=c=2; C) int 18.5%3; D)int a=2,b=2,c=2;【解析】定義變量的基本語句格式是: ;如果在定義的同時又要為變量賦初值,格式是: = ;知道選項A中“:=”不是賦值號“=”; C語言中

55、規(guī)定對幾個變量賦同一個初值,如果事先沒有定義好變量類型,則不能采用連續(xù)賦值的形式,所以選項B錯誤;選項C不符合變量定義形式,所以錯誤;所以本題答案為D。案例分析 交流提升例4、以下選項中屬于C語言的數(shù)據(jù)類型是( )A) 復(fù)數(shù)型 B) 字符型 C) 雙精度型 D) 集合型【解析】C語言中基本數(shù)據(jù)類型有整型、實型、邏輯型,而雙精度型只是屬于實型中一種形式,而不能為單獨的數(shù)據(jù)類型,由此可知本題的答案為B。例5、已知每千克牛肉的價格為20元,求買6斤需要多少錢。main()float sum; /*變量定義*/sum=20.0*6; /*給變量賦值*/printf(“sum=%dn”,sum);/*輸

56、出*/程序運行結(jié)果:sum=120.000000分析:程序中的20.0和6都是常量,按其字面形式又可區(qū)分為不同類型,12.0是實型常量,6是整型常量。案例分析 交流提升例6、符號常量的使用。#define PRICE 20/*宏定義語句*/main()float num, sum; /*變量定義*/num=6.0;sum=num* PRICE;printf(“sum=%f”,sum); /*輸出*/程序運行的結(jié)果為:sum=120.000000分析:程序中用標(biāo)示符PRICE代表來代表價格常量20。其中#define是一條預(yù)處理命令(預(yù)處理命令都以#開頭),稱為宏定義命令(在后面章節(jié)中進(jìn)一步介紹

57、),其作用是把該標(biāo)識符定義為其后的常量值。一經(jīng)定義,以后在程序中所有出現(xiàn)該標(biāo)識符的地方均代之以該常量值。習(xí)慣上符號常量的標(biāo)識符用大寫字母,變量標(biāo)識符用小寫字母,以示區(qū)別。其目的是方便程序的閱讀。案例分析 交流提升例7 分析如下程序main()int a=45,b=32,sum=0;svm=a+b;printf(“sum=%d”,sum);說明:(1)本例第5行錯將sum寫為svm,程序編譯時,會報告svm未定義。如果C語言中沒有對變量做”先定義”的要求,程序執(zhí)行結(jié)果為0。錯誤就很難被編程者發(fā)現(xiàn)。(2)變量定義就是指定變量的類型,便于在編譯時,檢查對該變量的運算是否合法。仿真演練 體驗探索PAR

58、T 06仿真演練 體驗探索1、在C程序中,可以作為用戶標(biāo)識符的一組標(biāo)識符是( )。 A)void define WORD B)as_b3 _224 Else C)Switch -wer case D)4b DO SIG2、下列選項中,是C語言提供的合法的關(guān)鍵字的是( )。 A)swicth B)cher C)default D)Case3、C語言中定義了一個變量,該變量代表內(nèi)存中的一個( )。 A)區(qū)域 B)單元 C)地址 D)容量4、這段程序中的常量有:(多選) #define PI 3.14 main() int sum; sum = 10 + 15; printf(sum=%dn,sum

59、); printf(result is 25n); 這段程序中常量有: A. 10 B. sum C. 15 D. 25 E. main F. PI仿真演練 體驗探索5、指出下面哪些是保留字(關(guān)鍵字):(多選) A. char B. abc C. printf D. int E. float F. define G. include H. PI 6、符號常量的值在其作用域內(nèi)不能改變,也不能再被賦值。如:#define PRICE 20main() PRICE=25; 7、以下程序的輸出結(jié)果是:#include main() int a=2,b=3,sum=0; sum=sum+a*b+c; p

60、rintf(sum=%d,sum); 8、以下程序的輸出結(jié)果是:#include main() int a=2,b=3,s=0; float a=4.8; s=s+a*b+c; printf(s=%d,s);整型數(shù)據(jù)Teacher teaching designCONTENTS 目 錄提出問題 引入新課整型常量明確考點 交流提升案例分析 仿真演練提出問題 引入新課PART 01提出問題 引入新課1、下列定義符號常量其格式正確的是( )A)#define PI=3.1415926 B)#define PI 10;C)#define PI 10 D)#define PI 2、在下列C語言程序中可以

溫馨提示

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

最新文檔

評論

0/150

提交評論