C語言程序設計課件_第1頁
C語言程序設計課件_第2頁
C語言程序設計課件_第3頁
C語言程序設計課件_第4頁
C語言程序設計課件_第5頁
已閱讀5頁,還剩216頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言程序設計課件C語言程序設計課件全文共221頁,當前為第1頁。計算機科學系第1章C語言概述1.1C語言簡介1.1.1什么是計算機語言程序設計語言(ProgrammingLanguage)是用于編寫計算機程序的語言。

機器語言匯編語言高級語言1.1.2C語言的發(fā)展歷史C語言程序設計課件全文共221頁,當前為第2頁。計算機科學系第1章C語言概述1.1.3C語言的特點1.C語言是一種結構化程序設計語言。2.C語言的語句簡練、書寫靈活3.C語言處理能力強4.C語言具有很好的移植性5.C語言是一種高效率的語言C語言程序設計課件全文共221頁,當前為第3頁。C語言程序設計課件全文共221頁,當前為第4頁。計算機科學系第1章C語言概述1.2.2C語言程序的組成C語言程序主要由函數(shù)和變量組成,函數(shù)由語句組成,語句以分號結束,變量用來存貯運算過程中所需要的值以及運算過程中產(chǎn)生的中間值。main函數(shù)是一個特殊的函數(shù),是你程序運行的開始點,這意味著一個程序有且僅有一個main函數(shù)。用花括號括起來的部分是函數(shù)的語句,稱為函數(shù)體。C語言程序設計課件全文共221頁,當前為第5頁。計算機科學系第1章C語言概述1.3C程序的執(zhí)行過程1.3.1從編寫一個C語言程序到執(zhí)行該程序的完整過程1.用文本編輯器編輯C源程序2.編譯源程序3.運行程序

例:example.h

example.c

C語言程序設計課件全文共221頁,當前為第6頁。計算機科學系第1章C語言概述1.3.2計算機是如何執(zhí)行程序的

通過編譯程序把用高級語言編寫的源程序翻譯成目標機器能夠執(zhí)行的機器指令,這些機器指令被存放在一個叫做目標程序的文件中,以二進制文件的形式存在磁盤上。生成的目標程序還不能直接裝入目標機器上,還需要用連接程序?qū)⒛繕顺绦蚝推渌嘘P的模塊進行連接,并進行一些必要的地址變換,生成一個可裝載到目標機器上的可執(zhí)行文件,然后才能執(zhí)行。

C語言程序設計課件全文共221頁,當前為第7頁。計算機科學系第1章C語言概述1.4C程序上機步驟1.4.1C語言上機環(huán)境介紹1.4.2C語言上機步驟(以VC++6.0為例)1.在磁盤上建立一個自己的文件夾。2.建立一個空工程,并用VisualC++6.0的編輯程序編寫有關的文件(頭文件、C源文件等)。3.把C程序源文件添加到工程中。4.編譯、連接、調(diào)試、執(zhí)行。C語言程序設計課件全文共221頁,當前為第8頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式數(shù)據(jù)是程序處理的對象,而計算機中的數(shù)據(jù)包括數(shù)值型數(shù)據(jù)和非數(shù)值型數(shù)據(jù)。數(shù)據(jù)類型是按照數(shù)據(jù)的性質(zhì)、表示形式和占據(jù)存儲空間的大小以及構造特點來劃分的。數(shù)據(jù)類型系統(tǒng)是一種抽象機制,將具有相同性質(zhì)的數(shù)據(jù)抽象成同一種類型的數(shù)據(jù)。運算是對數(shù)據(jù)進行加工的過程,用來表示各種不同運算的符號稱為運算符。參加運算的數(shù)據(jù)稱為運算量(也稱運算對象或操作數(shù))。表達式就是用運算符將運算量連接起來的符合C語言語法規(guī)則的式子。C語言程序設計課件全文共221頁,當前為第9頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.1字符集和標識符2.1.1字符集C語言的字符集包括:大、小寫英文字母:A,B,…,Z,a,b,…,z數(shù)字:0,1,2,…,9運算符:+-*/%><=&|?!^~;括號:(){}[]標點符號:'":;特殊符號:\_$#空白符:空格符、換行符、制表符。C語言程序設計課件全文共221頁,當前為第10頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.1.2標識符標識符是用來標識C程序中的變量、常量(指符號常量)、函數(shù)、標號及用戶定義對象的名稱。標識符的首字符必須是字母或下劃線,后跟字母、數(shù)字或下劃線,其有效長度為1至32個字符。在C語言中,標識符中字母大小寫是有區(qū)別的。C語言中標識符分為系統(tǒng)定義標識符和用戶定義標識符。C語言程序設計課件全文共221頁,當前為第11頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.1.3系統(tǒng)定義標識符1.關鍵字數(shù)據(jù)類型說明符

int,long,short,char,float,double,signed,unsigned,struct,union,enum,void,volatile,const,typedef存儲類別說明符

auto,static,register,extern語句命令字

goto,return,break,continue,if,else,while,do,for,switch,case,default運算符

sizeofC語言程序設計課件全文共221頁,當前為第12頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.1.4系統(tǒng)定義標識符2.預定義標識符標準庫函數(shù)輸入輸出函數(shù):scanf,printf,getchar,putchar,gets,puts

數(shù)學函數(shù):

sqrt,fabs,sin,cos,pow等。編譯預處理命令

define,endif,include,ifdef,ifndef,line等。C語言程序設計課件全文共221頁,當前為第13頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.1.2用戶定義標識符用戶定義標識符不能使用關鍵字和預定義標識符。用戶定義標識符為了標識不同的對象,標識符的前8個字符要有區(qū)別。用戶定義標識符最好按義取名,即根據(jù)它所代表的操作對象的含義取名。避免使用容易混淆的字符,如l與1,o與0,z與2等。大、小寫代表不同的意義。盡量不要與某個庫函數(shù)同名。C語言程序設計課件全文共221頁,當前為第14頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.2常量和變量2.2.1常量在C語言中,常量是指在程序執(zhí)行的過程中其值不能改變的量。常量分為直接常量和符號常量。直接常量不需要類型說明就可以直接使用,其類型是由常量本身隱含決定的。符號常量是為了增加程序的可讀性和易修改性而經(jīng)常使用的另外一種形式的常量。C語言程序設計課件全文共221頁,當前為第15頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.2.1常量1.直接常量數(shù)值常量整形常量實型常量字符常量字符常量是由一對單引號所括起來的一個字符

字符串常量字符串常量是由一對雙引號所括起來的一個字符序列

C語言程序設計課件全文共221頁,當前為第16頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.2.1常量1.直接常量2.符號常量符號常量定義的一般形式為#define符號常量標識符直接常量如:#definePI3.1415926

其中#define是一條預處理命令,稱為宏定義命令,其功能是將符號常量標識符定義為其后的直接常量。一經(jīng)定義,以后做預處理時,凡是碰到該符號常量標識符,都將替換為相對應的直接常量值。

C語言程序設計課件全文共221頁,當前為第17頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.2.2變量變量是指在程序執(zhí)行過程中其值可以改變的量。1.定義變量定義變量的一般形式為:類型標識符變量名1[,變量名2,變量名3,…];C語言程序設計課件全文共221頁,當前為第18頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.2.2變量2.變量賦值變量賦值的一般格式為:變量名=表達式

3.變量初始化變量初始化就是在定義變量時給變量賦以初值。在變量初始化時不允許對多個未定義的同類型變量連續(xù)初始化,例如inta=b=c=5;是不合法的。變量初始化時,必須保證“=”右邊的常量表達式與“=”左邊的變量類型一致。

