(第四版)C語(yǔ)言程序設(shè)計(jì)1-6章_第1頁(yè)
(第四版)C語(yǔ)言程序設(shè)計(jì)1-6章_第2頁(yè)
(第四版)C語(yǔ)言程序設(shè)計(jì)1-6章_第3頁(yè)
(第四版)C語(yǔ)言程序設(shè)計(jì)1-6章_第4頁(yè)
(第四版)C語(yǔ)言程序設(shè)計(jì)1-6章_第5頁(yè)
已閱讀5頁(yè),還剩239頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2020/9/18,程序設(shè)計(jì),C/C+,教師姓名:趙 敏,信息學(xué)院計(jì)算中心,2020/9/18,目錄,第一章 C語(yǔ)言概述 第二章 數(shù)據(jù)類(lèi)型及基本運(yùn)算 第三章 順序結(jié)構(gòu)程序設(shè)計(jì) 第四章 選擇結(jié)構(gòu)程序設(shè)計(jì) 第五章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì),第六章 數(shù)組 第七章 函數(shù) 第八章 指針 第九章 結(jié)構(gòu)與其它自定義類(lèi)型 第十章 文件,2020/9/18,第一章 C語(yǔ)言概述,2020/9/18,1.1 C語(yǔ)言的發(fā)展史 回顧:程序設(shè)計(jì)與高級(jí)語(yǔ)言 早期的機(jī)器語(yǔ)言; 過(guò)渡性語(yǔ)言匯編語(yǔ)言; 20世紀(jì)50年代末的程序設(shè)計(jì)語(yǔ)言(高級(jí)語(yǔ)言);,2020/9/18,C語(yǔ)言的產(chǎn)生與發(fā)展 C語(yǔ)言是國(guó)際上廣泛流行的計(jì)算機(jī)高級(jí)語(yǔ)言,既可用來(lái)

2、寫(xiě)系統(tǒng)軟件,也可用來(lái)寫(xiě)應(yīng)用軟件。 C語(yǔ)言是在B語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的。 BCPL (basic combined programming language)語(yǔ)言C語(yǔ)言擴(kuò)充C語(yǔ)言的內(nèi)核,使其能滿足面向?qū)ο竽P偷囊螅Q“帶類(lèi)的C”,1983年取名C+,2020/9/18,C+與C完全兼容,保存了C語(yǔ)言的所有組成部分,具有更完美的體系結(jié)構(gòu)和更強(qiáng)大的功能; C/C+常用的編譯軟件有Turbo C,Quick C,Borland C,Microsoft Visual C+,Borland C+,Watcom C+等等; 注意:同學(xué)們應(yīng)了解所用的計(jì)算機(jī)系統(tǒng)所配置的C編譯系統(tǒng)的特點(diǎn)和規(guī)定 (可以參閱有關(guān)手

3、冊(cè))。,2020/9/18,1.2.1 簡(jiǎn)單的C/C+程序?qū)嵗?【例 1.1】 include ,頭文件,main ( ),函數(shù)名, printf (This is a C program.n); ,函數(shù)體,本程序的作用是輸出以下一行信息: This is a C program.,1.2 C/C+程序簡(jiǎn)介,2020/9/18,1.2.2 C/C+程序設(shè)計(jì)規(guī)則 (1)C程序中使用到的一切數(shù)據(jù)都必須在使用它們之前對(duì)其類(lèi)型和存儲(chǔ)屬性加以定義和說(shuō)明; (2)函數(shù)是C程序的基本模塊,包括函數(shù)名、參數(shù)說(shuō)明表和函數(shù)體三個(gè)部分; (3)語(yǔ)句是函數(shù)的基本單位,語(yǔ)句結(jié)束必須加“ ;”; (4)C語(yǔ)言允許“/*

4、*/”包圍的注釋行; (5)C程序是自由格式書(shū)寫(xiě)的程序,通常采用結(jié)構(gòu)化程序設(shè)計(jì)原則將程序設(shè)計(jì)成“層次型”; (6)C的輸入輸出操作由庫(kù)函數(shù)scanf和printf完成;,2020/9/18,c程序結(jié)構(gòu),2020/9/18,C程序運(yùn)行的步驟:,高級(jí)語(yǔ)言源程序,目標(biāo)程序,編譯程序,編譯,執(zhí)行,高級(jí)語(yǔ)言程序的執(zhí)行過(guò)程,在編好一個(gè)C源程序后,如何上機(jī)運(yùn)行呢? 要經(jīng)過(guò)以下幾個(gè)步驟:上機(jī)輸入、編輯源程序、對(duì)源程序進(jìn)行編譯、與庫(kù)函數(shù)連接、運(yùn)行目標(biāo)程序這樣幾個(gè)步驟。,2020/9/18,實(shí)線表示操作流程,虛線表示文件的輸入輸出。,2020/9/18,1.2.3 C/C+程序的編輯、編譯與運(yùn)行 在Visual

5、C+集成開(kāi)發(fā)環(huán)境下編輯C程序 第一種方法:直接在VC環(huán)境中新建txt文件,進(jìn)行編輯; 第二種方法:使用記事本編輯C源文件;,2020/9/18,在Visual C+集成開(kāi)發(fā)環(huán)境下編譯與運(yùn)行C程序 第一步:打開(kāi)“Build”菜單,選擇“Compile hjm01.c”命令,編譯正確后生成目標(biāo)文件; 第二步:打開(kāi)“Build”菜單,選擇“Build hjm01.exe”命令,將目標(biāo)程序與庫(kù)文件相鏈接,生成可執(zhí)行文件; 第三步:打開(kāi)“Build”菜單,選擇“Execute hjm01.exe”命令,運(yùn)行執(zhí)行程序。,2020/9/18,1.3 C程序的基本語(yǔ)法成分,1.3.1 基本字符集 字符集是構(gòu)成

6、C/C+程序的基本元素。C/C+語(yǔ)言的字符集有下述字符構(gòu)成:,(1)英文字母:AZ,az (2)數(shù)字字符:09 (3)特殊符號(hào):!, area=PI*R*R; printf(“area=%.2f”); ,宏名一般用大寫(xiě)字母表示,1.4.1 無(wú)參數(shù)宏定義,2020/9/18,1.4.2 文件包含 文件包含是通過(guò)編譯預(yù)處理命令include把另一個(gè)文件的全部?jī)?nèi)容包含到本文件之中。命令格式有兩種: include “文件名” 【例】#include “C:TCCC1file2.c” include 【例】#include ,按系統(tǒng)指定的標(biāo)準(zhǔn)方式檢索文件目錄,先在源文件目錄中檢索文件,沒(méi)找到再按系統(tǒng)指

