C語(yǔ)言基本語(yǔ)法_第1頁(yè)
C語(yǔ)言基本語(yǔ)法_第2頁(yè)
C語(yǔ)言基本語(yǔ)法_第3頁(yè)
C語(yǔ)言基本語(yǔ)法_第4頁(yè)
C語(yǔ)言基本語(yǔ)法_第5頁(yè)
已閱讀5頁(yè),還剩68頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院第二講第二講C語(yǔ)言的基本語(yǔ)法語(yǔ)言的基本語(yǔ)法1本講主要內(nèi)容本講主要內(nèi)容2 C語(yǔ)言的基本元素語(yǔ)言的基本元素1 1 C語(yǔ)言的數(shù)據(jù)類型語(yǔ)言的數(shù)據(jù)類型2 2 C語(yǔ)言的常量和變量語(yǔ)言的常量和變量3 3 C語(yǔ)言的運(yùn)算符和表達(dá)式語(yǔ)言的運(yùn)算符和表達(dá)式4 4 C語(yǔ)言的基本輸入輸出語(yǔ)句語(yǔ)言的基本輸入輸出語(yǔ)句5 531、基本基本字符集字符集l 數(shù)數(shù) 字字:0 1 2 3 4 5 6 7 8 9l 字字 母:母:a b c z A B C Zl 運(yùn)算符運(yùn)算符:+ - * / % = = != = & | & | ( ) . ! ? : , ; l 特殊符號(hào):特殊符

2、號(hào):_(下劃線下劃線) 、回車、回車(r)、換行、換行(n) 制表符制表符(t)等等一、一、C語(yǔ)言的基本元素語(yǔ)言的基本元素-142. 標(biāo)識(shí)符標(biāo)識(shí)符標(biāo)識(shí)符內(nèi)容標(biāo)識(shí)符內(nèi)容:量名、變量名量名、變量名、數(shù)組、數(shù)組名、類名、類型名、存儲(chǔ)方式名型名、存儲(chǔ)方式名、函數(shù)、函數(shù)名、文件名等。名、文件名等。標(biāo)識(shí)符標(biāo)識(shí)符規(guī)則:規(guī)則:字母字母或或_(_(下劃線下劃線) )開(kāi)頭開(kāi)頭,后面是,后面是字母字母、 _( _(下劃線下劃線) )或或數(shù)字組成的字符串,要數(shù)字組成的字符串,要求見(jiàn)名知意。求見(jiàn)名知意。call_n test39 _string1 abccall.n 39test -string1 c2.0合法合法非法

3、非法一、一、C語(yǔ)言的基本元素語(yǔ)言的基本元素-25標(biāo)識(shí)符說(shuō)明標(biāo)識(shí)符說(shuō)明 (1) 在在C語(yǔ)言中,語(yǔ)言中, 標(biāo)識(shí)符中大小寫(xiě)字母是有區(qū)別的。標(biāo)識(shí)符中大小寫(xiě)字母是有區(qū)別的。程序中程序中基本上都采用小寫(xiě)字母表示各種標(biāo)識(shí)符基本上都采用小寫(xiě)字母表示各種標(biāo)識(shí)符,如變,如變量名、數(shù)組名、函數(shù)名等。書(shū)寫(xiě)的各種語(yǔ)句也均用小量名、數(shù)組名、函數(shù)名等。書(shū)寫(xiě)的各種語(yǔ)句也均用小寫(xiě)字母,而大寫(xiě)字母只用來(lái)定義宏名等,用的不多。寫(xiě)字母,而大寫(xiě)字母只用來(lái)定義宏名等,用的不多。 (2) 不同的系統(tǒng)對(duì)標(biāo)識(shí)符的長(zhǎng)度有不同的要求,不同的系統(tǒng)對(duì)標(biāo)識(shí)符的長(zhǎng)度有不同的要求, 有有的要求為的要求為6個(gè)字符,有的允許使用個(gè)字符,有的允許使用8個(gè)字符,個(gè)

4、字符,而而VS2012的標(biāo)識(shí)符有效長(zhǎng)度不受限制。的標(biāo)識(shí)符有效長(zhǎng)度不受限制。 (3) 除了除了少數(shù)情況下使用少數(shù)情況下使用單個(gè)字符作標(biāo)識(shí)符單個(gè)字符作標(biāo)識(shí)符外(如:外(如:循環(huán)變量名),循環(huán)變量名),一般的應(yīng)做到一般的應(yīng)做到見(jiàn)名知意見(jiàn)名知意,以提高程序,以提高程序的可讀性。如用的可讀性。如用sum表示和,表示和,score表示成績(jī),表示成績(jī), max表表示最大等等。示最大等等。63. 關(guān)鍵字關(guān)鍵字autobreakcase charconstcontinuedefaultdo double elseenumexternfloat for gotoifintlong register returns

5、hortsignedsizeof static structswitchtypedefunion unsigned voidvolatilewhile標(biāo)識(shí)符或標(biāo)識(shí)符或由由C語(yǔ)言系統(tǒng)語(yǔ)言系統(tǒng)定義定義一、一、C語(yǔ)言的基本元素語(yǔ)言的基本元素-374. 運(yùn)算符運(yùn)算符 (數(shù)組下標(biāo)數(shù)組下標(biāo))、( )、 .、-(成員選擇成員選擇)-(負(fù)號(hào)負(fù)號(hào))、(求反求反)、+(遞增遞增)、-(遞減遞減) 、*(指針取值指針取值) 、&(指針取指針取地址地址)!(邏輯非邏輯非)、sizeof(求數(shù)據(jù)類型或變量對(duì)應(yīng)內(nèi)存的字節(jié)數(shù)求數(shù)據(jù)類型或變量對(duì)應(yīng)內(nèi)存的字節(jié)數(shù))、/(除法除法)、*(乘法乘法)、% (取模取模)、 +(

6、加法加法)、-(減法減法)、 (右移右移)(小于小于) 、 (大于大于) 、=(大于等于大于等于)、=(等等于于)、!=(不等于不等于)&(位與位與)、(異或異或)、|(位或位或)、&(邏輯與邏輯與)、|(邏輯或邏輯或) ?: (條件運(yùn)算符條件運(yùn)算符)= (賦值賦值)、+=、-=、*= 、/=、 %= 、=、&= 、=、 |=, (逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符)x+y x%y 2*x-yab x=a+=3xy & ab a=2,a+3,a+ -i一、一、C語(yǔ)言的基本元素語(yǔ)言的基本元素-485. 分隔符分隔符 分隔符內(nèi)容:空格字符、水平制表符、垂直制表符、分隔符內(nèi)容:空格

