c語言第3章 最簡單的C程序設計ppt課件_第1頁
c語言第3章 最簡單的C程序設計ppt課件_第2頁
c語言第3章 最簡單的C程序設計ppt課件_第3頁
c語言第3章 最簡單的C程序設計ppt課件_第4頁
c語言第3章 最簡單的C程序設計ppt課件_第5頁
已閱讀5頁,還剩104頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、3.1 順序程序設計舉例順序程序設計舉例3.2 數據的表現形式及其運算數據的表現形式及其運算3.3 C語句語句3.4 數據的輸入輸出數據的輸入輸出3.1順序程序設計舉例順序程序設計舉例 例3.1 有人用溫度計測量出用華氏法表示的溫度(如 F,今要求把它轉換為以攝氏法表示的溫度(如 C) 。解題思路:找到二者間的轉換公式解題思路:找到二者間的轉換公式)32(95fcf代表華氏溫度,代表華氏溫度,c代表攝氏溫度代表攝氏溫度3.1順序程序設計舉例順序程序設計舉例算法:算法:輸入輸入f的值的值輸出輸出c的值的值)32(95fc 例例3.1 有人用溫度計測量出用華氏法表有人用溫度計測量出用華氏法表示的溫

2、度示的溫度(如如 F,今要求把它轉換為以,今要求把它轉換為以攝氏法表示的溫度攝氏法表示的溫度(如如 C) 。N-S圖圖3.1順序程序設計舉例順序程序設計舉例)32(95f#include int main ( ) float f,c; f=64.0; c=(5.0/9)*(f-32); printf(f=%fnc=%fn,f,c); return 0; 定義定義f和和c為單精度浮點型變量為單精度浮點型變量指定指定f的值的值計算計算c的值的值輸出輸出f和和c的值的值3.1順序程序設計舉例順序程序設計舉例 例3.2 計算存款利息。有1000元,想存一年。有三種方法可選: (1)活期,年利率為r1

3、(2)一年期定期,年利率為r2 (3)存兩次半年定期,年利率為r3 請分別計算出一年后按三種方法所得到的本息和。3.1順序程序設計舉例順序程序設計舉例解題思路:確定計算本息和的公式。從數學知識可知:若存款額為p0,那么:活期存款一年后本息和為: p1=p0(1+r1)一年期定期存款,一年后本息和為: p2=p0(1+r2)兩次半年定期存款,一年后本息和為: ) 23+)(123+p0(1=p3rr3.1順序程序設計舉例順序程序設計舉例算法:輸入輸入p0,r1,r2,r3的值的值計算計算p1=p0(1+r1)計算計算p2=p0(1+r2)計算計算p3=p0(1+ )(1+ )輸出輸出p1,p2,

4、p323r23r3.1順序程序設計舉例順序程序設計舉例#include int main ( ) float p0=1000, r1=0.0036,r2=0.0225, r3=0.0198, p1, p2, p3; p1 = p0 * (1 + r1); p2 = p0 * (1 + r2); p3 = p0 * (1 + r3/2) * (1 + r3/2); printf(”%fn%fn%fn”,p1, p2, p3); return 0; 定義變量同時賦予初值定義變量同時賦予初值3.2 數據的表現形式及其運算數據的表現形式及其運算3.2.1 常量和變量3.2.2 數據類型3.2.3 整型

5、數據3.2.4 字符型數據3.2.5 浮點型數據3.2.6 怎樣確定常量的類型3.2.7 運算符和表達式3.2.1 常量和變量常量和變量1.常量:在程序運行過程中,其值不能被改變的量整型常量:如1000,12345,0,-345實型常量十進制小數形式:如0.34 -56.79 0.0指數形式:如12.34e3 (代表12.34103)字符常量:如?轉義字符:如n字符串常量:如boy”符號常量:#define PI 3.1416字字符符形形式式功能功能n換行換行t橫向跳格橫向跳格(即跳到下即跳到下一個輸出區一個輸出區-占占8列列)v豎向跳格豎向跳格b退格退格(不換行不換行)r回車回車f走紙換頁走

6、紙換頁反斜杠字符反斜杠字符“”單引號單引號(撤號撤號)字符字符oool到到3位位8進制數所代進制數所代表的字符表的字符3.2.1 常量和變量常量和變量2. 變量:在程序運行期間,變量的值是可以改變的變量必須先定義,后使用定義變量時指定該變量的名字和類型變量名和變量值是兩個不同的概念變量名實際上是以一個名字代表的一個存儲地址從變量中取值,實際上是通過變量名找到相應的內存地址,從該存儲單元中讀取數據3.2.1 常量和變量常量和變量3.常變量:const int a=3;4.標識符:一個對象的名字語言規定標識符只能由字母、數字和下劃線3種字符組成,且第一個字符必須為字母或下劃線合法的標識符:如sum

7、,average, _total, Class, day, BASIC, li_ling不合法的標識符:M.D.John,¥123,33,3D64,ab大小寫字母是不同的字符大小寫字母是不同的字符3.2.2 數據類型數據類型所謂類型,就是對數據分配存儲單元的安排,包括存儲單元的長度(占多少字節)以及數據的存儲形式不同的類型分配不同的長度和存儲形式3.2.2 數據類型數據類型C語言允許使用的數據類型:基本類型整型類型基本整型短整型長整型雙長整型字符型布爾型u浮點類型浮點類型u單精度浮點型單精度浮點型u雙精度浮點型雙精度浮點型u復數浮點型復數浮點型3.2.2 數據類型數據類型C語言允許使用的數據類

8、型:基本類型枚舉類型空類型派生類型指針類型數組類型結構體類型共用體類型函數類型算術類型算術類型純量類型純量類型3.2.3 整型數據整型數據1. 整型數據的分類最基本的整型類型基本整型(int型):占2個或4個字節短整型(short int):VC+6.0中占2個字節長整型(long int):VC+6.0中占4個字節雙長整型(long long int):C99新增的3.2.3 整型數據整型數據1. 整型數據的分類2. 整型變量的符號屬性整型變量的值的范圍包括負數到正數可以將變量定義為“無符號類型擴充的整形類型:3.2.3 整型數據整型數據擴充的整型類型:有符號基本整型 signed int;

9、無符號基本整型 unsigned int;有符號短整型 signed short int;無符號短整型 unsigned short int;有符號長整型 signed long int;無符號長整型 unsigned long int有符號雙長整型 signed long long int; 無符號雙長整型 unsigned long long int整型數據的溢出 一個型變量2字節的最大允許值為32767。例3.3 main()int a,b; a=32767; b=a+1; printf(“%d,%d”,a,b);運行結果為32767,-32768-32767-3276832767327

10、660-1+1-32768 -32767 -1 0 1 32766 327683.2.4 字符型數據字符型數據字符是按其代碼(整數)形式存儲的C99把字符型數據作為整數類型的一種字符型數據在使用上有自己的特點unsigned short price=-1;printf(“%dn”,price);3.2.4 字符型數據字符型數據1.字符與字符代碼大多數系統采用ASCII字符集字母:A Z,a z數字:09專門符號:29個:! ” # & ( ) *等空格符:空格、水平制表符、換行等不能顯示的字符:空(null)字符(以0表示)、警告(以a表示)、退格(以b表示)、回車(以r表示)等3.2

11、.4 字符型數據字符型數據字符1和整數1是不同的概念:字符1只是代表一個形狀為1的符號,在需要時按原樣輸出,在內存中以ASCII碼形式(碼值49=32+16+1)存儲,占1個字節整數1是以整數存儲方式(二進制補碼方式)存儲的,占2個或4個字節0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 13.2.4 字符型數據字符型數據2.字符變量用類型符char定義字符變量 char c = ?; 系統把“?”的ASCII代碼63賦給變量cprintf(”%d %cn”,

12、c,c);輸出結果是: 63 ?3.2.5 浮點型數據浮點型數據浮點型數據是用來表示具有小數點的實數float型(單精度浮點型)編譯系統為float型變量分配4個字節數值以規范化的二進制數指數形式存放 參見主教材圖3.113.2.5 浮點型數據浮點型數據浮點型數據是用來表示具有小數點的實數float型(單精度浮點型)double型(雙精度浮點型)編譯系統為double型變量分配8個字節15位有效數字long double(長雙精度)型3.2.6 怎樣確定常量的類型怎樣確定常量的類型字符常量:由單撇號括起來的單個字符或轉義字符整型常量:不帶小數點的數值系統根據數值的大小確定int型還是long型

13、等浮點型常量:凡以小數形式或指數形式出現的實數C編譯系統把浮點型常量都按雙精度處理分配8個字節3.2.7 運算符和表達式運算符和表達式1.基本的算術運算符:+ :正號運算符(單目運算符) - :負號運算符(單目運算符)* :乘法運算符/ :除法運算符% :求余運算符+ :加法運算符 - :減法運算符3.2.7 運算符和表達式運算符和表達式闡明兩個整數相除的結果為整數如5/3的結果值為,舍去小數部分如果除數或被除數中有一個為負值,舍入方向不固定。例如,-5/3,有的系統中得到的結果為-1,在有的系統中則得到結果為-2VC+采取“向零取整的方法 如5/3=1,-5/3=-1,取整后向零靠攏% 運算

14、符要求參加運算的運算對象(即操作數)為整數,結果也是整數。如8%3,結果為23.2.7 運算符和表達式運算符和表達式2. 自增、自減運算符:作用是使變量的值或減+i,-i:在使用i之前,先使i的值加減1i+,i-:在使用i之后,使i的值加減1粗略地看,粗略地看,i i和和i i的作用相當于的作用相當于i ii+1i+1。但。但i i和和i+i+不同之處在于不同之處在于+i+i是先執行是先執行i=i+1i=i+1后,再使用后,再使用i i的值;而的值;而i+i+是先使用是先使用i i的值后,再執行的值后,再執行i=i+1i=i+1。如果。如果i i的原值等于的原值等于3 3,那么:,那么: j

15、ji i; j j的值為的值為4 4 j=i+j=i+; j j的值為的值為3 3,然后,然后i i變為變為4 4又如:又如: i=3; i=3; printf printf (”d”d”,+i+i); ;輸出輸出“4”“4”。若改為。若改為 printf printf(”d”d”,i+i+););則輸出則輸出“3”“3”。留意:留意: (1自增運算符(),自減運算符(自增運算符(),自減運算符(-),只能用于變量,而不能),只能用于變量,而不能用于常量或表達式,如用于常量或表達式,如5或或ab)都是不合法的。因為)都是不合法的。因為5是常量是常量,常量的值不能改變。(,常量的值不能改變。(a

16、b)也不可能實現,假如)也不可能實現,假如a+b的值為的值為5,那,那么自增后得到的么自增后得到的6放在什么地方呢?無變量可供存放。放在什么地方呢?無變量可供存放。 (2)+和和-的結合方向是的結合方向是“自右至左自右至左”。見附錄。如果有。見附錄。如果有-i,i的左的左面是負號運算符,右面是自加運算符。如果面是負號運算符,右面是自加運算符。如果i的原值等于的原值等于3,若按左結合性,若按左結合性,相當于(相當于(-i)+,而(,而(-i)是不合法的。對表達式不能進行自加自減運)是不合法的。對表達式不能進行自加自減運算。從附錄算。從附錄可知負號運算符和可知負號運算符和“”運算符同優先級,而結合

17、方向為運算符同優先級,而結合方向為“自右至左自右至左”(右結合性),即它相當于(右結合性),即它相當于-(i),如果有),如果有printf(”d”,-i),則先取出),則先取出i的值使用,輸出的值使用,輸出-i的值的值-3,然后使,然后使i增值為增值為4。留意。留意i)是先用)是先用i的原值進行運算以后,再對的原值進行運算以后,再對i加加1,不要認為先加完,不要認為先加完1后再加后再加負號,輸出負號,輸出-4,這是不對的。,這是不對的。 自增減運算符常用于循環語句中使循環變量自動加自增減運算符常用于循環語句中使循環變量自動加1。也用于指針。也用于指針變量,使指針指向下一個地址。這些將在以后的