7、定的標(biāo)準(zhǔn)方式檢索文件目錄,2020/9/18,【例】計(jì)算常用對(duì)數(shù)lgx。 #include “math.h” main( ) float x; scanf(“%f”, ,【例】 #include main( ) printf(This is a C program.n); ,2020/9/18,第二章 數(shù)據(jù)類(lèi)型及基本運(yùn)算,2020/9/18,2.1 C數(shù)據(jù)類(lèi)型 見(jiàn)書(shū)P11圖2.1 數(shù)據(jù)類(lèi)型分類(lèi)示意圖 2.2 基本數(shù)據(jù)類(lèi)型 見(jiàn)書(shū)P12表2.1 2.3 數(shù)據(jù)的表示 數(shù)據(jù)在內(nèi)存中有兩種表示形式:其一是在程序運(yùn)行過(guò)程中值永遠(yuǎn)保持不變的常量;其二是在程序運(yùn)行過(guò)程中值可以發(fā)生變化的變量;,2020/9/1

8、8,常量,數(shù)值常量,符號(hào)常量,整型常量,實(shí)型常量,字符常量,字符串常量,2.3.1 常量 常量在程序運(yùn)行過(guò)程中其值不能被改變的量; 按表達(dá)形式,常量分為:,2020/9/18,1、值常量 常量通常是直接以自身的存在形式體現(xiàn)其值和類(lèi)型,常量不占內(nèi)存,在程序運(yùn)行時(shí)作為操作對(duì)象直接出現(xiàn)在運(yùn)算器的各種寄存器中。 2、符號(hào)常量 符號(hào)常量的定義形式: #define 標(biāo)識(shí)符 值常量 const 數(shù)據(jù)類(lèi)型 標(biāo)識(shí)符值常量 【例】 define PI 3.14159 或 const float I=3.1415926,2020/9/18,3.常用的轉(zhuǎn)義字符 【例】分析下面兩段代碼的區(qū)別: #include ma

9、in( ) printf(“This is a C program.n”);,#include main( ) printf(“tThis is a C program.n”);,2020/9/18,2.3.2 變量 變量在程序運(yùn)行過(guò)程中其值可以被改變的量; 1.變量的說(shuō)明 形式: 數(shù)據(jù)類(lèi)型 【例】 int i,j,k; 2.變量的賦初值在程序中,一個(gè)變量占據(jù)著一個(gè)實(shí)際的存儲(chǔ)單元,變量名實(shí)際上是存儲(chǔ)單元的邏輯地址,存儲(chǔ)單元中的內(nèi)容是變量的值;,2020/9/18,(1)允許在定義變量的同時(shí)對(duì)其賦初值; 【例】 int a3; float f7.8; (2)允許僅對(duì)說(shuō)明語(yǔ)句中的部分變量賦初值;

10、【例】 int a,b,c6; (3)不允許同時(shí)對(duì)幾個(gè)變量賦同一個(gè)初值; 【例】 int abc13; (4)變量的賦初值不是在程序編譯階段,而是在程序運(yùn)行時(shí)賦的;,2020/9/18,使用注意: 1、變量一旦被說(shuō)明為字符型,就意味著它只能取單字符值。 例:char x;x33; 字符在計(jì)算機(jī)內(nèi)部并不是以字符原形存儲(chǔ)的,是以ASCII碼的形式存儲(chǔ)在一個(gè)字節(jié)中,所以字符也可以用ASCII碼的整數(shù)形式來(lái)表示。 2、字符型數(shù)據(jù)與字符串?dāng)?shù)據(jù)的區(qū)別形式和存儲(chǔ);,返回第三章,2020/9/18,2.4 常用的運(yùn)算符和表達(dá)式 2.4.1 算術(shù)運(yùn)算符和算術(shù)表達(dá)式 1)算術(shù)運(yùn)算符,2020/9/18,2)算術(shù)運(yùn)

11、算符的運(yùn)算優(yōu)先級(jí)和結(jié)合性,3)算術(shù)表達(dá)式 注意書(shū)寫(xiě)的規(guī)范,2020/9/18,【例】將下列代數(shù)式轉(zhuǎn)換成C語(yǔ)言表達(dá)式。,sqrt(x*x+1)/(2*x),sqrt(abs(x)/2,4)算術(shù)型數(shù)據(jù)的混合運(yùn)算 自動(dòng)類(lèi)型轉(zhuǎn)換:規(guī)則是由低級(jí)向高級(jí)轉(zhuǎn)換,如下圖所示:(P17圖2.2 ),2020/9/18,強(qiáng)制類(lèi)型轉(zhuǎn)換:是根據(jù)程序的需要,將某數(shù)據(jù)強(qiáng) 制轉(zhuǎn)換成指定的數(shù)據(jù)類(lèi)型,方法是在被轉(zhuǎn)換對(duì)象 (或表達(dá)式)前面增加類(lèi)型標(biāo)識(shí)符,形式如下:,數(shù)據(jù)類(lèi)型自動(dòng)轉(zhuǎn)換規(guī)則示意,水平箭頭表示必定轉(zhuǎn)換;縱向箭頭表示兩個(gè)不同類(lèi)型對(duì)象時(shí)的轉(zhuǎn)換方向,2020/9/18,【例】 (2.7+6.8) 表示將2.7+6.8的運(yùn)算結(jié)果

12、9.5強(qiáng)制轉(zhuǎn)換成int型整數(shù)9,舍棄小數(shù)部分。 【思考題】如何實(shí)現(xiàn)運(yùn)算結(jié)果的四舍五入呢? 5)使用算術(shù)表達(dá)式的注意事項(xiàng) 兩個(gè)整數(shù)直接相除,結(jié)果自動(dòng)取整,丟棄小數(shù)部分; 【例】 float x,y; x6/4; y6.0/4;,x的值為1.0,y的值為1.5,(int),2020/9/18,運(yùn)算符“+”、“-”運(yùn)算的優(yōu)先級(jí)高于算術(shù)運(yùn)算中所有 雙目運(yùn)算符,運(yùn)算對(duì)象只能是變量,不能是表達(dá)式或 常量; 【例】 有int x;float y;下面的式子錯(cuò)在了哪里? (x+y)+、 5+ 變量的前綴和后綴運(yùn)算的區(qū)別,2020/9/18,【例】設(shè) int x5;則:,y6,x6,y25,x7,y49,x7,