7、字符、水平制表符、垂直制表符、換行符、換頁(yè)符及注釋和逗號(hào)等,也稱為空白字符。換行符、換頁(yè)符及注釋和逗號(hào)等,也稱為空白字符。分隔分隔規(guī)則:在相鄰的變量、關(guān)鍵字和常量、函數(shù)之規(guī)則:在相鄰的變量、關(guān)鍵字和常量、函數(shù)之間需要用一個(gè)或多個(gè)空白字符(其效果是一樣的)間需要用一個(gè)或多個(gè)空白字符(其效果是一樣的)將其分開(kāi)將其分開(kāi) 。逗號(hào)也是分隔符,用于相鄰?fù)愴?xiàng)之間的分隔。逗號(hào)也是分隔符,用于相鄰?fù)愴?xiàng)之間的分隔。例例如編程計(jì)算如編程計(jì)算1+2案例中案例中定義定義變量語(yǔ)句變量語(yǔ)句: int x=1, y=2, z;一、一、C語(yǔ)言的基本元素語(yǔ)言的基本元素-59C語(yǔ)言把處理的數(shù)據(jù)進(jìn)行分類,從語(yǔ)言把處理的數(shù)據(jù)進(jìn)行分

8、類,從數(shù)據(jù)的表示、取數(shù)據(jù)的表示、取值范圍和對(duì)應(yīng)的操作值范圍和對(duì)應(yīng)的操作等方面進(jìn)行劃分,形成不同的等方面進(jìn)行劃分,形成不同的數(shù)據(jù)類型數(shù)據(jù)類型通過(guò)通過(guò)程序中數(shù)據(jù)類型的描述確定存放數(shù)據(jù)的空間大程序中數(shù)據(jù)類型的描述確定存放數(shù)據(jù)的空間大小,確保小,確保C程序中的每個(gè)數(shù)據(jù)都屬于一個(gè)確定的、程序中的每個(gè)數(shù)據(jù)都屬于一個(gè)確定的、具體的數(shù)據(jù)類型具體的數(shù)據(jù)類型。不同類型數(shù)據(jù)采取不同的存儲(chǔ)形式;不同類型數(shù)據(jù)采取不同的存儲(chǔ)形式;不同類型數(shù)據(jù)在內(nèi)存中占有不同的存儲(chǔ)空間;不同類型數(shù)據(jù)在內(nèi)存中占有不同的存儲(chǔ)空間;不同類型數(shù)據(jù)對(duì)應(yīng)不同的取值范圍;不同類型數(shù)據(jù)對(duì)應(yīng)不同的取值范圍;不同類型數(shù)據(jù)確定了允許對(duì)其進(jìn)行不同的操作類型。不同

9、類型數(shù)據(jù)確定了允許對(duì)其進(jìn)行不同的操作類型。1、數(shù)據(jù)類型數(shù)據(jù)類型的含義的含義二、數(shù)據(jù)類型二、數(shù)據(jù)類型10構(gòu)造類型構(gòu)造類型指針類型指針類型空空類型類型(無(wú)無(wú)值值類型類型枚舉類型枚舉類型數(shù)組類型數(shù)組類型結(jié)構(gòu)類型結(jié)構(gòu)類型聯(lián)合類型聯(lián)合類型 二、數(shù)據(jù)類型二、數(shù)據(jù)類型11按照數(shù)據(jù)在程序中的取值分為兩類:按照數(shù)據(jù)在程序中的取值分為兩類:值保持不變值保持不變-常量常量 x = 2 + y值隨程序運(yùn)行變化值隨程序運(yùn)行變化-變量變量單精度單精度 float雙精度雙精度 double基本數(shù)據(jù)類型基本數(shù)據(jù)類型121、整型數(shù)據(jù)、整型數(shù)據(jù)-1整型整型數(shù)據(jù)包括整型常量和整型數(shù)據(jù)包括整型常量和整型變量變量 六種六種形式形式基本

10、整型基本整型短整型短整型長(zhǎng)整型長(zhǎng)整型無(wú)符號(hào)整型無(wú)符號(hào)整型無(wú)符號(hào)短整型無(wú)符號(hào)短整型無(wú)符號(hào)長(zhǎng)整型無(wú)符號(hào)長(zhǎng)整型int short intlong int unsigned intunsigned short unsigned long13整型整型變量的取值范圍變量的取值范圍(在(在VS2010中)中)1、整型數(shù)據(jù)整型數(shù)據(jù)-214有符號(hào)與無(wú)符號(hào)整型數(shù)的區(qū)別有符號(hào)與無(wú)符號(hào)整型數(shù)的區(qū)別 a=a=32a=-1 a=a=15a=-215=-32-1151. 求法:正數(shù)的補(bǔ)碼與原碼相同;負(fù)數(shù)的補(bǔ)碼對(duì)原碼求法:正數(shù)的補(bǔ)碼與原碼相同;負(fù)數(shù)的補(bǔ)碼對(duì)原碼即得即得補(bǔ)碼補(bǔ)碼。或者由反碼加。或者由反碼加1也可求得也可求得補(bǔ)碼

11、。補(bǔ)碼。0補(bǔ)補(bǔ)的兩種的兩種表示是什么?表示是什么?數(shù)數(shù)的補(bǔ)碼表示的補(bǔ)碼表示2. 補(bǔ)碼的表示范圍補(bǔ)碼的表示范圍 當(dāng)當(dāng)n=16時(shí)時(shí),補(bǔ)碼的表示范圍是:,補(bǔ)碼的表示范圍是:+127補(bǔ)補(bǔ)= 0000 0000 0111 1111 -128補(bǔ)補(bǔ)= 1111 1111 1000 0000由此可得由此可得補(bǔ)碼表示范圍的公式補(bǔ)碼表示范圍的公式是是2n1(2n11)16數(shù)的補(bǔ)碼舉例數(shù)的補(bǔ)碼舉例問(wèn)題:已知問(wèn)題:已知a=4,b=16,計(jì)算,計(jì)算 4 -16 根據(jù)根據(jù) a補(bǔ)補(bǔ)+b補(bǔ)補(bǔ)= a+b補(bǔ)補(bǔ)有:有: a+b補(bǔ)補(bǔ) =+4補(bǔ)補(bǔ)+16補(bǔ)補(bǔ) 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 + 1 1 1

12、 1 0 0 0 0 1000110016 原原= 10010000 連同符號(hào)連同符號(hào)一起運(yùn)算一起運(yùn)算4 補(bǔ)補(bǔ) = 00000100 16 反反= 11101111 16 補(bǔ)補(bǔ)= 11110000 171)定義)定義形式形式三種三種形式形式單精度單精度雙精度雙精度長(zhǎng)雙精度長(zhǎng)雙精度 floatdoublelong double2)占)占存儲(chǔ)空間存儲(chǔ)空間4816注意:實(shí)型常量不區(qū)分單精度和雙精度!注意:實(shí)型常量不區(qū)分單精度和雙精度!2、實(shí)、實(shí)型型數(shù)據(jù)數(shù)據(jù)-1 實(shí)實(shí)型數(shù)據(jù)就是數(shù)學(xué)中的實(shí)數(shù),一律作為型數(shù)據(jù)就是數(shù)學(xué)中的實(shí)數(shù),一律作為有符號(hào)的數(shù)據(jù)使用。有符號(hào)的數(shù)據(jù)使用。 184)輸入輸出)輸入輸出形式形式

