




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、 第三章第三章 順序程序設(shè)計順序程序設(shè)計 3.1 3.1 順序程序設(shè)計舉例順序程序設(shè)計舉例(略) 3.2 3.2 數(shù)據(jù)的表現(xiàn)形式及其運算數(shù)據(jù)的表現(xiàn)形式及其運算 3.2.1 3.2.1 常量與變量常量與變量 常量與符號常量常量與符號常量 常量常量 在程序運行過程中其值保持不變的量。在程序運行過程中其值保持不變的量。 符號常量符號常量 用來代表一個常量的標(biāo)識符。 #define pi 3.1415926#define pi 3.1415926 例:例: #define #define pipi 3.1415926 3.1415926 main() main() float float r r=2,
2、=2,c c; ; c c=2=2* *pipi* *r r; ; printf(“%f”, printf(“%f”,c c);); 變量變量 其值可以改變的量。其值可以改變的量。 變量的三要素變量的三要素: : 變量名變量名每個變量有一個名字,作為識別該變量的每個變量有一個名字,作為識別該變量的標(biāo)識符。標(biāo)識符。 變量的值變量的值 每個變量有一個值,變量的值是隨時每個變量有一個值,變量的值是隨時可以改變的??梢愿淖兊?。 變量的存儲單元變量的存儲單元 每個變量占據(jù)一個內(nèi)存單元,用于存放變量每個變量占據(jù)一個內(nèi)存單元,用于存放變量的值的值。 變量名 a 變量值 存儲單元3 變量的命名規(guī)則:變量的命名
3、規(guī)則: 由字母、數(shù)字和下劃線組成由字母、數(shù)字和下劃線組成 以字母或下劃線開頭以字母或下劃線開頭 a a、x1x1、y_2y_2、_b1_b1、_1c _1c 合法合法 1x1x、a+2a+2、 不合法不合法 變量必須先定義后使用。變量必須先定義后使用。 程序中何時使用常量?何時使用變量?程序中何時使用常量?何時使用變量? 3.2.2 3.2.2 數(shù)據(jù)類型數(shù)據(jù)類型 在程序設(shè)計中需要根據(jù)需要選擇合適的在程序設(shè)計中需要根據(jù)需要選擇合適的“類型類型”來定義變量。來定義變量。 可選擇的數(shù)據(jù)類型見圖可選擇的數(shù)據(jù)類型見圖3.4 基本類型基本類型整型整型浮點型浮點型字符型字符型 枚舉類型枚舉類型 空類型空類型
4、 派生類型派生類型 3.2.3 3.2.3 整型數(shù)據(jù)整型數(shù)據(jù) 整型常量整型常量 即整常數(shù),即整常數(shù),c c的整常數(shù)有三種形式:的整常數(shù)有三種形式: 十進制整數(shù)十進制整數(shù) 與數(shù)學(xué)中的整數(shù)一致,如:與數(shù)學(xué)中的整數(shù)一致,如:100100,123123,1515等。等。 八進制整數(shù)八進制整數(shù) 以以0 0開頭的整數(shù),如:開頭的整數(shù),如:010,07,020010,07,020等。等。 十六進制整數(shù)十六進制整數(shù) 以以0 x0 x開頭的整數(shù),如:開頭的整數(shù),如:0 x10,0 xff,0 x2a0 x10,0 xff,0 x2a等。等。 整型變量整型變量 用于存放整數(shù)的變量。用于存放整數(shù)的變量。 分分4 4
5、種類型:種類型: 基本型:基本型:int aint a 16 16位,可表示的數(shù)值范圍:位,可表示的數(shù)值范圍:-32768-327683276732767 32 32位,數(shù)值范圍:位,數(shù)值范圍:-2147483648-214748364821474836472147483647 短整型:短整型:short int bshort int b 16 16位,可表示的數(shù)值范圍:位,可表示的數(shù)值范圍:-32768-327683276732767 長整型:長整型:long int clong int c 32 32位,數(shù)值范圍:位,數(shù)值范圍:-2147483648-2147483648214748364
6、72147483647 無符號型:加上無符號型:加上 unsignedunsigned 只存放正數(shù)。只存放正數(shù)。 如:如:unsigned short int xunsigned short int x 變量變量x x為無符號整數(shù),為無符號整數(shù),1616位全表示數(shù)碼,位全表示數(shù)碼, 數(shù)值范圍:數(shù)值范圍:0 06553565535 在程序設(shè)計中,如果要使用整型變量,在程序設(shè)計中,如果要使用整型變量,必須首先選擇以上類型符來定義變量,然必須首先選擇以上類型符來定義變量,然后才能使用;后才能使用; 例:例: main() main() 定義定義 int a,b,c; int a,b,c; a=100
7、; b=50; a=100; b=50; 使用使用 c=a+b;c=a+b; printf(“%d”,c); printf(“%d”,c); 一般根據(jù)什么原則選擇變量的類型?一般根據(jù)什么原則選擇變量的類型?3.2.4 3.2.4 字符型數(shù)據(jù)字符型數(shù)據(jù) 字符常量字符常量 用單引號括起來的一個字符。用單引號括起來的一個字符。 a,x,a,x,* *,1,1等等 除 此 外 , 以除 此 外 , 以 開 頭 的 字 符開 頭 的 字 符如如n,tn,t等等 稱為轉(zhuǎn)義字符,祥見書表稱為轉(zhuǎn)義字符,祥見書表3.13.1字符型變量字符型變量 用于存放字符的變量。用于存放字符的變量。 char c1,c2 c
8、har c1,c2 定義定義c1c1和和c2c2為字符型變量為字符型變量 c1=a; c2=b; c1=a; c2=b; 字符賦值字符賦值 字符型變量存放一個字符,占據(jù)一個字節(jié)字符型變量存放一個字符,占據(jù)一個字節(jié)字符型數(shù)據(jù)的存儲形式字符型數(shù)據(jù)的存儲形式 存放ascii碼 不是 而是 如字符如字符aa在內(nèi)存中存放在內(nèi)存中存放9797,b b 存存放放9898。 與整數(shù)的存儲形式一致,它們之間可以與整數(shù)的存儲形式一致,它們之間可以通用通用 一個字符數(shù)據(jù)既可以作字符用,也可以一個字符數(shù)據(jù)既可以作字符用,也可以作整數(shù)用(取其作整數(shù)用(取其asciiascii代碼)。代碼)。 如:如:32+a32+a相
9、當(dāng)于相當(dāng)于 32+9732+97 若若 int x; char c;int x; char c;則則 x=a; c=97; x=97; c=a; x=a; c=97; x=97; c=a; 都都允許允許 字符串常量字符串常量 用雙引號括起來的字符序列。用雙引號括起來的字符序列。 如:如:”abcde”abcde”, ,”china”china” ” ”a a”也屬字符串。也屬字符串。 注意注意”a”a”與與aa的區(qū)別。的區(qū)別。 對于:對于: char c;char c; c=”a”; c=”a”; 用法錯誤用法錯誤字符串中每個字符各占一個字節(jié),并且在字符字符串中每個字符各占一個字節(jié),并且在字符
10、串結(jié)尾加上一個結(jié)束標(biāo)記串結(jié)尾加上一個結(jié)束標(biāo)記00 如:如:”china”china” 在內(nèi)存中占在內(nèi)存中占6 6個字節(jié)。個字節(jié)。 c h i n a 0 c c語言中專門的字符串變量,可用字符數(shù)組語言中專門的字符串變量,可用字符數(shù)組存放(以后介紹)。存放(以后介紹)。 3.2.5 3.2.5 實型數(shù)據(jù)實型數(shù)據(jù) 實型常量實型常量 可使用兩種形式表示:可使用兩種形式表示: 小數(shù)形式:小數(shù)形式:如如 1.23, 3.1415926 15.481.23, 3.1415926 15.48 指數(shù)形式:指數(shù)形式:如如 1e-20 1.23e5 1e-20 1.23e5 實型變量實型變量 用于存放實數(shù)的變量用
11、于存放實數(shù)的變量 分單精度和雙精度兩種:分單精度和雙精度兩種: float a,bfloat a,b 定義定義a a和和b b為單精度型變量為單精度型變量 3232位,位,7 7位有效數(shù)字,位有效數(shù)字,1010-38-3810103838 double x,ydouble x,y 定義定義x x和和y y為雙精度型變量為雙精度型變量 6464位,位,1515位有效數(shù)字,位有效數(shù)字,1010-308-3081010308308 例:例: main()main() float r,c; float r,c; double r,c;double r,c; r=5; r=5; c=2 c=2* *3.
12、14159263.1415926* *r;r; printf(“%f”,c); printf(“%f”,c); 3.2.6 3.2.6 各數(shù)值型數(shù)據(jù)間的混合運算各數(shù)值型數(shù)據(jù)間的混合運算 整型、實型、字符型數(shù)據(jù)間可以進行混合運整型、實型、字符型數(shù)據(jù)間可以進行混合運算,如:算,如: 10-a10-a* *1.51.5 運算時,參加運算的兩個數(shù)據(jù)如果類型不同,運算時,參加運算的兩個數(shù)據(jù)如果類型不同,則首先將其類型轉(zhuǎn)換成一致再運算,轉(zhuǎn)換規(guī)則則首先將其類型轉(zhuǎn)換成一致再運算,轉(zhuǎn)換規(guī)則是:是: 將優(yōu)先級低的類型轉(zhuǎn)換到優(yōu)先級高的類型將優(yōu)先級低的類型轉(zhuǎn)換到優(yōu)先級高的類型 數(shù)據(jù)類型的優(yōu)先級:數(shù)據(jù)類型的優(yōu)先級: 高
13、高 double floatdouble float long long unsignde unsignde 低低 int charint char 3.2.7 3.2.7 算術(shù)運算符與算術(shù)表達(dá)式算術(shù)運算符與算術(shù)表達(dá)式 基本的算術(shù)運算符基本的算術(shù)運算符 + - * / % 算術(shù)表達(dá)式算術(shù)表達(dá)式 用算術(shù)運算符將運算對象連接起來的式子用算術(shù)運算符將運算對象連接起來的式子 用于表達(dá)數(shù)學(xué)公式的式子用于表達(dá)數(shù)學(xué)公式的式子 如:如:2 2* *x+y-1/ax+y-1/a 表達(dá)式經(jīng)過運算最終得到一個值:表達(dá)式經(jīng)過運算最終得到一個值: 算術(shù)表達(dá)式的值算術(shù)表達(dá)式的值 運算符的優(yōu)先級與結(jié)合性運算符的優(yōu)先級與結(jié)合
14、性 優(yōu)先級:優(yōu)先級: 在對表達(dá)式求值時,如果存在多個運算符,則在對表達(dá)式求值時,如果存在多個運算符,則運算的先后次序按運算符的優(yōu)先級別從高到底進運算的先后次序按運算符的優(yōu)先級別從高到底進行。行。 運算符的優(yōu)先級關(guān)系為:運算符的優(yōu)先級關(guān)系為: 高:高:* * / % / % 低:低:+ -+ - 如:如:a-2a-2* *x x 先算先算 * * 2 2* *(a+2) (a+2) 有括號的情況?有括號的情況? 結(jié)合性:結(jié)合性: 如果在一個運算對象兩邊的運算符的優(yōu)先級相如果在一個運算對象兩邊的運算符的優(yōu)先級相同,則按規(guī)定的同,則按規(guī)定的“結(jié)合方向結(jié)合方向”處理。處理。 如:如:a-b+ca-b+
15、c b b與與- -結(jié)合是從左到右,稱結(jié)合是從左到右,稱“左結(jié)合性左結(jié)合性”。 b b與與+ +結(jié)合是從右到左,稱結(jié)合是從右到左,稱“右結(jié)合性右結(jié)合性”。 每個運算符都有相應(yīng)的優(yōu)先級和結(jié)合性。每個運算符都有相應(yīng)的優(yōu)先級和結(jié)合性。 基本算術(shù)運算符都是基本算術(shù)運算符都是左結(jié)合性左結(jié)合性。 計算表達(dá)式例:計算表達(dá)式例: 2+a-1/2.0 1+3/2-12+a-1/2.0 1+3/2-1構(gòu)造表達(dá)式例構(gòu)造表達(dá)式例 2x2x2 2+3x-1+3x-1 a+b a-b a+b a-b x+y x-ya+b/a-b ?(a+b)/(a-b)2*x*x+3*x-1 (*不能?。?a+b)/(a-b)/(x+y
16、)/(x-y)(a+b)/(a-b)/(x+y)/(x-y)(a+b)/(a-b)/(x+y)*(x-y) 強制類型轉(zhuǎn)換強制類型轉(zhuǎn)換可以用強制類型轉(zhuǎn)換運算符將一個表達(dá)式可以用強制類型轉(zhuǎn)換運算符將一個表達(dá)式的值轉(zhuǎn)換成所需類型:的值轉(zhuǎn)換成所需類型:如:如: (int)(x+y)(int)(x+y) (float)(7%3) (float)(7%3) 應(yīng)用舉例:應(yīng)用舉例: 若在若在turbo cturbo c下運行:下運行: int a=200,b=300,c;int a=200,b=300,c; c=a c=a* *b/100; b/100; ? ? 可知,有自動轉(zhuǎn)換和強制轉(zhuǎn)換,可知,有自動轉(zhuǎn)換和
17、強制轉(zhuǎn)換, 當(dāng)自動轉(zhuǎn)換達(dá)不到目的時,可用強制轉(zhuǎn)換。當(dāng)自動轉(zhuǎn)換達(dá)不到目的時,可用強制轉(zhuǎn)換。c=(long)a*b/100;c=(long)(a*b)/100; 自增、自減運算符自增、自減運算符 自增運算符:自增運算符:+ 使變量值加使變量值加1 1 自減運算符:自減運算符:- 使變量值減使變量值減1 1 兩種用法:兩種用法: +i, -i +i, -i 先加(減)后用先加(減)后用 i+, i- i+, i- 先用后加(減)先用后加(減) 兩種用法對兩種用法對i i效果一樣,但表達(dá)式的值不同。效果一樣,但表達(dá)式的值不同。例例:假設(shè):假設(shè)i i的原值為的原值為5 5: j=+i; j=?j=+i;
18、 j=? j=i+; j=?j=i+; j=? 注意:注意:+和和-只能用于變量。只能用于變量。 如:如:3+3+和(和(a+1a+1)+ 不合法不合法+和和-為右結(jié)合性。為右結(jié)合性。 (-i)+(-i)+ -i+-i+ -(i+)-(i+) 若若i i的原值是的原值是5 5,則該表達(dá)式的值是多少?,則該表達(dá)式的值是多少? 例:分析執(zhí)行下列語句后的結(jié)果:例:分析執(zhí)行下列語句后的結(jié)果: a=5; a=5; a b c da b c d b=a+;b=a+; c=-a-b+; c=-a-b+; d=(a+)-(+b)+c-; d=(a+)-(+b)+c-;556 506 7-26-1 兩種特殊情況
19、:兩種特殊情況: k=(i+)+(i+)+(i+) k=(i+)+(i+)+(i+) i+j i+j 是是 i+(+j)i+(+j) 還是還是 (i+)+j(i+)+j ? ? i+ i+雖然與雖然與i=i+1i=i+1等效,但使用自增自減等效,但使用自增自減運算符的代碼優(yōu)化程度好,因而經(jīng)常使用;運算符的代碼優(yōu)化程度好,因而經(jīng)常使用;但用時需特別小心。但用時需特別小心。 3.2.8 3.2.8 賦值運算符和賦值表達(dá)式賦值運算符和賦值表達(dá)式 賦值運算符賦值運算符 “=”=”稱賦值運算符,其作用是將一個數(shù)據(jù)稱賦值運算符,其作用是將一個數(shù)據(jù)賦給一個變量。賦給一個變量。 如:如: a=5a=5 不要理
20、解為不要理解為“等號等號”。 執(zhí)行賦值運算的結(jié)果,是將右邊的數(shù)據(jù)存執(zhí)行賦值運算的結(jié)果,是將右邊的數(shù)據(jù)存入左邊變量所對應(yīng)的內(nèi)存單元中。入左邊變量所對應(yīng)的內(nèi)存單元中。 賦值規(guī)則賦值規(guī)則 如果賦值運算符兩側(cè)的類型不一致,則在賦如果賦值運算符兩側(cè)的類型不一致,則在賦值時要進行類型轉(zhuǎn)換,轉(zhuǎn)換規(guī)則為:值時要進行類型轉(zhuǎn)換,轉(zhuǎn)換規(guī)則為: 實型實型整變量整變量 舍去小數(shù)部分。舍去小數(shù)部分。 int a=5.5; aint a=5.5; a中為中為5 5。 整型整型實變量實變量 數(shù)值不變,以浮點形式存儲。數(shù)值不變,以浮點形式存儲。 字符型字符型整變量整變量 放在整形變量低放在整形變量低8 8位。保持原值不變原則。
21、位。保持原值不變原則。 int a=a;int a=a; 復(fù)合賦值運算符復(fù)合賦值運算符 在賦值運算符前加上其它運算符,可以構(gòu)成在賦值運算符前加上其它運算符,可以構(gòu)成復(fù)合賦值運算符。復(fù)合賦值運算符。 a+=3 a+=3 a=a+3 a=a+3 b-=x+5 b-=x+5 b=b-(x+5) b=b-(x+5) x x* *=c-6 =c-6 x=x x=x* *(c-6)(c-6) y/=a y/=a* *4 4 y=y/(a y=y/(a* *4)4) k%=b-2 k%=b-2 k=k%(b-2) k=k%(b-2) 屬于高效率運算符。屬于高效率運算符。 賦值表達(dá)式賦值表達(dá)式 主要實現(xiàn)賦值運
22、算的表達(dá)式。主要實現(xiàn)賦值運算的表達(dá)式。 一般形式:一般形式: = 如:如: a=5 y=2a=5 y=2* *x+3 a=a+1x+3 a=a+1 不是衡等不是衡等作用:作用:將右邊表達(dá)式的值賦給左邊的變量將右邊表達(dá)式的值賦給左邊的變量。 賦值表達(dá)式的值取左邊變量的值。賦值表達(dá)式的值取左邊變量的值。 賦值表達(dá)式右邊的賦值表達(dá)式右邊的 可以是任何表可以是任何表達(dá)式,如:達(dá)式,如: a=(b=5) a=(b=5) 賦值表達(dá)式中包含賦值表達(dá)式賦值表達(dá)式中包含賦值表達(dá)式 賦值運算符的優(yōu)先級低于所有算術(shù)運算符,賦值運算符的優(yōu)先級低于所有算術(shù)運算符,且是右結(jié)合性。且是右結(jié)合性。 a=(b=5)a=(b=5
23、) 與與 a=b=5a=b=5 等效。等效。 例:計算以下表達(dá)式的值:例:計算以下表達(dá)式的值: a=b=c=5a=b=c=5 a=5+(c=6) a=5+(c=6) a=(b=4)+(c=6) a=(b=4)+(c=6) a=(b=4.5)+(c=6.5) a=(b=4.5)+(c=6.5) (a a、b b、c c為整型變量)為整型變量) a+=a-=aa+=a-=a* *a a ( (設(shè)設(shè)a a的原值為的原值為3)3) 賦值表達(dá)式是賦值表達(dá)式是c c語言中的一個重要成分,語言中的一個重要成分,在賦值表達(dá)式后加一分號就成為常用的賦值在賦值表達(dá)式后加一分號就成為常用的賦值語句。如語句。如 y=
24、2y=2* *x+1;x+1; 賦值表達(dá)式作為表達(dá)式的一種,可以出賦值表達(dá)式作為表達(dá)式的一種,可以出現(xiàn)在任何表達(dá)式中,如:現(xiàn)在任何表達(dá)式中,如: x+2-(b/3-(x+2-(b/3-(a=k-5a=k-5)+b)+b 3.2.9 3.2.9 逗號表達(dá)式逗號表達(dá)式 逗號也是一種運算符,用它對兩個表達(dá)式逗號也是一種運算符,用它對兩個表達(dá)式實現(xiàn)連接運算。實現(xiàn)連接運算。 3+5,6+8 3+5,6+8 稱稱逗號表達(dá)式逗號表達(dá)式。 逗號表達(dá)式的一般形式:逗號表達(dá)式的一般形式: 表達(dá)式表達(dá)式1 1,表達(dá)式,表達(dá)式2 2 取取表達(dá)式表達(dá)式2 2的值作為整個逗號表達(dá)式的值。的值作為整個逗號表達(dá)式的值。 如:
25、如: a=3a=3* *5,a5,a* *4 4 逗號表達(dá)式的值為:逗號表達(dá)式的值為:6060 一個逗號表達(dá)式又可以與另一個表達(dá)式組成一個逗號表達(dá)式又可以與另一個表達(dá)式組成一個新的逗號表達(dá)式,如:一個新的逗號表達(dá)式,如: (a=3(a=3* *5,a5,a* *4),a+54),a+5 因此,逗號表達(dá)式的一般形式可以擴展為:因此,逗號表達(dá)式的一般形式可以擴展為: 表達(dá)式表達(dá)式1 1,表達(dá)式,表達(dá)式2 2,表達(dá)式,表達(dá)式3 3,, , 表達(dá)式表達(dá)式n n 取取表達(dá)式表達(dá)式n n的值作為整個逗號表達(dá)式的值。的值作為整個逗號表達(dá)式的值。 逗號運算符的優(yōu)先級最低逗號運算符的優(yōu)先級最低, ,且是左結(jié)合性
26、。且是左結(jié)合性。 逗號運算符只起到連接作用,沒有實際操作逗號運算符只起到連接作用,沒有實際操作。 3.3 3.3 最簡單的最簡單的c c程序設(shè)計程序設(shè)計 c c 程序最基本的成分是語句程序最基本的成分是語句 目前我們已掌握的語句:目前我們已掌握的語句: 變量說明語句變量說明語句: : int a,b,c;int a,b,c; 表達(dá)式語句:表達(dá)式語句: x+y;x+y; 特別地:特別地: a=5;a=5; 賦值語句賦值語句 可以編寫簡單程序如:可以編寫簡單程序如: main()main() int x,y; int x,y; x=5; x=5; y=2 y=2* *x x* *x+3x+3* *
27、x-1;x-1; 該程序語法上完整,但還缺少輸出。該程序語法上完整,但還缺少輸出。 數(shù)據(jù)的輸出數(shù)據(jù)的輸出 用輸出函數(shù)實現(xiàn)用輸出函數(shù)實現(xiàn), ,其中的兩種輸出函數(shù):其中的兩種輸出函數(shù): 1.putchar 1.putchar 函數(shù)函數(shù) (字符輸出函數(shù))(字符輸出函數(shù)) 用于輸出一個字符。用于輸出一個字符。 如如: : putchar (a); putchar (100); char c=b; putchar (c); 例例:輸出單詞:輸出單詞boyboy的完整程序:的完整程序: #include “stdio.h” 注意該語句的作用注意該語句的作用 main() char a, b, c; a=b
28、; b=o; c=y; putchar (a); putchar (b); putchar (c); 2. printf2. printf函數(shù)函數(shù)(格式輸出函數(shù))(格式輸出函數(shù)) 任意類型、任意格式、任意個數(shù)。任意類型、任意格式、任意個數(shù)。 例如:例如: int a=100,b=56;int a=100,b=56; printfprintf( (“a=%d,b=%d”“a=%d,b=%d”, ,a,ba,b);); 普通字符普通字符 格式說明格式說明 格式控制格式控制 輸出表列輸出表列 輸出結(jié)果:輸出結(jié)果:a=100,b=56a=100,b=56“%” “%” 后的字符稱格式字符,不同格式字符
29、對應(yīng)不同的數(shù)據(jù)類型。后的字符稱格式字符,不同格式字符對應(yīng)不同的數(shù)據(jù)類型。 d d格式符:格式符:按整數(shù)格式輸出按整數(shù)格式輸出 幾種用法:幾種用法: %d%d 不指定寬度,按實際寬度輸出不指定寬度,按實際寬度輸出 %md%md 按指定寬度輸出,按指定寬度輸出,m m為寬度為寬度 %ld%ld 用于輸出長整型數(shù)用于輸出長整型數(shù) 例:例: int a=125,b=453;int a=125,b=453; long c=65535; long c=65535; printf(“a=%d,b=%5d,c=%ld”,a,b,c); printf(“a=%d,b=%5d,c=%ld”,a,b,c); 輸出結(jié)
30、果:輸出結(jié)果: a=125,b= 453,c=65535a=125,b= 453,c=65535 %ld%ld也可以按指定寬度輸出:也可以按指定寬度輸出: printf(“c=%8ld”,c);printf(“c=%8ld”,c); 輸出結(jié)果:輸出結(jié)果:c = 65535c = 65535注意:格式字符的類型要與對應(yīng)的輸出對象注意:格式字符的類型要與對應(yīng)的輸出對象的類型一致。的類型一致。 c c格式符:格式符:用于輸出字符用于輸出字符 char c=a;char c=a; printf(“c=%c,%c”,c,b); printf(“c=%c,%c”,c,b); 輸出結(jié)果輸出結(jié)果:c=a,bc
31、=a,b 輸出對象既可以是字符變量、字符常量,還輸出對象既可以是字符變量、字符常量,還可以是整型表達(dá)式??梢允钦捅磉_(dá)式。 如:如: int a=100;int a=100; char b=a; char b=a; printf(“n%d,%c”,a,a); printf(“n%d,%c”,a,a); printf(“n%c,%d”,b,b); printf(“n%c,%d”,b,b); 輸出結(jié)果:輸出結(jié)果: 100,d100,d a,65 a,65 s s格式符:格式符:用于輸出字符串用于輸出字符串 %s%s 不指定寬度不指定寬度 %-ms%-ms 指定寬度,左靠齊指定寬度,左靠齊 %ms%
32、ms 指定寬度,右靠齊指定寬度,右靠齊 %m.ns%m.ns 指定寬度指定寬度m m,只取左端,只取左端n n個字符,個字符, 右靠齊右靠齊 %-m.ns%-m.ns 指定寬度指定寬度m m,只取左端,只取左端n n個字符,個字符, 左靠齊左靠齊例:例: printf(“1:%s”,”abcd”);printf(“1:%s”,”abcd”); printf(“2:%8s”,”abcd”);printf(“2:%8s”,”abcd”); printf(“3:%-8s”,”abcd”); printf(“3:%-8s”,”abcd”); printf(“4:%8.3s”,”abcd”);print
33、f(“4:%8.3s”,”abcd”); printf(“5:%-8.3s”,”abcd”); printf(“5:%-8.3s”,”abcd”);1:abcd2: abcd3:abcd 4: abc5:abc 1:abcd2: abcd3:abcd 4: abc5:abc f f格式符:格式符:按小數(shù)形式輸出實數(shù)按小數(shù)形式輸出實數(shù) %f %f 由系統(tǒng)指定寬度(由系統(tǒng)指定寬度(6 6位小數(shù))位小數(shù)) %m.nf %m.nf 指定寬度指定寬度m m,小數(shù)位數(shù),小數(shù)位數(shù)n n,右靠齊,右靠齊 %-m.nf %-m.nf 指定寬度指定寬度m m,小數(shù)位數(shù),小數(shù)位數(shù)n n,左靠齊,左靠齊 注意:寬度包
34、括符號和小數(shù)點注意:寬度包括符號和小數(shù)點。 例:例: float a=3.141592654,b=14.326795,float a=3.141592654,b=14.326795, c=-125.2468; c=-125.2468; p r i n t f ( “ n a = % f , b = % 8 . 3 f , c = % -p r i n t f ( “ n a = % f , b = % 8 . 3 f , c = % -10.2f”,a,b,c);10.2f”,a,b,c); 輸出結(jié)果:輸出結(jié)果: a=3.141592,b= 14.326,c=-125.24a=3.141592
35、,b= 14.326,c=-125.24 完整前面的程序:完整前面的程序:main()main() int x,y; int x,y; x=5; x=5; y=2 y=2* *x x* *x+3x+3* *x-1;x-1; printf(“n y=%d”,y);printf(“n y=%d”,y); 程序設(shè)計例:程序設(shè)計例: 編寫程序計算如圖中的電流編寫程序計算如圖中的電流i i. 假設(shè)假設(shè) u=220,r1=30,r2=60,r3=45u=220,r1=30,r2=60,r3=45uir1r2r3算法設(shè)計算法設(shè)計: i=u/r1+u/r2+u/r3i=u/r1+u/r2+u/r3程序設(shè)計:程
36、序設(shè)計: main()main() i=u/r1+u/r2+u/r3;i=u/r1+u/r2+u/r3;int u=220,r1=30,r2=60,r3=45;int u=220,r1=30,r2=60,r3=45;float i;float i;printf(“n printf(“n i=%f”,i);i=%f”,i); 正確的程序:正確的程序: main()main() int u=220,r1=30,r2=60,r3=45; int u=220,r1=30,r2=60,r3=45; float i; float i; i= i=(float)(float)u/r1+u/r1+(float
37、)(float)u/r2+u/r2+(float)(float)u/r3;u/r3; printf(“n i=%f”,i); printf(“n i=%f”,i); 考慮通用考慮通用: main()main() int u,r1,r2,r3; int u,r1,r2,r3; float i; float i; 輸入輸入 u,r1,r2,r3u,r1,r2,r3 i=(float)u/r1+(float)u/r2+(float)u/r3; i=(float)u/r1+(float)u/r2+(float)u/r3; printf(“n i=%f”,i); printf(“n i=%f”,i);
38、數(shù)據(jù)的輸入數(shù)據(jù)的輸入 getchargetchar函數(shù)(函數(shù)(字符輸入字符輸入) #include “stdio.h”#include “stdio.h” main() main() char c; char c; c=getchar(); c=getchar(); 等待鍵盤輸入等待鍵盤輸入 putchar(c);putchar(c); scanf scanf 函數(shù)函數(shù)(格式輸入) 與與printfprintf函數(shù)相反。函數(shù)相反。 用于輸入若干任意類型的數(shù)據(jù)。用于輸入若干任意類型的數(shù)據(jù)。 scanfscanf( (“%d%d%d”“%d%d%d”, ,&a,&b,&c&a,&b,&c);); 格式控制格式控制 地址列表地址列表 scanfscanf( (“%d%d%d”“%d%d%d”, ,&a,&b,&c&a,&b,&c);); 執(zhí)行此函數(shù)時,等待從鍵盤輸入三個整執(zhí)行此函數(shù)時,等待從鍵盤輸入三個整數(shù)給數(shù)給a,b,ca,b,c 若從鍵盤輸入若從鍵盤輸入 3 5 83 5 8 則系統(tǒng)即從鍵盤緩沖區(qū)取出這三個數(shù)分則系統(tǒng)即從鍵盤緩沖區(qū)取出這三個數(shù)分別賦給別賦給a,b,ca,b,c 注意與注意與printfprintf的區(qū)別,注意格式的匹配的區(qū)別,注意格式的匹配
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑圍墻地基施工方案
- 戶外步道綠化施工方案
- 二零二五年度文化創(chuàng)意產(chǎn)業(yè)方借款協(xié)議
- 二零二五年度拖欠工資解除勞動合同實務(wù)案例范文
- 二零二五年度環(huán)保產(chǎn)業(yè)合作項目終止協(xié)議范本
- 非全日制合同制員工2025年度工作績效評估及獎勵合同
- 二零二五年度辣椒種植基地節(jié)水灌溉技術(shù)合同
- 二零二五年度工業(yè)氣體產(chǎn)業(yè)園區(qū)共建合作協(xié)議
- 二零二五年度醫(yī)院聘用護士勞動合同(護理心理健康)
- 幼兒園保育員聘用合同書(二零二五年度)-幼兒成長記錄合作
- 云南省地質(zhì)災(zāi)害群測群防手冊
- 電力施工安全技術(shù)交底記錄表
- (民法典版)離婚登記申請受理回執(zhí)單
- 集團權(quán)屬公司管理制度
- 普通中專畢業(yè)生登記表格模板(共4頁)
- 五金沖壓件作業(yè)指導(dǎo)書
- 電子病歷及病歷信息標(biāo)準(zhǔn)化(第五講)
- 鐵路建設(shè)項目工程試驗室管理標(biāo)準(zhǔn)TB104422009
- 汽車吊車吊裝施工方案
- 倉內(nèi)運營方案
- 催化裂化油漿系統(tǒng)結(jié)焦原因及對策
評論
0/150
提交評論