13、y+x*+x;,y+x;,yx+*x+;,y5,x6,yx+;,2020/9/18,2.4.2 賦值運(yùn)算符和賦值表達(dá)式 1)基本賦值運(yùn)算符 形式: 功能:將賦值運(yùn)算符右邊的表達(dá)式的值賦給其左邊的變量; 【例】,float x3.1; int y; yx+2;,正確,float y5.6; int x; x+2y; 5y;,錯(cuò)誤,2020/9/18,2)復(fù)合賦值運(yùn)算符 形式:算術(shù)運(yùn)算符 功能:對(duì)賦值運(yùn)算符左、右兩邊的運(yùn)算對(duì)象進(jìn)行指定的算術(shù)運(yùn)算符的運(yùn)算,再將運(yùn)算結(jié)果賦予左邊的變量; 【例】 a+=3 等價(jià)于a=a+3 那么a*b+1 等價(jià)于,aa*(b+1),方法: a +=(b) (其中a為變量

14、,b為表達(dá)式) a +=(b) (將有下劃線的“a+”移到“=”右側(cè)) a = a +(b) (在“=”左側(cè)補(bǔ)上變量名a),2020/9/18,3)賦值表達(dá)式 用賦值運(yùn)算符將運(yùn)算對(duì)象連接而成的式子稱為賦值表達(dá)式。 【例】 int k,a1,j5;a+j+,【例】 int x6; x+x-x*x;,aa +(j+) a6,j6,xx+(x-x*x) xx+(xx-x*x) x-60,2020/9/18,2.4.3 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式 1)逗號(hào)運(yùn)算符“,”的用法: 用作分隔符在變量說(shuō)明語(yǔ)句、函數(shù)調(diào)用語(yǔ)句等場(chǎng)合,例 如 int a,b,c; 用作運(yùn)算符是一個(gè)雙目運(yùn)算符,構(gòu)成逗號(hào)表達(dá)式,優(yōu)先 級(jí)最

15、低,運(yùn)算順序自左至右;例如 a2*6,a-4,a+15;,12,8,27,逗號(hào)表達(dá)式的值為27,2020/9/18,2)逗號(hào)表達(dá)式 形式:表達(dá)式1,表達(dá)式2,表達(dá)式3,表達(dá)式n,分別計(jì)算每一個(gè)表達(dá)式的值,并將最后一個(gè)表達(dá)式的值作為整個(gè)逗號(hào)表達(dá)式的結(jié)果,【例】x5+5,10+10,【例】x(5+5,10+10),20,10,逗號(hào)表達(dá)式的值和x的值分別為,賦值語(yǔ)句之后x的值為,20,2020/9/18,【例】分析逗號(hào)表達(dá)式(a3*5,a*4),a+15的結(jié)果。,60,a的值為,15,整個(gè)逗號(hào)表達(dá)式的值為,30,【例】int x,y,分析y(x1,+x,x+2)的結(jié)果。,逗號(hào)表達(dá)式的值為,4,4,y

16、的值為,括號(hào)中的表達(dá)式值為,2020/9/18,2.4.4 關(guān)系運(yùn)算符和關(guān)系表達(dá)式 關(guān)系運(yùn)算主要用在程序中的判斷語(yǔ)句。 1、關(guān)系運(yùn)算符 = = !=,同級(jí),同級(jí),2、關(guān)系表達(dá)式 若干表達(dá)式用關(guān)系運(yùn)算符連接而成,關(guān)系表達(dá)式的值為0或1。 【例】設(shè)x1,y2,z3,分析下面的關(guān)系表達(dá)式的值。 x!=y=z-2,1,2020/9/18,2.4.5 邏輯運(yùn)算符和邏輯表達(dá)式 1、邏輯運(yùn)算符,2020/9/18,2、邏輯表達(dá)式 用邏輯運(yùn)算符將若干不同類(lèi)型的表達(dá)式連接而成的式子稱為邏輯表達(dá)式。 邏輯表達(dá)式的值應(yīng)該是一個(gè)邏輯量“真”或“假”。c語(yǔ)言編譯系統(tǒng)在給出邏輯運(yùn)算結(jié)果時(shí),判斷一個(gè)量是否為“真”時(shí),以0代

17、表“假”,以非0代表“真”。 【例】設(shè)int a0,b2,c3;判斷下面邏輯表達(dá)式的值。 a0 , a0 | b0 | c0 , !a,2020/9/18,使用邏輯表達(dá)式時(shí),要注意的問(wèn)題: 代數(shù)中的不等式00) (b)圖是右移4位后的情況。目的是使要取出的那幾位移到最 右端。右移到右端可以用下面方法實(shí)現(xiàn): a 4。,2020/9/18,第二步: 設(shè)置一個(gè)低4位全為1,其余全為0的數(shù)??捎孟旅娣椒▽?shí)現(xiàn): ( 0 4 ) 0的全部二進(jìn)制為全1,左移4位,這樣右端低4位為 0。見(jiàn)下面所示: 0:0000000000 0: 1111111111 04:1111110000 (04):000000111

18、1,2020/9/18,第三步: 將上面二者進(jìn)行 scanf(“%f”, ,2020/9/18,第三章 順序結(jié)構(gòu)程序設(shè)計(jì),2020/9/18,程序從執(zhí)行流程的可以分為三種基本結(jié)構(gòu): 順序結(jié)構(gòu) 分支結(jié)構(gòu) 循環(huán)結(jié)構(gòu) 3.1 用于順序結(jié)構(gòu)的基本語(yǔ)句 C語(yǔ)言用于順序結(jié)構(gòu)的基本語(yǔ)句是表達(dá)式語(yǔ)句、復(fù)合語(yǔ)句和空語(yǔ)句。 3.1.1 表達(dá)式語(yǔ)句,2020/9/18,表達(dá)式語(yǔ)句的形式: 表達(dá)式; 【例】a1; 【功能】完成計(jì)算表達(dá)式的值或?qū)⒔Y(jié)果賦給某一變量的任務(wù); 【例】i+; 【例】printf(“bye!”); 【例】x=y+z;,2020/9/18,表達(dá)式語(yǔ)句中最常用的是賦值語(yǔ)句(賦值表達(dá)式 + ;) 簡(jiǎn)單

