第二章 數據類型、運算符及表達式_第1頁
第二章 數據類型、運算符及表達式_第2頁
第二章 數據類型、運算符及表達式_第3頁
第二章 數據類型、運算符及表達式_第4頁
第二章 數據類型、運算符及表達式_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言程序設計第二章數據類型、運算符與表達式C語言程序設計本章重點內容一、C語言數據類型

二、標識符、常量和變量三、C運算符和表達式四、不同類型數據的轉換C語言程序設計基本類型構造類型指針類型空類型整型實型(浮點型)數據類型字符型char枚舉類型單精度實型數據類型

float雙精度實型double整型

int長整型long

短整型無符號整型數組類型結構體類型共用體類型一、數據類型C語言程序設計類型名類型符占用字節(jié)有符號短整型[signed]short[int]2無符號短整型unsignedshort[int]2有符號基本整型[signed]int4無符號基本整型unsigned[int]4有符號長整型[signed]long[int]4無符號長整型unsignedlong[int]41整型數據1)整型數據的類型C語言程序設計2)整型數據在內存中的存放形式整型數據在內存中是以二進制形式存放的。機器內部,整型數據是以補碼表示的。正數:其補碼和原碼相同。負數:其補碼為:該數的絕對值的二進制數按位取反加1。100011000000000001110011111111110111101111111111-35取反加1最高位最高位是符號位,其為0時是正數,為1時是負數。C語言程序設計2實型數據1)實型數據的類型類型符占用字節(jié)有效數字float46~7double815~16longdouble1218~19C語言程序設計2)實型數據在內存中的存儲格式C語言程序設計3字符型數據1)字符型數據表示一個ASCII字符。類型符:char,占用一個字節(jié)。C語言程序設計

在內存中,字符數據并不是把字符本身放到內存單元中,而是將該字符的相應ASCII碼(二進制的形式)放到存儲單元中。

A6501000001a9701100001ASCII二進制如:有兩個字符型數據‘A’和‘a’2)字符型數據在內存中的存儲格式C語言程序設計

提示:因為在內存中,字符數據以ASCII碼存儲,它的存儲形式與整數的存儲形式類似,因此字符型數據和整數數據可以通用。可以互相賦值,也可參與任何整數運算。C語言程序設計(一)標識符

標識符用來標識變量名、符號常量名、函數名、

類型名和文件名。

C語言規(guī)定標識符只能由字母(A~Z,a~z)、

數字(0~9)、下劃線(_)組成,并且其第一個字符

必須是字母或下劃線。注意:(1)C語言中,標識符區(qū)分大小寫。(2)命名應盡量有相應的意義,以便于閱讀理解。

(3)關鍵字不能用作用戶自定義的標識符。

二、標識符、常量與變量C語言程序設計常量是在程序運行過程中,其值不發(fā)生改變的量。1.直接常量如:12,65.2,‘B’,“Study”等。2.符號常量(宏常量)用標識符表示的常量稱為符號常量。宏常量是有宏定義編譯處理命令定義的,宏定義的一般形式為:

#define標識符字符串 #definePI3.1415926(二)常量C語言程序設計1)整型常量的表示

十進制數1856-8

八進制數以0開頭。如0126。十六進制數以0x開頭。如0x1237。1.整型常量C語言程序設計2)整型常量的類型確定一個整數,如果其值在–32768~32767

,C認為是shortint型。一個整數,如果其值超過了–32768~32767

,而在-2147483648~+2147483647之間,C認為是int型。一個整常數其后面加一個u或U,C認為是unsignedint型。一個整常數其后面加一個l或L,C認為是longint型。C語言程序設計1)

實型常量的表示(1)十進制小數形式。由數字和小數點組成(必須有小數點)如0.123.12323.0.0等。注意:5是整型常量;5.0是實型常量。(2)指數形式。123*103

可以寫成123e3或123E3。注意E前面必須有數字,E后面必須是整數。一般寫成規(guī)范格式1.23E+05

