第4章_最簡單的C程序設計——順序程序設計_第1頁
第4章_最簡單的C程序設計——順序程序設計_第2頁
第4章_最簡單的C程序設計——順序程序設計_第3頁
第4章_最簡單的C程序設計——順序程序設計_第4頁
第4章_最簡單的C程序設計——順序程序設計_第5頁
已閱讀5頁,還剩30頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第四章第四章 最簡單的最簡單的C C程序設計程序設計 順序程序設計順序程序設計南理工紫金學院南理工紫金學院2 2本章主要內容本章主要內容n4.1 C4.1 C語句概述語句概述n4.2 4.2 賦值語句賦值語句n4.3 4.3 數據輸入輸出的概念及在數據輸入輸出的概念及在c c語言中的實現語言中的實現n4.4 4.4 字符數據的輸入輸出字符數據的輸入輸出n4.5 4.5 格式輸入與輸出格式輸入與輸出n4.6 4.6 順序結構程序設計舉例順序結構程序設計舉例南理工紫金學院南理工紫金學院3 34.1 C4.1 C語句概述語句概述一、一、C C語句語句n用來向計算機系統發出操作命令用來向計算機系統發出

2、操作命令。一條語句經。一條語句經編譯后產生若干條編譯后產生若干條機器指令機器指令。n注意:注意:聲明部分的內容不應稱為語句。聲明部分的內容不應稱為語句。 例例: int a; int a; n函數體內可有若干條語句函數體內可有若干條語句( (在聲明部分的后面在聲明部分的后面) )。每條語句必須以分號結束。每條語句必須以分號結束。/不是不是C C語句,因為不產生機器操作語句,因為不產生機器操作南理工紫金學院南理工紫金學院4 4C C程序結構圖程序結構圖C C程序程序源程序文件源程序文件1 1源程序文件源程序文件2 2源程序文件源程序文件n n預處理命令預處理命令函數函數n n函數函數1 1數據聲

3、明數據聲明函數首部函數首部函數體函數體數據聲明數據聲明執行執行語句語句南理工紫金學院南理工紫金學院5 5二、二、C C語句的分類語句的分類5 5類類控制語句控制語句函數調用語句函數調用語句表達式語句表達式語句空語句空語句復合語句復合語句南理工紫金學院南理工紫金學院6 61. 1. 控制語句控制語句 if(if( ) ) else else 條件語句條件語句 for(for( ) ) 循環語句循環語句 while(while( ) ) 循環語句循環語句 do do while( while( ) ) 循環語句循環語句 continue continue 結束本次循環語句結束本次循環語句 swit

4、ch( ) switch( ) 多分支選擇語句多分支選擇語句 break break 中止執行中止執行switchswitch或循環語句或循環語句 goto goto 轉向語句轉向語句 return return 從函數返回語句從函數返回語句控制程序流程控制程序流程南理工紫金學院南理工紫金學院7 72. 2. 函數調用語句函數調用語句n函數調用語句函數調用語句:由一個:由一個函數調用函數調用加一個加一個分號分號構成構成n例例:printf(This is a C statement.);printf(This is a C statement.);3. 3. 表達式語句表達式語句n表達式語句:

5、表達式語句:由一個由一個表達式表達式加一個加一個分號分號構成構成n例例:賦值表達式后面加上分號稱為賦值表達式后面加上分號稱為賦值語句賦值語句 如:如:a=3a=3 a=3 a=3; ;/賦值表達式賦值表達式/賦值語句賦值語句南理工紫金學院南理工紫金學院8 84. 4. 空語句空語句 n空語句空語句:只有一個分號的語句。:只有一個分號的語句。(什么也不做)(什么也不做)n用途:用途:用來做流程的轉向點;用來做流程的轉向點; 用來作為循環語句中的空循環體。用來作為循環語句中的空循環體。5. 5. 復合語句復合語句n復合語句復合語句:用一對:用一對 括起來的語句括起來的語句n例如例如:while(i

6、100)while(i0 ) )0 ) t=a;t=a; 賦值表達式賦值表達式賦值語句賦值語句不能寫成不能寫成 if( (a=bif( (a=b; ; )0 ) t=a; )0 ) t=a; 南理工紫金學院南理工紫金學院10104.3 4.3 數據輸入輸出的概念及在數據輸入輸出的概念及在C C語言中語言中的實現的實現一、輸入輸出是以計算機主機為主體而言的一、輸入輸出是以計算機主機為主體而言的n輸出輸出q從計算機向輸出設備從計算機向輸出設備( (顯示器顯示器, , 打印機打印機) )輸出數據輸出數據q默認的輸出設備是顯示器默認的輸出設備是顯示器n輸入輸入q從輸入設備從輸入設備( (鍵盤鍵盤, ,

7、 鼠標鼠標) )向計算機輸入數據向計算機輸入數據q默認的輸入設備是鍵盤默認的輸入設備是鍵盤南理工紫金學院南理工紫金學院1111二、二、C C語言沒有輸入輸出語句語言沒有輸入輸出語句, ,輸入和輸出操作是通過調輸入和輸出操作是通過調用系統用系統庫函數庫函數來實現的來實現的三、在使用系統庫函數時三、在使用系統庫函數時, ,要用預編譯命令要用預編譯命令“#include”“#include”將有關的將有關的“頭文件頭文件”包括到用戶源文件中。包括到用戶源文件中。n例如:如果要用例如:如果要用printfprintf函數,必須在程序開頭有:函數,必須在程序開頭有: #include #include

8、或或 #include #include stdiostdio.h .h n例如:如果要用求平方根的函數例如:如果要用求平方根的函數sqrtsqrt,必須在程序開,必須在程序開頭有:頭有: #include #include mathmath.h .h 或或 #include #include 字符輸入函數字符輸入函數: getchar : getchar 字符輸出函數字符輸出函數:putchar:putchar格式輸入函數格式輸入函數: scanf : scanf 格式輸出函數格式輸出函數: printf: printf字符串輸入函數字符串輸入函數:gets :gets 字符串輸出函數字符串

9、輸出函數:puts:puts在在系統目錄系統目錄里找頭文件里找頭文件先在先在用戶目錄用戶目錄里找頭里找頭文件,找不到再到文件,找不到再到系系統目錄統目錄里找里找南理工紫金學院南理工紫金學院12124.4 4.4 字符數據的輸入輸出字符數據的輸入輸出一、字符輸出函數一、字符輸出函數putcharputcharn調用形式調用形式:putchar(putchar(參數參數c) c)n函數功能函數功能:向顯示器上輸出:向顯示器上輸出參數參數c c對應的字符對應的字符n注意:注意: qputcharputchar只能輸出一個字符!只能輸出一個字符!qputcharputchar函數所在的頭文件為函數所在

10、的頭文件為“stdio.hstdio.h”字符型字符型和和整型整型的的常量、變量、表達式常量、變量、表達式南理工紫金學院南理工紫金學院1313例:例:輸出單個字符。輸出單個字符。#include #include void main ( ) void main ( ) char c1char c1=a;=a;int int c2=98c2=98; ;putchar(c1);putchar(c1); putchar(c2);putchar(c2);putchar(99);putchar(99); putchar(c1+3);putchar(c1+3);putchar(e); putchar(e)

11、; putchar(n); putchar(n); 運行結果:運行結果:abcdeabcdePress any key to continuePress any key to continue/ /* * 輸出字符輸出字符a a * */ / /* * 輸出字符輸出字符b b * */ / /* * 輸出字符輸出字符c c * */ / /* * 輸出字符輸出字符d d * */ / /* * 輸出字符輸出字符e e * */ / /* * 換行換行 * */ /南理工紫金學院南理工紫金學院1414二、字符輸入函數二、字符輸入函數getchargetcharn一般形式一般形式:getchar(

12、getchar( ) )n函數作用:函數作用:從從鍵盤緩沖區鍵盤緩沖區輸入一個字符。輸入一個字符。n函數值:函數值:從輸入設備得到的字符。從輸入設備得到的字符。ngetchargetchar函數所在的頭文件為函數所在的頭文件為“stdio.hstdio.h”。例例4.2 4.2 輸入單個字符。輸入單個字符。#include #include void main ( )void main ( ) char c=getchar( );char c=getchar( );putchar(c);putchar(c);putchar(n);putchar(n); 運行結果:運行結果:a aa aPres

