C語言程序設計(何欽銘-顏暉-主編)精課件_第1頁
C語言程序設計(何欽銘-顏暉-主編)精課件_第2頁
C語言程序設計(何欽銘-顏暉-主編)精課件_第3頁
C語言程序設計(何欽銘-顏暉-主編)精課件_第4頁
C語言程序設計(何欽銘-顏暉-主編)精課件_第5頁
已閱讀5頁,還剩66頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

Chap6數(shù)據(jù)類型和表達式6.1數(shù)據(jù)的存儲和基本數(shù)據(jù)類型

6.2常量和變量

6.3數(shù)據(jù)的輸入和輸出6.4類型轉換6.5表達式1ppt精選版本章要點C語言的基本數(shù)據(jù)類型有哪些?各種基本數(shù)據(jù)類型的常量和變量是怎樣定義的?C語言有哪些表達式?各種表達式的求解規(guī)則是什么?2ppt精選版數(shù)據(jù)類型和表達式數(shù)據(jù)類型基本數(shù)據(jù)類型整型int實型(浮點型)floatdouble字符型char構造數(shù)據(jù)類型數(shù)組、結構、聯(lián)合、枚舉指針類型空類型運算:對數(shù)據(jù)的操作運算符+數(shù)據(jù)

表達式3ppt精選版6.1數(shù)據(jù)的存儲和基本數(shù)據(jù)類型6.1.1數(shù)據(jù)的存儲整型、實型、字符型數(shù)據(jù)的存儲6.1.2基本數(shù)據(jù)類型整型、實型、字符型4ppt精選版6.1.1數(shù)據(jù)的存儲-整型數(shù)據(jù)設整數(shù)在內(nèi)存中用2個字節(jié)存儲10000001100000010000000110000001符號位1:負數(shù)0:正數(shù)5ppt精選版數(shù)值的表示方法-原碼反碼補碼正數(shù)的原碼、反碼和補碼相同1的補碼0000000000000001……32767的補碼0111111111111111(215-1,2個字節(jié)的存儲單元能表示的最大正數(shù))負數(shù)的原碼、反碼和補碼不同-1原碼1000000000000001反碼1111111111111110原碼取反補碼1111111111111111反碼+16ppt精選版原碼反碼補碼32767補碼0111111111111111-32767原碼1111111111111111反碼1000000000000000原碼取反補碼1000000000000001反碼+1-32768=-32767-1補碼1000000000000000(2個字節(jié)的存儲單元能表示的最小負數(shù))7ppt精選版-32768-10132767

32767

0111111111111111

……1

00000000000000010

0000000000000000-1

1111111111111111-2

1111111111111110……

-32767

1000000000000001-32768

100000000000000032767

+1=32768?100000000000000=-32768-32768

-1=-32769?0111111111111111=327678ppt精選版實型和字符型數(shù)據(jù)的存儲實型數(shù)據(jù)的存儲-1.2345e+02符號位階碼

尾數(shù)字符型數(shù)據(jù)的存儲一個字節(jié)存儲ASCII碼9ppt精選版5.1.2基本數(shù)據(jù)類型整型有符號整型無符號整型數(shù)據(jù)長度int

unsigned[int]16或32位short[int]unsignedshort[int]16位long[int]unsignedlong[int]32位字符型char8位實型(浮點型)單精度浮點型float32位雙精度浮點型double64位10ppt精選版基本數(shù)據(jù)類型-整型擴展的整數(shù)類型:shortlongunsigned

[int]有符號整型無符號整型數(shù)據(jù)長度int

unsigned[int]16或32位short[int]unsignedshort[int]16位long[int]unsignedlong[int]32位有符號short

1000000000000000-32768

-215011111111111111132767

215-1無符號unsignedshort00000000000000000111111111111111165535

216-111ppt精選版整數(shù)類型的取值范圍int32位-2147483648~2147483647

-231~231-1short[int]16位-32768~32767

-215~215-1long[int]32位-2147483648~2147483647