C語言程序設計課件全文共221頁,當前為第19頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.3數(shù)據(jù)類型數(shù)據(jù)類型是一組值的集合和定義在這個值集上的一組操作的總稱。

C語言規(guī)定,C程序中使用的每一個數(shù)據(jù)都屬于唯一的一種數(shù)據(jù)類型,沒有無類型的數(shù)據(jù),一個數(shù)據(jù)也不能同時屬于多種數(shù)據(jù)類型。

C語言中的數(shù)據(jù)類型分為4類:基本類型、構造類型、指針類型和空類型。其中基本類型又包括:整型、實型、字符型和枚舉類型。C語言程序設計課件全文共221頁,當前為第20頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式C語言程序設計課件全文共221頁,當前為第21頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.3數(shù)據(jù)類型C語言的基本數(shù)據(jù)類型有三種:整型、實型和字符型。在C語言中有4種類型修飾符,它們是:signed(有符號)unsigned(無符號)long(長型)short(短型)它們可以與int或char結合使用,long也可與double結合使用。

C語言程序設計課件全文共221頁,當前為第22頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.3數(shù)據(jù)類型2.3.1整型數(shù)據(jù)在C語言中,整型數(shù)據(jù)取值范圍是數(shù)學中整數(shù)集中的一個有限子集。對于不同的計算機系統(tǒng),這個有限子集是不同的,它與計算機分配給整數(shù)所占的存儲位數(shù)有關。在C語言中,整型數(shù)據(jù)根據(jù)其所占的存儲位數(shù)分為普通整型(int)、短整型(short)和長整型(long)三種類型,根據(jù)其有無符號又分為無符號整型(unsigned)和有符號整型,而無符號整型(unsigned)的整數(shù)都是正的。C語言程序設計課件全文共221頁,當前為第23頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.3.1整型數(shù)據(jù)1.整型變量

[類型修飾符]int變量名1[,變量名2,…,變量名n];

2.整型常量 在C語言中,整形常量的表示有三種:十進制表示、八進制表示和十六進制表示。 十進制表示不能以數(shù)字0開始;八進制表示以數(shù)字0開始;十六進制表示以0x開始。

C語言程序設計課件全文共221頁,當前為第24頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.3.2實型數(shù)據(jù) 在C語言中,實型數(shù)據(jù)(也稱作浮點型數(shù)據(jù))分為單精度型(float)、雙精度型(double)和長雙精度型(longdouble),它們的區(qū)別在于所占存儲位數(shù)不同。

C語言程序設計課件全文共221頁,當前為第25頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.3.2實型數(shù)據(jù)1.實型變量在C語言中,定義實型變量的一般格式為:float變量名1[,變量名2,…,變量名n];double變量名1[,變量名2,…,變量名n];longdoublet變量名1[,變量名2,…,變量名n];2.實型常量在C語言中,實型常量的表示有兩種形式:小數(shù)表示法和科學計數(shù)表示法。

C語言程序設計課件全文共221頁,當前為第26頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.3.3字符型數(shù)據(jù)在C語言中,一個字符型數(shù)據(jù)的值只能是單個字符,在內(nèi)存中占一個字節(jié)(8位),用來存儲該字符對應的ASCII碼值(無符號整數(shù))。由于字符型數(shù)據(jù)在內(nèi)存中是以ASCII碼值(無符號整數(shù))的形式存放的,所以通常情況下,字符型數(shù)據(jù)和整型數(shù)據(jù)是可以相互通用的,二者的區(qū)別僅在于:字符型數(shù)據(jù)占一個字節(jié)(8位),整型數(shù)據(jù)占兩個字節(jié)(16位)。C語言程序設計課件全文共221頁,當前為第27頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.3.3字符型數(shù)據(jù)1.字符型變量char變量名1[,變量名2,…,變量名n];2.字符型常量在C語言中,字符型常量是將單個字符用單引號括起來表示的。對于非打印字符和一些特殊字符,如退格、換行、反斜杠、單引號等,表示方法是使用轉(zhuǎn)義字符。

C語言程序設計課件全文共221頁,當前為第28頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.4運算符與表達式 運算是對數(shù)據(jù)進行加工的過程,用來表示各種不同運算的符號稱為運算符。參加運算的數(shù)據(jù)稱為運算量(也稱運算對象或操作數(shù))。用運算符將運算量連接起來的符合C語言語法規(guī)則的式子稱為運算表達式,簡稱表達式。C語言程序設計課件全文共221頁,當前為第29頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.4運算符與表達式2.4.1運算符與表達式概述1.運算符

C語言提供了豐富的運算符,其種類如下:C語言程序設計課件全文共221頁,當前為第30頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式算術運算符:+、-、*、/、%、++、--、+、-關系運算符:>、>=、<、<=、==、!=邏輯運算符:&&、||、!賦值運算符:=及其擴展運算符條件運算符:?:逗號運算符:,位運算符:&、|、^、~、<<、>>指針運算符:*、&長度運算符:sizeof強制類型轉(zhuǎn)換:類型名分量運算符:.、->下標運算符:[]其它運算符:()C語言程序設計課件全文共221頁,當前為第31頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式運算符的優(yōu)先級是指當一個表達式中如果有多個運算符時,表達式中各運算符的運算是有先后次序的,這種運算的先后次序稱為相應運算符的優(yōu)先級。運算符的結合性是指當一個運算量兩側的運算符的優(yōu)先級相同時,運算進行的結合方向。如果按“從左向右”的順序運算,稱為左結合性;如果按照“從右向左”的順序運算,稱為右結合性。C語言程序設計課件全文共221頁,當前為第32頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.4.1運算符與表達式概述2.表達式算術表達式關系表達式邏輯表達式賦值表達式條件表達式逗號表達式位表達式其它表達式C語言程序設計課件全文共221頁,當前為第33頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.4.2算術運算符與算術表達式1.算術運算符基本算術運算符 基本算術運算符有5個,它們分別是:+(加)、-(減)、*(乘)、/(除)、%(模除)。它們都是雙目運算符。自增、自減運算符 自增運算符是++,自減運算符是--,它們都是單目運算符正、負運算符 正運算符是+,負運算符是-,它們都是單目運算符C語言程序設計課件全文共221頁,當前為第34頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.4.2算術運算符與算術表達式2.算術表達式 用算術運算符、圓括號將運算量(常量、變量和函數(shù))連接起來的符合C語言語法規(guī)則的式子稱為算術表達式。

C語言程序設計課件全文共221頁,當前為第35頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式表達式中的乘號不能省略C語言表達式只能使用系統(tǒng)允許的標識符C語言表達式中的內(nèi)容必須書寫在一行,不允許有分子分母形式,必要時要使用圓括號保證運算的正確順序C語言表達式不允許使用方括號和花括號,只能使用圓括號在書寫包含多種運算符的表達式時,應注意各個運算符的優(yōu)先級,要確保表達式中運算符能以正確的順序執(zhí)行,如果對復雜表達式中運算符的計算順序沒有把握,可以使用圓括號強制使計算順序按照設計要求進行C語言程序設計課件全文共221頁,當前為第36頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.4.2算術運算符與算術表達式3.算術運算符的優(yōu)先級和結合性 優(yōu)先級舉例:

-a-b*c+a/c運算順序為:取負、乘、除、減、加。 結合性舉例:

-x++-和++優(yōu)先級相同,結合性為從右向左,所以x先與++結合,再與-結合,相當于-(x++)。