2.實型常量C語言程序設計實型常量隱含按雙精度型處理。單精度型常量由常量值后跟F或f表示。長雙精度型常量由常量值后跟L或l表示。2)整型常量的類型確定C語言程序設計字符含義字符含義‘\n’‘\r’‘\0’‘\t’‘\v’‘\b’‘\f’換行回車但不換行空字符水平制表垂直制表退格走紙換頁‘\a’‘\”’‘\’’‘\\’‘\?’‘\ddd’‘\xhh’響鈴報警雙引號單引號反斜杠問號1~3位八進制ASCII碼值代表的字符1~2位十六進制ASCII碼值代表的字符1.字符常量:用單引號括起來的一個字符。如:‘A’

‘8’2.轉義字符常量:以“\”開頭的字符序列。3.字符型常量C語言程序設計4.字符串常量

由一對雙引號括起的字符序列稱為字符串常量,例如:

“Howdoyoudo?”

“china”

“8”C規(guī)定以字符‘\0’作為字符串結束的標志,因此,在內存中字符串常量所占字節(jié)數為實際字符個數+1

注意:不要把字符常量和字符串常量混淆?!盿”是字符串常量,‘a’是字符常量,C語言程序設計

1.什么是變量變量:在程序運行過程中,其值可以被改變的量稱為變量。變量的實質是一個存儲數據的內存單元。變量具有三個要素:變量名、數據類型和變量的值。變量名是變量的名字,用標識符來標識,變量存儲的數據就是變量的值,數據類型決定了變量所占字節(jié)的多少。(三)

變量C語言程序設計2.變量的定義變量定義的基本語法格式為:

變量類型名

變量名列表;如:

inti,j,k;/*定義i,j,k為整型變量*/

doublex1,x2;/*定義x1,x2為雙精度實型變量*/

floatf1,f2;/*定義f1,f2為單精度實型變量*/charc1,c2;/*定義c1,c2為字符型變量*/注意:c語言規(guī)定:變量必須先定義后使用。C語言程序設計

定義變量時應注意:(1)變量名的命名,要遵循C語言中關于標識符的規(guī)定。(2)在同一個函數體內,不能定義同名的兩個變量。(3)在C語言中,所有變量的定義語句必須放在函數體的最開始處。(4)可以在一個類型說明符后,定義多個相同類型的變量。各變量名之間用逗號間隔。(5)變量類型名與變量名之間至少用一個空格間隔。C語言程序設計(6)C語言中,允許在對變量定義時給其賦初值(初始化)。例如:inta=2;/*定義a為整型變量,初值為2*/

charc=’x’;/*定義c為字符型變量,初值為’x’*/inta,b=2;

/*定義a,b為整型變量,只對b賦出值為2*/注意:不能以下格式對a,b變量賦初值,

inta=b=2;

應該分別賦初值:inta=2,b=2;C語言程序設計(7)可使用const類型修飾符用const修飾的標識符為常量。const類型修飾符必須放在它所修飾的類型名之前。

例如:

#include<stdio.h>voidmain()

{inta=3,x,y;intconstb=586542135;a=6;x=a+b;y=b-a;printf(“X=%dY=%d\n”,x,y);}

C語言程序設計(一)

運算符1)運算符:能夠完成某種操作(運算)的符號。

2)根據運算符的運算對象(操作數)的多少,運算符可分為:①單目(一元)運算符i++

--i-n②雙目(二元)運算符a+bd/e③三目(三元)運算符

x>y?x+3:y*9(條件運算符)三、C語言運算符和表達式C語言程序設計優(yōu)先級運算符操作數結合性1

()[]->.左右2!~-++--&*sizeof1右左3*/%2左右4

+-2左右5

<<>>2左右6

<<=>=>2左右7

==!=2左右8

&2左右9

^2左右10

|2左右11

&&2左右12

||2左右13

?:3右左14=*=/=%=+=-=

&=|=^=<<=>>=2右左15,2左右C語言程序設計(二)

表達式1、C表達式:由C運算符和運算對象構成的式子。運算對象可以是常量、變量、函數或表達式。