13、 %f, %lf 3)變量)變量的取值范圍的取值范圍 類型類型 長(zhǎng)度長(zhǎng)度數(shù)的范圍數(shù)的范圍有效數(shù)字有效數(shù)字單精度單精度f(wàn)loat4 10- 38 10386 7位位雙精度雙精度double8 10- 308 1030815 16位位長(zhǎng)雙精度長(zhǎng)雙精度long double16 10- 4931 10493218 19位位2、實(shí)型數(shù)據(jù)實(shí)型數(shù)據(jù)-219 實(shí)型數(shù)據(jù)在計(jì)算機(jī)中以實(shí)型數(shù)據(jù)在計(jì)算機(jī)中以指數(shù)形式指數(shù)形式存儲(chǔ),單精度存儲(chǔ),單精度f(wàn)loat變量占四個(gè)字節(jié)。一個(gè)字節(jié)存放指數(shù)部分變量占四個(gè)字節(jié)。一個(gè)字節(jié)存放指數(shù)部分, 三個(gè)三個(gè)字節(jié)存數(shù)值部分。字節(jié)存數(shù)值部分。5)float型數(shù)的表示范圍型數(shù)的表示范圍2、

14、實(shí)型數(shù)據(jù)實(shí)型數(shù)據(jù)-3203、字符型、字符型字符型常量:字符型常量: a 、b 字符型變量字符型變量: char ch;C語(yǔ)言采用語(yǔ)言采用ASCII碼字符集,即用碼字符集,即用1個(gè)個(gè)字節(jié)存放字節(jié)存放1個(gè)字符的個(gè)字符的ASCII碼值。碼值。字符型字符型使用關(guān)鍵字使用關(guān)鍵字char表示,表示,ASCII碼值的范圍為碼值的范圍為0255。211)在)在程序運(yùn)行中,其值保持不變程序運(yùn)行中,其值保持不變2)表示)表示方法:方法: 3)符號(hào))符號(hào)常量:常量: #define PI 3.14159又稱為宏定義又稱為宏定義,給給常量定義一個(gè)標(biāo)識(shí)符,稱宏名,大寫(xiě)。常量定義一個(gè)標(biāo)識(shí)符,稱宏名,大寫(xiě)。三、三、C語(yǔ)言的

15、常量和變量語(yǔ)言的常量和變量整型整型 100,125,-100實(shí)型實(shí)型 3.14 , 0.125字符型字符型 a, b字符字符串常量串常量 string1、常量、常量22宏定義應(yīng)用宏定義應(yīng)用舉例舉例/* 符號(hào)符號(hào)常量(宏定義)的常量(宏定義)的使用使用 */#include /定義符號(hào)常量定義符號(hào)常量PRICE,值為,值為30 #define PRICE 30void main() int num,total; num=10; total=num* PRICE; /使用符號(hào)常量使用符號(hào)常量 printf(total=%d,total);#include /定義符號(hào)常量定義符號(hào)常量PIPI,值,值

16、為為3.14159263.1415926#define PI 3.1415926void main() float r,s; r=2.3; s=PI*r*r; printf(%f,s);23 3. 變量通過(guò)變量通過(guò)變量名變量名來(lái)標(biāo)識(shí)。來(lái)標(biāo)識(shí)。 1. 在程序運(yùn)行中,值發(fā)生變化;在程序運(yùn)行中,值發(fā)生變化;2. 必須先定義,再使用;必須先定義,再使用;int a=3,b=10;類型類型 變量變量名表名表內(nèi)存內(nèi)存a3 變量名和內(nèi)存中的存儲(chǔ)單元變量名和內(nèi)存中的存儲(chǔ)單元相對(duì)應(yīng)。編寫(xiě)程序時(shí)通過(guò)變量名相對(duì)應(yīng)。編寫(xiě)程序時(shí)通過(guò)變量名來(lái)存、取存儲(chǔ)單元。來(lái)存、取存儲(chǔ)單元。2、變量、變量b1024 (1)以)以字母或下