19、賦值:變量表達(dá)式; 多重賦值:變量1變量2變量n表達(dá)式; 賦值表達(dá)式可以出現(xiàn)在任何表達(dá)式允許出現(xiàn)的地方,而賦 值語(yǔ)句則不能;,x=(y=2)+(z=3+y);,x=(y=2;)+(z=3+y;);,正確,錯(cuò)誤,2020/9/18,3.1.2 復(fù)合語(yǔ)句 復(fù)合語(yǔ)句的形式: 若干連續(xù)語(yǔ)句 ; 【例】 z=x; x=y; y=z; 注意: 中最后一個(gè)語(yǔ)句末尾的分號(hào)不能省略,并且在 之外不能再加“;”。 【應(yīng)用范圍】復(fù)合語(yǔ)句主要用于選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中。,返回,2020/9/18,3.1.3 空語(yǔ)句 空語(yǔ)句的形式: ; 【功能】一般作為程序的轉(zhuǎn)向點(diǎn)或作為循環(huán)語(yǔ)句中的空循環(huán)體;,2020/9/18,3.2

20、 輸入與輸出 C語(yǔ)言的輸入和輸出函數(shù)(原型放在頭文件stdio.h中): putchar(字符輸出); printf(格式輸出); getchar(字符輸入); scanf(格式輸入);,2020/9/18,3.2.1 數(shù)據(jù)的輸出 1、putchar函數(shù) 功能:在顯示器上輸出一個(gè)字符。 函數(shù)調(diào)用形式:putchar (參數(shù)) 說(shuō)明:參數(shù)可以是一個(gè)字符型變量、一個(gè)整型變量或一個(gè)字符型常量(包括控制字符和轉(zhuǎn)義字符)等。 【例】使用庫(kù)函數(shù)putchar()輸出各種字符。,2020/9/18,include main( ) char ch1, ch2; int j; ch1=C; ch2=h; j=1

21、05;,putchar(ch1);,putchar(ch2);,putchar(j);,putchar(n);,putchar(141);,putchar(n);,輸出字符C,輸出字符h,輸出字符i,輸出字符n,輸出字符a,141是轉(zhuǎn)義字符,輸出換行,2020/9/18,2、printf函數(shù) 1)函數(shù)形式: printf(“格式控制字符串”,輸出項(xiàng)1,輸出項(xiàng)2,) 函數(shù)功能:將各輸出項(xiàng)(可以是變量、常量、表達(dá)式)的值按指定的格式輸出到屏幕上。 【例】 printf( “%dn”,x ); 2) printf函數(shù)中常用的格式控制 形式:,2020/9/18,格式字符, 格式修飾 ,格式說(shuō)明總是由

22、“”字符開(kāi)始,標(biāo)志、類(lèi)型修飾、輸出最小寬度和精度,說(shuō)明輸出項(xiàng)類(lèi)型,格式字符 見(jiàn)P32表3.1; 【例】printf(“xd,y=fn”,x,y); 【例】main() char c=A; int x=1234; float y=-123.456789; printf(“|%c|%s|%d|%f|%e|n”,c,“Hello”,x,y,y); ,2020/9/18,標(biāo)志 -表示輸出值左對(duì)齊,右邊補(bǔ)空; 【例】 printf(”-d”,-24); 運(yùn)行結(jié)果:-24 +表示輸出結(jié)果右對(duì)齊,輸出符號(hào)位; 對(duì)o格式輸出時(shí)加前綴0,對(duì)x格式輸出時(shí)加前綴0 x,對(duì) e、g、f格式當(dāng)結(jié)果有小數(shù)時(shí)才給出小數(shù)點(diǎn);

23、,2020/9/18,精度 m .n 【例】printf(“8.1f”,123.45); 輸出結(jié)果: 123.5 輸出寬度 用十進(jìn)制整數(shù)限定輸出數(shù)據(jù)的位數(shù): 【例】printf(“5d”,-24); 運(yùn)行結(jié)果: -24,數(shù)據(jù)總寬度,小數(shù)位數(shù),2020/9/18,類(lèi)型修飾 h表示輸出項(xiàng)是短整型或無(wú)符號(hào)短整型; l表示輸出項(xiàng)是長(zhǎng)整型或無(wú)符號(hào)長(zhǎng)整型; 【例】 long int x1234567; printf(”|%ld|%d|”, x, x); 輸出結(jié)果:|1234567|-10617|,2020/9/18,【例】printf函數(shù)應(yīng)用舉例。 include main( ) int x =28; f

