版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第3章 最簡(jiǎn)單的程序設(shè)計(jì) 順序程序設(shè)計(jì) 編寫編寫C C語(yǔ)言程序,應(yīng)具備以下知識(shí)和能力:語(yǔ)言程序,應(yīng)具備以下知識(shí)和能力:1 1、要有正確的解題思路,即學(xué)會(huì)設(shè)計(jì)算法。、要有正確的解題思路,即學(xué)會(huì)設(shè)計(jì)算法。2 2、掌握、掌握C C語(yǔ)言的語(yǔ)法。語(yǔ)言的語(yǔ)法。3 3、采用結(jié)構(gòu)化的程序設(shè)計(jì)方法編寫程序。、采用結(jié)構(gòu)化的程序設(shè)計(jì)方法編寫程序。3.1 順序程序設(shè)計(jì)舉例例例3.1 3.1 華氏溫度的攝氏溫度的轉(zhuǎn)換。華氏溫度的攝氏溫度的轉(zhuǎn)換。#includevoid main() float f,c; scanf(“%f ”,&f); /int用用%d,float用用%f c=5.0/9*(f-32); pr
2、intf(“f=%fnc=%fn”,f, c); 例3.2 計(jì)算存款利息。例:有例:有10001000元,想存一年。分別以如下元,想存一年。分別以如下3 3種方法計(jì)算出種方法計(jì)算出一年后的本息值。一年后的本息值。(1)(1)活期,年利率為活期,年利率為r1r1;(2)(2)一年期定一年期定期,年利率為期,年利率為r2r2; (3)(3)存兩次半年定存兩次半年定期,年利率為期,年利率為r3.r3. #includevoid main() float p0=1000,r1=0.0036,r2=0.0325,r3=0.0308,p1,p2,p3; p1=p0*(1+r1); p2=p0*(1+r2)
3、; p3=p0*(1+r3/2) *(1+r3/2); printf(“p1=%fnp2=%fnp3=%fn”,p1,p2,p3); 3.2 數(shù)據(jù)的表現(xiàn)形式及其運(yùn)算3.2.1 常量和變量常量和變量1.常量常量在程序運(yùn)行過程中,在程序運(yùn)行過程中,其值不能被改變的量稱為常量其值不能被改變的量稱為常量。常見的種類有:常見的種類有:(1)整型常量:如整型常量:如12、0、-3等等(2)實(shí)型常量:實(shí)型常量:十進(jìn)制小數(shù)形式,十進(jìn)制小數(shù)形式,由數(shù)字和小數(shù)點(diǎn)組成由數(shù)字和小數(shù)點(diǎn)組成,如,如4.5、-1.23等。等。指數(shù)形式,如指數(shù)形式,如12.34e3、-346.87e-25等,等,e/E的前面必須的前面必須有
4、數(shù)字,后面必須有整數(shù)有數(shù)字,后面必須有整數(shù)。(3) 字符常量普通字符普通字符用單撇號(hào)括起來的一個(gè)字符。如用單撇號(hào)括起來的一個(gè)字符。如a a 、XX為字符常量為字符常量。注意:注意:字符常量不包括單撇號(hào);字符常量不包括單撇號(hào); 大小寫不同;大小寫不同; 字符常量在內(nèi)存中是以相應(yīng)的字符常量在內(nèi)存中是以相應(yīng)的ASCIIASCII碼存儲(chǔ)。碼存儲(chǔ)。 (3) 字符常量轉(zhuǎn)義字符轉(zhuǎn)義字符n n 換行換行t t 橫橫向跳格向跳格r r 回回車車 反反斜杠斜杠dddddd dddddd表示表示1 1到到3 3位八進(jìn)制數(shù)字位八進(jìn)制數(shù)字xhhxhh hh hh表示表示1 1到到2 2位十六進(jìn)制數(shù)字位十六進(jìn)制數(shù)字 特殊
5、的字符常量:特殊的字符常量:以以 開頭的字符序列開頭的字符序列。轉(zhuǎn)義字符。轉(zhuǎn)義字符的意思是將的意思是將”后面的字符轉(zhuǎn)換成另外的意義。如后面的字符轉(zhuǎn)換成另外的意義。如nn中中的的n n不代表字母不代表字母n n而作為而作為“換行換行”符。符。下表列出了常用的轉(zhuǎn)義字符:下表列出了常用的轉(zhuǎn)義字符:如:如:00表示編碼值為表示編碼值為0 0的字符,即的字符,即“空操作空操作”,一般用于字符串,一般用于字符串中;中;101101,表示八進(jìn)制數(shù),表示八進(jìn)制數(shù)101101,即十進(jìn)制數(shù),即十進(jìn)制數(shù)6565,表示字母,表示字母AA;x41x41,表示十六進(jìn)制數(shù),表示十六進(jìn)制數(shù)4141,即十進(jìn)制數(shù),即十進(jìn)制數(shù)65
6、65,表示字母,表示字母AA;(4)字符串常量 字符串常量是一對(duì)雙撇號(hào)括起來的字符序列字符串常量是一對(duì)雙撇號(hào)括起來的字符序列. .合法的字符串常量合法的字符串常量:“CHINA”:“CHINA”, “ “a” a” , $123.45”$123.45”??梢暂敵鲆粋€(gè)字符串,如可以輸出一個(gè)字符串,如printf(“Howprintf(“How do you do.”) do you do.”);注意:注意: 是字符常量,是字符常量,”是字符串常量,二者不同。是字符串常量,二者不同。 規(guī)定:在每一個(gè)字符串常量的結(jié)尾加一個(gè)規(guī)定:在每一個(gè)字符串常量的結(jié)尾加一個(gè) “ “字符串結(jié)束標(biāo)字符串結(jié)束標(biāo)志志”,以
7、便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。規(guī)定以字符,以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。規(guī)定以字符作為字符串結(jié)束標(biāo)志。作為字符串結(jié)束標(biāo)志。如:如:字符串常量字符串常量”CHINA” CHINA” ,實(shí)際上在內(nèi)存,實(shí)際上在內(nèi)存中是:中是:CHINA0 它占內(nèi)存單元不是個(gè)字符,而是個(gè)字符,最后它占內(nèi)存單元不是個(gè)字符,而是個(gè)字符,最后一個(gè)字符為一個(gè)字符為。但在輸出時(shí)不輸出。但在輸出時(shí)不輸出。例:#define PRICE 30 /符號(hào)常量習(xí)慣用大寫符號(hào)常量習(xí)慣用大寫main() int num,total; num=10; total=numPRICE; printf(“total=%dn”,total);def
8、ine命令格式是:命令格式是: #define 標(biāo)識(shí)符標(biāo)識(shí)符 字符串字符串如:如:#define string “ABCD” /注意行末無分號(hào)注意行末無分號(hào)(5) 符號(hào)常量 用一個(gè)標(biāo)識(shí)符代表一個(gè)常量稱為符號(hào)常量。符號(hào)常量借助用一個(gè)標(biāo)識(shí)符代表一個(gè)常量稱為符號(hào)常量。符號(hào)常量借助于預(yù)處理命令于預(yù)處理命令definedefine來實(shí)現(xiàn)。來實(shí)現(xiàn)。使用符號(hào)常量的好處:使用符號(hào)常量的好處:(1 1)含義清楚)含義清楚(2 2)“一改全改一改全改”2.變量 在程序運(yùn)行期間,其值可以改變的量稱為變量。在程序運(yùn)行期間,其值可以改變的量稱為變量。變量代表一個(gè)有名字、具有特定屬性的一個(gè)存儲(chǔ)單元,變量代表一個(gè)有名字、具
9、有特定屬性的一個(gè)存儲(chǔ)單元,它用來存放數(shù)據(jù),也就是變量的值。它用來存放數(shù)據(jù),也就是變量的值。 變量名實(shí)際上是一個(gè)以一個(gè)名字對(duì)應(yīng)代表一個(gè)地址,變量名實(shí)際上是一個(gè)以一個(gè)名字對(duì)應(yīng)代表一個(gè)地址,在對(duì)程序編譯連接時(shí)由編譯系統(tǒng)給每一個(gè)變量名分配對(duì)在對(duì)程序編譯連接時(shí)由編譯系統(tǒng)給每一個(gè)變量名分配對(duì)應(yīng)的內(nèi)存地址。從變量中取值,實(shí)際上是通過變量名找應(yīng)的內(nèi)存地址。從變量中取值,實(shí)際上是通過變量名找到相應(yīng)的內(nèi)存地址,從該存儲(chǔ)單元中讀取數(shù)據(jù)。到相應(yīng)的內(nèi)存地址,從該存儲(chǔ)單元中讀取數(shù)據(jù)。 一個(gè)變量有變量名、存儲(chǔ)單元、變量值等三個(gè)概念。一個(gè)變量有變量名、存儲(chǔ)單元、變量值等三個(gè)概念。2.變量(1)(1)建議變量名的長(zhǎng)度最好不要超
10、過建議變量名的長(zhǎng)度最好不要超過8 8個(gè)字符。個(gè)字符。(2)(2)在選擇變量名和其它標(biāo)識(shí)符時(shí),應(yīng)注意做到在選擇變量名和其它標(biāo)識(shí)符時(shí),應(yīng)注意做到“見名見名知意知意”,即選有含意的英文單詞,即選有含意的英文單詞( (或其縮寫或其縮寫) )作標(biāo)識(shí)符。作標(biāo)識(shí)符。(3)(3)要求對(duì)所有用到的變量作強(qiáng)制定義,也就是要求對(duì)所有用到的變量作強(qiáng)制定義,也就是“先定先定義,后使用義,后使用”。3.標(biāo)識(shí)符 標(biāo)識(shí)符:用來對(duì)變量、符號(hào)常量名、函數(shù)、數(shù)組、類型等標(biāo)識(shí)符:用來對(duì)變量、符號(hào)常量名、函數(shù)、數(shù)組、類型等命名的有效字符序列。命名的有效字符序列。 語(yǔ)言規(guī)定語(yǔ)言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種字符組標(biāo)識(shí)符只能由字母
11、、數(shù)字和下劃線三種字符組成,且第一個(gè)字符必須為字母或下劃線。成,且第一個(gè)字符必須為字母或下劃線。 以下為合法的標(biāo)識(shí)符:以下為合法的標(biāo)識(shí)符: x1, sum, average, day, month, lotus_1_2_3x1, sum, average, day, month, lotus_1_2_3 以下為不合法的標(biāo)識(shí)符:以下為不合法的標(biāo)識(shí)符: $456, #abc, 1fs, 2nd, M.D.Jhon$456, #abc, 1fs, 2nd, M.D.Jhon注意:注意:標(biāo)識(shí)符不能是關(guān)鍵字。標(biāo)識(shí)符不能是關(guān)鍵字。 編譯系統(tǒng)將大寫字母和小寫字母認(rèn)為是兩個(gè)不同的字符。編譯系統(tǒng)將大寫字母和小寫
12、字母認(rèn)為是兩個(gè)不同的字符。3.2.2 數(shù)據(jù)類型程序程序= =數(shù)據(jù)結(jié)構(gòu)算法程序設(shè)計(jì)方法語(yǔ)言工具數(shù)據(jù)結(jié)構(gòu)算法程序設(shè)計(jì)方法語(yǔ)言工具 所謂數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)的組織形式,數(shù)據(jù)是算法處理的所謂數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)的組織形式,數(shù)據(jù)是算法處理的對(duì)象,而是以某種特定的形式存在的。對(duì)象,而是以某種特定的形式存在的。C C提供了以下一些數(shù)據(jù)提供了以下一些數(shù)據(jù)類型。類型。 在程序中對(duì)用到的所有數(shù)據(jù)都必須指定其數(shù)據(jù)類型。數(shù)據(jù)有在程序中對(duì)用到的所有數(shù)據(jù)都必須指定其數(shù)據(jù)類型。數(shù)據(jù)有常量與變量之分常量與變量之分 ,它們都屬于以上這些類型。,它們都屬于以上這些類型。3.2.3 整型數(shù)據(jù)1.整型常量的表示方法整型常量的表示方法 整型常
13、量即整常數(shù)。在語(yǔ)言中,整常數(shù)可用以下三整型常量即整常數(shù)。在語(yǔ)言中,整常數(shù)可用以下三種形式表示:種形式表示:(1)(1)十進(jìn)制整數(shù)。十進(jìn)制整數(shù)。 如:如:123, -456.4123, -456.4。(2)(2)八進(jìn)制整數(shù)。以八進(jìn)制整數(shù)。以0 0頭的數(shù)是八進(jìn)制數(shù)。頭的數(shù)是八進(jìn)制數(shù)。 如:如:01230123表示八進(jìn)制數(shù)表示八進(jìn)制數(shù)123123,等于十進(jìn)制數(shù),等于十進(jìn)制數(shù)83,-01183,-011表示八進(jìn)制數(shù)表示八進(jìn)制數(shù)-11,-11,即十進(jìn)制數(shù)即十進(jìn)制數(shù)-9-9。(3)(3)十六進(jìn)制整數(shù)。以十六進(jìn)制整數(shù)。以0 x0 x開頭的數(shù)是開頭的數(shù)是1616進(jìn)制數(shù)。進(jìn)制數(shù)。 如:如:0 x1230 x12
14、3,代表,代表1616進(jìn)制數(shù)進(jìn)制數(shù)123,123,等于十進(jìn)制數(shù)等于十進(jìn)制數(shù) 291291。 -0 x12-0 x12等于十進(jìn)制數(shù)等于十進(jìn)制數(shù)1010。2.整型變量(1)(1)整型數(shù)據(jù)在內(nèi)存中的存放形式整型數(shù)據(jù)在內(nèi)存中的存放形式 整型數(shù)據(jù)在內(nèi)存中是以二進(jìn)制形式存放的。整型數(shù)據(jù)在內(nèi)存中是以二進(jìn)制形式存放的。 如如: : int int i; / i; /* * 定義為整型變量定義為整型變量 * */ / i=10; / i=10; /* * 給給i i賦以整數(shù)賦以整數(shù)10 10 * */ / 十進(jìn)制數(shù)十進(jìn)制數(shù)1010的二進(jìn)制形式為的二進(jìn)制形式為10101010,Turbo C 2.0Turbo C
15、 2.0和和Turbo Turbo C+ 3.0C+ 3.0為一個(gè)整型變量在內(nèi)存中分配為一個(gè)整型變量在內(nèi)存中分配2 2個(gè)字節(jié)的存儲(chǔ)單元個(gè)字節(jié)的存儲(chǔ)單元( (不不同的編譯系統(tǒng)為整型數(shù)據(jù)分配的字節(jié)數(shù)是不相同的,同的編譯系統(tǒng)為整型數(shù)據(jù)分配的字節(jié)數(shù)是不相同的,VC+ VC+ 6.06.0則分配則分配4 4個(gè)字節(jié))。個(gè)字節(jié))。數(shù)值是以補(bǔ)碼數(shù)值是以補(bǔ)碼(complement) (complement) 表示的。表示的。(2)整型變量的分類有符號(hào)基本整型有符號(hào)短整型有符號(hào)長(zhǎng)整型無符號(hào)基本整型無符號(hào)短整型無符號(hào)長(zhǎng)整型(signed)int (signed)short (int )(signed) long (
16、int)unsigned intunsigned short (int)unsigned long (int)整數(shù)類型的有關(guān)數(shù)據(jù):(3)整型變量的定義: 規(guī)定在程序中所有用到的變量都必須在程序中定義,即規(guī)定在程序中所有用到的變量都必須在程序中定義,即“強(qiáng)制類型定義強(qiáng)制類型定義”。 例如例如: : int a,bint a,b(指定變量、為整型)(指定變量、為整型) unsigned short c,dunsigned short c,d; ;(指定變量、為無符號(hào)短整型)(指定變量、為無符號(hào)短整型) long e,flong e,f; ;( (指定變量、為長(zhǎng)整型)指定變量、為長(zhǎng)整型)例:整型變量
17、的定義與使用#include void main()() int a,b,c,d; /*指定、為整型變量指定、為整型變量* unsigned u; *指定為無符號(hào)整型變量指定為無符號(hào)整型變量* a=12; b=-24; u=10; c=a+u; d=b+u; printf(”a+u=%d,b+u=%dn”,c,d);); 例: 整型數(shù)據(jù)的溢出#include void main()int a,b; a=32767; b=a+1; printf(“%d,%dn”,a,b);數(shù)值是以補(bǔ)碼表示的。一個(gè)整型變量只能容納數(shù)值是以補(bǔ)碼表示的。一個(gè)整型變量只能容納- -3276832768327673276
18、7范圍內(nèi)的數(shù),無法表示大于范圍內(nèi)的數(shù),無法表示大于3276732767或小于或小于- -3276832768的數(shù)。遇此情況就發(fā)生的數(shù)。遇此情況就發(fā)生“溢出溢出”。編程時(shí)應(yīng)注意編程時(shí)應(yīng)注意數(shù)值不要超過變量的范圍。數(shù)值不要超過變量的范圍。3.2.4 字符型數(shù)據(jù)1.1.字符與字符代碼字符與字符代碼 C C語(yǔ)言程序中的字符只能是系統(tǒng)字符集中的字符,語(yǔ)言程序中的字符只能是系統(tǒng)字符集中的字符,否則計(jì)算機(jī)不能識(shí)別,目前大多數(shù)系統(tǒng)采用否則計(jì)算機(jī)不能識(shí)別,目前大多數(shù)系統(tǒng)采用ASCIIASCII字符字符集,其有集,其有127127個(gè)字符,包括:字母、數(shù)字、專用符號(hào)、個(gè)字符,包括:字母、數(shù)字、專用符號(hào)、空格符及不能
19、顯示的字符??崭穹安荒茱@示的字符。 2.字符變量字符型變量用來存放字符常量,注意只能放一個(gè)字符。字符型變量用來存放字符常量,注意只能放一個(gè)字符。字符變量的定義形式如下:字符變量的定義形式如下:char c1,c2;在本函數(shù)中可以用下面語(yǔ)句對(duì)在本函數(shù)中可以用下面語(yǔ)句對(duì)c1,c2賦值:賦值: c1a;c2 b ;一個(gè)字符變量在內(nèi)存中占一個(gè)字節(jié)。一個(gè)字符變量在內(nèi)存中占一個(gè)字節(jié)。3.字符數(shù)據(jù)的存放形式及使用方法 一個(gè)字符常量存放到一個(gè)字符變量中,一個(gè)字符常量存放到一個(gè)字符變量中,實(shí)際上并不是把該字符的字型放到內(nèi)存中實(shí)際上并不是把該字符的字型放到內(nèi)存中去,而是將該字符的相應(yīng)的去,而是將該字符的相應(yīng)的A
20、SCIIASCII代碼放到代碼放到存儲(chǔ)單元中。這樣使字符型數(shù)據(jù)和整型數(shù)存儲(chǔ)單元中。這樣使字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。據(jù)之間可以通用。注意注意: : 一個(gè)字符數(shù)據(jù)既可以以字符形一個(gè)字符數(shù)據(jù)既可以以字符形式輸出,也可以以整數(shù)形式輸出。式輸出,也可以以整數(shù)形式輸出。3.字符數(shù)據(jù)的存放形式及使用方法#include void main() char c1,c2; c1=97; c2=98; printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); #include void main() char c1,c2; c1=a; c2=b; c1=c1-32; c
21、2=c2-32; printf(“c c,c1,c2);); 3.2.5 浮點(diǎn)型數(shù)據(jù)/實(shí)型數(shù)據(jù)1.1.實(shí)型數(shù)據(jù)在內(nèi)存中的存放形式實(shí)型數(shù)據(jù)在內(nèi)存中的存放形式一個(gè)實(shí)型數(shù)據(jù)一般在內(nèi)存中占一個(gè)實(shí)型數(shù)據(jù)一般在內(nèi)存中占4 4個(gè)字節(jié)個(gè)字節(jié)(32(32位位) )。實(shí)型數(shù)據(jù)是按照實(shí)型數(shù)據(jù)是按照規(guī)范化指數(shù)形式規(guī)范化指數(shù)形式存儲(chǔ)的,即小數(shù)存儲(chǔ)的,即小數(shù)點(diǎn)前有且只有一個(gè)點(diǎn)前有且只有一個(gè)0 0,小數(shù)點(diǎn)后數(shù)字不為,小數(shù)點(diǎn)后數(shù)字不為0.0. 對(duì)每一個(gè)變量使用前都應(yīng)該先定義。實(shí)型變量的定義如對(duì)每一個(gè)變量使用前都應(yīng)該先定義。實(shí)型變量的定義如下:下:float x, y;double z;long double t; /不同的編
22、譯系統(tǒng)對(duì)該類型處理不一樣,用的較少不同的編譯系統(tǒng)對(duì)該類型處理不一樣,用的較少類型 比特?cái)?shù) 有效數(shù)字 數(shù)值范圍float 單精度 32 6 -3.410-383.41038double 雙精度 64 15 -1.710-3081.710308long double 長(zhǎng)雙精度 128 19 -1.210-49321.21049322.實(shí)型變量的分類例如:例如:1.0/31.0/3* *3 3的結(jié)果并不等于的結(jié)果并不等于1 1 3.實(shí)型數(shù)據(jù)的舍入誤差例例3.4 浮點(diǎn)型數(shù)據(jù)的舍入誤差浮點(diǎn)型數(shù)據(jù)的舍入誤差#include void main()float a,b; a = 123456.789e5; b
23、 = a + 20 ; printf(“%fn”,b); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: 12345678848.00000012345678848.000000將將float a,bfloat a,b; ;改為改為double a,bdouble a,b; ;結(jié)結(jié)果不一樣。果不一樣。一個(gè)浮點(diǎn)型變量只能保證的有效數(shù)字是一個(gè)浮點(diǎn)型變量只能保證的有效數(shù)字是6 6位有效數(shù)字,后面位有效數(shù)字,后面的數(shù)字是無意義的,并不準(zhǔn)確地表示該數(shù)。應(yīng)當(dāng)避免將一個(gè)很大的數(shù)字是無意義的,并不準(zhǔn)確地表示該數(shù)。應(yīng)當(dāng)避免將一個(gè)很大的數(shù)和一個(gè)很小的數(shù)直接相加或相減,否則就會(huì)的數(shù)和一個(gè)很小的數(shù)直接相加或相減,否則就會(huì)“丟失丟失”小的數(shù)小的
24、數(shù)。1.1.基本的算術(shù)運(yùn)算符基本的算術(shù)運(yùn)算符 (加法運(yùn)算符,或正值運(yùn)算符。如(加法運(yùn)算符,或正值運(yùn)算符。如: :、)、) (減法運(yùn)算符,或負(fù)值運(yùn)算符。如(減法運(yùn)算符,或負(fù)值運(yùn)算符。如: :、)、)* * (乘法運(yùn)算符。如(乘法運(yùn)算符。如: :* *) (除法運(yùn)算符。如(除法運(yùn)算符。如:5/3:5/3) (模運(yùn)算符,或稱求余運(yùn)算符,兩側(cè)均應(yīng)為整型(模運(yùn)算符,或稱求余運(yùn)算符,兩側(cè)均應(yīng)為整型數(shù)據(jù),如數(shù)據(jù),如: :的值為)。的值為)。3.2.7 運(yùn)算符和表達(dá)式2.自增、自減運(yùn)算符 作用是使變量的值增或減作用是使變量的值增或減,如如: +i, -i(在使用之前,先使的值加(在使用之前,先使的值加,減)減
25、)i+, i-(在使用之后,使的值加(在使用之后,使的值加, 減)減)i+i+與與+i+i的區(qū)別:的區(qū)別: 是先執(zhí)行后,再使用的值;是先執(zhí)行后,再使用的值; 是先使用的值后,再執(zhí)行。是先使用的值后,再執(zhí)行。例如:例如: ; i i的值先變成的值先變成4, 4, 再賦給再賦給,j,j的值均為的值均為 ; 先將先將 i i的值的值3 3賦給賦給, ,的值為,然后變?yōu)榈闹禐?,然后變?yōu)?.自增、自減運(yùn)算符注意:注意: (1)自增運(yùn)算符(),自減運(yùn)算符(),只能自增運(yùn)算符(),自減運(yùn)算符(),只能用于變量,而不能用于常量或表達(dá)式;用于變量,而不能用于常量或表達(dá)式; (2)和的結(jié)合方向是和的結(jié)合方向是“自
26、左至右自左至右”,如,如i+j應(yīng)理解為應(yīng)理解為(i+)+j,編程避免這樣的語(yǔ)句,編程避免這樣的語(yǔ)句; (3) 自增(減)運(yùn)算符常用于循環(huán)語(yǔ)句中使循環(huán)變量自自增(減)運(yùn)算符常用于循環(huán)語(yǔ)句中使循環(huán)變量自動(dòng)加。也用于指針變量,使指針指向下一個(gè)地址。動(dòng)加。也用于指針變量,使指針指向下一個(gè)地址。3.算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性 用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象( (也稱操作數(shù))連接起來的、也稱操作數(shù))連接起來的、符合語(yǔ)法規(guī)則的式子,稱為算術(shù)表達(dá)式符合語(yǔ)法規(guī)則的式子,稱為算術(shù)表達(dá)式。運(yùn)算對(duì)象包括常量、。運(yùn)算對(duì)象包括常量、變量、函數(shù)等。變量、函數(shù)等。 例如例如: : * */c
27、-1.5+a/c-1.5+a。 是一個(gè)合法的表達(dá)式是一個(gè)合法的表達(dá)式 C語(yǔ)言規(guī)定在表達(dá)式求值時(shí),先按運(yùn)算符的優(yōu)先級(jí)別高低次序執(zhí)語(yǔ)言規(guī)定在表達(dá)式求值時(shí),先按運(yùn)算符的優(yōu)先級(jí)別高低次序執(zhí)行,例如先乘除后加減。如表達(dá)式行,例如先乘除后加減。如表達(dá)式a-b*c相當(dāng)于相當(dāng)于a-(b*c)。 還規(guī)定了各種運(yùn)算符的結(jié)合方向還規(guī)定了各種運(yùn)算符的結(jié)合方向(結(jié)合性結(jié)合性) ,即在一個(gè)運(yùn)算對(duì)象,即在一個(gè)運(yùn)算對(duì)象兩側(cè)的運(yùn)算符的優(yōu)先級(jí)別相同時(shí),則按規(guī)定的兩側(cè)的運(yùn)算符的優(yōu)先級(jí)別相同時(shí),則按規(guī)定的“結(jié)合方向結(jié)合方向”處理。處理。 算術(shù)運(yùn)算符的結(jié)合方向?yàn)樗阈g(shù)運(yùn)算符的結(jié)合方向?yàn)椤白宰笾劣易宰笾劣摇?,即先左后右。如,即先左后右。?/p>
28、a-b+c相當(dāng)于相當(dāng)于(a-b)+c。 有些運(yùn)算符的結(jié)合方向?yàn)橛行┻\(yùn)算符的結(jié)合方向?yàn)椤白杂抑磷笞杂抑磷蟆?。如。如a=b=c。4. 不同類型數(shù)據(jù)間的混合運(yùn)算doublefloatlongunsignedintchar, short高高低低 如果一個(gè)運(yùn)算符的兩側(cè)的數(shù)據(jù)類型不同,則先自動(dòng)如果一個(gè)運(yùn)算符的兩側(cè)的數(shù)據(jù)類型不同,則先自動(dòng)轉(zhuǎn)換成同一類型再運(yùn)算。轉(zhuǎn)換的規(guī)則如下:轉(zhuǎn)換成同一類型再運(yùn)算。轉(zhuǎn)換的規(guī)則如下:4. 不同類型數(shù)據(jù)間的混合運(yùn)算(1)進(jìn)行進(jìn)行10+a的運(yùn)算,轉(zhuǎn)換的運(yùn)算,轉(zhuǎn)換a為為97;(2)進(jìn)行進(jìn)行 i* f的運(yùn)算,將的運(yùn)算,將 i 和和 f 都轉(zhuǎn)成都轉(zhuǎn)成double型;型;(3)整數(shù)整數(shù)10
29、7與與 i* f的積相加,先將的積相加,先將107轉(zhuǎn)化成雙精度數(shù),結(jié)果為轉(zhuǎn)化成雙精度數(shù),結(jié)果為double型;型;(4)將變量將變量 3轉(zhuǎn)化成轉(zhuǎn)化成double型,型,d/3的結(jié)果為的結(jié)果為double型;型;(5)將將10+a+ i* f的結(jié)果與的結(jié)果與d/3的商相減,結(jié)果為的商相減,結(jié)果為double型。型。以上數(shù)據(jù)類型轉(zhuǎn)換都是由以上數(shù)據(jù)類型轉(zhuǎn)換都是由C編譯系統(tǒng)自動(dòng)隱含完成的,故稱編譯系統(tǒng)自動(dòng)隱含完成的,故稱自動(dòng)自動(dòng)類型轉(zhuǎn)換類型轉(zhuǎn)換。 分析表達(dá)式:分析表達(dá)式:10+a+ i*fd/3,其中,其中i為整型變量,值為為整型變量,值為3,f為為float型變量,值為型變量,值為2.5,d為為do
30、uble型變量,值為型變量,值為7.5??梢岳脧?qiáng)制類型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式轉(zhuǎn)換成所需類型。可以利用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式轉(zhuǎn)換成所需類型。 一般形式一般形式: :(類型名)(表達(dá)式)(類型名)(表達(dá)式)例如:例如:(double)(double) 將轉(zhuǎn)換成將轉(zhuǎn)換成doubledouble類型類型(int)(x+y(int)(x+y) ) 將將x+yx+y的值轉(zhuǎn)換成整型的值轉(zhuǎn)換成整型(float)(float)(5%35%3) 將將5%35%3的值轉(zhuǎn)換成的值轉(zhuǎn)換成floatfloat型型5.強(qiáng)制類型轉(zhuǎn)換運(yùn)算符例:例:main() float x; int i; x=3.6; i=(in
31、t) x; printf(“x=%f, i=%d”,x, i);6. C運(yùn)算符除了算術(shù)運(yùn)算符外,除了算術(shù)運(yùn)算符外,C還提供了其他運(yùn)算符,共還提供了其他運(yùn)算符,共有以下幾類:有以下幾類:(1)算術(shù)運(yùn)算符算術(shù)運(yùn)算符 (+ - * / %)(2)關(guān)系運(yùn)算符關(guān)系運(yùn)算符 (、=、=、!=)(3)邏輯運(yùn)算符邏輯運(yùn)算符 (!、&、|)(4)位運(yùn)算符位運(yùn)算符 ( |)(5)賦值運(yùn)算符賦值運(yùn)算符 (及其擴(kuò)展賦值運(yùn)算符)(及其擴(kuò)展賦值運(yùn)算符)(6)條件運(yùn)算符條件運(yùn)算符 (?:)(?:)(7)逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符 (,),)(8)指針運(yùn)算符指針運(yùn)算符 (*和)和)(9)求字節(jié)數(shù)運(yùn)算符(求字節(jié)數(shù)運(yùn)算符(siz
32、eof)(10)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符(強(qiáng)制類型轉(zhuǎn)換運(yùn)算符( (類型)類型) )(11)分量運(yùn)算符(分量運(yùn)算符(-)(12)下標(biāo)運(yùn)算符()下標(biāo)運(yùn)算符()(13)其他其他 (如函數(shù)調(diào)用運(yùn)算符()(如函數(shù)調(diào)用運(yùn)算符()3.3 C語(yǔ)句概述C程序源程序文件1源程序文件2源程序文件n預(yù)處理命令函數(shù)n函數(shù)1數(shù)據(jù)聲明函數(shù)首部函數(shù)體數(shù)據(jù)聲明執(zhí)行語(yǔ)句 一個(gè)一個(gè)c c程序可以有若干個(gè)源程序文件組成。程序可以有若干個(gè)源程序文件組成。 一個(gè)源文件可以有若干個(gè)函數(shù)和預(yù)處理命令以及全局變量聲明一個(gè)源文件可以有若干個(gè)函數(shù)和預(yù)處理命令以及全局變量聲明部分組成。部分組成。 一個(gè)函數(shù)有函數(shù)首部和函數(shù)體組成。一個(gè)函數(shù)有函數(shù)首部和函數(shù)體
33、組成。 函數(shù)體由數(shù)據(jù)聲明和執(zhí)行語(yǔ)句組成。函數(shù)體由數(shù)據(jù)聲明和執(zhí)行語(yǔ)句組成。3.3.1 C3.3.1 C語(yǔ)句分類語(yǔ)句分類3.3.1 C語(yǔ)句分類1. 控制語(yǔ)句控制語(yǔ)句兩個(gè)分支語(yǔ)句兩個(gè)分支語(yǔ)句(if-else、switch)三個(gè)循環(huán)語(yǔ)句三個(gè)循環(huán)語(yǔ)句(for、while、do-while)四個(gè)轉(zhuǎn)移語(yǔ)句(四個(gè)轉(zhuǎn)移語(yǔ)句(continue、break、goto、return)2. 函數(shù)調(diào)用語(yǔ)句函數(shù)調(diào)用語(yǔ)句如:如:printf(“Hello, world!”);3. 表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句x+y; i+; a=2; a=3*5, 40 ; 4. 空語(yǔ)句空語(yǔ)句 ;5. 復(fù)合語(yǔ)句復(fù)合語(yǔ)句 語(yǔ)句序列語(yǔ)句序列 3.3.2
34、 最基本的語(yǔ)句賦值語(yǔ)句1.1.賦值運(yùn)算符賦值運(yùn)算符 賦值符號(hào)賦值符號(hào)“”就是賦值運(yùn)算符,它的作用是將一個(gè)數(shù)據(jù)賦給就是賦值運(yùn)算符,它的作用是將一個(gè)數(shù)據(jù)賦給一個(gè)變量。如一個(gè)變量。如“a=3”a=3”的作用是執(zhí)行一次賦值操作的作用是執(zhí)行一次賦值操作( (或稱賦值運(yùn)算或稱賦值運(yùn)算) )。把常量賦給變量把常量賦給變量a a。也可以將一個(gè)表達(dá)式的值賦給一個(gè)變量。也可以將一個(gè)表達(dá)式的值賦給一個(gè)變量。2.復(fù)合的賦值運(yùn)算符復(fù)合的賦值運(yùn)算符 在在“=”之前加上其他運(yùn)算符,構(gòu)成復(fù)合運(yùn)算符。如之前加上其他運(yùn)算符,構(gòu)成復(fù)合運(yùn)算符。如: x+=y 等價(jià)于等價(jià)于 x=x+y a%=b+c/d 等價(jià)于等價(jià)于 a=a%(b+c
35、/d) C中中10種復(fù)合賦值運(yùn)算符:種復(fù)合賦值運(yùn)算符:+=、-=、*=、/=、 %=、=、&=、=、|=2.復(fù)合的賦值運(yùn)算符為便于記憶,可以這樣理解:為便于記憶,可以這樣理解: a += b ( a += b (其中其中a a為變量,為變量,b b為表達(dá)式為表達(dá)式) ) a += b a += b(將有下劃線的(將有下劃線的“a+”a+”移到移到“=”=”右右側(cè))側(cè)) |_|_ a = a + b a = a + b (在(在“=”=”左側(cè)補(bǔ)上變量名左側(cè)補(bǔ)上變量名a a)3. 賦值表達(dá)式 由由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來的式子稱賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來的式子
36、稱為為“賦值表達(dá)式賦值表達(dá)式”。一般形式為:。一般形式為:變量變量= 表達(dá)式表達(dá)式 賦值表達(dá)式求解的過程是:賦值表達(dá)式求解的過程是: 求賦值運(yùn)算符右側(cè)的求賦值運(yùn)算符右側(cè)的“表達(dá)式表達(dá)式”的值的值; 賦給賦值運(yùn)算符左側(cè)的變量。賦給賦值運(yùn)算符左側(cè)的變量。例如例如: 賦值表達(dá)式賦值表達(dá)式“=3*5”的值為的值為15,執(zhí)行表達(dá)式后,變量,執(zhí)行表達(dá)式后,變量a的的值也是值也是15。 又如賦值表達(dá)式又如賦值表達(dá)式 (a=3*5)=4*3的求解過程為:在對(duì)賦值表達(dá)的求解過程為:在對(duì)賦值表達(dá)式式(a=3*5)求解后,變量求解后,變量a得到值得到值15。執(zhí)行。執(zhí)行(a=3*5)=4*3時(shí),實(shí)際時(shí),實(shí)際上是將上是
37、將4*3的積的積12賦給變量賦給變量a,而不是賦給,而不是賦給3*5。嵌套賦值表達(dá)式例:當(dāng)例:當(dāng)a=12a=12時(shí),時(shí),a+=a-=aa+=a-=a* *a a 求解結(jié)果?求解結(jié)果?先先“a-=aa-=a* *a”a”的運(yùn)算,的運(yùn)算,a=a-aa=a-a* *a=-132;a=-132;再進(jìn)再進(jìn)行行“a+=-132”a+=-132”的運(yùn)算,的運(yùn)算,a=a+(-132)=-264a=a+(-132)=-264。嵌套賦值表達(dá)式:嵌套賦值表達(dá)式:e1=e2=e1=e2=en=en,如:如:a=b=c=d=100 a=b=c=d=100 等價(jià)于等價(jià)于 a=(b=(c=(d=100)a=(b=(c=(d
38、=100)e1e1,e2e2,enen不必具有相同的數(shù)據(jù)類型不必具有相同的數(shù)據(jù)類型4.賦值類型轉(zhuǎn)換 規(guī)則:規(guī)則:把賦值運(yùn)算符右邊表達(dá)式的數(shù)據(jù)類型轉(zhuǎn)換成左把賦值運(yùn)算符右邊表達(dá)式的數(shù)據(jù)類型轉(zhuǎn)換成左邊對(duì)象的類型。邊對(duì)象的類型。實(shí)型賦給整型變量時(shí),舍去實(shí)數(shù)的小數(shù)部分。實(shí)型賦給整型變量時(shí),舍去實(shí)數(shù)的小數(shù)部分。整型賦給實(shí)型變量時(shí),數(shù)值不變,以浮點(diǎn)形式存儲(chǔ)。整型賦給實(shí)型變量時(shí),數(shù)值不變,以浮點(diǎn)形式存儲(chǔ)。 如如:為整型變量,執(zhí)行為整型變量,執(zhí)行“i=3.56”的結(jié)果是使的值的結(jié)果是使的值為,以整數(shù)形式存儲(chǔ)在整型變量中。為,以整數(shù)形式存儲(chǔ)在整型變量中。 又如又如: 將將23賦給賦給float變量,即執(zhí)行變量,即
39、執(zhí)行23,先將,先將23轉(zhuǎn)換成轉(zhuǎn)換成2300000,再存儲(chǔ)在中。,再存儲(chǔ)在中。5.賦值語(yǔ)句形式形式: :變量變量= =表達(dá)式;表達(dá)式;含義含義: :計(jì)算計(jì)算“=”=”右邊表達(dá)式的值,將之賦給右邊表達(dá)式的值,將之賦給“=”=”左邊的變左邊的變量。量。如:如: b=3; b=3; if(a if(a=b)0) t=a;=b)0) t=a;注意:賦值語(yǔ)句與賦值表達(dá)式的區(qū)別注意:賦值語(yǔ)句與賦值表達(dá)式的區(qū)別6 變量賦初值 (1)語(yǔ)言允許在定義變量的同時(shí)使變量初始化語(yǔ)言允許在定義變量的同時(shí)使變量初始化如如: int a=3; / 指定為整型變量,初值為指定為整型變量,初值為 float f=3.56; /
40、 指定為浮點(diǎn)型變量,初值為指定為浮點(diǎn)型變量,初值為3.56 char c= a; / 指定為字符變量,初值為指定為字符變量,初值為a (2)可以使被定義的變量的一部分賦初值。可以使被定義的變量的一部分賦初值。 如如: int a,b,c=5; 表示指定、為整型變量,但只對(duì)表示指定、為整型變量,但只對(duì)初始化,初始化,c的初值為的初值為 (3)如果對(duì)幾個(gè)變量賦以同一個(gè)初值。如果對(duì)幾個(gè)變量賦以同一個(gè)初值。 應(yīng)寫成:應(yīng)寫成:int a=3,b=3,c=3; 表示、的初值都是。表示、的初值都是。 不能寫成不能寫成 int a=b=c=3; 注意:初始化不是在編譯階段完成的而是在程序運(yùn)行時(shí)執(zhí)行本函注意:初
41、始化不是在編譯階段完成的而是在程序運(yùn)行時(shí)執(zhí)行本函數(shù)時(shí)賦初值的,相當(dāng)于有一個(gè)賦值語(yǔ)句。數(shù)時(shí)賦初值的,相當(dāng)于有一個(gè)賦值語(yǔ)句。 例3.4 輸入三角形的三邊長(zhǎng),求三角形面積。程序:程序: #include #include void main() float a,b,c,s,area; sacnf(%f,%f,%f”,&a,&b,&c); s=1.0/2*(a+b+c); /注意注意1.0/2的含義的含義 area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn”,a,b,c,s); prin
42、tf(“area=%7.2fn”,area); /注意注意%7.2f的含義的含義 分析:三邊為a,b,c,面積area=s(s-a)(s-b)(s-c), 其中s=(a+b+c)/2。3.4 數(shù)據(jù)的輸入輸出3.4.1輸入輸出舉例輸入輸出舉例例例3.5 求求ax2+bx+c=0方程的根。方程的根。#include #include void main ( ) float a,b,c,disc,x1,x2,p,q; scanf(a=%f,b=%f,c=%f,&a,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a);
43、x1=p+q;x2=p-q; printf(nnx1=%7.2fnx2=%7.2fn,x1,x2);3.4.2 有關(guān)數(shù)據(jù)輸入輸出的概念(1) 所謂輸入輸出是以計(jì)算機(jī)主機(jī)為主體而言的。所謂輸入輸出是以計(jì)算機(jī)主機(jī)為主體而言的。輸出輸出:從計(jì)算機(jī)向外部輸出設(shè)備從計(jì)算機(jī)向外部輸出設(shè)備(顯示器顯示器,打印機(jī)打印機(jī)) 輸出數(shù)據(jù)輸出數(shù)據(jù)輸入輸入:從輸入設(shè)備從輸入設(shè)備(鍵盤鍵盤,鼠標(biāo)鼠標(biāo),掃描儀掃描儀)向計(jì)算機(jī)向計(jì)算機(jī) 輸入數(shù)據(jù)輸入數(shù)據(jù). .(2)C語(yǔ)言本身不提供輸入輸出語(yǔ)句語(yǔ)言本身不提供輸入輸出語(yǔ)句,輸入和輸出操作是由輸入和輸出操作是由C函數(shù)庫(kù)函數(shù)庫(kù)中的函數(shù)來實(shí)現(xiàn)的。中的函數(shù)來實(shí)現(xiàn)的。例如例如:格式輸入函數(shù)
44、格式輸入函數(shù): scanf 格式輸出函數(shù)格式輸出函數(shù): printf字符串輸入函數(shù)字符串輸入函數(shù):gets 字符串輸出函數(shù)字符串輸出函數(shù):puts字符輸入函數(shù)字符輸入函數(shù): getchar 字符輸出函數(shù)字符輸出函數(shù):putchar(3) 在使用系統(tǒng)庫(kù)函數(shù)時(shí)在使用系統(tǒng)庫(kù)函數(shù)時(shí),要用預(yù)編譯命令要用預(yù)編譯命令“#include”將有關(guān)的將有關(guān)的“頭文件頭文件”包括到用戶源文件中包括到用戶源文件中.例如:在調(diào)用標(biāo)準(zhǔn)輸入輸出庫(kù)函數(shù)時(shí),文件開頭應(yīng)該有:例如:在調(diào)用標(biāo)準(zhǔn)輸入輸出庫(kù)函數(shù)時(shí),文件開頭應(yīng)該有: #include “stdio.h” 或:或: #include 3.4.3 用printf函數(shù)輸出數(shù)據(jù)
45、1.printf1.printf函數(shù)的一般形式函數(shù)的一般形式一般形式:一般形式:printfprintf ( (格式控制格式控制, , 輸出表列輸出表列););(1)(1)格式控制:是用雙引號(hào)括起來的字符串,包含兩種信息:格式控制:是用雙引號(hào)括起來的字符串,包含兩種信息:格式說明:由格式說明:由% %和格式控制符組成。如:和格式控制符組成。如:%d, %f%d, %f等;等;普通字符和轉(zhuǎn)義字符(普通字符原樣輸出,增加可讀性)普通字符和轉(zhuǎn)義字符(普通字符原樣輸出,增加可讀性)(2)(2)輸出表列:程序需要輸出的數(shù)據(jù),可以是常量、變量或表輸出表列:程序需要輸出的數(shù)據(jù),可以是常量、變量或表達(dá)式。達(dá)式
46、。如:如:printf(“a=%d, b=%d”,a,bprintf(“a=%d, b=%d”,a,b);); 若若a a、b b的值分別為的值分別為2 2和和3 3,則輸出結(jié)果為:,則輸出結(jié)果為: a=2, b=3a=2, b=32.格式字符幾種用法:幾種用法: d:按十進(jìn)制整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出。按十進(jìn)制整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出。 md:為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)小于,為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)小于,則左端補(bǔ)以空格,若大于,則按實(shí)際位數(shù)輸出。則左端補(bǔ)以空格,若大于,則按實(shí)際位數(shù)輸出。 例例: printf(“%4d,%4d”,a,b); 若若a=123,b=12345
47、則輸出結(jié)果為則輸出結(jié)果為 123,12345%ld:輸出長(zhǎng)整型數(shù)據(jù)。輸出長(zhǎng)整型數(shù)據(jù)。 例例: long a=135790;/* 定義定義a為長(zhǎng)整型變量為長(zhǎng)整型變量*/ printf(“%ld”,a);(1)格式符。格式符。用來輸出十進(jìn)制整數(shù)。用來輸出十進(jìn)制整數(shù)。(2)格式符用來輸出一個(gè)字符。用來輸出一個(gè)字符。如:如:char d=a; printf(“%c”,d); 輸出字符輸出字符a.一個(gè)整數(shù),只要它的值在一個(gè)整數(shù),只要它的值在0127范圍范圍內(nèi),可以用內(nèi),可以用“%c”使之按字符形式使之按字符形式輸出,在輸出前,系統(tǒng)會(huì)將該整數(shù)輸出,在輸出前,系統(tǒng)會(huì)將該整數(shù)作為作為ASCII碼轉(zhuǎn)換成相應(yīng)的字
48、符;碼轉(zhuǎn)換成相應(yīng)的字符;一個(gè)字符數(shù)據(jù)也可以用整數(shù)形式輸一個(gè)字符數(shù)據(jù)也可以用整數(shù)形式輸出。出。 例例:字符數(shù)據(jù)的輸出。字符數(shù)據(jù)的輸出。#includevoid main()char c=a; int i=97; printf(“%c,%dn”,c,c); printf(“%c,%dn”,i,i);(3) s 格式符輸出字符串輸出字符串. %s。例如:。例如: printf(“%s”,”CHINA”); 輸出字符串輸出字符串“CHINA”(不包括雙引號(hào))。(不包括雙引號(hào))。 %ms,輸出的字符串占,輸出的字符串占m列,若串長(zhǎng)大于列,若串長(zhǎng)大于m,則全部輸出,若串,則全部輸出,若串長(zhǎng)長(zhǎng) 小于小于m,
49、則左補(bǔ)空格。,則左補(bǔ)空格。 %-ms,若串長(zhǎng)小于,若串長(zhǎng)小于m,字符串向左靠,右補(bǔ)空格。,字符串向左靠,右補(bǔ)空格。例例:字符串的輸出。字符串的輸出。#includevoid main()printf(“%s,%7s,%4s,%-5sn”, “CHINA”, “CHINA”, “CHINA”, “CHINA”); (4)f格式符 用來以小數(shù)形式輸出實(shí)數(shù)(包括單雙精度)用來以小數(shù)形式輸出實(shí)數(shù)(包括單雙精度)有以下幾種用法:有以下幾種用法: %f。不指定字段寬度,由系統(tǒng)自動(dòng)指定字段寬度,使整數(shù)部。不指定字段寬度,由系統(tǒng)自動(dòng)指定字段寬度,使整數(shù)部分全部輸出,并輸出分全部輸出,并輸出6位小數(shù)。應(yīng)當(dāng)注意,
50、在輸出的數(shù)字中并非全位小數(shù)。應(yīng)當(dāng)注意,在輸出的數(shù)字中并非全部數(shù)字都是有效數(shù)字。單精度實(shí)數(shù)的有效位數(shù)一般為部數(shù)字都是有效數(shù)字。單精度實(shí)數(shù)的有效位數(shù)一般為6位。位。 m.nf。指定輸出的數(shù)據(jù)共占。指定輸出的數(shù)據(jù)共占m列,其中有列,其中有n位小數(shù)。如果數(shù)位小數(shù)。如果數(shù)值長(zhǎng)度小于值長(zhǎng)度小于m,則左端補(bǔ)空格。,則左端補(bǔ)空格。 - m.nf與與 m.nf基本相同,只是使輸出的數(shù)值向左端靠,右基本相同,只是使輸出的數(shù)值向左端靠,右端補(bǔ)空格。端補(bǔ)空格。 (4)f格式符例例: 輸出實(shí)數(shù)時(shí)指定小數(shù)位數(shù)。輸出實(shí)數(shù)時(shí)指定小數(shù)位數(shù)。#include void main() float f=123.456; printf
51、(“%f%10f%10.2f%.2f%-10.2fn”,f,f,f,f,f);運(yùn)行結(jié)果:運(yùn)行結(jié)果:123.455994 123.455994 123.46 123.46 123.46例例: 輸出實(shí)數(shù)時(shí)的有效位數(shù)。輸出實(shí)數(shù)時(shí)的有效位數(shù)。#include void main() float x,y;x=111111.111;y=222222.222; printf(“%f”,x+y);運(yùn)行結(jié)果:運(yùn)行結(jié)果:333333.328125將將float x,y;改為改為double x,y;結(jié)果不同。結(jié)果不同。(5) e格式符以指數(shù)形式輸出實(shí)數(shù)。以指數(shù)形式輸出實(shí)數(shù)。可用以下形式:可用以下形式: e。數(shù)字部
52、分前面只有。數(shù)字部分前面只有1位非位非0數(shù)字,數(shù)字的小數(shù)部分為數(shù)字,數(shù)字的小數(shù)部分為5位,位,指數(shù)部分占指數(shù)部分占4位。例位。例: printf(“%e”,123.456);輸出:輸出:1.23456e+02所輸出的實(shí)數(shù)共占所輸出的實(shí)數(shù)共占11列寬度。列寬度。(注:不同系統(tǒng)的規(guī)定略有不同注:不同系統(tǒng)的規(guī)定略有不同) m.ne和和-m.ne。輸出的指數(shù)部分同輸出的指數(shù)部分同%e,數(shù)字部分不連小數(shù)字部分不連小數(shù)點(diǎn)共數(shù)點(diǎn)共n,即小數(shù)點(diǎn)前有,即小數(shù)點(diǎn)前有1位非位非0整數(shù),后有整數(shù),后有n-1位。位。m和和n+1+4比較。比較。 若若f=123.456,則:,則:printf(“%e n%10en %10.2en %.2en%-10.2en“,f,f,f,f,f); 輸出如下:輸出如下:1.23456e+02 1.23456e+02 1.2e+02 1.2e+02 1.2e+02 11列列 11列列 10列列 7列列 7列列 3.4.4 用scanf函數(shù)輸入數(shù)據(jù)1.scanf函數(shù)的一般格式函數(shù)的一般格式scanf(格式控制,地址表列格式控制,地址表列);“格式控制格式控制”的含義同的含義同printf函數(shù);函數(shù);“地址表列地址表列”是由若干個(gè)地址組成的表列,可以是變量的地址,或是由若干個(gè)地址組成的表列,可以是變量的地址,或字符串的首地址。字符串的首地址。函數(shù)作用:按照變量在內(nèi)存的地址
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東外語(yǔ)外貿(mào)大學(xué)《營(yíng)養(yǎng)生理學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東司法警官職業(yè)學(xué)院《別墅建筑設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東生態(tài)工程職業(yè)學(xué)院《西方經(jīng)濟(jì)學(xué)(下)》2023-2024學(xué)年第一學(xué)期期末試卷
- 七年級(jí)上冊(cè)《6.2.1直線、射線、線段》課件與作業(yè)
- 廣東南華工商職業(yè)學(xué)院《色彩靜物及人物頭像》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東梅州職業(yè)技術(shù)學(xué)院《計(jì)算機(jī)創(chuàng)客訓(xùn)練》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東茂名健康職業(yè)學(xué)院《半導(dǎo)體器件原理》2023-2024學(xué)年第一學(xué)期期末試卷
- 一年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)1000題匯編
- 2024八年級(jí)地理上冊(cè)第三章自然資源-我們生存和發(fā)展的物質(zhì)基礎(chǔ)學(xué)情評(píng)估晉教版
- 【2021屆備考】2020全國(guó)名校物理試題分類解析匯編(11月第二期)A4-豎直上拋運(yùn)動(dòng)
- 2025年國(guó)務(wù)院發(fā)展研究中心信息中心招聘應(yīng)屆畢業(yè)生1人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年公安機(jī)關(guān)理論考試題庫(kù)500道及參考答案
- 2024年全國(guó)《國(guó)防和兵役》理論知識(shí)競(jìng)賽試題庫(kù)與答案
- 特殊情況施工的技術(shù)措施
- 企業(yè)知識(shí)產(chǎn)權(quán)保護(hù)策略及實(shí)施方法研究報(bào)告
- 2024年07月11026經(jīng)濟(jì)學(xué)(本)期末試題答案
- 2024年中小企業(yè)股權(quán)融資合同3篇
- 2024年01月11289中國(guó)當(dāng)代文學(xué)專題期末試題答案
- 2024年秋季生物教研組工作計(jì)劃
- 2024年云南高中學(xué)業(yè)水平合格考?xì)v史試卷真題(含答案詳解)
- 大學(xué)物理(二)知到智慧樹章節(jié)測(cè)試課后答案2024年秋湖南大學(xué)
評(píng)論
0/150
提交評(píng)論