




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
C程序設計C程序設計-第二章第二章數據類型、運算符與表達式C語言的數據類型常量與變量變量賦初值運算符和表達式目的、要求:掌握C的數據類型、運算符尤其是賦值運算符;掌握標識符的命名規則。C程序設計-第二章3.1C語言的數據類型C數據類型數組類型結構體類型共用體類型枚舉類型整型字符型實型(浮點型)單精度型雙精度型基本類型指針類型構造類型本章討論基本類型數據C程序設計-第二章3.2常量與變量常量:其值不隨程序的運行而改變的量變量:其值可隨程序的運行而改變的量C程序設計-第二章3.2.1常量常量字面常量(或直接常量):如3,4,6.5,’a’,’b’符號常量:以標識符代表常量的符號,一般用大寫
#definePI3.1415926不管是字面常量還是符號常量,只要是常量,其值都不能被改變!C程序設計-第二章#definePI3.14main(){……PI=3.15;……}#definePI3.1415926main(){floatr=3,s,v;s=4*PI*r*r;v=4/3*PI*r*r*r;……}C程序設計-第二章3.2.2變量main(){inta,b;/*定義變量a,b為整型*/a=123;b=456;/*賦初值*/……}變量代表內存中的一個存儲單元,用來存放數據。ab123456C程序設計-第二章注意:變量名和變量值的區別對應內存地址內存地址中存放的內容
變量名又稱為標識符,只能由字母、數字和下劃線3種字符組成,且第一個字符必須是字母或下劃線。123,def,sum,_y,y&uC程序設計-第二章12.以下正確的C語言標識符是__。(2005-1)A)%xB)a+bC)a123D)test!11.__是合法的用戶自定義標識符。(2005-12)A)ah-spksB)doubleC)<ctrl>D)_myapple課堂練習11.以下合法的用戶標識符是__。(2006-1)A)1stB)breakC)TwoWordsD)B757C程序設計-第二章(1)C語言中,大、小寫字母被認為是兩個不同的字符,變量名一般用小寫。(2)C語言中,標識符的長度無統一規定,隨系統而不同。在寫程序時盡量不要超過8個字符。(3)標識符的選取原則:“見名知意”,這也是結構化程序的特征之一。(4)C語言中,變量必須“先定義后引用”,以便在編譯時發現錯誤。注意事項C程序設計-第二章3.3整形數據無符號整型:unsignedint無符號短整型:unsignedshort無符號長整型:unsignedlong基本型:int表示,-32768~+32767短整型:shortint或short表示,同int。長整型:longint或long表示,
-2147483648~+2147483647無符號型10進制8進制:0開頭的數字序列16進制:0x開頭的數字序列整型常量整型變量整型數據C程序設計-第二章整型變量的定義變量的定義一般放在一個函數的開頭部分。[例3.2]:整型變量的定義及不同類型整型數據間的運算main(){inta,b,c,d;unsignedu;a=12;b=-24;u=10;c=a+u;d=b+u;printf("a+u=%d,b+u=%d\n",c,d);}C程序設計-第二章[例3.3]:整型數據的溢出
整型數后加l或L表示長整型,其存儲空間擴大為4個字節。整數后面加u,按無符號數方式存儲,如-12345u,則先將其轉換成補碼53191,然后按無符號數存儲。main(){inta,b;a=32767;b=a+1;printf("%d,%d\n",a,b);}C程序設計-第二章3.4浮點型(實型)數據十進制形式:由數字和小數點組成指數形式:123e3或123E3代表123*103E/e前必須有數字E/e后必須為整數單精度(float型):一般占4個字節(32位),6~7位有效數字雙精度(double型):一般占8個字節,15或16位有效數字實型常量實型變量實型數據長雙精度(longdouble型):一般占16個字節,18或19位有效數字C程序設計-第二章
計算時,C編譯系統自動將實型常量按雙精度處理,然后根據變量類型截取相應的有效位數。這樣可提高計算精度,但會降低運算速度。
若要按float型運算,在數字后加f或F即可,如1.65f。實型數據的舍入誤差:因有效數字位數有限而產生的。[例3.4]:實型數據的舍入誤差main(){floata,b;a=123456.789e5;b=a+20;printf(“a=%f\nb=%f\n”,a,b);}運行結果:a=12345678848.000000b=12345678848.000000C程序設計-第二章3.5字符型數據字符常量-單引號括起來的單個字符,如’a’,’x’等轉義字符-P48頁表3-3字符變量(char)-只能存放一個字符,在內存中占一個字節-字符在內存中以ASCII代碼形式存放-字符變量和整型變量可以通用C程序設計-第二章3.5.4字符串常量用雙引號括起的一個字符序列例如:"ABC"、"123"、"a"、"\n\t"“Goodmorning”等字符串常量的長度:所包含的字符個數字符串常量的存儲方式:
\nGoodmorning\0a\0所占存儲單元數:串長度+1例如:字符串結束標記C程序設計-第二章19.設有說明語句:chara=‘\123’;則變量a__。(2005-12)A)包含一個字符B)包含兩個字符C)包含三個字符D)說明不合法13.以下屬于合法的長整型常量的是__。(2006-1)A)5876B)0LC)2E10D)”5876”課堂練習C程序設計-第二章3.6變量賦初值main(){inta,b;/*定義變量a,b為整型*/a=123;b=456;/*賦初值*/……}C語言中,變量賦值由賦值運算符=來完成,方法為:
變量=表達式
賦值運算符的結合方向:
自右至左
a=b=c=5+3;a+b=5C程序設計-第二章3.6變量賦初值(續)C語言允許在定義變量的同時對變量初始化。如:inta=3;inta;a=3;等價inta,b,c=3;inta,b,c;c=3;等價C程序設計-第二章3.6變量賦初值(續)注意:對幾個變量賦同一個初值的方法為:
inta=b=c=5;inta=5,b=5,c=5;main(){inta=b=c=5;printf(“a=%d,b=%d,c=%c”,a,b,c);}main(){inta,b,c;a=b=c=5;printf(“a=%d,b=%d,c=%c”,a,b,c);}C程序設計-第二章3.7各類數值型數據間的混合運算整型、浮點型和字符型數據可以混合運算。
12+’a’+1.7*’b’混合運算時需要進行類型轉換,這些轉換是由系統自動進行的。類型轉換規則如下:doublefloatlongunsignedintChar,short低高C程序設計-第二章3.8.1C語言運算符類型種類算術運算符+-*/%賦值運算符=及其擴展賦值運算符關系運算符><==>=<=!=邏輯運算符!&&||位運算符<<>>~|^&條件運算符?:逗號運算符,其他運算符*、&sizeof.->[]等C程序設計-第二章3.8算術運算符和算術表達式1.基本的算術運算符:+加法運算符,或正值運算符,如4+7,+1-減法運算符,或負值運算符,如5-2,-4
*乘法運算符,如3*4
/
除法運算符,如5/4%
模運算符,或稱求余運算符,%兩側均應為整型數據,如7/4C程序設計-第二章說明沒有乘方運算符,要計算a3要寫作a*a*a的連乘,或用標準庫函數pow(a,3)“/”的運算對象可為各種類型數據,但是當進行兩個整型數據相除時,運算結果也是整型數據“%”要求運算對象必須是整型數據,功能是求兩數相除的余數,余數的符號與被除數的符號相同。9/4=29.0/4=2.259%4=1-9%4=-1C程序設計-第二章2.算術表達式和運算符的優先級與結合性由運算符將運算對象連接成的式子,稱為算術表達式。運算符的優先級可以參考附錄C。優先級相同的運算符,符合“左結合性”。a+b-ca=123;()+-++--
*/%
+-
同級同級同級
單目雙目
高
低C程序設計-第二章3.強制類型轉換運算符一般形式:(類型名)(表達式)
或(類型名)單個變量或常量(int)a(int)2.3(float)(a+b)(float)a+b說明:在強制類型轉換時,得到一個所需類型的中間變量,原來變量的類型未發生變化。main(){floatx;inti;i=(int)x;Printf(“x=%f,i=%d\n”,x,i);}C程序設計-第二章4.自增、自減運算符++--是單目運算符有前綴和后綴兩種形式前綴形式:先自增(自減)再引用;后綴形式:先引用再自增(自減);功能:前綴形式++a等價于a=a+1--a等價于a=a–1后綴形式a++等價于a=a+1a--等價于a=a–1使變量的值增1或減1C程序設計-第二章4.自增、自減運算符(舉例)當a=5時⑴
++a
表達式的值為6,且a=6
⑵
a++
表達式的值為5,且a=6⑶
b=++a
等價于a=a+1;b=a
表達式的值為6,且
a=6,b=6⑷
b=a++
等價于b=a;a=a+1
表達式的值為5,且
a=6,b=5
C程序設計-第二章4.自增、自減運算符(說明)++
和--
的運算對象只能是變量(或運算結果是變量的表達式),不能是常量(或運算結果是數值的表達式)。例如:5++、(a+2)++
不合法。具有右結合性,結合方向為從右到左。例如:–a++等價于-(a++)如果有多個運算符連續出現時,C系統盡可能多的從左到右將字符組合成一個運算符例如:i+++j
等價于(i++)+j
-i+++-j
等價于-(i++)+(-j)
C程序設計-第二章3.9賦值運算符和賦值表達式“=”為賦值運算符,如a=3;賦值表達式的一般形式為:
<變量><賦值運算符><表達式>將表達式的值存入變量對應的內存單元中
m=12b=a-2x=(x=5)a3C程序設計-第二章3.9賦值運算符和賦值表達式(說明)賦值號左邊必須是變量,右邊可以是C語言任意合法的表達式例如:n=t+2<s合法
a+b=15不合法賦值運算符僅優先于“,”,且具有右結合性例如:a=b=b*c>10等價于:a=(b=((b*c)>10))賦值號與數學中的等號含義不同例如:數學中a=b等價于b=aC語言中a=b不等價于b=aC程序設計-第二章3.9賦值運算符和賦值表達式(續)復合運算符:在賦值運算符前加上其它的運算符構成。復合運算符的目的:簡化程序和提高編譯效率。復合賦值運算符(右結合)
+=-=*=/=%=&=|=^=>>=<<=a+=3a=a+3等價x%=y+3x=x%(y+3)等價C程序設計-第二章3.10逗號運算符和逗號表達式逗號運算符:,逗號表達式:用逗號運算符連接的表達式。一般形式:表達式1,表達式2,…,表達式n
逗號表達式的值為表達式n的值。逗號表達式的優先級是最低的。如:
inta=3;a=3*5,a*4a=?C程序設計-第二章x=(a=3,6*a)賦值表達式,x=18x=a=3,6*a逗號表達式,?并不是任何地方出現的逗號都是作為逗號運算符,如:printf(“%d,%d,%d”,a,b,c);“a,b,c”為函數的3個參數,逗號為參數間的分隔符。
printf(“%d,%d,%d”,(a,b,c),b,c);“(a,b,c)”為逗號表達式,其值等于c的值。C程序設計-第二章課堂練習13.設整型變量a的值為2,下列表達式值為1的是__。(2004-1)A)a%3B)a/3C)--aD)a++14.設變量a、b、c已定義并賦值,則下列表達式中符合C語言語法規則的是__。(2004-1)A)a=5++B)a=b=c++C)a=%2D)b=a+1=216.下列式中,最終運算結果的數據類型不是單精度的表達式是__。A)(int)(3+3.0)B)1e-3C)(float)(3)D)(int)3.0+3.017.字符串”ab\x41\\34cd\102y”的長度是__。(2004-1)A)10B)12C)14D)18C程序設計-第二章課堂練習(續)18.設整型變量x,y,z
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合伙經營協議合同
- 商業房房屋買賣合同
- 購銷合同奶粉
- 承包合同轉讓協議
- 合同違約民事起訴狀
- 資金投資合同協議
- 佛山二手房三方協議合同
- 監控工程轉包合同協議書
- 車行購車協議合同
- 供貨合同協議框架協議
- 大小便觀察與護理
- 2025年-重慶市安全員-A證考試題庫附答案
- 2025陜西核工業工程勘察院有限公司招聘(21人)筆試參考題庫附帶答案詳解
- 2025年山東、湖北部分重點中學高中畢業班第二次模擬考試數學試題含解析
- 湖北省孝感市高新區2023-2024學年七年級下學期數學期中考試試卷(含答案)
- 8.2 誠信經營 依法納稅課件-高中政治統編版選擇性必修二法律與生活
- 領導帶班及24小時值班制度
- 2025年超高功率大噸位電弧爐項目發展計劃
- 具身智能機器人擴散策略Diffusion Policy環境安裝與運行
- 2024年四川省高等職業教育單獨考試招生文化素質考試中職英語試卷
- 人教A版必修第二冊高一(下)數學6.3.2-6.3.3平面向量正交分解及坐標表示【課件】
評論
0/150
提交評論