17、劃線字母或下劃線開(kāi)頭開(kāi)頭,后面可以跟字母、下,后面可以跟字母、下劃線和數(shù)字劃線和數(shù)字(2)不能用不能用系統(tǒng)中的系統(tǒng)中的關(guān)鍵字關(guān)鍵字作為變量名作為變量名(3)變量名中的字母是)變量名中的字母是區(qū)分大小寫(xiě)區(qū)分大小寫(xiě)的:的: sum、stu_name、_age、Lts_1_2、a2 32c、x.y、start+9、c2.0 非法非法 NAME name 表示兩個(gè)不同的標(biāo)識(shí)符。表示兩個(gè)不同的標(biāo)識(shí)符。有關(guān)有關(guān)變量名的規(guī)定變量名的規(guī)定25變量定義格式變量定義格式存儲(chǔ)類型存儲(chǔ)類型 數(shù)據(jù)類型關(guān)鍵字?jǐn)?shù)據(jù)類型關(guān)鍵字 變量名標(biāo)識(shí)符變量名標(biāo)識(shí)符; 【例例】定義變量示例定義變量示例int a; unsigned lon

18、g sum; float r; char ch;int a, b, c=4; 26定義多個(gè)同類型變量方法定義多個(gè)同類型變量方法在同一個(gè)語(yǔ)句中可以定義兩個(gè)及兩個(gè)以上在同一個(gè)語(yǔ)句中可以定義兩個(gè)及兩個(gè)以上相同類型的變量。相同類型的變量。規(guī)定:變量名之間用規(guī)定:變量名之間用逗號(hào)逗號(hào)作為間隔符,第作為間隔符,第一個(gè)變量名與數(shù)據(jù)類型關(guān)鍵字之間用空格一個(gè)變量名與數(shù)據(jù)類型關(guān)鍵字之間用空格(空格的個(gè)數(shù)不限)作為間隔符。(空格的個(gè)數(shù)不限)作為間隔符。例如:例如:double x, y;271) 定義定義形式:形式:2)占)占存儲(chǔ)空間:存儲(chǔ)空間:1個(gè)個(gè)字節(jié)字節(jié)char 變量變量表;表;3)輸入輸出)輸入輸出形式:形

19、式: %c a a ASCIIASCII值為值為 97 97 內(nèi)存中存儲(chǔ)形式內(nèi)存中存儲(chǔ)形式0 1 1 0 0 0 0 14)字符型數(shù)據(jù)在內(nèi)存中以相應(yīng)的)字符型數(shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII值存儲(chǔ)值存儲(chǔ)3. 字符型變量字符型變量28 以以“”開(kāi)頭后跟一個(gè)特殊字符或數(shù)字稱為開(kāi)頭后跟一個(gè)特殊字符或數(shù)字稱為轉(zhuǎn)義字符。轉(zhuǎn)義字符。n 換行換行t 橫橫向跳向跳格格(制表符制表符)r 回回車車反反斜斜杠杠ddd ddd表示表示1到到3個(gè)個(gè)八進(jìn)制八進(jìn)制數(shù)字?jǐn)?shù)字xhhh hhh表示表示1到到3個(gè)個(gè)十六進(jìn)制十六進(jìn)制數(shù)字?jǐn)?shù)字printf(%d t %d t,a,b); printf(%d n%d n,a,b);若:若

20、:a為為1,b為為0, 則則4、轉(zhuǎn)義字符、轉(zhuǎn)義字符輸出輸出:101029轉(zhuǎn)義字符表示法轉(zhuǎn)義字符表示法30ddd 表示表示1到到3個(gè)個(gè)八進(jìn)制八進(jìn)制數(shù)字對(duì)應(yīng)數(shù)字對(duì)應(yīng)ASCII字符字符xhhh 表示表示1到到3個(gè)個(gè)十六進(jìn)制十六進(jìn)制數(shù)字對(duì)應(yīng)數(shù)字對(duì)應(yīng)ASCII字符字符10114160 x41x61x30printf(%c,%c,%cn,a,b,c); printf(%c,%c,%cn,x,y,z);若:若:a =101 ,b =141,c= 60;若:若:x =x41,y =x61,z=x30; 轉(zhuǎn)義字符舉例轉(zhuǎn)義字符舉例輸出輸出: A,a,0輸出輸出: A,a,0表示表示 A 八進(jìn)制八進(jìn)制101十進(jìn)制的

21、十進(jìn)制的65表示表示 a表示表示 0表示表示 A 十六進(jìn)制十六進(jìn)制41十進(jìn)制的十進(jìn)制的65表示表示 a表示表示 031分析程序看結(jié)果分析程序看結(jié)果【例例】轉(zhuǎn)義字符應(yīng)用舉例。轉(zhuǎn)義字符應(yīng)用舉例。/* 字符輸出與轉(zhuǎn)義字符應(yīng)用字符輸出與轉(zhuǎn)義字符應(yīng)用 */#include void main( ) printf(abct defrgthn); printf(it jkbbbl m); printf(Yb=n);1. 1. 運(yùn)算符運(yùn)算符運(yùn)算符運(yùn)算符 x = 5 + b * c 算術(shù)運(yùn)算符算術(shù)運(yùn)算符賦值運(yùn)算符賦值運(yùn)算符關(guān)系運(yùn)算符關(guān)系運(yùn)算符邏輯運(yùn)算符邏輯運(yùn)算符逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符條件運(yùn)算符條件運(yùn)算符 C 中運(yùn)