24、loat y =-1.7; char c =B; double z =1.25e+7; printf(“x=%+5d, y=%-8.3fn”, x, y); printf(“|%c#%-5c|n”, c, c); printf(“z=%lfn”, z); ,x= +28,y=-1.700 ,|B#B |,Z=12500000.000000,2020/9/18,3.2.2 數(shù)據(jù)的輸入 1、getchar函數(shù) 調(diào)用形式:cgetchar( ) 功能:從鍵盤(pán)上讀取一個(gè)字符; 【例】include main( ) char ch; ch=getchar( ); printf(“%c:%dn”, ch,

25、 ch); ,include main( ) char ch; ch=getchar( ); printf(“c:%dn”, ch, ch); ,2020/9/18,2、scanf函數(shù) 1)函數(shù)調(diào)用 形式: scanf(“格式控制字符串”,輸入項(xiàng)1,輸入項(xiàng)2,) 函數(shù)功能:按指定的格式接收由鍵盤(pán)輸入的數(shù)據(jù),并存入輸入項(xiàng)變量所在的內(nèi)存單元中。 格式控制字符串形式: 格式修飾 格式字符,輸入項(xiàng)必須為地址引用: printf(“Input datas:”); scanf(“%3d”, ,2020/9/18,【例】不借助于第3個(gè)變量,將鍵盤(pán)輸入的兩個(gè)整數(shù)賦予變量a和b,程序輸出a,b的原始值以及相互交

26、換后的值。 include main( ) int a,b; printf(“Input a and b:”); scanf(“%d%d”, ,a,b,a,b,a,b,a,b,2020/9/18,第四章 選擇結(jié)構(gòu)程序設(shè)計(jì),2020/9/18,順序結(jié)構(gòu)與選擇結(jié)構(gòu)流程對(duì)照,順序結(jié)構(gòu),選擇結(jié)構(gòu),p代表一個(gè)條件,當(dāng)p條件成立(或稱為“真”)時(shí)執(zhí)行A,否則執(zhí)行B。注意,只能執(zhí)行A或B之一。兩條路徑匯合在一起然后出口。,2020/9/18,兩個(gè)選擇結(jié)構(gòu)的程序?qū)嵗?【例】if條件語(yǔ)句。 if(x0) return 1; else return 1; 【例】switch多分支選擇語(yǔ)句。 switch (mo

27、nth) case 1: case 3: day=31; case 4: case 6: day=30; ,2020/9/18,4.1 if語(yǔ)句 4.1.1 if語(yǔ)句的三種基本形式 1、if結(jié)構(gòu) if語(yǔ)句單分支選擇結(jié)構(gòu)的語(yǔ)法形式是: if(表達(dá)式) 語(yǔ)句1; 【例】if( x0 ) y=1; 其中“x0”是一個(gè)關(guān)系表達(dá)式。,語(yǔ)義圖,表達(dá)式,語(yǔ)句1,非0,0,2020/9/18,【例】下列錯(cuò)誤的語(yǔ)句是( )。 A)if(ab) printf(“%d”,a); B)if(a0) ; a=n; C)if(2) a=m; D)if(,D,2020/9/18,【例】輸入一個(gè)整數(shù),判斷其奇偶性,若為奇數(shù)就

28、顯示輸出。按照語(yǔ)法含義圖寫(xiě)出程序的流程,并編寫(xiě)程序代碼:,是奇數(shù)嗎?,用printf語(yǔ)句輸出,否,是,2020/9/18,程序如下: #include main( ) int x; scanf(“x=%d”, 運(yùn)行結(jié)果:x7 7 is odd number,2020/9/18,2、if else結(jié)構(gòu) if語(yǔ)句雙分支選擇結(jié)構(gòu)的語(yǔ)法形式為: if(表達(dá)式) 語(yǔ)句1 ; else 語(yǔ)句2 ; 【例】if( x0 ) y=1; else y=-1;,語(yǔ)義圖,2020/9/18,【例】輸入一個(gè)整數(shù),判斷其奇偶性,若為奇數(shù)就顯示輸出是奇數(shù);若是偶數(shù),顯示輸出是偶數(shù)。按照語(yǔ)法含義圖寫(xiě)出程序的流程,并編寫(xiě)程序

29、代碼:,是奇數(shù)嗎?,輸出是奇數(shù)信息,否,是,輸出是偶數(shù)信息,2020/9/18,程序如下: #include main( ) int x; scanf(“x=%d”, 運(yùn)行結(jié)果:x8 8 is even number,2020/9/18,【例】從鍵盤(pán)上輸入兩個(gè)整數(shù),輸出其中的大數(shù)。 寫(xiě)出選擇結(jié)構(gòu)的語(yǔ)義圖:,2020/9/18,【練習(xí)題目】從鍵盤(pán)上輸入兩個(gè)整數(shù),輸出其中的大數(shù)。 include main( ) int x, y; printf(“Enter x and y:”); /*為了提高程序的可讀性*/ scanf(“%d%d”, ,2020/9/18,思考問(wèn)題: 1、如果雙邊if語(yǔ)句 i

30、f(表達(dá)式) 語(yǔ)句1; else 語(yǔ)句2; 語(yǔ)句1和語(yǔ)句2是個(gè)語(yǔ)句體,該如何表示? 【例】比較a和b的大小,如果ab,交換a和b的值,否則什么都不做。 #include main( ) int a,b,c; scanf(%d%d, ,2020/9/18,復(fù)合語(yǔ)句,原因在于: #include main( ) int a,b,c; scanf(%d%d, ,2020/9/18,【例題】如果ab,則借助于變量c實(shí)現(xiàn)a和b的交換;否則,a,b,c保持原值不變。 #include main( ) int a,b,c; a=10;b=50;c=30; if(ab) c=b,b=a; a=c; print

31、f(“a=%d,b=%d,c=%d”,a,b,c); ,2020/9/18,3、ifelse if結(jié)構(gòu) ifelse if語(yǔ)句為多分支選擇結(jié)構(gòu),一般形式為: if(表達(dá)式1) 語(yǔ)句1; else if(表達(dá)式2) 語(yǔ)句2; else if (表達(dá)式3 ) 語(yǔ)句3; else if(表達(dá)式n) 語(yǔ)句n; else 語(yǔ)句n+1;,2020/9/18,多分支選擇結(jié)構(gòu)ifelse if語(yǔ)句的語(yǔ)義圖:,2020/9/18,【例】有一函數(shù): -1 (x0) 分析: 輸入 x 如果 x 0,則y = 1 輸出y;,2020/9/18,2020/9/18,4.1.2 if語(yǔ)句的嵌套形式 在if語(yǔ)句中又包含一個(gè)

32、或多個(gè)if語(yǔ)句稱為if語(yǔ)句的嵌套。,語(yǔ)義圖,if(表達(dá)式) if(表達(dá)式11) 語(yǔ)句1; else 語(yǔ)句2; else if(表達(dá)式22) 語(yǔ)句3; else 語(yǔ)句4; 語(yǔ)法形式,2020/9/18,【使用注意事項(xiàng)】else子句總是與它前面最近的、尚未配對(duì)的if子句進(jìn)行匹配; 【例】if(a= =b) if(b= =c) printf(“a=b=cn”); else printf(“b!=cn”);,2020/9/18,4.2 條件表達(dá)式 條件運(yùn)算條件運(yùn)算符連接表達(dá)式構(gòu)成的運(yùn)算; 1、條件運(yùn)算符 形式: ? : 2、條件表達(dá)式 形式:表達(dá)式1?表達(dá)式2:表達(dá)式3 語(yǔ)義:先計(jì)算表達(dá)式1的值,若結(jié)

33、果為非0,則以表達(dá)式2的值作為整個(gè)條件表達(dá)式的值;若為0,則以表達(dá)式3的值作為整個(gè)表達(dá)式的值;,2020/9/18,執(zhí)行過(guò)程如下:,2020/9/18,【例】(x0)?1:-1,若表達(dá)式1為真,返回1,否則返回-1,說(shuō)明: 表達(dá)式2和表達(dá)式3通常為同類(lèi)型,若不同則整個(gè)條件表達(dá) 式的數(shù)據(jù)類(lèi)型取兩個(gè)表達(dá)式中較高的類(lèi)型; 各類(lèi)運(yùn)算符的優(yōu)先級(jí):,算術(shù)運(yùn)算符 關(guān)系運(yùn)算符 邏輯運(yùn)算符 條件運(yùn)算符 賦值運(yùn)算符,高,低,表達(dá)式1,表達(dá)式2,表達(dá)式3,2020/9/18,條件運(yùn)算符的結(jié)合方向是“自右至左”的; 【例】 ab?a:cd?c:d,ab ? a:(cd?c:d),【例】設(shè)有:int a1,b2,c=3

34、,d4,m2,n2;求下列表達(dá)式的值。 (1)a+bc?m*a:m*b,4,2020/9/18,4.3 switch語(yǔ)句 【例】統(tǒng)計(jì)在輸入過(guò)程中,字符Z,W,C,Q出現(xiàn)的次數(shù),用變量z,w,c,q分別統(tǒng)計(jì)出現(xiàn)的字符Z,W,C,Q 的次數(shù)。 if (ch=Z) z=z+1; else if (ch=W) w=w+1; else if (ch=C) c=c+1; else if (ch=Q) q=q+1;,2020/9/18,1、switch語(yǔ)句的結(jié)構(gòu) 形式:switch(表達(dá)式) case 常量表達(dá)式1:語(yǔ)句1; case 常量表達(dá)式2:語(yǔ)句2; case 常量表達(dá)式n:語(yǔ)句n; default

35、:語(yǔ)句n+1;,2020/9/18,用switch語(yǔ)句改寫(xiě)上面的程序: switch(ch) case Z: z=z+1; case W: w=w+1; case C: c=c+1; case Q: q=q+1; 【例】要求按照考試成績(jī)等級(jí)打印出百分制分?jǐn)?shù)段可以用switch語(yǔ)句實(shí)現(xiàn): 流程圖見(jiàn)下圖:,2020/9/18,2020/9/18,根據(jù)語(yǔ)義圖寫(xiě)出switch語(yǔ)句結(jié)構(gòu):,2020/9/18,2020/9/18,運(yùn)行結(jié)果:,2020/9/18,2020/9/18,2、switch與break配合使用 break語(yǔ)句是中斷語(yǔ)句,常與switch語(yǔ)句配合使用,程序執(zhí)行到break語(yǔ)句時(shí),跳出