C語言程序設計課件全文共221頁,當前為第37頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.4.3賦值運算符與賦值表達式1.賦值運算符 變量名=表達式2.賦值表達式 用賦值運算符將運算量(常量、變量和函數(shù))連接起來的符合C語言語法規(guī)則的式子稱為賦值表達式。3.復合賦值運算符 為了簡化程序并提高編譯效率,C語言允許在賦值運算符“=”之前加上一些其他運算符,以構成復合賦值運算符。C語言程序設計課件全文共221頁,當前為第38頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.4.4關系運算符與關系表達式1.關系運算符 關系運算就是比較兩個數(shù)值的大小。2.關系表達式 用關系運算符、圓括號將運算量(常量、變量和函數(shù))連接起來的符合C語言語法規(guī)則的式子稱為關系表達式。3.關系運算符的優(yōu)先級和結合性C語言程序設計課件全文共221頁,當前為第39頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.4.5邏輯運算符與邏輯表達式1.邏輯運算符 邏輯運算符有3個,它們分別是:&&(與)、||(或)、!(非)。其中&&和||是雙目運算符,!是單目運算符。2.邏輯表達式 用邏輯運算符將運算量(常量、變量和函數(shù))連接起來的符合C語言語法規(guī)則的式子稱為邏輯表達式。3.邏輯運算符的優(yōu)先級和結合性C語言程序設計課件全文共221頁,當前為第40頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.4.6條件運算符與條件表達式條件運算符由“?”和“:”組成,是C語言唯一提供的一個三目運算符,為從右向左。表達式1?表達式2:表達式3條件表達式的計算過程為:先計算表達式1的值,如果表達式1的值為非0,則計算表達式2的值,并將表達式2的值作為整個條件表達式的值;否則,計算表達式3的值,并將表達式3的值作為整個條件表達式的值C語言程序設計課件全文共221頁,當前為第41頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.4.7逗號運算符與逗號表達式逗號運算符是:,,用于把兩個表達式連接起來組合成一個表達式,也即逗號表達式。它是一個雙目運算符,優(yōu)先級是C語言運算符中最低的,結合性為從左向右。表達式1,表達式2逗號表達式的計算過程是為:先計算表達式1的值,再計算表達式2的值,最后整個表達式的值為表達式2的值。C語言程序設計課件全文共221頁,當前為第42頁。計算機科學系第2章數(shù)據(jù)類型、運算符與表達式2.5數(shù)據(jù)類型轉(zhuǎn)換2.5.1數(shù)據(jù)類型的自動轉(zhuǎn)換 在一個表達式(特別是算術表達式)中出現(xiàn)各種數(shù)據(jù)類型時,C語言會自動將不同類型的數(shù)據(jù)轉(zhuǎn)換成同一類型,然后再進行計算。2.5.2數(shù)據(jù)類型的強制轉(zhuǎn)換 在C語言中,可以在任何表達式中使用一個叫做類型轉(zhuǎn)換的形式來對數(shù)據(jù)類型進行強制轉(zhuǎn)換。

(類型名)表達式C語言程序設計課件全文共221頁,當前為第43頁。計算機科學系第3章順序結構程序設計順序結構是結構化程序設計的3種基本結構之一,是最簡單、最常見的一種程序結構。在順序結構中,程序的執(zhí)行是按照語句出現(xiàn)的先后順序進行的,并且每條語句都會執(zhí)行到。順序結構程序通常有3部分組成:數(shù)據(jù)的輸入、數(shù)據(jù)的處理、數(shù)據(jù)的輸出。C語言程序設計課件全文共221頁,當前為第44頁。計算機科學系第3章順序結構程序設計3.1C語言語句概述 在C語言程序中,無論是數(shù)據(jù)的描述,還是操作的描述,都是以語句的形式表現(xiàn)出來的,程序的功能也是靠語句的執(zhí)行來實現(xiàn)的。

C語言語句分為4類:簡單語句、復合語句、流程控制語句和空語句。C語言程序設計課件全文共221頁,當前為第45頁。計算機科學系第3章順序結構程序設計3.1C語言語句概述3.1.1簡單語句 簡單語句包括變量定義語句、外部變量聲明語句、函數(shù)聲明語句、表達式語句。1.變量定義語句

類型名變量名1[,變量名2,變量名3,…];2.外部變量聲明語句extern類型名變量名1[,變量名2,變量名3,…];

C語言程序設計課件全文共221頁,當前為第46頁。計算機科學系第3章順序結構程序設計3.1.1簡單語句3.函數(shù)聲明語句 類型名函數(shù)名(參數(shù)類型1,參數(shù)類型2,……,參數(shù)類型n);或 類型名函數(shù)名(參數(shù)類型1參數(shù)名1,參數(shù)類型2參數(shù)名2,……,參數(shù)類型n參數(shù)名n);C語言程序設計課件全文共221頁,當前為第47頁。計算機科學系第3章順序結構程序設計3.1.1簡單語句4.表達式語句 表達式;

運算符表達式語句函數(shù)調(diào)用表達式語句C語言程序設計課件全文共221頁,當前為第48頁。計算機科學系第3章順序結構程序設計3.1.2復合語句 把多個單一語句用花括號括起來便組成一個復合語句。復合語句在語法上相當于一條語句。

{

語句1; 語句2;

……

語句n; }C語言程序設計課件全文共221頁,當前為第49頁。計算機科學系第3章順序結構程序設計3.1.3.流程控制語句 流程控制語句用于控制程序流程,以實現(xiàn)程序的各種控制結構,它們由特定的語句定義符組成。

C語言提供的流程控制語句共有9個,根據(jù)它們的功能可以分成3類,它們是:條件判斷語句:if語句、switch語句循環(huán)控制語句:while語句、do…while語句、for語句流程轉(zhuǎn)向語句:break語句、continue語句、return語句、goto語句C語言程序設計課件全文共221頁,當前為第50頁。計算機科學系第3章順序結構程序設計3.1.4.空語句 空語句只有一個分號,即:

;

它是什么也不執(zhí)行的語句。在C語言程序中,空語句常用來做轉(zhuǎn)向點和空循環(huán)體。C語言程序設計課件全文共221頁,當前為第51頁。計算機科學系第3章順序結構程序設計3.2數(shù)據(jù)輸入與輸出3.2.1格式輸入輸出函數(shù)1.格式輸入函數(shù)scanf()scanf(”格式控制串”,輸入地址列表);C語言程序設計課件全文共221頁,當前為第52頁。計算機科學系第3章順序結構程序設計3.2.1格式輸入輸出函數(shù)1.格式輸入函數(shù)scanf()格式控制串:用雙引號括起來的字符串,也稱轉(zhuǎn)換控制字符串,由格式說明符和普通字符組成。格式說明符:由“%”和格式字符組成,如%d、%c、%f,其作用是指定格式輸入數(shù)據(jù)。普通字符:格式說明符以外的字符,這些字符可以有也可以沒有,如果有,則在輸入數(shù)據(jù)時必須在對應的位置上原樣輸入這些字符。地址表列:由若干個地址組成的列表,可以是變量的地址,也可以是字符串或數(shù)組的首地址。C語言程序設計課件全文共221頁,當前為第53頁。計算機科學系第3章順序結構程序設計3.2.1格式輸入輸出函數(shù)1.格式輸入函數(shù)scanf()常用格式字符 格式輸入函數(shù)scanf()中的格式控制串必須以%開始,以一個格式字符結束,并且要用雙引號括起來。

C語言程序設計課件全文共221頁,當前為第54頁。計算機科學系第3章順序結構程序設計3.2.1格式輸入輸出函數(shù)1.格式輸入函數(shù)scanf()