-231~231-1unsigned[int]32位0~4294967295

0

~232-1unsignedshort[int]16位0~65535

0

~216-1unsignedlong[int]32位0~4294967295

0

~232-112ppt精選版基本數(shù)據(jù)類型-字符型字符具有數(shù)值特征'A'6501000001整型變量和字符變量的定義和賦值可以互換【ASCII碼范圍】charc;c='A';或c=65;int

i;i=65;或i='A';13ppt精選版基本數(shù)據(jù)類型-實型實型(浮點型)數(shù)據(jù)單精度浮點型

float雙精度浮點型double存儲

數(shù)據(jù)精度取值范圍(有效數(shù)字)float

4字節(jié)七/八位

±(10-38

~1038)double

8字節(jié)十六位±(10308

~10308)14ppt精選版數(shù)據(jù)精度和取值范圍數(shù)據(jù)精度與取值范圍是兩個不同的概念:floatx=1234567.89;雖在取值范圍內(nèi),但無法精確表達。floaty=1.2e55;y的精度要求不高,但超出取值范圍。并不是所有的實數(shù)都能在計算機中精確表示

實型常量的類型都是double1234567.8015ppt精選版6.2.1常量符號常量整型常量、實型常量、字符型常量6.2.2變量

變量的定義和使用

6.2常量和變量16ppt精選版6.2.1常量常量的類型通常由書寫格式?jīng)Q定123(整型)4.56(實型)'A'(字符型)符號常量:用一個標識符代表一個常量:PI:EPS17ppt精選版例5-1求球的表面積和體積#include<stdio.h>#definePI

3.14intmain(void){

doubler,

s,v;

printf(“Enterr:");

scanf("%lf",

&r);

s=4.0*

PI*

r

*r;

v=4.0/3.0*PI*

r

*

r

*r;

printf("s=%f,v=%f\n",s,v);return0;}加分號?通常用大寫字母18ppt精選版符號常量的優(yōu)點#include<stdio.h>intmain(void){

doubler,

s,v;

scanf("%lf",

&r);

s=4.0*r*r*3.14

;

v=4.0/3.0*r*r*r*3.14

;......return0;}#include<stdio.h>#definePI

3.14intmain(void){

doubler,

s,v;

scanf("%lf",

&r);

s=4.0*PI*r*r;

v=4.0/3.0*PI*r*r*r;......

return0;}3.141593.141593.1415919ppt精選版整型常量(整數(shù))整數(shù)的表示三種表現(xiàn)形式:十進制整數(shù):正、負號,0-9,首位不是0例:10,123八進制整數(shù):正、負號,0-7,首位是0例:010,012316進制整數(shù):正、負號,0-9,a-f,A-F,前綴是0x,0X例:0x10,0x12320ppt精選版整數(shù)的表示123=01111011(B)二進制=173(O)八進制=7B(X)十六進制12301730x7b160200x10100120XA100100x10不能超出整型數(shù)據(jù)的取值范圍比長整型數(shù)還要大的數(shù)只能用實數(shù)來表示21ppt精選版整數(shù)的類型判斷整數(shù)的類型整數(shù)后的字母后綴123L

long123U

unsigned123LU

unsigned

long整數(shù)的值22ppt精選版實型常量(實數(shù)、浮點數(shù))實數(shù)的表示浮點表示法0.123123.412..12科學計數(shù)法6.026E-271.2e+301E-5實數(shù)的類型double23ppt精選版字符型常量字符常量'a''A''9''+''$'ASCII字符集列出所有可用的字符(256個)每個字符:惟一的次序值(ASCII碼)'0'-'9'升序排列'A'-'Z''a'-'z'24ppt精選版字符的數(shù)值特征字符-ASCII碼對字符進行運算-對字符的ASCII碼進行運算例如:'A'的ASCII碼65則:'A'+1=66,對應字符'B'區(qū)分數(shù)字字符和數(shù)字