22、算符中運(yùn)算符四、四、C語(yǔ)言的運(yùn)算符語(yǔ)言的運(yùn)算符和和表達(dá)式表達(dá)式322、運(yùn)算符的優(yōu)先級(jí)順序、運(yùn)算符的優(yōu)先級(jí)順序33優(yōu)先級(jí)高優(yōu)先級(jí)高優(yōu)先級(jí)低優(yōu)先級(jí)低34* 優(yōu)先級(jí):運(yùn)算符優(yōu)先級(jí):運(yùn)算符的執(zhí)行順序的執(zhí)行順序 * 結(jié)合性:優(yōu)先級(jí)結(jié)合性:優(yōu)先級(jí)相同時(shí)的結(jié)合方向相同時(shí)的結(jié)合方向u 一元運(yùn)算符一元運(yùn)算符的優(yōu)先級(jí)的優(yōu)先級(jí)高于二元運(yùn)算符,二高于二元運(yùn)算符,二元運(yùn)算符的優(yōu)先級(jí)高于三元運(yùn)算符;元運(yùn)算符的優(yōu)先級(jí)高于三元運(yùn)算符;u 算術(shù)運(yùn)算符的優(yōu)先級(jí)高于關(guān)系運(yùn)算符,關(guān)算術(shù)運(yùn)算符的優(yōu)先級(jí)高于關(guān)系運(yùn)算符,關(guān)系運(yùn)算符的優(yōu)先級(jí)高于邏輯運(yùn)算符系運(yùn)算符的優(yōu)先級(jí)高于邏輯運(yùn)算符u 一元運(yùn)算符一元運(yùn)算符從右向左結(jié)合(右結(jié)合)從右向左結(jié)合

23、(右結(jié)合)u 多數(shù)二元運(yùn)算符多數(shù)二元運(yùn)算符從左向右結(jié)合(左結(jié)合)從左向右結(jié)合(左結(jié)合)運(yùn)算符的優(yōu)先級(jí)與結(jié)合性運(yùn)算符的優(yōu)先級(jí)與結(jié)合性353、表達(dá)式、表達(dá)式書(shū)寫(xiě)方法書(shū)寫(xiě)方法必須在一行內(nèi)書(shū)寫(xiě),沒(méi)有上(下)角標(biāo)。必須在一行內(nèi)書(shū)寫(xiě),沒(méi)有上(下)角標(biāo)。為保證運(yùn)算次序,必要時(shí)可以加小括號(hào)進(jìn)行為保證運(yùn)算次序,必要時(shí)可以加小括號(hào)進(jìn)行限定,并且只能用小括號(hào)。限定,并且只能用小括號(hào)。不能出現(xiàn)不能出現(xiàn)C語(yǔ)言中不允許的字符,如語(yǔ)言中不允許的字符,如、等。等。361)算數(shù)算數(shù)表達(dá)式表達(dá)式 用算術(shù)運(yùn)算符和小括號(hào)將運(yùn)算量連接起來(lái)的、符用算術(shù)運(yùn)算符和小括號(hào)將運(yùn)算量連接起來(lái)的、符合合C語(yǔ)言語(yǔ)法規(guī)則的式子,稱為語(yǔ)言語(yǔ)法規(guī)則的式子,

24、稱為C語(yǔ)言的算術(shù)表語(yǔ)言的算術(shù)表達(dá)式。達(dá)式。 舉例:舉例: 4+8 A 1 8/5 5.5*4 5%2 ( b+sqrt(b*b 4*a*c)/(2*a) 5.6%2 (不正確)(不正確)371 1)將一個(gè)常量或一個(gè)表達(dá)式的值賦給一個(gè)變量稱為)將一個(gè)常量或一個(gè)表達(dá)式的值賦給一個(gè)變量稱為賦值,含有賦值運(yùn)算符的表達(dá)式稱為賦值表達(dá)式賦值,含有賦值運(yùn)算符的表達(dá)式稱為賦值表達(dá)式 。x = 5 y = x + 10 2)可以將一個(gè)實(shí)型賦給一個(gè)整型,或?qū)⒁粋€(gè)整型)可以將一個(gè)實(shí)型賦給一個(gè)整型,或?qū)⒁粋€(gè)整型賦給一個(gè)實(shí)型賦給一個(gè)實(shí)型int x; x=5.3; x的值為的值為 5float y; y=5; y的的值為

25、值為 5.0000003)賦值運(yùn)算的優(yōu)先級(jí))賦值運(yùn)算的優(yōu)先級(jí)比算術(shù)運(yùn)算低比算術(shù)運(yùn)算低4)賦值運(yùn)算的結(jié)合性)賦值運(yùn)算的結(jié)合性從右向左從右向左x = y = 52)賦值運(yùn)算符與賦值表達(dá)式賦值運(yùn)算符與賦值表達(dá)式38關(guān)于賦值表達(dá)式的幾點(diǎn)說(shuō)明:關(guān)于賦值表達(dá)式的幾點(diǎn)說(shuō)明:賦值號(hào)賦值號(hào)“=”的左邊必須是一個(gè)變量名(一般稱為左值),的左邊必須是一個(gè)變量名(一般稱為左值),賦值號(hào)的右邊必須是賦值號(hào)的右邊必須是C語(yǔ)言中合法的表達(dá)式。語(yǔ)言中合法的表達(dá)式。賦值運(yùn)算符的優(yōu)先級(jí)只比逗號(hào)運(yùn)算符高,比其他所有運(yùn)賦值運(yùn)算符的優(yōu)先級(jí)只比逗號(hào)運(yùn)算符高,比其他所有運(yùn)算符優(yōu)先級(jí)別都低(算符優(yōu)先級(jí)別都低(14級(jí))。賦值運(yùn)算符具有右結(jié)合性

26、。級(jí))。賦值運(yùn)算符具有右結(jié)合性。賦值運(yùn)算的功能是先求出右邊表達(dá)式的值,然后把此值賦值運(yùn)算的功能是先求出右邊表達(dá)式的值,然后把此值賦給左邊的變量賦給左邊的變量。確切地講,就是把數(shù)據(jù)(表達(dá)式計(jì)算。確切地講,就是把數(shù)據(jù)(表達(dá)式計(jì)算結(jié)果)放入該變量的存儲(chǔ)單元中去。結(jié)果)放入該變量的存儲(chǔ)單元中去。賦值表達(dá)式的值就是被賦值的變量的值。賦值表達(dá)式的值就是被賦值的變量的值。在定義變量時(shí)不允許連續(xù)賦值。例如,在定義變量時(shí)不允許連續(xù)賦值。例如,int a=b=c=5; 是是不合法的。不合法的。如果賦值運(yùn)算符兩邊的數(shù)據(jù)類型不相同,系統(tǒng)將自動(dòng)進(jìn)如果賦值運(yùn)算符兩邊的數(shù)據(jù)類型不相同,系統(tǒng)將自動(dòng)進(jìn)行類型轉(zhuǎn)換,即把賦值號(hào)右邊

