




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第二章
數(shù)據(jù)類(lèi)型
運(yùn)算符與表達(dá)式第二章
數(shù)據(jù)類(lèi)型
運(yùn)算符與表達(dá)式2.1C語(yǔ)言數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型基本類(lèi)型指針型構(gòu)造類(lèi)型空類(lèi)型實(shí)型整型字符型枚舉型數(shù)組共用體結(jié)構(gòu)體C語(yǔ)言數(shù)據(jù)常量變量:程序運(yùn)行中,值不能被改變的量:程序運(yùn)行中,值可以被改變的量2.1C語(yǔ)言數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型基本類(lèi)型指針型構(gòu)造類(lèi)型空類(lèi)型實(shí)1整型(1)整型常量(整常數(shù))十進(jìn)制(0-9):123,0,-456八進(jìn)制(0-7):0開(kāi)頭,如012,-011十六進(jìn)制(0-9,A-F):0x(0X)開(kāi)頭,如0x123,-0x12,0xff示例printf(“%d”,012+0x12);輸出結(jié)果=281整型(1)整型常量(整常數(shù))十進(jìn)制(0-9):123,1整型(2)整型變量基本型int
示例:inta;a=100;注意:int類(lèi)型取值范圍:-32768~+32767inta=100;等價(jià)于1整型(2)整型變量基本型int示例:注意:int1整型(2)其他整型基本型int
(數(shù)據(jù)范圍:-32768~+32767)短整型shortint
或
short
(數(shù)據(jù)范圍:-32768~+32767)長(zhǎng)整型longint或
long
(數(shù)據(jù)范圍:-231~231-1)示例:shorta=100;longm=12L;對(duì)于長(zhǎng)整型要求在數(shù)據(jù)后面加字母后綴“L”或“l(fā)”。1整型(2)其他整型基本型int(數(shù)據(jù)范圍:-31整型(2)無(wú)符號(hào)整型無(wú)符號(hào)整型unsignedint(數(shù)據(jù)范圍:0~65535)無(wú)符號(hào)短整型unsignedshort(數(shù)據(jù)范圍:0~65535)無(wú)符號(hào)長(zhǎng)整型unsignedlong(數(shù)據(jù)范圍:0~232-1)示例:unsignedinta=100;1整型(2)無(wú)符號(hào)整型無(wú)符號(hào)整型unsignedin1整型(2)匯總基本型int(數(shù)據(jù)范圍:-32768~+32767)短整型shortint
或者short(數(shù)據(jù)范圍:-32768~+32767)長(zhǎng)整型longint
或者long(數(shù)據(jù)范圍:-231~231-1)無(wú)符號(hào)型無(wú)符號(hào)整型unsignedint(數(shù)據(jù)范圍:0~65535)無(wú)符號(hào)短整型unsignedshort(數(shù)據(jù)范圍:0~65535)無(wú)符號(hào)長(zhǎng)整型unsignedlong(數(shù)據(jù)范圍:0~232-1)1整型(2)匯總基本型int(數(shù)據(jù)范圍:-327整型示例1#include"stdio.h"main(){
inta,b,u;intc,d;a=12;b=-24;u=010;c=a+u;d=b+u;printf("a+u=%d,b+u=%d
\n",
c,
d);}%d:以十進(jìn)制形式輸出整數(shù)整型示例1#include"stdio.h"%d:以十進(jìn)整型示例2#include"stdio.h"main(){
inta,b,u;
longc,d;a=12;b=-24;u=010;c=a+u;d=b+u;printf("a+u=%d,b+u=%d\n",c,d);}將上例intc,d;改為longc,d;注意:對(duì)long型數(shù)據(jù)應(yīng)當(dāng)用%ld
格式輸出!長(zhǎng)整數(shù)最好在該整數(shù)后面字母后綴l或L,如a=12L或12l整型示例2#include"stdio.h"將上例in2實(shí)型數(shù)據(jù)(1)實(shí)型常量(浮點(diǎn)數(shù))小數(shù)形式:12.3,0.0,.12,12.,-.12,3.14f
必須有小數(shù)點(diǎn)指數(shù)形式:123e3(表示123×103),45.3E0,0.45e-2(注意:e前面必須有數(shù)字,后面指數(shù)必須為整數(shù))以下均是錯(cuò)誤的指數(shù)形式:e3,2e3.5,e,.e3。2實(shí)型數(shù)據(jù)(1)實(shí)型常量(浮點(diǎn)數(shù))小數(shù)形式:12.3,02實(shí)型數(shù)據(jù)(2)實(shí)型變量單精度f(wàn)loat雙精度
double:7個(gè)有效數(shù)字,-3.4×10-38~3.4×1038:15-16個(gè)有效數(shù)字,-1.7×10-308~1.7×10308示例:floatx=123.4e3;doulbepi=3.1415926;2實(shí)型數(shù)據(jù)(2)實(shí)型變量單精度f(wàn)loat雙精度doub實(shí)型示例1#include"stdio.h"main(){floatx=123.4e3;doulbepi=3.1415926;printf(“x=%f,pi=%f”,x,pi);}%f用于輸出float和double實(shí)數(shù),但輸出的小數(shù)位固定為6位(精度問(wèn)題)如何解決小數(shù)精度?實(shí)型示例1#include"stdio.h"%f用于輸出實(shí)型示例2-輸出精度控制#include"stdio.h"main(){floatf;f=-123.456;printf(“%f,%10.2f”,f,f);}運(yùn)行結(jié)果:-123.456001,┗┛┗┛┗┛-123.46表示數(shù)據(jù)總寬度(右對(duì)齊)(包括小數(shù)點(diǎn),符號(hào)位)表示小數(shù)位數(shù)(輸出的數(shù)據(jù)會(huì)四舍五入)實(shí)型示例2-輸出精度控制#include"stdio.h"實(shí)型示例31、輸出結(jié)果是___________。floata=3.1415;printf(“|%6.0f|\n”,a);2、輸出結(jié)果是____________。floata=57.666;printf(“*%010.2f*|\n”,a);|┗┛┗┛┗┛┗┛┗┛3|*0000057.67*實(shí)型示例31、輸出結(jié)果是___________。2、輸出結(jié)果實(shí)型示例4√#include"stdio.h"main(){
intx=2.5555555;/*7個(gè)5*/floaty=x;floatz=2.5555555;/*7個(gè)5*/printf(“%d,%f,%f”,x,y,z);}輸出結(jié)果:2,2.000000,2.555556整型變量←實(shí)型數(shù)據(jù),整型變量只接收整數(shù)部分,小數(shù)部分舍棄。%f輸出實(shí)數(shù)時(shí),小數(shù)為6位,且四舍五入。實(shí)型變量←整型數(shù)據(jù),數(shù)值不變,但以浮點(diǎn)數(shù)存儲(chǔ)。實(shí)型示例4√#include"stdio.h"輸出結(jié)果:整編程練習(xí)1、已知矩形長(zhǎng)length和寬width,求矩形周長(zhǎng)和面積。2、已知圓半徑r,求圓周長(zhǎng)和面積。3、求二次方程的根。如:x2+3x+2=04、已知三角形3邊,求三角形周長(zhǎng)和面積。5、已知華氏溫度F,輸出攝氏溫度(保留2位小數(shù))公式C=5/9(F-32)。6、輸入一個(gè)小寫(xiě)字母,輸出對(duì)應(yīng)的大寫(xiě)字母。編程練習(xí)1、已知矩形長(zhǎng)length和寬width,求矩形周長(zhǎng)3字符型數(shù)據(jù)(1)字符常量一般字符:?jiǎn)我?hào)括起的一個(gè)字符,
如’a’,’A’,’9’?。?!重要說(shuō)明:字符數(shù)據(jù)在計(jì)算機(jī)內(nèi)是以8個(gè)二進(jìn)制位表示的。1個(gè)字節(jié)十進(jìn)制值為9701100001例如:’a’因此可以認(rèn)為:'a'=973字符型數(shù)據(jù)(1)字符常量一般字符:?jiǎn)我?hào)括起的一個(gè)字符,產(chǎn)生問(wèn)題:怎樣知道字符的8個(gè)二進(jìn)制位或十進(jìn)制值呢?例如:'b'=?,
'A'=?使用ASCII碼表產(chǎn)生問(wèn)題:使用ASCII碼表ASCII碼表結(jié)論1:小寫(xiě)字母比對(duì)應(yīng)的大寫(xiě)字母大32。'a'='A'+32'Z'='z'-32ASCII碼表結(jié)論1:思考問(wèn)題:字符'9'=數(shù)值9嗎?結(jié)論2:數(shù)字字符不等于對(duì)應(yīng)的數(shù)字值。'9'≠9實(shí)際上'9'>9結(jié)論3:兩個(gè)數(shù)字字符之差等于對(duì)應(yīng)的數(shù)字值之差。'3'-'0'=3'9'-'3'=6思考問(wèn)題:結(jié)論2:3字符型數(shù)據(jù)(2)字符變量字符變量用于存放一個(gè)字符常量。charch;ch='a';‘a(chǎn)’的ASCII碼值為97ch97可直接用ch=97;因此字符型數(shù)據(jù)可看作是一種更短的整形數(shù)據(jù)(1個(gè)字節(jié),取值范圍[0,255]).那么對(duì)于整形數(shù)據(jù)的一些運(yùn)算也可用在字符數(shù)據(jù)上,如ch+1,ch-32等3字符型數(shù)據(jù)(2)字符變量字符變量用于存放一個(gè)字符常量。c字符型示例1#include"stdio.h"main(){
charch1,ch2;ch1='a';ch2=66;ch1=ch1-32;ch2=ch2+32;printf("%c,%c\n",ch1,ch2);}運(yùn)行結(jié)果:A,b
字符數(shù)據(jù)可用%c輸出字符型示例1#include"stdio.h"運(yùn)行結(jié)果:字字符型示例2#include"stdio.h"main(){
charch1,ch2;ch1=‘a(chǎn)’;ch2=ch1+1;printf("%c,%d\n",ch1,ch2);}字符數(shù)據(jù)可用%c輸出,也可用%d輸出:以%c輸出時(shí),將輸出其字符;以%d輸出時(shí),將輸出對(duì)應(yīng)的ASCII碼值。運(yùn)行結(jié)果:a,98字符型示例2#include"stdio.h"字符數(shù)據(jù)可用字符型示例3#include"stdio.h"main(){
chara='a';printf("%d,%c\n",a+'2'-'0',a-'0'+'3');}運(yùn)行結(jié)果:99,d
字符型示例3#include"stdio.h"運(yùn)行結(jié)果:特殊字符轉(zhuǎn)義字符
以\
開(kāi)頭(\
稱(chēng)為轉(zhuǎn)義符),如’\n’,’\a’等。兩類(lèi)特殊轉(zhuǎn)義字符\ddd-1到3位8進(jìn)制數(shù)所代表的字符
(注意ddd并不表示的三個(gè)一樣的數(shù)據(jù))\xhh-1到2位16進(jìn)制數(shù)所代表的字符如:\101和\x41均表示’A’,
\12和\xa均表示\n,
\0表示空操作特殊字符轉(zhuǎn)義字符\ddd-1到3位8進(jìn)制數(shù)所代表的字符3字符型數(shù)據(jù)(3)字符串常量雙引號(hào)括起的一個(gè)或一串字符,如"abc","123.456"輸出一個(gè)字符串方法:方法1:printf(”Howareyou!”);方法2:用%s輸出字符串
printf(”%s”,”Howoldareyou!”);不能將一個(gè)串直接賦給字符變量,如
charc;c=”Howoldareyou”;
×C語(yǔ)言中沒(méi)有專(zhuān)門(mén)的字符串變量,以后會(huì)講到使用字符型數(shù)組來(lái)存放字符串。不是實(shí)數(shù)123.4563字符型數(shù)據(jù)(3)字符串常量雙引號(hào)括起的一個(gè)或一串字符,如字符串的存儲(chǔ)例如:字符串"abc"在計(jì)算機(jī)中存儲(chǔ)形式為:‘a(chǎn)’‘b’‘c’‘\0’串的結(jié)束標(biāo)記:'\0'‘\0’是ASCII碼值為0的字符(即空操作符)字符串的存儲(chǔ)例如:字符串"abc"‘a(chǎn)’‘b’‘c’‘\0’字符’a’與字符串”a”的區(qū)別在內(nèi)存中,字符’a’是由一個(gè)字節(jié)來(lái)存儲(chǔ)的,且存儲(chǔ)的值為’a’的ASCII碼(97)。01100001字符串”a”是由兩個(gè)字節(jié)來(lái)存儲(chǔ)的,一個(gè)是’a’,另一個(gè)’\0’(即空操作符)作為串的結(jié)束標(biāo)記。97’a’a1Byte\0”a”a2Byte實(shí)際字符’a’與字符串”a”的區(qū)別在內(nèi)存中,字符’a’是由一個(gè)字注意求字符串長(zhǎng)度時(shí),'\0'是不計(jì)長(zhǎng)度的: 如strlen("abc")=3如果問(wèn)字符串在計(jì)算機(jī)中存儲(chǔ)時(shí)占幾個(gè)字節(jié)時(shí)這要統(tǒng)計(jì)'\0': "abc"要占4個(gè)字節(jié)。注意求字符串長(zhǎng)度時(shí),'\0'是不計(jì)長(zhǎng)度的:特殊字符串空串””:長(zhǎng)度為0的字符串,
strlen(””)=0??崭翊薄保阂粋€(gè)或多個(gè)空格
strlen(””)=1??沾倏崭翊厥庾址沾薄保洪L(zhǎng)度為0的字符串,空串≠空格串一種特殊常量符號(hào)常量:由#define定義的常量#include"stdio.h"#definePI3.14159
/*PI是符號(hào)常量*/main(){intr;r=10;printf("LengthofCircleis:%f\n",2*PI*r);}在程序中不能再給它賦值一種特殊常量符號(hào)常量:由#define定義的常量#inclu2.2運(yùn)算符和表達(dá)式1算術(shù)運(yùn)算2賦值運(yùn)算3逗號(hào)運(yùn)算4求字節(jié)運(yùn)算(求長(zhǎng)度運(yùn)算)5強(qiáng)制運(yùn)算6關(guān)系運(yùn)算和邏輯運(yùn)算(放在分支講)2.2運(yùn)算符和表達(dá)式1算術(shù)運(yùn)算1算術(shù)運(yùn)算(1)基本運(yùn)算符
+-*/%(取余或模運(yùn)算)注意:
%兩側(cè)必須為整型數(shù)據(jù),如9%7=2,9.2%7×
整數(shù)運(yùn)算結(jié)果為整數(shù),如5/2=2√(不是2.5)
一旦有實(shí)數(shù),則結(jié)果為實(shí)數(shù),且是double型(雙精度);如5/2.0=2.5(double型);1.0*5/2=2.51算術(shù)運(yùn)算(1)基本運(yùn)算符1算術(shù)運(yùn)算(2)自增自減運(yùn)算符(單目運(yùn)算)++--(使變量的值增1或減1)基本形式:
++i,--i(在使用i之前,先使i的值加1、減1)i++,i--(在使用i之后,使i的值加1、減1)注意:只有變量才能使用++和--,10++×,(x+3)--×
“自右向左”結(jié)合,如-i++相當(dāng)于–(i++)
運(yùn)算優(yōu)先級(jí)高于雙目算術(shù)運(yùn)算,如a+++b,即(a++)+b1算術(shù)運(yùn)算(2)自增自減運(yùn)算符(單目運(yùn)算)例題:假設(shè)a=2,則:(1)b=a++結(jié)果b=___,a=___;(2)b=++a結(jié)果b=___,a=___;(3)b=a--+1結(jié)果b=___,a=___;(4)b=--a+1結(jié)果b=___,a=___;(5)b=a+a++結(jié)果b=___,a=___;(6)b=a+++a結(jié)果b=___,a=___;233331214363RETURN例題:233331214363RETURN算術(shù)運(yùn)算示例#include"stdio.h"main(){
inti=8;printf("%d,%d,%d\n",++i,--i,i--);}運(yùn)行結(jié)果:7,6,8注意:TC中,printf()求值順序從右到左進(jìn)行。算術(shù)運(yùn)算示例#include"stdio.h"運(yùn)行結(jié)果:注意2賦值運(yùn)算算術(shù)自反賦值運(yùn)算符+=-=*=/=%=a+=b;等價(jià)于a=a+b;a-=3;等價(jià)于a=a-3;x*=y+8;等價(jià)于x=x*(y+8);先算右邊2賦值運(yùn)算算術(shù)自反賦值運(yùn)算符+=-=*=賦值運(yùn)算示例1
#include"stdio.h"main(){intx=10;x+=3+x%(-3);printf("%d",x);}運(yùn)行結(jié)果:14賦值運(yùn)算示例1#include"stdio.h"運(yùn)行結(jié)果:賦值運(yùn)算示例2
#include"stdio.h"main(){intx=12;x+=x-=x*x;printf("%d",x);}運(yùn)行結(jié)果:-264RETURN賦值運(yùn)算示例2#include"stdio.h"運(yùn)行結(jié)果:3逗號(hào)運(yùn)算(1)
用逗號(hào)將幾個(gè)表達(dá)式連接起來(lái),一般形式: 表達(dá)式1,表達(dá)式2,…,表達(dá)式n
求解過(guò)程(注:逗號(hào)運(yùn)算級(jí)別最低)
先求表達(dá)式1,再求表達(dá)式2,…直至表達(dá)式n;整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式n的值。舉例說(shuō)明:表達(dá)式a=3*5,a*4中,a=____,表達(dá)式值=____;表達(dá)式x=(a=3,6*a)中,x=____;表達(dá)式x=a=3,6*a中,x=____。1560183逗號(hào)運(yùn)算級(jí)別最低RETURN3逗號(hào)運(yùn)算(1)用逗號(hào)將幾個(gè)表達(dá)式連接起來(lái),一般形式:4求字節(jié)運(yùn)算兩種形式:
sizeof(變量名)→求變量的字節(jié)數(shù)
sizeof(類(lèi)型名)→求數(shù)據(jù)類(lèi)型的字節(jié)數(shù)注意:sizeof是運(yùn)算符,不是函數(shù)調(diào)用!例如:
intx;則表達(dá)式sizeof(x)=____;表達(dá)式sizeof(float)=____。RETURN244求字節(jié)運(yùn)算兩種形式:RETURN245強(qiáng)制運(yùn)算一般形式:
(類(lèi)型名)表達(dá)式→將表達(dá)式的值轉(zhuǎn)換為所需類(lèi)型例如:(char)x;將x的值強(qiáng)換為字符型.(double)(a*b);將a*b的值轉(zhuǎn)換為double型.
k=int(a+b);改為:k=(int)(a+b);inta=2,b=5;(f
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 成長(zhǎng)記錄袋小學(xué)生課件
- 2025年環(huán)保廁所項(xiàng)目合作計(jì)劃書(shū)
- 2025年重鉻酸鈉項(xiàng)目建議書(shū)
- 加強(qiáng)網(wǎng)絡(luò)信息安全保障條例
- 公司股份制實(shí)施方案
- 金融投資顧問(wèn)投資風(fēng)險(xiǎn)提示書(shū)
- 小王子電影故事解讀
- StA-IFN-1-生命科學(xué)試劑-MCE
- 石油庫(kù)區(qū)員工年終總結(jié)
- 2025年太陽(yáng)能熱發(fā)電系統(tǒng)項(xiàng)目合作計(jì)劃書(shū)
- TPU材料項(xiàng)目可行性研究報(bào)告寫(xiě)作參考范文
- 試用期考核合格證明表
- 常見(jiàn)八種疾病
- 膠粘劑基礎(chǔ)知識(shí)及產(chǎn)品詳解(課堂PPT)
- 鍋爐補(bǔ)給水陰陽(yáng)混床操作步序表
- 2005年第4季度北京住房租賃指導(dǎo)價(jià)格
- 醫(yī)療器械GMP計(jì)算機(jī)軟件確認(rèn)控制程序
- 蘇教版最新五年級(jí)數(shù)學(xué)上冊(cè)應(yīng)用題與解決問(wèn)題專(zhuān)項(xiàng)
- 髖關(guān)節(jié)置換術(shù)男性患者留置尿管最佳時(shí)機(jī)探析和對(duì)策
- [爆笑小品校園劇本7人]爆笑小品校園劇本
- 岸邊集裝箱起重機(jī)CMS系統(tǒng)
評(píng)論
0/150
提交評(píng)論