2、表達式的書寫原則(1)C語言的表達式只能采用線性的形式書寫。例如:①應寫成1/3.0+i+j*j*j。

②應寫成(a+b)/(c+d)*e+f。

C語言程序設計(2)C語言的表達式只能使用C語言中合法的運算符,而且運算符不能省略。例如:①πr2應寫成3.14159*r*r。(3)對有些操作須調用庫函數完成,①應寫成0.5*a*b*sin(alph)。②|x-y|應寫成fabs(x-y)。③y+2X

應寫成y+pow(2,x)。C語言程序設計3、表達式在求值時,遵循以下規(guī)則(1)優(yōu)先級:不同優(yōu)先級的運算符出現(xiàn)在同一表達式時,按運算符的優(yōu)先級的高低次序執(zhí)行。

例如:

d=a+b*c;/*先乘后加*/(2)結合性:是指表達式中出現(xiàn)同優(yōu)先級的操作符時,該先做哪個操作符的規(guī)定。結合方向:“自左向右”、“自右向左”例如:

a+b-c從左至右d=a=b=3從右至左C語言程序設計4、表達式的分類

C語言表達式種類很多,有多種分類方法。我們一般依據運算的特征將表達式分為:①算術表達式,如a+b*2.0-3.0/5.0②關系表達式,如x>=y,cj>=60③邏輯表達式,如(x>=2)&&(x<=8)④賦值表達式,如a=b=c=1x=0.0⑤條件表達式,如(a>b)?a:b⑥逗號表達式,如a=2,b=a*a,c=sqrt(b)C語言程序設計5、表達式值的數據類型(1)每個表達式都有一個確定的值,因而有確定的數據類型。(2)表達式的數據類型取決與最后執(zhí)行的運算符,如:34.5+(1>6)為算術表達式,類型是double型,值34.5

34.5+1>6為關系表達式,類型是int型,值1C語言程序設計(三)算術運算符和算術表達式

1、算術運算符分類單目運算符

-負號運算、++自增、--自減雙目運算符

+加、-減、*乘、/除、%求余

C語言程序設計解釋:

“/”為除法運算符。C規(guī)定如果是兩個整型數相除,其意義就是整數除,結果為int型。如至少有一個操作數為實數時,其意義是實數除,結果為double型。如:5/2=25.0/2=2.5

“%”為取余運算符。如:5%3=2注意:

1.只能對整數取余數,不能對浮點數取余數。如表達式10.4%5是錯誤的。

2.運算結果的符號與左操作數相同。

-35%8=-335%-8=3C語言程序設計2、自增操作符和自減操作符

自增運算符“++”,功能是將變量的值加1;自減運算符“--”,功能是將變量的值減1。

“++”、“--”是對一個變量進行簡單的加1算術運算,運算的結果仍賦給該變量。所以,實際上自增、自減運算是算術運算和賦值運算的結合。運算符“++”或“--”既可以作為一個變量的前綴,也可以作為一個變量的后綴。例如:++x--xx++x--前綴和后綴的區(qū)別:對一個變量,施加前綴或后綴運算其結果是相同的,都是該變量的值加1或減1。但是,當施加前綴或后綴運算的變量作為表達式中其它運算符的一個操作對象時,則參與運算的值是不同的。前綴運算是先將該變量的值增1(或減1),然后再用該變量的值參與表達式中的其它運算;而后綴運算是先用該變量的值參與表達式中的其它運算,然后將該變量的值增1(或減1)。C語言程序設計例如:

intx,a=5;x=3+(++a);表達式x=++a的運算等價于a=a+1、x=3+a,即先把變量a的值加1,然后再把加1后的a值賦給x。執(zhí)行結果為:a的值為6,x的值也為9。

而對于intx,a=5;x=3+a++;表達式x=a++的運算等價于x=3+a、a=a+1即先把變量a的值賦給x,然后a的值加1。執(zhí)行結果為:a的值為6,而x的值為8。

注意:

自加或自減運算只能用于變量,不能用于常量或表達式;錯誤:25++(i+j)++C語言程序設計3、算術表達式

表達式中含有算術運算符的表達式

例如:a+b*2.0-3.0/5.0 x/2+y*3-6.8 x%2 x+12 a*a+b*c-6C語言程序設計(四)賦值運算符和賦值表達式1、賦值運算符:=賦值表達式:變量=表達式賦值運算時先計算右邊表達式的值,然后將右邊表達式的值賦給左邊變量,并以此值作為整個賦值表達式的值。注意:賦值運算符具有“自右向左”的結合性,賦值運算符右邊的表達式也可以是賦值表達式:

例如:a=b=5;

等同于a=(b=5);C語言程序設計2、復合賦值運算算術復合賦值運算符:+=、-=、*=、/=、%=位復合賦值運算符:&=、|=、^=、>>=、<<=

一般形式:

變量☆=表達式符。

等價于:

變量=變量☆表達式

☆代表任一雙目算術運算符或位運算

C語言程序設計例如:inta=3;a+=2;等價于a=a+2floatx=1.2,y=2.1;y*=x+3.4;等價于y=y*(x+3.4)(4)inta=1,b=2;b/=a+=1;等價于b=b/(a=a+1)C語言程序設計(五)關系運算符和關系表達式一、關系運算符:<、>、<=、>=、==、!=<、<=、>、>=的優(yōu)先級相同,==、!=的優(yōu)先級相同,前者的優(yōu)先級高于后者。二、關系表達式關系表達式的運算結果是一個邏輯量,即“真”或“假”,關系表達式所表達的關系如果成立,其值為“真”;若不成立,其值為“假”。如:X>=60在C語言中沒有邏輯類型,而是用1代表“真”,用0代表“假”。所以關系表達式的值,不是0,就是1,其類型是int型。

C語言程序設計(六)邏輯運算符與邏輯表達式1、邏輯運算符!邏輯非&&邏輯與

||邏輯或2、邏輯表達式及其意義

&&:兩操作數同為真時結果為真

!:取反

||:兩操作數只要有一個為真時結果就為真

C語言程序設計3、優(yōu)先級:!>&&>||&&和||運算符的優(yōu)先級低于算術運算符和關系運算符,而高于賦值運算符。4、操作數是邏輯量C語言在進行邏輯運算時,把所有的運算對象都看做是邏輯量,如果其值為0,則為假,非0則為真。邏輯表達式的運算結果仍然是邏輯量(0或1)如:(6+5)&&-8結果為1

!5結果為0

6||0結果為1C語言程序設計

(七)條件運算符和條件表達式1、語法形式:

<表達式1>?<表達式2>:<表達式3>意義:如果表達式1的值為真,條件表達式的結果為表達式2的值;如果表達式1的值為假,條件表達式的結果為表達式3的值;C語言程序設計#include<stdio.h>Voidmain(){intx;scanf(″%d″,&x);

x>0?printf(″%s″,″正數″):printf(″%s″,″負數″);}例:判斷整數的正負。C語言程序設計注意:結合方向“自右向左”

a>b?a:c>d?c:d相當于a>b?a:(c>d?c:d)C語言程序設計(八)逗號運算符和逗號表達式1、逗號運算是雙目運算,一般形式如下:表達式1,表達式2逗號表達式的的求解過程是:先求解表達式1,再求解表達式2,整個表達式的值是表達式2的值。逗號表達式的的求解過程是:先求解表達式1,再求解表達式2,整個表達式的值是表達式2的值。如:q=(a=2,a*6)先計算a=2,再計算a*6,并以此作為整個表達式的值,表達式的值為12。C語言程序設計#include<stdio.h>voidmain(){inti,j,k;i=1;j=2;k=3;printf(“%d%d%d\n”,i,j,k);}#include<stdio.h>voidmain(){inti,j,k;i=1,j=2,k=3;printf(“%d%d%d\n”,i,j,k);}三個賦值語句一個逗號表達式語

溫馨提示

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

評論

0/150

提交評論