使用scanf()函數(shù)應注意的事項用scanf()函數(shù)輸入數(shù)據(jù)時,輸入的數(shù)據(jù)只能是常量,而不能是表達式。如果實際輸入的數(shù)據(jù)寬度大于格式說明中規(guī)定的數(shù)據(jù)寬度,則系統(tǒng)自動從左到右按規(guī)定的數(shù)據(jù)寬度截去數(shù)據(jù),多余的數(shù)據(jù)被丟掉。在%后面加一個“*”修飾符,則表示要跳過此項,即不把此輸入送給任何變量。在格式控制串中,如果格式說明符的類型和輸入項的類型不匹配,系統(tǒng)不會給出錯誤信息,但可能得不到正確的結果。當調(diào)用scanf()函數(shù)從簡輸入數(shù)據(jù)是,最后一定要按回車鍵,scanf()函數(shù)接收不到輸入的數(shù)據(jù)。C語言程序設計課件全文共221頁,當前為第55頁。計算機科學系第3章順序結構程序設計3.2.1格式輸入輸出函數(shù)2.格式輸出函數(shù)printf() printf(”格式控制串”,輸出項列表);格式控制串:用雙引號括起來的字符串,由格式說明符、普通字符和轉(zhuǎn)義字符組成。格式說明符:由“%”和格式字符組成,如%d、%c、%f,其作用是將要輸出的數(shù)據(jù)以指定的格式輸出,格式說明符在個數(shù)和類型上應與輸出項相匹配。普通字符:格式說明符以外的字符,這些字符可以有也可以沒有,如果有,則原樣輸出,其作用是為了提高輸出結果的可讀性,使人機交流變得更加容易。轉(zhuǎn)義字符:以“\”開頭的字符序列,其作用是在輸出時產(chǎn)生一個特殊字符或特殊操作。轉(zhuǎn)義字符在第2章字符型常量中已做了詳細介紹。輸出項列表:輸出項列表列出了所要輸出的數(shù)據(jù),它們可以是常量、變量、表達式。輸出項列表所列輸出項的個數(shù)和類型必須與格式說明相匹配。

C語言程序設計課件全文共221頁,當前為第56頁。計算機科學系第3章順序結構程序設計3.2.1格式輸入輸出函數(shù)2.格式輸出函數(shù)printf()常用格式字符 格式輸出函數(shù)printf()中的格式控制串必須以%開始,以一個格式字符結束,并且要用雙引號括起來。C語言程序設計課件全文共221頁,當前為第57頁。計算機科學系第3章順序結構程序設計3.2.1格式輸入輸出函數(shù)2.格式輸出函數(shù)printf()

使用printf()函數(shù)應注意的事項在格式控制串中,格式說明符要與輸出項從左到右在個數(shù)和類型上相互匹配。如果不匹配,系統(tǒng)并不報錯,但將導致數(shù)據(jù)不能正確輸出。若要輸出%,則應該在格式控制串中使用兩個“%”,即“%%”。printf()函數(shù)輸出數(shù)據(jù)后并不換行,要換行必須在格式控制串中使用轉(zhuǎn)義字符“\n”。C語言程序設計課件全文共221頁,當前為第58頁。計算機科學系第3章順序結構程序設計3.2.2字符輸入輸出函數(shù)1.字符輸入函數(shù)gechar() getchar(); 使用字符輸入函數(shù)getchar()的注意事項getchar()函數(shù)的調(diào)用不需要參數(shù),它的返回值為輸入的字符。getchar()函數(shù)的返回值可以作為表達式或表達式的一部分。

C語言程序設計課件全文共221頁,當前為第59頁。計算機科學系第3章順序結構程序設計3.2.2字符輸入輸出函數(shù)2.字符輸出函數(shù)putchar() putchar(表達式);使用字符輸出函數(shù)putchar()的注意事項putchar()函數(shù)的參數(shù)可以是字符常量、字符變量,還可以是別的表達式。

putchar()函數(shù)每次只能輸出一個字符,若要輸出多個字符,必須多次調(diào)用。C語言程序設計課件全文共221頁,當前為第60頁。計算機科學系第3章順序結構程序設計3.3順序結構程序設計舉例【例3.1】編寫程序,輸入兩個整數(shù),交換它們的值后再輸出。【例3.2】編寫程序,輸入攝氏溫度數(shù),然后轉(zhuǎn)換為華氏溫度數(shù)并。【例3.3】編寫程序,輸入三角形的三條邊長,求三角形的面積。【例3.4】編寫程序,輸入一個字符,輸出這個字符的后繼字符。C語言程序設計課件全文共221頁,當前為第61頁。計算機科學系第4章選擇結構程序設計

順序結構程序的流程方向永遠是自上而下順序執(zhí)行的。然而,在實際應用中常常需要根據(jù)不同的條件,執(zhí)行不同的程序流程。這樣就形成了選擇結構程序。C語言提供了可以進行邏輯判斷的選擇語句,由其構成的選擇結構根據(jù)邏輯判斷的結果決定程序的不同流向。C語言程序設計課件全文共221頁,當前為第62頁。計算機科學系第4章選擇結構程序設計

4.1if語句

If語句也稱作二路選擇語句。二路選擇是最簡單的一種選擇結構,它是根據(jù)條件的表達式值來選擇執(zhí)行給出的兩個分支程序段之一。C語言程序設計課件全文共221頁,當前為第63頁。計算機科學系第4章選擇結構程序設計

4.1.1if語句的基本形式1.if…else形式

if(表達式)

分支語句1 else

分支語句22.if形式

if(表達式)

分支語句 C語言程序設計課件全文共221頁,當前為第64頁。計算機科學系第4章選擇結構程序設計

if語句中的表達式可以是C語言中的任意合法表達式,一般情況下為關系表達式和邏輯表達式。if…else形式中的“分支語句1”、“分支語句2”和if形式中的“分支語句”,在語法上只能是一條語句。因此,如果需要多條語句來完成任務的話,就必須將這多條語句用花括號括起來,從而形成復合語句,使之在語法上是一條語句。不論是哪種形式的if語句,也不論if語句中的分支語句是何種語句,整個if語句在語法上只算一條語句。C語言程序設計課件全文共221頁,當前為第65頁。計算機科學系第4章選擇結構程序設計

4.1.2if語句的嵌套1.if語句的嵌套的基本形式

if(表達式1) if語句1 else if語句2

或者

if(表達式) if語句C語言程序設計課件全文共221頁,當前為第66頁。計算機科學系第4章選擇結構程序設計

4.1.2if語句的嵌套if語句的嵌套結構不論嵌套多少層,在語法上只算一條語句??s進格式的書寫只是為了閱讀的方便,即這種格式表示了程序設計者的意圖,但整個if語句的嵌套結構的含義與此并無關系,它的含義完全由C語言編譯系統(tǒng)來解釋。if語句的嵌套結構中的else要與if配對出現(xiàn),原則是else與其最近的未配對的if配對。C語言程序設計課件全文共221頁,當前為第67頁。計算機科學系第4章選擇結構程序設計

4.1.2if語句的嵌套2.一種特殊的if語句的嵌套形式——if…elseif if(表達式1)

分支語句1 elseif(表達式2)

分支語句2 elseif(表達式3)

分支語句3 elseif …… elseif(表達式n)

分支語句n else

分支語句n+1C語言程序設計課件全文共221頁,當前為第68頁。計算機科學系第4章選擇結構程序設計4.2switch語句4.2.1switch語句

switch(表達式){ case常量表達式1:分支語句組1 case常量表達式2:分支語句組2 …… case常量表達式n:分支語句組n default:分支語句組n+1 }C語言程序設計課件全文共221頁,當前為第69頁。計算機科學系第4章選擇結構程序設計switch后的表達式類型可以為任意類型,但一般為整型、字符型和枚舉類型。case后的常量表達式的類型必須與switch后的表達式類型一致。case后的常量表達式的值必須互不相同。case后的分支語句組可以是一條語句,也可以是多條語句。多個case可以共用一個分支語句組,即連續(xù)的k個case語句,前k-1個后面可以沒有分支語句組,只有第k個case語句后面有分支語句組。default及其分支語句組可以省略。各個case和default的前后次序并不影響switch語句的執(zhí)行結果。switch語句可以嵌套,即case后的分支語句組也可以是switch語句。不論switch語句內(nèi)部結構如何,整個switch語句在語法上只算一條語句。C語言程序設計課件全文共221頁,當前為第70頁。計算機科學系第4章選擇結構程序設計4.2.2break語句

