版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、2020/8/3,程序設計基礎(C語言)wh,1,第 2 章,基本數據類型和運算符,2020/8/3,程序設計基礎(C語言)wh,2,程序是計算機對數據進行操作的步驟,即數據與操作構成了程序的兩個要素。其中數據是程序的必要組成部分,也是程序處理的對象。在程序中,經常會使用各種數據。C語言規(guī)定,在程序中使用的每個數據都屬于一種類型。,2020/8/3,程序設計基礎(C語言)wh,3,圖2-1 C語言數據類型,不同的運算符可產生不同的表達式,2020/8/3,程序設計基礎(C語言)wh,4,* 本 章 授 課 內 容 *,2.1 C語言的詞匯 2.2 數據基本類型 2.3 運算符和表達式 2.4
2、數據類型的轉換,2020/8/3,程序設計基礎(C語言)wh,5,2.1 C語言的詞匯 1C語言字符集 定義:組成C語言源程序代碼的基本字符,它是構成C語言的基本元素。 C語言使用的基本字符: 大小寫英文字符:AZ,az 數字字符:09 特殊字符:+ = _(下劃線) ( ) * : ? ” | / 不可打印的字符:空格、換行符、制表符、響鈴符,2020/8/3,程序設計基礎(C語言)wh,6,2關鍵字 定義:具有特定含義的、專門用來說明C語言的特定成分的一類單詞。C語言的關鍵字都用小寫字母書寫,不能用大寫字母書寫。 在C89標準中共有32個關鍵字: auto break case char
3、const continue default do double else enum extern float register goto signed int long return for short if sizeof static struct switch typedef union unsigned void volatile while 在新的C99標準中,又增加了5個關鍵字: _Bool _Complex _imaginary inline restrict,2020/8/3,程序設計基礎(C語言)wh,7,2. 標識符 定義:在C語言中用于標識名字的有效字符序列。 C語言對標
4、識符作如下規(guī)定: (1) 標識符的第一個字符必須是英文字母或下劃線 (2) 如果第一個字符后面還有字符序列,則它應是英文字母、下劃線符或數字組成的序列。 (3)標識符中的英文字母大小寫是有區(qū)別的。如標識符abc與標識符ABC不相同。,2020/8/3,程序設計基礎(C語言)wh,8,試判斷下列標識符正確與否:,abcd A? Abcd 2abc _Abcd a b _2a3 yes/no r,2020/8/3,程序設計基礎(C語言)wh,9,4. 保留標識符 保留標識符是系統(tǒng)保留的一部分標識符,通常用于系統(tǒng)定義和標準庫函數的名字。例如,以下劃線開始的標識符通常用于定義系統(tǒng)變量,不能使用把這些標
5、識符來定義自己的變量。雖然它們也是合法的標識符,但是用它們來做一般標識符可能會出現(xiàn)運行錯誤。,2020/8/3,程序設計基礎(C語言)wh,10,5.注釋 在c語言程序中,括在定界符“/*”“*/”之間的內容是注釋。注釋不是程序代碼,只是一種對程序解釋說明的標注,編譯程序把注釋作為空白符跳過而不予處理。注釋不允許嵌套。 例如:/*學生成績管理程序*/、/*My c program*/,2020/8/3,程序設計基礎(C語言)wh,11,2.2 基本數據類型,2.2.1 常量和變量 2.2.2 整型常量和實型常量 2.2.3 字符常量和字符串常量 2.2.4 符號常量 2.2.5 整型變量 2.
6、2.6 實型變量 2.2.7 字符變量 2.2.8 用char定義小整數,2020/8/3,程序設計基礎(C語言)wh,12,2.2.1 常量和變量,1.常量 常量:在程序執(zhí)行的整個過程中其值不能改變的量。例如1,3.5都是常量。 字面常量:直接以值的形式出現(xiàn)的常量。 符號常量:在一個程序(或程序的一部分)中指定的用標識符代表的常量,從字面上不能直接看出其類型和值。 * 根據其書寫形式,可以區(qū)分為不同類型的常量,如整型常量、實型常量、字符常量、字符串常量等 。,2020/8/3,程序設計基礎(C語言)wh,13,編寫求圓面積和周長的程序1 :,#include void main( ) dou
7、ble area(double r),circumference(double r); printf(“area=%fn”,area(2.0); printf(“circumference=%fn”, circumference(2.0); double area(double r) /*計算圓面積*/ return(3.14159*r*r); double circumference (double r) /*計算周長*/ return(2.0*3.14159*r); ,若定義一個符號代表半徑可提高程序的可讀性,2020/8/3,程序設計基礎(C語言)wh,14,#include #defi
8、ne PI 3.14159 /*定義符號常數*/ #define R 2.0 /*定義符號常數*/ void main( ) double area(double r),circumference(double r); printf(“area=%fn”,area(R); printf(“circumference=%fn”, circumference(R); double area(double r) /*計算圓面積*/ return(PI*r*r); double circumference (double r) /*計算周長*/ return(2.0*PI*r); ,編寫求圓面積和周長
9、的程序2 :,定義符號常量的一種方法是使用#define命令,它是一種“預編譯命令”,在編譯整個程序之前系統(tǒng)會先對程序中的預編譯命令進行處理。上面#define命令的作用是在預編譯時將程序中凡出現(xiàn)PI的地方全部以3.1415926代替,凡出現(xiàn)R的地方一律以2.0代替.,2020/8/3,程序設計基礎(C語言)wh,15, 符號常量,符號常量是一種用標識符命名的常量。例如,用標識符PI代替3.14159。為了確定這種替代關系,必須先對符號常量進行定義。有兩種對符號常量進行定義的方法, 一種是宏定義: #define PI 3.14159 另一種是const常量: const float pi=3
10、.14159; 注意:定義const常量要以分號結束。這種方法有點類似于變量聲明,但是前面加有const關鍵字,并且在聲明時必須初始化。,2020/8/3,程序設計基礎(C語言)wh,16,2.變量 變量:在程序執(zhí)行的過程中其值可以改變的量。 變量都有三個特征: 它有一個變量名,變量名選用標識符。例如,可以用circum,area,sum_1等作為變量名。 變量有類型之分。例如,整型變量、實型變量、字符型變量等。 變量可以存放值。,2.2.1 常量和變量,2020/8/3,程序設計基礎(C語言)wh,17,2.2.1 常量和變量,變量的值在程序運行中的可變性可以通過賦值語句表示。 例如: i=
11、3; 如果在程序中連續(xù)執(zhí)行兩個賦值語句: i=3; i=0; 執(zhí)行結果? 另:C程序中的所有變量在使用之前,必須先對它進行聲明。聲明變量包括為變量取名和指定變量類型。 例如 float i,j; 注意:不允許在程序的同一處將同一變量聲明為不同類型。,2020/8/3,程序設計基礎(C語言)wh,18,表2-1 基本數據類型和類型名關鍵字對應表,2020/8/3,程序設計基礎(C語言)wh,19,3.變量初始化 定義:在聲明變量的同時給它賦一個初始值。 例如: int a=9,b=9; float c=1.25; int d=a+b; 說明:對于幾個變量賦同一初值,不可寫成:int a=b=9;
12、初值必須是常量或操作數是常量的算術表達式;初始化不是在編譯階段完成的,是在程序運行時執(zhí)行本函數時賦以初值的。,2020/8/3,程序設計基礎(C語言)wh,20,4.數據輸出的概念,printf( )函數:按照指定的格式把需要輸出的數據在標準輸出設備(通常是終端顯示器)上輸出。 一般格式:printf(輸出格式控制,輸出數據表列); 其中: “輸出格式控制”是用雙引號括起來的字符串,也稱“轉換控制字符串”。它包括兩種形式的信息:一種是用于說明的信息;另一種是帶有前置百分號(%)的格式轉換說明,由和格式字符組成,如d、%c等,它的作用是將輸出的數據轉換為指定的格式輸出。 “輸出數據表列”表示需要
13、輸出的一些數據,各數據之間須用逗號隔開。輸出數據的個數應與輸出格式控制中的格式轉換說明的個數相等,而且在順序上要一一對應。,2020/8/3,程序設計基礎(C語言)wh,21,【例2-2】 一個程序舉例。 /*c2_2.c*/ #include void main( ) int i=5,j; j=2; printf(i=%d,j=%d,i,j); 程序分析:程序以void main( )開始,后面跟有一對花括號,花括號中包含數據聲明部分和語句部分。凡是語句中使用的變量,都必須在數據聲明部分進行聲明。本程序中聲明了i和j兩個整型變量并對變量i進行初始化,接著對j賦值為2,最后輸出i和j的值。 程
14、序運行的結果:i=5,j=2,2020/8/3,程序設計基礎(C語言)wh,22,1.整型常量,十進制整型常量 八進制整型常量 十六進制整型常量,2.2.2 常量,2020/8/3,程序設計基礎(C語言)wh,23,.十進制整型常量,常量只能出現(xiàn)0-9的數字 可帶正、負號 多個數字的常量前不能以0開頭。 例如: 0 1 321 12,2020/8/3,程序設計基礎(C語言)wh,24,.八進制整型常量,八進制數字串以數字0開頭 其中數字為0-7。 例如: 0111 (十進制73) 011 (十進制9) 0123 (十進制83) 07777 (十進制4095),2020/8/3,程序設計基礎(C
15、語言)wh,25,.十六進制整型常量,十六進制數字串以0 x或0X開頭(即以0 x或0X作為十六進制數的前綴) 每個數字可以是09、af或AF中的數字或英文字母。 例如: 0 x11(十進制17) 0Xa5(十進制165) 0 x5a(十進制90),2020/8/3,程序設計基礎(C語言)wh,26,實型常量有兩種表示形式:,2.實型常量, 十進制小數形式: 指數形式:,2020/8/3,程序設計基礎(C語言)wh,27,1. 十進制小數形式,包含一個小數點的十進制數字串 小數點前或后可以沒有數字 小數點前或后不能同時沒有數字 例如:3.14159、.23、23.0、23.、0.0, -9.0
16、,2020/8/3,程序設計基礎(C語言)wh,28,2.指數形式,由尾數和指數兩部分組成。尾數在前,指數(整數)在后,尾數形式上與十進制小數形式相同,指數由代表10的符號e/E以及階碼組成,階碼必須是整數。 指數形式實型常量由數字、小數點、正(或負)號和字母e(或E)組成。 格式: 尾數 e(或E) +(或-)階碼,2020/8/3,程序設計基礎(C語言)wh,29,例如: 1e24(表示數值1024) 0.314159e+1(表示數值0.314159101) 23.0E-1 (表示數值2310-1) 下面是不正確的實型常量: e2(缺少十進制小數形式部分) 3E(缺少階碼) 4.e4.1(
17、不是整數階碼),2020/8/3,程序設計基礎(C語言)wh,30,3.字符常量,普通字符常量:用一對單引號括在其中的一個字符。 例如:a 、A、 y、 Y都是字符常量。 注意:單引號中的字符不能是單引號或反斜杠, 即 、 不是合法的字符常量。,2020/8/3,程序設計基礎(C語言)wh,31,轉義字符,表2-2 C語言中常用的轉義字符,2020/8/3,程序設計基礎(C語言)wh,32,說明: 字符常量中使用單引號、雙引號和反斜杠時,必須使用轉義字符表示,即在這些字符前加上反斜杠; 轉義字符中只能用小寫字母,每個轉義字符只看作一個字符。 v豎向跳格和f換頁符對屏幕沒有任何影響,但會影響打印
18、機執(zhí)行響應操作。 在C語言程序中,使用不可打印字符時,通常用轉義字符表示。,2020/8/3,程序設計基礎(C語言)wh,33,/*打印人民幣符號“ ” */,#include void main( ) printf(“Yb=n”); ,這一輸出只能在打印機上實現(xiàn),而不能在顯示器上實現(xiàn)。,2020/8/3,程序設計基礎(C語言)wh,34,字符串常量:用一對雙引號( )括起來的零個或多個字符序列。 例如: “Hello!”、“Welcome you!”、“Windows” 、“ ”等,4.字符串常量,2020/8/3,程序設計基礎(C語言)wh,35,直接輸出,格式說明符,2020/8/3,程
19、序設計基礎(C語言)wh,36,字符串常量與字符常量的比較:, 從形式上,字符常量使用單引號,而字符串常量使用雙引號。 從內部存儲來看,編譯程序在每個字符串的尾部自動加上了一個空字符NULL(即0)作為字符串的結束標志。 例如:字符串常量“a” 的存儲形式是:,2020/8/3,程序設計基礎(C語言)wh,37,【例2-3】 一個程序舉例。 /*c2_3.c*/ #include void main( ) printf(Good morning!n); printf(Good0morning!n); 程序運行后的輸出結果: Good morning! Good,注:在寫字符串時不必額外加“0”
20、,系統(tǒng)會自動在字符串的末尾加上。,2020/8/3,程序設計基礎(C語言)wh,38,2.2.3變量,1整型變量 整型變量的類型 基本型:類型說明符為int,其取值為基本整常數。 短整量:類型說明符為short int。 長整型:類型說明符為long int或long,其取值為長整常數。 無符號型:類型說明符為unsigned。 無符號基本型:類型說明符為unsigned int或unsigned。 無符號短整型:類型說明符為unsigned short 無符號長整型:類型說明符為unsigned long,2020/8/3,程序設計基礎(C語言)wh,39,整型變量的聲明,整型變量聲明的一般
21、格式: 類型說明符 變量名標識符,變量名標識符,.; 例如: int a; /*聲明a為整型變量*/ int a,b,c; /*聲明a,b,c為整型變量*/ long a,b; /*聲明a,b為長整型變量*/ unsigned a,b; /*聲明a,b為無符號整型變量*/,2020/8/3,程序設計基礎(C語言)wh,40,在書寫變量說明時,應注意以下幾點: 允許在一個類型說明符后,說明多個相同類型的變量,但各變量名之間須用逗號分隔。類型說明符與變量名之間至少應用一個空格間隔。 最后一個變量名之后必須以“;”號結尾。 變量說明必須放在變量使用之前。一般放在函數體的開頭部分。,2020/8/3,
22、程序設計基礎(C語言)wh,41,C語言中一般使用函數printf()進行輸出。 printf函數的功能:按照指定的格式把需要輸出的數據在標準輸出設備(通常是終端顯示器)上輸出。 一般格式: printf(輸出格式控制,輸出數據表列);,(3)整型變量的輸出,2020/8/3,程序設計基礎(C語言)wh,42, C語言標準沒有具體規(guī)定為整型變量分配的存儲空間(字節(jié)數)的最大字節(jié)數。對于int類型變量,有的是2字節(jié),有的是4字節(jié),等等。例如,一個占用2個字節(jié)的int類型變量,執(zhí)行賦值語句 i=6;則這個值就存儲在這2個字節(jié)中。,2020/8/3,程序設計基礎(C語言)wh,43,【例2-5】 輸
23、出所使用的計算機的C語言中的int和long int類型變量分配的字節(jié)數。 程序如下: /*c2_5.c*/ #include void main( ) printf(“Type int has a size of %u byte,sizeof(int); printf(Type long int has a size of %u byte.,sizeof(long); 程序運行結果: Type int has a size of 2 byte, Type long has a size of 4 byte.,2020/8/3,程序設計基礎(C語言)wh,44,變量的字節(jié)個數決定變量存儲值的范
24、圍。 因此,在選擇int類型的變量時,必須考慮該變量所能存放的最大值和最小值。如果變量的取值可能超過它的最大范圍,則要考慮選擇其他的類型,否則可能發(fā)生溢出的錯誤。例如:(按照2字節(jié)的int類型(3276832767)考慮) int i,j; i=30000; j=40000; j=40000超出了整型變量的最大取值范圍,結果將產生溢出。,2020/8/3,程序設計基礎(C語言)wh,45,2. 實型變量,實型變量的類型 單精度型:類型說明符為float,其數值范圍為3.4E-38到3.4E+38,有效數字為七位。 雙精度型:類型說明符為double,其數值范圍為1.7E-308到1.7E+30
25、8,有效數字為十六位。 長雙精度型:類型說明符為long double。,2020/8/3,程序設計基礎(C語言)wh,46,實型變量的聲明 實型變量是用于存放實數值的變量。實型變量聲明的一般格式: 類型說明符 變量名標識符,變量名標識符,.; 例如: float x,y; /*聲明x,y為單精度實型變量*/double a,b,c; /*聲明a,b,c為雙精度實型變量*/,2020/8/3,程序設計基礎(C語言)wh,47,實型變量的輸出,實型變量的輸出使用printf函數。 使用printf函數輸出實型變量時,其格式與輸出整型變量相似。有所不同的是,實型變量格式說明為“%f”或“%lf”。
26、,#include void main() float a=1.0; printf(“a=%f”,a); ,例如:,2020/8/3,程序設計基礎(C語言)wh,48,【例2-6】 執(zhí)行如下C程序: /*c2_6.c*/ #include void main( ) float a; a=30.456; printf(a=%f a=%5.2f a=%e,a,a,a); ,2020/8/3,程序設計基礎(C語言)wh,49,程序分析: 實型類型變量用“%f”格式輸出時,其輸出的小數位數占六位。 程序中的“%5.2f”,5表示數的輸出總寬度(占幾個字符的位置),2表示該數的小數位數。 “%e”表示按
27、指數形式輸出一個實型類型變量的值。 程序運行結果: a=30.455999 a=30.46 a=3.04560e+01,2020/8/3,程序設計基礎(C語言)wh,50,3字符型變量,字符變量的類型說明符是char。字符型變量聲明的格式如下: char 變量名,變量名,; 例如: char a; /*聲明向a為字符型變量*/char a,b,c; /*聲明a,b,c為字符型變量*/,2020/8/3,程序設計基礎(C語言)wh,51,例如:c=A,字符常量,2020/8/3,程序設計基礎(C語言)wh,52,字符變量的值通常使用printf( )函數以兩種形式輸出: 以字符本身的形式輸出,使
28、用格式轉換說明“%c”; 以整型量形式輸出,使用格式轉換說明“%d”。,例如,#include void main( ) char ch; ch=a; printf(“%c”,chn); printf(%d,ch); ,2020/8/3,程序設計基礎(C語言)wh,53,【例2-7】 執(zhí)行如下程序。 /*c2_7.c */ #include void main( ) char c1,c2,c3; unsigned char c4; c1=a; c2=A; c3=98; c4=66; printf(c1=%c,c2=%c,c3=%c,c4=%cn,c1,c2,c3,c4); printf(c1=
29、%d,c2=%d,c3=%d,c4=%dn,c1,c2,c3,c4); 程序運行結果: c1=a,c2=A,c3=b,c4=B c1=97,c2=65,c3=98,c4=66,2020/8/3,程序設計基礎(C語言)wh,54,【例2-8】 執(zhí)行如下C程序: /*c2_8.c */ #include #define PI 3.14 void main() int r=3; float s; char ch1,ch2=A; s=PI*r*r; ch1=ch2-A+a; printf(“total=%f,ch1=%d,ch1=%cn”,total,ch1,ch1); 程序運行結果: total=2
30、8.26,ch1=97,ch1=a,2020/8/3,程序設計基礎(C語言)wh,55,4.用char定義小整數,當一個字符變量被賦一個字符常量時,這個字符變量的值永遠都是正整型值。但是字符變量可以是負的。 標準C中增加了一個類型signed char來明確說明是有符號的,以保證字符變量可以存放負值。 在C中,由于字符變量的位數總是不能大于等于int類型的位數,所以,用字符變量只能存放小整數。 可以將一個字符變量的字符值賦給int型的變量。 例如: char ch=b; int a; a=ch;,98,int變量存儲char字符,2020/8/3,程序設計基礎(C語言)wh,56,算術運算符和
31、算術表達式 賦值運算與賦值表達式 增量運算符與增量表達式 關系運算符和關系表達式 邏輯運算符和邏輯表達式 條件運算符和條件表達式 逗號運算符和條件表達式 運算符優(yōu)先級和結合方向,主要內容:,2.3運算符和表達式,2020/8/3,程序設計基礎(C語言)wh,57,2.3運算符和表達式,2.3.1 表達式的概念 表達式:由運算符和運算對象組成的式子。它可以是常量或變量,也可以通過運算符與另一個表達式構成新的表達式。它是求值的規(guī)則。 這些規(guī)則是通過表達式中的運算符來實現(xiàn)的。 例如: 3.1415926、r、 3.1415926*r、 3.1415926*r*r,例如: main() int a=2
32、, b=3; float x=3.5, y=2.5; x=x+a%3*(int)(x+y)%2/4; printf(“%f”,x); 結果: 3.5,這是表達式!,2020/8/3,程序設計基礎(C語言)wh,59,按照運算符的作用不同,可將C語言中的運算符分為以下幾類: 算術運算符:+ - * / % 增量運算符:+ - 賦值運算符:= 關系運算符: = 長度運算符:sizeof 類型轉換運算符:(type) 下標運算符: 分量運算符:. - 其他運算符:,2020/8/3,程序設計基礎(C語言)wh,60,按照運算符在表達式中連接運算對象的個數,運算符還可以分為以下幾類: 單目運算符:一個
33、運算符連接一個運算對象 如:-5中的負號(-) 雙目運算符:一個運算符連接兩個運算對象 如:加號(+)、減號(-)、乘號(*)、除號(/) 三目運算符:一個運算符連接三個運算對象 如:條件運算符?:,2020/8/3,程序設計基礎(C語言)wh,61,在學習運算符時應注意以下幾點:,運算符的功能 與運算量的關系 要求運算量的個數 要求運算量的類型 運算的優(yōu)先級別 結合方向 結果的類型,2020/8/3,程序設計基礎(C語言)wh,62,2.3.1 算術運算符,算術表達式:用算術運算符或圓括號將運算對象(運算分量)連接起來的式子。 算術運算符: +、*、/、%,優(yōu)先級級別: 一級:負號(-) 二
34、級:* / % 三級:+ -,2020/8/3,程序設計基礎(C語言)wh,63,【例2-9】將下列數學表達式改寫為符合C語言規(guī)則的算術表達式。 改寫成C語言表達式為:3.14159*r*r/2.0 改寫成C語言表達式為:(m*n+pow(m,n)/(sin(x)+cos(y),2020/8/3,程序設計基礎(C語言)wh,64,注意:,a/b:如果a和b都是整型量,則其商也為整型量,小數部分被舍去。如5/2結果為2,如果a、b中有一個或都是實型量,則a和b都轉換為實型量,然后相除,結果為實型類型的量。如5.0/2,結果為2.5 。 “%”是求余運算符。如a%b,其結果為a除以b后的余數。運算
35、符“%”要求它的兩個運算對象都必須是整型量,其結果也是整型量。如5%2的結果為1。,2020/8/3,程序設計基礎(C語言)wh,65,在數學中,像564的運算結果與645的結果相同,都是7.5 表達式5*6/4卻與6/4*5的結果不一樣。 另外,不能出現(xiàn)8/(8/10)之類的表達式,應將整型常量改為實型常量:8.0/10.0。,2020/8/3,程序設計基礎(C語言)wh,66,使用算術表達式時,除了有些運算符的寫法與數學上的習慣寫法不同外,還要注意以下幾點: 雙目運算符兩側運算對象的類型如果相同,所得結果的類型將與運算對象的類型一致。如果類型不同,系統(tǒng)將按自動轉換規(guī)則進行類型轉換,然后再進
36、行相應的運算。 括號可以改變表達式的運算順序,但切記左右括號務必配對,多層括號都用圓括號“()”表示,運算時先計算內括號中表達式的值,再計算外括號中表達式的值。 當算術表達式中的運算對象為函數調用時,被調用的函數既可以是系統(tǒng)提供的標準庫函數,也可以是用戶自己編寫的函數。,2020/8/3,程序設計基礎(C語言)wh,67,2.3.2 賦值運算符,1、賦值運算符和賦值表達式 賦值運算符:= 賦值表達式:由賦值運算符構造的表達式稱為賦值表達式。 賦值表達式的一般格式: 變量=表達式,2020/8/3,程序設計基礎(C語言)wh,68,說明:,賦值運算符左邊必須是變量而不能是常量或表達式。 賦值表達
37、式的值就是賦值運算符左邊變量被賦值后的值。 當賦值運算符“=”兩側的類型不一致時,賦值時會自動進行類型轉換。 賦值運算可以連續(xù)進行。例如:a=b=c=20,2020/8/3,程序設計基礎(C語言)wh,69,2.3.2 賦值運算符,2、復合賦值運算符 定義:把算術運算符和賦值運算兩者結合在一起形成的一種復合運算符。,注意:復合運算符在書寫時,兩個運算符之間不能有空格,否則就是錯誤的。,下面5個復合運算符的等價形式: a+=b+c 等價于 a=a+(b+c) a-=b+c 等價于 a=a-(b+c) a*=b+c 等價于 a=a*(b+c) a/=b+c 等價于 a=a/(b+c) a%=b+c
38、 等價于 a=a%(b+c),2020/8/3,程序設計基礎(C語言)wh,70,【例2-10】 執(zhí)行如下C程序: /*c2_10.c */ #include void main() int m; m=3; m+=m-=m*m; printf(“m=%d n”,m); 程序運行結果:m=-12,2020/8/3,程序設計基礎(C語言)wh,71,3.賦值語句 在賦值表達式的末尾加上一個分號,就構成了一個賦值語句。 例如: a=b*c+d/e; /*一般算術賦值語句*/ a=b=c=5; /*連續(xù)賦值語句*/ a+=b; /*復合賦值語句*/,2020/8/3,程序設計基礎(C語言)wh,72,
39、【例2-11】 執(zhí)行如下C程序: /*c2_11.c */ #include void main() int m,n; m=3; n=m; printf(“n=%d n”,n); 程序執(zhí)行結果: n=3,2020/8/3,程序設計基礎(C語言)wh,73,【例2-12】 寫出下面程序的輸出結果。 /*c2_12.c */ #include void main( ) int a,b,c; a=1; b=a; printf(1) b=%dn,b); b=a+1; printf(2) b=%dn,b); a=b+1; printf(3) a=%dn,a); c=(a+b)/2; printf(4)
40、c=%dn,c); b=c+b; printf(5) b=%dn,b); ,結果: b=1 b=2 a=3 c=2 b=4,2020/8/3,程序設計基礎(C語言)wh,74,【例2-13】 閱讀下面的程序,寫出運行結果。 /*c2_13.c */ #include void main( ) char ch1,ch2; ch1=B; ch2=b; printf(ch1=%c,ch2=%cn,ch1,ch2); ch1+=1; ch2-=1; printf(ch1=%d,ch2=%dn,ch1,ch2); ch1+=ch2; ch2+=ch1; printf(ch1=%d,ch2=%dn,ch1
41、,ch2); ,結果: ch1=B,ch2=b ch1=67,ch2=97 ch1=164,ch2=161,2020/8/3,程序設計基礎(C語言)wh,75,4.表達式值的輸出 使用printf( ) 函數可以將表達式的值直接輸出。輸出表達式的值與輸出變量類似,只需將表達式直接寫入printf( )函數的輸出數據表列中即可,輸出格式控制應該與表達式的類型對應。 例如程序段: int a,b; a=1; b=2; printf(sum=%dn,a+b); printf(c=%dn,a+=b/=b); 該程序段執(zhí)行結果: sum=3 c=2,2020/8/3,程序設計基礎(C語言)wh,76,2
42、.3.3 增量運算符與增量表達式,+ 稱為自增運算符 - 稱為自減運算符 注:它們既可以前綴運算符, 又可后綴運算符。,舉例:int i; j=i+;,(功能:使變量的值加1) (功能:使變量的值減1),舉例:int i; j=+i;,1.增量運算符,2020/8/3,程序設計基礎(C語言)wh,77,2.增量表達式,增量運算符作用于變量以后,與變量一起構成了一個新的表達式,即增量表達式。 說明: 1.增量運算符所作用的運算對象只能是變量,不能是常量或由運算符構成的表達式。 2.增量表達式不能出現(xiàn)在賦值表達式的左邊。 3.在表達式中,前綴運算符和后綴運算符所起的作用不一樣。,注:慎用或,特別是
43、在同一個表達式中多次出現(xiàn)同一個變量時不要做增量運算。 例如:設i的初始值是1,則+i+i的值是多少?,2020/8/3,程序設計基礎(C語言)wh,78,【例2-14】自增運算符和自減運算符的功能的實現(xiàn)。 /*c2_14.c */ #include void main( ) int x=5,y,z; y=x+; printf(x=%d,y=%dn,x,y); z=+x; printf(x=%d,y=%d,z=%dn,-x,y+,z); printf(x=%dn,-x+); printf(x=%d,y=%d n,x,y); ,結果: x=6,y=5 x=6,y=5,z=7 x=-6 x=7,y=
44、6,2020/8/3,程序設計基礎(C語言)wh,79,思考:寫出下面程序運行后的結果,#include void main( ) int a=0; printf(%dn,+a); printf(%dn,a+); printf(%dn,a-); printf(%dn,a); ,1 1 2 1,2020/8/3,程序設計基礎(C語言)wh,80,2.3.4關系運算符與關系表達式,1.關系運算符 C語言提供了6種關系運算符: 大于 = 大于或等于 = 等于 != 不等于,2020/8/3,程序設計基礎(C語言)wh,81,2.關系表達式 定義:用關系運算符將兩個表達式連接起來的式子。 格式:表達式
45、1 關系運算符 表達式2 關系表達式的值:“真”(1)或“假 “(0)。在C語言中,凡是非0的值都是“真值”,值才是假值。 例如:已知a=2,b=5,c=1,d=6,求以下關系表達式的值 ab 其值為0 dc=5 其值為0,2020/8/3,程序設計基礎(C語言)wh,82,【例2-15】關系運算符的使用。 /*c2_15.c */ #include void main( ) int a,b,c; a=3; b=7; c=(ab); printf(c=%dn ,c); printf(c=%dn, ab); ,結果: c=0 c=0,2020/8/3,程序設計基礎(C語言)wh,83,【例2-1
46、6】關系運算符的使用。 /*c2_16.c */ #include void main( ) int a,b,c; a=3; b=7; c=(a+1)=(b-3); printf(c=%d,c); ,2020/8/3,程序設計基礎(C語言)wh,84,優(yōu)先級別: 算術運算符 (高) 關系運算符 賦值運算符 (低),c=a+b 等效于 c(a+b) ab!=c 等效于 (ab)!=c a=bc 等效于 a=(bc),例子:,2020/8/3,程序設計基礎(C語言)wh,85,#include void main( ) int x,y,z; x=3;y=2;z=0; x+=y+=z; printf
47、(%dn,x=z,x); x=yz=5; printf(%d,%d,%dn,x,y,z); ,思考:寫出下面程序運行后的結果,0 1,6 0,15,15,2020/8/3,程序設計基礎(C語言)wh,86,2.3.5 邏輯運算符,1.邏輯運算符 ! (邏輯非): 是單目運算符,如!a。若a為非零,則!a為0;若a為零,則!a為1。 否則,只要其中有一個運算對象為零,則結果就為0。 (邏輯或): 是雙目運算符,如ab。僅當兩個運算對象的值同時為0時,結果才為0;否則,結果為1。,2020/8/3,程序設計基礎(C語言)wh,87,思考:下面程序段的輸出結果是什么? a=100; printf(%
48、d, !(!a);,1,邏輯運算符的運算法則與優(yōu)先級別:,2020/8/3,程序設計基礎(C語言)wh,89,2.邏輯表達式 定義:用邏輯運算符將表達式連接起來的式子。 邏輯表達式的值:邏輯真用1表示,邏輯假用0表示。當判斷一個量的真假時,C語言把任何“非0”的數值都作為“真”,而僅把“0”值作為“假”。 注意:邏輯運算符不按照規(guī)定的優(yōu)先級計算。,2020/8/3,程序設計基礎(C語言)wh,90,【例2-17】邏輯運算符的使用。 /*c2_17.c */ #include void main( ) int a,b,c; a=b=c=1; +a ,結果: 2 2 1 1 2 1,2020/8/
49、3,程序設計基礎(C語言)wh,91,2.3.6條件運算符與條件表達式,條件運算符: ?: 條件表達式:由條件運算符構成的的式子。 格式:表達式1?表達式2:表達式3 條件表達式的求值法則:,2020/8/3,程序設計基礎(C語言)wh,92,【例2-18】通過鍵盤輸入一個字符,判斷它是否為大寫字母,如果是,將它轉換成小寫字母,如果不是,則不轉換,最終將結果輸出。 /*c2_18.c */ #include void main( ) char ch; scanf(%c, ,2020/8/3,程序設計基礎(C語言)wh,93,#include void main( ) int a,b,c; a=1; b=2; c=3; printf(%dn,bc?b+:c+); printf(%dn,bc?c+:b+); ab?printf(%d,c):printf(%d,b); ,思考:寫出下面程序運行后的結果,3 2 4,2020/8/3,程序設計基礎(C語言)wh,94,2.3.7逗號運算符與逗號表達式,逗號運算符: , 逗號表達式:用逗號運算符把兩個或多個表達式連接起來的表達式。 格式:表達式1,表達式2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專賣店勞動合同
- 工廠租賃合同樣本
- 海上貨物運輸合同公約年
- 2025飯店用工合同樣本
- 2025年浙教版必修2生物下冊月考試卷含答案
- 2025年蘇教新版九年級地理上冊月考試卷含答案
- 企業(yè)員工借款合同
- 普通個人聘用合同
- 2025年新世紀版八年級物理上冊月考試卷
- 2025招商引資租賃合同文件
- 2024年青海省西寧市選調生考試(公共基礎知識)綜合能力題庫匯編
- 2024年湖南高速鐵路職業(yè)技術學院單招職業(yè)技能測試題庫及答案解析
- 廣州綠色金融發(fā)展現(xiàn)狀及對策的研究
- 《近現(xiàn)代史》義和團運動
- 時間的重要性英文版
- 2024老舊小區(qū)停車設施改造案例
- 灰壩施工組織設計
- 韓國《寄生蟲》電影鑒賞解讀
- 三對三籃球賽記錄表
- 礦山電工知識點講解
- 物業(yè)公司服務質量檢查流程
評論
0/150
提交評論