《C語言程序設(shè)計及應(yīng)用》課件第2章C語言的基本概念_第1頁
《C語言程序設(shè)計及應(yīng)用》課件第2章C語言的基本概念_第2頁
《C語言程序設(shè)計及應(yīng)用》課件第2章C語言的基本概念_第3頁
《C語言程序設(shè)計及應(yīng)用》課件第2章C語言的基本概念_第4頁
《C語言程序設(shè)計及應(yīng)用》課件第2章C語言的基本概念_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章C語言的基本概念2.1常量與變量2.2簡單數(shù)據(jù)類型2.3運算符與表達式2.4類型轉(zhuǎn)換2.1常量與變量2.1.1常量2.1.2變量2.1.1常量在程序執(zhí)行過程中,其值不發(fā)生改變的量稱為常量。常量可以分為直接常量和符號常量兩種。直接常量(又叫字面常量)可以根據(jù)不同的數(shù)據(jù)類型分為:(1)整型常量:如12、0、-3等。(2)實型常量:如4.6、-1.23等。(3)字符常量:如‘a(chǎn)’、‘b’等。(4)字符串常量:如“Howareyou?”等。2.1.1常量用一個標(biāo)識符來表示一個常量,稱之為符號常量。標(biāo)識符是用來標(biāo)識變量名、符號常量名、函數(shù)名、數(shù)組名、類型名、文件名等的有效字符序列。標(biāo)識符中的字母有大小寫之分。符號常量在使用之前必須先定義,其一般形式為:

#define標(biāo)識符

常量

2.1.1常量【例2-1】符號常量的使用。#definePRICE30 /*定義符號常量*/main(){intnum,total;num=20;total=num*PRICE; /*單價乘以數(shù)量等于總價*/

printf("total=%d",total);}【例2-1】程序運行結(jié)果,如下圖所示。2.1.2變量其值可以改變的量稱為變量。一個變量應(yīng)該有一個名字,在內(nèi)存中占據(jù)一定的存儲單元。所有的變量必須先定義其類型,然后才能使用。一個定義中可包含一個或多個同類型的變量,類型說明符與變量名之間至少用一個空格間隔,各變量之間用逗號間隔,最后一個變量名后必須以“;”號結(jié)尾。變量名和變量值是兩個不同的概念。2.1.2變量【例2-2】變量的使用。main(){inta; /*定義變量*/

a=1; /*給變量賦值*/

printf("a=%d\n",a);a=4;printf("a=%d\n",a);}【例2-2】程序運行結(jié)果,如下圖所示。2.2簡單數(shù)據(jù)類型在C語言中,數(shù)據(jù)類型分為四大類,如下圖所示。2.2簡單數(shù)據(jù)類型2.2.1整數(shù)類型2.2.2浮點類型2.2.3字符類型2.2.1整數(shù)類型1.整型常量的表示方法

整型常量就是整常數(shù)。分下面三種:(1)十進制:十進制整常數(shù)沒有前綴。其數(shù)碼為0~9。(2)八進制:八進制整常數(shù)必須以0開頭,即以0作為八進制數(shù)的前綴。數(shù)碼取值為0~7。(3)十六進制整常數(shù):十六進制整常數(shù)的前綴為0X或0x。其數(shù)碼取值為0~9,A~F或a~f。在16位字長的機器上,基本整型的長度也為16位,因此表示的數(shù)的范圍也是有限定的。2.2.1整數(shù)類型2.整型變量的分類(1)基本型:類型說明符為int,在內(nèi)存中占2個字節(jié)。(2)短整型:類型說明符為shortint或short,所占字節(jié)和取值范圍均與基本型相同。(3)長整型:類型說明符為longint或long,在內(nèi)存中占4個字節(jié)。(4)無符號型:類型說明符為unsigned。無符號型又可與上述三種類型匹配而構(gòu)成。2.2.1整數(shù)類型整數(shù)取值范圍如下表所示。類型說明符數(shù)的范圍字節(jié)數(shù)int-32768~32767即-215~(215-1)2unsignedint0~65535即0~(216-1)2shortint-32768~32767即-215~(215-1)2unsignedshortint0~65535即0~(216-1)2longint-2147483648~2147483647即-231~(231-1)4unsignedlong0~4294967295即0~(232-1)42.2.1整數(shù)類型【例2-3】整型變量的定義與使用。main(){inta,b,c,d; /*定義整型變量*/unsignedu; /*定義無符號整型變量*/a=12;b=-24;u=10;c=a+u;d=b+u;printf("a+u=%d,b+u=%d\n",c,d);}【例2-3】程序運行結(jié)果,如下圖所示。2.2.2浮點類型1.浮點型常量的表示方法浮點型也稱為實型。它有兩種形式:(1)十進制小數(shù)形式:由數(shù)碼0~9和小數(shù)點組成。(2)指數(shù)形式:由十進制數(shù)加階碼標(biāo)志“e”或“E”以及階碼(只能為整數(shù),可以帶符號)組成。其一般形式為:aEn(a為十進制數(shù),n為十進制整數(shù)),其值為a*10n。如果浮點型常量后綴是“f”或“F”,則被當(dāng)成float型,否則,C語言編譯系統(tǒng)總是將浮點型常量處理成雙精度型的。2.2.2浮點類型2.浮點型變量的分類