break語句也稱間斷語句,通常在switch語句和循環(huán)語句中使用。當break語句用于switch語句中時,可使程序跳出當前switch結構,轉(zhuǎn)而執(zhí)行當前switch語句后的語句。C語言程序設計課件全文共221頁,當前為第71頁。計算機科學系第4章選擇結構程序設計4.3選擇結構程序設計舉例【例4.1】編寫程序,輸入一個實數(shù),輸出它的絕對值。【例4.2】編寫程序,輸入兩個整數(shù)m、n,若m>n,交換m和n的值。最后輸出m和n的值?!纠?.3】編寫程序,輸入三個整數(shù)a、b、c,將它們按從小到大的順序輸出?!纠?.4】編寫程序,輸入一個百分制成績,轉(zhuǎn)換為等級制成績輸出。[1],[2],[3]【例4.5】編寫程序,求解一元二次方程。C語言程序設計課件全文共221頁,當前為第72頁。計算機科學系第5章循環(huán)結構程序設計

5.1while語句

while語句是C語言提供的三個循環(huán)控制語句之一。它的特點是先判斷循環(huán)控制條件,再根據(jù)循環(huán)控制條件是否成立來決定是否執(zhí)行循環(huán)體。5.1.1while語句的基本形式

while(表達式)

循環(huán)體語句C語言程序設計課件全文共221頁,當前為第73頁。計算機科學系第5章循環(huán)結構程序設計

while語句中的表達式可以是C語言中的任意合法表達式,它的作用是控制循環(huán)次數(shù),一般情況下為關系表達式和邏輯表達式。while語句中的循環(huán)體語句在語法上只能是一條語句。因此,如果需要多條語句來完成任務的話,就必須將這多條語句用花括號括起來,從而形成復合語句,使之在語法上是一條語句。while語句是“先判斷,后執(zhí)行”的循環(huán)控制語句。因此,如果表達式的值一開始就為0,則循環(huán)體語句一次都不執(zhí)行,但表達式還是要計算的。如果表達式的值一開始就為非0,循環(huán)體語句中又沒有隨著每次循環(huán)能使表達式的值變化趨于0的語句,則表達式的值一直為非0,這樣while語句就進入了死循環(huán),無法結束,所以,在循環(huán)體語句中一定要有隨著每次循環(huán)能使表達式的值變化趨于0的語句或能結束循環(huán)的語句。while語句不論其循環(huán)體語句是何種語句,整個while語句在語法上只算一條語句。C語言程序設計課件全文共221頁,當前為第74頁。計算機科學系第5章循環(huán)結構程序設計

5.1.2while語句的應用【例5.1】編寫程序,輸入一個整數(shù)n,計算sum(n)=1+2+…+n的值。【例5.2】編寫程序,輸入一串字符并在屏幕顯示,直到輸入字符‘$’為止。C語言程序設計課件全文共221頁,當前為第75頁。計算機科學系第5章循環(huán)結構程序設計5.2do-while語句

do-while語句是C語言提供的三個循環(huán)控制語句之一。它的特點是先執(zhí)行循環(huán)體,再判斷循環(huán)控制條件,根據(jù)其是否成立來決定是否繼續(xù)執(zhí)行循環(huán)體。5.2.1do-while語句的基本形式

do

循環(huán)體語句

while(表達式);C語言程序設計課件全文共221頁,當前為第76頁。計算機科學系第5章循環(huán)結構程序設計do-while語句中的表達式可以是C語言中的任意合法表達式,它的作用是控制循環(huán)次數(shù),一般情況下為關系表達式和邏輯表達式。do-while語句中的循環(huán)體語句在語法上只能是一條語句。因此,如果需要多條語句來完成任務的話,就必須將這多條語句用花括號括起來,從而形成復合語句,使之在語法上是一條語句。do-while語句是“先執(zhí)行,后判斷”的循環(huán)控制語句。因此,即使表達式的值一開始就為0,循環(huán)體語句也要執(zhí)行一次,表達式也要計算一次。如果表達式的值一開始就為非0,循環(huán)體語句中又沒有隨著每次循環(huán)能使表達式的值變化趨于0的語句,則表達式的值一直為非0,這樣do-while語句就進入了死循環(huán),無法結束,所以,在循環(huán)體語句中一定要有隨著每次循環(huán)能使表達式的值變化趨于0的語句或能結束循環(huán)的語句。do-while語句不論其循環(huán)體語句是何種語句,整個do-while語句在語法上只算一條語句。C語言程序設計課件全文共221頁,當前為第77頁。計算機科學系第5章循環(huán)結構程序設計5.2.2do-while語句的應用【例5.3】編寫程序,輸入一個整數(shù)n,計算sum(n)=1+2+…+n的值?!纠?.4】編寫程序,輸入一串字符并在屏幕顯示,直到輸入字符‘$’為止。C語言程序設計課件全文共221頁,當前為第78頁。計算機科學系第5章循環(huán)結構程序設計5.3for語句

for語句是C語言提供的三個循環(huán)控制語句之一。它是C語言中最有特色的循環(huán)控制語句,使用最為靈活方便。不僅可以用于已知循環(huán)次數(shù)的循環(huán)控制結構,也可以用于未知循環(huán)次數(shù)的循環(huán)控制結構,而且可以完全代替while語句和do-while語句。5.3.1for語句的基本形式

for(表達式1;表達式2;表達式3)

循環(huán)體語句C語言程序設計課件全文共221頁,當前為第79頁。計算機科學系第5章循環(huán)結構程序設計for語句中的表達式1、表達式2、表達式3可以是C語言中的任意合法表達式。一般應用情況下:表達式1的作用是給變量賦初值,通常為賦值表達式;表達式2的作用是控制循環(huán)次數(shù),通常為關系表達式或邏輯表達式;表達式3的作用是影響循環(huán)控制條件,通常也是賦值表達式。for語句中的三個表達式是可選項,即省略任一個、任兩個以及三個都可以,但括號中的兩個分號不能省略。for語句中的循環(huán)體語句在語法上只能是一條語句。因此,如果需要多條語句來完成任務的話,就必須將這多條語句用花括號括起來,從而形成復合語句,使之在語法上是一條語句。C語言程序設計課件全文共221頁,當前為第80頁。計算機科學系第5章循環(huán)結構程序設計for語句是“先判斷,后執(zhí)行”的循環(huán)控制語句。因此,如果表達式2的值一開始就為0,則循環(huán)體語句一次都不執(zhí)行,但表達式1和表達式2還是要計算的。如果表達式2的值一開始為非0,表達式3和循環(huán)體語句中沒有對表達式產(chǎn)生影響的語句,則表達式2的值一直為非0,這樣for語句就進入了死循環(huán),無法結束,所以,在表達式3或循環(huán)體語句中一定要有對表達式產(chǎn)生影響的語句或能結束循環(huán)的語句。for語句不論其循環(huán)體語句是何種語句,整個for語句在語法上只算一條語句。C語言程序設計課件全文共221頁,當前為第81頁。計算機科學系第5章循環(huán)結構程序設計5.3.2for語句的應用【例5.5】編寫程序,輸入一個整數(shù)n,計算sum(n)=1+2+…+n的值?!纠?.6】編寫程序,輸入一串字符并在屏幕顯示,直到輸入字符‘$’為止。C語言程序設計課件全文共221頁,當前為第82頁。計算機科學系第5章循環(huán)結構程序設計5.4break語句和continue語句5.4.1break語句 當break語句用于循環(huán)語句中時,可使程序跳出當前循環(huán)結構,轉(zhuǎn)而執(zhí)行當前循環(huán)語句后的語句。