'1'125ppt精選版轉義字符反斜杠后跟一個字符或數(shù)字字符常量,代表一個字符

'\n'

'\101'

'\x41'

'A'所有字符都可以用轉義字符表示26ppt精選版6.2.2變量在程序運行過程中,其值可以被改變的量。變量必須先定義,后使用定義變量時要指定變量名和數(shù)據(jù)類型變量應該先賦值,后引用27ppt精選版變量的定義變量名:合法的標識符小寫字母;見名知義變量的類型:在定義時指定變量定義的一般形式類型名變量名表;intcelsius,fahr;floatx;doublearea,length;變量名代表內(nèi)存中的一個存儲單元,存放該變量的值該存儲單元的大小由變量的數(shù)據(jù)類型決定28ppt精選版變量的使用必須先定義,后使用應該先賦值,后引用變量的賦值方法變量賦初值:在定義變量時對它賦值inta=5,b=3;賦值表達式inta,b;a=5;b=3;輸入inta,b;scanf("%d%d",&a,&b);29ppt精選版6.3.1整型數(shù)據(jù)的輸入和輸出6.3.2實型數(shù)據(jù)的輸入和輸出6.3.3字符型數(shù)據(jù)的輸入和輸出

6.3數(shù)據(jù)的輸入和輸出

30ppt精選版6.3.1

整型數(shù)據(jù)的輸入輸出printf(格式控制,輸出參數(shù)1,...,輸出參數(shù)n);scanf(格式控制,輸入?yún)?shù)1,...,輸入?yún)?shù)n);格式控制說明

%…十進制八進制十六進制int%d%o%xlong%ld%lo%lxunsigned%u

%o%xunsignedlong%lu%lo%lx31ppt精選版例6-2(1)輸出整型數(shù)據(jù)#include<stdio.h>intmain(void){printf("%d,%o,%x\n",10,10,10);printf("%d,%d,%d\n",10,010,0x10);printf("%d,%x\n",012,012);return0;}

0……0101010,12,a10,8,1610,a32ppt精選版例6-2(2)輸入整型數(shù)據(jù)#include<stdio.h>intmain(void){inta,b;

printf("inputa,b:");scanf("%o%d",&a,&b);printf("%d%5d\n",a,b);printf("%x,%d\n",a,b);return0;}

inputa,b:17171517f,17%x%d33ppt精選版6.3.2實型數(shù)據(jù)的輸入和輸出輸入scanf()float:%f或%e

以小數(shù)或指數(shù)形式輸入一個單精度浮點數(shù)double:%lf或%le以小數(shù)或指數(shù)形式輸入一個雙精度浮點數(shù)輸出printf()float和double使用相同的格式控制說明%f以小數(shù)形式輸出浮點數(shù),保留6位小數(shù)%e以指數(shù)形式輸出34ppt精選版實型數(shù)據(jù)輸出示例#include<stdio.h>intmain(void) {doubled=3.1415926;printf("%f,%e\n",d,d);printf("%5.3f,%5.2f,%.2f\n",d,d,d);return0;}

3.141593,3.14159e+003.142,3.14,3.14一共5位,小數(shù)3位,小數(shù)點一位35ppt精選版實型數(shù)據(jù)輸入輸出示例假定float的精度為7位,double的精度為16位

#include<stdio.h>intmain(void)

