版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第三章順序程序設(shè)計(jì)
3.1順序程序設(shè)計(jì)舉例(略)
3.2數(shù)據(jù)的表現(xiàn)形式及其運(yùn)算
3.2.1常量與變量■常量與符號(hào)常量
常量在程序運(yùn)行過(guò)程中其值保持不變的量。符號(hào)常量用來(lái)代表一個(gè)常量的標(biāo)識(shí)符。
#definePI3.1415926
例:
#definePI3.1415926main(){floatr=2,c;
c=2*PI*r;printf(“%f”,c);}■變量
其值可以改變的量。
變量的三要素:
①
變量名每個(gè)變量有一個(gè)名字,作為識(shí)別該變量的標(biāo)識(shí)符。②變量的值每個(gè)變量有一個(gè)值,變量的值是隨時(shí)可以改變的。
③變量的存儲(chǔ)單元
每個(gè)變量占據(jù)一個(gè)內(nèi)存單元,用于存放變量的值。
變量名
a
變量值
存儲(chǔ)單元
3
變量的命名規(guī)則:由字母、數(shù)字和下劃線組成以字母或下劃線開(kāi)頭
a、x1、y_2、_b1、_1c合法
1x、a+2、Ф、Ω不合法
變量必須先定義后使用。程序中何時(shí)使用常量?何時(shí)使用變量?
3.2.2數(shù)據(jù)類型
在程序設(shè)計(jì)中需要根據(jù)需要選擇合適的“類型”來(lái)定義變量??蛇x擇的數(shù)據(jù)類型見(jiàn)圖3.4
基本類型—整型﹑浮點(diǎn)型﹑字符型
枚舉類型
空類型派生類型
3.2.3整型數(shù)據(jù)
■整型常量
即整常數(shù),c的整常數(shù)有三種形式:
①十進(jìn)制整數(shù)與數(shù)學(xué)中的整數(shù)一致,如:100,123,15等。
②八進(jìn)制整數(shù)以0開(kāi)頭的整數(shù),如:010,07,020等。
③十六進(jìn)制整數(shù)以0x開(kāi)頭的整數(shù),如:0x10,0xff,0x2a等。
■整型變量
用于存放整數(shù)的變量。分4種類型:
①基本型:inta16位,可表示的數(shù)值范圍:-32768—3276732位,數(shù)值范圍:-2147483648—2147483647
②短整型:shortintb16位,可表示的數(shù)值范圍:-32768—32767
③長(zhǎng)整型:longintc32位,數(shù)值范圍:-2147483648—2147483647
④無(wú)符號(hào)型:加上unsigned
只存放正數(shù)。如:unsignedshortintx
變量x為無(wú)符號(hào)整數(shù),16位全表示數(shù)碼,數(shù)值范圍:0—65535
在程序設(shè)計(jì)中,如果要使用整型變量,必須首先選擇以上類型符來(lái)定義變量,然后才能使用;
例:
main()定義
{inta,b,c;a=100;b=50;使用
c=a+b;printf(“%d”,c);}
一般根據(jù)什么原則選擇變量的類型?3.2.4字符型數(shù)據(jù)
■字符常量
用單引號(hào)括起來(lái)的一個(gè)字符。
’a’,’x’,’*’,’1’等除此外,以’\’開(kāi)頭的字符如’\n’,’\t’等稱為轉(zhuǎn)義字符,祥見(jiàn)書(shū)表3.1■字符型變量
用于存放字符的變量。
charc1,c2定義c1和c2為字符型變量
c1=’a’;c2=’b’;字符賦值字符型變量存放一個(gè)字符,占據(jù)一個(gè)字節(jié)■字符型數(shù)據(jù)的存儲(chǔ)形式
存放ASCII碼不是而是
如字符’a’在內(nèi)存中存放97,’b’
存放98。與整數(shù)的存儲(chǔ)形式一致,它們之間可以通用一個(gè)字符數(shù)據(jù)既可以作字符用,也可以作整數(shù)用(取其ASCII代碼)。如:32+’a’相當(dāng)于32+97
若intx;charc;則x=’a’;c=97;x=97;c=’a’;都允許
■字符串常量
用雙引號(hào)括起來(lái)的字符序列。
如:”abcde”,”china”
”a”也屬字符串。注意”a”與’a’的區(qū)別。對(duì)于:
charc;c=”a”;
用法錯(cuò)誤字符串中每個(gè)字符各占一個(gè)字節(jié),并且在字符串結(jié)尾加上一個(gè)結(jié)束標(biāo)記’\0’
如:”china”
在內(nèi)存中占6個(gè)字節(jié)。
china\0
C語(yǔ)言中專門的字符串變量,可用字符數(shù)組存放(以后介紹)。3.2.5實(shí)型數(shù)據(jù)
■實(shí)型常量
可使用兩種形式表示:①小數(shù)形式:如1.23,3.141592615.48②指數(shù)形式:如1e-201.23e5
■實(shí)型變量
用于存放實(shí)數(shù)的變量分單精度和雙精度兩種:
floata,b
定義a和b為單精度型變量
32位,7位有效數(shù)字,10-38—1038
doublex,y
定義x和y為雙精度型變量
64位,15位有效數(shù)字,10-308—10308
例:
main(){floatr,c;doubler,c;r=5;c=2*3.1415926*r;printf(“%f”,c);}
3.2.6各數(shù)值型數(shù)據(jù)間的混合運(yùn)算
整型、實(shí)型、字符型數(shù)據(jù)間可以進(jìn)行混合運(yùn)算,如:
10-‘a(chǎn)’*1.5
運(yùn)算時(shí),參加運(yùn)算的兩個(gè)數(shù)據(jù)如果類型不同,則首先將其類型轉(zhuǎn)換成一致再運(yùn)算,轉(zhuǎn)換規(guī)則是:
將優(yōu)先級(jí)低的類型轉(zhuǎn)換到優(yōu)先級(jí)高的類型
數(shù)據(jù)類型的優(yōu)先級(jí):高
doublefloatlongunsignde
低
intchar3.2.7算術(shù)運(yùn)算符與算術(shù)表達(dá)式
■基本的算術(shù)運(yùn)算符
+-*/%
■算術(shù)表達(dá)式
用算術(shù)運(yùn)算符將運(yùn)算對(duì)象連接起來(lái)的式子
用于表達(dá)數(shù)學(xué)公式的式子如:2*x+y-1/a
表達(dá)式經(jīng)過(guò)運(yùn)算最終得到一個(gè)值:
算術(shù)表達(dá)式的值■運(yùn)算符的優(yōu)先級(jí)與結(jié)合性
優(yōu)先級(jí):在對(duì)表達(dá)式求值時(shí),如果存在多個(gè)運(yùn)算符,則運(yùn)算的先后次序按運(yùn)算符的優(yōu)先級(jí)別從高到底進(jìn)行。
運(yùn)算符的優(yōu)先級(jí)關(guān)系為:高:*/%
低:+-
如:a-2*x先算*
2*(a+2)有括號(hào)的情況?
結(jié)合性:
如果在一個(gè)運(yùn)算對(duì)象兩邊的運(yùn)算符的優(yōu)先級(jí)相同,則按規(guī)定的“結(jié)合方向”處理。如:a-b+cb與-結(jié)合是從左到右,稱“左結(jié)合性”。
b與+結(jié)合是從右到左,稱“右結(jié)合性”。每個(gè)運(yùn)算符都有相應(yīng)的優(yōu)先級(jí)和結(jié)合性。基本算術(shù)運(yùn)算符都是左結(jié)合性。
計(jì)算表達(dá)式例:
2+’A’-1/2.01+3/2-2構(gòu)造表達(dá)式例
2x2+3x-1
a+ba-b
a+ba-b
x+yx-ya+b/a-b?(a+b)/(a-b)2*x*x+3*x-1(*不能?。?a+b)/(a-b)/(x+y)/(x-y)(a+b)/(a-b)/((x+y)/(x-y))(a+b)/(a-b)/(x+y)*(x-y)■強(qiáng)制類型轉(zhuǎn)換可以用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式的值轉(zhuǎn)換成所需類型:如:
(int)(x+y)(float)(7%3)
應(yīng)用舉例:
若在TurboC下運(yùn)行:
short
inta=200,b=300,c;c=a*b/100;?
可知,有自動(dòng)轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換,當(dāng)自動(dòng)轉(zhuǎn)換達(dá)不到目的時(shí),可用強(qiáng)制轉(zhuǎn)換。c=(long)a*b/100;c=(long)(a*b)/100;■自增、自減運(yùn)算符
自增運(yùn)算符:++
使變量值加1
自減運(yùn)算符:--
使變量值減1
兩種用法:
++i,--i先加(減)后用
i++,i--先用后加(減)兩種用法對(duì)i效果一樣,但表達(dá)式的值不同。例:假設(shè)i的原值為5:
j=++i;j=?
j=i++;j=?
注意:●++和--只能用于變量。
如:3++和(a+1)++
不合法●++和--為右結(jié)合性。
(-i)++
-i++
-(i++)
若i的原值是5,則該表達(dá)式的值是多少?
例:分析執(zhí)行下列語(yǔ)句后的結(jié)果:
a=5;abcd
b=a++;c=--a-b++;d=(a++)-(++b)+c--;
5565067-26-1
兩種特殊情況:①k=(i++)+(i++)+(i++)
②i+++j
是i+(++j)
還是(i++)+j?
i++雖然與i=i+1等效,但使用自增自減運(yùn)算符的代碼優(yōu)化程度好,因而經(jīng)常使用;但用時(shí)需特別小心。3.2.8賦值運(yùn)算符和賦值表達(dá)式■賦值運(yùn)算符
“=”稱賦值運(yùn)算符,其作用是將一個(gè)數(shù)據(jù)賦給一個(gè)變量。如:a=5
不要理解為“等號(hào)”。執(zhí)行賦值運(yùn)算的結(jié)果,是將右邊的數(shù)據(jù)存入左邊變量所對(duì)應(yīng)的內(nèi)存單元中。
■賦值規(guī)則
如果賦值運(yùn)算符兩側(cè)的類型不一致,則在賦值時(shí)要進(jìn)行類型轉(zhuǎn)換,轉(zhuǎn)換規(guī)則為:●實(shí)型→整變量舍去小數(shù)部分。
inta=5.5;a中為5?!裾汀鷮?shí)變量數(shù)值不變,以浮點(diǎn)形式存儲(chǔ)?!褡址汀兞糠旁谡巫兞康?位。保持原值不變?cè)瓌t。
inta=‘A’;■復(fù)合賦值運(yùn)算符
在賦值運(yùn)算符前加上其它運(yùn)算符,可以構(gòu)成復(fù)合賦值運(yùn)算符。
a+=3——a=a+3b-=x+5——b=b-(x+5)x*=c-6——x=x*(c-6)y/=a*4——y=y/(a*4)k%=b-2——k=k%(b-2)
屬于高效率運(yùn)算符。■賦值表達(dá)式
主要實(shí)現(xiàn)賦值運(yùn)算的表達(dá)式。
一般形式:
<變量>=<表達(dá)式>
如:a=5y=2*x+3a=a+1
不是衡等作用:將右邊表達(dá)式的值賦給左邊的變量。賦值表達(dá)式的值取左邊變量的值。
賦值表達(dá)式右邊的<表達(dá)式>可以是任何表達(dá)式,如:
a=(b=5)賦值表達(dá)式中包含賦值表達(dá)式賦值運(yùn)算符的優(yōu)先級(jí)低于所有算術(shù)運(yùn)算符,且是右結(jié)合性。
a=(b=5)
與a=b=5
等效。
例:計(jì)算以下表達(dá)式的值:
a=b=c=5a=5+(c=6)a=(b=4)+(c=6)a=(b=4.5)+(c=6.5)(a、b、c為整型變量)
a+=a-=a*a(設(shè)a的原值為3)
賦值表達(dá)式是C語(yǔ)言中的一個(gè)重要成分,在賦值表達(dá)式后加一分號(hào)就成為常用的賦值語(yǔ)句。如y=2*x+1;
賦值表達(dá)式作為表達(dá)式的一種,可以出現(xiàn)在任何表達(dá)式中,如:
x+2-(b/3-(a=k-5)+’b’
3.2.9逗號(hào)表達(dá)式
逗號(hào)也是一種運(yùn)算符,用它對(duì)兩個(gè)表達(dá)式實(shí)現(xiàn)連接運(yùn)算。
3+5,6+8稱逗號(hào)表達(dá)式。逗號(hào)表達(dá)式的一般形式:
表達(dá)式1,表達(dá)式2
取表達(dá)式2的值作為整個(gè)逗號(hào)表達(dá)式的值。如:a=3*5,a*4
逗號(hào)表達(dá)式的值為:60
一個(gè)逗號(hào)表達(dá)式又可以與另一個(gè)表達(dá)式組成一個(gè)新的逗號(hào)表達(dá)式,如:
(a=3*5,a*4),a+5
因此,逗號(hào)表達(dá)式的一般形式可以擴(kuò)展為:
表達(dá)式1,表達(dá)式2,表達(dá)式3,……,表達(dá)式n
取表達(dá)式n的值作為整個(gè)逗號(hào)表達(dá)式的值。
逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低,且是左結(jié)合性。
逗號(hào)運(yùn)算符只起到連接作用,沒(méi)有實(shí)際操作。
3.3最簡(jiǎn)單的C程序設(shè)計(jì)
C程序最基本的成分是語(yǔ)句目前我們已掌握的語(yǔ)句:
變量說(shuō)明語(yǔ)句:
inta,b,c;
表達(dá)式語(yǔ)句:
x+y;
特別地:
a=5;
賦值語(yǔ)句
可以編寫簡(jiǎn)單程序如:
main(){intx,y;x=5;y=2*x*x+3*x-1;}
該程序語(yǔ)法上完整,但還缺少輸出。
■數(shù)據(jù)的輸出
用輸出函數(shù)實(shí)現(xiàn),其中的兩種輸出函數(shù):
1.putchar函數(shù)(字符輸出函數(shù))用于輸出一個(gè)字符。
如:
putchar(‘a(chǎn)’);putchar(100);charc=’b’;putchar(c);
例:輸出單詞Boy的完整程序:
#include“stdio.h”注意該語(yǔ)句的作用
main(){chara,b,c;a=’B’;b=’o’;c=’y’;putchar(a);putchar(b);putchar(c);}
2.printf函數(shù)(格式輸出函數(shù))
任意類型、任意格式、任意個(gè)數(shù)。例如:
inta=100,b=56;
printf(“a=%d,b=%d”,a,b);
普通字符格式說(shuō)明格式控制
輸出表列
輸出結(jié)果:a=100,b=56“%”
后的字符稱格式字符,不同格式字符對(duì)應(yīng)不同的數(shù)據(jù)類型。
d格式符:按整數(shù)格式輸出
幾種用法:
%d
不指定寬度,按實(shí)際寬度輸出
%md
按指定寬度輸出,m為寬度
%ld
用于輸出長(zhǎng)整型數(shù)
例:
inta=125,b=453;longc=65535;printf(“a=%d,b=%5d,c=%ld”,a,b,c);
輸出結(jié)果:
a=125,b=453,c=65535
%ld也可以按指定寬度輸出:
printf(“c=%8ld”,c);
輸出結(jié)果:c=65535注意:格式字符的類型要與對(duì)應(yīng)的輸出對(duì)象的類型一致。
c格式符:用于輸出字符
charc=’A’;printf(“c=%c,%c”,c,’B’);
輸出結(jié)果:c=A,B
輸出對(duì)象既可以是字符變量、字符常量,還可以是整型表達(dá)式。
如:
inta=100;charb=’A’;printf(“\n%d,%c”,a,a);printf(“\n%c,%d”,b,b);
輸出結(jié)果:
100,dA,65s格式符:用于輸出字符串
%s
不指定寬度
%-ms
指定寬度,左靠齊
%ms
指定寬度,右靠齊
%m.ns
指定寬度m,只取左端n個(gè)字符,右靠齊
%-m.ns
指定寬度m,只取左端n個(gè)字符,左靠齊例:
printf(“1:%s”,”abcd”);
printf(“2:%8s”,”abcd”);printf(“3:%-8s”,”abcd”);
printf(“4:%8.3s”,”abcd”);printf(“5:%-8.3s”,”abcd”);1:abcd2:abcd3:abcd4:abc5:abcf格式符:按小數(shù)形式輸出實(shí)數(shù)
%f由系統(tǒng)指定寬度(6位小數(shù))
%m.nf指定寬度m,小數(shù)位數(shù)n,右靠齊
%-m.nf指定寬度m,小數(shù)位數(shù)n,左靠齊
注意:寬度包括符號(hào)和小數(shù)點(diǎn)。
例:
floata=3.141592654,b=14.326795,c=-125.2468;
printf(“\na=%f,b=%8.3f,c=%-10.2f”,a,b,c);
輸出結(jié)果:
a=3.141592,b=14.326,c=-125.24
完整前面的程序:main(){intx,y;x=5;y=2*x*x+3*x-1;
printf(“\ny=%d”,y);}程序設(shè)計(jì)例:
編寫程序計(jì)算如圖中的電流I.
假設(shè)U=220,R1=30,R2=60,R3=45UIR1R2R3算法設(shè)計(jì):
I=U/R1+U/R2+U/R3程序設(shè)計(jì):
main(){
}I=U/R1+U/R2+U/R3;intU=220,R1=30,R2=60,R3=45;floatI;printf(“\nI=%f”,I);
正確的程序:
main(){intU=220,R1=30,R2=60,R3=45;floatI;I=(float)U/R1+(float)U/R2+(float)U/R3;printf(“\nI=%f”,I);}
考慮通用:
main(){intU,R1,R2,R3;floatI;
輸入U(xiǎn),R1,R2,R3I=(float)U/R1+(float)U/R2+(float)U/R3;printf(“\nI=%f”,I);}
■數(shù)據(jù)的輸入
getchar函數(shù)(字符輸入)
#include“stdio.h”main(){charc;c=getchar();等待鍵盤輸入
putchar(c);}
scanf函數(shù)(格式輸入)
與printf函數(shù)相反。用于輸入若干任意類型的數(shù)據(jù)。
scanf(“%d%d%d”,&a,&b,&c);
格式控制
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于班風(fēng)學(xué)風(fēng)的精彩發(fā)言稿(5篇)
- 污水處理與可持續(xù)發(fā)展-洞察分析
- 新型密封材料耐磨性分析-洞察分析
- 網(wǎng)絡(luò)均衡與數(shù)據(jù)安全-洞察分析
- 虛擬現(xiàn)實(shí)技術(shù)在火災(zāi)風(fēng)險(xiǎn)培訓(xùn)中的作用-洞察分析
- 虛擬現(xiàn)實(shí)的報(bào)告-洞察分析
- 水利工程風(fēng)險(xiǎn)監(jiān)測(cè)技術(shù)-洞察分析
- 虛擬現(xiàn)實(shí)技術(shù)與心理實(shí)驗(yàn)的結(jié)合-洞察分析
- 用戶畫(huà)像在人工智能領(lǐng)域的應(yīng)用與挑戰(zhàn)研究-洞察分析
- 下頜下腺癌化療藥物分子標(biāo)記物-洞察分析
- 口腔癌早期診斷與治療
- 2019-2020學(xué)年上海虹口區(qū)實(shí)驗(yàn)中學(xué)六年級(jí)上學(xué)期英語(yǔ)期末卷及答案
- 供應(yīng)鏈總監(jiān)工作計(jì)劃
- 團(tuán)體輔導(dǎo)準(zhǔn)備篇:結(jié)構(gòu)式團(tuán)體練習(xí)及其應(yīng)用
- 大華硬盤錄像機(jī)操作說(shuō)明
- 社會(huì)保險(xiǎn)職工增減表
- 結(jié)婚函調(diào)報(bào)告表(帶參考)
- 2023-2024學(xué)年江蘇省泰州市姜堰市數(shù)學(xué)六年級(jí)第一學(xué)期期末質(zhì)量檢測(cè)試題含答案
- 表-柴油的理化性質(zhì)及危險(xiǎn)特性
- 婦產(chǎn)科名詞解釋及簡(jiǎn)答題
- 了不起的狐貍爸爸精編版課件
評(píng)論
0/150
提交評(píng)論