break;

break語句只能用于循環(huán)語句和switch語句中,而不能用于其它任何語句中。在具有嵌套的結構中(switch嵌套和循環(huán)嵌套),一條break語句只能向外跳出一層,即只能跳出它所在的那一層。C語言程序設計課件全文共221頁,當前為第83頁。計算機科學系第5章循環(huán)結構程序設計5.4.2continue語句

continue語句的作用是結束當前循環(huán)的本次循環(huán)(并不是終止循環(huán)),即跳過本次循環(huán)體中剩下的尚未執(zhí)行的語句,轉(zhuǎn)向循環(huán)控制條件的判定,進行下一次循環(huán)。

continue;continue語句只能用于循環(huán)語句中,而不能用于其它任何語句中。對于while語句和do-while語句,continue語句將控制轉(zhuǎn)向循環(huán)控制表達式;對于for語句,continue語句將控制轉(zhuǎn)向for語句的表達式3處。在循環(huán)嵌套的結構中,continue語句只在它所在的循環(huán)控制層起作用。

C語言程序設計課件全文共221頁,當前為第84頁。計算機科學系第5章循環(huán)結構程序設計應用舉例【例5.7】編寫程序,輸入一個正整數(shù)n,判斷其是否是素數(shù)。若是素數(shù),輸出“Yes.”,否則,輸出“No.”?!纠?.8】編寫程序,輸出1~100之間的所有不能被3和7同時整除的整數(shù)。C語言程序設計課件全文共221頁,當前為第85頁。計算機科學系第5章循環(huán)結構程序設計5.5goto語句

goto語句為無條件轉(zhuǎn)向語句,轉(zhuǎn)向到指定標號處,執(zhí)行標號以后的程序。5.5.1goto語句的基本形式

goto標號;標號必須是合法的標識符,不能使用10:、35:等數(shù)字形式,但可以和變量同名(一般不推薦)。標號可以放在程序中同一個函數(shù)內(nèi)的任一個語句的前面,標號與語句之間用冒號分隔。標號既可以放在goto語句的前面,也可以放在goto語句的后面。C語言程序設計課件全文共221頁,當前為第86頁。計算機科學系第5章循環(huán)結構程序設計5.5.2goto語句的應用1.用goto語句形成循環(huán)語句【例5.9】編寫程序,輸入一個整數(shù)n,計算sum(n)=1+2+…+n的值。[1],[2]2.goto語句的其它應用【例5.10】編寫程序,輸入程序中的密碼“123”,如果密碼正確,在屏幕顯示“OK!”,否則,程序結束?!纠?.11】編寫程序,找出從1到1000以內(nèi)第一個能被3、5、7同時整除的數(shù)并輸出。C語言程序設計課件全文共221頁,當前為第87頁。計算機科學系第5章循環(huán)結構程序設計3.使用goto語句的注意事項一般情況不建議使用goto語句,因為它容易使程序?qū)哟尾磺澹也灰锥?,通常是只有需要快速退出多層嵌套時,才使用goto語句。使用goto語句時,一般情況是goto語句從循環(huán)結構內(nèi)轉(zhuǎn)向循環(huán)結構外,而不是從循環(huán)結構外轉(zhuǎn)向循環(huán)結構內(nèi),如果這樣的話會造成程序的混亂。使用goto語句時,標號必須與goto語句處于同一個函數(shù)中。C語言程序設計課件全文共221頁,當前為第88頁。計算機科學系第5章循環(huán)結構程序設計5.6循環(huán)的嵌套循環(huán)的嵌套是指一個循環(huán)結構的循環(huán)體是一個循環(huán)結構,即一個循環(huán)結構內(nèi)嵌了另一個循環(huán)結構,而內(nèi)嵌的循環(huán)結構還可以內(nèi)嵌循環(huán)結構。C語言提供的三個循環(huán)語句,它們不僅可以自身內(nèi)嵌,也可以相互內(nèi)嵌。

C語言程序設計課件全文共221頁,當前為第89頁。計算機科學系第5章循環(huán)結構程序設計5.6循環(huán)的嵌套舉例【例5.12】編寫程序,輸出以下形式的乘法九九表。【例5.13】編寫程序,某班有25個學生,每個學生有6門課,分別統(tǒng)計出每個學生的總成績和平均成績并輸出?!纠?.14】編寫程序,輸入若干個正整數(shù),判斷其是否是素數(shù),直到輸入一個非正整數(shù)為止。C語言程序設計課件全文共221頁,當前為第90頁。計算機科學系第5章循環(huán)結構程序設計5.7循環(huán)結構程序設計舉例【例5.15】編寫程序,輸入10個整數(shù),輸出其中正整數(shù)的個數(shù)、和以及平均值?!纠?.16】編寫程序,計算s=1!+2!+???+n!,n從鍵盤輸入?!纠?.17】編寫程序,打印如下圖形?!纠?.18】編寫程序,在屏幕顯示一個“加、減、乘、除”的功能菜單,當選擇相應功能后,輸入兩個數(shù)進行相應的計算?!纠?.19】編寫程序,求值?!纠?.20】編寫程序,輸出Fibonacci數(shù)列1、1、2、3、5、8、13、21、……的前40項。【例5.21】編寫程序,求解中國古代經(jīng)典算術題:百錢百雞。C語言程序設計課件全文共221頁,當前為第91頁。計算機科學系第6章數(shù)組

數(shù)組是一種構造型(構造型數(shù)據(jù)類型是根據(jù)已定義的一個或多個數(shù)據(jù)類型用構造的方法來定義的。也就是說,一個構造類型的值可以分解成若干個“成員”或“元素”)的數(shù)據(jù)類型,每個數(shù)組中有多個元素,而每個數(shù)組中元素是同一種數(shù)據(jù)類型,這些元素在內(nèi)存中占用一塊連續(xù)的存儲區(qū)域,并且每個元素占用相同大小的內(nèi)存空間;數(shù)組中的元素可以通過下標進行訪問;在程序設計語言中,數(shù)組是一種非常重要的數(shù)據(jù)結構,許多問題通過抽象,可以用這種數(shù)據(jù)結構來表示數(shù)據(jù),數(shù)組與我們后面章節(jié)中要介紹的指針有密切的關系。C語言程序設計課件全文共221頁,當前為第92頁。計算機科學系第6章數(shù)組6.1一維數(shù)組6.1.1一維數(shù)組的定義 一維數(shù)組是指數(shù)組中每個元素只帶有一個下標。在C語言中,定義一維數(shù)組的語法形式為: 類型名數(shù)組名[常量表達式],……; 方括號中的常量表達式稱為數(shù)組的下標。數(shù)組的下標從0(稱為數(shù)組下標下界)開始C語言程序設計課件全文共221頁,當前為第93頁。計算機科學系第6章數(shù)組6.1.2一維數(shù)組的初始化C語言規(guī)定,當初值表中的元素個數(shù)可以少于數(shù)組元素個數(shù)時,這時,多余的數(shù)組元素被賦予零值。但不允許初值表中數(shù)值個數(shù)大于數(shù)組元素個數(shù);另外,初值表中的數(shù)值可以缺省,但分隔的逗號不可省略,缺省的數(shù)值為零。數(shù)組初始化時,下標[]中的數(shù)字可以省略,即不指明元素的個數(shù);這時元素的個數(shù)通過初值表中元素的個數(shù)來決定。C語言程序設計課件全文共221頁,當前為第94頁。計算機科學系第6章數(shù)組6.1.3一維數(shù)組的引用 數(shù)組名[下標表達式]