{floatf;doubled;printf("inputf,d:");scanf("%f%lf",&f,&d);printf("f=%f\nd=%f\n",f,d);d=1234567890123.12;printf("d=%f\n",d);return0;}inputf,d:1234567890123.1234561234567890123.123456f=1234567954432.000000d=1234567890123.123540d=1234567890123.12012036ppt精選版6.3.3字符型數(shù)據(jù)輸入輸出scanf()和printf()%ccharch;scanf("%c",&ch);printf("%c",ch);getchar()和putchar()charch;ch=getchar();putchar(ch);輸入輸出一個字符37ppt精選版例6-3(1)輸入輸出字符示例#include<stdio.h>intmain(void){charch1,ch2;ch1=getchar();ch2=getchar();putchar(ch1);putchar('#');putchar(ch2);return0;}AbA#b38ppt精選版例6-3(2)輸入輸出字符示例#include<stdio.h>intmain(void){charch1,ch2,ch3;scanf("%c%c%c",&ch1,&ch2,&ch3);printf("%c%c%c%c%c",ch1,'#',ch2,'#',ch3);return0;}AbCA#b#CAbCA##b39ppt精選版例6-4輸出字符型數(shù)據(jù)'b'的ASCII碼98#include<stdio.h>intmain(void){charch='b';printf("%c,%d\n",'b','b');printf("%c,%d\n",98,98);printf("%c,%d\n",97,'b'-1);printf("%c,%d\n",ch-'a'+'A',ch-'a'+'A');return0;}01100010'b'98'b'98b,98b,98a,97B,6640ppt精選版#include<stdio.h>intmain(){charch;ch='b';printf("%c,%d\n",ch,ch);return0;}01100010'b'9814262'b'9801420x62printf'b'%cputchar98%d142%o62%xscanf'b'%cgetchar98%d142%o62%xscanf("%c",&ch);41ppt精選版字符運算大小寫英文字母轉換'b'-'a'='B'-'A'……'z'-'a'='Z'-'A''m'

'M''a'-'A''A'-'a''0''m'-'a'+'A'='M''M'-'A'+'a'='m''8'-'0'=88+'0'='8'數(shù)字字符和數(shù)字轉換9-0='9'-'0''9'=9+'0''8'842ppt精選版不同類型數(shù)據(jù)的混合運算,先轉換為同一類型,再運算。6.4.1自動類型轉換非賦值運算的類型轉換賦值運算的類型轉換6.4.2強制類型轉換6.4類型轉換43ppt精選版6.4.1自動類型轉換(非賦值運算)水平方向:自動垂直方向:低高

高double

float

unsignedlong

long

unsigned

unsignedshort

低int

char,short44ppt精選版自動類型轉換(非賦值運算)'A'+12–10.05657766.95高double

float

unsignedlong

long

unsigned

unsignedshort

低int

char,short45ppt精選版自動類型轉換(賦值運算)變量

=

表達式計算賦值運算符右側表達式的值將賦值運算符右側表達式的值賦給左側的變量將賦值運算符右側表達式的類型自動轉換成賦值號左側變量的類型46ppt精選版自動類型轉換(賦值運算)doublex;x=1;x=?shorta=1000;charb='A';longc;c=a+b;c=?intai;ai=2.56;ai=?shortbi;bi=0x12345678Lbi=?47ppt精選版5.4.2強制類型轉換強制類型轉換運算符(類型名)

表達式(double)3(int)3.8(double)(5/2)(double)5/23.032.02.548ppt精選版強制類型轉換示例#include<stdio.h>intmain(void){inti;doublex;

x=3.8;i=(int)x;printf("x=%f,i=%d\n",x,i);printf("(double)(int)x=%f\n",(double)(int)x);printf("xmod3=%d\n",(int)x%3);

return0;}x=3.800000,i=3(double)(int)x=3.000000xmod3=049ppt精選版表達式:由運算符和運算對象(操作數(shù))組成的有意義的運算式子,它的值和類型由參加運算的運算符和運算對象決定。運算符:具有運算功能的符號運算對象:常量、變量和函數(shù)等表達式算術表達式、賦值表達式、關系表達式、邏輯表達式、條件表達式和逗號表達式等

6.5表達式50ppt精選版6.5.1算術表達式-算術運算符單目+-++--雙目+-*/%注意/整數(shù)除整數(shù),得整數(shù)1/4=0,10/3=3%模(求余):

針對整型數(shù)據(jù)5%6=5,9%4=1,100%4=0+

單目運算符,+10和–10雙目運算符,

x+10和y–10