18、章節中介紹。變量,使指針指向下一個地址。這些將在以后的章節中介紹。(3在表達式中包含自加或自減運算時,很容易出錯。在表達式中包含自加或自減運算時,很容易出錯。 i +或或i-什么時候進行自加或自減呢?如果有以下賦值語句,若什么時候進行自加或自減呢?如果有以下賦值語句,若i原值等原值等于于3, ki+;顯然先將顯然先將i的原值賦給以的原值賦給以k(k的值等于的值等于3),然后),然后i進行自加,執行完此語句后,進行自加,執行完此語句后,i的值等于的值等于4。如果有以下表達式:。如果有以下表達式: (i+)+(i+)+(i+)表達式的值是多少呢?有人認為相當于表達式的值是多少呢?有人認為相當于34

19、5,即,即12。事實上用。事實上用TurboC和和MS C系統時它等于系統時它等于9。即先把。即先把i的原值的原值3取出來,作為表達式中取出來,作為表達式中i的值;的值;因此先進行三個因此先進行三個i相加,得相加,得9。然后再實現自加,。然后再實現自加,i的值變為的值變為6。而。而k(+i)+(+i)+(+i)有人以為從左到右使有人以為從左到右使i增值,相當于增值,相當于k=456,得,得15。事實上。事實上k=18。原因是:。原因是:i的自加是在整個表達式求解一開始時最先進行的,即對的自加是在整個表達式求解一開始時最先進行的,即對表達式掃描,先對表達式掃描,先對i進行三次自加,進行三次自加,

