




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版第第3章章 C語言源程序的基本元素語言源程序的基本元素 本章主要介紹C中的基本符號、單詞(保留字)以及如何用單詞構(gòu)成語句。學(xué)習(xí)目標:掌握標識符和保留字掌握常量和變量掌握基本類型的定義掌握不同類運算符的優(yōu)先級和結(jié)合性掌握C語句的種類掌握基于控制臺的常用輸入輸出函數(shù)C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版第第3章章 C源程序的基本元素源程序的基本元素 3.1 標識符和保留字標識符和保留字 3.2 常量和變量常量和變量 3.3 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 3.4 運算符和表達式運算符和表達式 3.5 C語言源程序構(gòu)成語言源程序構(gòu)成 C語言
2、程序設(shè)計大連理工大學(xué)出版社 2009年8月出版3.1 標識符和保留字標識符和保留字C語言源程序包含的基本符號有以下幾種:語言源程序包含的基本符號有以下幾種: 大小字母:大小字母:az、AZ,C語言區(qū)分大小寫。語言區(qū)分大小寫。 09共共10個數(shù)字:個數(shù)字:09。 分隔符:分隔符:,、 ;、(空格)、(空格)、 運算符:各類運算符運算符:各類運算符C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版 由若干基本符號按一定的規(guī)則組成構(gòu)成標由若干基本符號按一定的規(guī)則組成構(gòu)成標識符。標準識符。標準C語言規(guī)定:標識符是以字母或下語言規(guī)定:標識符是以字母或下劃線劃線_開頭,后面跟上字母、數(shù)字或下劃線開頭,后
3、面跟上字母、數(shù)字或下劃線_的組合。標識符往往用來表示變量名、常的組合。標識符往往用來表示變量名、常量名、函數(shù)名。當然,標識符的長度并不是無量名、函數(shù)名。當然,標識符的長度并不是無限的,實際上,編譯時標識符的最長有效長度限的,實際上,編譯時標識符的最長有效長度是是8,即標識符由,即標識符由8個字符組成。個字符組成。 C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版 標識符分為兩種:自定義標識符和標準標識符分為兩種:自定義標識符和標準標識符。像我們常說的標識符主要是指標識符。像我們常說的標識符主要是指自定義標識符,標準標識符又稱為保留自定義標識符,標準標識符又稱為保留字,具有特殊的含義。字,具
4、有特殊的含義。 C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版 C語言中有語言中有32個保留字,這個保留字,這32個保留字分為以下個保留字分為以下四種類型:四種類型: (1)數(shù)據(jù)類型保留字:int、signed、unsigned、short、long、float、double、void、char、struct、enum、union。 (2)控制語句保留字:if、else、while、do、for、switch、case、return、break、continue、default、goto。 (3)存儲屬性保留字:extern、static、auto、register。 (4)其它保留字:
5、sizeof、typedef、const、volatile。 C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版 例:例:int a ,b; /*定義兩個整型變量定義兩個整型變量*/b=2*a; /*計算變量計算變量b的值的值*/printf(“%d%d”,a,b); /*輸出變量輸出變量a、b的值的值*/注:該程序段中,注:該程序段中,a、b是自定義標識符表示變量名,是自定義標識符表示變量名,int是保留字,表示數(shù)據(jù)類型。是保留字,表示數(shù)據(jù)類型。返回返回C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版3.2 常量和變量常量和變量3.2.1常量和常量宏常量和常量宏 任何程序的運行都離不開
6、數(shù)據(jù)的處理,在程任何程序的運行都離不開數(shù)據(jù)的處理,在程序中有些數(shù)據(jù)被安排在二進制的指令代碼中,序中有些數(shù)據(jù)被安排在二進制的指令代碼中,這類數(shù)據(jù)稱為常量,常量有兩種:字面常量這類數(shù)據(jù)稱為常量,常量有兩種:字面常量和符號常量。字面常量是指直接將值寫出來和符號常量。字面常量是指直接將值寫出來的常量,符號常量是指以標識符形式給出的的常量,符號常量是指以標識符形式給出的常量。使用符號常量前,必須要用宏定義來常量。使用符號常量前,必須要用宏定義來定義。定義。C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版宏定義的格式: #define 宏名宏名 常量常量 宏名是一個標識符,常量就是指宏名所代表的那個值
7、。這種形式往往用來定義常量,所以又稱為常量宏。源程序使用常量宏的好處是便于修改。C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版例:輸入一個圓的半徑,輸出圓的周長和面積。例:輸入一個圓的半徑,輸出圓的周長和面積。代碼:代碼:#include”stdio.h”#define PI 3.1415926 /*用宏定義#define常量宏定義符號常量PI*/int main(void) float r,s,c; /*定義三個單精度變量r,s,c*/ printf(“請輸入半徑:n”); /*輸出提示信息*/ scanf(“%f”,&r) ; /*輸入變量r的值*/ c=2*PI*r; /*計算c的
8、值*/ s=PI*r*r; /*計算s的值*/ printf(“c=%f,s=%fn”,c,s); /*輸出c,s的值*/ return 0;C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版注意:注意:1. 在一個源程序中,如果一個常量經(jīng)常要被引用,在一個源程序中,如果一個常量經(jīng)常要被引用,可以定義常量宏??梢远x常量宏。2. 常量宏可以嵌套定義。如:常量宏可以嵌套定義。如: #define N 9 #define M 2+N3. 常量宏是一條預(yù)處理命令,不是一條語句,因此后常量宏是一條預(yù)處理命令,不是一條語句,因此后面不能加分號。面不能加分號。C語言程序設(shè)計大連理工大學(xué)出版社 2009年
9、8月出版3.2.2 變量變量 程序執(zhí)行過程中根據(jù)需要在主存中單獨開辟空間來存放,這些空間稱為變量空間,簡稱變量變量。其特征是其中的數(shù)據(jù)在程序執(zhí)行過程中允許被修改。為了在源程序中能方便的去訪問這些空間,程序員為每個變量空間進行命名,即變量名變量名。變量名是標識符的一種,因此其命名規(guī)則必須符合標識符的命名規(guī)則。 C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版 變量必須由程序員在源程序中先定義,之后才可以使用,否則編譯器會報非法標識符的錯誤。 變量定義格式變量定義格式: 類型名類型名 變量名;變量名; 例1:int a; 例2:char ch=A; C語言程序設(shè)計大連理工大學(xué)出版社 2009年
10、8月出版 例例1中,若int類型數(shù)據(jù)在主存中占據(jù)2個字節(jié)空間的話,則操作系統(tǒng)會在變量a所在的程序執(zhí)行前,為變量a在主存中分配2個字節(jié)的主存空間。對于例例2來講,則操作系統(tǒng)會為變量ch分配一個字符空間,同時還為該空間賦初值為A。 C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版 每個變量空間中第一個存儲單元的地址稱為該變量的首地址,因為編制好的程序裝入主存的起始地址無法確定,因此沒辦法確定程序中的變量地址。如果程序員編寫程序過程中要使用某些變量的地址,則一般可以通過取地址運算&來獲得。獲取變量地址的格式:獲取變量地址的格式:&變量名變量名返回返回C語言程序設(shè)計大連理工大學(xué)出版社 2009年8
11、月出版3.3 基本數(shù)據(jù)類型基本數(shù)據(jù)類型實型基本類型構(gòu)造類型指針類型文件類型空類型整型字符型枚舉型數(shù)據(jù)類型數(shù)組結(jié)構(gòu)體共用體 圖3-1 數(shù)據(jù)類型C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版3.3.1 類型及存儲類型及存儲1類型及存儲類型及存儲 任何一個程序在運行過程中的變量都存任何一個程序在運行過程中的變量都存儲在內(nèi)存中,數(shù)據(jù)的類型決定了該數(shù)據(jù)在內(nèi)儲在內(nèi)存中,數(shù)據(jù)的類型決定了該數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)。存中所占的字節(jié)數(shù)。 C語言提供的主要基本數(shù)據(jù)類型有三種,語言提供的主要基本數(shù)據(jù)類型有三種,見表見表3-1。 C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版 類型種類關(guān)鍵字字節(jié)數(shù)表示范圍
12、整型有符號基本整型signed int2-3276832767有符號短整型signed shortint2-3276832767有符號長整型signed long int4-2147483648+2147483647無符號基本整unsigned int2065535無符號短整型unsigend short int 2065535無符號長整型unsigend long int 404294967295實型單精度float4-3.4e-38+3.4e+38雙精度double8-1.7e-308+1.7e+308字符型字符型char10255表表3-1C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月
13、出版 注意:注意:(1)表中的)表中的表示可省略。表示可省略。(2)表中各類型所占的字節(jié)數(shù)是由計算機)表中各類型所占的字節(jié)數(shù)是由計算機系統(tǒng)決定。這里列出的是系統(tǒng)決定。這里列出的是Turbo c編譯系編譯系統(tǒng)所分配的字節(jié)數(shù)。統(tǒng)所分配的字節(jié)數(shù)。C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版 2不同類型的常量不同類型的常量(1)整型常量)整型常量 整型常量形式有以下三種:整型常量形式有以下三種: 十進制整型常量十進制整型常量:由09十個數(shù)字組成,如2、100U、 78L等; 八進制整型常量八進制整型常量:由07八個數(shù)字組成且以0開頭,如01、025、077等; 十六進制整型常量十六進制整型常量
14、:由09、A-F或a-f十六個數(shù)字組成且以0X或0 x開頭,如0 x12、0 x1ab、0 x1FA等。 默認的整型常量類型是long int 類型,L表示長整型,U表示無符號,都可以小寫。C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版 (2)實型常量)實型常量實型常量形式有以下兩種:小數(shù)點型:數(shù)據(jù)中包含了小數(shù)點,如0.23、12.123、45.67等。如果小數(shù)點前面是0或者后面是0,那么這個0可以省略,但小數(shù)點不可以省,如.23、23.等。指數(shù)型:由尾數(shù)部分和指數(shù)部分組成(底為10),中間由E或e分隔,如1230可以寫成如123E+1、0.123+4、12300E-1等。但要注意的是E
15、或e前后必須有數(shù)字,且E或e后面的數(shù)據(jù)類型必須是整數(shù)。默認的實型常量類型是雙精度類型,如果要表示單精度類型,需要在后面加個F或f。C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版(3)字符常量)字符常量 字符常量是以一對單撇號引起的單個字符。字符常量是以一對單撇號引起的單個字符。如:如:a、b和和?。另一類字符常量。另一類字符常量稱為轉(zhuǎn)義字符,它們一般都有特殊的含義。稱為轉(zhuǎn)義字符,它們一般都有特殊的含義。 所有的轉(zhuǎn)義字符都是以所有的轉(zhuǎn)義字符都是以開頭,后面跟開頭,后面跟字符或數(shù)字。歸納起來,轉(zhuǎn)義字符有以下字符或數(shù)字。歸納起來,轉(zhuǎn)義字符有以下幾種形式:幾種形式: C語言程序設(shè)計大連理工大學(xué)出
16、版社 2009年8月出版形式例子含義字母a響鈴n換行,光標移到下一行的開頭t水平制表(Tab鍵)r回車,光標移到本行的開頭f換頁,光標移到下頁的開頭b退格,將光標移到前一列符號代表一個反斜杠字符代表一個單撇號字符”代表一個雙撇號字符數(shù)字 ddd代表一個字符,其中ddd是這個字符ASCII碼的八進制形式字母數(shù)字xhh代表一個字符,其中hh是這個字符ASCII碼的十六進制形式C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版(4)字符串常量 C語言中有一種特殊的常量字符串常量。字符串常量是由一對雙撇號引起的字符序列。例:”123”,”asd124”,”niio”。 C語言規(guī)定:任何字符串常量都有
17、一個結(jié)束標記0。 a與與”a”的區(qū)別的。的區(qū)別的。C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版3使用類型定義變量使用類型定義變量 變量在使用之前,必須先定義,定義的同時,可以賦初值。變量定義的一般格式: 類型類型 變量名列表;變量名列表; C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版例例1: unsigned a; short b1,b2; int c1=3,c1=4; 例例2: float f1; float f2=3.0f,f3; double d1,d2; 例例3: char ch1; char ch2=A,ch3=B; C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出
18、版3.3.2 類型轉(zhuǎn)換類型轉(zhuǎn)換 前面介紹了C語言中的三種基本數(shù)據(jù)類型,當這些不同類型的數(shù)據(jù)在一起進行運算時,它們之間的類型是存在關(guān)聯(lián)的,這種關(guān)聯(lián)體現(xiàn)為自動類型轉(zhuǎn)換或隱含類型轉(zhuǎn)換。 除此外,C語言還提供了另一種類型轉(zhuǎn)換:強制類型轉(zhuǎn)換。 C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版例題例題3-1:編寫一簡單程序,在其中定義一個:編寫一簡單程序,在其中定義一個int類型變量和類型變量和char類型變量,之后獲取這兩變類型變量,之后獲取這兩變量的首地址并輸出。量的首地址并輸出。代碼:代碼:#include”stdio.h”int main(void)int i=10; char ch=A; p
19、rintf(“&i=%ld,&ch=%ldn”,&i,&ch); return 0;C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版(1)自動類型轉(zhuǎn)換)自動類型轉(zhuǎn)換 自動類型轉(zhuǎn)換是由機器直接完成自動類型轉(zhuǎn)換是由機器直接完成 圖3-2 類型轉(zhuǎn)換C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版 通過自動類型轉(zhuǎn)換規(guī)則,我們可以通過自動類型轉(zhuǎn)換規(guī)則,我們可以知道表達式知道表達式a+b-c( a為為float型型,b和和c為為char型)的計算過程。型)的計算過程。C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版(2)強制類型轉(zhuǎn)換)強制類型轉(zhuǎn)換 (類型名)表達式(類型名)表達式 類型名是指要
20、轉(zhuǎn)換成的類型,又稱為目標類型,表達式是指要轉(zhuǎn)換的數(shù)據(jù),又稱為源數(shù)據(jù),可以是常量、變量和其它表達式。C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版例:例: int a; float b; (float)a (int)b (int)(b+a) (int)b+a返回返回C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版3.4 運算符和表達式運算符和表達式 C語言提供了豐富的運算符和表達式。常量、變量與運算符相結(jié)合可以構(gòu)成各種各樣的表達式。運算符不僅具有不同的優(yōu)優(yōu)先級先級,而且同一級運算符還有結(jié)合性結(jié)合性。如果是從左向右計算稱這個運算符為左結(jié)合性,否則稱為右結(jié)合性。表達式的計算不僅要考慮運算符
21、的優(yōu)先級,還要考慮運算符的結(jié)合性。C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版C語言有以下幾類運算符:語言有以下幾類運算符:1算術(shù)運算符:算術(shù)運算符:+,*,/,%,+,。2關(guān)系運算符:,關(guān)系運算符:,= =,=,=,!=。3邏輯運算符:!,邏輯運算符:!,&,|。4位運算符:,位運算符:,|,&。5賦值運算符:賦值運算符:=。6逗號運算符:,。逗號運算符:,。C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版7條件運算符:?:。條件運算符:?:。8求字節(jié)運算符:求字節(jié)運算符:sizeof。9類型轉(zhuǎn)換運算符:類型轉(zhuǎn)換運算符:()。10下標運算符:下標運算符: 。11指針運算符:指針運
22、算符:*,&。12分量運算符:分量運算符:.,。C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版3.4.1 算術(shù)運算符和算術(shù)表達式算術(shù)運算符和算術(shù)表達式 C語言提供的算術(shù)運算符如下:(假設(shè)變量語言提供的算術(shù)運算符如下:(假設(shè)變量a已定義)已定義) 類型運算符作用舉例雙目或單目+加法或正號9+5、+4減法或負號43、2*乘法2*84/2、4.0/2C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版不同算術(shù)運算符的運算規(guī)則如下不同算術(shù)運算符的運算規(guī)則如下 : 操作符操作數(shù)的類型結(jié)果類型+整型、實型、字符型依據(jù)類型轉(zhuǎn)換規(guī)則整型、實型、字符型依據(jù)類型轉(zhuǎn)換規(guī)則*整型、實型、字符型依據(jù)類型轉(zhuǎn)換規(guī)則/
23、整型、實型、字符型依據(jù)類型轉(zhuǎn)換規(guī)則%整型整型+整型變量整型整型變量整型C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版例:例:int a=3,b=4,c=7;float d=3.0;則b/a=1,b/d=1.333333,c%b=3。C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版例題例題3-2 不同類型數(shù)據(jù)間的算術(shù)運算不同類型數(shù)據(jù)間的算術(shù)運算 #include “stdio.h” int main(void) int a=10,b=5,c,d; float e; c=a/b; d=a/5.0; e=7.0*2%10; printf(“c=%d,d=%d,e=%fn”,c,d,e);
24、return 0;C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版2自增、自減運算符自增、自減運算符 自增、自減運算符的作用和運算規(guī)則自增、自減運算符的作用和運算規(guī)則 。 +或或放在變量前表示變量自身先加或放在變量前表示變量自身先加或減減1,再使用變量的值進行其它運算;,再使用變量的值進行其它運算; +或或放在變量后表示先使用變量的值放在變量后表示先使用變量的值進行其它運算后,變量自身再加或減進行其它運算后,變量自身再加或減1。 C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版例:例: int a=3,b; 分析下面兩條賦值語句分別執(zhí)行完后分析下面兩條賦值語句分別執(zhí)行完后a,b的值:的
25、值: b=+a; b=a+; C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版 第條語句的執(zhí)行過程是:a=a+1,b=a;因此,執(zhí)行完后a=4,b=4。 第條語句的執(zhí)行過程是:b=a,a=a+1;因此,執(zhí)行完后a=4,b=3。C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版例題例題3-3 自增、自減運算符的用法和運算規(guī)則自增、自減運算符的用法和運算規(guī)則#include “stdio.h”int main(void)int a=3,b=4; int c,d; printf(“a=%d,b=%dn”,a,b); c=a+; d=b-; printf(“c=%d,d=%dn”,c,d); p
26、rintf(“a=%d,b=%dn”,a,b); return 0;運行結(jié)果:a=3,b=4c=3,d=4a=4,b=3C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版3算術(shù)表達式算術(shù)表達式 算術(shù)運算符和括號將操作數(shù)連接起來算術(shù)運算符和括號將操作數(shù)連接起來且符合且符合C語言語法的式子,稱為算術(shù)表達語言語法的式子,稱為算術(shù)表達式。操作數(shù)可以是表達式或有值函數(shù)調(diào)用式。操作數(shù)可以是表達式或有值函數(shù)調(diào)用等。等。 例:例: int a; char b; float c; 表達式a+b*c、a*(b+c) C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版 在進行表達式求值時,先按照優(yōu)先級的高次序進
27、行運算,對于同級運算符則考慮它的結(jié)合性。 例: a+b%c*d(a、b、c、d已定義);C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版3.4.2 關(guān)系運算符和關(guān)系表達式關(guān)系運算符和關(guān)系表達式 1關(guān)系運算符關(guān)系運算符 C語言提供的關(guān)系運算符如下:(假設(shè)變量語言提供的關(guān)系運算符如下:(假設(shè)變量a,b已定義)已定義)類類型型運運算算符符含義含義舉例舉例雙雙目目大于ab小于a=大于或等于a=b=小于或等于a6、4!=4、a=b、abc、a=c等都是關(guān)系表達式。等都是關(guān)系表達式。 C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版關(guān)系運算符是比較兩個操作數(shù)之間的關(guān)關(guān)系運算符是比較兩個操作數(shù)之間的
28、關(guān)系,如果關(guān)系表達式為真就用系,如果關(guān)系表達式為真就用1來表示,否來表示,否則用則用0來表示。因此,任何一個來表示。因此,任何一個C關(guān)系表達式關(guān)系表達式的值只能兩種之一:的值只能兩種之一:0或或1。例:例:32結(jié)果為結(jié)果為?,(a=4)!=4結(jié)果為結(jié)果為?。C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版對于復(fù)雜關(guān)系表達式求值時,先算對于復(fù)雜關(guān)系表達式求值時,先算、=和和= ,再算,再算= =和和!=,最后同級關(guān)系運算符,最后同級關(guān)系運算符按照左結(jié)合性進行計算。按照左結(jié)合性進行計算。 例:例:int a=3,b=6,c=5;則表達式則表達式ac= =b的值為的值為?。依據(jù)依據(jù)關(guān)系運算符的優(yōu)
29、先級和結(jié)合性可依據(jù)依據(jù)關(guān)系運算符的優(yōu)先級和結(jié)合性可知,先算知,先算“”,最后算,最后算“= =”。C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版3.4.3 邏輯運算符和邏輯表達式邏輯運算符和邏輯表達式1邏輯運算符邏輯運算符C語言提供的邏輯運算符如下:(假設(shè)變量語言提供的邏輯運算符如下:(假設(shè)變量a,b已定義)已定義)類型運算符含義舉例雙目&且、與a&b|或a|b單目!非!aC語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版2邏輯表達式邏輯表達式用邏輯運算符和括號將操作數(shù)連接起來用邏輯運算符和括號將操作數(shù)連接起來且符合且符合C語言語法的式子,稱為邏輯表達式。語言語法的式子,稱為邏輯表達式
30、。其中操作數(shù)可以是表達式或有值函數(shù)調(diào)用等。其中操作數(shù)可以是表達式或有值函數(shù)調(diào)用等。當操作數(shù)為非當操作數(shù)為非0時用時用1表示。任何一個表示。任何一個C邏輯邏輯表達式的值只能兩種之一:表達式的值只能兩種之一:0或或1。例:例:3&6、4|4、a&b、a&b|c、!a C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版設(shè)有兩個表達式分別為設(shè)有兩個表達式分別為e1和和e2,由,由e1和和e2組成組成的邏輯表達式的邏輯表達式e1|e2、!e1和和e1&e2結(jié)果如下:結(jié)果如下:e1e2!e1e1&e2e1|e2非0(1)非0(1)011非0(1)00010非0(1)10100100C語言程序設(shè)計大連理工
31、大學(xué)出版社 2009年8月出版對于復(fù)雜邏輯表達式求值時,先算!,再對于復(fù)雜邏輯表達式求值時,先算!,再算算& ,最后算,最后算|,同級關(guān)系運算符按照左結(jié),同級關(guān)系運算符按照左結(jié)合性進行計算。合性進行計算。 例:有以下定義例:有以下定義int a=3,b=6,c=5;則邏輯表達式!則邏輯表達式!a&b|c的值為的值為?。 C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版例:有以下定義例:有以下定義 int a=7,b=8;當當e1為為a=2,e2為為b=4,邏輯表達式,邏輯表達式e1|e2的的結(jié)果是結(jié)果是1。但如果問執(zhí)行這個表達式后,但如果問執(zhí)行這個表達式后,a和和b的值分別的值分別為多少呢
32、?為多少呢?C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版像這種情況,必須繼續(xù)考慮以下規(guī)則:像這種情況,必須繼續(xù)考慮以下規(guī)則:對于e1|e2,如果e1表達式的值為非0,就不要去計算e2的值了,即e2不執(zhí)行。反之,則要計算。對于e1&e2,如果e1表達式的值為0,就不要去計算e2的值了,即e2不執(zhí)行。反之,則要計算。因此,因此,a等于等于2,b保持不變。保持不變。C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版3.4.4 位運算符位運算符C語言提供的位運算符,如下表所示:語言提供的位運算符,如下表所示:(假設(shè)假設(shè)a,b已定義已定義)類型運算符含義舉例運算規(guī)則雙目向左移位a向右移位an向
33、右移出n位后,如果a是有符號數(shù)就補符號位,否則就補零。單目各位取反a將a的各位取反:0變1,1變0。雙目|按位或a|b將a和b的對應(yīng)位進行或運算:0|0=0 0|1=1 1|0=1 1|1=1&按位與a&b將a和b的對應(yīng)位進行與運算:0&0=0 0&1=0 1&0=0 1&1=1按位異或ab將a和b的對應(yīng)位進行異或運算:00=0 01=1 10=1 11=0C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版 因此,兩個操作數(shù)要進行位運算,必須因此,兩個操作數(shù)要進行位運算,必須先將兩個操作數(shù)分別轉(zhuǎn)化成二進制,再按位先將兩個操作數(shù)分別轉(zhuǎn)化成二進制,再按位運算符的運算規(guī)則進行運算。如果在一個表運算
34、符的運算規(guī)則進行運算。如果在一個表達式中含有多個位運算符,必須考慮位運算達式中含有多個位運算符,必須考慮位運算符的優(yōu)先級和結(jié)合性。在位運算符中,優(yōu)先符的優(yōu)先級和結(jié)合性。在位運算符中,優(yōu)先級由高到低依次為:!級由高到低依次為:! 、&|,左結(jié)合性。左結(jié)合性。C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版3.4.5 賦值運算符和賦值表達式賦值運算符和賦值表達式1賦值運算符賦值運算符 C語言提供了兩種賦值運算符:單賦值運算符語言提供了兩種賦值運算符:單賦值運算符和復(fù)合賦值運算符。和復(fù)合賦值運算符。 “=”就是最常用的單賦值運算符,復(fù)合賦值運就是最常用的單賦值運算符,復(fù)合賦值運算符是指其它運算符
35、和算符是指其它運算符和“=”結(jié)合在一起構(gòu)成的,結(jié)合在一起構(gòu)成的,其它運算符有其它運算符有+、-、*、/、%和和、&、|。比如:比如:+=、4?3:4的值為的值為4。 C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版3.4.7 優(yōu)先級和結(jié)合性優(yōu)先級和結(jié)合性 很多情況下,一個表達式可能包含多種很多情況下,一個表達式可能包含多種運算符。為了能夠正確計算表達式的值,我運算符。為了能夠正確計算表達式的值,我們就需要了解不同類運算符之間的優(yōu)先級。們就需要了解不同類運算符之間的優(yōu)先級。表表3-9列出了列出了C語言中運算符之間的優(yōu)先級及語言中運算符之間的優(yōu)先級及同級運算符的結(jié)合性。同級運算符的結(jié)合性。C語
36、言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版優(yōu)先級運算符含義要求運算對象的個數(shù)結(jié)合方法1 ( ) 圓括號下標運算符指向結(jié)構(gòu)體成員運算符結(jié)構(gòu)體成員運算符左結(jié)合2 ! + - - (類型) * & sizeof邏輯非運算符按位取反運算符自增運算符自減運算符負號運算符類型轉(zhuǎn)換運算符指針運算符地址運算符長度運算符 單目運算符右結(jié)合3 * / %乘法運算符除法運算符求余運算符2 左結(jié)合4 + -加法運算符減法運算符2 左結(jié)合5 左移運算符右移運算符2 左結(jié)合6 =關(guān)系運算符 2 左結(jié)合7 !等于運算符不等于運算符2 左結(jié)合8 &按位與運算符 2左結(jié)合9 按位異或運算符 2左結(jié)合10 按位或運算符 2
37、 左結(jié)合11 &邏輯與運算符 2 左結(jié)合12 邏輯運算符 2 左結(jié)合13 ?:條件運算符 3 左結(jié)合14= += -= *=/= = 2;printf(“a=%d,b=%dn”,a,b);printf(“a和b的關(guān)系是:%dn”,a!=b);printf(“c=%dn”,c);printf(“float 和 char運算結(jié)果占的字節(jié)數(shù):%dn”,sizeof(f1+ch1);return 0 C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版運行結(jié)果:運行結(jié)果:a=4,b=3a和b的關(guān)系是:1c=1float和char運算結(jié)果占的字節(jié)數(shù):4返回返回C語言程序設(shè)計大連理工大學(xué)出版社 2009年
38、8月出版3.5 C源程序構(gòu)成源程序構(gòu)成 前面幾節(jié)介紹了構(gòu)成前面幾節(jié)介紹了構(gòu)成C語言源程序的基語言源程序的基本語言元素。在第本語言元素。在第2章中從函數(shù)和文件的角章中從函數(shù)和文件的角度初步了解了度初步了解了C程序,知道構(gòu)成程序,知道構(gòu)成C語言源程語言源程序的基本單位是函數(shù),而函數(shù)中的基本內(nèi)容序的基本單位是函數(shù),而函數(shù)中的基本內(nèi)容則是一條一條的則是一條一條的C語句。語句。C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版 3.5.1 C語句語句 語句是語句是C源程序重要組成部分,沒有語句,程序源程序重要組成部分,沒有語句,程序也就沒有實際意義。也就沒有實際意義。C語言規(guī)定:每條語句都是以語言規(guī)定
39、:每條語句都是以“;”結(jié)束。結(jié)束。 C語言提供的語句分為以下語言提供的語句分為以下5類:類: (1)表達式語句)表達式語句 由一個表達式加上分號便構(gòu)成了一條表達式語句,由一個表達式加上分號便構(gòu)成了一條表達式語句,最常見的表達式語句是賦值表達式語句。最常見的表達式語句是賦值表達式語句。 例:例:a=8;C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版(2)流程控制語句)流程控制語句 流程控制語句是用來完成一定的控制功能。C語言提供了9條控制語句,分為下列幾類: 實現(xiàn)條件結(jié)構(gòu)的控制語句:實現(xiàn)條件結(jié)構(gòu)的控制語句:ifelse、switch.case語句語句 實現(xiàn)循環(huán)結(jié)構(gòu)的控制語句:實現(xiàn)循環(huán)結(jié)構(gòu)的
40、控制語句:while、do-while、for、continue、break、ifgoto語句語句 用于函數(shù)返回的控制語句:用于函數(shù)返回的控制語句:return語句語句C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版(3)函數(shù)調(diào)用語句)函數(shù)調(diào)用語句 函數(shù)調(diào)用語句是由函數(shù)調(diào)用和一個函數(shù)調(diào)用語句是由函數(shù)調(diào)用和一個分號組成。分號組成。例:例: printf(“%d”,a); C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版(4)復(fù)合語句)復(fù)合語句 復(fù)合語句就是將若干條語句用一對花括號括起來的語句。 例:例: #include int main(void) int a=3,b=7; print
41、f(“%d”,a+b); C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版(5)空語句)空語句空語句只有一個分號,表示什么也不做??照Z句只有一個分號,表示什么也不做。 C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版3.5.2 函數(shù)定義格式及其調(diào)用格式函數(shù)定義格式及其調(diào)用格式 函數(shù)定義的一般格式是: 類型類型 函數(shù)名(參數(shù)列表)函數(shù)名(參數(shù)列表) /*函數(shù)首部*/ /*函數(shù)體*/ 變量定義變量定義; 語句語句; 調(diào)用函數(shù)的一般格式是: 函數(shù)名(參數(shù)列表)函數(shù)名(參數(shù)列表)C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版例題例題3-5:求兩個整數(shù)的最大值。要求源程序通過調(diào)用函數(shù)求最:
42、求兩個整數(shù)的最大值。要求源程序通過調(diào)用函數(shù)求最大值。大值。代碼:代碼:#include”stdio.h”int max(int a,int b) /* max函數(shù)定義*/ int c; /*變量定義*/ if(ab) c=a; else c=b; /*控制語句求a和b的最大值*/ return c; /*函數(shù)返回語句*/ int main(void) /*main函數(shù)*/ int a,b,c; scanf(“%d%d”,&a,&b); c=max(a,b); printf(“%d”,c); return 0; C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版3.5.3 基于控制臺的輸入輸出
43、基于控制臺的輸入輸出 基于控制臺的輸入和輸出操作是通過調(diào)用基于控制臺的輸入和輸出操作是通過調(diào)用C語言提語言提供的函數(shù)來完成。輸入輸出函數(shù)有兩種:格式化輸入供的函數(shù)來完成。輸入輸出函數(shù)有兩種:格式化輸入和輸出函數(shù)以及字符的輸入和輸出函數(shù)。和輸出函數(shù)以及字符的輸入和輸出函數(shù)。 1格式化輸入輸出函數(shù)格式化輸入輸出函數(shù) (1)printf輸出函數(shù)輸出函數(shù) 調(diào)用調(diào)用printf函數(shù)的格式是:函數(shù)的格式是:printf(格式控制格式控制,變量列表變量列表);C語言程序設(shè)計大連理工大學(xué)出版社 2009年8月出版printf(格式控制格式控制,變量列表變量列表); 格式控制中可以包括兩部分,一部分是以“%”開頭的格式符,一部分是原樣輸出的字符串,變量列表指出要輸出的常量或變量。常用格式符有四種:%c、%d、%f和%s。%c表示輸出一個字符
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 項目部駐地裝修工程合同范本
- 卡車承運合同范本
- 農(nóng)業(yè)路燈采購合同范本
- 分包土方合同范本
- 化工車間采購合同范本
- 動漫聯(lián)名服務(wù)合同范本
- 公對公借貸合同范本
- 冰棍合同范本
- 賣酒銷售合同范例
- 分期付款購車合同范本
- 二副工作心得體會實習(xí)感觸
- 土壤肥料全套課件
- 旅游消費者行為學(xué)整套課件完整版電子教案課件匯總(最新)
- 學(xué)前兒童發(fā)展心理學(xué)(第3版-張永紅)教學(xué)課件1754
- 特氣供應(yīng)系統(tǒng)的規(guī)劃與設(shè)計
- 中職《機械基礎(chǔ)》全套課件(完整版)
- 勞技-中國結(jié)PPT通用課件
- 溫庭筠《望江南》ppt課件
- 口腔正畸學(xué)單詞
- 內(nèi)襯修復(fù)用HTPO管材企標
- 部編教材一年級下冊生字筆順筆畫
評論
0/150
提交評論