版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式Follow
me!2.1
C語(yǔ)言數(shù)據(jù)類型整型(int)基本類型字符型(char)
單精度型(float)實(shí)型(浮點(diǎn)型)雙精度型(double)指針類型數(shù)據(jù)類型構(gòu)造類型數(shù)組類型結(jié)構(gòu)體類型(struct)共用體類型(union)枚舉類型(enum)無(wú)值類型(空類型)
(void)標(biāo)識(shí)符標(biāo)識(shí)符就是名字。在C中有符號(hào)常量名、變量名、函數(shù)名、標(biāo)號(hào)、文件名、結(jié)構(gòu)類型名、各種用戶定義的對(duì)象名等。命名規(guī)則:構(gòu)成字符:26個(gè)英文字母、數(shù)字0-9、下劃線須由字母或下劃線開頭,后可跟任意可用字符注意:大小寫字母含義不同。Num和NUM為不同標(biāo)識(shí)符構(gòu)造標(biāo)識(shí)符時(shí)盡量做到“見名知意”。如sum,st_age標(biāo)識(shí)符不能使用C語(yǔ)言關(guān)鍵字。如main,int等C有32個(gè)關(guān)鍵字,見24頁(yè).2.2
常量與變量2.2.1
常量定義:在程序執(zhí)行期間,其值不可改變的量稱為常量類型:數(shù)值常量:例如:10,3
,2.68等符號(hào)常量:用一個(gè)符號(hào)代表一個(gè)常量 例如:
#define
PI
3.1415926main(){
float
r,l,s;r=2;l=2*PI*r;s=PI*r*r;printf(“l(fā)=%d,s=%d”,l,s);}增加可讀性;提高可維護(hù)性說(shuō)明:符號(hào)常量必須先定義后才能用它表示一個(gè)數(shù)值符號(hào)常量名習(xí)慣用大寫字母表示2.2.2
變量定義:程序執(zhí)行期間值可以改變的量變量?jī)蓚€(gè)要素:變量名和變量值。變量值存儲(chǔ)在內(nèi)存中,不同類型變量占用的內(nèi)存單元(字節(jié))不同。在程序中通過(guò)變量名引用變量的值。3.說(shuō)明:(1)變量要“先定義,后使用”定義格式:類型說(shuō)明符例:int
x,y,z;標(biāo)識(shí)符1,標(biāo)識(shí)符2......標(biāo)識(shí)符nfloat
a,b,c,d;(2)可以定義變量同時(shí)給變量賦值——初始化例:int
x=10,y=20,z;3變量名變量值存儲(chǔ)單元a例:下列標(biāo)識(shí)符中,合法的變量名有:12%gf
1addage&lotus_1_2_3M.D.John_ce365thclasscd*ef2.3整型數(shù)據(jù)(int)數(shù)據(jù)在內(nèi)存中是以二進(jìn)制形式存放的00000000000010101111111111110110整型常量十進(jìn)制:0-9組成,無(wú)小數(shù)。如123,-456,0八進(jìn)制:以0開頭,0-7組成,無(wú)小數(shù)。如0123,-011十六進(jìn)制:以0x或0X開頭,0-9和a-f(大小寫均可)組成。如x123,-0x12(2)整型變量每一個(gè)整型變量在內(nèi)存中占2個(gè)字節(jié),以補(bǔ)碼形式表示。如:+10-10整型變量的分類
:基本整型:int
短整型:short
int
長(zhǎng)整型:long
int有符號(hào)[signed]int有符號(hào)[signed]short
[int]有符號(hào)[signed]long
[int]無(wú)符號(hào)unsigned
[int]無(wú)符號(hào)unsigned
short
[int]無(wú)符號(hào)unsigned
long
[int]說(shuō)明:不指定有無(wú)符號(hào)時(shí),即省略signed或unsigned時(shí),隱含為有符號(hào)。例2.2整型變量的定義例2.2
整型變量的定義#include
<stdio.h>main(){
int
a,b;signed
short
int
c;short
d=100;a=d-20;b=a+d;c=a+b+d;d=d-a+c-b;printf("a=%d,b=%d,c=%d,d=%d",a,b,c,d);}說(shuō)明:常量:用l或L做后綴:表示長(zhǎng)整型數(shù)。12L用u做后綴:表示無(wú)符號(hào)數(shù)。22u使用long型可得到大范圍整數(shù),但也會(huì)降低運(yùn)算速度。標(biāo)準(zhǔn)C中各種整數(shù)類型的表示范圍見25頁(yè)表2.1。例2.3整型數(shù)據(jù)的溢出說(shuō)明:例2.3整型數(shù)據(jù)的溢出#include
<stdio.h>main(){
int
a=32767;short
int
c;unsigned
int
b=2,d;int
e;c=a+b;d=a+b;e=a+b;rintf("c=%d,d=%u,e=%u",c,d,e);}運(yùn)行結(jié)果:-32767,32769,32769011111111111111100000000000000101000000000000001111111111111111011111111111111111000000000000001a=b=+2(有符號(hào))c=a+b反碼c補(bǔ)碼c=-32767無(wú)符號(hào)d=a+b,以無(wú)符號(hào)格式輸出有符號(hào)e=a+b2.
4實(shí)型數(shù)據(jù)(又叫浮點(diǎn)數(shù)float)(1)實(shí)型常量定點(diǎn)數(shù)形式:.123,123.
,123.0
,0.0
(必須帶有小數(shù)點(diǎn))指數(shù)形式:123e3或123E3(E前必須有數(shù);E后須為整數(shù),可正可負(fù))1.234e3
代表
1.234×103
;e3,1e2.3,.e3,e不合法。規(guī)范化的指數(shù):E前的小數(shù)部分中的小數(shù)點(diǎn)前(左)只有一位非零數(shù)字2.4
實(shí)型數(shù)據(jù)(又叫浮點(diǎn)數(shù)float)實(shí)型變量的分類單精度:float雙精度:double長(zhǎng)雙精度:long
double7位有效數(shù)字15~16位有效數(shù)字使用較少0.31415901(2)實(shí)型變量在內(nèi)存中占4個(gè)字節(jié),按指數(shù)形式存儲(chǔ)。如:+
小數(shù)部分
指數(shù)3.14159一個(gè)實(shí)型變量只能保證7位有效數(shù)字,后面的數(shù)字是無(wú)意義的。應(yīng)避免一個(gè)很大的數(shù)和一個(gè)很小的數(shù)直接相加減。C編譯系統(tǒng)將實(shí)型常量按雙精度處理,常量的后綴用f表示單精度實(shí)型,后綴用l表示長(zhǎng)雙精度型。例2.4浮點(diǎn)數(shù)數(shù)值的有效位數(shù)注意事項(xiàng):例2.4浮點(diǎn)數(shù)數(shù)值的有效位數(shù)#include
<stdio.h>main(){
float
a,b;a=1234567888.89;b=a+0.1;printf("a=%f,b=%f\n",a,b);}7位有效數(shù)字2.5
字符型數(shù)據(jù)字符型數(shù)據(jù)是指一個(gè)字符。單個(gè)字符是以ASCLL碼值的二進(jìn)制形式存儲(chǔ)的,占一個(gè)字節(jié)。例如,‘A’,ASCLL碼值為65字符常量字符常量:用單撇號(hào)括起來(lái)的一個(gè)字符。如:’a’,’!’,’X’特殊形式字符常量(轉(zhuǎn)義字符):以”\”開頭的字符序列,見30頁(yè)表2-2例2-5
轉(zhuǎn)義字符的應(yīng)用01000001\a
蜂鳴,響鈴\b
回退:向后退一格\f
換頁(yè)\n換行,光標(biāo)到下行行首\r回車,光標(biāo)到本行行首\t水平制表光標(biāo)向前移動(dòng)四格或八格,可以在編譯器里設(shè)置\v垂直制表\\反斜杠\‘
單引號(hào)\“
雙引號(hào)\?問(wèn)號(hào)\ddd三位八進(jìn)制\xhh二位十六進(jìn)制‘\120’=P‘\x34’=8\0空字符(NULL),什么都不做ASCII碼表(1)
標(biāo)準(zhǔn)ASCII碼
7位0111111100000000001000013301111110126(2)
擴(kuò)充ASCII碼
8位碼1111111110000000例2-5
轉(zhuǎn)義字符的應(yīng)用#include
<stdio.h>main(){
int
a,b,c;a=1;b=2;c=3;printf("\'%d\'\n%d
%d,%d\n\t%d%d\n",a,b,c,a,b,c);a=6+2;printf("\141=6+2\t\b\\%d\n",a);}2.5
字符型數(shù)據(jù)(2)字符變量每一個(gè)字符變量只能存放一個(gè)字符,在內(nèi)存中占1個(gè)字節(jié),是將該字符對(duì)應(yīng)的ASCII碼放到存儲(chǔ)單元中并以二進(jìn)制形式表示。如:c1=‘a(chǎn)’一個(gè)字符型數(shù)據(jù)既可以用字符形式輸出,也可以以整數(shù)輸出。即字符型數(shù)據(jù)和整型數(shù)據(jù)是通用的。例如,char
a=‘k’;printf(“%c,%d”,a,a)k,107int
b=‘k’;printf(“%d,%c”,b,b)107,k可以對(duì)字符數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算例:大小寫字母轉(zhuǎn)換。將小寫字母a和b轉(zhuǎn)換為大寫字母A和B。main(){
charc1,c2;c1=‘a(chǎn)’;c2=‘b’;c1=c1-32;c2=c2-32;printf(“%c
%c”,c1,c2);}c19701100001結(jié)果為:A
B(3)字符串常量字符串常量為用雙引號(hào)括起來(lái)的字符序列。如:”hi!”,”123abc”,”123.3”在字符串常量后自動(dòng)加“\0”(ASCII值為0,即空操作)做結(jié)束標(biāo)志字符串常量所占的存儲(chǔ)空間取決于其所含的字符數(shù),為字符數(shù)+1。在C語(yǔ)言中,使用數(shù)組來(lái)存放字符串。例:字符串常量“china\b\n\101\t\\”由幾個(gè)字符構(gòu)成? (
10
)例題,字符串常量應(yīng)用china\02.6
運(yùn)算符與表達(dá)式C的運(yùn)算符非常豐富,應(yīng)用范圍廣泛,可分為:算術(shù)運(yùn)算符:+
-
*
/
%
++ -
-關(guān)系運(yùn)算符:>
>=
<
<=
==
!=邏輯運(yùn)算符:!
&&
||位運(yùn)算符:<<
>>
~
|
&
^賦值運(yùn)算符:=
復(fù)合賦值運(yùn)算符條件運(yùn)算符:?:逗號(hào)運(yùn)算符:,指針運(yùn)算符:*
&求字節(jié)數(shù)運(yùn)算符:sizeof強(qiáng)制類型轉(zhuǎn)換運(yùn)算符:(類型)分量運(yùn)算符:
.
→下標(biāo)運(yùn)算符:
[]其他:如函數(shù)調(diào)用運(yùn)算符()運(yùn)算符按操作數(shù)不同可分為單目、雙目和三目之分。表達(dá)式由變量、常量、函數(shù)、運(yùn)算符和圓括號(hào)組成2.6運(yùn)算符與表達(dá)式運(yùn)算符級(jí)別相同時(shí),運(yùn)算的方向?yàn)椋撼龁文窟\(yùn)算符、條件運(yùn)算符和賦值運(yùn)算符是從右到左。
其他運(yùn)算符的結(jié)合方向均是從左到右.單目運(yùn)算符高于雙目運(yùn)算符,雙目運(yùn)算符高于三目運(yùn)算符。運(yùn)算符優(yōu)先級(jí)算術(shù)運(yùn)算符高低關(guān)系運(yùn)算符邏輯運(yùn)算符賦值運(yùn)算符逗號(hào)運(yùn)算符2.6.2
算術(shù)運(yùn)算符和算術(shù)表達(dá)式運(yùn)算符作用例子(若a=5)優(yōu)先級(jí)-負(fù)號(hào)-a
=
-51(低)--自減a++
=
41++自加a++
=51+加a+5
=
102-減a-5
=
02*乘a*5
=
253/除a/5
=13%取模(取余)5%3
=
24(高)運(yùn)算優(yōu)先級(jí):先按運(yùn)算符的優(yōu)先級(jí)高低執(zhí)行,級(jí)別相同按先左后右的結(jié)合方向執(zhí)行。2.6.2
算術(shù)運(yùn)算符和算術(shù)表達(dá)式1.
基本的算術(shù)運(yùn)算符(1)除法運(yùn)算在“/”運(yùn)算中,若操作數(shù)均為整數(shù),則執(zhí)行整除運(yùn)算,舍去小數(shù)部分。例如:5/3=1例題2-10,除法運(yùn)算應(yīng)用#include
<stdio.h>main(){
float
a,b,c,d;a=1/3;b=1/3.0;c=2/3;d=-4/3;printf("a=%.2f\nb=%.2f\nc=%.2f\nd=%.2f\n",a,b,c,d);}2.6.2
算術(shù)運(yùn)算符和算術(shù)表達(dá)式(2)取模(取余)運(yùn)算“%”要求兩側(cè)均為整數(shù),“%”運(yùn)算不能用于float
和
double
型數(shù)據(jù)。例如5%3=2main(){
int
a,i,j,k;scanf("%d",&a);
/*
123
*/a=a/10;
/*
12i=a%10;
/*
3
*/*/j=a%10;
/*
2
*/a=a/10;
/*
1
*/k=a;printf(“%d\n%d%d%d\n",a,i,j,k);}2.自增、自減運(yùn)算符(++、--)作用:使變量的值增1或減1,相當(dāng)于i=i+1,i=i-1.如:++i
,--ii++,
i--使用i之前,先使i的值加(減)1使用i之后,使i的值加(減)1例如:int a=1,b;b=++a
;printf(“%d,%d\n”,a,b);或:int a=1,b;b=a++
;printf(“%d,%d\n”,a,b);注意:printf語(yǔ)句中,變量輸出的順序?yàn)橛捎业阶蟆?.自增、自減運(yùn)算符(++、--)說(shuō)明:(1)自增、自減運(yùn)算符為單目運(yùn)算符(2)++、--只能用于變量(不能操作float和double型數(shù)據(jù)),而不能用于常量或表達(dá)式。例如:10++,(x+y)++
,++’a’,
b++中合法的為:b++(3)有負(fù)號(hào)的自增、自減運(yùn)算符為右結(jié)合性。例如:-a++
-(a++)(4)自增、自減運(yùn)算符為從左至右結(jié)合。例如:a+++b
(a++)+b例2-12:讀出下列程序運(yùn)行后結(jié)果。#include
<stdio.h>void
main(){int
a=7,b=7,c,d;a=a++;b=++b;printf(“a=%d,b=%d\n”,a,b);c=a++;
/*
c=8,a=9*/d=++b;
/*
b=9,d=9*/printf(“c=%d,d=%d\n”,c,d);}設(shè)a=2,則執(zhí)行語(yǔ)句
k=++a+a++后的
k值為 多少?
K=6,a=4設(shè)a=2, b=9
,
則表達(dá)式
a+++b的值為多少?練習(xí)題3.設(shè)a=2,練習(xí)題b=9,則表達(dá)式a+b++/a++的值為多少?表達(dá)式a+(++b/++a)的值為多少?如a=2,則表達(dá)式-a++的值為多少?執(zhí)行后a的值為多少?Printf語(yǔ)句輸出順序問(wèn)題
#include<stdio.h>void
main(){int
a=2;printf("a1=%d
a2=%d
a3=%d
",a,a++,a++);printf("a4=%d\n\n",a);a3=%d
",a,++a,++a);printf("a1=%d
a2=%dprintf("a4=%d\n\n",a);}2.7
賦值運(yùn)算符和賦值表達(dá)式1.賦值運(yùn)算符(=)形式:變量名=常量或表達(dá)式作用:將右邊常量或表達(dá)式的值賦給左邊的變量例如:a=3; b=c+d
;當(dāng)賦值運(yùn)算符兩邊類型不一致時(shí),要進(jìn)行類型轉(zhuǎn)換。規(guī)則是:⑴實(shí)型數(shù)據(jù)賦給整型變量,舍去小數(shù)。⑵整型變量賦給單、雙精度變量,小數(shù)部分補(bǔ)零。⑶字符型數(shù)據(jù)賦給整型數(shù)據(jù),把對(duì)應(yīng)的ASCII碼置于低8位,高
8位視情況而變。⑷shortint賦給longint,高端要根據(jù)正負(fù)補(bǔ)0或1。反之,只截取低8位。其它見書。例2-14:整型與浮點(diǎn)型在賦值時(shí)的轉(zhuǎn)換。#include
<stdio.h>void
main(){
int
a;float
b;a=1234.56;b=123;printf(“a=%d,b=%.2f\n”,a,b);}2.7賦值運(yùn)算符和賦值表達(dá)式變量賦初值聲明變量同時(shí)初始化int
a=3; float
f=3.1; char
c=‘g’;聲明時(shí)部分初始化int
a,b,c=5;同時(shí)給幾個(gè)變量賦相同的值int
a=3,b=3,c=3;
a=b=c=3
正確的int
a=b=c=3是錯(cuò)誤的2.7
賦值運(yùn)算符和賦值表達(dá)式復(fù)合賦值運(yùn)算符在賦值符“=”之前加上其它運(yùn)算符共有10種復(fù)合賦值運(yùn)算符+=
,-=,*=,/=,%=,<=,>=,&=,^
=,
|=例如:
a+=6相當(dāng)于:a=a+6a%=3a=a
%3x*=y+3x=x*(y+3)而不是x=x*y+32.8
逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式1.逗號(hào)運(yùn)算符:即“,”優(yōu)先級(jí):為所有運(yùn)算符中級(jí)別最低的2.逗號(hào)表達(dá)式(順序求值運(yùn)算符)形式:表達(dá)式1,表達(dá)式2,……表達(dá)式n求解過(guò)程:順次求解表達(dá)式1,表達(dá)式2…最后求解表達(dá)式n逗號(hào)表達(dá)式的值為最后表達(dá)式n的值例如:a=3*5,a*4x=a=3,6*aa=15,逗號(hào)表達(dá)式的值為60a=3,x=3,逗號(hào)表達(dá)式的值為18x=(a=4%3
,
a+1,
a*10)a為1,逗號(hào)表達(dá)式的值為a*10,所以x=102.8
逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式1.逗號(hào)運(yùn)算符:即“,”優(yōu)先級(jí):為所有運(yùn)算符中級(jí)別最低的2.逗號(hào)表達(dá)式(順序求值運(yùn)算符)形式:表達(dá)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度廣東住房租賃合同租賃物維修與維護(hù)3篇
- 尾氣綜合利用及深度處理技改可行性研究報(bào)告申請(qǐng)備案
- 廣西賀州市(2024年-2025年小學(xué)六年級(jí)語(yǔ)文)部編版課后作業(yè)((上下)學(xué)期)試卷及答案
- 二零二五年度就業(yè)困難人員安置保障協(xié)議3篇
- 二零二五年度農(nóng)業(yè)灌溉用水權(quán)交易合同3篇
- 高速公路路線選址與規(guī)劃
- 中國(guó)含乳飲料行業(yè)分析報(bào)告:進(jìn)出口貿(mào)易、行業(yè)現(xiàn)狀、前景研究(智研咨詢發(fā)布)
- 跨行業(yè)融合促進(jìn)旅游消費(fèi)增長(zhǎng)的策略
- 集成電路經(jīng)濟(jì)效益與財(cái)務(wù)分析
- 現(xiàn)代農(nóng)業(yè)綜合開發(fā)建設(shè)項(xiàng)目可行性研究報(bào)告申請(qǐng)備案
- 2025社保政策培訓(xùn)
- (八省聯(lián)考)河南省2025年高考綜合改革適應(yīng)性演練 生物試卷(含答案)
- 人工智能銷售工作總結(jié)
- 2025年中小學(xué)春節(jié)安全教育主題班會(huì)課件
- 工商注冊(cè)租房合同范例
- 2024年單位司機(jī)個(gè)人工作總結(jié)(6篇)
- 2023-2024學(xué)年廣東省深圳市羅湖區(qū)八年級(jí)上學(xué)期期末生物試題
- 【9物(北師)期末】阜陽(yáng)市臨泉縣2023-2024學(xué)年九年級(jí)上學(xué)期期末考試物理試題
- 2025年醫(yī)院保衛(wèi)科工作總結(jié)及2025年工作計(jì)劃
- 班會(huì)課件高中
- 部編版一年級(jí)上冊(cè)語(yǔ)文第一單元-作業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論