版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
C語言程序設計教學做一體化
C語言程序設計模塊一初識C語言通過學習C語言,既可以用來編寫應用軟件和系統(tǒng)軟件,又可以培養(yǎng)計算機編程基本思想、編程基本技能及邏輯思維能力。模塊一初識C語言通過學習C語言,既可以用來編寫應用軟件和系1.1簡單的C程序學習目標1、了解C語言程序的結構特點2、掌握庫函數(shù)的調用方法1.1簡單的C程序學習目標案例1-1
在計算機屏幕上輸出“Hello,myCworld!”案例程序main() /*主函數(shù)*/{ printf(“Hello,myCworld!\n”); /*輸出要顯示的內容*/}運行這個程序,在屏幕上顯示一行英文:Hello,myCworld!由案例開始案例1-1由案例開始1、這是一個最簡單的C程序,學習C語言就由此開始吧!2、C程序是由函數(shù)組成的,函數(shù)就是相對獨立的可以完成特定功能的程序段。本程序就是由一個稱為main的函數(shù)構成的。其中main是函數(shù)的名字,函數(shù)名后都要有一對圓括號,用來寫函數(shù)參數(shù)的,本程序的main函數(shù)沒有參數(shù)所以不寫,但圓括號不能省略。3、一個完整的程序必須有一個main函數(shù),稱為主函數(shù),程序總是從main函數(shù)開始執(zhí)行的,也就是說,main函數(shù)是程序的入口。案例分析1、這是一個最簡單的C程序,學習C語言就由此開始吧!案例分析4、main()后面花括號內的部分稱為函數(shù)體。本程序中的函數(shù)體只由一個語句組成。一般情況下函數(shù)體由“說明部分”和“執(zhí)行部分”組成。說明部分的作用是定義數(shù)據(jù)類型;執(zhí)行部分給出操作命令。本實例只有執(zhí)行部分而沒有說明部分。5、C程序的每一條基本語句都以“;”結束。6、可以用/*...*/對C程序的任何部分作注釋,用來解釋該條語句或該段程序的含義或作用,只是為了幫助程序閱讀者更好地理解程序中有關部分內容而寫的。4、main()后面花括號內的部分稱為函數(shù)體。本程序中的函數(shù)7、printf是C的庫函數(shù)中的一個函數(shù),它的作用是在顯示屏上輸出指定的內容,此例輸出“Hello,myCworld!”字符串。printf(“Hello,myCworld!\n”)括號中的內容就是調用printf庫函數(shù)時的參數(shù),通俗地講就是“通知”printf要顯示的內容。參數(shù)中的“\n”是C語言中的格式控制符,作用是:在輸出“Hello,myCworld!”之后執(zhí)行一個回車換行操作,如果以后還有輸出的話,將從下一行的左端開始輸出。7、printf是C的庫函數(shù)中的一個函數(shù),它的作用是在顯示屏隨堂練習編寫一個C程序,輸出以下信息:***************************************Turboc2.0***************************************隨堂練習編寫一個C程序,輸出以下信息:案例1-2求從鍵盤輸入的任意兩個整數(shù)相加的和并將結果顯示出來。案例1-2求從鍵盤輸入的任意兩個整數(shù)相加的和并將結果顯示出#include<stdio.h>main(){ inta,b,sum; /*定義三個整型變量*/ printf(“Inputonenumber:”); /*調用printf庫函數(shù)輸出信息在屏幕上*/ scanf(“%d”,&a);/*調用scanf庫函數(shù)執(zhí)行由鍵盤輸入數(shù)據(jù)并賦值給加數(shù)a*/ printf(“Inputtheothernumber:”);/*提示信息*/ scanf(“%d”,&b); /*由鍵盤輸入數(shù)據(jù)賦值給被加數(shù)b*/ sum=a+b; /*求a和b兩數(shù)之和*/ printf(“sum=%d\n”,sum); /*輸出sum(和)的值在屏幕上*/}案例程序#include<stdio.h>案例程序程序運行結果如下: Inputonenumber:5↙ Inputtheothernumber:10↙ sum=15程序運行結果如下:1、首先應該考慮程序中要用到的數(shù)據(jù)的個數(shù),顯然本例中要用到三個數(shù),即加數(shù)、被加數(shù)、和,所以先定義三個變量。語句inta,b,sum;的作用就是定義三個變量,名字分別為a,b,sum,類型都是整型。int表示整型,是C語言的關鍵字(見知識鏈接)。當程序運行的時候,系統(tǒng)將根據(jù)定義在內存中為這三個變量分配存儲單元。輸入的數(shù)就存放在這三個單元中??梢赃@樣說,變量的作用就是用來保存和標識數(shù)據(jù),訪問數(shù)據(jù)就可以通過變量名來訪問。案例分析sumba存儲單元1、首先應該考慮程序中要用到的數(shù)據(jù)的個數(shù),顯然本例中要用到三2、庫函數(shù)調用scanf(“%d”,&a);用來實現(xiàn)從鍵盤接收用戶輸入的數(shù)據(jù),并送到變量a所對應的地址單元中。這也意味著,變量a的值就是輸入的值。例如從鍵盤輸入5,那么變量a的值就是5。&表示取地址(也稱為取地址運算符),“%d”用來限制輸入數(shù)據(jù)的格式是整數(shù)。3、sum=a+b;表示將a和b兩個變量單元中的內容相加,并將結果存放在sum所對應的存儲單元中。2、庫函數(shù)調用scanf(“%d”,&a);用來實現(xiàn)從鍵盤4、庫函數(shù)調用printf(“sum=%d\n”,sum);用于輸出結果到屏幕上。注意第一個“sum”,包括“=”,都表示字符串常量的一部分,應該按原樣輸出,即在屏幕上顯示sum=?!?d”用來限制輸出的格式是整型,括號右端的sum是要輸出的變量名字,執(zhí)行該函數(shù)時,就是把sum變量的值按照整型格式輸出在%d的位置,如圖1-2。所以最后輸出:sum=15。%d稱為格式控制符,也可以稱為占位符。printf(“sum=%d\n”,sum);
用sum的值取代%d4、庫函數(shù)調用printf(“sum=%d\n”,sum)5、#include語句是編譯預處理語句,其作用是將有雙引號或尖括號括起來的文件內容代替這行#include命令,也就是使該文件的內容被整個地調到main函數(shù)的前面。“.h”是“頭文件”的后綴,輸入輸出函數(shù)一般需要使用#inlcude語句將包含輸入輸出函數(shù)說明信息的頭文件“stdio.h”包含到源文件中。5、#include語句是編譯預處理語句,其作用是將有雙引號編程由鍵盤輸入長方形的長和寬,求長方形的面積。隨堂練習編程由鍵盤輸入長方形的長和寬,求長方形的面積。隨堂練習求一個數(shù)的絕對值并輸出。
案例1-3
求一個數(shù)的絕對值并輸出。案例1-3#include<math.h>main(){ floatnum,n; /*定義兩個實數(shù)類型的變量*/ scanf(“%f”,&num); /*從鍵盤輸入數(shù)值保存在變量num對應的存儲單元中*/ n=abs(num); /*調用庫函數(shù)abs求num變量的絕對值并保存在變量n中*/ printf(“%f\n”,n);/*輸出所求的絕對值*/}案例程序#include<math.h>案例程序運行程序: -1.5↙ 1.5運行程序:1、floatnum,n;表示定義變量num和n為實數(shù)類型(浮點型),“float”表示實型,是C語言數(shù)據(jù)類型關鍵字。2、“%f”是格式控制符,控制輸入輸出的數(shù)據(jù)是實型。3、abs是C系統(tǒng)的庫函數(shù),在調用數(shù)學庫函數(shù)時,要用到一些系統(tǒng)提供的說明信息,這些信息包含在math.h頭文件中,所以在程序的開始要用預處理命令#include包含進來。案例分析1、floatnum,n;表示定義變量num和n為實數(shù)類編程調用庫函數(shù),計算一個數(shù)的正弦值。隨堂練習編程調用庫函數(shù),計算一個數(shù)的正弦值。隨堂練習1、C語言的關鍵字關鍵字是C語言已經定義的、具有特殊功能和含義的單詞、單詞縮寫或者單詞組合。表1-1列舉了32個關鍵字,它們與標準C句法結合,形成了程序設計語言C。知識鏈接1、C語言的關鍵字知識鏈接電子教案-C語言程序設計教學做一體化-滕泓虬課件2、C語言的庫函數(shù)C語言提供了豐富的庫函數(shù),每個函數(shù)實現(xiàn)一定的功能。C語言本身語句很少,許多功能都是通過庫函數(shù)完成的。例如,前面用到的輸入輸出的功能和求絕對值的功能都是通過調用庫函數(shù)實現(xiàn)的。3、ASCII字符集在計算機中,所有的信息都用二進制表示。其中應用最為廣泛的編碼方式就是ASCII碼。使用的字符在計算機中就是以ASCII碼方式存儲的。ASCII碼是美國標準信息交換碼(AmericanStandardCodeforInformationInterchange),已被國際標準化組織認定為國際標準,詳見附錄Ⅰ。2、C語言的庫函數(shù)電子教案-C語言程序設計教學做一體化-滕泓虬課件學習目標1、掌握C程序的編譯運行過程2、掌握C程序的錯誤查找方法1.2
C程序的上機過程學習目標1.2C程序的上機過程案例1-4
一個簡單的C程序的運行過程。案例1-4一個簡單的C程序的運行過程。案例分析1、把Turboc2.0文件夾放在電腦C盤下面。2、打開文件夾內的TC可運行文件,進入Turboc2.0,以下簡稱Turboc。3、按【Alt+F】快捷鍵打開【File】(文件)菜單,用鍵盤上的【↑】和【↓】選擇【New】菜單項,進入編輯狀態(tài),如圖所示。在Turboc中,按【Alt】+【對應菜單的首字母】即可打開相應的菜單。另外,也可按【F10】功能鍵選中相應的菜單。案例分析1、把Turboc2.0文件夾放在電腦C盤下面。電子教案-C語言程序設計教學做一體化-滕泓虬課件4、編輯在編輯區(qū)域輸入以下代碼:#include”stdio.h”main(){ printf(“Nopains,nogains!”);}還可以事先將源代碼寫在記事本中,將其保存為.c文件,然后打開Turboc的【File】菜單中的【Load】菜單項或按【F3】鍵,在Turboc中打開該源文件,這時在Turboc中就出現(xiàn)了在記事本中輸入的C代碼,接著編譯、連接和運行它即可。4、編輯5、保存輸入程序后對程序進行認真檢查,并改正已發(fā)現(xiàn)的錯誤。這時已及時將程序保存起來。選擇【File】菜單下的菜單項【Save】或者直接按快捷鍵【F2】,在彈出的對話框中出現(xiàn)文件的默認路徑和默認文件名,這時可以修改路徑和文件名,如圖1-4所示。這里把把路徑改為D盤ZHANGSAN(張三)文件夾下,文件名為CH1_1.C,表示第一章第一個C程序。5、保存電子教案-C語言程序設計教學做一體化-滕泓虬課件6、編譯編輯好的C代碼,計算機是不能識別的。這是因為計算機只能識別稱為機器語言的二進制命令,所以要想執(zhí)行這段代碼,就必須將源代碼轉換成機器語言。也就是要做第二步編譯源代碼,將源代碼作為輸入,并生成一個磁盤文件,該文件包含了與源代碼語句對應的機器語言指令,該指令即為目標代碼,而包含它們的磁盤文件稱為目標文件。在Turboc中,編譯源代碼,按【Alt+C】快捷鍵打開【Compile】菜單,選擇【Compile】菜單下的【CompiletoOBJ】菜單項,或直接按【Alt+F9】快捷鍵,編譯程序后,出現(xiàn)編譯信息提示窗口,如圖1-5所示。它表示有一個錯誤,沒有警告。6、編譯電子教案-C語言程序設計教學做一體化-滕泓虬課件按任意鍵信息窗口(Message)被激活,在出現(xiàn)第一個錯誤信息提示處以白色高亮度顯示,同時,編輯窗口中相應的錯誤語句所在行也以白色高亮度顯示,如圖1-6所示。按回車鍵【Enter】可切換到編輯窗口出現(xiàn)錯誤的語句行,同時對應的錯誤提示信息以紅色亮條在編輯區(qū)上部顯示。有時候程序可能只有一處錯誤,但會顯示多條錯誤信息。所以一般修改一處錯誤后,應該再次進行編譯。按任意鍵信息窗口(Message)被激活,在出現(xiàn)第一個錯誤信電子教案-C語言程序設計教學做一體化-滕泓虬課件在程序沒有錯誤的情況下,便可將當前源代碼編譯成目標代碼。在當前工作目錄下產生一個擴展名為“.obj”的目標程序文件。本例產生的文件名為“CH1_1.obj”。在程序沒有錯誤的情況下,便可將當前源代碼編譯成目標代碼。在當當查找錯誤時,可以使用【F6】鍵在編輯窗口和消息窗口之間進行切換。錯誤有時會出現(xiàn)在錯誤語句行前面的某條語句處,在圖1-5中,錯誤原因是第一行main()后不應有分號“;”,而出錯信息提示卻在第二行上。這個程序剛好與剛才提到的情況相反,它實際上有兩處錯誤,但只提示有一處錯誤,在這種情況下,改正一處錯誤后,再次編譯后,還會再提示第二處錯誤。本例的第二處錯誤是第三行語句應該加分號作為語句結束。提示當查找錯誤時,可以使用【F6】鍵在編輯窗口和消息窗口之間進行7、連接有了目標文件后,程序還不能直接運行,還必須將目標文件與系統(tǒng)提供的庫函數(shù)和包含文件(“#include”命令所包含的文件)等連接成一個可執(zhí)行文件,即擴展名為“.exe”的文件,這時才形成最后的可運行文件。選擇【Compile】菜單下的【LinkEXEfile】菜單項,在當前工作目錄中生成一個可執(zhí)行文件。本例生成可執(zhí)行文件“CH1_1.exe”。7、連接可以一次完成編譯和連接,選擇【Compile】菜單下的【MakeEXEfile】菜單項,或者按【F9】快捷鍵,在當前工作目錄中生成一個目標文件(*.obj)和一個可執(zhí)行文件(*.exe)。另外,可以指定生成的目標文件和可執(zhí)行文件到指定的輸出目錄。本例就可以重新設定輸出目錄為“D:\ZHANGSAN”。按【Alt+O】快捷鍵打開【Options】菜單,選擇【Options】菜單下的【Directories】菜單項,在彈出對話框中選中【Outputdirectory】選項,然后設定輸出目錄(Outputdirectory)為“D:\ZHANGSAN”如圖所示。提示可以一次完成編譯和連接,選擇【Compile】菜單下的【Ma電子教案-C語言程序設計教學做一體化-滕泓虬課件最后在相應目錄下,可以查看本實例的源文件、目標文件和可執(zhí)行文件如圖所示。最后在相應目錄下,可以查看本實例的源文件、目標文件和可執(zhí)行文8、運行在TC集成環(huán)境下,按【Alt+R】快捷鍵打開【Run】菜單,選擇【Run】菜單下【Run】菜單項,或者直接按【Ctrl+F9】快捷鍵,則可執(zhí)行文件即開始運行。8、運行【Ctrl+F9】快捷鍵的作用不僅是運行程序,而且包含編譯、連接和運行,也就是說,如果編輯好源程序后,經檢查認為沒有問題,通過按【Ctrl+F9】快捷鍵,則可以一次完成從編譯、連接到運行的全過程。提示【Ctrl+F9】快捷鍵的作用不僅是運行程序,而且包含編譯、9、觀察運行結果選擇【Run】菜單下的【Userscreen】菜單項,即可打開用戶屏幕觀看結果。也可以使用快捷鍵【Alt+F5】查看運行結果。本例運行結果如圖所示。9、觀察運行結果電子教案-C語言程序設計教學做一體化-滕泓虬課件運行過程的常用快捷鍵是:1、F9:進行編譯和連接。2、Ctrl+F9:運行。3、Alt+F5:觀看運行結果。提示運行過程的常用快捷鍵是:提示按照上機過程運行一個簡單的C程序。隨堂練習按照上機過程運行一個簡單的C程序。隨堂練習C語言采用編譯方式將源文件轉換為二進制的目標代碼。從編寫到運行一個C程序一般經過以下幾個步驟:1、編輯內容包括:①將源程序逐個字符輸入到計算機內存;②修改源程序;③保存源程序到磁盤文件中。源程序是以ASCII代碼的形式輸入和存儲的,不能被計算機執(zhí)行。2、編譯編譯就是將編輯好的源程序翻譯成二進制的目標代碼。在編譯時,對源程序進行語法檢查,如有錯,則在屏幕上顯示出錯信息。知識鏈接C語言采用編譯方式將源文件轉換為二進制的目標代碼。從編寫到運3、連接將目標文件與系統(tǒng)提供的庫函數(shù)和包含文件(“#include”命令所包含的文件)等連接成一個可執(zhí)行文件,該文件可由計算機直接執(zhí)行。4、執(zhí)行可執(zhí)行文件連接好后,就可以運行它了。需要指出的是,經過成功編譯和連接的可執(zhí)行文件不一定能正確運行,或者運行所得的結果與期望的不符,出現(xiàn)這種情況,則需返回從頭開始檢查,找出導致錯誤的原因。3、連接從編寫到運行一個C程序的全過程如圖所示:選擇New命令新建一個源程序在編輯區(qū)錄入代碼編譯源程序,生成目標文件連接目標文件,生成可執(zhí)行文件運行可執(zhí)行文件,查看結果根據(jù)編譯信息調試程序,修改錯誤從編寫到運行一個C程序的全過程如圖所示:選擇New命令新建一課后練習1、一個C程序的執(zhí)行是從()。A)本程序的main函數(shù)開始,到main函數(shù)結束。B)本程序文件的第一個函數(shù)開始,到本程序文件的最后一個函數(shù)結束。C)本程序的main函數(shù)開始,到本程序文件的最后一個函數(shù)結束。D)本程序文件的第一個函數(shù)開始,到本程序main函數(shù)結束。選擇題課后練習選擇題2、以下敘述不正確的是()。A)一個C源程序可由一個或多個函數(shù)組成。B)一個C源程序必須包含一個main函數(shù)。C)在C程序中,注釋說明只能位于一條語句的后面。D)C程序的基本組成單位是函數(shù)。3、C語言規(guī)定:在一個源程序中,main函數(shù)的位置()。A)必須在程序的開頭。B)必須在系統(tǒng)調用的庫函數(shù)的后面。C)可以在程序的任意位置。D)必須在程序的最后。2、以下敘述不正確的是()。4、一個C語言程序是由()。A)一個主程序和若干子程序組成。B)函數(shù)組成。C)若干過程組成。D)若干子程序組成。4、一個C語言程序是由()。分析下面程序的運行結果main(){inta,b,df;a=200;b=50;df=a-b;printf(“df=%d\n”,df);}程序分析程序分析1、為一個學生管理信息系統(tǒng)設計一個界面,顯示下列菜單:Menu================================================ 1.Inputnamesandscores 2.Searchscoresofstudents 3.Modifyscoresofsomestudents 4.Listallinformation 5.Quit================================================= Pleaseinputyourchoice(1-5):2、編程求三個數(shù)的和。3、編程求兩個數(shù)中較大的數(shù)。4、由鍵盤輸入一個長方體的長寬高,求長方體的體積。動手編程1、為一個學生管理信息系統(tǒng)設計一個界面,顯示下列菜單:動手編本章小結1.如何學C語言2.動手最重要
本章小結1.如何學C語言作業(yè)作業(yè)C語言程序設計教學做一體化
主編滕泓虬
中國水利水電出版社C語言程序設計模塊三順序結構程序設計
3.1程序的三種基本結構學習目標(1)了解結構化程序的三種基本結構。(2)掌握C程序語句的幾種類型。(3)掌握順序結構程序設計。TC
IDE模塊三順序結構程序設計TC
IDE結構化程序的三種基本結構是:順序結構、選擇結構和循環(huán)結構。其中,順序結構是按照語句的先后順序逐條執(zhí)行的,所以說它是最基本,也是最簡單的程序結構。TCIDE結構化程序的三種基本結構是:順序TC
IDEC程序語句可分為:控制語句和非控制語句兩大類。其中控制語句是完成一定的控制功能的,可分為以下4類:條件轉移語句:有if語句和switch語句。循環(huán)控制語句:有for語句、while語句和do-while語句。無條件轉移語句:goto語句。其他控制語句:continue、break和return語句。TCIDEC程序語句可分為:控制語句和非控制語句兩大類。其非控制語句也可以分為4種:函數(shù)調用語句。表達式語句??照Z句。塊語句。非控制語句也可以分為4種:TC
IDE實例3_1
函數(shù)調用語句舉例。main()
{ /*主函數(shù)*/clrscr();/*此行是一個函數(shù)調用語句,表示清除屏幕內容*/printf(“WelcometostudyCProgram.”);/*此行是一個函數(shù)調用語句*/}實例驅動TCIDE實例3_1函數(shù)調用語句舉例。實例驅動運行這個程序,在屏幕上顯示一行英文:WelcometostudyCProgram.運行這個程序,在屏幕上顯示一行英文:實例分析:(1)本例中主函數(shù)有兩個語句,均是函數(shù)調用語句,所謂函數(shù)調用語句是由函數(shù)調用加分號組成的語句。(2)clrscr()是清屏函數(shù),其作用是將屏幕上位于此語句前的所有輸出清空,讓我們更好地觀察本程序本次的運行結果。(注意,C語言的語句應放到變量定義的后面,否則編譯會出現(xiàn)“Expressionsyntaxinfunctionmain”表達式語法錯誤的提示。)(3)程序中常用的縮進格式有兩種,前面章節(jié)中使用的是花括號獨占一行縮進對齊的格式,本章使用的是另一種格式,同學們可根據(jù)自己的喜好選擇其中一種。實例分析:實例3_2
空語句和塊語句舉例。#include<stdio.h>main(){intx=1;;/*(5)行是一個空語句*/printf(“xinmain()=%d\n”,x); /*(6)行輸出x的值*/{/*(7)行定義代碼塊*/intx=300;/*(8)行在塊內定義變量x,與塊外變量x同名*/printf(“xinblock=%d\n”,x); /*(9)行輸出塊內x的值*/}/*(10)行代碼塊結束*/}實例3_2空語句和塊語句舉例。程序運行結果如下: xinmain()=1↙ xinblock=300↙程序運行結果如下:實例分析:(1)在第5行中定義了一個空語句,所謂空語句就是什么操作都沒有,或稱空操作,形式上僅由一個分號組成。雖然空語句沒有實際意義,但在語法上卻是合法的。(2)在第6行中輸出的是在塊外定義的主函數(shù)中的局部變量x的值,即1。(3)第7行是代碼塊的開始。實例分析:(4)第8行在代碼塊中定義了一個和與塊外變量x同名的變量。它們在內存中是占據(jù)不同的存儲單元,是兩個變量。(5)在第9行輸出的是塊內的變量x,其值是300。塊內變量x將塊外變量x屏幕了,即在塊內范圍,起作用的是塊內變量。(6)塊語句是由一對花括號“{}”括起來的一組語句,也稱為代碼塊,其在語法上就相當于一個語句。(4)第8行在代碼塊中定義了一個和與塊外變量x同名的變量。它3.2格式輸入函數(shù)與格式輸出函數(shù)
學習目標:
(1)掌握格式輸入函數(shù)的使用。
(2)掌握格式輸出函數(shù)的使用。3.2格式輸入函數(shù)與格式輸出函數(shù)
學習目標:
(1)掌握所謂輸入輸出是以計算機為主體的。操作系統(tǒng)分別將鍵盤和顯示器定義為標準輸入、輸出設備。C語言的輸入輸出操作是由函數(shù)來實現(xiàn)的,這些函數(shù)放在標準I/O函數(shù)庫中。標準I/O函數(shù)庫中的一些公用信息是在頭文件<stdio.h>中預先定義好的。所謂輸入輸出是以計算機為主體的。操作系統(tǒng)分別將鍵盤和顯示器定1、格式輸入函數(shù)——scanf函數(shù)功能:等待用戶從鍵盤上輸入數(shù)據(jù),然后按格式控制的要求對數(shù)據(jù)進行轉換后送到相應的變量地址中去。格式:scanf(“格式控制”,地址表列)說明:①、由“格式控制”部分控制輸入的數(shù)據(jù)按確定的格式送到相應變量的地址單元中;②、“地址表列”由若干個地址組成,可以是變量的地址或字符串的首地址。scanf("%d%d%d",&a,&b,&c);√scanf("%d%d%d",a,b,c);×1、格式輸入函數(shù)——scanf函數(shù)功能:等待用戶從鍵盤上輸入格式字符說明d用來輸入帶符號的十進制整數(shù)o用來輸入無符號的八進制整數(shù)x用來輸入無符號的十六進制整數(shù)c用來輸入單個字符s用來輸入字符串,將字符串送到一個字符數(shù)組中,在輸入時以非空白字符開始,以第一個空白字符結束。字符串以串結束標志'\0'作為最后一個字符。f用來輸入實數(shù),可以用小數(shù)形式或指數(shù)形式輸入e與f作用相同,e與f可以相互替換格式控制符:以%開始,以一個格式字符結束。格式字符說明d用來輸入帶符號的十進制整數(shù)o用來輸入無符實例3_3從鍵盤上輸入三個整數(shù),求它們的和及平均值。#include<stdio.h>main(){ inta,b,c,sum; /*定義四個整型變量*/ scanf(“%d,%d,%d”,&a,&b,&c); /*調用scanf函數(shù)從鍵盤輸入三個整數(shù),并依次賦值*//*給變量a、b、c*/ sum=a+b+c; /*求a、b、c三個數(shù)相加后的值賦給變量sum*/ printf(“sum=%d\n”,sum); }實例3_3從鍵盤上輸入三個整數(shù),求它們的和及平均值。程序運行情況如下:
10,20,30↙ sum=60↙程序運行情況如下:實例分析:
(1)scanf(“%d,%d,%d”,&a,&b,&c);語句中雙引號引起的部分稱“格式控制”,%d表示用來輸入十進制整數(shù)。本語句表示輸入三個十進制整數(shù),并依次送到相應變量的地址單元中;&表示變量的內存地址。(2)“地址表列”由若干個地址組成,可以是變量的地址或字符串的首地址。如果將scanf語句寫成:scanf(“%d,%d,%d”,a,b,c);則是不對的。雖然程序在編譯時不報錯,但是變量a,b,c不能正確獲得輸入的值。初學者容易犯此錯誤,要注意。實例分析:(3)要注意scanf()中的格式控制部分,三個%d之間是由逗號間隔的,因此,在輸入三個整數(shù)時也要用逗號做間隔。如果將scanf語句改為:scanf(“%d%d%d”,&a,&b,&c);即當格式控制部分不含其它字符的,輸入數(shù)據(jù)時,兩個數(shù)據(jù)之間以一個或多個空格、Tab鍵或回車鍵分隔。(4)格式控制部分出現(xiàn)的普通字符(包括轉義字符形式的字符),務必原樣輸入。例如:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);正確的輸入操作為:a=10,b=20,c=30↙。(3)要注意scanf()中的格式控制部分,三個%d之間是由在%和格式字符之間可插入附加的格式說明符。字符說明l用于輸入長整型數(shù)據(jù)(可用%ld、%lo、%lx)以及double型數(shù)據(jù)(用%lf或%le)h用于輸入短整型數(shù)據(jù)(可用%hd、%ho、%hx)m(正整數(shù))域寬,指定輸入數(shù)據(jù)所占寬度(列數(shù))*表示本輸入項在讀入后不賦給相應的變量在%和格式字符之間可插入附加的格式說明符。字符說明l注意:如果在“格式控制”的字符串中除格式控制符之外還有其它字符,則在輸入時應輸入相同的字符。
scanf("%d,%d",&a,&b)12,34
scanf("%d%d",&a,&b)1234Eg217.c
scanf("%d:%d:%d",&a,&b,&c)12:34:56注意:如果在“格式控制”的字符串中除格式控制符之外還有其它字2.格式輸出函數(shù)——printf函數(shù)printf函數(shù)的作用:向計算機系統(tǒng)默認的輸出設備(一般指終端或顯示器)輸出一個或多個任意類型的數(shù)據(jù)。
printf函數(shù)的一般格式如下:格式:printf(“格式字符串”
[,輸出項表])2.格式輸出函數(shù)——printf函數(shù)printf函數(shù)的作用實例3_5
已知圓半徑radius=1.5,求圓周長和圓面積。main(){floatradius,length,area,pi=3.14159;
radius=1.5;
length=2*pi*radius; /*求圓周長*/
area=pi*radius*radius; /*求圓面積*/
printf(“radius=%f\n”,radius); /*輸出圓半徑*/
printf(“l(fā)ength=%7.2f,area=%7.2f\n”,length,area); /*輸出圓周長、面積*/
}實例3_5已知圓半徑radius=1.5,求圓周長和圓面積程序運行結果如下:radius=1.500000length=□□□9.42,area=□□□7.07程序運行結果如下:實例分析:
(1)格式指示符:printf(“l(fā)ength=%7.2f,area=%7.2f\n”,length,area);中的%f是格式指示符。格式指示符的一般形式如下:%[寬度][.精度][類型]。本例中%7.2f中的7表示總位寬,其中2表示保留小數(shù)點后兩位小數(shù),f表示以浮點數(shù)格式輸出。(2)轉義字符:printf()函數(shù)中的'\n'就是轉義字符,輸出時產生一個“換行”操作。
實例分析:(3)普通字符:除格式指示符和轉義字符之外的其它字符。普通字符是原樣輸出的。如printf("radius=%f\n",radius);語句中的“radius=”,“printf("length=%7.2f,area=%7.2f\n",length,area);”語句中的“l(fā)ength=”、“area=”等都是普通字符。(3)普通字符:除格式指示符和轉義字符之外的其它字符。普通字4)輸出表項:輸出項表是可選的。如果要輸出的數(shù)據(jù)不止1個,相鄰2個之間用逗號分開。下面的printf()函數(shù)都是合法的:①printf("Iamastudent.\n"); ②printf("%d",3+2); ③printf("a=%f,b=%5d\n",a,a+3); 必須強調:“格式字符串”中的格式指示符,必須與“輸出項表”中、輸出項的數(shù)據(jù)類型一致,否則會引起輸出錯誤。4)輸出表項:輸出項表是可選的。如果要輸出的數(shù)據(jù)不止1個,相轉義字符含義ASCII值\0表示字符串結束0\n換行,將當前位置移到下一行開頭10\t水平制表(跳到下一個Tab的位置)9\v垂直制表11\b左退一格,將當前位置移到下一行開頭8\r回車,將當前位置移到本行開頭13\f換頁,將當前位置移到下頁開頭12\a響鈴7\'單引號39\"雙引號34\\反斜杠“\”92\ddd1到3位八進制數(shù)代表的字符\xhh1到2位十六進制所代表的字符轉義字符含義ASCII值\0表示字符串結束0\n換行,實例3_6
類型轉換字符d的使用──以帶符號的十進制整數(shù)形式輸出。main(){intnum1=256;longnum2=123456;/*用3種不同格式,輸出int型數(shù)據(jù)num1的值*/printf("num1=%d,num1=%6d,num1=%-6d,num1=%2d\n",num1,num1,num1,num1);/*用3種不同格式,輸出long型數(shù)據(jù)num2的值*/
實例3_6類型轉換字符d的使用──以帶符號的十進制整數(shù)形式printf("num2=%ld,num2=%8ld,num2=%5ld\n",num2,num2,num2);} 程序運行結果如下:num1=256,num1=□□□256,num1=256□□□,num1=256num2=123456,num2=□□123456,num2=123456printf("num2=%ld,num2=%8ld,num動手實踐編寫程序,用printf("%d,%o,%x\n",-1,-1,-1);語句將-1用三種不同的格式字符輸出,看看得到什么輸出,試分析結果。動手實踐實例3_7
類型轉換字符f的使用。main(){floatf=123.4567;doubled1,d2;d1=1111111111111.111111111;d2=2222222222222.222222222;printf("%f,%12f,%-12f,%3f,%12.2f,%.2f\n",f,f,f,f,f,f);printf("d1+d2=%f\n",d1+d2);} 實例3_7類型轉換字符f的使用。程序運行結果如下:123.456703,□□123.456703,123.456703□□,123.456703,□□□□□□123.46,123.46d1+d2=3333333333333.333010 程序運行結果如下:實例分析:(1)本案例程序的輸出結果中,%f格式是按照浮點數(shù)的默認格式輸出,小數(shù)點后保留6位小數(shù)。數(shù)據(jù)123.456787和3333333333333.333010中的87和010都是無意義的,因為float類型的有效數(shù)字一般是7位,double類型的有效數(shù)字一般是16位。(2)%mf,當指定的列寬m大于數(shù)據(jù)總列寬時,在左邊補空格,使得空格數(shù)加數(shù)據(jù)長度達到總列寬m(小數(shù)點占1位);%-mf表示在右邊補足空格。實例分析:(3)%mf,當指定列寬m小于數(shù)據(jù)總列寬時,突破列寬m的限制,按浮點數(shù)的默認格式輸出,即保留6位小數(shù)位。(4)%m.nf,先取n位小數(shù)位,再按總列寬m輸出,規(guī)定同(3)。另,%.2f只規(guī)定精度不規(guī)定總列寬的情況,按指定精度取2位小數(shù)位后原樣輸出。當沒有指定精度n時,總是保留6位小數(shù)位的。(3)%mf,當指定列寬m小于數(shù)據(jù)總列寬時,突破列寬m的限制實例3_8
類型轉換字符c的使用──輸出一個字符。main(){charc='A';inti=65;printf("c=%c,%3c,%d\n",c,c,c);printf("i=%d,%c",i,i);}程序運行結果如下:
c=A,□□A,65i=65,A 實例3_8類型轉換字符c的使用──輸出一個實例分析:(1)在C語言中,整數(shù)可以用字符形式輸出,字符數(shù)據(jù)也可以用整數(shù)形式輸出,即整型與字符型賦值相容。將整數(shù)用字符形式輸出時,系統(tǒng)首先求該數(shù)與256的余數(shù),然后將余數(shù)作為ASCII碼,轉換成相應的字符輸出。(2)%c格式其余輸出控制情況和%d格式類似。實例分析:實例3_9類型轉換字符s──輸出一個字符串。main(){printf(“%3s,%7.2s,%.4s,%-5.3s\n,“CHINA”,“CHINA”,“CHINA”,“CHINA”);}程序運行結果如下:CHINA,□□□□□CH,CHIN,CHI□□實例3_9類型轉換字符s──輸出一個字符串。程序運行結果實例分析:(1)其中第三個輸出項,格式說明為“%.4s”,只指定了n,沒指定m,自動使m=n=4,故占4列,輸出CHIN。(2)系統(tǒng)輸出字符和字符串時,不輸出單引號和雙引號。(3)%s其余輸出控制情況和%d格式類似。實例分析:3.3字符輸入函數(shù)與字符輸出函數(shù)
getchar()和putchar()是一對用于單個字符輸入輸出的標準函數(shù)。使用標準I/O庫函數(shù)時,要用預編譯命令“#include”將“stdio.h”文件包括到用戶源文件中。3.3字符輸入函數(shù)與字符輸出函數(shù)getchar(
1.putchar()函數(shù)功能:在終端的當前位置輸出一個字符格式:putchar(字符變量)或
putchar('輸出字符')1.putchar()函數(shù)功能:在終端的當前位置輸實例3_10putchar函數(shù)的格式和使用方法。#include"stdio.h" /*編譯預處理命令:文件包含*/main(){charch1='W',ch2='I',ch3='N';/*定義三個字符變量,并賦初值*/putchar(ch1);putchar(ch2);putchar(ch3); putchar('\n');/*換行*/putchar(ch1);putchar('\n'); putchar(ch2);putchar('\n'); putchar('N');putchar('\n');} 實例3_10putchar函數(shù)的格式和使用方法。程序運行結果如下:WINWIN程序運行結果如下:實例分析:(1)putchar(ch)參數(shù)ch可以是一個字符變量或常量,也可以是一個轉義字符。當是轉義字符時,(2)putchar函數(shù)只能用于單個字符的輸出,且一次只能輸出一個字符。(3)在程序中使用putchar函數(shù),要記?。涸诔绦虻拈_頭要加上編譯預處理命令#include"stdio.h",表示要使用的函數(shù),包含在標準輸入輸出(stdio)頭文件(.h)中。實例分析:2.getchar()函數(shù)功能:從終端輸入一個字符說明:無參數(shù);程序暫停運行,等待從鍵盤上輸入一個字符,再回車;通過賦值語句將函數(shù)的返回值送到某一字符型變量中。2.getchar()函數(shù)功能:從終端輸入一個字符說明實例3_11getchar函數(shù)的格式和使用方法。#include<stdio.h>main(){charch;ch=getchar();/*等待用戶從鍵盤上輸入一個字符,并將該字符賦值給字符變量ch*/putchar(ch);}
實例3_11getchar函數(shù)的格式和使用方法。實例分析:(1)ch=getchar();用戶輸入時,只有在按“回車”鍵之后輸入才生效。(2)getchar函數(shù)只接收一個字符,而不是一串字符。(3)和putchar函數(shù)一樣,使用getchar函數(shù)需要加上編譯預處理命令:#include<stdio.h>。實例分析:3.字符串輸出puts函數(shù)
gets()和puts()是兩個專門用于字符串輸入輸出的函數(shù),都可以帶一個字符型數(shù)組名或字符型指針變量作為函數(shù)參數(shù)。3.字符串輸出puts函數(shù)gets()和puts(puts()函數(shù)作用:將一個字符串輸出到終端格式:puts(字符數(shù)組名)實例3_12puts函數(shù)的格式和使用方法。#include<stdio.h>main(){charstr[20]="ChinaBeijing";/*定義一個字符數(shù)組str,并初始化*/puts(str);}puts()函數(shù)作用:將一個字符串輸出到終端格式:puts輸出結果為:
ChinaBeijing實例分析:(1)使用puts函數(shù)需要加上編譯預處理命令:#include<stdio.h>。(2)字符數(shù)組我們還沒學到,本例中,我們只需理解語句charstr[20]="ChinaBeijing";的作用是定義一個字符數(shù)組str,數(shù)組的內容是"ChinaBeijing"即可。輸出結果為:實例分析:4、字符串輸入gets函數(shù)作用:從終端輸入一個字符串到字符數(shù)組格式:gets(字符數(shù)組名)#include<stdio.h>main(){charstr[20];gets(str);puts(str);}Eg219.c4、字符串輸入gets函數(shù)作用:從終端輸入一個字符串到字符數(shù)注意:scanf()函數(shù)在接收字符串時,以空格或回車符作為分隔符;而gets()函數(shù)僅以回車符作為結束符。所以輸入帶空格的字符串時候必須用gets()函數(shù)。注意:scanf()函數(shù)在接收字符串時,以空格或回車符作為實例3_13gets函數(shù)的格式和使用方法。#include<stdio.h>main(){charstr[20];/*定義一個字符數(shù)組str*/gets(str);/*從鍵盤輸入一串字符,并賦給數(shù)組str*/puts(str);/*輸出數(shù)組str的內容*/}實例3_13gets函數(shù)的格式和使用方法。程序運行情況如下:
IamaCprogrammer.↙IamaCprogrammer.程序運行情況如下:動手演練基礎練習一選擇題1、C語言程序的三種基本結構是()。A)函數(shù)體、語句、聲明。B)順序、選擇、分支。C)順序、選擇、循環(huán)。D)順序、選擇、重復。動手演練2、以下說法不正確的是()。A)C語言的每一個語句都是以分號結束的。B)塊語句在語法上相當于一個語句。C)用scanf函數(shù)和gets函數(shù)來獲取一個字符串,其效果是相同的。D)在使用scanf和printf
函數(shù)時,在源程序中可以不添加命令行#include<stdio.h>。2、以下說法不正確的是()。3、以下能用于輸出字符串的一組函數(shù)是()。A)gets()和printf()B)puts()和printf()C)gets()和puts()D)puts()和putchar()二程序分析1、下面程序的運行結果是:
main(){inta=3,b=5;a=30;b=50;printf(“a=%d,b=%d\n”,a,b);}3、以下能用于輸出字符串的一組函數(shù)是()。二程序分2、寫出程序的運行結果:
#include<stdio.h>main(){intx=7;{intx=360;printf(“x=%d\n”,x); }printf(“x=%d\n”,x); }2、寫出程序的運行結果:3、程序的運行結果是:
main(){floatf=88.33446;printf("%f,%12f,%-12f,%5f,%12.3f,%.2f\n",f,f,f,f,f,f);} 4、以下程序執(zhí)行結果是:
main(){printf(“%s,%8s,%.3s,%-8.3s\n,“Google”,“Google”,“Google”,“Google”);}3、程序的運行結果是:C語言程序設計教學做一體化C語言程序設計教學做一體化
主編滕泓虬
中國水利水電出版社C語言程序設計教學做一體化C語言程序設計模塊四選擇結構程序設計模塊四選擇結構程序設計C語言程序設計教學做一體化本模塊介紹C語言的關系運算、邏輯運算以及用作選擇的if語句和switch語句。學習本模塊應能掌握關系運算和邏輯運算的操作,并能夠用if和switch語句編制具有選擇結構的程序。選擇結構是結構程序設計所采用的三種基本控制結構之一,另外兩種是順序結構和循環(huán)結構。在編程序時,有時并不能保證程序一定執(zhí)行某些指令,而是要根據(jù)一定的外部條件來判斷哪些指令要執(zhí)行。在計算機程序中可以根據(jù)不同的條件執(zhí)行不同的代碼段,這就是選擇結構。C語言程序設計教學做一體化本模塊介紹C語言的關系運算、邏輯運C語言程序設計教學做一體化4.1關系運算符與關系表達式學習目標1、掌握C語言中的關系運算符2、掌握關系運算符的優(yōu)先級3、掌握關系表達式的使用4、理解“==”與“=”的區(qū)別C語言程序設計教學做一體化4.1關系運算符與關系表達式學習C語言程序設計教學做一體化知識鏈接1、在C語言中有6個二元的關系運算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、!=(不等于)。2、運算規(guī)則:兩個操作數(shù)進行比較,若條件滿足,則結果值為1;否則為0。3、結合方向:從左至右。4、優(yōu)先級(從高到低排列):(1)算術運算符(2)<,<=,>,>=(3)==和!=(4)賦值運算符。C語言程序設計教學做一體化知識鏈接1、在C語言中有6個二元的C語言程序設計教學做一體化案例4-1區(qū)分關系運算符“==”和賦值運算符“=”#include<stdio.h>voidmain(){intx,y,z1,z2;x=2;y=2;z1=(x=y);/*先把y的值賦給x,然后再把x的值賦給z1*/z2=(x==y);/*先判斷x與y的值是否相等,再把結果賦給z2*/printf("z1=%d,z2=%d\n",z1,z2);}運行這個程序,結果是:z1=2,z2=1↙C語言程序設計教學做一體化案例4-1區(qū)分關系運算符“==C語言程序設計教學做一體化4.1.2關系表達式多種運算符在一個表達式中混合使用。案例程序#include"stdio.h"voidmain(){ intx,y,z,i,j;
clrscr(); /*函數(shù)clrscr()功能是清屏*/ x=4,y=3,z=2; i=y>z; /*i的值為1*/ j=x>y>z; /*x>y的值為1,1>z的值為0*/C語言程序設計教學做一體化4.1.2關系表達式多種運算符在C語言程序設計教學做一體化printf("%d,%d,",i,j);printf("%d,",z>y==3); /*先算z>y的值*/printf("%d,",y+z<x);printf("%d",y+2>=z+1);}運行結果是:1,0,0,0,1↙隨堂練習已知a=1,b=2,c=3,d=4,m=1,n=1;求表達式(m=a<b)&&(n=c>d)的值。 C語言程序設計教學做一體化printf("%d,%d,",iC語言程序設計教學做一體化知識鏈接1、由關系運算符與操作數(shù)構成的表達式就是關系表達式。關系表達式的值為“真”或“假”,C語言用整數(shù)1表示“真”,整數(shù)0表示“假”。2、關系表達式的一般形式為:表達式關系運算符表達式;,其中表達式也可以是關系表達式,所以可以出現(xiàn)嵌套的情況。例如:a>(b>c),a!=(c==d)等也是合法的關系表達式。3、注意:由于實型數(shù)據(jù)有誤差,對于結果為實數(shù)的兩個運算量x、y,應避免使用期“x==y”來判斷相等,否則會得出錯誤的結論。例如:如下程序段運行后的輸出結果是0,而不是1。floatx=99.9;printf(“%d\n”,x+0.1==100.0);正確的處理方法是判斷兩個運算量的差值的絕對值是否小于很小的數(shù),如判斷fabs(x-y)<10e-6是否成立。C語言程序設計教學做一體化知識鏈接1、由關系運算符與操作數(shù)構C語言程序設計教學做一體化4.2邏輯運算符與邏輯表達式學習目標:1、了解C語言中的各種邏輯運算符2、掌握邏輯表達式與關系表達式的混合使用3、掌握邏輯表達式的求值優(yōu)化C語言程序設計教學做一體化4.2邏輯運算符與邏輯表達式學習目C語言程序設計教學做一體化案例4-3邏輯表達式的求值優(yōu)化#include<stdio.h>main(){ inta=10,b=30; printf("%d",(a==0)&&(a=5)); /*a==0的值為0,不再處理a=5*/ printf("a=%d\n",a); /*a的值還是原來的10*/ printf("%d",(b>=20)||(b=15)); /*b>=20的值為1,不再處理b=15*/ printf("b=%d\n",b); /*b的值還是原來的30*/}運行結果為:0 a=10↙1 b=30↙隨堂練習計算2+4==6*(2!=1)的結果,并編程驗證是否正確。C語言程序設計教學做一體化案例4-3邏輯表達式的求值優(yōu)化C語言程序設計教學做一體化*4.3if條件語句學習目標:1、掌握if語句的三種形式2、理解if語句的三種形式的流程圖3、掌握兩個數(shù)進行交換和排序的方法4、掌握判斷某數(shù)是否是另一個數(shù)的倍數(shù)的方法5、掌握處理問題時用數(shù)字對應星期數(shù)的方法6、理解用ASCII碼值對輸入字符進行分類的方法7、掌握if…else…的嵌套及else與if的配對關系8、掌握百分制與ABCD等級記分制實現(xiàn)轉換的方法C語言程序設計教學做一體化*4.3if條件語句學習目標:C語言程序設計教學做一體化4.3.1If語句的簡單形式用if語句可以構成分支結構。它根據(jù)給定的條件進行判斷,以決定執(zhí)行某個分支程序段。if語句有三種不同的形式,還可以進行嵌套。If語句的簡單形式格式為:if(表達式)語句;其語義是:如果表達式的值為真,則執(zhí)行其后的語句,否則不執(zhí)行該語句。C語言程序設計教學做一體化4.3.1If語句的簡單形式用C語言程序設計教學做一體化4.3.1If語句的簡單形式從鍵盤輸入兩個數(shù)x、y,要求從小到大排序并輸出。案例程序#include<stdio.h>main(){ floatx,y,t; /*臨時變量t幫助實現(xiàn)兩數(shù)交換*/ scanf(“%f,%f”,&x,&y); if(x>y) {t=x;x=y;y=t;} /*兩個數(shù)進行交換*/ printf("%6.2f,%6.2f\n",x,y);} 分別輸入兩組數(shù)據(jù):5,3和2,4進行測試,運行結果如圖4-1所示:C語言程序設計教學做一體化4.3.1If語句的簡單形式從C語言程序設計教學做一體化案例4-5報數(shù)游戲。#include<stdio.h>main(){ intnumber=0; printf("Pleaseinputanumber:"); scanf("%d",&number); if(number%3!=0)/*如果輸入的數(shù)不能被3整除*/ printf("%disanumberednumber.\n",number); /*輸出此數(shù)*/}分別輸入3和4進行測試,C語言程序設計教學做一體化案例4-5報數(shù)游戲。#incluC語言程序設計教學做一體化4.3.2If語句的基本形式C語言中的if語句的基本形式是:if(表達式)語句1;
else語句2;其語義是:如果表達式的值為真,則執(zhí)行語句1,否則執(zhí)行語句2。C語言程序設計教學做一體化4.3.2If語句的基本形式CC語言程序設計教學做一體化4.3.2If語句的基本形式#include<stdio.h>main(){ intweek=0; floatspeaker=300,keyboard=80; printf("Pleaseinputweeknumber:"); scanf("%d",&week); /*輸入星期數(shù)*/ if(week==6||week==7)/*如果是星期六或星期日*/ { speaker=speaker*0.85; /*求音箱的實際價格*/ keyboard=keyboard*0.9; /*求鍵盤的實際價格*/ } else speaker=speaker*0.9; /*只求音箱的實際價格*/ printf("Thepriceofspeakeris%f,keyboardis%f.\n",speaker,keyboard);}分別輸入6和2進行測試,C語言程序設計教學做一體化4.3.2If語句的基本形式#C語言程序設計教學做一體化4.3.3if-else-if階梯形式當有多個分支選擇時,可采用if-else-if語句,其一般形式為:if(表達式1)語句1;elseif(表達式2)語句2;elseif(表達式3)語句3;…elseif(表達式m)語句m;else語句n;其語義是:依次判斷表達式的值,當出現(xiàn)某個值為真時,則執(zhí)行其對應的語句。然后跳到整個if語句之外繼續(xù)執(zhí)行程序。如果所有的表達式均為假,則執(zhí)行語句n。然后繼續(xù)執(zhí)行后續(xù)程序。C語言程序設計教學做一體化4.3.3if-else-if階C語言程序設計教學做一體化案例4-7從鍵盤上輸入一個字符,判斷此字符的類別。
#include"stdio.h"main(){charc;printf("inputacharacter:");c=getchar();if(c<32) /*控制字符的ASCII碼值0-31*/ printf("Thisisacontrolcharacter\n");elseif(c>='0'&&c<='9') /*判斷是否為數(shù)字0-9*/ printf("Thisisadigit\n"); elseif(c>='A'&&c<='Z') /*判斷是否為大寫字母*/ printf("Thisisacapitalletter\n"); elseif(c>='a'&&c<='z') /*判斷是否為小寫字母*/ printf("Thisisasmallletter\n"); else printf("Thisisanothercharacter\n");}分別輸入7、r、Q和Shift鍵進行測試,C語言程序設計教學做一體化案例4-7從鍵盤上輸入一個字符C語言程序設計教學做一體化4.3.4if-else的嵌套形式當if語句中的執(zhí)行語句又是if語句時,則構成了if語句嵌套的情形。在嵌套內的if語句可能又是if-else型的,這將會出現(xiàn)多個if和多個else重疊的情況,這時要特別注意if和else的配對問題。例如:
if(表達式1)if(表達式2)
語句1;
else語句2;其中的else究竟是與哪一個if配對呢?為了避免這種二義性,C語言規(guī)定:else總是與它前面最近的未配對的if配對。并且在書寫時,應通過格式表現(xiàn)出嵌套層次,這樣看比較直觀,有利于減少因if與else不匹配,或是“{}”不成對而造成的錯誤,同時也提高了程序的可讀性,便于自己和他人閱讀。C語言程序設計教學做一體化4.3.4if-else的嵌套C語言程序設計教學做一體化根據(jù)輸入的百分制成績按A、B、C、D四個等級進行成績輸出。#include"stdio.h"voidmain(){intscore;chargrade;printf("pleaseinputscore:");scanf("%d",&score);if(score>=0&&score<=100){ /*條件語句中包含其它條件語句*/ if(score>=85) /*判斷條件1:85~100*/grade='A'; elseif(score>=70) /*判斷條件2:70~84*/grade='B'; elseif(score>=60) /*判斷條件3:60~69*/grade='C'; else /*判斷條件4:0~59*/grade='D';printf("gradeis%c\n",grade); /*grade是字符型數(shù)據(jù)用%c*/ }else printf("dataerror!\n");}分別輸入-10、38、65、79和85進行測試,C語言程序設計教學做一體化根據(jù)輸入的百分制成績按A、B、C、C語言程序設計教學做一體化4.4switch語句學習目標:1、掌握switch語句的一般用法2、掌握switch語句后的break語句作用3、掌握簡單運算器的實現(xiàn)方法4、掌握鍵盤輸入數(shù)字對應輸出星期數(shù)英語單詞的方法C語言程序設計教學做一體化4.4switch語句學習目標C語言程序設計教學做一體化4.4switch語句C語言還提供了另一種用于多分支選擇的switch語句,其一般形式為:
switch(表達式){case常量表達式1:語句1;break;case常量表達式2:語句2;break;…case常量表達式n:語句n;break;default:語句n+1;}其語義是:計算表達式的值。并逐個與其后的常量表達式值相比較,當表達式的值與某個常量表達式的值相等時,即執(zhí)行其后的語句,如果此語句后有break語句,則跳出switch語句;如果沒有break語句,則不再進行判斷,繼續(xù)執(zhí)行下一個case后的語句。如表達式的值與所有case后的常量表達式均不相同時,則執(zhí)行default后的語句。C語言程序設計教學做一體化4.4switch語句C語言還C語言程序設計教學做一體化4.4switch語句注意:(1)關鍵字switch后面的表達式的值是整型或字符型。(2)關鍵字case后面的常量表達式的值也只能是整型或字符型,并且各case分支的常量表達式的值應各不相同。(3)在case后,允許有多個語句,可以不用{}括起來;同時也可以多個case表達式共用同一個語句。(4)break語句用于跳出整個switch語句。如果沒有break語句,則執(zhí)行完一個case分支將執(zhí)行下一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度年福建省高校教師資格證之高等教育心理學通關試題庫(有答案)
- 2024年熟食制品項目資金籌措計劃書代可行性研究報告
- 2024年造紙完成工段智能裝備項目資金申請報告代可行性研究報告
- 2024常年采購協(xié)議條款與條件示例
- 2024年度建材銷售協(xié)議格式
- 2024年專業(yè)門窗安裝服務協(xié)議模板
- 2024公司B棟生產車間租賃協(xié)議
- 員工基本行為準則
- 銀行外匯便利化政策落實情況總結
- 2024年規(guī)范二手公寓房產交易協(xié)議書
- 影響世界的工業(yè)革命 2023屆高三統(tǒng)編版歷史一輪復習
- 職業(yè)學院教師教學創(chuàng)新團隊建設管理辦法
- 微型計算機原理與應用習題集及答案
- 河北省唐山市藥品零售藥店企業(yè)藥房名單目錄
- 喵喵老師制作 電子百拼的黑白電路圖
- DB34-T 4010-2021 水利工程外觀質量評定規(guī)程-高清現(xiàn)行
- 《整改報告》模板
- 送達地址確認書(樣本)
- 江蘇省歷屆中學生與社會作文大賽決賽試題及獲獎范文(完整版)資料
- 六年級數(shù)學上冊教案-分數(shù)乘法整理與練習 蘇教版
- 《民航服務禮儀》項目五 地面服務禮儀
評論
0/150
提交評論