C語言程序運行過程中,對數(shù)組元素的訪問如果越界,程序運行時會產(chǎn)生不可預知的錯誤,系統(tǒng)并不自動檢驗引用數(shù)組元素的下標是否越界。因此需要程序員在程序中自己判別,避免這種錯誤發(fā)生。數(shù)組中的元素只能單個地引用,數(shù)組名是一個常量指針,用于存放整個數(shù)組的起初地址,也可以引用。C語言程序設計課件全文共221頁,當前為第95頁。計算機科學系第6章數(shù)組6.1.4一維數(shù)組應用舉例【例6.1】計算5個人的平均年齡,5個人的年齡分別為18,20,17,21,19。【例6.2】從鍵盤輸入5個整數(shù),存入一個一維數(shù)組,求5個數(shù)中最大的數(shù)。【例6.2】從鍵盤輸入5個整數(shù),存入一個一維數(shù)組,求5個數(shù)中最大的數(shù)?!纠?.4】從鍵盤上任意鍵入的9個整數(shù),然后進行從大到小排序,并輸出排序前的結果和排序后的結果。[選擇法]

[冒泡法]C語言程序設計課件全文共221頁,當前為第96頁。計算機科學系第6章數(shù)組選擇排序法的基本思想 對n個數(shù)據(jù)元素的序列{R1,R2,…,Rn}進行n-1趟選擇操作,而第i(i=1,2,…,n-1)趟選擇操作是從第i個數(shù)據(jù)元素開始,與其后的n-i個數(shù)據(jù)元素逐一進行比較,若某個數(shù)據(jù)元素小于(或大于)第i個數(shù)據(jù)元素,則與第i個數(shù)據(jù)元素交換,經(jīng)過一趟排序后,挑選出n-i個元素中最小的(或最大的)元素,第i個元素就是最小(或最大)的元素,這樣經(jīng)過n-1趟選擇操作后這n個數(shù)據(jù)元素從小到大(或從大到小)有序。C語言程序設計課件全文共221頁,當前為第97頁。計算機科學系第6章數(shù)組冒泡排序法的基本思想 對n個數(shù)據(jù)元素的序列{R1,R2,…,Rn}進行n-1趟冒泡操作,而第i(i=1,2,…,n-1)趟冒泡操作是從第1個數(shù)據(jù)元素到第n-i+1個數(shù)據(jù)元素的每相鄰兩個數(shù)據(jù)元素從前向后逐一進行比較,若前一個數(shù)據(jù)元素大于(或小于)后一個數(shù)據(jù)元素,則交換這兩個數(shù)據(jù)元素,這樣經(jīng)過n-1趟冒泡操作后這n個數(shù)據(jù)元素即按從小到大(或從大到?。┯行颉語言程序設計課件全文共221頁,當前為第98頁。計算機科學系第6章數(shù)組6.2二維數(shù)組6.2.1二維數(shù)組的定義 數(shù)組中每個元素帶有兩個下標時,稱這種數(shù)組為二維數(shù)組 類型名數(shù)組名[常量表達式1][常量表達式2],……;在C語言中,實際上二維數(shù)組可以用一維數(shù)組來構造,我們把二維數(shù)組看成一個一維數(shù)組,但這個一維數(shù)組中的元素不是一般的數(shù)據(jù)類型,而是由若干個相同類型元素組成的一維數(shù)組。

C語言程序設計課件全文共221頁,當前為第99頁。計算機科學系第6章數(shù)組6.2.2二維數(shù)組的初始化6.2.3二維數(shù)組的引用 二維數(shù)組的引用與一維數(shù)組的引用相似

數(shù)組名[下標表達式1][下標表達式2]C語言程序設計課件全文共221頁,當前為第100頁。計算機科學系第6章數(shù)組6.2.4二維數(shù)組應用舉例【例6.5】有一個3×4的矩陣,編寫一個程序,找出其中的最大元素和最小元素,并輸出其所在的行號和列號?!纠?.6】編寫程序?qū)⑾铝芯仃嚨男凶優(yōu)榱?,列變?yōu)樾校ㄇ笃滢D(zhuǎn)置矩陣),保存到另一個數(shù)組中,并輸出該矩陣。C語言程序設計課件全文共221頁,當前為第101頁。計算機科學系第6章數(shù)組6.3字符數(shù)組和字符串6.3.1字符數(shù)組的定義 數(shù)組元素為字符型變量的數(shù)組,稱為字符數(shù)組。如果一個一維數(shù)組的最末尾一個元素為’\0’(空字符(NULL)的ASCII碼),則該數(shù)組中的字符構成一個字符串,C語言規(guī)定,字符串存放在內(nèi)存中,末尾要帶一個結束符NULL(其ASCII編碼為0)。字符串常量需要用雙引號引起來。C語言程序設計課件全文共221頁,當前為第102頁。計算機科學系第6章數(shù)組6.3.2字符數(shù)組的初始化字符數(shù)組可以像一維數(shù)組一樣賦初值。6.3.3字符數(shù)組的引用字符數(shù)組的引用與一維數(shù)組的引用沒有本質(zhì)區(qū)別,只是字符數(shù)組中的元素是字符。數(shù)組名是一個常量指針,也可以通過數(shù)組名來引用字符數(shù)組中的元素C語言程序設計課件全文共221頁,當前為第103頁。計算機科學系第6章數(shù)組6.3.4字符數(shù)組的輸出。用printf()函數(shù)輸出字符串。 除了可以逐個字符輸出字符串外,即用格式符“%c”輸出1個字符,也可以用格式符”%s”來輸出整個字符串。用puts()函數(shù)輸出字符串。

puts(str); 其中,str代表待輸出字符串的首地址,即字符數(shù)組名,或者代表將要輸出的字符串常量。 使用puts()函數(shù)輸出字符串時,字符串結束標志‘\0’將轉(zhuǎn)換為‘\n’,所以,輸出完1個字符后換行。C語言程序設計課件全文共221頁,當前為第104頁。計算機科學系第6章數(shù)組6.3.5字符數(shù)組的輸入。用scanf()函數(shù)輸入字符串。 除了可以逐個字符輸入字符串外,即用格式符“%c”輸入1個字符,也可以用格式符“%s”來輸入整個字符串。用gets()函數(shù)輸入字符串。

gets(str); 其中str代表存儲所讀入的字符串的存儲空間的首地址,str可視為字符數(shù)組的數(shù)組名。它可以讀入包括空格符、制表符在內(nèi)的所有字符,直到遇見換行符為止。但它一次只能讀入1個字符串。C語言程序設計課件全文共221頁,當前為第105頁。計算機科學系第6章數(shù)組【例6.7】scanf庫函數(shù)的應用main(){charst[15];printf("inputstring:\n");scanf("%s",st);printf("%s\n",st);}C語言程序設計課件全文共221頁,當前為第106頁。計算機科學系第6章數(shù)組main(){charst1[6],st2[6],st3[6],st4[6];printf("inputstring:\n");scanf("%s%s%s%s",st1,st2,st3,st4);printf("%s%s%s%s\n",st1,st2,st3,st4);}C語言程序設計課件全文共221頁,當前為第107頁。計算機科學系第6章數(shù)組6.3.4字符數(shù)組的應用舉例【例6.8】字符串的輸入和輸出【例6.9】從鍵盤輸入含有10個字符的字符串,判斷該字符串中是否存在字符’H’,如果存在,則顯示提示信息”Yes”,如果不存在則顯示提示信息”NO”。C語言程序設計課件全文共221頁,當前為第108頁。計算機科學系第7章函數(shù)

