第二章語法成分、數(shù)據(jù)類型、表達式和基本語句PPT課件_第1頁
第二章語法成分、數(shù)據(jù)類型、表達式和基本語句PPT課件_第2頁
第二章語法成分、數(shù)據(jù)類型、表達式和基本語句PPT課件_第3頁
第二章語法成分、數(shù)據(jù)類型、表達式和基本語句PPT課件_第4頁
第二章語法成分、數(shù)據(jù)類型、表達式和基本語句PPT課件_第5頁
已閱讀5頁,還剩63頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2021-12-201 Program Design in C LanguagePage C C語言的字符集和保留字語言的字符集和保留字 C C語言數(shù)據(jù)類型語言數(shù)據(jù)類型 常量、變量和標準函數(shù)常量、變量和標準函數(shù) 表達式表達式 基本語句基本語句第二講第二講第二章第二章 語法成分、數(shù)據(jù)類型、表達式和基本語句語法成分、數(shù)據(jù)類型、表達式和基本語句2021-12-202 Program Design in C LanguagePage語言層次語言層次1.字符集字符集2.單詞單詞3.語句語句4.函數(shù)函數(shù)5.文件文件6.工程工程2021-12-203 Program Design in C Language

2、Page21 C語言的字符集和保留字語言的字符集和保留字2.1.1 C語言的字符集語言的字符集C 語言源程序中出現(xiàn)的字符來自語言源程序中出現(xiàn)的字符來自C語言的字符集。語言的字符集。C C語語言言字字符符集集5252個英文字母個英文字母 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z1010個數(shù)字個數(shù)字 0 1 2 3 4 5 6 7 8 9空白符空白符 空格符、制表符、回車符空格符、制表符、回車符特殊符特殊符 ! # % & *

3、 ( _ ) - + = | ; : , . / ?2021-12-204 Program Design in C LanguagePage21 C語言的字符集和保留字語言的字符集和保留字六類單詞:六類單詞:標識符標識符 保留字保留字 運算符運算符分隔符分隔符 常量常量 注釋符注釋符2.1.3 C語言的詞法約定語言的詞法約定 在在C程序中,單詞是構(gòu)成語句的基本要素,在句法結(jié)構(gòu)中有其特定的程序中,單詞是構(gòu)成語句的基本要素,在句法結(jié)構(gòu)中有其特定的含義和作用。含義和作用。 1.1.標識符標識符用以標識變量、數(shù)組、函數(shù)、文件和各種對象名稱的符號。用以標識變量、數(shù)組、函數(shù)、文件和各種對象名稱的符號。命名

4、規(guī)則:命名規(guī)則:首字符必須是字母或下劃線;首字符必須是字母或下劃線;后續(xù)字符可以是字母、數(shù)字或下畫線;后續(xù)字符可以是字母、數(shù)字或下畫線;有效長度為有效長度為132個字符。個字符。說明:說明: 標識符區(qū)分大小寫字母。標識符區(qū)分大小寫字母。 不能和保留字和函數(shù)名同名。不能和保留字和函數(shù)名同名。countcount,student_namestudent_name,sumsum,test13test13,_number_number,Sum Sum M.JohnM.John,$123$123,hi!hi!,12xyz12xyz2021-12-205 Program Design in C Langu