27、的類型轉(zhuǎn)換成左邊的類型。行類型轉(zhuǎn)換,即把賦值號(hào)右邊的類型轉(zhuǎn)換成左邊的類型。 39賦值表達(dá)式應(yīng)用舉例賦值表達(dá)式應(yīng)用舉例【例例】 分析下列程序。分析下列程序。/* 賦值時(shí)類型轉(zhuǎn)換示例賦值時(shí)類型轉(zhuǎn)換示例 */#include void main() int a,b=322; float x,y=8.88; char c1=a,c2; a=y; x=b; a=c1; c2=b; printf(%d,%f,%d,%c,a,x,a,c2);40a+=5 a=a+5賦值運(yùn)算符兩側(cè)出現(xiàn)賦值運(yùn)算符兩側(cè)出現(xiàn)相同的變量相同的變量 算術(shù)運(yùn)算與賦值算術(shù)運(yùn)算與賦值運(yùn)算相結(jié)合運(yùn)算相結(jié)合3)復(fù)合)復(fù)合賦值運(yùn)算符和賦值表達(dá)式賦

28、值運(yùn)算符和賦值表達(dá)式格式:變量格式:變量 雙目雙目操作符操作符= 表達(dá)式表達(dá)式;二元操作符二元操作符:+、-、*、/、%、0?打印打印a的值的值選擇結(jié)構(gòu)選擇結(jié)構(gòu)YNX=100?x=1 sum=0語(yǔ)句語(yǔ)句條件條件循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)56一般一般每個(gè)程序都要用到數(shù)據(jù)的輸入輸出。每個(gè)程序都要用到數(shù)據(jù)的輸入輸出。數(shù)據(jù)輸入:通過(guò)外設(shè)將數(shù)據(jù)輸入內(nèi)存。數(shù)據(jù)輸入:通過(guò)外設(shè)將數(shù)據(jù)輸入內(nèi)存。數(shù)據(jù)輸出:將內(nèi)存的數(shù)據(jù)通過(guò)外設(shè)輸出數(shù)據(jù)輸出:將內(nèi)存的數(shù)據(jù)通過(guò)外設(shè)輸出。 C語(yǔ)言的輸入輸出語(yǔ)言的輸入輸出通過(guò)通過(guò)調(diào)用系統(tǒng)函數(shù)調(diào)用系統(tǒng)函數(shù)實(shí)現(xiàn),這些實(shí)現(xiàn),這些輸入輸出函數(shù)一般存于輸入輸出函數(shù)一般存于stdio.h庫(kù)庫(kù)文件。使用輸入輸文

29、件。使用輸入輸出函數(shù)要用預(yù)譯命令指出連接的庫(kù)文件,程序編譯出函數(shù)要用預(yù)譯命令指出連接的庫(kù)文件,程序編譯連接時(shí)將其與用戶程序相連。連接時(shí)將其與用戶程序相連。如:如: #include 或或#include stdio.h 1、輸入輸出的含義、輸入輸出的含義572、格式輸入輸出、格式輸入輸出函數(shù)函數(shù)【例例】輸入一個(gè)整數(shù)半徑,以單精度數(shù)形式輸出圓的輸入一個(gè)整數(shù)半徑,以單精度數(shù)形式輸出圓的面積。面積。 #include int main() int r; float s=0; printf(請(qǐng)輸入圓的半徑:請(qǐng)輸入圓的半徑:); scanf(%d,&r); s=3.1415926*r*r; pr

30、intf(圓的面積是:圓的面積是:%fn, s); return 0;58格式:格式:printf(格式控制串格式控制串,輸出表,輸出表)功能:按指定格式向顯示器輸出數(shù)據(jù)功能:按指定格式向顯示器輸出數(shù)據(jù)返值:正常,返回輸出字節(jié)數(shù);出錯(cuò),返回返值:正常,返回輸出字節(jié)數(shù);出錯(cuò),返回EOF(-1)輸出表:要輸出的數(shù)據(jù)(可以沒(méi)有,多個(gè)時(shí)以輸出表:要輸出的數(shù)據(jù)(可以沒(méi)有,多個(gè)時(shí)以“,”分分隔)隔)格式控制串:包含兩種信息格式控制串:包含兩種信息格式說(shuō)明:格式說(shuō)明:%修飾符修飾符格式字符格式字符 ,用于指定輸出格式,用于指定輸出格式普通字符或轉(zhuǎn)義序列:原樣輸出普通字符或轉(zhuǎn)義序列:原樣輸出3、格式輸出函數(shù)、

31、格式輸出函數(shù)-159d d,i,ix,Xx,Xo ou uc cs se,Ee,Ef fg,Gg,G%十六進(jìn)制無(wú)符號(hào)整數(shù)十六進(jìn)制無(wú)符號(hào)整數(shù)不帶符號(hào)十進(jìn)制整數(shù)不帶符號(hào)十進(jìn)制整數(shù) 帶符號(hào)帶符號(hào)十進(jìn)制整數(shù)十進(jìn)制整數(shù)指數(shù)形式浮點(diǎn)小數(shù)指數(shù)形式浮點(diǎn)小數(shù)單一字符單一字符字符串字符串八進(jìn)制無(wú)符號(hào)整數(shù)八進(jìn)制無(wú)符號(hào)整數(shù)小數(shù)形式浮點(diǎn)小數(shù)小數(shù)形式浮點(diǎn)小數(shù)e e和和f f中較短一種中較短一種百分號(hào)本身百分號(hào)本身int a=567;printf (“%d”,a);int a=255;printf(“%x”,a);int a=65;printf(“%o”,a);int a=567;printf(“%u”,a);char a