36、switch語(yǔ)句體。 用switch和break語(yǔ)句改寫(xiě)上面的程序:,2020/9/18,運(yùn)行結(jié)果:,2020/9/18,【例】從鍵盤(pán)輸入一個(gè)分?jǐn)?shù),使用switch語(yǔ)句判斷是否及格。,2020/9/18,錯(cuò)誤,【例】下述程序段中,正確的是( )。 A)int x=0,y=10; switch(x) case y: x+; break; case y+2: x+=10; break; case y-1: x=-7; break; ,2020/9/18,B)int x=0,y; switch(x) case x0: y=1; break; case x= =0: y=0; break; case

37、x0: y=-1; break; ,錯(cuò)誤,2020/9/18,C)#define y 20 int x=10,y; switch(x) case 12: z=3; break; case y+1: x+=10; break; case y-8: x-=3; break; ,錯(cuò)誤,2020/9/18,D)int x=0,y; switch(x) case 3: case -1: y=2;break; case 2: break; ,正確,2020/9/18,4.4 應(yīng)用舉例 【例】判斷從鍵盤(pán)輸入的字符是否為小寫(xiě)字母,若是,則將其轉(zhuǎn)換為大寫(xiě)字母并輸出;若不是,則原樣輸出。 流程圖如下所示:,是小寫(xiě)

38、字母嗎?,轉(zhuǎn)換為大寫(xiě)字母,原樣輸出,是,否,2020/9/18,#include main( ) char ch; printf(“please input a character:”); scanf(“%c”, ,2020/9/18,【例】編寫(xiě)程序,判斷某一年是否閏年(不用嵌套的if語(yǔ)句來(lái)解決)。 分析題目:判斷某一年是否是閏年的表達(dá)式。,#include main( ) int year; printf(please input year:); scanf(%d, ,2020/9/18,【例】編寫(xiě)程序,判斷某一年是否閏年(用嵌套的if語(yǔ)句)。 分析題目:我們用下圖來(lái)表示判別閏年的算法。以變

39、量leap代表是否閏年的信息。若某年為閏年,則令leap=1;若為非閏年,令leap=0。最后判斷l(xiāng)eap是否為1(真),若是,則輸出“閏年”信息。,2020/9/18,編寫(xiě)程序如下: include main( ) int year, leap; scanf(d, x=a; y=t; z=b; printf(“The line 1 is:%c%c%cn”,x,y,z); printf(“The line 2 is:%c%c%c%cn”,x,y,y,z); ,運(yùn)行結(jié)果為:,2020/9/18,【習(xí)題2】編寫(xiě)程序,輸入一個(gè)3位的正整數(shù),分別以順序和倒序按列輸出其中的每一位數(shù)字。 例如:輸入 51

40、9 輸出 5 9 1 1 9 5,2020/9/18,#include,main( ),printf(“x=?”); /*提高程序的可讀性*/,scanf(“%3d”,a=x/100;,b=(x-a*100)/10;,c=x%10;,printf(“%d %dn%d %dn%d %dn”,a,c,b,b,c,a);,int a,b,c,x;,2020/9/18,【習(xí)題3】閱讀程序,預(yù)測(cè)程序的輸出值。,main( ),unsigned v=65535;,w =“programming”;,printf(“%d,%2d,%6d,%06dn”,i,i,i,i);,printf(“%08dn”,v);

41、 ,printf(“%11.7sn”,w);,int i=1234,j=047;,#include,printf(“%d”,j);,1234,1234,_1234,001234,_program,-0000001,39,2020/9/18, 216=65536 65535=216-1,65535=216-1,216=65536,2020/9/18,【習(xí)題4】對(duì)下面的程序按題目要求完成規(guī)定的操作。,include main( ) int a,b;float x,y; char c1,c2; scanf(“ (1) ”, ,a=12 b=678,x=34.55 y=1.81930e+02,c1=$

42、 c2= else x=2; else x=3; else x=4 else x=5;,程序錯(cuò)在哪里了?,2020/9/18,畫(huà)出語(yǔ)義圖:,a0,真,假,b0,真,假,x=4,c0,x=3,假,真,x=1,c0,x=2,真,假,2020/9/18,改寫(xiě)以后的程序:,x=5;,if(a0),if(b0), if(c0),x=1;,else if(c0),x=2; ,else x=3;,else x=4;,分段函數(shù):,2020/9/18,【習(xí)題6】用switch語(yǔ)句編寫(xiě)程序?qū)崿F(xiàn)下面的函數(shù)計(jì)算。,#incldue,main( ), float x,y;,scanf(“%f”,switch(int)x