20、i得得6,然后進行,然后進行k=666的運算,的運算,故得故得18。 (4) C語言中有的運算符為一個字符,有的運算符由兩個字符組語言中有的運算符為一個字符,有的運算符由兩個字符組成,在表達式中如何組合呢?如成,在表達式中如何組合呢?如ij,是理解為,是理解為i)j呢?還呢?還是是i+(+j) ? C編譯在處理時盡可能多地自左而右將若干個字符組成編譯在處理時盡可能多地自左而右將若干個字符組成一個運算符在處理標識符、關鍵字時也按同一原則處理),如一個運算符在處理標識符、關鍵字時也按同一原則處理),如ij,將解釋為,將解釋為i)j,而不是,而不是i+(j)。)。(5) C語言中類似上述這樣的問題還

21、有一些。例如,在調用函數時語言中類似上述這樣的問題還有一些。例如,在調用函數時,實參數的求值順序,實參數的求值順序,C標準并無統一規定。如標準并無統一規定。如i的初值為的初值為3如果有下面如果有下面的函數調用:的函數調用: printf (“d,d”,i,i)在有的系統中,從左至右求值,輸出在有的系統中,從左至右求值,輸出“3,3”。在多數系統中對函數。在多數系統中對函數參數的求值順序是自右而左,上面參數的求值順序是自右而左,上面printf函數中要輸出兩個表達式的值函數中要輸出兩個表達式的值i和和i分別是兩個表達式),先計算出分別是兩個表達式),先計算出i的值再計算的值再計算i的值,輸出的值