32、=65;printf(“%c”,a);printf(“%s”,“ABC”);float a=567.789;printf(“%e”,a);float a=567.789;printf(“%f”,a);float a=567.789;printf(“%g”,a);printf(“%”);567ff101567AABC5.677890e+002567.789000567.789%3、格式輸出函數(shù)、格式輸出函數(shù)-2說(shuō)明說(shuō)明: :p 除除X X、E E、G G外,格式字符要用小寫(xiě)外,格式字符要用小寫(xiě)p 格式字符與輸出項(xiàng)個(gè)數(shù)應(yīng)相同,按先后順序一一對(duì)應(yīng)格式字符與輸出項(xiàng)個(gè)數(shù)應(yīng)相同,按先后順序一一對(duì)應(yīng), ,否

33、則否則, ,若格式字符少若格式字符少, ,按其個(gè)數(shù)自左向按其個(gè)數(shù)自左向右輸出值右輸出值, ,若格式字符多若格式字符多, ,多出的將輸出不確定值多出的將輸出不確定值. .p 輸出轉(zhuǎn)換輸出轉(zhuǎn)換: :格式字符與輸出項(xiàng)類型不一致格式字符與輸出項(xiàng)類型不一致, ,自動(dòng)按指定格式輸出自動(dòng)按指定格式輸出, ,但但intint與與floatfloat不能互用不能互用 。60附加格式說(shuō)明符附加格式說(shuō)明符(修飾符修飾符).n對(duì)實(shí)數(shù)對(duì)實(shí)數(shù),指定小數(shù)點(diǎn)后位數(shù)指定小數(shù)點(diǎn)后位數(shù)(四舍五入四舍五入)對(duì)字符串對(duì)字符串,指定實(shí)際輸出位數(shù)指定實(shí)際輸出位數(shù)(從左截取從左截取)修飾符修飾符功功 能能m輸出數(shù)據(jù)域?qū)捿敵鰯?shù)據(jù)域?qū)?數(shù)據(jù)長(zhǎng)度

34、數(shù)據(jù)長(zhǎng)度m,左補(bǔ)空格左補(bǔ)空格;否則按實(shí)際輸出否則按實(shí)際輸出輸出數(shù)據(jù)在域內(nèi)輸出數(shù)據(jù)在域內(nèi)左對(duì)齊(缺省左對(duì)齊(缺省右對(duì)齊右對(duì)齊) )-指定在有符號(hào)數(shù)指定在有符號(hào)數(shù)的正數(shù)前顯示正號(hào)的正數(shù)前顯示正號(hào)(+)(+)+輸出數(shù)值時(shí)指定左面不使用的空位置自動(dòng)填輸出數(shù)值時(shí)指定左面不使用的空位置自動(dòng)填0 00在八進(jìn)制和十六進(jìn)制數(shù)前顯示前導(dǎo)在八進(jìn)制和十六進(jìn)制數(shù)前顯示前導(dǎo)0 0,0 0 x x#在在d,i,o,x,ud,i,o,x,u前,指定輸出精度為前,指定輸出精度為longlong在在e,f,ge,f,g前,指定輸出精度為前,指定輸出精度為long doublelong doublel614、格式輸入函數(shù)格式輸入函

35、數(shù)-1格式格式: scanf(格式控制格式控制參數(shù)參數(shù),地址表),地址表)功能:按指定格式從鍵盤(pán)讀入數(shù)據(jù),存入地址表指定功能:按指定格式從鍵盤(pán)讀入數(shù)據(jù),存入地址表指定的存儲(chǔ)單元中的存儲(chǔ)單元中,并按回車鍵結(jié)束并按回車鍵結(jié)束返返回回值:正常,返回輸入數(shù)據(jù)個(gè)數(shù)值:正常,返回輸入數(shù)據(jù)個(gè)數(shù)p地址表:變量的地址,常用取地址運(yùn)算符地址表:變量的地址,常用取地址運(yùn)算符&p格式字符格式字符:d,i,o,x,u,c,s,f,e例例 scanf(%d,&a);p 輸入:輸入:10 p 則則 a=10例例 scanf(%x,&a);p 輸入:輸入:11 p 則則 a=17624、格式格式輸入輸

36、入函數(shù)函數(shù)-2d, i輸入有符號(hào)的十進(jìn)制數(shù)輸入有符號(hào)的十進(jìn)制數(shù)u輸入無(wú)符號(hào)的十進(jìn)制數(shù)輸入無(wú)符號(hào)的十進(jìn)制數(shù)o輸入無(wú)符號(hào)的八進(jìn)制數(shù)輸入無(wú)符號(hào)的八進(jìn)制數(shù)x,X輸入無(wú)符號(hào)的十六進(jìn)制數(shù)輸入無(wú)符號(hào)的十六進(jìn)制數(shù)c輸入單個(gè)字符,空格、回車、制表符等也作為有效字輸入單個(gè)字符,空格、回車、制表符等也作為有效字符輸入符輸入s輸入字符串,以非空白字符開(kāi)始,遇到第一個(gè)空白字輸入字符串,以非空白字符開(kāi)始,遇到第一個(gè)空白字符(包括空格、回車、制表符)時(shí)結(jié)束符(包括空格、回車、制表符)時(shí)結(jié)束f輸入實(shí)數(shù),小數(shù)、指數(shù)形式均可輸入實(shí)數(shù),小數(shù)、指數(shù)形式均可E,e,g,G與與f作用相同作用相同63附加格式附加格式說(shuō)明符說(shuō)明符(修飾符修

37、飾符)l修飾符修飾符功功 能能hm*用于用于d,o,xd,o,x前,指定輸入為前,指定輸入為shortshort型整數(shù)型整數(shù)用于用于d,o,xd,o,x前,指定輸入為前,指定輸入為longlong型整數(shù)型整數(shù)用于用于e,fe,f前,指定輸入為前,指定輸入為long doublelong double型實(shí)數(shù)型實(shí)數(shù)指定輸入數(shù)據(jù)寬度,遇空格或不可轉(zhuǎn)換字符則結(jié)束指定輸入數(shù)據(jù)寬度,遇空格或不可轉(zhuǎn)換字符則結(jié)束抑制符,指定輸入項(xiàng)讀入后不賦給變量抑制符,指定輸入項(xiàng)讀入后不賦給變量例例 scanf(“%4d%2d%2d”,&yy,&mm,&dd); 輸入輸入 19991015 則則199

