第3章 輸入輸出及順序結(jié)構(gòu)_第1頁
第3章 輸入輸出及順序結(jié)構(gòu)_第2頁
第3章 輸入輸出及順序結(jié)構(gòu)_第3頁
第3章 輸入輸出及順序結(jié)構(gòu)_第4頁
第3章 輸入輸出及順序結(jié)構(gòu)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第3 3章章 輸入輸出及順序結(jié)構(gòu)程序設(shè)計輸入輸出及順序結(jié)構(gòu)程序設(shè)計 3.1 C語句的概述3.2 常用輸出與輸入函數(shù)3.3順序結(jié)構(gòu)程序設(shè)計3.1 C語句的概述 q表達式語句 vC語言允許在任何一個表達式后面加一個分號“;”,構(gòu)成表達式語句。表達式語句的一般形式為: 表達式;表達式;v執(zhí)行表達式語句就是計算表達式的值。表達式語句常用來描述算術(shù)運算、邏輯運算或產(chǎn)生某種特定動作的語句。vC程序中,最常用的表達式語句是賦值語句,由賦值表達式加上一個分號構(gòu)成的。一般形式為: 變量變量 賦值運算符賦值運算符 表達式;表達式; 例如:sum=0.0; circuit=2*3.14*radius; s+=6;

2、3.1 C語句的概述賦值語句有計算的功能:賦值號左邊必須是變量名,右邊可以是常量、變量、運算符、函數(shù)以及由常量、變量、運算符、函數(shù)構(gòu)成的表達式。賦值語句是將右邊表達式的值賦給左邊的變量中去。 賦值表達式和賦值語句有區(qū)別:o賦值表達式是一種表達式,它可以出現(xiàn)在任何允許表達式出現(xiàn)的地方,而賦值語句則不能。 o給變量賦初值是變量聲明的一部分,賦初值后的變量與其后的其它同類變量之間仍必須用逗號間隔,而賦值語句則必須用分號結(jié)尾。o在變量聲明中,不允許連續(xù)給多個變量賦初值,而賦值語句允許連續(xù)賦值。3.1 C語句的概述q控制語句控制語句 v條件語句if ( )else (分支語句)switch ( ) (多

3、路分支選擇語句)v循環(huán)語句for ( ) (循環(huán)結(jié)構(gòu)語句)while ( ) (循環(huán)結(jié)構(gòu)語句)do while ( ) (循環(huán)結(jié)構(gòu)語句)v轉(zhuǎn)向語句goto (轉(zhuǎn)向語句)continue (結(jié)束本次循環(huán)語句)break (中止執(zhí)行switch或循環(huán)語句)return (函數(shù)返回語句)3.1 C語句的概述q函數(shù)調(diào)用語句函數(shù)調(diào)用語句v函數(shù)調(diào)用語句是由一次函數(shù)調(diào)用加一個分號構(gòu)成的一個語句。其一般形式為:函數(shù)名(實際參數(shù)表); v執(zhí)行函數(shù)語句就是調(diào)用函數(shù)體并把實際參數(shù)賦予函數(shù)定義中的形式參數(shù),然后執(zhí)行被調(diào)函數(shù)體中的語句,求取函數(shù)值。例如:printf(this is a C program.);q 空語

4、句空語句v空語句僅由一個分號(;)構(gòu)成。v程序執(zhí)行空語句時不產(chǎn)生任何動作。空語句有時用來做轉(zhuǎn)折點或延時,如循環(huán)語句中的循環(huán)體為空語句可起到延時的作用。3.1 C語句的概述q復(fù)合語句復(fù)合語句v復(fù)合語句是由一對花括號 括起來的一組語句。復(fù)合語句內(nèi)的各條語句都必須以分號結(jié)束,在括號“”外不能加分號。例如,實現(xiàn)a,b兩個變量值的交換* : t=a; a=b; b=t; 3.2 常用輸出與輸入函數(shù) 在使用標準庫函數(shù)時,要在進行調(diào)用這類函數(shù)的源程序的開始位置,包含一條編譯預(yù)預(yù)處理指令:#include stdio.h q 格式輸出函數(shù)格式輸出函數(shù) vprintf函數(shù)的格式 printf函數(shù)的功能是按指定格

5、式向終端(通常是顯示器)輸出若干個任意類型的數(shù)據(jù)。printf函數(shù)的一般調(diào)用形式為:printf(格式控制字符串,輸出表列);(格式控制字符串,輸出表列);例如:printf(Hello,World!); printf(The sum is :%fn,sum);3.2 常用輸出與輸入函數(shù)說明: 格式控制字符串 o格式控制字符串(簡稱格式串)必須用引號括起來,包括:普通字符:也就是需要原樣輸出的的字符信息。 格式說明符:簡稱格式符,由%開頭、后面緊跟一個格式描述符構(gòu)成。格式符的作用是指定要輸出的數(shù)據(jù)的輸出形式。轉(zhuǎn)義字符:以“”開頭的字符序列。轉(zhuǎn)義字符在輸出時按其含義完成相應(yīng)的控制功能。 輸出表列