浮點型變量分為單精度(float型)和雙精度(double型)兩類。3.浮點型變量的定義

浮點型變量定義的格式和書寫規(guī)則與整型類似。例如: floatx,y; /*x,y為單精度浮點型量*/ doublea,b,c; /*a,b,c為雙精度浮點型量*/由于浮點型變量是由有限的存儲單元組成的,因此能提供的有效數(shù)字總是有限的。2.2.2浮點類型【例2-4】浮點型數(shù)據(jù)的舍入誤差。main(){floata,b;a=123456.789e5; /*有效數(shù)字是七位,其余位數(shù)無效*/

b=a+20;printf("a=%f\n",a);printf("b=%f\n",b);}【例2-4】程序運行結(jié)果,如圖2-5所示。2.2.3字符類型1.字符常量

字符常量是用單引號括起來的一個字符。例如:‘a(chǎn)’、‘b’、‘=’、‘+’、‘?’等都是合法的字符常量。特點如下:(1)字符常量只能用單引號括起來,不能用雙引號或其他括號。(2)字符常量只能是單個字符,不能是字符串。(3)字符可以是字符集中任意字符。2.2.3字符類型有一種特殊的字符常量叫轉(zhuǎn)義字符。轉(zhuǎn)義字符以反斜杠“\”開頭,后跟一個或幾個字符。轉(zhuǎn)義字符具有特定的含義,不同于字符原有的意義,故稱“轉(zhuǎn)義”字符。轉(zhuǎn)義字符及其含義如下表所示。轉(zhuǎn)義字符轉(zhuǎn)義字符的含義\n回車換行\(zhòng)t橫向跳到下一制表位置\b退格\r回車\f走紙換頁\\反斜線杠"\"\'單引號符\”雙引號符\a響鈴2.2.3字符類型【例2-7】轉(zhuǎn)義字符的使用。main(){printf("abc\tde\rf\n");printf("hijk\tL\bM\n");}【例2-7】程序運行結(jié)果如下圖所示。2.2.3字符類型2.字符變量字符變量用來存儲字符常量,即單個字符。字符變量的類型說明符是char。字符變量類型定義的格式和書寫規(guī)則都與整型變量類似。例如:

chara,b;3.字符串常量字符串常量是由一對雙引號括起的字符序列。2.2.3字符類型字符串常量和字符常量是不同的量,它們之間主要有以下區(qū)別:(1)字符常量由單引號括起來,字符串常量由雙引號括起來。(2)字符常量只能是單個字符,字符串常量則可以含一個或多個字符。(3)可以把一個字符常量賦予一個字符變量,但不能把一個字符串常量賦予一個字符變量。