43、) case 0:y=x*x; break; case 1:y=x*x-5; break; case 2:y=x*x-2*x-1; break; case 3:y=x*x+6*x-18; break; default:exit( ); ,printf(“x=%f,y=%fn”,x,y); ,2020/9/18,第五章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì),2020/9/18,循環(huán)的邏輯含義:當(dāng)滿足某個(gè)特定的條件時(shí),重復(fù)執(zhí)行某段程序,直到條件不滿足為止。兩種循環(huán)結(jié)構(gòu):,循環(huán)結(jié)構(gòu)主要用于解決當(dāng)符合某個(gè)特定條件時(shí)需要重復(fù)執(zhí)行某一操作的問(wèn)題。例如,要輸入全校學(xué)生成績(jī);求若干個(gè)數(shù)之和;迭代求根等。循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)的

44、基本結(jié)構(gòu)。,2020/9/18, 當(dāng)型循環(huán)結(jié)構(gòu)見(jiàn)圖1。當(dāng)P條件成立(“真”)時(shí),反復(fù)執(zhí)行A操作。直到P為“假”時(shí)才停止循環(huán)。,圖1 當(dāng)型循環(huán)結(jié)構(gòu), 直到型循環(huán)結(jié)構(gòu)見(jiàn)圖2。先執(zhí)行A操作,再判斷P是否為“真”,若“真”,再執(zhí)行A,如此反復(fù),直到P為“假”為止。,2020/9/18,在C語(yǔ)言中,用于循環(huán)結(jié)構(gòu)的三種程序設(shè)計(jì)語(yǔ)句有: (1) 用while語(yǔ)句(當(dāng)型循環(huán)結(jié)構(gòu)); (2) 用do-while語(yǔ)句(直到型循環(huán)結(jié)構(gòu)); (3) 用for語(yǔ)句(當(dāng)型循環(huán)結(jié)構(gòu))。,2020/9/18,5.1 while語(yǔ)句 1、while語(yǔ)句的形式和語(yǔ)義,C關(guān)鍵字,判別循環(huán)體執(zhí)行與否的條件,while語(yǔ)句的語(yǔ)義圖,形

45、式: while(表達(dá)式) 循環(huán)體; ,需要重復(fù)執(zhí)行的動(dòng)作,2020/9/18,【例】 k4; while(k2) printf(“ *”); k- -1; printf(”kd”,k);,運(yùn)行結(jié)果為:*k=2,循環(huán)體可以是單語(yǔ)句、多語(yǔ)句或空語(yǔ)句;若為多語(yǔ)句,則必須用一對(duì)大括號(hào)括起來(lái)。,2020/9/18,【例】 k4; while(k2) printf(“ *”); kk+1; printf(”kd”,k);,循環(huán)體中應(yīng)該有不斷修改表達(dá)式的值,使循環(huán)能夠趨于結(jié)束,否則將造成死循環(huán)。,2020/9/18,2)while語(yǔ)句與if語(yǔ)句的區(qū)別,2020/9/18,【例】用while語(yǔ)句逆序輸出26

46、個(gè)小寫(xiě)字母。,include ,main(), char ch;,while (ch=a), printf(“%c”,ch);,ch-;,ch=z;,涉及到循環(huán)語(yǔ)句時(shí),應(yīng)首先判斷循環(huán)條件,再判斷循環(huán)體都應(yīng)包含哪些操作,返回,2020/9/18,【例】對(duì)鍵盤(pán)輸入的字符統(tǒng)計(jì)并輸出其中數(shù)字字符的個(gè)數(shù),約定用換行符結(jié)束循環(huán)。,輸出數(shù)字字符的個(gè)數(shù),include ,main(), int n=0;char c;,c=getchar( );,while(c!=n),if(c=0,c=getchar( );,printf(“count=%dn”,n);,2020/9/18,5.2 do-while語(yǔ)句,1)

47、do-while語(yǔ)句的形式和語(yǔ)義,形式為: do 語(yǔ)句; while(表達(dá)式);,語(yǔ) 義 圖,2020/9/18,#include main( ) int i=0,sum=0; do i+; sum=sum+i ; while(i3) ; printf(“sum=%d”,sum); ,末尾的分號(hào)不能省略,循環(huán)體中使循環(huán)趨于結(jié)束的語(yǔ)句,循環(huán)體習(xí)慣用一對(duì)大括號(hào)括起來(lái),程序的運(yùn)行結(jié)果為:sum6,用while語(yǔ)句改寫(xiě)do-while語(yǔ)句: #include main( ) int i=0,sum=0; while(i3) i+; sum=sum+i ; printf(“sum=%d”,sum); 運(yùn)

48、行結(jié)果為:sum6,【例】閱讀程序?qū)懗龀绦蜻\(yùn)行結(jié)果。,2020/9/18,運(yùn)行結(jié)果:,運(yùn)行結(jié)果:,2)while與do-while循環(huán)的比較,2020/9/18,【思考題】對(duì)于下面的這個(gè)程序,如果循環(huán)體改為i+; sum=sum+i;后,在輸入一個(gè)數(shù)時(shí),結(jié)果會(huì)一樣嗎?,2020/9/18,【例】用dowhile語(yǔ)句逆序輸出26個(gè)小寫(xiě)字母的程序如下:,include ,main(), char ch;,do ,printf(“%c”,ch);,ch-;,while(ch=a);,ch=z;,循環(huán)條件在改錯(cuò)題中經(jīng)常出現(xiàn),While循環(huán),2020/9/18,C語(yǔ)言中的for語(yǔ)句可以用于循環(huán)次數(shù)已經(jīng)確