雙目運算符兩側操作數(shù)的類型要相同,否則,自動類型轉換后,再運算。51ppt精選版自增運算符++和自減運算符--intn;n++++nn----n

(只適合變量運算)使變量的值增1或減1++n

n++

n=n+1--n

n--

n=n-1取變量的值作為表達式的值++n:n=n+1;取n值作為表達式++n的值n++:取n值作為表達式n++的值;n=n+152ppt精選版自增運算和自減運算intn,m;n=2;m=++n;n=2;m=n++;n=3n=3m=3m=2m=nm=n+1n=n+1m=n53ppt精選版算術運算符的優(yōu)先級和結合性單目+-++--雙目*/%雙目+-高低從右向左-5+3%2=(-5)+(3%2)=-43*5%3=(3*5)%3=0-i++-(i++)54ppt精選版寫出C表達式數(shù)學式

C算術表達式s(s-a)(s-b)(s-c)(x+2)e2x55ppt精選版6.5.2賦值表達式賦值運算符=x=3*4優(yōu)先級較低,結合性從右向左x=y=3

x=(y=3)56ppt精選版賦值表達式變量

=

表達式計算賦值運算符右側表達式的值將賦值運算符右側表達式的值賦給左側的變量將賦值運算符左側的變量的值作為表達式的值右側表達式的類型自動轉換成左側變量的類型intn;doublex,y;n=3.14*2;x=10/4;x=(y=3);57ppt精選版復合賦值運算符賦值運算符簡單賦值運算符=復合賦值運算符復合算術賦值運算符+=-=*=/=%=復合位賦值運算符賦值表達式變量

賦值運算符

表達式x+=

exp

等價于x=x+

expx*=y-3x=x*

(y-3)

58ppt精選版6.5.3關系表達式-關系運算符比較兩個操作數(shù),比較的結果:真假x<yx<=yx==yx>yx>=yx!=y優(yōu)先級算術運算符

<<=>>=

==!=賦值運算符左結合a>b==cd=a>bch>'a'+1d=a+b>c3<=x<=5b-1==a!=c(a>b)==cd=(a>b)ch>('a'+1)d=((a+b)>c)(3<=x)<=5((b-1)==a)!=c59ppt精選版關系表達式用關系運算符將2個表達式連接起來的式子哪些是關系表達式?a>b==cd=a>bch>'a'+1d=a+b>cb-1==a!=c3<=x<=5關系運算的結果真1假0

charch='w';inta=2,b=3,c=1,d,x=10;00110160ppt精選版6.5.4邏輯表達式-邏輯運算符&&||!邏輯運算結果:1(真)

0

(假)邏輯運算對象:關系表達式或邏輯量x>=3&&x<=5!x判斷邏輯量的真假:非0

(真)

0

(假)(ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')ch==''||ch=='\n'x>=3&&x<=561ppt精選版邏輯運算的規(guī)則-真值表xyx&&yx||y!x假

假001假真011真假010真真1100

00

非0非00非0

非062ppt精選版優(yōu)先級!算術運算符關系運算符&&||賦值運算符左結合邏輯運算符的優(yōu)先級和結合性a||b&&c!a&&bx>=3&&x<=5!x==2a||3+10&&2a||(b&&c)(!a)&&b(x>=3)&&(x<=5)(!x)==2a||((3+10)&&2)63ppt精選版邏輯表達式用邏輯運算符將關系表達式或邏輯量連接起來的式子哪些是邏輯表達式?a&&ba||b&&c!a&&ba||3+10&&2!(x==2)!x==2ch||bcharch='w';inta=2,b=0,c=0;floatx=3.0;0101101exp1&&exp2先算exp1,若其值為0,STOPexp1||exp2先算exp1,若其值為1,STOP64ppt精選版例6-7寫出滿足要求的邏輯表達式x為零關系表達式x==0邏輯表達式!xx不為零x!=0xx和y不同時為零!(x==0&&y==0)x!=0||y!=0x||yx取0!x真x取非0!x假x取

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論