(4)字符常量占一個字節(jié)的內(nèi)存空間。字符串常量占的內(nèi)存字節(jié)數(shù)等于字符串中字節(jié)數(shù)加1。增加的一個字節(jié)中存放字符"\0"(ASCII碼為0),這是字符串結(jié)束的標(biāo)志。2.3運算符與表達式2.3.1算術(shù)運算符與算術(shù)表達式2.3.2賦值運算符與賦值表達式2.3.3逗號運算符與逗號表達式2.3.1算術(shù)運算符與算術(shù)表達式1.基本的算術(shù)運算符(1)+(2)-(3)*(4)/兩個整數(shù)相除結(jié)果還是整數(shù),如8/3是2。如果參加運算的兩個數(shù)中有一個是浮點型,則結(jié)果為double型。2.3.1算術(shù)運算符與算術(shù)表達式【例2-8】除法運算。main(){printf(“\n\n%d,%d\n”,20/7,-20/7);/*兩個整數(shù) 相除結(jié) 果還是整數(shù)*/

printf(“%f,%f\n”,20.0/7,-20.0/7);/*參加運算的 兩個數(shù)中有一個是浮點型,則結(jié)果為double型*/}【例2-8】程序運行結(jié)果如下圖所示。2.3.1算術(shù)運算符與算術(shù)表達式2.算術(shù)表達式和運算符的優(yōu)先級和結(jié)合性表達式是由常量、變量、函數(shù)和運算符組合起來的式子。表達式求值按運算符的優(yōu)先級和結(jié)合性規(guī)定的順序進行。單個的常量、變量、函數(shù)可以看作是表達式的特例。

C語言中,運算符的運算優(yōu)先級共分為15級。1級最高,15級最低。2.3.1算術(shù)運算符與算術(shù)表達式基本運算符的優(yōu)先級如下表所示。基本運算符級別++、--、-、(類型名)同一級高低*、/、%同一級+、-同一級=、+=、-=、*=、/=、%=同一級,

在表達式中,優(yōu)先級較高的先于優(yōu)先級較低的進行運算。而在一個運算量兩側(cè)的運算符優(yōu)先級相同時,則按運算符的結(jié)合性所規(guī)定的結(jié)合方向處理。2.3.1算術(shù)運算符與算術(shù)表達式3.自增、自減運算符自增運算符記為“++”,其功能是使變量的值自增1。自減運算符記為“--”,其功能是使變量值自減1。自增、自減運算符均為單目運算,都具有右結(jié)合性,可有以下幾種形式:++ii自增1后再參與其他運算。--ii自減1后再參與其他運算。i++

i參與運算后,i的值再自增1。i--i參與運算后,i的值再自減1。2.3.1算術(shù)運算符與算術(shù)表達式【例2-11】自增、自減運算。main(){inti=5,j=5,p,q;p=(i++)+(i++)+(i++);/*i參與運算后,i的值再自增1*/

q=(++j)+(++j)+(++j);/*j自增1后再參與其他運算*/

printf("%d,%d,%d,%d",p,q,i,j);}【例2-11】程序運行結(jié)果如下圖所示。2.3.2賦值運算符與賦值表達式1.簡單賦值運算符

簡單賦值運算符記為“=”。由“=”連接的式子稱為賦值表達式,其一般形式為:

變量=表達式賦值表達式的功能是計算表達式的值再賦予左邊的變量。賦值運算符具有右結(jié)合性。因此a=b=c=5可理解為a=(b=(c=5))。

在C語言中也可以組成賦值語句,C語言規(guī)定,任何表達式在其末尾加上分號就構(gòu)成為語句。

2.3.2賦值運算符與賦值表達式2.復(fù)合賦值運算符

在賦值符“=”之前加上其他二目運算符就構(gòu)成了復(fù)合賦值運算符。構(gòu)成復(fù)合賦值表達式的一般形式為:

變量

二目運算符=表達式

它等效于:

變量=變量

二目運算符

表達式例如:a+=5等價于a=a+5x*=y+7等價于x=x*(y+7)r%=p等價于r=r%p2.3.3逗號運算符與逗號表達式“,”也是一種運算符,稱為逗號運算符。其功能是把若干個表達式連接起來組成一個表達式,稱為逗號表達式。其一般形式為:

表達式1,表達式2,…表達式n

其求值過程是分別求各個表達式的值,整個逗號表達式的值等于表達式n的值。2.3.3逗號運算符與逗號表達式【例2-12】逗號運算符。main(){inta=1,b=4,c=6,x,y;y=((x=a+b),(b+c));

/*相當(dāng)于x=a+b;y=b+c*/printf("y=%d,x=%d",y,x);}【例2-12】程序運行結(jié)果如下圖所示。2.4類型轉(zhuǎn)換2.4.1自動類型轉(zhuǎn)換2.4.2強制類型轉(zhuǎn)換2.4.1自動類型轉(zhuǎn)換當(dāng)運算符兩側(cè)的數(shù)據(jù)類型不同時,它們會自動進行類型轉(zhuǎn)換,使兩者具有同一類型,然后再進行

溫馨提示

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

評論

0/150

提交評論