49、定的情況,還可以用于循環(huán)次數(shù)不確定而只給出循環(huán)結(jié)束條件的情況,它完全可以代替while語(yǔ)句。 1)for語(yǔ)句的語(yǔ)法形式和語(yǔ)義 for( 表達(dá)式1 ; 表達(dá)式2 ; 表達(dá)式3) 循環(huán)體; ,給循環(huán)控制變量賦初值,結(jié)束循環(huán)的控制條件,修改循環(huán)變量值,5.3 for語(yǔ)句,2020/9/18,for(循環(huán)控制變量賦初值;循環(huán)結(jié)束條件;修改循環(huán)變量的值) 循環(huán)體; ,For 語(yǔ) 句 的 語(yǔ)義圖,循環(huán)體,表達(dá)式1,表達(dá)式2,表達(dá)式3,2020/9/18,【例1】for( i=1; i4; i+ ) product=product*i;,【例2】 for( ; i3; i+ ) product=produc

50、t*i;,for語(yǔ)句的一般形式中的“表達(dá)式1”可以省略,此時(shí)應(yīng)在 for語(yǔ)句之前給循環(huán)變量賦初值。,i=1;,循環(huán)體,2020/9/18,【例3】i=1; for(product=1; i3; i+ ) product=product*i;,表達(dá)式1可以是設(shè)置循環(huán)變量初值的賦值表達(dá)式,也可以是與循環(huán)變量無(wú)關(guān)的其他表達(dá)式。,循環(huán)體,2020/9/18,【例4】i=1; for( ; i5; ) product=product*i; i+; ,可以省略表達(dá)式1和表達(dá)式3,只有表達(dá)式2,即只給循環(huán)條件,在這種情況下,完全等同于while語(yǔ)句,因此在循環(huán)體內(nèi)必須有改變循環(huán)變量的語(yǔ)句。,循環(huán)體,2020

51、/9/18,i=1; for( ; ; ) if(i5) product=product*i; i+; ,for語(yǔ)句的各表達(dá)式都可以省略,但分號(hào)間隔符不能少;三個(gè)表達(dá)式都可省略;但在循環(huán)體有控制循環(huán)結(jié)束的語(yǔ)句。,【例5】,2020/9/18,【例】編寫(xiě)求n!的程序,即計(jì)算1*2*3*4*n的值,并輸出。,輸入n,定義變量區(qū)域,設(shè)計(jì)一個(gè)循環(huán)結(jié)構(gòu)來(lái) 計(jì)算1*2*n的值,輸出最終的結(jié)果,2020/9/18,# include ,main( ),int i,n,result=1;,printf(“Enter n:”); /*提高程序的可讀性*/,scanf(“%d”,for(i=1;i=n;i+),r

52、esult=result*i;,printf(“%d!=%dn”,n,result);,循環(huán)結(jié)構(gòu):循環(huán)變量的初值、循環(huán)結(jié)束條件、修改循環(huán)變量的表達(dá)式、循環(huán)體的內(nèi)容。,2020/9/18,5.4 循環(huán)結(jié)構(gòu)的嵌套 一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。內(nèi)嵌的循環(huán)中還可以嵌套循環(huán),這就是多層循環(huán)。三種循環(huán)(while循環(huán)、dowhile循環(huán)和for循環(huán))可以互相嵌套。例如,下面幾種都是合法的形式: (1) while( ) while( ) ,2020/9/18,(2) do do while( ); while( ); (3) for( ; ; ) for( ; ; ) ,202

53、0/9/18,(4) while( ) do while( ); (5) for( ; ; ) while( ) ,2020/9/18,(6) do for ( ; ; ) while( ); 【例】閱讀程序,看程序完成的是什么功能。,2020/9/18,# include main( ) int i, n, p, s; s=0; n=1; while(n=4) p=1; for (i=1; i=n; i+) p=p*i; s=s+p; n+; printf(“s=%dn”, s); ,n=4,Y,N,求解i=1,p=1;,i=n,p=p*i,i+,Y,N,s=s+p; n+;,功能:求1!+

54、2!+3!4!,2020/9/18,5.5 循環(huán)結(jié)構(gòu)中的中斷與轉(zhuǎn)移 5.5.1 break語(yǔ)句 形式: break;,【例】 while(1) while( 1 ) break; ,功能:用在當(dāng)前循環(huán)中,使程序跳出最近一層的循環(huán)體,終止 當(dāng)前的循環(huán);,2020/9/18,【例】for (x=1,y=3;x3) break; printf(“y=%dn”,y);,當(dāng)for循環(huán)執(zhí)行到y(tǒng)=y+x時(shí),y的值已經(jīng)大于3,此時(shí)執(zhí)行break語(yǔ)句,直接跳出for循環(huán),執(zhí)行for循環(huán)下面的打印語(yǔ)句。,2020/9/18,5.5.2 continue語(yǔ)句,形式:continue;,功能:從當(dāng)前的循環(huán)點(diǎn)退出,開(kāi)始

55、下一輪循環(huán),即結(jié)束本次循 環(huán),轉(zhuǎn)入下一次循環(huán)條件的判斷與執(zhí)行,并不結(jié)束循環(huán);,2020/9/18,【例】統(tǒng)計(jì)并輸出1到200之間能被3整除的數(shù)及其個(gè)數(shù)。,main( ),# include , int i, x, count=0;,for (i=1; i=200; i+), if (i%3!=0) continue;,count+;,printf(“%d ” , i);,printf(“ncount=%d”, count);,2020/9/18,5.5.3 goto語(yǔ)句(自修) 形式:goto L;,功能:其中L為程序中某語(yǔ)句的標(biāo)號(hào),執(zhí)行g(shù)oto語(yǔ)句,程序 流程無(wú)條件地轉(zhuǎn)移到標(biāo)號(hào)為L(zhǎng)的語(yǔ)句處往下執(zhí)行。,2020/9/18,【例】編寫(xiě)程序,計(jì)算兩個(gè)正整數(shù)m和n的最大公約數(shù)和最小公倍數(shù)。,計(jì)算最大公約數(shù)的算法: (1)計(jì)算q=m%n; (2)判斷q值是否為0,若是,則n的值即為最大公約數(shù),否則令mn,nq,返回(1);,計(jì)算最小公倍數(shù)的算法:兩個(gè)數(shù)之積除以它們的最大公 約數(shù)。,5.6 循環(huán)結(jié)構(gòu)應(yīng)用舉例,2020/9/18,include main( ) int m,n,r,q; printf(“please inp

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論