6、 o輸出表列是需要輸出的數(shù)據(jù),可以是變量、常量或表達式。輸出表列可以是零項、一項或多項,若多于一項則各項之間用逗號分隔。o輸出表列和格式說明符在個數(shù)與類型上應(yīng)相匹配。 例如,printf(n x = %d , y = %f , x , y+1); 3.2 常用輸出與輸入函數(shù)vprintf的格式說明符 輸出類型 格式說明符 功 能 %d 輸出帶符號的十進制整數(shù) %o 輸出無符號的八進制整數(shù) %u 輸出無符號的十進制整數(shù) 輸出整型數(shù)據(jù) %x 輸出無符號的十六進制整數(shù) %c 輸出一個字符 輸出字符型數(shù)據(jù) %s 輸出一個字符串 %f 以小數(shù)形式輸出浮點數(shù),隱含輸出 6 位小數(shù) %e 以指數(shù)形式輸出浮點

7、數(shù),保留六位小數(shù) 輸出實型數(shù)據(jù) %g 由系統(tǒng)自動選取%e 或%f 格式符,使用二者中輸 出寬度較短者,且不輸出無意義的零 3.2 常用輸出與輸入函數(shù) 【例3.1】分析下列程序的輸出情況。 main( ) int a,b; float f1,f2,sum; char ch; a=66; b= 1; f1=3.1415; f2=11.88; sum=f1+f2; ch=X; printf(n%d ,%c ,%d,%o ,%f ,%c, %d ,a,a,b,b,sum,ch,ch); printf(%s,Very good!); 3.2 常用輸出與輸入函數(shù)輸出結(jié)果為: 66, B ,1 ,17777

8、7, 15.021500 ,X ,88 ,Very good!整型變量可以字符的形式輸出,而字符型變量也可以整數(shù)的形式輸出,ASCII碼是它們之間的橋梁; 使用格式說明符%f輸出時,整數(shù)部分全部如數(shù)輸出,小數(shù)部分按系統(tǒng)默認寬度(6位小數(shù))輸出。 printf函數(shù)的附加格式說明符附加格式說明符說 明字母l用于長整型整數(shù)和double類型實數(shù),可以加在格式字符d,o,x,u,f,e,g前面m (代表一個正整數(shù))數(shù)據(jù)的輸出寬度.n(代表一個正整數(shù))對實數(shù),表示輸出n位小數(shù);對字符串,表示截取的字符個數(shù) 輸出的數(shù)字或字符向左靠齊3.2 常用輸出與輸入函數(shù) o在%與格式符之間插入一個整數(shù)表示指定輸出的寬

9、度。若指定的輸出寬度大于實際數(shù)據(jù)的寬度,那么數(shù)據(jù)向右靠齊,左邊補空格;若指定的寬度小于實際數(shù)據(jù)的寬度,那么按實際數(shù)據(jù)的寬度輸出。o可以采用“m.n”的格式修飾格式符來輸出一個實數(shù),這里m和n是兩個整數(shù)。o對于字符串,采用“m.n”的附加格式符來修飾格式符表示指定字符串的總寬度為m,不足m則向右靠齊,左補空格。n表示指定截取實際字符串的前n個字符輸出。也可以省略m,不指定總寬度。 o可以在寬度之前加一個“”來指定輸出的數(shù)據(jù)向左靠齊。 【例3.2】分析下列程序的輸出情況。main( ) int a=5,b=7; float x=67.8564,y=-789.124; char c=A; long

10、n=1234567; 3.2 常用輸出與輸入函數(shù) unsigned long u=65535; printf(n %d%d ,a,b); printf(n %3d%3d ,a,b); printf(n %f,%f ,x,y); printf(n %-10f,%-10f ,x,y); printf(n %8.2f,%8.2f,%.4f,%.4f,%3f,%3f ,x,y,x,y,x,y); printf(n %e,%10.2e ,x,y); printf(n %c,%d,%o,%x ,c,c,c,c); printf(n %ld,%lo,%x ,n,n,n); printf(n %u,%o,%x

11、,%d ,u,u,u,u); printf(n %s,%5.3s ,COMPUTER,COMPUTER); 3.2 常用輸出與輸入函數(shù) 程序的運行結(jié)果是:57 5 767.856400,-789.12402367.856400,-789.124023 6 7 . 8 6 , - 7 8 9 . 1 2 , 6 7 . 8 5 6 4 0 0 , -789.124023,67.856400,-789.1240236.785640e+01,-7.9e+02A,65,101,411234567,4553207,d68765535,177777,ffff,-1COMPUTER,COM3.2 常用輸出與