13、s any key to continuePress any key to continue南理工紫金學院南理工紫金學院1515注意:注意:ngetchargetchar只能接收一個字符只能接收一個字符,當輸入多個字符時,當輸入多個字符時,多余字符作廢!多余字符作廢!n用用getchargetchar得到的字符可以賦給得到的字符可以賦給字符型變量字符型變量、整整形變量形變量或或作為表達式的一部分作為表達式的一部分 例如例如:putchar(getchar()+2);putchar(getchar()+2);南理工紫金學院南理工紫金學院16164.5 4.5 格式輸入與輸出格式輸入與輸出一、格式

14、輸出函數一、格式輸出函數printfprintfn函數作用:函數作用:向終端(顯示器)輸出向終端(顯示器)輸出若干個若干個任意任意類型類型的數據。的數據。n調用形式:調用形式:printfprintf(格式控制(格式控制,輸出表列)輸出表列)雙引號雙引號括起來的字符串。括起來的字符串。l普通字符普通字符( (含含轉義字符轉義字符) ):原樣輸出:原樣輸出l格式說明:由格式說明:由%和和格式字符格式字符組成組成 如如%d%d、%c%c、%f%f等。作用是等。作用是將要輸將要輸出的數據按指定的格式輸出出的數據按指定的格式輸出。要輸出的數據。要輸出的數據。可以是可以是常量常量、變量變量、表達式表達式

15、。南理工紫金學院南理工紫金學院1717n例如:例如:printf(a=printf(a=%d%d, b=, b=%d%d, , a, a, b b); );普通字符普通字符格式說明格式說明輸出表列輸出表列n例如:例如:printf(Hello!);printf(Hello!);普通字符普通字符南理工紫金學院南理工紫金學院1818格式字符格式字符n%d d:以:以帶符號帶符號的的十十進制形式輸出進制形式輸出整數整數n%u u:以:以無符號無符號的的十十進制形式輸出進制形式輸出整數整數n%o o:以:以無符號無符號的的八八進制形式輸出進制形式輸出整數整數n%x/Xx/X:以:以無符號無符號的的十六

16、十六進制形式輸出進制形式輸出整數整數n%c c:以字符形式輸出,只輸出一個字符:以字符形式輸出,只輸出一個字符n%s s:輸出字符串:輸出字符串n%f f:以:以小數形式小數形式輸出單、雙精度數,隱含輸出輸出單、雙精度數,隱含輸出六六 位小數位小數n%e/Ee/E:以:以規范化指數形式規范化指數形式輸出實數輸出實數n%g/G%g/G:選用:選用%f%f或或%e%e格式中輸出寬度較短的一種格式中輸出寬度較短的一種 格式,不輸出無意義的格式,不輸出無意義的0 0(了解了解)南理工紫金學院南理工紫金學院1919格式字符的格式字符的修飾符修飾符nL/lL/l:用于:用于長整型長整型整數,可加在格式符整