模塊化程序設計是進行大型程序設計的一種有效方法,其基本思想是把一個復雜問題按功能或?qū)哟畏殖扇舾赡K,即將一個大任務分成若干個子任務,對應每一個子任務編制一個子程序。由于模塊相互獨立,在設計其中任一模塊時不會受到其它模塊的干擾,因而可將原來較為復雜的問題簡化為一系列簡單模塊的設計。在C語言中,子程序的作用是由函數(shù)來完成的。C語言的源程序是由函數(shù)組成的,且至少要有一個主函數(shù)main()。一般情況下,一個C程序可以由一個主函數(shù)和若干個其它函數(shù)構成。主函數(shù)調(diào)用其它函數(shù),其它函數(shù)之間也可以相互調(diào)用。函數(shù)是C語言源程序的基本模塊,通過對函數(shù)模塊的調(diào)用實現(xiàn)特定的功能??梢哉fC程序的全部工作都是由各式各樣的函數(shù)完成的,所以也把C語言稱為函數(shù)式語言。由于采用了函數(shù)模塊式的結構,C語言易于實現(xiàn)結構化程序設計,使程序的層次結構清晰,便于程序的編寫、閱讀、調(diào)試。C語言程序設計課件全文共221頁,當前為第109頁。計算機科學系第7章函數(shù)7.1函數(shù)概述1.從函數(shù)定義的角度看,函數(shù)可分為庫函數(shù)和用戶自定義函數(shù)兩種。(1)庫函數(shù) 由C系統(tǒng)提供,用戶無須定義,也不必在程序中做類型說明,只需在程序前包含有該函數(shù)原型的頭文件便可在程序中直接調(diào)用。(2)用戶自定義函數(shù) 由用戶自己按需要編寫的函數(shù)。對于用戶自定義函數(shù),不僅要在程序中定義函數(shù)本身,而且在主調(diào)函數(shù)模塊中還必須對該被調(diào)函數(shù)進行類型說明,然后才能使用。C語言程序設計課件全文共221頁,當前為第110頁。計算機科學系第7章函數(shù)2.C語言的函數(shù)兼有其它語言中的函數(shù)和過程兩種功能,從這個角度看,又可把函數(shù)分為有返回值函數(shù)和無返回值函數(shù)兩種。(1)有返回值函數(shù) 此類函數(shù)被調(diào)用執(zhí)行完后將向調(diào)用者返回一個執(zhí)行結果,稱為函數(shù)返回值。(2)無返回值函數(shù) 此類函數(shù)用于完成某項特定的處理任務,執(zhí)行完成后不向調(diào)用者返回函數(shù)值。C語言程序設計課件全文共221頁,當前為第111頁。計算機科學系第7章函數(shù)3.從主調(diào)函數(shù)和被調(diào)函數(shù)之間數(shù)據(jù)傳送的角度看又可分為無參函數(shù)和有參函數(shù)兩種。(1)無參函數(shù) 函數(shù)定義、函數(shù)聲明及函數(shù)調(diào)用中均不帶參數(shù)。主調(diào)函數(shù)和被調(diào)函數(shù)之間不進行參數(shù)傳送。(2)有參函數(shù) 也稱為帶參函數(shù)。在函數(shù)定義及函數(shù)聲明時都有參數(shù),稱為形式參數(shù)(簡稱為形參)。在函數(shù)調(diào)用時也必須給出參數(shù),稱為實際參數(shù)(簡稱為實參)。C語言程序設計課件全文共221頁,當前為第112頁。計算機科學系第7章函數(shù)4.C語言提供了極為豐富的庫函數(shù),這些庫函數(shù)又可從功能角度作以下分類。(1)字符類型分類函數(shù) 用于對字符按ASCII碼分類:字母,數(shù)字,控制字符,分隔符,大小寫字母等。(2)轉(zhuǎn)換函數(shù) 用于字符或字符串的轉(zhuǎn)換。在字符量和各類數(shù)字量(整型、實型等)之間進行轉(zhuǎn)換,在大、小寫之間進行轉(zhuǎn)換。(3)目錄路徑函數(shù) 用于文件目錄和路徑操作。C語言程序設計課件全文共221頁,當前為第113頁。計算機科學系第7章函數(shù)(4)診斷函數(shù) 用于內(nèi)部錯誤檢測。(5)圖形函數(shù) 用于屏幕管理和各種圖形功能。(6)輸入輸出函數(shù) 用于完成輸入輸出功能。(7)接口函數(shù) 用于與DOS、BIOS和硬件的接口。(8)字符串函數(shù) 用于字符串操作和處理。C語言程序設計課件全文共221頁,當前為第114頁。計算機科學系第7章函數(shù)(9)內(nèi)存管理函數(shù) 用于內(nèi)存管理。(10)數(shù)學函數(shù) 用于數(shù)學計算。(11)日期和時間函數(shù) 用于日期、時間轉(zhuǎn)換操作。(12)進程控制函數(shù) 用于進程管理和控制。(13)其它函數(shù) 用于其它各種功能。C語言程序設計課件全文共221頁,當前為第115頁。計算機科學系第7章函數(shù)7.2函數(shù)的定義7.2.1函數(shù)的定義形式1.無參函數(shù)的定義的形式類型標識符函數(shù)名()/*函數(shù)首部*/{

說明部分/*函數(shù)體*/

執(zhí)行部分}2.有參函數(shù)的定義的形式類型標識符函數(shù)名(形式參數(shù)表)/*函數(shù)首部*/{

說明部分/*函數(shù)體*/

執(zhí)行部分}C語言程序設計課件全文共221頁,當前為第116頁。計算機科學系第7章函數(shù)類型標識符和函數(shù)名構成函數(shù)首部,函數(shù)類型標識符指明了函數(shù)的類型,也就是函數(shù)返回值的數(shù)據(jù)類型;函數(shù)名是由用戶定義的標識符,命名要符合標識符的命名規(guī)則,同一程序中函數(shù)不能重名,函數(shù)名用來唯一標識一個函數(shù)?;ɡㄌ杮}中的內(nèi)容為函數(shù)體,說明部分對函數(shù)體內(nèi)部所用到的各種變量類型和被調(diào)用的函數(shù)進行說明定義和聲明,執(zhí)行部分是實現(xiàn)函數(shù)功能的語句序列。當函數(shù)體為空時,稱此函數(shù)為空函數(shù)。調(diào)用空函數(shù)時,空函數(shù)什么也不做。在C語言中,函數(shù)之間是并列關系,因此函數(shù)定義中不能包含另一個函數(shù)的定義,即函數(shù)定義不能嵌套。C語言程序設計課件全文共221頁,當前為第117頁。計算機科學系第7章函數(shù)7.2.2函數(shù)參數(shù)的說明1.現(xiàn)代方式 函數(shù)參數(shù)說明的現(xiàn)代方式是將函數(shù)參數(shù)及其類型的說明都放在函數(shù)首部的形式參數(shù)表中,例如:

intmax(intx,inty)2.傳統(tǒng)方式 函數(shù)參數(shù)說明的傳統(tǒng)方式是將函數(shù)參數(shù)放在函數(shù)首部的形式參數(shù)表中,而其類型的說明另起一行來說明,例如:

intmax(x,y) intx,y;C語言程序設計課件全文共221頁,當前為第118頁。計算機科學系第7章函數(shù)7.2.3函數(shù)定義舉例【例7.1】編寫函數(shù),在屏幕顯示Hello,World!。voidhello(){printf("Hello,World!\n");}C語言程序設計課件全文共221頁,當前為第119頁。

溫馨提示

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

評論

0/150

提交評論