12、輸入函數(shù)printf函數(shù)在使用時的注意事項printf函數(shù)可以輸出常量、變量和表達式的值。但格式控制中的格式符必須按從左到右的順序,與輸出項表中每個數(shù)據(jù)在類型上一一匹配,否則將導(dǎo)致數(shù)據(jù)輸出錯誤。類型轉(zhuǎn)換字符x,e,g可以用小寫字母,也可以用大寫字母。使用大寫字母時,輸出數(shù)據(jù)中包含的字母也要大寫。除x,e,g外,其他類型轉(zhuǎn)換字符必須用小寫字母,例如%f不能寫成%F。在輸入long整型數(shù)據(jù)時,一定要使用格式%ld。如果只用了%d,將輸出錯誤數(shù)據(jù)。若需要輸出百分號“%”,則應(yīng)在格式串中用連續(xù)的兩個百分號“%”表示。類型轉(zhuǎn)換字符緊跟在“%”后面時作為類型轉(zhuǎn)換字符,否則將作為普通字符處理。printf函

13、數(shù)的返回值通常是本次調(diào)用中輸出字符的個數(shù)。3.2 常用輸出與輸入函數(shù) q格式輸入函數(shù)格式輸入函數(shù) vscanf函數(shù)的格式 格式輸入函數(shù)scanf的功能是用來從外部輸入設(shè)備(通常是鍵盤),向程序中的變量輸入一個或多個任意類型數(shù)據(jù)。scanf( )函數(shù)的一般調(diào)用形式為:scanf(“格式控制格式控制”,地址表列);,地址表列);例如:scanf(%d%f,&n,&u);說明:o格式控制字符串 普通字符:普通字符在輸入數(shù)據(jù)時,必須在對應(yīng)位置上原樣輸入這些字符。格式說明符:用%開頭后面跟一個字母(也可以在其中間增加附加字符),它規(guī)定了輸入項對應(yīng)的輸入數(shù)據(jù)格式。同樣格式說明符要在個數(shù)和類

14、型上與輸入項相匹配。 3.2 常用輸出與輸入函數(shù) o地址表列地址表列中是要輸入數(shù)據(jù)的變量的存儲單元地址。 “&”是地址運算符 【例3.4】用scanf函數(shù)輸入數(shù)據(jù)。 main( ) int x,y,z; scanf(%d,%d,%d,&x,&y,&z); printf(x=%d,y=%d,z=%d,x, y, z); 程序運行時輸入: 1,2,3 輸出: x=1,y=2,z=3scanf函數(shù)的格式說明符oscanf函數(shù)常用的格式說明符oscanf函數(shù)常用的附加格式說明符 3.2 常用輸出與輸入函數(shù) 輸入類型 格式說明符 功能 %d 輸入十進制整數(shù) %u 輸入無符

15、號的十進制整數(shù) %o 輸入八進制整數(shù) 輸入整型數(shù)據(jù) %x 輸入十六進制整數(shù) %c 輸入單個字符 輸入字符型數(shù)據(jù) %s 輸入一個字符串,將字符串送到一個字符數(shù)組中。 輸入時以非空白字符開始, 以第一個空白字符結(jié)束。 %f 用小數(shù)形式或指數(shù)形式輸實數(shù)。 %e 同%f,e 與 f、g可以相互替換。 輸入實型數(shù)據(jù) %g 同%f,e 與 f、g可以相互替換。 scanf函數(shù)常用的格式說明符 3.2 常用輸出與輸入函數(shù) scanf函數(shù)常用的附加格式說明符 vscanf函數(shù)在使用時的注意事項 scanf函數(shù)沒有計算功能,因此輸入的數(shù)據(jù)只能是常量,而不能是表達式。輸入常整型和double類型的數(shù)據(jù)時必須在sc