17、數,可加在格式符d d、o o、x x、u u前面前面nh h:用于:用于短整型短整型整數,可加在格式符整數,可加在格式符d d、o o、x x、u u前前面面nm m( (正整數正整數) ):域寬。輸出項在輸出設備上所占字符:域寬。輸出項在輸出設備上所占字符( (列列) )數數n.n .n( (正整數正整數) ):精度。對于實數,表示輸出:精度。對于實數,表示輸出n n位小數;位小數;對于字符串,表示自對于字符串,表示自左左邊截取邊截取n n個字符個字符n- -:輸出的數字或字符在域內:輸出的數字或字符在域內左對齊左對齊(默認是(默認是右對右對齊齊)南理工紫金學院南理工紫金學院2020格式說

18、明完整的格式格式說明完整的格式% % - m .n l /h - m .n l /h 格式字符格式字符指定數據的輸出指定數據的輸出類型類型輸出輸出長度的修正長度的修正指定指定精度精度指定指定域寬域寬指定指定左對齊左對齊輸出輸出格式說明的格式說明的引導符號引導符號必須要有必須要有南理工紫金學院南理工紫金學院2121例:整型、字符型及字符串的輸出例:整型、字符型及字符串的輸出#include #include void main( )void main( ) int a = -1;int a = -1;char c = a;char c = a;printf(printf(%d%d, ,%X%X,

19、 ,%hx%hx, ,%#o%#o, , %u%un, a, a, a, a, a);n, a, a, a, a, a);printf(printf(%4d%4d, ,%-4d%-4dn, a, a);n, a, a);printf(printf(%3c%3c, ,%c%cn, c, c);n, c, c);printf(printf(%s%s, ,%7.2s%7.2sn, CHINA, CHINA);n, CHINA, CHINA); #:輸出前綴:輸出前綴南理工紫金學院南理工紫金學院2222浮點型數據的輸出浮點型數據的輸出 %f%f:不指定字段寬度,:不指定字段寬度,使整數部分全部輸出,并

20、輸使整數部分全部輸出,并輸出位小數出位小數。注意:在輸出的數字中并非全都是有效。注意:在輸出的數字中并非全都是有效數字數字 ( (單精度為單精度為7 7位位, ,雙精度為雙精度為15161516位位) ) 。 %lf%lf:輸出輸出doubledouble型型數。(實際效果與數。(實際效果與%f%f一樣)一樣) %.nf%.nf:輸出輸出位小數。位小數。%mf%mf、%-mf%-mf、%m.nf%m.nf、%-m.nf%-m.nf %e%e:以:以規范化指數形式規范化指數形式輸出,默認輸出,默認輸出輸出6 6位小數位小數。 %.ne%.ne 、%me%me、%-me%-me 、%m.ne%m.

21、ne、%-m.ne%-m.ne南理工紫金學院南理工紫金學院2323例:輸出浮點數時的有效位數。例:輸出浮點數時的有效位數。#include #include void main()void main() float x; float x; double y; double y; x=x=11134.6711134.678; 8; /共共8 8位數字位數字y=y=123456789237.8764123456789237.8764589987; 589987; /共共2222位數字位數字printf(x=printf(x=%f%f, x=, x=%lf%lfn, x, x);n, x, x);

22、printf(y= printf(y=%f%f, y=, y=%lf%lfn, y, y);n, y, y); 南理工紫金學院南理工紫金學院2424例例: : 以十進制小數形式、指數形式輸出浮點數以十進制小數形式、指數形式輸出浮點數#include #include void main ( )void main ( ) float f=123.456;float f=123.456; printf( printf(%f%f, , %.2f%.2f, , %-10.2f%-10.2fn, f, f, f);n, f, f, f);printf(printf(%e%e, ,%1010e e, ,

23、%.2E%.2E, , %-10.2e%-10.2en, f, f, n, f, f, f, f, f); f); VCVC中運行結果中運行結果:1.234561.234560 0e+002, 1.23456e+002, 1.234560 0e+002,1.2e+002,1.23 3E E+002, 1.2+002, 1.23 3e+002e+0021313列列9 9列列1010列列123.456123.456001001, 123.4, 123.46 6, 123.4, 123.46 6四舍五入四舍五入后的結果后的結果四舍五入四舍五入后的結果后的結果1313列不是列不是1010列列南理工紫金