38、9yy, 10 mm, 15 dd例例 scanf(“%3d%*4d%f”,&k,&f); 輸入輸入 12345678765.43 則則123k, 8765.43f例例 scanf(“%2d %*3d %2d”,&a,&b); 輸入輸入 12 345 67 則則12a, 67b例例 scanf(“%3c%2c”,&c1,&c2); 輸入輸入 abcde 則則ac1, d c264一般一般以空格、以空格、TAB或回車鍵作為分隔符或回車鍵作為分隔符其它字符做分隔符:格式串中兩個(gè)格式符間字符其它字符做分隔符:格式串中兩個(gè)格式符間字符例例 scanf(%

39、d%o%x,&a,&b,&c); printf(a=%d,b=%d,c=%dn,a,b,c); 輸入輸入 123 123 123 輸出輸出 a=123,b=83,c=291例例 scanf(a=%d,b=%d,c=%d, &a, &b, &c); 輸入輸入 a=12,b=24,c=36 輸入分隔符的指定輸入分隔符的指定-1例例 scanf(%d:%d:%d, &h, &m, &s); 輸入輸入 12:30:45 則則12 h, 30 m, 45 s例例 scanf(%d,%d, &a, &b) 輸入輸入 3

40、,4 則則3a, 4 b65 說(shuō)明:說(shuō)明: 用用“%c”格式符時(shí),空格和轉(zhuǎn)義字符作為有格式符時(shí),空格和轉(zhuǎn)義字符作為有效字符輸入效字符輸入p輸入數(shù)據(jù)時(shí),遇以下情況認(rèn)為該數(shù)據(jù)結(jié)束:輸入數(shù)據(jù)時(shí),遇以下情況認(rèn)為該數(shù)據(jù)結(jié)束: 遇空格、遇空格、TAB、或回車或回車 遇寬度結(jié)束遇寬度結(jié)束 遇非法遇非法輸入輸入p輸入函數(shù)留下的輸入函數(shù)留下的“垃圾垃圾”:解決方法:解決方法:(1) 用用getchar()清除清除(2) 用用函數(shù)函數(shù)fflush(stdin)清除全部剩余內(nèi)容清除全部剩余內(nèi)容(3) 用格式串中空格或用格式串中空格或“%*c”來(lái)來(lái)“吃掉吃掉”(4) 用用%1s代替代替%c,因?yàn)樗耆雎钥崭窈突剀嚪?/p>

41、,因?yàn)樗耆雎钥崭窈突剀嚪斎敕指舴闹付ㄝ斎敕指舴闹付?2例例 int x; char ch; scanf(%d, &x); scanf(%c, &ch);或或 scanf(%*c%c, &ch); scanf(%1s, &ch);例例 int x; char ch; scanf(%d, &x); ch=getchar(); printf(x=%d,ch=%dn, x, ch);執(zhí)行:執(zhí)行:123 輸出:輸出:x=123,ch=10例例 int x; char ch; scanf(%d,&x); scanf(%c,&ch); pri

42、ntf(x=%d,ch=%dn, x, ch);執(zhí)行:執(zhí)行:123 輸出:輸出:x=123,ch=1066例:例: scanf(%c%c%c, &c1, &c2, &c3); 若若輸入輸入a b c 則則ac1, c2, b c3例例: scanf(%d%c%f,&a,&b,&c); 若若輸入輸入1234a123o.26 則則 1234 a, a b, 123 c輸入分隔符的示例輸入分隔符的示例67格式:格式:getchar( )功能功能:從從鍵盤(pán)讀一字符鍵盤(pán)讀一字符返返值值:正常正常,返回返回讀取的代碼值讀取的代碼值;出錯(cuò)出錯(cuò),返回返回EOF(

43、-1)getchar函數(shù)函數(shù)注意:注意:n getchar( )函數(shù)沒(méi)有參數(shù),本身不能提供用于存放字符的變函數(shù)沒(méi)有參數(shù),本身不能提供用于存放字符的變量,因此一般使用形式為:變量量,因此一般使用形式為:變量=getchar()n 利用利用getchar( )讀入字符時(shí),不是讀入一個(gè)字符后立刻響應(yīng)讀入字符時(shí),不是讀入一個(gè)字符后立刻響應(yīng),而是先讀入緩沖區(qū),待回車后再一并執(zhí)行,而是先讀入緩沖區(qū),待回車后再一并執(zhí)行。通常。通常用前置用前置printf( )函數(shù)加入提示信息函數(shù)加入提示信息。n getchar()從鍵盤(pán)緩沖區(qū)中自左向右順序讀取數(shù)據(jù)的(這被從鍵盤(pán)緩沖區(qū)中自左向右順序讀取數(shù)據(jù)的(這被稱為數(shù)據(jù)流)。稱為數(shù)據(jù)流)。5、字符輸入字符輸入函數(shù)函數(shù)68#include int main() char ch1,ch2,ch3; ch1=getchar( ); /從鍵盤(pán)輸入一個(gè)字符并存到從鍵盤(pán)輸入一個(gè)字符并存到ch1中中 getchar( ); /消除回車符的影響,

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論