16、anf函數(shù)的格式符中加l,否則輸入的數(shù)據(jù)不能被正確的接收。在輸入多個整型數(shù)據(jù)或?qū)嵭蛿?shù)據(jù)時,可以用一個或若干個空格、回車鍵或制表符(Tab)作為間隔。但在輸入多個字符型數(shù)據(jù)時,數(shù)據(jù)之間不可以使用分隔符。附加字符 功能 字母 l 用于輸入長整型數(shù)據(jù)和 double 類型數(shù)據(jù) 字母 h 用于輸入短整型數(shù)據(jù)%hd,%ho,%hx 域?qū)?m 指定輸入數(shù)據(jù)所占的列數(shù) * 表示本輸入形在讀入后不賦給相應(yīng)的變量。 3.2 常用輸出與輸入函數(shù)輸入格式中,除格式說明符之外的普通字符應(yīng)原樣輸入。如果指定了輸入數(shù)據(jù)的寬度,系統(tǒng)則自動按它截取所需的數(shù)據(jù)。在輸入實數(shù)時,不能規(guī)定小數(shù)位。 例如: scanf(“%4d%4d

17、%4d”,&x,&y,&z);輸入: 123434565678 則系統(tǒng)自動將1234 賦予x,將3456賦予y,將5678賦予z。%后面使用“*”附加符,表示跳過它相應(yīng)的數(shù)據(jù)。 例如: scanf(“%4d,%*4d,%4d”,&x,&y); 輸入: 1234,3456,5678 則系統(tǒng)將1234賦給x,將5678賦給y,而第二個數(shù)據(jù)“3456”被跳過不賦給任何變量。 由于scanf( )函數(shù)本身不具有顯示提示信息功能,為改善人機交互性,在設(shè)計輸入操作時,一般先用printf( )函數(shù)輸出提示信息,然后再用scanf( )函數(shù)進行數(shù)據(jù)輸入。 3.2 常用

18、輸出與輸入函數(shù) q字符輸出函數(shù)字符輸出函數(shù) vputchar( )函數(shù)的功能是將給定的一個字符常量、或一個字符變量、或者是一個字符型的表達式輸出到終端,一般情況下終端可以看成是顯示器屏幕。vputchar( )函數(shù)的一般調(diào)用形式為: putchar(c); 即把c的值輸出到顯示器上,這里的c可以是字符型變量或常量,可以是普通字符,也可以是轉(zhuǎn)義字符。 vputchar( )函數(shù)只能用于單個字符的輸出,并且一次只能輸出一個字符;vputchar( )函數(shù)在使用時,必須在程序(或文件)的開頭加上編譯預(yù)處理命令,即: #include “stdio.h” 3.2 常用輸出與輸入函數(shù)【例3.5】putc

19、har( )函數(shù)應(yīng)用舉例。#include stdio.hmain( ) char a,b,c,d; a=g; b=o; c=111; /*“111”是字母“o”的十進制ASCII碼*/ d=d; putchar(n); putchar(a); putchar(b); putchar(c); putchar(d);輸出結(jié)果為:good3.2 常用輸出與輸入函數(shù)q字符輸入函數(shù)字符輸入函數(shù) vgetchar( )函數(shù)的功能是從鍵盤取得一個用戶輸入的字符。并將此字符的ASCII碼值作為函數(shù)返回值。應(yīng)用時在程序中一般用另一個變量接收讀入的字符。vgetchar( )函數(shù)的一般調(diào)用形式為: c=getc

20、har( ); 執(zhí)行上面的調(diào)用時,變量c將得到用戶從鍵盤輸入的一個字符值,這里的c可以是字符型或整型變量。vgetchar( )函數(shù)只能用于單個字符的輸入,且一次只能輸入一個字符;vgetchar( )函數(shù)在使用時,必須在程序(或文件)的開頭加上編譯預(yù)處理命令,即: #include “stdio.h”3.2 常用輸出與輸入函數(shù)【例3.7】字符型數(shù)據(jù)的輸入舉例。#includestdio.hmain( ) char c1,c2; printf(nplease input No.1: ); c1=getchar(); putchar(c1); flushall(); printf(nplease

21、 input No.2: ); c2=getchar(); putchar(c2); printf(nend!);3.2 常用輸出與輸入函數(shù)則程序的運行情況為: please input No.1: aaplease input No.2: bbend!q順序結(jié)構(gòu)程序設(shè)計思想順序結(jié)構(gòu)程序設(shè)計思想 順序結(jié)構(gòu)的程序通常由三部分組成:v輸入數(shù)據(jù)v進行處理v輸出結(jié)果3.3順序結(jié)構(gòu)程序設(shè)計 【例3.8】已知長方體的長、寬和高,計算長方體的體積。 開始結(jié)束輸入長方體的長、寬和高輸出長方體的體積利用公式計算體積3.3順序結(jié)構(gòu)程序設(shè)計 main( ) float x, y,h,v; printf(ninput

22、 x, y, h:); scanf(%f,%f,%f,&x,&y,&h); /*輸入長方體的長、寬和高*/ v=x*y*h; /*計算長方體的體積*/ printf(n The volume is:,v); /*輸出長方體的體積*/ 3.3順序結(jié)構(gòu)程序設(shè)計q 順序結(jié)構(gòu)程序設(shè)計舉例順序結(jié)構(gòu)程序設(shè)計舉例 【例3.9】已知某個三角形的底和高,計算其面積。main( ) float width,height,area; printf(nEnter width and height:); /*輸出提示信息*/ scanf(%f,%f,&width,&height); /*輸入底和高*/ area=(width*height)/2.0; /*計算面積*

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論