24、學院南理工紫金學院2525說明:說明:n除了除了X X,E E,G G外,其他格式字符必須用外,其他格式字符必須用小寫小寫。n想想輸出字符輸出字符%,則應該在格式控制字符串中用連,則應該在格式控制字符串中用連續續兩個兩個%表示。如表示。如printf(printf(%););n調用調用printfprintf函數時若函數時若格式字符格式字符與與輸出項類型不匹配輸出項類型不匹配,系統系統不自動進行類型轉換不自動進行類型轉換,數據可能會出錯。,數據可能會出錯。n例如:例如:printf(%f,321);printf(%f,321);運行結果運行結果:0.0000000.000000printf(%

25、f, printf(%f, (float)(float)321);321);運行結果運行結果:321.000000321.000000printf(%d, 12.34);printf(%d, 12.34);運行結果運行結果:20615843022061584302printf(%printf(%f f, 12.34);, 12.34);運行結果運行結果:12.34000012.340000南理工紫金學院南理工紫金學院2626二、格式輸入函數二、格式輸入函數scanfscanfn調用形式調用形式:scanfscanf(格式控制,(格式控制,地址地址表列)表列)n函數作用函數作用:按:按格式說明格

26、式說明符符的要求,的要求,將從將從鍵盤鍵盤輸入輸入的數據傳送到的數據傳送到地址所指定的內存空間地址所指定的內存空間。雙引號雙引號括起來的字符串。括起來的字符串。l普通字符:普通字符:原樣輸入原樣輸入l格式說明:指定輸入數格式說明:指定輸入數據的格式。據的格式。是由是由若干個地址若干個地址組組成的表列,可以是成的表列,可以是變量的地址變量的地址,或,或字字符數組的首地址符數組的首地址南理工紫金學院南理工紫金學院27271. 1. 變量地址變量地址n將將地址運算符地址運算符& &作用于變量即可得到變量地址作用于變量即可得到變量地址n形式:形式:& &變量名變量名 n

27、例如:例如:&a&a 表示變量表示變量a a的內存的內存首地址首地址例例4.9 4.9 用用scanfscanf函數輸入數據。函數輸入數據。#include #include void main ( ) void main ( ) int a,b,c; int a,b,c; scanf(%d scanf(%d%d%d%d,%d,& &a, a,& &b, b,& &c);c); printf(%d,%d,%dn,a,b,c); printf(%d,%d,%dn,a,b,c); 運行結果:運行結果:3 34 45 53,4,53,4

28、,5Press any key to continuePress any key to continue兩個數據之間可以兩個數據之間可以用用1 1個或多個個或多個空格空格間隔,也可用間隔,也可用EnterEnter鍵鍵或或TabTab鍵鍵間隔間隔南理工紫金學院南理工紫金學院28282. 2.格式字符格式字符格式字符格式字符說明說明d d輸入輸入有符號有符號的的十十進制整數進制整數o o輸入輸入無符號無符號的的八八進制整數進制整數x/Xx/X輸入輸入無符號無符號的的十六十六進制整數進制整數( (大小寫作用大小寫作用相同相同) )u u輸入輸入無符號無符號的的十十進制整數進制整數c c輸入單個字符