22、,輸出i+,是先輸出,是先輸出i的值的值3然后使然后使i加加1變為變為4,這個,這個4就成了就成了printf函數中第一個參函數中第一個參數數i的值,因此上面的值,因此上面printf函數輸出的是函數輸出的是“4,3”。這些問題不必死記,不同系統的處理方法也不相同,必要時上機試一這些問題不必死記,不同系統的處理方法也不相同,必要時上機試一下即可。但應當知道使用下即可。但應當知道使用C語言時可能出問題的地方,以免遇到問題時不語言時可能出問題的地方,以免遇到問題時不知其所以然。知其所以然。運用運用+和和-時會出現一些人們時會出現一些人們“想不到的副作用,初學者要慎用。想不到的副作用,初學者要慎用。

23、3.2.7 運算符和表達式運算符和表達式3. 算術表達式和運算符的優先級與結合性:用算術運算符和括號將運算對象也稱操作數連接起來的、符合語法規則的式子,稱為算術表達式運算對象包括常量、變量、函數等語言規定了運算符的優先級和結合性3.2.7 運算符和表達式運算符和表達式4.不同類型數據間的混合運算:+、-、*、/ 運算的兩個數中有一個數為float或double型,結果是double型。系統將float型數據都先轉換為double型,然后進行運算(2) 如果int型與float或double型數據進行運算,先把int型和float型數據轉換為double型,然后進行運算,結果是double型(3

24、)字符型數據與整型數據進行運算,就是把字符的ASCII代碼與整型數據進行運算3.2.7 運算符和表達式運算符和表達式 doublefloat long unsigned int char, short3.2.7 運算符和表達式運算符和表達式 例3.3 給定一個大寫字母,要求用小寫字母輸出。解題思路:解題思路:關鍵是找到大、小寫字母間的內在聯系關鍵是找到大、小寫字母間的內在聯系同一個字母,用小寫表示的字符的同一個字母,用小寫表示的字符的ASCII代碼比用大寫表示的字符的代碼比用大寫表示的字符的ASCII代碼大代碼大323.2.7 運算符和表達式運算符和表達式#include int main (

