版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 數(shù)據(jù)形式數(shù)據(jù)形式 數(shù)據(jù)定義數(shù)據(jù)定義 運算符運算符 表達式表達式 運算過程與類型運算過程與類型 輸入輸出輸入輸出 2.1 數(shù)據(jù)類型和存儲形式數(shù)據(jù)類型和存儲形式 常數(shù)、變量、函數(shù)和表達式是程 序中的基本操作對象,它們都隱式 或顯式地與一種數(shù)據(jù)類型相聯(lián)系。 2.1 數(shù)據(jù)類型和存儲形式數(shù)據(jù)類型和存儲形式 數(shù)據(jù)類型是指數(shù)據(jù)的內(nèi)在表現(xiàn)形 式,類型是在高級語言中的一個非 常重要的概念,因為類型確定數(shù)據(jù) 的存儲形式和值域,類型確定相應(yīng) 數(shù)據(jù)所允許執(zhí)行的運算。 C C 中中 的的 類類 型型 劃劃 分分 基本類型基本類型 構(gòu)造類型構(gòu)造類型 短整型短整型( (short int )short int ) 整型整
2、型( (int)int) 長整型長整型( (long int)long int) 整型整型 實型實型 數(shù)組類型數(shù)組類型 結(jié)構(gòu)類型結(jié)構(gòu)類型( (struct)struct) 共用體共用體( (union)union) 文件類型文件類型( (FILE)FILE) 指針類型指針類型 空類型(空類型(voidvoid) 單精度型單精度型( (float)float) 雙精度型雙精度型( (double)double) 不 同 類 型不 同 類 型 的數(shù)據(jù)在計的數(shù)據(jù)在計 算機中的存算機中的存 儲格式也不儲格式也不 同,以同,以3232位位 機為例說明。機為例說明。 存儲特點:順序存放,精確表示存儲特點:
3、順序存放,精確表示 實數(shù)存儲特點實數(shù)存儲特點: :指數(shù)與小數(shù)分別存放指數(shù)與小數(shù)分別存放, ,近似表示。近似表示。 1.1.專用符號專用符號: : + +,- -,* *,/ /,;,;等等多為操作運算符多為操作運算符。 2.2.單詞單詞: : 保留字(關(guān)鍵字)保留字(關(guān)鍵字):具有固定含義的字,作用是用來具有固定含義的字,作用是用來 命名命名C C語句、數(shù)據(jù)類型、變量屬性及個別運算符,一律用語句、數(shù)據(jù)類型、變量屬性及個別運算符,一律用 小寫字母表示。小寫字母表示。 數(shù)據(jù)存儲類別限止符:數(shù)據(jù)存儲類別限止符:auto, extern, register, static; 數(shù)據(jù)類型限止符:數(shù)據(jù)類型限
4、止符:long, short, unsigned, struct, union; 數(shù)據(jù)類型:數(shù)據(jù)類型:char, double, float, int; C語句:語句: break, case, continue, default, do, else, for, goto,if, return, switch, while; 其其 它:它: entry, sizeof, typedef; *C預(yù)處理:預(yù)處理:define, include, undef, ifdef, ifndef, endif,; 2.2 2.2 基本語法單位基本語法單位 用戶標識符用戶標識符 作用作用:標記常數(shù)、變量、自定
5、義數(shù)據(jù)類型、函數(shù)及標記常數(shù)、變量、自定義數(shù)據(jù)類型、函數(shù)及 程序的名字程序的名字 取名規(guī)則取名規(guī)則: 以字母或下劃線以字母或下劃線_ _中任一字符打頭;中任一字符打頭; 在第一字符之后,可以是任意的字母、下劃線或數(shù)在第一字符之后,可以是任意的字母、下劃線或數(shù) 字組成的字符序列,這個字符序列可以是空串。字組成的字符序列,這個字符序列可以是空串。 用戶標識符用戶標識符 說明說明: 不要與保留字同名;不要與保留字同名; C C語言中大小寫字母有不同的含義,即區(qū)分大小寫。語言中大小寫字母有不同的含義,即區(qū)分大小寫。 namename和和NameName在在C C中是兩個不同的標識符;中是兩個不同的標識符
6、; 習(xí)慣上除了符號常數(shù),一般都用小寫字母表示;習(xí)慣上除了符號常數(shù),一般都用小寫字母表示; 標識符長度不限,但只識別前標識符長度不限,但只識別前8 8個字符。個字符。 例例: : 正確:正確:a, a1, f_1, area, _age a, a1, f_1, area, _age 錯誤:錯誤:2 2a, last name, no#, a, last name, no#, - -xy, charxy, char 2.3 2.3 C C語言中的常數(shù)分類語言中的常數(shù)分類 算術(shù)常數(shù)算術(shù)常數(shù) ( (整型常數(shù)整型常數(shù)) ) 十進制整常數(shù)十進制整常數(shù):值域:值域之間,之間,n n為機器字長;為機器字長;
7、例:例:123123,100100 長整數(shù)常數(shù)長整數(shù)常數(shù):值域:值域之間,占兩個機器字長之間,占兩個機器字長, 表示形式表示形式為為在整常數(shù)后加字母在整常數(shù)后加字母l l或或 L L; ; 例:例:123123l, 123L, 100l, 100Ll, 123L, 100l, 100L 八進制整常數(shù)八進制整常數(shù):由數(shù)字:由數(shù)字0 0打頭,后跟一串八進制數(shù)字(打頭,后跟一串八進制數(shù)字(0 07 7) 例:例:01230123, 01000100, 0505, 032727032727 十六進制整常數(shù)十六進制整常數(shù):以:以0 0 x x打頭,隨后跟十進制數(shù)字(打頭,隨后跟十進制數(shù)字(0 09 9)
8、和六)和六 個字母(個字母(A AF F或或a af f分別分別對應(yīng)十進制的對應(yīng)十進制的10101515 )組成的串。組成的串。 例:例:0 0 x10, 0 x1A, 0 x1f, 0 x20 x10, 0 x1A, 0 x1f, 0 x20 122 11 nn 122 1212 nn 算術(shù)常數(shù)算術(shù)常數(shù) ( (實型常數(shù)實型常數(shù) ) ) 在在C C語言中單精度和雙精度實常數(shù)的表示方法相同,語言中單精度和雙精度實常數(shù)的表示方法相同, 編譯程序總是把實常數(shù)處理成雙精度后再進行運算的。編譯程序總是把實常數(shù)處理成雙精度后再進行運算的。 10E517893246 整數(shù)部分 完整形式: 指數(shù)部分小數(shù)部分
9、實常數(shù)的 實常數(shù)的組成規(guī)則實常數(shù)的組成規(guī)則: 上述三個部分可以有一部分或二部分缺省,但整數(shù)部分和小數(shù)部上述三個部分可以有一部分或二部分缺省,但整數(shù)部分和小數(shù)部 分不能同時缺??;分不能同時缺??; 如果一個實常數(shù)有一個小數(shù)點,則小數(shù)點左右至少有一邊有數(shù)字;如果一個實常數(shù)有一個小數(shù)點,則小數(shù)點左右至少有一邊有數(shù)字; 如果實常數(shù)如果實常數(shù)e e或或E E,則兩邊至少至少都要有一位數(shù)字;則兩邊至少至少都要有一位數(shù)字; 指數(shù)部分必須是整數(shù)。指數(shù)部分必須是整數(shù)。 實常數(shù)一般有兩種書寫形式:小數(shù)形式和指數(shù)形式實常數(shù)一般有兩種書寫形式:小數(shù)形式和指數(shù)形式 小數(shù)形式小數(shù)形式: 3. , 123.4 , .0233
10、. , 123.4 , .023 指數(shù)形式指數(shù)形式: 1.21.2E4 , 6.5eE4 , 6.5e- -5 , 20e35 , 20e3 實數(shù)的取值范圍實數(shù)的取值范圍1010- -38 38 101038 38:當數(shù)值大于 :當數(shù)值大于101038 38時 時 產(chǎn)生上溢,小于產(chǎn)生上溢,小于1010- -38 38時產(chǎn)生下溢,通常用 時產(chǎn)生下溢,通常用0 0近似,近似, 一般一個普通實常數(shù)在機內(nèi)表示時具有一般一個普通實常數(shù)在機內(nèi)表示時具有6 67 7位十進位十進 制有效數(shù)字,雙精度實數(shù)具有制有效數(shù)字,雙精度實數(shù)具有1616位十進制有效數(shù)字。位十進制有效數(shù)字。 算術(shù)常數(shù)算術(shù)常數(shù) ( (實型常數(shù)
11、實型常數(shù) ) ) 字符常數(shù)字符常數(shù)(單個字符(簡稱字符)和字符串)(單個字符(簡稱字符)和字符串) 單個字符常數(shù)單個字符常數(shù):是由一對單引號括起來的單個字符或轉(zhuǎn)義字:是由一對單引號括起來的單個字符或轉(zhuǎn)義字 符所構(gòu)成。在內(nèi)存中占一個字節(jié)的存儲單元。符所構(gòu)成。在內(nèi)存中占一個字節(jié)的存儲單元。 例:例:A A, ,2 2, ,# #, ,+ +, , n n, , 0 0, , t t, , 。 轉(zhuǎn)義字符的意思是將反斜杠轉(zhuǎn)義字符的意思是將反斜杠 后面的字符或數(shù)值轉(zhuǎn)換成后面的字符或數(shù)值轉(zhuǎn)換成 另外的意義。利用它可以表示另外的意義。利用它可以表示ASCIIASCII字符集中任何一個字符。字符集中任何一個字
12、符。 n n: :作為換行控制字符作為換行控制字符 101101: :代表字母代表字母A A 040040: :代表空格符,代表空格符,ASCIIASCII碼為碼為3232 0 0或或 000000: :代表空操作符,代表空操作符, 即空字符,即空字符,ASCIIASCII碼為碼為0 0 系統(tǒng)作為字符系統(tǒng)作為字符 串結(jié)束符使用串結(jié)束符使用 常用的轉(zhuǎn)義字符及其作用常用的轉(zhuǎn)義字符及其作用 ASCIIASCII代碼代碼含義含義字符形式字符形式 1 1到到2 2位位1616進制數(shù)所代表的字符進制數(shù)所代表的字符 xhhxhh 1 1到到3 3位位8 8進制數(shù)所代表的字符進制數(shù)所代表的字符 dddddd
13、3434雙引號字符雙引號字符 3939單引號字符單引號字符 9292反斜杠字符反斜杠字符“ ” 1212換頁,將當前位置移到下頁開頭換頁,將當前位置移到下頁開頭 f f 1313回車,將當前位置移到本行開頭回車,將當前位置移到本行開頭 r r 8 8退格,將當前位置移到前一列退格,將當前位置移到前一列 b b 9 9水平制表(跳到下一個水平制表(跳到下一個tabtab位置)位置) t t 1010換行,將當前位置移到下一行開頭換行,將當前位置移到下一行開頭 n n ASCIIASCII代碼代碼含義含義字符形式字符形式 1 1到到2 2位位1616進制數(shù)所代表的字符進制數(shù)所代表的字符 xhhxh
14、h 1 1到到3 3位位8 8進制數(shù)所代表的字符進制數(shù)所代表的字符 dddddd 3434雙引號字符雙引號字符 3939單引號字符單引號字符 9292反斜杠字符反斜杠字符“ ” 1212換頁,將當前位置移到下頁開頭換頁,將當前位置移到下頁開頭 f f 1313回車,將當前位置移到本行開頭回車,將當前位置移到本行開頭 r r 8 8退格,將當前位置移到前一列退格,將當前位置移到前一列 b b 9 9水平制表(跳到下一個水平制表(跳到下一個tabtab位置)位置) t t 1010換行,將當前位置移到下一行開頭換行,將當前位置移到下一行開頭 n n 字符串常數(shù)字符串常數(shù) 是用一對雙引號括起來的零個
15、或多個字符序列。采是用一對雙引號括起來的零個或多個字符序列。采 用數(shù)組形式存放,并且編譯系統(tǒng)自動為串加串結(jié)束符用數(shù)組形式存放,并且編譯系統(tǒng)自動為串加串結(jié)束符 0 0,以表示串的結(jié)束。,以表示串的結(jié)束。 注意注意:由于字符串末尾都被加上:由于字符串末尾都被加上 0 0串結(jié)束串結(jié)束 符,所以字符串在內(nèi)部表示所占的空間要比實符,所以字符串在內(nèi)部表示所占的空間要比實 際字符多一個字節(jié),際字符多一個字節(jié), 所以長度為所以長度為1 1的字符串與的字符串與 單字符常數(shù)是不同的。單字符常數(shù)是不同的。 例:例:USTC,zhang san,A,C:USTC,zhang san,A,C: Program File
16、sProgram Files 注意字符與字符串的區(qū)別 字符型字符型( (char)char)以一字節(jié)以一字節(jié)8 8位存放,存放形式:位存放,存放形式: 1 7 6 5 4 3 2 1 0 1000000 A在內(nèi)存中在內(nèi)存中 邏輯形態(tài)邏輯形態(tài) A 由于字符串末尾都被加上由于字符串末尾都被加上 0 0串結(jié)束符,所以字符串結(jié)束符,所以字符 串在內(nèi)部所占的空間要比實際字符多一個字節(jié)。串在內(nèi)部所占的空間要比實際字符多一個字節(jié)。 11000000 “A” A 00000000 邏輯形態(tài)邏輯形態(tài)0 由于字符串末尾都被加上由于字符串末尾都被加上 0 0串結(jié)束符,所以字符串結(jié)束符,所以字符 串在內(nèi)部所占的空間要
17、比實際字符多一個字節(jié)。串在內(nèi)部所占的空間要比實際字符多一個字節(jié)。 11000000 “A” A 00000000 邏輯形態(tài)邏輯形態(tài)0 符號常數(shù)符號常數(shù) 符號常數(shù)習(xí)慣上用大寫字母表示;符號常數(shù)習(xí)慣上用大寫字母表示; 經(jīng)過定義,標識符與后面的常數(shù)就具有等價的作用;經(jīng)過定義,標識符與后面的常數(shù)就具有等價的作用; 使用符號常數(shù)的目的是便于大程序的修改和閱讀直使用符號常數(shù)的目的是便于大程序的修改和閱讀直 觀。觀。 定義形式:定義形式: #define #define 標識符標識符常數(shù)常數(shù) 例:例: # #define PI 3.14159define PI 3.14159 #define EOF #de
18、fine EOF - -1 1 2.4 2.4 變量及其類型變量及其類型 變量的定義變量的定義 變量表示在變量表示在C C程序中的基本存儲單元。變量是指在程程序中的基本存儲單元。變量是指在程 序運行過程中其值可以改變的量。變量必須序運行過程中其值可以改變的量。變量必須“先定義先定義 后使用后使用”。 定義一般形式:定義一般形式:類型類型變量標識符表;變量標識符表; 例例:int age, index;int age, index; float x, y; double zfloat x, y; double z; ; 定義變量的作用:定義變量的作用: 使一變量屬于某一確定的類型,即規(guī)定該使一變
19、量屬于某一確定的類型,即規(guī)定該 變量的取值范圍及它能執(zhí)行的運算操作變量的取值范圍及它能執(zhí)行的運算操作 ; 編譯時能為其分配相應(yīng)的存儲單元,并確編譯時能為其分配相應(yīng)的存儲單元,并確 定其存儲形式,同時根據(jù)其定義檢查該變量所定其存儲形式,同時根據(jù)其定義檢查該變量所 進行的運算合法性進行的運算合法性 。 定義一般形式:定義一般形式:類型類型變量標識符表;變量標識符表; 整型變量的定義整型變量的定義 int age, index;int age, index;/定義整形變量定義整形變量 long int count; long int count; /定義長整形變量定義長整形變量 或或long cou
20、nt;long count; short int day, month; short int day, month; /定義短整形變量定義短整形變量 或或short day, month;short day, month; unsigned addr;unsigned addr;/定義無符號整變量定義無符號整變量 存儲單元的字長一般依賴于各存儲單元的字長一般依賴于各 系統(tǒng)的硬件環(huán)境,略有不同。系統(tǒng)的硬件環(huán)境,略有不同。 說明說明: 單精度和雙精度的值域相同單精度和雙精度的值域相同1010- -38 38 101038 38,雙精度僅 ,雙精度僅 提高精度。提高精度。 在運算過程中,單精度變量的
21、值總是轉(zhuǎn)換為雙精度在運算過程中,單精度變量的值總是轉(zhuǎn)換為雙精度 后再參與運算的,目的是提高精度。后再參與運算的,目的是提高精度。 實型變量的定義實型變量的定義 float x, y;float x, y;/定義單精度實型變量(定義單精度實型變量(4 4字節(jié))字節(jié)) double z;double z;/定義雙精度實型變量(定義雙精度實型變量(8 8字節(jié))字節(jié)) 字符型變量定義字符型變量定義 void main()void main() char c1=a, c2=b;char c1=a, c2=b;/定義字符變量并賦初值定義字符變量并賦初值 c1=c1c1=c1- -32; c2=c232;
22、c2=c2- -32;32;/轉(zhuǎn)換為大寫字母轉(zhuǎn)換為大寫字母 printf(%c %c ,c1,c2); printf(%c %c ,c1,c2); /以字符形式輸出以字符形式輸出 printf(%d %dprintf(%d %d n,c1,c2); n,c1,c2); /以整數(shù)形式輸出以整數(shù)形式輸出 輸輸出出: A B A B 65 6665 66 字符型量可直接參與數(shù)值運算,字符型量可直接參與數(shù)值運算, 它的值是該變量當前所含字符在它的值是該變量當前所含字符在 字符集中的序數(shù)值,因此實際上字符集中的序數(shù)值,因此實際上 是一個整數(shù)值是一個整數(shù)值 。 字符型量與整數(shù)的關(guān)系及其數(shù)值運算和輸出形式
23、11000010 字符字符a a和和b b的存儲形式同整數(shù)的存儲形式同整數(shù)9797和和9898,實際上是一,實際上是一 個整數(shù)值;由此個整數(shù)值;由此C C語言中字符型量從屬與整型數(shù)據(jù),可語言中字符型量從屬與整型數(shù)據(jù),可 參與算術(shù)運算;參與算術(shù)運算; 由此字符型量既可用字符形式由此字符型量既可用字符形式% %c c輸出,也可采用整輸出,也可采用整 型型% %d d輸出,具體采用那一種方式,由計算機根據(jù)輸出輸出,具體采用那一種方式,由計算機根據(jù)輸出 格式符或運行環(huán)境自動判定。格式符或運行環(huán)境自動判定。 10100010 a97 ASCII碼碼轉(zhuǎn)成二進制轉(zhuǎn)成二進制 b98 ASCII碼碼轉(zhuǎn)成二進制轉(zhuǎn)
24、成二進制 a97 ASCII碼碼轉(zhuǎn)成二進制轉(zhuǎn)成二進制 b98 ASCII碼碼轉(zhuǎn)成二進制轉(zhuǎn)成二進制 字符存儲單元 c1 c2 字符串變量實際上是一個分量為字符型量的字符數(shù)組字符串變量實際上是一個分量為字符型量的字符數(shù)組 以上語句說明以上語句說明namename和和addressaddress是兩個字符串變量,是兩個字符串變量, 分別含有分別含有2020個分量和個分量和3232個分量,每個分量是一個字符。個分量,每個分量是一個字符。 定義形式:定義形式: char char 標識符標識符 整形表達式整形表達式 ; :數(shù)組:數(shù)組下標運算符,因此標識符屬于數(shù)組名性下標運算符,因此標識符屬于數(shù)組名性 質(zhì)
25、,方括號中的整型表達式的值確定數(shù)組的分量個數(shù)。質(zhì),方括號中的整型表達式的值確定數(shù)組的分量個數(shù)。 例:例:char name20,address32;char name20,address32; 關(guān)于字符數(shù)組的說明關(guān)于字符數(shù)組的說明: 存放在字符數(shù)組中的字符串應(yīng)以字符串結(jié)束符存放在字符數(shù)組中的字符串應(yīng)以字符串結(jié)束符 0 0 束,占一個字節(jié)的存儲空間,但不計入串長之內(nèi)。它束,占一個字節(jié)的存儲空間,但不計入串長之內(nèi)。它 只是作為字符串的結(jié)束標志而已。此規(guī)定是為了編譯只是作為字符串的結(jié)束標志而已。此規(guī)定是為了編譯 程序和用戶能判斷字符串的實際長度,便于字符串的程序和用戶能判斷字符串的實際長度,便于字符
26、串的 處理。處理。 數(shù)組分量序號的排列從數(shù)組分量序號的排列從0 0開始,故開始,故namename和和addressaddress數(shù)數(shù) 組的分量分別為組的分量分別為: name0, name1, name3, name0, name1, name3, ,name19name19。 address0, address0, address0, address0, address0, address0, ,address0,address0, 正確區(qū)分正確區(qū)分字符串長度字符串長度與存放字符串與存放字符串所需空間大小所需空間大小 數(shù)組名代表相應(yīng)數(shù)組存儲單元的起始地址,即通過數(shù)組名代表相應(yīng)數(shù)組存儲單元的
27、起始地址,即通過 數(shù)組名可以查找定位相應(yīng)字符串的存儲位置,可以說數(shù)組名可以查找定位相應(yīng)字符串的存儲位置,可以說 字符數(shù)組名代表相應(yīng)字符串。當數(shù)組名作為函數(shù)的參字符數(shù)組名代表相應(yīng)字符串。當數(shù)組名作為函數(shù)的參 數(shù)時,數(shù)據(jù)傳遞的方式屬于傳地址方式。數(shù)時,數(shù)據(jù)傳遞的方式屬于傳地址方式。 name name 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 1919 20002000 0 0nasgnahz 0 0nasgnahz 變量的初始化變量的初始化 語法形式:語法形式:數(shù)據(jù)類型數(shù)據(jù)類型 變量名變量名 = 常量表達式;常量表達式; main( )main( ) int
28、 age=19; char scx=int age=19; char scx=M M; ; double pi=3.141592653;double pi=3.141592653; int convert=int convert=A A- -a a; ; 執(zhí)行語句;執(zhí)行語句; 數(shù)據(jù)說明定義數(shù)據(jù)說明定義 語句,在編譯語句,在編譯 時有效。時有效。 數(shù)據(jù)說明定義數(shù)據(jù)說明定義 語句,在編譯語句,在編譯 時有效。時有效。 執(zhí)行語句,運執(zhí)行語句,運 行期間有效。行期間有效。 執(zhí)行語句,運執(zhí)行語句,運 行期間有效。行期間有效。 2.5 2.5 表達式和表達式語句表達式和表達式語句 表達式的組成:表達式的組
29、成: 1)1) 表達式可由常數(shù)、變量、函數(shù)調(diào)用、運算表達式可由常數(shù)、變量、函數(shù)調(diào)用、運算 符、及圓括號內(nèi)的表達式組成;符、及圓括號內(nèi)的表達式組成; 2)2) 單個常數(shù)、單個變量、或單個函數(shù)調(diào)用也單個常數(shù)、單個變量、或單個函數(shù)調(diào)用也 都可以看作是一個表達式。都可以看作是一個表達式。 表達式是計算機求解問題的基礎(chǔ)表達式是計算機求解問題的基礎(chǔ) 表達式的學(xué)習(xí)過程中須注意表達式的表達式的學(xué)習(xí)過程中須注意表達式的 書寫和運算規(guī)則,關(guān)心表達式的值和類書寫和運算規(guī)則,關(guān)心表達式的值和類 型,要求熟練正確地掌握各類表達式的型,要求熟練正確地掌握各類表達式的 求解技能。求解技能。 2.5 2.5 表達式和表達式語
30、句表達式和表達式語句 豐富的運算符與數(shù)據(jù)可構(gòu)成多種表達式,表達式求豐富的運算符與數(shù)據(jù)可構(gòu)成多種表達式,表達式求 值時各運算分量之間類型的轉(zhuǎn)換極為靈活,適用性強。值時各運算分量之間類型的轉(zhuǎn)換極為靈活,適用性強。 整形表達式整形表達式 浮點表達式浮點表達式 算術(shù)運算符算術(shù)運算符 關(guān)系運算符關(guān)系運算符 邏輯運算符邏輯運算符 增減運算符增減運算符 賦值運算符賦值運算符 位運算符位運算符 算術(shù)表達式算術(shù)表達式 關(guān)系表達式關(guān)系表達式 邏輯表達式邏輯表達式 賦值表達式賦值表達式 逗號表達式逗號表達式 條件表達式條件表達式 表達式運算的最后結(jié)果作為表達式的值,表達式運算的最后結(jié)果作為表達式的值, 該值的類型即
31、為表達式的類型該值的類型即為表達式的類型 一、整表達式一、整表達式: :對整型量進行運算最終得整型值的表達式對整型量進行運算最終得整型值的表達式 允許的運算:允許的運算: +-/自增自減運算符自增自減運算符 * */ %/ %/乘、除和求余運算符乘、除和求余運算符 + +- -/加減運算符加減運算符 說明:說明: (1 1)C C的運算符除具有優(yōu)先級外還具有結(jié)合方向的特的運算符除具有優(yōu)先級外還具有結(jié)合方向的特 征征,相關(guān)規(guī)則如下:,相關(guān)規(guī)則如下: C C的運算符的運算符的相關(guān)規(guī)則的相關(guān)規(guī)則: 1)1) 同一優(yōu)先級的運算符級別相同,運算次序由結(jié)合方向同一優(yōu)先級的運算符級別相同,運算次序由結(jié)合方向
32、 決定。決定。 2)2) 不同的運算符要求有不同的運算對象。不同的運算符要求有不同的運算對象。 按運算符所要求的對象個數(shù)分類,有:按運算符所要求的對象個數(shù)分類,有: 單目運算符:單目運算符:- -a, i+, a, i+, -i i 雙目運算符:雙目運算符:3*5/43*5/4 三目運算符:三目運算符:x ? a : bx ? a : b ( ? : ( ? : 為條件運算符為條件運算符) ) 3)3) 運算符與對象的結(jié)合:運算符與對象的結(jié)合:C C編譯程序在處理時盡可能多編譯程序在處理時盡可能多 地地“自左而右自左而右”將若干字符組成運算符(在處理標識將若干字符組成運算符(在處理標識 符、關(guān)
33、鍵字時也按同一原則處理)符、關(guān)鍵字時也按同一原則處理) a+b+c+a+b+c+( (a+)+(b+)+(c+)a+)+(b+)+(c+)處理為處理為 學(xué)習(xí)運算符時應(yīng)特別注意運算符的三個特性學(xué)習(xí)運算符時應(yīng)特別注意運算符的三個特性 運算符運算符優(yōu)先級優(yōu)先級結(jié)合方向結(jié)合方向運算對象運算對象 + -高高從右到左從右到左單目運算符單目運算符 * /* /% % + +- -低低 (2 2)兩整型量相除商為整數(shù)。兩整型量相除商為整數(shù)。 17/517/53 35/17 05/17 0 (3 3)模運算符模運算符% %的兩個操作數(shù)必須為整型。的兩個操作數(shù)必須為整型。 從左到右從左到右雙目運算符雙目運算符 使
34、用說明:使用說明: +i, i, -i i在使用在使用i i之前,先使之前,先使i i的值加的值加( (減減)1)1; i+, ii+, i-在使用在使用i i之后,再使之后,再使i i的值加的值加( (減減)1)1; (4 4)+自增運算符和自增運算符和自減運算符,是兩個自減運算符,是兩個 特殊的單目運算符,其運算對象只能是變量特殊的單目運算符,其運算對象只能是變量( (一般為一般為整整 型型) ) ,不能是表達式,操作結(jié)果分別使變量增,不能是表達式,操作結(jié)果分別使變量增1 1或減或減1 1。 增減運算符出現(xiàn)在表達式中的運算符多于一個的情增減運算符出現(xiàn)在表達式中的運算符多于一個的情 況況 設(shè)
35、設(shè)i i的原值都為的原值都為3 3,以下各式的運算過程和結(jié)果分別為:,以下各式的運算過程和結(jié)果分別為: 1)1) j=+i j=+i 運算過程:運算過程:i=i+1, j=i; i=i+1, j=i; 運算結(jié)果:運算結(jié)果:j=4, i=4j=4, i=4 2)2) k=i+ k=i+ 運算過程:運算過程:k=i, i=i+1; k=i, i=i+1; 運算結(jié)果:運算結(jié)果:k=3, i=4k=3, i=4 3)3) l=l=-i i 運算過程:運算過程:i=ii=i- -1, l=i; 1, l=i; 運算結(jié)果:運算結(jié)果:l=2, i=2 l=2, i=2 4)4) m=im=i運算過程:運算過
36、程:m=i, i=im=i, i=i- -1; 1; 運算結(jié)果:運算結(jié)果:m=3, i=2 m=3, i=2 若如若如 +i; i+;i; i+;-i;i; i i-; ; 形式形式,分別作為單一分別作為單一 表達式語句操作時,前綴和后綴的操作結(jié)果是相同表達式語句操作時,前綴和后綴的操作結(jié)果是相同 的。的。 (此情況常出現(xiàn)在循環(huán)語句中)(此情況常出現(xiàn)在循環(huán)語句中) 二、浮點表達式:二、浮點表達式: 由浮點量及相應(yīng)運算符組成,表達式由浮點量及相應(yīng)運算符組成,表達式的的值為實型值為實型, ,允允 許的運算:許的運算: 運算符運算符優(yōu)先級優(yōu)先級結(jié)合方向結(jié)合方向運算對象運算對象 * /* /高高 +
37、+ - -低低 從左到右從左到右雙目運算符雙目運算符 設(shè)有:設(shè)有:int i, j; float x, y; double r;int i, j; float x, y; double r; 則以則以 下都為合法的表達式:下都為合法的表達式: 123.456123.456e5,e5,x, sqrt( r ) /x, sqrt( r ) /簡單表達式簡單表達式 ( ( i + x ) * ( j + r )i + x ) * ( j + r )/組合表達式組合表達式 說明:說明: 1)1) 可以整型、單精度和雙精度量的混合運算,類型轉(zhuǎn)可以整型、單精度和雙精度量的混合運算,類型轉(zhuǎn) 換規(guī)則為:將整型
38、、單精度量都轉(zhuǎn)換為雙精度量,換規(guī)則為:將整型、單精度量都轉(zhuǎn)換為雙精度量, 然后進行運算。然后進行運算。 1)1) 轉(zhuǎn)換和運算是逐步進行的。轉(zhuǎn)換和運算是逐步進行的。 ( ( i + x ) * ( j + r )i + x ) * ( j + r ) 整整單單整整雙雙 雙雙+ + 雙雙 雙雙 雙雙+ + 雙雙雙雙+ + 雙雙 雙雙 雙雙 * * 雙雙雙雙 * * 雙雙+ + r r 雙雙 雙雙+ + r r 雙雙 說明:說明: (1 1)綜合運算時相關(guān)運算符的優(yōu)先級:綜合運算時相關(guān)運算符的優(yōu)先級: 算術(shù)運算符算術(shù)運算符關(guān)系運算符關(guān)系運算符賦值運算符賦值運算符 高高低低 (2 2)關(guān)系表達式的值是
39、整型的。當關(guān)系(為真)時其關(guān)系表達式的值是整型的。當關(guān)系(為真)時其 值為值為1 1;當關(guān)系不成立(為假)時其值為;當關(guān)系不成立(為假)時其值為0 0;即以即以1 1代表代表 “真真”,以,以0 0代表代表“假假”,所以說,所以說C C語言的關(guān)系表達式語言的關(guān)系表達式 的值是整型的,并可參與通常的算術(shù)運算。的值是整型的,并可參與通常的算術(shù)運算。 注意:注意: 正確書寫數(shù)學(xué)表達式,區(qū)別由運算規(guī)則不同引起的正確書寫數(shù)學(xué)表達式,區(qū)別由運算規(guī)則不同引起的 差異。設(shè)差異。設(shè)x x的值為的值為2 2,則,則 數(shù)數(shù) 學(xué)學(xué) 表表 達達 式:式:1 1 ? x x ? 1 1不成立不成立 錯誤的錯誤的C C表達
40、式表達式 :- -1 = 1 = x = 1x = 1成立成立 正確的正確的C C表達式表達式 :( (- -1 = 1 = x) int a=1,b=2; 則表達式則表達式 ( ( a = 0 ) float f; double d; long e;int i; float f; double d; long e; 10 + 10 + a a + i * f + i * f d / ed / e 雙雙 雙雙 雙雙 雙雙 雙雙 雙雙雙雙 雙雙 雙雙雙雙9797 整整107107 9797 整整107107 雙雙 雙雙 雙雙 雙雙 雙雙雙雙 運算是逐步完成的,類型轉(zhuǎn)換由系統(tǒng)自動進行。運算是逐步完
41、成的,類型轉(zhuǎn)換由系統(tǒng)自動進行。 (2 2)賦值轉(zhuǎn)換賦值轉(zhuǎn)換: 其值和類型由賦值運算符左邊的變量確定。其值和類型由賦值運算符左邊的變量確定。 (3 3)強制類型轉(zhuǎn)換:語法形式)強制類型轉(zhuǎn)換:語法形式 (類型標識符)表達式(類型標識符)表達式 作用:將表達式的值顯式地轉(zhuǎn)換成所指定的類型。作用:將表達式的值顯式地轉(zhuǎn)換成所指定的類型。 例:設(shè)例:設(shè)int a; float x, y;int a; float x, y; (int)5.3%3(int)5.3%3,sqrt(double)a)sqrt(double)a),(int)(x+y)(int)(x+y) 九、長度運算符九、長度運算符 語法形式:語
42、法形式: 例:例: sizeof(int)sizeof(int)/結(jié)果一般為結(jié)果一般為4 4 sizeof(double) /sizeof(double) /結(jié)果一般為結(jié)果一般為8 8 sizeof(sizeof(類型標識符類型標識符) ) 或或sizeof sizeof 表達式表達式 作用:給出其運算對象以字節(jié)為單位的存儲單元的長度。作用:給出其運算對象以字節(jié)為單位的存儲單元的長度。 十、表達式語句十、表達式語句 語法形式:語法形式: 例:例:i+i+x=y+1x=y+1/是表達式是表達式 printf(printf(“x=%dx=%d n n”,n ) ,n ) /函數(shù)調(diào)用表達式函數(shù)調(diào)用表
43、達式 表達式表達式 ; 表達式語句,即表達式后加分號構(gòu)成的語句。其中表達式語句,即表達式后加分號構(gòu)成的語句。其中 分號是語句的終結(jié)符,是語句的組成部分。分號是語句的終結(jié)符,是語句的組成部分。 i+;i+;x=y+1x=y+1;/是表達式語句是表達式語句 printf(printf(“x=%dx=%d n n”,n ),n );/函數(shù)調(diào)用語句函數(shù)調(diào)用語句 a=3*4, a*5,a+8a=3*4, a*5,a+8;/逗號表達式語句逗號表達式語句 十一、十一、C C語言的運算符、優(yōu)先級、結(jié)合性和運語言的運算符、優(yōu)先級、結(jié)合性和運 算對象算對象 優(yōu)優(yōu) 先先 級級 類類 別別 運算運算 符符 含義含義
44、要求運算要求運算 對象的個對象的個 數(shù)數(shù) 結(jié)合結(jié)合 方向方向 1 1 初初 等等 運運 算算 符符 ( ) - - . . 圓括號圓括號 下標運算符下標運算符 指向結(jié)構(gòu)體成員運指向結(jié)構(gòu)體成員運 算符算符 結(jié)構(gòu)體成員運算符結(jié)構(gòu)體成員運算符 自自 左左 至至 右右 附錄附錄III III 運算符運算符和和結(jié)合性結(jié)合性 優(yōu)優(yōu) 先先 級級 類類 別別 運算符運算符含義含義 要求運算要求運算 對象的個對象的個 數(shù)數(shù) 結(jié)合結(jié)合 方向方向 2 2 單單 目目 運運 算算 符符 ! ! + - - - ( (類型類型) ) * * char c; c=getchar();c=getchar(); while(
45、 c != EOF )while( c != EOF ) putchar(c);putchar(c); c=getchar();c=getchar(); 運行測試結(jié)果:運行測試結(jié)果: abcde12345abcde12345 abcde12345abcde12345 ZZ # #include include void main()void main() char c;char c; while(c=getchar()!=EOF) putchar(c);while(c=getchar()!=EOF) putchar(c); EOFEOF是文件結(jié)束標志。在是文件結(jié)束標志。在“stdio.hstd
46、io.h”中有如下定義:中有如下定義: # #define EOF define EOF - -1 1 程序運行時,程序運行時,getchar()getchar()遇文件結(jié)束標志返回值遇文件結(jié)束標志返回值- -1 1 ; ; UNIXUNIX系統(tǒng)鍵盤標準輸入文件的結(jié)束符號為:系統(tǒng)鍵盤標準輸入文件的結(jié)束符號為:CTRL+DCTRL+D ; 微機系統(tǒng)鍵盤標準輸入文件的結(jié)束符號為:微機系統(tǒng)鍵盤標準輸入文件的結(jié)束符號為:CTRL+ZCTRL+Z ; 該程序可優(yōu)化該程序可優(yōu)化 成如下形式:成如下形式: 鍵盤輸入的是一個字符流,空格是字符,回車也是鍵盤輸入的是一個字符流,空格是字符,回車也是 字符,除非使
47、用格式符作數(shù)值的轉(zhuǎn)換處理。字符,除非使用格式符作數(shù)值的轉(zhuǎn)換處理。 C C表達式高效靈活,在一個表達式中可以完成多種功表達式高效靈活,在一個表達式中可以完成多種功 能的運算。這種運算是按算符的優(yōu)先級和結(jié)合方向性,能的運算。這種運算是按算符的優(yōu)先級和結(jié)合方向性, 逐步完成的。因此要注意表達式的實際運算次序。逐步完成的。因此要注意表達式的實際運算次序。 # #include include void main()void main() char c;char c; while(c=getchar()!=EOF) putchar(c);while(c=getchar()!=EOF) putchar(c
48、); 該程序可優(yōu)化該程序可優(yōu)化 成如下形式:成如下形式: 例例1 1:自頂向下逐步求精的編程方法示例自頂向下逐步求精的編程方法示例 為進行交通流量的統(tǒng)計,在路邊設(shè)置了一個車輛探為進行交通流量的統(tǒng)計,在路邊設(shè)置了一個車輛探 測器,探測器用線路連接到計算機。當有車輛通過時,測器,探測器用線路連接到計算機。當有車輛通過時, 探測器傳送信號探測器傳送信號1 1給計算機;探測器中有一計時器,每給計算機;探測器中有一計時器,每 一秒鐘發(fā)出一個數(shù)字信號一秒鐘發(fā)出一個數(shù)字信號2 2傳送給計算機,該計算機從傳送給計算機,該計算機從 開始探測時計時,探測結(jié)束時傳遞一個數(shù)字信號開始探測時計時,探測結(jié)束時傳遞一個數(shù)字
49、信號0 0給計給計 算機,編寫程序讀入這一系列的信號并輸出下列結(jié)果:算機,編寫程序讀入這一系列的信號并輸出下列結(jié)果: 進行了多長時間的統(tǒng)計調(diào)查;進行了多長時間的統(tǒng)計調(diào)查; 記錄到的車輛數(shù);記錄到的車輛數(shù); 在車輛之間最長的時間間隔是多少在車輛之間最長的時間間隔是多少 一、數(shù)據(jù)分析一、數(shù)據(jù)分析 1 1 車輛通過車輛通過 輸入信號(輸入信號(signsign)2 2 秒鐘信號秒鐘信號 0 0 探測結(jié)束探測結(jié)束 進行了多長時間的統(tǒng)計調(diào)查(進行了多長時間的統(tǒng)計調(diào)查(secondsseconds) 記錄到的車輛數(shù)(記錄到的車輛數(shù)(numsnums) 在車輛之間最長的時間間隔(在車輛之間最長的時間間隔(l
50、ongestlongest) 是多少是多少, ,由此派生出的車輛間隔變量由此派生出的車輛間隔變量 (interinter) 要求要求 輸出輸出 結(jié)果結(jié)果 進行了多長時間的統(tǒng)計調(diào)查(進行了多長時間的統(tǒng)計調(diào)查(secondsseconds) 記錄到的車輛數(shù)(記錄到的車輛數(shù)(numsnums) 在車輛之間最長的時間間隔(在車輛之間最長的時間間隔(longestlongest) 是多少是多少, ,由此派生出的車輛間隔變量由此派生出的車輛間隔變量 (interinter) 要求要求 輸出輸出 結(jié)果結(jié)果 根據(jù)以上數(shù)據(jù)特性,類型都可定義為整型(根據(jù)以上數(shù)據(jù)特性,類型都可定義為整型(intint) 二、自頂向
51、下,逐步求精的算法描述過程二、自頂向下,逐步求精的算法描述過程 一級算法:一級算法: beging beging 1.1. 數(shù)據(jù)定義與賦初值數(shù)據(jù)定義與賦初值 2.2. 讀入探測信號讀入探測信號signsign 3.3. while( sign != 0 )while( sign != 0 ) 對對signsign進行處理進行處理 4 4輸出結(jié)果輸出結(jié)果 endend 有待有待 進一進一 步細步細 化求化求 精。精。 二級算法:二級算法: 3 3 while( sign != 0 )while( sign != 0 ) if( sign = 1 )if( sign = 1 ) 3.13.1處理車輛信號;處理車輛信號; elseelse if( sign = 2 )if( sign = 2 ) 3.23.2處理計時信號;處理計時信號; 3.33.3讀入下一個讀入下一個signsign 有待進一步有待進一步 細化求精細化求精 有待進一步有待進一步 細化求精細化求精 三級算法:三級算法: 3.1 3.1 beginbegin 3.1.1 3.1.1 車輛計數(shù)車輛計數(shù) nums+;nums+; 3.1.2 3.1.2 處理最大間隔處理最大間隔 if(longestinter)longest=interif(longestinter)
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度年福建省高校教師資格證之高等教育法規(guī)模擬預(yù)測參考題庫及答案
- 2023年工業(yè)涂料水性色漿資金申請報告
- 二年級數(shù)學(xué)計算題專項練習(xí)1000題匯編
- 航空航天在國防
- 單元寫作課程化實施路徑
- 貨幣信貸政策業(yè)務(wù)技能競賽活動方案
- 領(lǐng)會落實《關(guān)于大力實施可再生能源替代行動的指導(dǎo)意見》心得體會
- 2024年國際商品交易協(xié)議范本
- 2024金融中介協(xié)議模板指導(dǎo)手冊
- 2024指定物業(yè)企業(yè)職工用工協(xié)議
- 如何做好行政執(zhí)法與刑事司法相銜接課件
- 引發(fā)火災(zāi)的原因課件
- 汽車點火系實訓(xùn)項目
- 注氮機司機講義
- 數(shù)據(jù)庫工程師考試大綱
- 小學(xué)數(shù)學(xué)西南師大六年級上冊七負數(shù)的初步認識 西師大數(shù)學(xué)六上《負數(shù)的初步認識》
- Proficy-Cimplicity-軟件介紹及入門提綱
- 2023年上海聯(lián)合產(chǎn)權(quán)交易所校園招聘筆試模擬試題及答案解析
- 加強區(qū)域環(huán)境管理,提高環(huán)境質(zhì)量的關(guān)鍵
- 《思想道德與法治》 課件 第三章 弘揚中國精神
- 有關(guān)青春的英語范文高中通用28篇
評論
0/150
提交評論