5、agePage2.2.保留字保留字(關(guān)鍵字)關(guān)鍵字) 語言中具有特定含義的詞。語言中具有特定含義的詞。 (共(共3232個,見附錄個,見附錄)21 C語言的字符集和保留字語言的字符集和保留字5 5常量常量 在程序執(zhí)行期間其值固定不變的量。在程序執(zhí)行期間其值固定不變的量。 有數(shù)字、字符、字符串、符號、轉(zhuǎn)義有數(shù)字、字符、字符串、符號、轉(zhuǎn)義字符常量等(見字符常量等(見2.3.1)。)。3.3.運算符運算符 用于實現(xiàn)各種運算功能的符號。用于實現(xiàn)各種運算功能的符號。 C C語言運算符豐富,分六類語言運算符豐富,分六類4444種。種。 (見附錄(見附錄)4 4分隔符分隔符 兩種分隔符:兩種分隔符:逗號和空

6、格逗號和空格。 逗號用于分隔變量或參數(shù),空格逗號用于分隔變量或參數(shù),空格用于分隔單詞用于分隔單詞( (在保留字和標識符之間在保留字和標識符之間必須用空格分隔必須用空格分隔) )。 如:如: int a,b,c; max(x,y,z) int a;6 6注釋符注釋符 程序中用程序中用“/ /* *”和和“* */ /”括起來的字括起來的字符串。符串。 如:如: void main() /* 定義主函數(shù)。定義主函數(shù)。*/ gets(str); /*讀入字符串讀入字符串str*/2021-12-206 Program Design in C LanguagePage21 C語言的字符集和保留字語言的

7、字符集和保留字2.1.2 C語言的保留字語言的保留字語言中預(yù)定的具有特定含義的詞語言中預(yù)定的具有特定含義的詞保留字保留字關(guān)鍵字關(guān)鍵字。 分四類:分四類:1類型說明保留字類型說明保留字int、long、short、float、double、char、unsigned、signed、const、void、volatile、enum 、struct、union2語句定義保留字語句定義保留字if 、else、 goto、 switch、 case、 do、 while、 for、 continue、 break、 return、 default、typedef3存儲類別說明保留字存儲類別說明保留字au

8、to、register、extern、static4長度運算符保留字長度運算符保留字sizeof2021-12-207 Program Design in C LanguagePage22 數(shù)據(jù)類型數(shù)據(jù)類型2.2.1 C語言的數(shù)據(jù)類型語言的數(shù)據(jù)類型基本類型基本類型構(gòu)造類型構(gòu)造類型指針類型指針類型空類型空類型自定義自定義是C語言數(shù)據(jù)類型的基本型,其值不可再分解為其他類型。一種由單種或多種數(shù)據(jù)類型構(gòu)造而成的數(shù)據(jù)類型。數(shù)組結(jié)構(gòu)共用體一種特殊的數(shù)據(jù)類型,其值為某個量的內(nèi)存地址。一種無返回值函數(shù)的數(shù)據(jù)類型。void用新的類型名替代已有類型名使用。用typedef定義2.2.2 C語言的基本數(shù)據(jù)類型語言的

9、基本數(shù)據(jù)類型 整型:(整型:(包括有、無符號的基本整型、短整型、長整型)包括有、無符號的基本整型、短整型、長整型) int,short,long,unsigned,unsigned short,unsigned long 實型:實型:(包括(包括單精度實型、雙精度實型)單精度實型、雙精度實型) float,double 字符型:字符型:用于表示和存儲用于表示和存儲ASCII字符。字符。 char 枚舉型:枚舉型:用于表示和存儲枚舉元素的值。用于表示和存儲枚舉元素的值。 enum2021-12-208 Program Design in C LanguagePage轉(zhuǎn)換方式:轉(zhuǎn)換方式:自動類型轉(zhuǎn)

10、換自動類型轉(zhuǎn)換強行類型轉(zhuǎn)換強行類型轉(zhuǎn)換22 數(shù)據(jù)類型數(shù)據(jù)類型2.2.3 不同數(shù)據(jù)類型間的轉(zhuǎn)換與運算不同數(shù)據(jù)類型間的轉(zhuǎn)換與運算在在C C程序中,當不同類型的量進行運算時,要轉(zhuǎn)換成同一種類型然程序中,當不同類型的量進行運算時,要轉(zhuǎn)換成同一種類型然后再進行運算。后再進行運算。floatdoublelongunsigned intcharshort低低高高例:例: 15+2.5* A 7.0 / 2 自動類型轉(zhuǎn)換自動類型轉(zhuǎn)換將低級類型自動轉(zhuǎn)換成高級類型,然后再按同將低級類型自動轉(zhuǎn)換成高級類型,然后再按同類型量進行運算。類型量進行運算。2021-12-209 Program Design in C La

11、nguagePage22 數(shù)據(jù)類型數(shù)據(jù)類型 強制類型轉(zhuǎn)換強制類型轉(zhuǎn)換將一個表達式的值轉(zhuǎn)換成所需要的類型。將一個表達式的值轉(zhuǎn)換成所需要的類型。例:例: (double)i (int)(f1+f2) (float)(14/4) 強制或自動轉(zhuǎn)換都是一種臨時性轉(zhuǎn)換,并未改變變量的原類型。強制或自動轉(zhuǎn)換都是一種臨時性轉(zhuǎn)換,并未改變變量的原類型。例:例:#includevoid main()int x=8; float f=6.85; printf(float)x=%f,x=%dn,(float)x,x); printf(int)f=%d,f=%fn,(int)f,f);一般形式:一般形式: (類型說明符

12、類型說明符)(表達式表達式)(float)x=8.000000, x=8(int)f=6, f=6.850000X,f的類型的類型并未改變并未改變2021-12-2010 Program Design in C LanguagePage23 常量、變量和標準函數(shù)常量、變量和標準函數(shù)2.3.1 常量常量 在程序運行期間,其值不能在程序運行期間,其值不能被改變的量被改變的量常量常量。C語言有以下幾種常量:語言有以下幾種常量: 整型常量整型常量 浮點型常量浮點型常量 字符型常量字符型常量 字符串常量字符串常量 符號常量符號常量1. 1. 整型常量整型常量整型常量就是整數(shù)。整型常量就是整數(shù)。十進制整數(shù)

13、十進制整數(shù) 12,65,0,-456,65535 有幾種表示形式:有幾種表示形式:無符號整數(shù)(無符號整數(shù)(后綴加后綴加“U”或或“u”) 15Lu,017u,0 xFu長整型整數(shù)長整型整數(shù)(后綴加后綴加“L”或或“l(fā)”) 12L,65536L;014L,020L; 0XCL,0X10000L十六進制整數(shù)十六進制整數(shù) 0 xC,0 x41,0 xFFFF八進制整數(shù)八進制整數(shù) 0123,0101,01777772021-12-2011 Program Design in C LanguagePage23 常量、變量和標準函數(shù)常量、變量和標準函數(shù)2. 2. 實型常量實型常量實型常量就是實數(shù)(實型常量

14、就是實數(shù)(浮點數(shù)浮點數(shù))。)。兩種表示形式:兩種表示形式:1 1十進制小數(shù)形式十進制小數(shù)形式 如:如:4.58, 0.025, .123, 0.0, -234.0,2 2指數(shù)形式指數(shù)形式 格式:格式:m.nE|es ( 表示表示m.n )s10如:如:1.2E+5 (等于(等于1.21.2105=120000105=120000)3.4E-5 (等于(等于3.43.410-5=0.00003410-5=0.000034).123e3或或.123e+3 (等于(等于0.1230.123103=123103=123)E+5, 4.56E ( (錯誤錯誤) )2021-12-2012 Program

15、 Design in C LanguagePage3.3.字符常量字符常量用單引號括起來的單個字符用單引號括起來的單個字符字符常量。字符常量。如:如: a , A, =, +, 5轉(zhuǎn)義字符轉(zhuǎn)義字符可表示控制字符。可表示控制字符。以反斜線以反斜線“ ”開頭的字符序列。開頭的字符序列。轉(zhuǎn)義字符轉(zhuǎn)義字符控制字符控制字符ASCII值值功能功能nLF010換行換行tHT009水平制表位水平制表位bBS008退格退格rCR 013回車回車dddddd:3位八進制數(shù)位八進制數(shù)任意任意ASCII字符字符xhhhh:2位十六進制數(shù)位十六進制數(shù)任意任意ASCII字符字符常用的轉(zhuǎn)義字符,見表常用的轉(zhuǎn)義字符,見表2.

16、22.223 常量、變量和標準函數(shù)常量、變量和標準函數(shù)2021-12-2013 Program Design in C LanguagePage23 常量、變量和標準函數(shù)常量、變量和標準函數(shù)#includevoid main()printf(atbncbd100 x40n);例:轉(zhuǎn)義字符使用。例:轉(zhuǎn)義字符使用。abd4.4.字符串常量字符串常量用雙引號括起來的字符序列。用雙引號括起來的字符序列。如:如:“C Programming”, “$12.5”, “CHINA” 字符常量占一個字節(jié),字符串常量占的字節(jié)數(shù)等于字符個數(shù)加字符常量占一個字節(jié),字符串常量占的字節(jié)數(shù)等于字符個數(shù)加1 1。xx占一個

17、字節(jié)占一個字節(jié)“x”x占兩個字節(jié)占兩個字節(jié)02021-12-2014 Program Design in C LanguagePage5. 5. 符號常量符號常量用指定的標識符代替一個常量。用指定的標識符代替一個常量。例:求半徑為例:求半徑為r r的圓面積和圓周長。的圓面積和圓周長。#include#define PI 3.1415926void main() float r,area,circum; scanf(%f,&r); area=PI*r*r; circum=2*PI*r; printf(%f %f,area,circum);定義格式:定義格式: #define 標識符標識符

18、 字符串字符串23 常量、變量和標準函數(shù)常量、變量和標準函數(shù)areararea =r2circum=2r22021-12-2015 Program Design in C LanguagePage23 常量、變量和標準函數(shù)常量、變量和標準函數(shù)2.3.2 變量變量在程序運行過程中,其值可以改變的量。在程序運行過程中,其值可以改變的量。變量在使用之前要先說明(聲明)。變量在使用之前要先說明(聲明)。例:例:int sum;int x,y;float volt;char degree;變量與內(nèi)存變量與內(nèi)存每一個變量有名字,類型,值,位置和大小。每一個變量有名字,類型,值,位置和大小。當一個新的值賦予

19、變量時,新值替換原值。當一個新的值賦予變量時,新值替換原值。從內(nèi)存中讀取變量的值,其值不會改變。從內(nèi)存中讀取變量的值,其值不會改變。int x = 23;FF022BytesRAM23x = 90;90printf(“%d”, x);902021-12-2016 Program Design in C LanguagePage23 常量、變量和標準函數(shù)常量、變量和標準函數(shù)用來存放整型數(shù)據(jù)的變量。用來存放整型數(shù)據(jù)的變量。1. 1. 整型變量整型變量整型變量的分類表整型變量的分類表與操作系統(tǒng)、編譯系統(tǒng)、與操作系統(tǒng)、編譯系統(tǒng)、機器有關(guān)機器有關(guān) 在定義整型變量時,要注意數(shù)據(jù)類型允許的數(shù)值范圍。在定義整

20、型變量時,要注意數(shù)據(jù)類型允許的數(shù)值范圍。類型名稱類型名稱類型說明符類型說明符字節(jié)數(shù)字節(jié)數(shù)數(shù)值范圍數(shù)值范圍短整型短整型signed short int2-3276832767基本整型基本整型signed int4-21474836482147483647長整型長整型signed long int4-2147483648 2147483647無符號短整型無符號短整型unsigned short int2065535無符號基本整型無符號基本整型unsigned int404294967295無符號長整型無符號長整型unsigned long int4042949672952021-12-2017 P

21、rogram Design in C LanguagePage23 常量、變量和標準函數(shù)常量、變量和標準函數(shù)#include void main() int a, b; unsigned c, d; a=2147483647; b=-2147483648; c=2147483647; d= 2147483649; printf(a=%d,b=%dn, a, b); printf(c=%u,d=%u, c, d);a=2147483647,b=-2147483648c=2147483647,d=2147483648例:整型變量的使用。例:整型變量的使用。#include void main()

22、int a, b; unsigned c, d; a=2147483647; b=a+1; c=2147483647; d=c+1; printf(a=%d,b=%dn, a, b); printf(c=%u,d=%u, c, d);a=2147483647,b=-2147483648c=2147483647,d=21474836482021-12-2018 Program Design in C LanguagePage23 常量、變量和標準函數(shù)常量、變量和標準函數(shù) 結(jié)論:結(jié)論:a+1 的結(jié)果(的結(jié)果(2147483648) 超出了有符號整型變量所能容納超出了有符號整型變量所能容納的數(shù)值范圍

23、(的數(shù)值范圍(-21474836482147483647),這種情況稱為),這種情況稱為“溢出溢出”。分析:分析:2.2.實型變量實型變量用來存放實型數(shù)據(jù)的變量。用來存放實型數(shù)據(jù)的變量。實型變量分類表實型變量分類表0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a(2147483647)1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

24、0 0 0 0 0 0a+1(21474836482147483648)b(- 2147483648)2021-12-2019 Program Design in C LanguagePage#includevoid main()float f; double d; f=33333.33333; d=33333333333333.333333; printf(f=%fnd=%fn,f,d);2 23 3 常量、變量和標準函數(shù)常量、變量和標準函數(shù)f=33333.332031d=33333333333333.333500無無效效數(shù)數(shù)字字例:實型變量的使用。例:實型變量的使用。( (實型數(shù)據(jù)的有效數(shù)

25、字和精度實型數(shù)據(jù)的有效數(shù)字和精度) )2021-12-2020 Program Design in C LanguagePage3.3.字符型變量字符型變量用來存放字符常量的變量。用來存放字符常量的變量。 在內(nèi)存單元中,每個字符型變量分配一個在內(nèi)存單元中,每個字符型變量分配一個字節(jié)用于存放一個字符。字節(jié)用于存放一個字符。(實際上存放的是字符的(實際上存放的是字符的ASCIIASCII碼值。)碼值。)c1c1單元存放的是單元存放的是01000001(01000001(十進制十進制65);65);c2c2單元存放的是單元存放的是01100001(01100001(十進制十進制97)97) 。例:例

26、:char c1,c2; c1=A;c2=a;所以,在所以,在C語言中字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。即:語言中字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。即: 允許對整型變量賦字符值。允許對整型變量賦字符值。 允許對字符變量賦整型值。允許對字符變量賦整型值。 允許把字符變量按整型量輸出。允許把字符變量按整型量輸出。 允許把整型量按字符量輸出。允許把整型量按字符量輸出。 允許字符量與整型量進行運算。允許字符量與整型量進行運算。23 常量、變量和標準函數(shù)常量、變量和標準函數(shù)2021-12-2021 Program Design in C LanguagePage23 常量、變量和標準函數(shù)常量、變量和標準

27、函數(shù)#include void main() char c1, c2; c1=97; c2=98; printf(c1=%c,c2=%cn, c1, c2); printf(c1=%d,c2=%d, c1, c2);c1=a,c2=bc1=97,c2=98例:字符變量的使用。例:字符變量的使用。2021-12-2022 Program Design in C LanguagePage4 4變量的初始化變量的初始化在說明變量的同時給變量賦初值。在說明變量的同時給變量賦初值。例:例:int a=15,b; char c1=X,c2=Y;float f1,f2,f3=24.5;int a=20,b=

28、20,c=20; 23 常量、變量和標準函數(shù)常量、變量和標準函數(shù)int a=b=c=20; ( (錯錯) )2021-12-2023 Program Design in C LanguagePage23 常量、變量和標準函數(shù)常量、變量和標準函數(shù)2.3.3 標準函數(shù)標準函數(shù)C 編譯系統(tǒng)提供的庫函數(shù)。編譯系統(tǒng)提供的庫函數(shù)。(包括:輸入輸出函數(shù)、數(shù)學函數(shù)、字符和字符串函數(shù)、時間函數(shù)、動態(tài)存儲分配函數(shù)等)(包括:輸入輸出函數(shù)、數(shù)學函數(shù)、字符和字符串函數(shù)、時間函數(shù)、動態(tài)存儲分配函數(shù)等)調(diào)用格式:調(diào)用格式: 函數(shù)名函數(shù)名(參數(shù)參數(shù),參數(shù)參數(shù),)例:計算例:計算e ex x + e+ ey y 。#incl

29、ude #include void main() int x,y; float z; scanf(%d,%d,&x,&y); z=exp(x)+exp(y); printf(z=%fn,z);2,3 z=27.4745922021-12-2024 Program Design in C LanguagePage本節(jié)本節(jié)介紹介紹24 基本運算符及其表達式基本運算符及其表達式算術(shù)運算符算術(shù)運算符賦值運算符賦值運算符逗號運算符逗號運算符邏輯運算符邏輯運算符條件運算符條件運算符求字節(jié)運算符求字節(jié)運算符位邏輯運算符位邏輯運算符位移動運算符位移動運算符位自反運算符位自反運算符強制類型轉(zhuǎn)換運

30、算符強制類型轉(zhuǎn)換運算符指針運算符指針運算符下標運算符下標運算符分量運算符分量運算符基本運算符基本運算符位運算符位運算符特殊運算符特殊運算符C運算符運算符2021-12-2025 Program Design in C LanguagePage24 基本運算符及其表達式基本運算符及其表達式2.4.1 算術(shù)運算符與算術(shù)表達式算術(shù)運算符與算術(shù)表達式1.1.基本算術(shù)運算符基本算術(shù)運算符右結(jié)合右結(jié)合2+正正右結(jié)合右結(jié)合2-負負左結(jié)合左結(jié)合3/除除左結(jié)合左結(jié)合3%取模取模344優(yōu)先級優(yōu)先級左結(jié)合左結(jié)合*乘乘左結(jié)合左結(jié)合-減減左結(jié)合左結(jié)合+加加結(jié)合性結(jié)合性運算符運算符含義含義C C基本算術(shù)運算符基本算術(shù)運算

31、符例:例: 19/5 結(jié)果為結(jié)果為3 3 (整數(shù)相除截去余數(shù)。)(整數(shù)相除截去余數(shù)。) 22%4 結(jié)果為結(jié)果為2 2 (取模運算返回余數(shù)。)(取模運算返回余數(shù)。)2021-12-2026 Program Design in C LanguagePage24 基本運算符及其表達式基本運算符及其表達式2.2.自增自減運算符自增自減運算符含義含義運算符運算符優(yōu)先級優(yōu)先級結(jié)合性結(jié)合性功能功能自增自增+2右結(jié)合右結(jié)合使變量的值增使變量的值增1自減自減-2右結(jié)合右結(jié)合使變量的值減使變量的值減1使用形式使用形式 +i或或-i 變量變量i i先自增或自減先自增或自減1 1,再使用。,再使用。 i+或或i- 先

32、使用變量先使用變量i i,再自增或自減,再自增或自減1 1。 C C自增自減運算符自增自減運算符#include void main() int i=6, a, b; printf(%dn, +i); printf(%dn, i+); a=-i; printf(%dn, a); b=i-; printf(%dn, b); printf(%dn, -i+); printf(i=%dn, i);例:例:7777-6i = ?2021-12-2027 Program Design in C LanguagePage 在表達式中當多個運算符相連時,應(yīng)自左而右地將若干個在表達式中當多個運算符相連時,應(yīng)自

33、左而右地將若干個字符組成一個運算符。字符組成一個運算符。24 基本運算符及其表達式基本運算符及其表達式#includevoid main( ) int i, j, k ; i=1; j=1; k=i+j ; printf(“i=%d,j=%d,k=%dn,i,j,k); 例:例:k=(i+)+j;i=2,j=1,k=22021-12-2028 Program Design in C LanguagePage3 3 算術(shù)表達式算術(shù)表達式由算術(shù)運算符和括號將運算對象由算術(shù)運算符和括號將運算對象( (如常量、變量、函數(shù)等如常量、變量、函數(shù)等) )連接起連接起來的一個有值的式子。來的一個有值的式子。

34、數(shù)學式數(shù)學式C C語言算術(shù)表達式語言算術(shù)表達式dcba(a+b)/(c+d)ba sqrt(a)+sqrt(b)zyxx+y-z例:例:說明:說明:表達式的類型為該表達式值的類型。表達式的類型為該表達式值的類型。表達式的求值順序:先按運算符的優(yōu)先級執(zhí)行,當一個運算對象表達式的求值順序:先按運算符的優(yōu)先級執(zhí)行,當一個運算對象兩側(cè)的運算符優(yōu)先級別相同時,則按結(jié)合性處理。兩側(cè)的運算符優(yōu)先級別相同時,則按結(jié)合性處理。24 基本運算符及其表達式基本運算符及其表達式2(a+b) 2*(a+b)2021-12-2029 Program Design in C LanguagePage24 基本運算符及其表達

35、式基本運算符及其表達式2.4.2 關(guān)系運算符與關(guān)系表達式關(guān)系運算符與關(guān)系表達式關(guān)系運算關(guān)系運算(比較運算)(比較運算)即比較兩個量的大小,比較的結(jié)果為即比較兩個量的大小,比較的結(jié)果為“真真”或或“假假”。例:例:a3 如果如果a=8a=8,則結(jié)果為,則結(jié)果為“真真”;如果;如果a=1a=1,則結(jié)果為,則結(jié)果為“假假”。1.1.關(guān)系運算符關(guān)系運算符含義含義運算符運算符優(yōu)先級優(yōu)先級結(jié)合性結(jié)合性小于小于6左結(jié)合左結(jié)合小于等于小于等于6左結(jié)合左結(jié)合大于等于大于等于=6左結(jié)合左結(jié)合等于等于=7左結(jié)合左結(jié)合不等于不等于!=7左結(jié)合左結(jié)合C C關(guān)系運算符關(guān)系運算符2021-12-2030 Program D

36、esign in C LanguagePage2.2.關(guān)系表達式關(guān)系表達式用關(guān)系運算符將兩個表達式連接起來的式子。用關(guān)系運算符將兩個表達式連接起來的式子。24 基本運算符及其表達式基本運算符及其表達式一般形式:一般形式:其中:表達式其中:表達式1 1和表達式和表達式2 2可以是任何表達式。可以是任何表達式。 abm+nz)=(yz)ijk例:例:2021-12-2031 Program Design in C LanguagePageC C語言沒有邏輯型數(shù)據(jù)。因此,語言沒有邏輯型數(shù)據(jù)。因此, 在返回邏輯值時:在返回邏輯值時:用用1 1表示表示“真真”,用,用0 0表示表示“假假”; 在判斷邏輯

37、值時:在判斷邏輯值時:用非用非0 0代表代表“真真”,用,用0 0代表代表“假假”。24 基本運算符及其表達式基本運算符及其表達式例:例:#includevoid main()int a=15,b=18,c=10; printf(%d,%d,%dn,ab,abc);0,1,02021-12-2032 Program Design in C LanguagePage2.4.3 邏輯運算符與邏輯表達式邏輯運算符與邏輯表達式關(guān)系表達式只能表達一些簡單的關(guān)系,如:關(guān)系表達式只能表達一些簡單的關(guān)系,如:sum=1500y!=z即只能對一個條件進行測試。即只能對一個條件進行測試。而以下關(guān)系:而以下關(guān)系:

38、20 x100則不能用關(guān)系表達式表達。則不能用關(guān)系表達式表達。a!a真(1) 假(0)假(0) 真(1)邏輯非!邏輯非! 真值表真值表1.1.邏輯運算符邏輯運算符 C C邏輯運算符:邏輯運算符:含義含義運算符運算符優(yōu)先級優(yōu)先級結(jié)合性結(jié)合性邏輯非邏輯非!2右結(jié)合右結(jié)合邏輯與邏輯與&11左結(jié)合左結(jié)合邏輯或邏輯或|12左結(jié)合左結(jié)合24 基本運算符及其表達式基本運算符及其表達式2021-12-2033 Program Design in C LanguagePagea ab ba|ba|b真(1 )真(1 )真(1 )真(1 )真(1 )真(1 )真(1 )真(1 )假(0 )假(0 )真(1

39、 )真(1 )假(0 )假(0 )真(1 )真(1 )真(1 )真(1 )假(0 )假(0 )假(0 )假(0 )假(0 )假(0 )邏輯或邏輯或 真值表真值表2.2.邏輯表達式邏輯表達式 用邏輯運算符將表達式連接起來的式子。用邏輯運算符將表達式連接起來的式子。如:如: 1) 0 x10 x=0&x5或或x15xb?max=a:max=b例:例:(grade=60)?printf(“Passed”):printf(“Failed”);一般形式:一般形式:?:2021-12-2036 Program Design in C LanguagePage賦值運算符優(yōu)先級為賦值運算符優(yōu)先級為14

40、,僅高于逗號運算符,而低于其他所有運算符。,僅高于逗號運算符,而低于其他所有運算符。2.4.5 賦值運算符與賦值表達式賦值運算符與賦值表達式簡單賦值運算符為簡單賦值運算符為“=”;由;由“=”連接的式子稱為(簡單)賦值表達式。連接的式子稱為(簡單)賦值表達式。一般形式:一般形式: =1 1簡單賦值運算符和簡單賦值表達式簡單賦值運算符和簡單賦值表達式d=25c=a+bz=sqrt(x)+sqrt(y)k=i+-jx=(a=5)+(b=8)例:例:賦值運算符為右結(jié)合性賦值運算符為右結(jié)合性 a=b=c=d=10 a=(b=(c=(d=10)24 基本運算符及其表達式基本運算符及其表達式2021-12

41、-2037 Program Design in C LanguagePage賦值運算的類型轉(zhuǎn)換,規(guī)則為:賦值運算的類型轉(zhuǎn)換,規(guī)則為: 整型數(shù)據(jù)賦給字符型時,只把低整型數(shù)據(jù)賦給字符型時,只把低8 8位賦給字符變量。位賦給字符變量。字符型數(shù)據(jù)賦給整型變量時,整型變量的高八位補字符型數(shù)據(jù)賦給整型變量時,整型變量的高八位補0 0,低八位取,低八位取字符的字符的ASCIIASCII碼值。碼值。 整型數(shù)據(jù)賦給實型變量時,以浮點形式取值。整型數(shù)據(jù)賦給實型變量時,以浮點形式取值。 實型數(shù)據(jù)賦給整型變量時,只取整數(shù)部分。實型數(shù)據(jù)賦給整型變量時,只取整數(shù)部分。如如: K=8.88 (k值為值為8)如如: : f=

42、15 (f值為值為15.000000)如如: : K=A (k值為值為65)如如: : C=578 (C值為字母值為字母B)24 基本運算符及其表達式基本運算符及其表達式2021-12-2038 Program Design in C LanguagePage2 2復(fù)合賦值運算符和復(fù)合賦值表達式復(fù)合賦值運算符和復(fù)合賦值表達式復(fù)合賦值運算符是在簡單賦值運算符前加雙目運算符構(gòu)成。復(fù)合賦值運算符是在簡單賦值運算符前加雙目運算符構(gòu)成。共以下共以下1010種:種: +=,-=,*=,/=,%=,=,&=,=,|=24 基本運算符及其表達式基本運算符及其表達式例:例:a+=5x*=y+7x+=x-

43、=x*=xa=a+5x=x*(y+7)x=x+(x=x-(x=x*x)復(fù)合復(fù)合賦值運算符賦值運算符優(yōu)先級優(yōu)先級1414,右結(jié)合性。右結(jié)合性。2021-12-2039 Program Design in C LanguagePage2.4.6 逗號運算符和逗號表達式逗號運算符和逗號表達式逗號運算符逗號運算符“ , ”用逗號運算符將各表達式連接起來的式子稱為用逗號運算符將各表達式連接起來的式子稱為逗號表達式逗號表達式。 逗號運算符逗號運算符優(yōu)先級優(yōu)先級1515,是所有,是所有運算符中運算符中最低最低的。的。24 基本運算符及其表達式基本運算符及其表達式一般形式:一般形式:, #includevoi

44、d main()int a=2,b=4,c,y; y=(c=a*b),(b+c); printf(y=%dn,y);例:例:y=12 程序中程序中并非所有出現(xiàn)逗號的地并非所有出現(xiàn)逗號的地方都組成逗號表達式。方都組成逗號表達式。如:如:int a=2,b=4,c=6,x,y;printf(y=%d, x=%d, y, x); /* 分隔符分隔符 */2021-12-2040 Program Design in C LanguagePage31 C語言程序的基本語句語言程序的基本語句3.1 C語言程序的基本語句語言程序的基本語句 C語言語句分為五類:表達式語句、函數(shù)調(diào)用語句、控制語言語句分為五類:

45、表達式語句、函數(shù)調(diào)用語句、控制語句、復(fù)合語句、空語句。語句、復(fù)合語句、空語句。1表達式語句表達式語句由一個表達式組成一個語句。由一個表達式組成一個語句。 如:如: +p; /*自增運算表達式加分號構(gòu)成語句自增運算表達式加分號構(gòu)成語句*/ N+=10; /*復(fù)合賦值表達式加分號構(gòu)成語句復(fù)合賦值表達式加分號構(gòu)成語句*/ a+b; /* a+b表達式加分號構(gòu)成語句表達式加分號構(gòu)成語句*/2函數(shù)調(diào)用語句函數(shù)調(diào)用語句由一次函數(shù)調(diào)用加上分號由一次函數(shù)調(diào)用加上分號“;”組成組成 。形式:形式:函數(shù)名函數(shù)名( (實參列表實參列表) ) ;如:如: printf(“Very Good!n”); /*輸出輸出Ve

46、ry Good!*/ max(x,y,z); /*調(diào)用自定義函數(shù)調(diào)用自定義函數(shù)max,求,求x,y,z中的最大數(shù)中的最大數(shù)*/2021-12-2041 Program Design in C LanguagePage4.復(fù)合語句復(fù)合語句: 用用 括起來組成的一個語句括起來組成的一個語句 如如:if (ab) x=0;b=b+1;x=a;5.空語句:僅由一個分號構(gòu)成的語句空語句:僅由一個分號構(gòu)成的語句3.控制語句:控制程序的流程控制語句:控制程序的流程 如如:ifelse語句,while語句,return語句等。 如:如:while (getchar( ) != n ) ; /*空語句空語句*/

47、3.1 C3.1 C語言程序的基本語句語言程序的基本語句 2021-12-2042 Program Design in C LanguagePage功能:通過標準輸出設(shè)備(如顯示器)輸出功能:通過標準輸出設(shè)備(如顯示器)輸出 一組數(shù)據(jù)。一組數(shù)據(jù)。 輸出形式由輸出形式由“格式控制格式控制”字符串規(guī)定。字符串規(guī)定。3.3.1 格式輸出:格式輸出:printf( )函數(shù)和函數(shù)和scanf( )函數(shù)函數(shù)一般形式:一般形式: printf(“(“格式控制字符串格式控制字符串”,輸出表列,輸出表列) );3.3 3.3 數(shù)據(jù)輸入輸出數(shù)據(jù)輸入輸出 printf函數(shù)是一個標準庫函數(shù),它的函數(shù)原型在頭函數(shù)是一個

48、標準庫函數(shù),它的函數(shù)原型在頭文件文件“stdio.h”中。中。 1. printf( )函數(shù)函數(shù)2021-12-2043 Program Design in C LanguagePage格式控制格式控制:由由雙引號雙引號括起來的字符串,用于指定要輸出括起來的字符串,用于指定要輸出的數(shù)據(jù)的格式。的數(shù)據(jù)的格式。2)格式說明:用來指定需輸出數(shù)據(jù)的輸出格式的,)格式說明:用來指定需輸出數(shù)據(jù)的輸出格式的,其形式為:其形式為: % 格式字符格式字符 格式字符用以說明輸出數(shù)據(jù)的類型,形式,長度,格式字符用以說明輸出數(shù)據(jù)的類型,形式,長度,小數(shù)位數(shù)等。小數(shù)位數(shù)等。它包括:它包括: 1)普通字符:按原樣輸出的字

49、符;)普通字符:按原樣輸出的字符; 輸出表列輸出表列:需要輸出的數(shù)據(jù)列表,彼此間用需要輸出的數(shù)據(jù)列表,彼此間用逗號逗號分隔。分隔。它可是任意合法的表達式。它可是任意合法的表達式。3.3.1 3.3.1 格式輸出:格式輸出:printf( )printf( )函數(shù)和函數(shù)和scanf( )scanf( )函數(shù)函數(shù)2021-12-2044 Program Design in C LanguagePage修飾符功 能l用于長整型、雙精度型數(shù)據(jù)可加在格式符d 、o 、x 、u、f 前m數(shù)據(jù)的最小寬度n對實數(shù),表示輸出 n 位小數(shù)對字符串,表示從左端截取的n 個字符輸出的數(shù)字或字符左對齊,右邊填補空格用于

50、輸出的修飾符用于輸出的修飾符3.3.1 3.3.1 格式輸出:格式輸出:printf( )printf( )函數(shù)和函數(shù)和scanf( )scanf( )函數(shù)函數(shù)2021-12-2045 Program Design in C LanguagePage用于輸出的格式字符用于輸出的格式字符格式符功 能形 式d輸出十進制整數(shù)%d 、%md 、%ld 、%mldo以八進制形式輸出整數(shù)%o 、%mo 、%lox以十六進制形式輸出整數(shù)%x 、%mx 、%lxu以十進制形式輸出一個無符號的數(shù)%uc輸出一個字符% cs輸出一個字符串%s 、 %ms 、 % m.nsf以小數(shù)的形式輸出實數(shù)%f、%m.nf、%l

51、fe以標準指數(shù)的形式輸出實數(shù)%e 、 %m.neg根據(jù)實數(shù)的大小自動按f或e的形式選擇輸出格式% g3.3.1 3.3.1 格式輸出:格式輸出:printf( )printf( )函數(shù)和函數(shù)和scanf( )scanf( )函數(shù)函數(shù)2021-12-2046 Program Design in C LanguagePage例:格式輸出:例:格式輸出:printf()函數(shù)()函數(shù) printf( a+b = %5.2 f , c );附加附加格式符格式符格式符格式符輸出表列輸出表列普通字符普通字符格式說明符格式說明符格式控制格式控制3.3.1 格式輸出:格式輸出:printf( )函數(shù)和函數(shù)和sc

52、anf( )函數(shù)函數(shù)2021-12-2047 Program Design in C LanguagePage(1) d格式字符格式字符d:按整型數(shù)據(jù)的實際長度輸出:按整型數(shù)據(jù)的實際長度輸出md:m為指定的輸出長度。如果數(shù)據(jù)位小于為指定的輸出長度。如果數(shù)據(jù)位小于m,則左端補以空格則左端補以空格;大于大于m,則按實際位輸出。,則按實際位輸出。例:例:printf(“%4d,%4d”,a,b); 若若a=12, b=12345,則輸出,則輸出 12,12345ld:輸出長整型數(shù)據(jù)。:輸出長整型數(shù)據(jù)。d d的輸出范圍為的輸出范圍為32768327673276832767,輸出超過該,輸出超過該范圍的

53、整型數(shù)就會出錯,此時用范圍的整型數(shù)就會出錯,此時用%ld%ld輸出。輸出。其輸出格式和功能與其輸出格式和功能與%d%d相同,如:相同,如:8ld8ld3.3.1 3.3.1 格式輸出:格式輸出:printf( )printf( )函數(shù)和函數(shù)和scanf( )scanf( )函數(shù)函數(shù)2021-12-2048 Program Design in C LanguagePage(2) o格式字符格式字符以八進制數(shù)形式輸出整數(shù),且不帶符號。以八進制數(shù)形式輸出整數(shù),且不帶符號。對于長整數(shù)可用對于長整數(shù)可用“l(fā)o”輸出。功能同十進制輸出。輸出。功能同十進制輸出。(3) x格式字符格式字符以十六進制數(shù)形式輸出

54、整數(shù),且不帶符號。以十六進制數(shù)形式輸出整數(shù),且不帶符號。對于長整數(shù)可用對于長整數(shù)可用“l(fā)x”輸出。功能同十進制輸出。輸出。功能同十進制輸出。(4) u格式字符格式字符用來輸出用來輸出unsigned型數(shù)據(jù),即無符號數(shù),輸出十型數(shù)據(jù),即無符號數(shù),輸出十進制數(shù)。進制數(shù)。用用o o,%x%x輸出負數(shù)時會發(fā)生錯誤。輸出負數(shù)時會發(fā)生錯誤。3.3.1 3.3.1 格式輸出:格式輸出:printf( )printf( )函數(shù)和函數(shù)和scanf( )scanf( )函數(shù)函數(shù)2021-12-2049 Program Design in C LanguagePage(5) c格式字符格式字符 一個整數(shù),如果在一個

55、整數(shù),如果在02550255之間,也可用字符形式輸出,之間,也可用字符形式輸出,系統(tǒng)會將該整數(shù)轉(zhuǎn)換成相對應(yīng)的系統(tǒng)會將該整數(shù)轉(zhuǎn)換成相對應(yīng)的ASCIIASCII碼字符;同時,一碼字符;同時,一字符也可以用整數(shù)形式輸出。字符也可以用整數(shù)形式輸出。例:例:char c=a; printf(“%c”,c);用來輸出一個字符。用來輸出一個字符。int a=65;printf (“%c”,a); int c=A;printf (“%d”,c); 輸出輸出A輸出輸出65如如: :printf(“%3c”,c),則輸出則輸出c格式字符也可以指定輸出字數(shù)寬度格式字符也可以指定輸出字數(shù)寬度 A3.3.1 3.3.1

56、 格式輸出:格式輸出:printf( )printf( )函數(shù)和函數(shù)和scanf( )scanf( )函數(shù)函數(shù)2021-12-2050 Program Design in C LanguagePage(6) s格式字符格式字符s:用來輸出一個字符串:用來輸出一個字符串例:例:printf(“%s”,“Hello!”); 輸出輸出Hello!,!,不包括不包括“ ”ms:輸出的字符串占:輸出的字符串占m列。如果字符串長度小于列。如果字符串長度小于m,則左端補以空格;長度大于則左端補以空格;長度大于m,則輸出整個字符串。,則輸出整個字符串。-ms:如果串長小于:如果串長小于m,則字符串向左靠,右補

57、空格,則字符串向左靠,右補空格,其余同上。其余同上。m.ns:輸出的字符串占:輸出的字符串占m列列,但只取字符串中左端但只取字符串中左端n個個字符,這字符,這n個字符輸出在個字符輸出在m列的右側(cè),左端補空格。列的右側(cè),左端補空格。-m.ns:其他意義同:其他意義同m.ns,右補空格。,右補空格。3.3.1 3.3.1 格式輸出:格式輸出:printf( )printf( )函數(shù)和函數(shù)和scanf( )scanf( )函數(shù)函數(shù)例:例:printf(“%3s”,“Hello!”); 輸出輸出Hello! printf(“%7s”,“Hello!”); 輸出輸出 Hello!2021-12-2051

58、 Program Design in C LanguagePage(7) f格式字符格式字符f:不指定字段寬度,整數(shù)部分全部輸出,小數(shù):不指定字段寬度,整數(shù)部分全部輸出,小數(shù)部分輸出部分輸出6位。位。m.nf:指定輸出數(shù)據(jù)占:指定輸出數(shù)據(jù)占m列,其中有列,其中有n位小數(shù)。位小數(shù)。若數(shù)值長度小于若數(shù)值長度小于m,則左端補以空格。,則左端補以空格。-m.nf:功能同上,右端補以空格。:功能同上,右端補以空格。(8) e格式字符格式字符e:不指定字段寬度,系統(tǒng)自動給出:不指定字段寬度,系統(tǒng)自動給出6位小數(shù),指位小數(shù),指數(shù)部分占數(shù)部分占4位。其中位。其中“e”占占1位,指數(shù)符號占位,指數(shù)符號占1位,位

59、,指數(shù)占指數(shù)占2位。位。3.3.1 3.3.1 格式輸出:格式輸出:printf( )printf( )函數(shù)和函數(shù)和scanf( )scanf( )函數(shù)函數(shù)2021-12-2052 Program Design in C LanguagePage例:例:printf(“%e”,123.456);輸出:1.234560e+026 6位小數(shù)部分位小數(shù)部分4 4位指數(shù)部分位指數(shù)部分m.ne, -m.ne, me :中:中m,-的意義和前相同,的意義和前相同,n是指數(shù)據(jù)的小數(shù)部分輸出的位數(shù)。是指數(shù)據(jù)的小數(shù)部分輸出的位數(shù)。(9) g格式字符格式字符 用來輸出實數(shù),根據(jù)數(shù)值大小,自動選用來輸出實數(shù),根據(jù)數(shù)

60、值大小,自動選f或或e格式,且不輸出無意義的零。格式,且不輸出無意義的零。3.3.1 3.3.1 格式輸出:格式輸出:printf( )printf( )函數(shù)和函數(shù)和scanf( )scanf( )函數(shù)函數(shù)2021-12-2053 Program Design in C LanguagePage#include void main() int a=1234; float f1=12.34567,f2=678.9; printf(1)%d,%6d,%-6d,%2d;n,a,a,a,a); printf(2)%f,%10.4f,%3.2f;n,f1,f1,f1); printf(3)%e,%e;n,f1,f2); printf(4)%8e,%14e;n,f1,f1); printf(5)%10.7e,%10.3e;n,f1,f1); 實例:實例:程序運行結(jié)果:程序運行結(jié)果:1)1234,

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論