25、 ) char c1,c2; c1=A; c2=c1+32; printf(%cn,c2); printf(”%dn”,c2); return 0;將字符將字符A的的ASCII代碼代碼65放到放到c1中中將將65+32的結果放到的結果放到c2中中用字符形式輸出用字符形式輸出用十進制形式輸出用十進制形式輸出3.2.7 運算符和表達式運算符和表達式5. 強制類型轉換運算符強制類型轉換運算符的一般形式為 (類型名)(表達式)(double)a (將轉換成double類型)(int) (x+y) (將x+y的值轉換成int型) (float)(5%3)(將5%3的值轉換成float型)有兩種類型轉換系

26、統自動進行的類型轉換強制類型轉換3.2.7 運算符和表達式運算符和表達式6.運算符(1) 算術運算符 (+ - * / % + -)(2) 關系運算符 ( !)(3) 邏輯運算符 (! |)(4) 位運算符 ( | )(5) 賦值運算符 (及其擴展賦值運算符)(6) 條件運算符 (?:)3.2.7 運算符和表達式運算符和表達式6.運算符(7) 逗號運算符 (,)(8) 指針運算符 (*和)(9) 求字節數運算符 (sizeof)(10) 強制類型轉換運算符 ( (類型) )(11) 成員運算符 (.-)(12) 下標運算符 ( )(13) 其他 (如函數調用運算符()3.3 C語句語句3.3.

27、1 C語句的作用和分類3.3.2 最基本的語句-賦值語句3.3.1 C語句的作用和分類語句的作用和分類語句分為以下5類:(1) 控制語句: if、switch、for、while、dowhile、continue、break、return、goto等(2) 函數調用語句(3) 表達式語句(4) 空語句(5) 復合語句3.3.2 最基本的語句最基本的語句-賦值語句賦值語句在C程序中,最常用的語句是:賦值語句輸入輸出語句其中最基本的是賦值語句3.3.2 最基本的語句最基本的語句-賦值語句賦值語句 例3.4 給出三角形的三邊長,求三角形面積。3.3.2 最基本的語句最基本的語句-賦值語句賦值語句解題

28、思路:假設給定的三個邊符合構成三角形的條件關鍵是找到求三角形面積的公式公式為:其中s=(a+b+c)/2)()(csbsassarea#include #include int main ( ) double a,b,c,s,area; a=3.67; b=5.43; c=6.21; s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(a=%ftb=%ft%fn,a,b,c); printf(area=%fn,area); return 0; 對邊長對邊長a、b、c賦值賦值計算計算s計算計算area#include #include int m

29、ain ( ) double a,b,c,s,area; a=3.67; b=5.43; c=6.21; s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(a=%ftb=%ft%fn,a,b,c); printf(area=%fn,area); return 0; 數學函數,計算平方根數學函數,計算平方根調用數學函數加此行調用數學函數加此行#include #include int main ( ) double a,b,c,s,area; a=3.67; b=5.43; c=6.21; s=(a+b+c)/2; area=sqrt(s*(s

30、-a)*(s-b)*(s-c); printf(a=%ftb=%ft%fn,a,b,c); printf(area=%fn,area); return 0; 轉義字符,使輸出位置跳轉義字符,使輸出位置跳到下一個到下一個tab位置位置調用數學函數加此行調用數學函數加此行歸納總結:歸納總結:1.賦值運算符賦值運算符“”是賦值運算符是賦值運算符作用是將一個數據賦給一個變量作用是將一個數據賦給一個變量也可以將一個表達式的值賦給一個變量也可以將一個表達式的值賦給一個變量歸納總結:歸納總結:1.賦值運算符賦值運算符2.復合的賦值運算符復合的賦值運算符在賦值符在賦值符“”之前加上其他運算符,可之前加上其他運