29、輸入單個字符f f、e/Ee/E、g/Gg/G以小數形式或指數形式輸入浮點型數以小數形式或指數形式輸入浮點型數( (大小寫作用相同大小寫作用相同) )s s輸入字符串送到一個輸入字符串送到一個字符數組字符數組中中南理工紫金學院南理工紫金學院29293. 3.格式字符的修飾符格式字符的修飾符標標 志志意意 義義L/lL/l用于輸入長整型數據(用于輸入長整型數據(%ld%ld、%lo%lo、%lu%lu、%lx%lx)或用于輸入或用于輸入doubledouble型數據型數據( %lf%lf、%le%le)h h用于輸入短整型數據(用于輸入短整型數據(%hd%hd、%ho%ho、%hx%hx)域寬域

30、寬指定輸入數據所占寬度(列數),應為正整數指定輸入數據所占寬度(列數),應為正整數* *表示本輸入項在讀入后不賦給相應變量表示本輸入項在讀入后不賦給相應變量南理工紫金學院南理工紫金學院3030說明:說明:1. 1. 對對unsignedunsigned型變量所需要的數據,可以用型變量所需要的數據,可以用%u%u, %o %o ,%x%x或或%d%d格式輸入。格式輸入。2. 2. 可以指定輸入數據所占的列數可以指定輸入數據所占的列數( (域寬域寬) ),系統自動按,系統自動按它截取所需數據。它截取所需數據。n例如:例如:scanf(%3d%3d,&a,&b);scanf(%3d%

31、3d,&a,&b);3. 3. 如果在如果在%后有一個后有一個“* *”附加說明符,表示跳過它附加說明符,表示跳過它指定的列數。指定的列數。n例如:例如:scanf(%2d scanf(%2d %* *3d3d %2d,&a,&b); %2d,&a,&b);4. 4. 輸入數據時不能規定精度。輸入數據時不能規定精度。運行:運行:1231234564567878則系統將則系統將123123賦給賦給a a,456456賦給賦給b b運行:運行:1212345345678678則系統將則系統將1212賦給賦給a a,6767賦給賦給b bscanf(%

32、7scanf(%7.2 .2f,&d);f,&d);南理工紫金學院南理工紫金學院31315. scanf5. scanf函數中用函數中用“地址表列地址表列”,可以是,可以是變量地址變量地址,而,而不能是變量名不能是變量名。 6. 6. 在在“格式控制格式控制”字符串中若有字符串中若有普通字符普通字符,則在輸入,則在輸入時應時應照原樣輸入照原樣輸入。 n例如:例如:scanf(scanf(a=a=%d%d,b=,b=%d,&a,&b);%d,&a,&b);7. 7. 在用在用“%c”“%c”格式輸入字符時,格式輸入字符時,空格字符空格字符和和“轉義

33、字轉義字符符”都作為有效字符輸入都作為有效字符輸入 。n例如:例如:scanf(%cscanf(%c%c%c%c,&c1,&c2,&c3);%c,&c1,&c2,&c3);8. 8. 輸入數據給輸入數據給doubledouble型型變量時應用格式符變量時應用格式符%lf%lf而非而非%f%f。9. 9. 格式符應該與變量類型匹配格式符應該與變量類型匹配,否則數據會出錯。,否則數據會出錯。輸入:輸入:a=a=2323, , b=b=7 7輸入:輸入:a a 則將則將a a賦給賦給c1c1,空格賦給,空格賦給c2 c2 , 賦給賦給c3c3南理工紫金

34、學院南理工紫金學院32324.6 4.6 順序結構程序設計舉例順序結構程序設計舉例例例4.10 4.10 輸入三角形的三邊長,求三角形面積。輸入三角形的三邊長,求三角形面積。分析:分析:設三角形的三個邊長分別為設三角形的三個邊長分別為a a,b b,c c。n面積公式:面積公式:n其中,其中,s=(a+b+c)s=(a+b+c)* *0.50.5 )()(csbsassarea計算計算s s計算面積計算面積開始開始結束結束輸入三邊長輸入三邊長輸出信息輸出信息庫函數庫函數sqrtsqrt,頭文件,頭文件math.hmath.h原型:原型:double sqrt(double x);double

35、sqrt(double x);南理工紫金學院南理工紫金學院3333#include #include #include #include void main( )void main( ) floatfloat a, b, c, s, area; a, b, c, s, area; printf(Input a,b,c:); printf(Input a,b,c:); /輸出提示信息輸出提示信息 scanf(%fscanf(%f, ,%f%f, ,%f,%f,& &a, a,& &b, b,& &c);c); s= (a+b+c) s= (a+b+c) * *0.5;0.5; area= area=sqrt( sqrt( s s* *(s-a)(s-a)* *(s-b)(s-b)* *(s-c) (s-c)

溫馨提示

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

評論

0/150

提交評論