31、算符,可以構成復合的運算符以構成復合的運算符 等價于等價于 歸納總結:歸納總結:1.賦值運算符賦值運算符2.復合的賦值運算符復合的賦值運算符3.賦值表達式賦值表達式一般形式為:一般形式為: 變量變量 賦值運算符賦值運算符 表達式表達式對賦值表達式求解的過程:對賦值表達式求解的過程:求賦值運算符右側的求賦值運算符右側的“表達式的值表達式的值賦給賦值運算符左側的變量賦給賦值運算符左側的變量歸納總結:歸納總結:1.賦值運算符賦值運算符2.復合的賦值運算符復合的賦值運算符3.賦值表達式賦值表達式賦值表達式賦值表達式“a=3*5的值為的值為15,對表,對表達式求解后,變量達式求解后,變量a的值和表達式的

32、值都是的值和表達式的值都是15“a=(b=5)”和和“a=b=5等價等價“a=b和和“b=a含義不同含義不同歸納總結:歸納總結:1.賦值運算符賦值運算符2.復合的賦值運算符復合的賦值運算符3.賦值表達式賦值表達式4.賦值過程中的類型轉換賦值過程中的類型轉換兩側類型一致時,直接賦值兩側類型一致時,直接賦值兩側類型不一致,但都是算術類型時,自兩側類型不一致,但都是算術類型時,自動將右側的類型轉換為左側類型后賦值動將右側的類型轉換為左側類型后賦值定義變量時要防止數據溢出定義變量時要防止數據溢出歸納總結:歸納總結:1.賦值運算符賦值運算符2.復合的賦值運算符復合的賦值運算符3.賦值表達式賦值表達式4.

33、賦值過程中的類型轉換賦值過程中的類型轉換5.賦值表達式和賦值語句賦值表達式和賦值語句賦值表達式的末尾沒有分號,而賦值語句有賦值表達式的末尾沒有分號,而賦值語句有分號分號一個表達式可以包含賦值表達式,但決不能一個表達式可以包含賦值表達式,但決不能包含賦值語句包含賦值語句歸納總結:歸納總結:1.賦值運算符賦值運算符2.復合的賦值運算符復合的賦值運算符3.賦值表達式賦值表達式4.賦值過程中的類型轉換賦值過程中的類型轉換5.賦值表達式和賦值語句賦值表達式和賦值語句6.變量賦初值變量賦初值int a=3,b=3,c;int a=3; 相當于相當于 int a; a=3;3.4 數據的輸入輸出數據的輸入輸

34、出3.4.1 輸入輸出舉例3.4.2 有關數據輸入輸出的概念3.4.3 用printf函數輸出數據3.4.4 用scanf函數輸入數據3.4.5 字符數據的輸入輸出3.4.1 輸入輸出舉例輸入輸出舉例例3.5 求 方程的根。a、b、c由鍵盤輸入 設 02cbxaxacb423.4.1 輸入輸出舉例輸入輸出舉例解題思路:首先要知道求方程式的根的方法。由數學知識已知:假設 0,則一元二次方程有兩個實根:acb42aacbbx2421aacbbx2422abp2aacbq242若記若記qpx1qpx2#include #include int main ( ) double a,b,c,disc,x

35、1,x2,p,q; scanf(%lf%lf%lf,&a,&b,&c); disc=b*b-4*a*c; p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf(x1=%7.2fnx2=%7.2fn,x1,x2); return 0;程序中調用數學函數程序中調用數學函數sqrt輸入輸入a,b,c的值的值#include #include int main ( ) double a,b,c,disc,x1,x2,p,q; scanf(%lf%lf%lf,&a,&b,&c); disc=b

36、*b-4*a*c; p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf(x1=%7.2fnx2=%7.2fn,x1,x2); return 0;輸入的是雙輸入的是雙精度型實數精度型實數#include #include int main ( ) double a,b,c,disc,x1,x2,p,q; scanf(%lf%lf%lf,&a,&b,&c); disc=b*b-4*a*c; p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf(x

37、1=%7.2fnx2=%7.2fn,x1,x2); return 0;要求輸入要求輸入3個實數個實數自動轉成實數自動轉成實數后賦給后賦給a,b,c#include #include int main ( ) double a,b,c,disc,x1,x2,p,q; scanf(%lf%lf%lf,&a,&b,&c); disc=b*b-4*a*c; p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf(x1=%7.2fnx2=%7.2fn,x1,x2); return 0;輸出數據占輸出數據占7列,其中小數

38、占列,其中小數占2列列3.4.2 有關數據輸入輸出的概念有關數據輸入輸出的概念幾乎每一個C程序都包含輸入輸出輸入輸出是程序中最基本的操作之一3.4.2 有關數據輸入輸出的概念有關數據輸入輸出的概念(1) 所謂輸入輸出是以計算機主機為主體而言的從計算機向輸出設備(如顯示器、打印機等)輸出數據稱為輸出從輸入設備如鍵盤、磁盤、光盤、掃描儀等向計算機輸入數據稱為輸入3.4.2 有關數據輸入輸出的概念有關數據輸入輸出的概念(2) 語言本身不提供輸入輸出語句輸入和輸出操作是由C標準函數庫中的函數來實現的printf和scanf不是語言的關鍵字,而只是庫函數的名字putchar、getchar、puts、g

39、ets3.4.2 有關數據輸入輸出的概念有關數據輸入輸出的概念(3)在使用輸入輸出函數時,要在程序文件的開頭用預編譯指令#include 或#include stdio.h3.4.3 用用printf函數輸出數據函數輸出數據在C程序中用來實現輸出和輸入的,主要是printf函數和scanf函數這兩個函數是格式輸入輸出函數用這兩個函數時,必須指定格式3.4.3 用用printf函數輸出數據函數輸出數據1.printf函數的一般格式printf格式控制,輸出表列)例如:printf(”i=%d,c=%cn”,i,c);格式聲明格式聲明3.4.3 用用printf函數輸出數據函數輸出數據1.prin

40、tf函數的一般格式printf格式控制,輸出表列)例如:printf(”i=%d,c=%cn”,i,c);普通字符普通字符3.4.3 用用printf函數輸出數據函數輸出數據1.printf函數的一般格式printf格式控制,輸出表列)例如:printf(”i=%d,c=%cn”,i,c);可以是常量、變量或表達式可以是常量、變量或表達式3.4.3 用用printf函數輸出數據函數輸出數據2. 常用格式字符格式符。用來輸出一個有符號的十進制整數可以在格式聲明中指定輸出數據的域寬 printf(”%5d%5dn”,12,-345);%d輸出int型數據%ld輸出long型數據3.4.3 用用pr

41、intf函數輸出數據函數輸出數據2. 常用格式字符格式符。用來輸出一個字符 char ch=a; printf(”%c”,ch); 或 printf(”%5c”,ch);輸出字符:輸出字符:a3.4.3 用用printf函數輸出數據函數輸出數據2. 常用格式字符格式符。用來輸出一個字符串 printf(”%s”,”CHINA”); 輸出字符串:輸出字符串:CHINA3.4.3 用用printf函數輸出數據函數輸出數據2. 常用格式字符f格式符。用來輸出實數,以小數形式輸出不指定數據寬度和小數位數,用%f 例3.6 用%f輸出實數,只能得到位小數。 double a=1.0; printf(”%

42、fn”,a/3);3.4.3 用用printf函數輸出數據函數輸出數據2. 常用格式字符f格式符。用來輸出實數,以小數形式輸出 指定數據寬度和小數位數。用%m.nf printf(%20.15fn,1/3); printf(%.0fn”,10000/3.0);3.4.3 用用printf函數輸出數據函數輸出數據2. 常用格式字符f格式符。用來輸出實數,以小數形式輸出 指定數據寬度和小數位數。用%m.nf float a; a=10000/3.0; printf(%fn,a);3.4.3 用用printf函數輸出數據函數輸出數據2. 常用格式字符f格式符。用來輸出實數,以小數形式輸出 輸出的數據

43、向左對齊,用%-m.nf3.4.3 用用printf函數輸出數據函數輸出數據2. 常用格式字符f格式符。用來輸出實數,以小數形式輸出float型數據只能保證6位有效數字double型數據能保證15位有效數字計算機輸出的數字不都是絕對精確有效的3.4.3 用用printf函數輸出數據函數輸出數據2. 常用格式字符e格式符。指定以指數形式輸出實數%e,VC+給出小數位數為位 指數部分占5列 小數點前必須有而且只有1位非零數字 printf(”%e”,123.456); 輸出:1.234560 e+0023.4.3 用用printf函數輸出數據函數輸出數據2. 常用格式字符e格式符。指定以指數形式輸

44、出實數%m.ne printf(”%13.2e”,123.456); 輸出: 1.23e+002 (前面有4個空格)3.4.4 用用scanf函數輸入數據函數輸入數據1. scanf 函數的一般形式 scanf格式控制,地址表列)含義同含義同printf函數函數3.4.4 用用scanf函數輸入數據函數輸入數據1. scanf 函數的一般形式 scanf格式控制,地址表列)可以是變量的地址,或字可以是變量的地址,或字符串的首地址符串的首地址3.4.4 用用scanf函數輸入數據函數輸入數據2. scanf函數中的格式聲明與printf函數中的格式聲明相似以開場,以一個格式字符結束,中間可以插入

45、附加的字符scanf(a=%f,b=%f,c=%f,&a,&b,&c);3.4.4 用用scanf函數輸入數據函數輸入數據3.使用scanf函數時應注意的問題scanf(”%f%f%f”,a,b,c); 錯scanf(”%f%f%f”,&a,&b,&c); 對對于scanf(a=%f,b=%f,c=%f,&a,&b,&c); 1 3 2 錯 a=1,b=3,c=2 對 a=1 b=3 c=2 錯3.4.4 用用scanf函數輸入數據函數輸入數據3.使用scanf函數時應注意的問題對于scanf(”%c%c%c”,&

46、c1,&c2,&c3); abc 對 a b c 錯對于scanf(”%d%c%f”,&a,&b,&c);若輸入 1234a123o.263.4.4 用用scanf函數輸入數據函數輸入數據3.使用scanf函數時應注意的問題對于scanf(”%c%c%c”,&c1,&c2,&c3); abc 對 a b c 錯對于scanf(”%d%c%f”,&a,&b,&c);若輸入 1234a123o.263.4.4 用用scanf函數輸入數據函數輸入數據3.使用scanf函數時應注意的問題對于scanf(”%c%c%

47、c”,&c1,&c2,&c3); abc 對 a b c 錯對于scanf(”%d%c%f”,&a,&b,&c);若輸入 1234a123o.263.4.5 字符數據的輸入輸出字符數據的輸入輸出1.用putchar函數輸出一個字符從計算機向顯示器輸出一個字符 putchar函數的一般形式為: putchar(c) 3.4.5 字符數據的輸入輸出字符數據的輸入輸出例3.8 先后輸出BOY三個字符。 解題思路:定義3個字符變量,分別賦以初值B、O、Y用putchar函數輸出這3個字符變量的值 3.4.5 字符數據的輸入輸出字符數據的輸入輸出#incl

48、ude int main ( ) char a=B,b=O,c=Y; putchar(a); putchar(b); putchar(c); putchar (n); return 0; 向顯示器輸出字符向顯示器輸出字符B向顯示器輸出換行符向顯示器輸出換行符3.4.5 字符數據的輸入輸出字符數據的輸入輸出#include int main ( ) char a=B,b=O,c=Y; putchar(a); putchar(b); putchar(c); putchar (n); return 0; 改為改為int a=66,b=79,c=89;3.4.5 字符數據的輸入輸出字符數據的輸入輸出p

49、utchar(101) (輸出字符)putchar() (輸出單撇號字符)3.4.5 字符數據的輸入輸出字符數據的輸入輸出2. 用getchar函數輸入一個字符向計算機輸入一個字符getchar函數的一般形式為: getchar( )3.4.5 字符數據的輸入輸出字符數據的輸入輸出 例3.9 從鍵盤輸入BOY三個字符,然后把它們輸出到屏幕。解題思路:用3個getchar函數先后從鍵盤向計算機輸入BOY三個字符用putchar函數輸出3.4.5 字符數據的輸入輸出字符數據的輸入輸出#include int main ( ) char a,b,c; a=getchar(); b=getchar(); c=getchar(); putchar(a); putchar(b); putchar(c); putchar(n); return 0; 輸入一個字符,送給變量輸入一個字符,送給變量a3.4.5 字符數據的輸入輸出字符數據的輸入輸出#include int main ( ) char a,b,c; a=getchar(); b=getchar(); c=getchar(); putch

溫馨提示

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

評論

0/150

提交評論