




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、教材、參考書與課時(shí)安排 教材教材 c程序設(shè)計(jì)程序設(shè)計(jì) (第二版)(第二版) 譚浩強(qiáng)編著譚浩強(qiáng)編著 清華大學(xué)出版社清華大學(xué)出版社 參考書參考書 c語言程序設(shè)計(jì)教程語言程序設(shè)計(jì)教程 譚浩強(qiáng)譚浩強(qiáng) 高等教育出版社高等教育出版社 c高級(jí)實(shí)用程序設(shè)計(jì)高級(jí)實(shí)用程序設(shè)計(jì) 王士元王士元 清華大學(xué)出版社清華大學(xué)出版社 c程序設(shè)計(jì)試題匯編程序設(shè)計(jì)試題匯編 譚浩強(qiáng)譚浩強(qiáng) 清華大學(xué)出版社清華大學(xué)出版社 課時(shí)安排課時(shí)安排 64學(xué)時(shí)學(xué)時(shí) 熟記熟記c語言的基本概念語言的基本概念 熟悉熟悉turbo c的上機(jī)操作環(huán)境的上機(jī)操作環(huán)境 會(huì)讀、會(huì)編、會(huì)調(diào)試會(huì)讀、會(huì)編、會(huì)調(diào)試c程序程序 學(xué)習(xí)要點(diǎn) 熟記熟記c語言的語法語言的語法 學(xué)會(huì)
2、算法分析與算法設(shè)計(jì)學(xué)會(huì)算法分析與算法設(shè)計(jì) 課程目的 課程要求 課前請(qǐng)做好預(yù)習(xí)課前請(qǐng)做好預(yù)習(xí) 保持課堂安靜,頭腦清醒,思維活躍保持課堂安靜,頭腦清醒,思維活躍 認(rèn)真、獨(dú)立、按時(shí)完成并提交作業(yè)認(rèn)真、獨(dú)立、按時(shí)完成并提交作業(yè) 重視上機(jī)實(shí)踐,有效利用寶貴的上機(jī)時(shí)間重視上機(jī)實(shí)踐,有效利用寶貴的上機(jī)時(shí)間 第1章 c語言概述 第2章 程序的靈魂算法 第3章 數(shù)據(jù)類型、運(yùn)算符與表達(dá)式 第4章 最簡單的c程序設(shè)計(jì)順序程序設(shè)計(jì) 第5章 選擇結(jié)構(gòu)程序設(shè)計(jì) 第6章 循環(huán)控制 第7章 數(shù)組 第8章 函數(shù) 第9章 預(yù)處理命令 第10章 指針 第11章 結(jié)構(gòu)體與共用體 第12章 位運(yùn)算 第13章 文件 目 錄 c語言發(fā)展歷
3、史 c語言的特點(diǎn) 簡單的c程序介紹 c程序的上機(jī)步驟 第1章 c語言概述 c語言程序設(shè)計(jì) 第一章第一章 c c語言概述語言概述 1.1 c語言發(fā)展歷史語言發(fā)展歷史 程序設(shè)計(jì)語言的發(fā)展程序設(shè)計(jì)語言的發(fā)展 機(jī)器語言 匯編語言 高級(jí)語言 面向過程 面向?qū)ο?cpu指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成 如:10000000 加 10010000 減 用助記符號(hào)描述的指令系統(tǒng),可進(jìn)行地址、位操作 如 add a, b 編寫系統(tǒng)軟件,直接對(duì)硬件操作,可讀性,移植性差 面向機(jī)器的語言 c語言程序設(shè)計(jì) 第一章第一章 c c語言概述語言概述 可讀性,移植性好,編寫應(yīng)用程序 一般較難實(shí)現(xiàn)匯編語言的某些功能 如:
4、地址和位的操作 c語言兼有高級(jí)和低級(jí)語言的功能 適合寫系統(tǒng)軟件和應(yīng)用軟件 又稱中級(jí)語言 c語言發(fā)展過程語言發(fā)展過程 v產(chǎn)生背景產(chǎn)生背景 l algol 60cpl語言語言bcplb語言,寫語言,寫unix系統(tǒng)系統(tǒng) v產(chǎn)生過程產(chǎn)生過程 l 時(shí)間時(shí)間:19721973 l 地點(diǎn)地點(diǎn):美國貝爾實(shí)驗(yàn)室美國貝爾實(shí)驗(yàn)室 l 目的目的:unix操作系統(tǒng)操作系統(tǒng) l 設(shè)計(jì)人設(shè)計(jì)人: ken.thompson和和dennis.m.ritchie vc標(biāo)準(zhǔn)標(biāo)準(zhǔn) l 標(biāo)準(zhǔn)標(biāo)準(zhǔn)c: 1978年年 k int i; int a10; int f(); int *p; i+=2; i+, +i; begin end if
5、 (e) then s; var i :integer; var a:array1.10 of integer; function f():integer; var p: integer; i=i+2; i=i+1; 函數(shù)體、分程序、復(fù)合語句 條件語句 定義i為整形變量 定義a為一維數(shù)組 定義f為返回整形值函數(shù); p為指向整形變量的指針變量; 賦值語句,使i+2賦給i i自增值1,i加1賦給i 34種運(yùn)算符: 算術(shù)運(yùn)算符:+ - * / % + - 關(guān)系運(yùn)算符: = != 邏輯運(yùn)算符:! c語言程序設(shè)計(jì) 第一章第一章 c c語言概述語言概述 注釋 編譯預(yù)處理 主函數(shù) 語句 輸出: this i
6、s a c program. 例例1.1 1.1 第一個(gè)程序第一個(gè)程序this is a c program . printfprintf語句中的“nn”是換行換行 符符 例例1.21.2 求求 倆倆 個(gè)個(gè) 數(shù)數(shù) 的的 和和 /* example1.1 calculate the sum of a and b*/ #include /* this is the main program */ void main() int a,b,sum; /*定義變量*/ a=10; b=24; sum=add(a,b); printf(”sum= %dn,sum); /* this function ca
7、lculates the sum of x and y */ int add(int x,int y) int z; z=x+y; return(z); 運(yùn)行結(jié)果: sum=34 函數(shù) 語句 預(yù)處理命令 注釋 c語言程序設(shè)計(jì) 第一章第一章 c c語言概述語言概述 例例1.3 1.3 從鍵盤輸入兩個(gè)整數(shù),輸出其中較大的數(shù)從鍵盤輸入兩個(gè)整數(shù),輸出其中較大的數(shù) #include void main() int max(int x,int y) int a,b,c; scanf(“%d,%d”, c=max(a,b); printf( max = %d,c); int max(int x,int y)
8、 int z; if(xy) z=x; else z=y; return(z); scanfscanf語句中“ sum=0; for(i=1; i10;i+) for(j=1;j10;j+) sum+=i*j ; printf(“%dn”,sum); 優(yōu)秀程序員的素質(zhì)之一: 使用tab縮進(jìn) 對(duì)齊 有足夠的注釋 有合適的空行 c語言結(jié)構(gòu)特點(diǎn)語言結(jié)構(gòu)特點(diǎn) v函數(shù)與主函數(shù)函數(shù)與主函數(shù) l程序由一個(gè)或多個(gè)函數(shù)組成程序由一個(gè)或多個(gè)函數(shù)組成 l必須有且只能有一個(gè)主函數(shù)必須有且只能有一個(gè)主函數(shù)main(),可以放在程序中任一可以放在程序中任一 位置位置 l程序執(zhí)行從程序執(zhí)行從main開始,在開始,在main
9、中結(jié)束,其它函數(shù)通過嵌中結(jié)束,其它函數(shù)通過嵌 套調(diào)用得以執(zhí)行。套調(diào)用得以執(zhí)行。 v程序語句程序語句 lc程序由語句組成程序由語句組成 l用用“;”作為語句終止符作為語句終止符 v注釋注釋 l/* */為注釋為注釋,不能嵌套不能嵌套 l不產(chǎn)生編譯代碼不產(chǎn)生編譯代碼 例: /*this is the main /* of example1.1*/ */ 非法 v編譯預(yù)處理命令編譯預(yù)處理命令 c語言程序設(shè)計(jì) 第一章第一章 c c語言概述語言概述 編輯 鏈接 編譯 執(zhí)行 1.4 c程序的上機(jī)步驟 c程序開發(fā)步驟 開 始 編 輯 編 譯 連 接 執(zhí) 行 有錯(cuò)? 結(jié)果正確? 結(jié) 束 有 源程序 file.
10、c 目 標(biāo) 程 序 file.obj 庫函數(shù)和 其它目標(biāo) 程序 可執(zhí)行 目標(biāo)程 序 無 正確 不正確 file.exe c語言程序設(shè)計(jì) 第一章第一章 c c語言概述語言概述 程序代碼的錄入, 生成源程序*.c 語法分析查錯(cuò),翻譯 生成目標(biāo)程序*.obj 與其它目標(biāo)程序或庫 鏈接裝配,生成可執(zhí)行 程序*.exe 源程序目標(biāo)程序可執(zhí)行程序 內(nèi)容程序設(shè)計(jì)語言機(jī)器語言機(jī)器語言 可執(zhí)行不可以不可以可以 文件名后綴.c或.cpp.obj.exe turbo c集成開發(fā)環(huán)境集成開發(fā)環(huán)境 v配置要求配置要求 lunix,pc-dos,ms-dos,ucdos操作系統(tǒng)操作系統(tǒng) l硬盤容量約硬盤容量約2m,448
11、k ram運(yùn)行空間運(yùn)行空間 v安裝安裝turbo c l創(chuàng)建子目錄創(chuàng)建子目錄 linstall l若不是可安裝盤若不是可安裝盤,將文件拷貝到對(duì)應(yīng)的目錄下將文件拷貝到對(duì)應(yīng)的目錄下 tc *.* includelib *.*sys *.* c語言程序設(shè)計(jì) 第一章第一章 c c語言概述語言概述 v進(jìn)入進(jìn)入turbo c ld:tctc.exe l主控菜單主控菜單 u文件操作文件操作file :new load save write to u編輯操作編輯操作edit:插入插入/修改修改 塊塊 查找查找/替換替換 u編譯鏈接編譯鏈接compile link make u執(zhí)行執(zhí)行run v退出退出turb
12、o c lalt +x lalt+f ,q v幫助幫助help lf1 lctrl+f1 c語言程序設(shè)計(jì) 第一章第一章 c c語言概述語言概述 基本操作: f10-調(diào)用主菜單 f2-存盤 f3-打開 f1-幫助信息 alt+f9-compile ctrl+f9-run alt+f5-user screen alt+x -退出tc v常用熱鍵常用熱鍵 文本編輯: -移動(dòng)光標(biāo) pgup,pgdn-上下翻頁 ctrl+pgup,ctrl+pgdn-文件首尾 home行首 end行尾 ddelete insert bkspace 塊操作: ctrl+kb-塊開始標(biāo)記 ctrl+kk-塊結(jié)束標(biāo)記 ctr
13、l+kc-塊拷貝 ctrl+kv-塊移動(dòng) ctrl+ky-塊刪除 ctrl+kh-塊隱藏 程序調(diào)試: f8-step over f7-trace into f4-goto cursor ctrl+f7-add watch ctrl+f8-toggle breakpoint ctrl+f2-program reset 窗口操作: f5-窗口縮放 f6-窗口切換 c語言程序設(shè)計(jì) 第一章第一章 c c語言概述語言概述 課后作業(yè)課后作業(yè) 預(yù)習(xí)預(yù)習(xí)“題解與上機(jī)指導(dǎo)題解與上機(jī)指導(dǎo)”一書中一書中 vp181199頁的頁的14.314.10節(jié)節(jié) vp236頁實(shí)驗(yàn)頁實(shí)驗(yàn)1 教材教材p12: 1.5、 1.6、
14、1.7、 1.8題題。 注意:有關(guān)設(shè)計(jì)程序的作業(yè),必須經(jīng)過上機(jī)注意:有關(guān)設(shè)計(jì)程序的作業(yè),必須經(jīng)過上機(jī) 調(diào)試!調(diào)試! c語言程序設(shè)計(jì) 第一章第一章 c c語言概述語言概述 算法的概念 簡單算法舉例 算法的特性 怎樣表示一個(gè)算法 第2章 程序的靈魂算法 c語言程序設(shè)計(jì) 第二章第二章 程序的靈魂程序的靈魂算法算法 結(jié)構(gòu)化程序設(shè)計(jì)方法 c語言程序設(shè)計(jì) 第二章第二章 程序的靈魂程序的靈魂算法算法 程序包括的內(nèi)容:程序包括的內(nèi)容: v數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)的類型和組織形式數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)的類型和組織形式 v算法:操作步驟的描述算法:操作步驟的描述 nikiklaus wirth提出提出: 程序程序= = 數(shù)據(jù)結(jié)構(gòu)數(shù)
15、據(jù)結(jié)構(gòu)+ +算法算法 教材認(rèn)為:教材認(rèn)為: 程序程序 = =算法算法+ +數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)+ +程序設(shè)計(jì)方法程序設(shè)計(jì)方法+ +語言工具和環(huán)境語言工具和環(huán)境 靈魂靈魂加工對(duì)象加工對(duì)象工具工具 c語言程序設(shè)計(jì) 第二章第二章 程序的靈魂程序的靈魂算法算法 2.1 算法的概念算法的概念 為解決一個(gè)問題而采取的方法和步驟,就成為解決一個(gè)問題而采取的方法和步驟,就成 為算法。例如:歌曲的樂譜,建造房子等。為算法。例如:歌曲的樂譜,建造房子等。 算法核心是解決算法核心是解決“做什么做什么”和和“怎么做怎么做”的的 問題。問題。 vp15頁的例頁的例2.1,求,求15之積。之積。 v可以有多種方法,一般采用簡
16、單和運(yùn)算步驟少可以有多種方法,一般采用簡單和運(yùn)算步驟少 的。的。準(zhǔn)確、高效準(zhǔn)確、高效 計(jì)算機(jī)算法類別計(jì)算機(jī)算法類別 v數(shù)值運(yùn)算算法數(shù)值運(yùn)算算法 v非數(shù)值運(yùn)算算法非數(shù)值運(yùn)算算法 c語言程序設(shè)計(jì) 第二章第二章 程序的靈魂程序的靈魂算法算法 2.2 簡單算法舉例簡單算法舉例 例例2.1 v方法方法1:累乘:累乘 v方法方法2:用循環(huán)結(jié)構(gòu)解決,靈活、通用。:用循環(huán)結(jié)構(gòu)解決,靈活、通用。 例例2.2 v通過循環(huán)選擇打印通過循環(huán)選擇打印 例例2.3 v判斷閏年判斷閏年 例例2.4 v累加求級(jí)數(shù)的和,循環(huán)改變正負(fù)號(hào)和分母加累加求級(jí)數(shù)的和,循環(huán)改變正負(fù)號(hào)和分母加1。 例例2.5 v判斷素?cái)?shù)判斷素?cái)?shù) 課后認(rèn)真思
17、考,加 深什么是算法的概 念 c語言程序設(shè)計(jì) 第二章第二章 程序的靈魂程序的靈魂算法算法 2.3 算法的特性算法的特性 有窮性有窮性在合理范圍內(nèi)可完成在合理范圍內(nèi)可完成 確定性確定性無歧義性無歧義性 有零個(gè)或多個(gè)輸入有零個(gè)或多個(gè)輸入從外界得到信息從外界得到信息 有一個(gè)或多個(gè)輸出有一個(gè)或多個(gè)輸出問題的答案問題的答案 有效性有效性每步有確定的結(jié)果每步有確定的結(jié)果 c語言程序設(shè)計(jì) 第二章第二章 程序的靈魂程序的靈魂算法算法 2.4 怎樣表示一個(gè)算法怎樣表示一個(gè)算法 自然語言表示自然語言表示 v2.2節(jié)例。易懂,文字冗長,易歧義性節(jié)例。易懂,文字冗長,易歧義性 流程圖表示流程圖表示 v用流程圖符號(hào)構(gòu)成
18、,直觀,易懂用流程圖符號(hào)構(gòu)成,直觀,易懂 n-s流程圖表示流程圖表示 偽代碼表示偽代碼表示 計(jì)算機(jī)語言表示計(jì)算機(jī)語言表示 q 順序結(jié)構(gòu) q 選擇結(jié)構(gòu) q 循環(huán)結(jié)構(gòu) c語言程序設(shè)計(jì) 第二章第二章 程序的靈魂程序的靈魂算法算法 傳統(tǒng)流程圖流向混亂、可讀性差,所以應(yīng)該 采用結(jié)構(gòu)化流程圖。 結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì) v 基本思想:任何程序都可以用三種基本結(jié)構(gòu)表示,基本思想:任何程序都可以用三種基本結(jié)構(gòu)表示, 限制使用無條件轉(zhuǎn)移語句(限制使用無條件轉(zhuǎn)移語句(goto) v 結(jié)構(gòu)化程序:由三種基本結(jié)構(gòu)反復(fù)嵌套構(gòu)成的程序結(jié)構(gòu)化程序:由三種基本結(jié)構(gòu)反復(fù)嵌套構(gòu)成的程序 v 優(yōu)點(diǎn):結(jié)構(gòu)清晰,易讀,提高程序設(shè)計(jì)
19、質(zhì)量和效率優(yōu)點(diǎn):結(jié)構(gòu)清晰,易讀,提高程序設(shè)計(jì)質(zhì)量和效率 三種基本結(jié)構(gòu)三種基本結(jié)構(gòu) v 順序結(jié)構(gòu)順序結(jié)構(gòu) a b a b 流程圖n-s圖 c語言程序設(shè)計(jì) 第二章第二章 程序的靈魂程序的靈魂算法算法 p ab 真假 p ba 真假 v選擇結(jié)構(gòu)選擇結(jié)構(gòu) k a1a2aian k=k2 k=k1 k=kn k=ki . l二分支選擇結(jié)構(gòu)二分支選擇結(jié)構(gòu) l多分支選擇結(jié)構(gòu)多分支選擇結(jié)構(gòu) c語言程序設(shè)計(jì) 第二章第二章 程序的靈魂程序的靈魂算法算法 v循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) l當(dāng)型循環(huán)結(jié)構(gòu)當(dāng)型循環(huán)結(jié)構(gòu) l直到型循環(huán)結(jié)構(gòu)直到型循環(huán)結(jié)構(gòu) p a 假 真 當(dāng)p為真 a a p 真 假 a 直到p為真 注:注:a,b,a1
20、.an可以是一個(gè)簡可以是一個(gè)簡 單語句,也可以是一個(gè)基本結(jié)構(gòu)單語句,也可以是一個(gè)基本結(jié)構(gòu) c語言程序設(shè)計(jì) 第二章第二章 程序的靈魂程序的靈魂算法算法 三種基本結(jié)構(gòu)的共同特點(diǎn):三種基本結(jié)構(gòu)的共同特點(diǎn): v只有一個(gè)入口;只有一個(gè)入口; v只有一個(gè)出口;只有一個(gè)出口; v結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會(huì)被執(zhí)行到;結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會(huì)被執(zhí)行到; v結(jié)構(gòu)內(nèi)不存在結(jié)構(gòu)內(nèi)不存在“死循環(huán)死循環(huán)”。 c語言程序設(shè)計(jì) 第二章第二章 程序的靈魂程序的靈魂算法算法 2.5 結(jié)構(gòu)化程序設(shè)計(jì)方法結(jié)構(gòu)化程序設(shè)計(jì)方法 結(jié)構(gòu)化程序:用三種基本結(jié)構(gòu)組成的程序結(jié)構(gòu)化程序:用三種基本結(jié)構(gòu)組成的程序 基本設(shè)計(jì)思路:基本設(shè)計(jì)思路: v復(fù)雜問
21、題分解成復(fù)雜問題分解成 幾個(gè)最基本問題,再分別處理。幾個(gè)最基本問題,再分別處理。 采用的方法:采用的方法: v自頂向下;自頂向下; v逐步細(xì)化;逐步細(xì)化; v模塊化設(shè)計(jì):復(fù)雜問題按功能分成多個(gè)子模塊模塊化設(shè)計(jì):復(fù)雜問題按功能分成多個(gè)子模塊 v結(jié)構(gòu)化編碼:正確采用三種基本結(jié)構(gòu)實(shí)現(xiàn)結(jié)構(gòu)化編碼:正確采用三種基本結(jié)構(gòu)實(shí)現(xiàn) c語言程序設(shè)計(jì) 第二章第二章 程序的靈魂程序的靈魂算法算法 課后作業(yè)課后作業(yè) p36頁習(xí)題:頁習(xí)題: v2.4、2.8(結(jié)合實(shí)驗(yàn)指導(dǎo)讀懂答案)(結(jié)合實(shí)驗(yàn)指導(dǎo)讀懂答案) v用用n-s圖表示圖表示2.4題中題中 v用傳統(tǒng)流程圖求解以下問題:將一個(gè)用傳統(tǒng)流程圖求解以下問題:將一個(gè)16進(jìn)制數(shù)
22、進(jìn)制數(shù) 轉(zhuǎn)化為轉(zhuǎn)化為10進(jìn)制數(shù)進(jìn)制數(shù) 復(fù)習(xí)二進(jìn)制的基本概念復(fù)習(xí)二進(jìn)制的基本概念 v“計(jì)算機(jī)文化基礎(chǔ)計(jì)算機(jī)文化基礎(chǔ)”一書中一書中p2733頁頁 第3章 數(shù)據(jù)類型、運(yùn)算符與表達(dá)式 c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 c的數(shù)據(jù)類型 常量與變量 整型數(shù)據(jù) 實(shí)型數(shù)據(jù) 字符型數(shù)據(jù) 變量賦初值 各種數(shù)值型數(shù)據(jù)間的混合運(yùn)算 算術(shù)運(yùn)算符和算術(shù)表達(dá)式 賦值運(yùn)算符和賦值表達(dá)式 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式 c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 3.1 c的數(shù)據(jù)類型的數(shù)據(jù)類型 c c 數(shù)數(shù) 據(jù)據(jù) 類類 型型 基本類型基本類型 構(gòu)造類型構(gòu)造類型 指針類型指針類型 空類型空類型 v
23、oid 字符型字符型 char 整整 型型 實(shí)實(shí) 型(浮點(diǎn)型)型(浮點(diǎn)型) 單精度型單精度型 float 雙精度型雙精度型 double 數(shù)組類型數(shù)組類型 結(jié)構(gòu)體類型結(jié)構(gòu)體類型 共用體類型共用體類型 短整型短整型 short 長整型長整型 long 整型整型 int 枚舉類型枚舉類型 enum 數(shù)據(jù)類型決定: 1. 數(shù)據(jù)占內(nèi)存字節(jié)數(shù) 2. 數(shù)據(jù)取值范圍 3. 可以進(jìn)行的操作 c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 常量和符號(hào)常量常量和符號(hào)常量 v定義:程序運(yùn)行過程中,其值不能被改變的量(常數(shù))定義:程序運(yùn)行過程中,其值不能被改變的量(常數(shù)) v分類:直接常量、分類:直接常量
24、、符號(hào)常量符號(hào)常量 3.2 常量與變量常量與變量 類型示例 整型常量 12 、 0 、 -3 實(shí)型常量 4.6 、 -1.23 字符常量 a 、 b 符號(hào)常量 price 、 pai c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 l符號(hào)常量符號(hào)常量: :用用標(biāo)識(shí)符標(biāo)識(shí)符代表常量代表常量 u一般用大寫字母:一般用大寫字母: price 、 pi u定義格式:定義格式: #define 符號(hào)常量符號(hào)常量 常量常量 u其值在作用域內(nèi)不能改變和再賦值。其值在作用域內(nèi)不能改變和再賦值。 例例3.1 符號(hào)常量舉例符號(hào)常量舉例 #define price 30 #include void ma
25、in() int num,total; num=10; total=num*price; printf(total=%dn,total); total=300 運(yùn)行結(jié)果: 符號(hào)常量的優(yōu)點(diǎn)是: 見名知意、一改全見名知意、一改全 改改 c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 變量變量 v 定義:其值可以改變的量。定義:其值可以改變的量。 v 定義格式:定義格式:數(shù)據(jù)類型數(shù)據(jù)類型 變量名;變量名; v 變量應(yīng)該有名字,并在內(nèi)存中占據(jù)一定的存儲(chǔ)單元。變量應(yīng)該有名字,并在內(nèi)存中占據(jù)一定的存儲(chǔ)單元。 v 變量名和變量值有不同的含義變量名和變量值有不同的含義 l變量名實(shí)為一個(gè)符號(hào)地址變量
26、名實(shí)為一個(gè)符號(hào)地址 a 3 例例 變量的使用變量的使用 main() int a; a=3; printf(“a=%d,a); 變量名 變量值 存儲(chǔ)單元 c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 標(biāo)識(shí)符標(biāo)識(shí)符 v定義:標(biāo)識(shí)變量名、符號(hào)常量名、函數(shù)名、數(shù)組名、定義:標(biāo)識(shí)變量名、符號(hào)常量名、函數(shù)名、數(shù)組名、 文件名的字符串序列文件名的字符串序列名字名字。 v命名規(guī)則:命名規(guī)則: l只能由只能由字母、數(shù)字、下劃線字母、數(shù)字、下劃線組成,且組成,且第一個(gè)字第一個(gè)字 符必須是字母或下劃線符必須是字母或下劃線 l大小寫字母含義不同,一般用大小寫字母含義不同,一般用小寫小寫 l不能使用不能
27、使用關(guān)鍵字關(guān)鍵字 ltc允許最長允許最長32個(gè)字符,建議長度不超過個(gè)字符,建議長度不超過8個(gè)字符個(gè)字符 v使用:使用:先定義、后使用先定義、后使用 標(biāo)識(shí)符應(yīng)該“見名知意見名知意”,如,如 total , maxtotal , max 標(biāo)識(shí)符應(yīng)該“不宜混淆不宜混淆”,如,如 l l與與1 , o1 , o與與0 0 這些標(biāo)識(shí)符合法嗎? 1a、m.d.john、¥123、#33、 tatol、int、max c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 3.3 整型數(shù)據(jù) 整型常量(整常數(shù))的三種表示方法整型常量(整常數(shù))的三種表示方法 v十進(jìn)制整數(shù):由數(shù)字十進(jìn)制整數(shù):由數(shù)字09和正負(fù)
28、號(hào)表示和正負(fù)號(hào)表示. . 如 123,-456,0 v八進(jìn)制整數(shù):由數(shù)字八進(jìn)制整數(shù):由數(shù)字0開頭開頭, ,后跟數(shù)字后跟數(shù)字07表示表示. . 如 0123,011 v十六進(jìn)制整數(shù):由十六進(jìn)制整數(shù):由0 x開頭開頭, ,后跟后跟09,af,af表示表示. . 如 0 x123,0 xff c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 補(bǔ)充知識(shí):補(bǔ)充知識(shí): 字節(jié)和位字節(jié)和位 v內(nèi)存以字節(jié)為單元組成內(nèi)存以字節(jié)為單元組成 v每個(gè)字節(jié)有一個(gè)地址每個(gè)字節(jié)有一個(gè)地址 v一個(gè)字節(jié)一般由一個(gè)字節(jié)一般由8個(gè)二進(jìn)制位個(gè)二進(jìn)制位 組成組成 v每個(gè)二進(jìn)位的值是每個(gè)二進(jìn)位的值是0或或1 01234567 0
29、 1 2 3 4 5 6 7 8 9 10 . 7 6 4 3 2 5 1 c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 數(shù)值的表示方法數(shù)值的表示方法原碼、反碼和補(bǔ)碼原碼、反碼和補(bǔ)碼 v原碼:最高位為符號(hào)位,其余各位為數(shù)值本身的絕對(duì)值原碼:最高位為符號(hào)位,其余各位為數(shù)值本身的絕對(duì)值 v反碼:反碼: l正數(shù):反碼與原碼相同正數(shù):反碼與原碼相同 l負(fù)數(shù):符號(hào)位為負(fù)數(shù):符號(hào)位為1,其余位對(duì)原碼取反,其余位對(duì)原碼取反 v補(bǔ)碼:補(bǔ)碼: l正數(shù):原碼、反碼、補(bǔ)碼相同正數(shù):原碼、反碼、補(bǔ)碼相同 l負(fù)數(shù):最高位為負(fù)數(shù):最高位為1,其余位為原碼取反,再對(duì)整個(gè)數(shù)加,其余位為原碼取反,再對(duì)整個(gè)數(shù)加1
30、3 12 6 9 1 2 4 5 7 8 10 11 9-5=4 9+7=16=(14)12 c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 原碼反碼補(bǔ)碼 +7000001110000011100000111 -7100001111111100011111001 +0000000000000000000000000 -0100000001111111100000000 數(shù)的范圍 01111111 11111111 (-127+127) 01111111 10000000 (-127+127) 01111111 10000000 (-128+127) (用一字節(jié)表示數(shù)) v負(fù)數(shù)補(bǔ)碼轉(zhuǎn)
31、換成十進(jìn)制數(shù):最高位不動(dòng),其余位取反加負(fù)數(shù)補(bǔ)碼轉(zhuǎn)換成十進(jìn)制數(shù):最高位不動(dòng),其余位取反加1 例 補(bǔ)碼:11111001 取反:10000110 加1: 10000111=-7 c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 整型變量整型變量 v整型數(shù)據(jù)在內(nèi)存中的存放形式整型數(shù)據(jù)在內(nèi)存中的存放形式 l數(shù)據(jù)在內(nèi)存中以二進(jìn)制補(bǔ)碼形式存放數(shù)據(jù)在內(nèi)存中以二進(jìn)制補(bǔ)碼形式存放 l每一個(gè)整型變量在內(nèi)存中占每一個(gè)整型變量在內(nèi)存中占2個(gè)字節(jié)個(gè)字節(jié) 10的原碼的原碼 反碼反碼 補(bǔ)碼補(bǔ)碼 -10的原碼的原碼 取絕對(duì)值取絕對(duì)值 反碼反碼 補(bǔ)碼補(bǔ)碼 00 00 00 00 00 00 10 10 00 00 0
32、0 00 00 00 10 10 00 00 00 00 00 00 10 10 10 00 00 00 00 00 10 10 00 00 00 00 00 00 10 10 11 11 11 11 11 11 01 01 11 11 11 11 11 11 01 10 整數(shù)的最左二進(jìn) 制位是符號(hào)位, 0正、1負(fù) c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 v整型變量的分類整型變量的分類 l三類整型變量三類整型變量 有符號(hào)無符號(hào) 基本型(簡稱整型)int unsigned int 短整型short或short intunsigned short 長整型long或long in
33、tunsigned long l整數(shù)類型和取值范圍整數(shù)類型和取值范圍 turbo c 所占位數(shù)最小取值范圍 int16-32768+32767 short16-32768+32767 long32 - 2147483648+2147 483647 unsigned int16065535 unsigned short16065535 unsigned long3204294967295 c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 v整型變量的定義整型變量的定義 l先定義后使用先定義后使用強(qiáng)制類型定義強(qiáng)制類型定義 int a,b; ( 指定變量指定變量a、b為整型為整型 ) un
34、signed short c, d; (指定變量(指定變量c、d為無符號(hào)短整型為無符號(hào)短整型 ) long e,f; ( 指定變量指定變量e、f為長整型)為長整型) 00 00 00 00 00 00 11 01 00 00 00 00 00 00 00 0000 00 00 00 00 00 11 01 00 00 00 00 00 00 11 01 00 00 00 00 00 00 00 0000 00 00 00 00 00 11 01 00 00 00 00 00 00 11 01 00 00 00 00 00 00 11 01 int 型 short 型 long 型 unsign
35、ed int 型 unsigned int 型 unsigned long 型 符號(hào)位 例例3.2 整型變量的定義與使用整型變量的定義與使用 #include void main() int a,b,c,d; unsigned u ; a=12;b=-24;u=10; c=a+u;d=b+u; printf(“a+u=%d,b+u=%dn,c,d); 指定abcd為整型變量 指定u為無符號(hào)整型變量 定義放在函數(shù)開 頭的聲明部分 作用域 不同類型混合運(yùn)算, 類型自動(dòng)轉(zhuǎn)換 結(jié)果: a+u=22,b+u= -14 定義與賦值同時(shí)進(jìn)行: int a=12; c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序
36、的靈魂算法算法 v整型數(shù)據(jù)的溢出整型數(shù)據(jù)的溢出 l此情況稱為此情況稱為“溢出溢出”,運(yùn)行時(shí)不報(bào)錯(cuò),運(yùn)行時(shí)不報(bào)錯(cuò),編程時(shí)要注意編程時(shí)要注意 01 11 11 11 11 11 11 11 整型變量最大值32767 10 00 00 00 00 00 00 00 加1后是 32768的補(bǔ)碼形式 例例3.3 整型數(shù)據(jù)的溢出整型數(shù)據(jù)的溢出 #include void main( ) int a , b; a= 32767; b= a+1; printf(%d , %d n ,a,b); 32767 , -32768 運(yùn)行結(jié)果: 改為:long b; 結(jié)果是什么? c語言程序設(shè)計(jì) 第三章第三章 程序的靈
37、魂程序的靈魂算法算法 整型常量的類型整型常量的類型 v整型常量的值在整型常量的值在-32768+32767-32768+32767范圍內(nèi),編譯器認(rèn)范圍內(nèi),編譯器認(rèn) 為是為是intint類型類型 v整型常量的值超過上述范圍,而在整型常量的值超過上述范圍,而在2147483648 2147483648 +2147483647 +2147483647范圍內(nèi),編譯器認(rèn)為是范圍內(nèi),編譯器認(rèn)為是longlong類型類型 v當(dāng)系統(tǒng)定義當(dāng)系統(tǒng)定義short intshort int與與intint占內(nèi)存長度相同,則占內(nèi)存長度相同,則 兩種類型常量均可以賦給兩種類型常量均可以賦給 intint和和short i
38、ntshort int型變量型變量 v在整型常量后面加大寫在整型常量后面加大寫l l或小寫或小寫l l,則告訴編譯器,則告訴編譯器, 把該整型常量作為把該整型常量作為longlong類型處理。例:類型處理。例:123l123l、0l 0l v在整型常量后面加在整型常量后面加u u,則按無符號(hào)整型方式存放,則按無符號(hào)整型方式存放, 負(fù)數(shù)轉(zhuǎn)換成補(bǔ)碼再按無符號(hào)整型方式存放。負(fù)數(shù)轉(zhuǎn)換成補(bǔ)碼再按無符號(hào)整型方式存放。 c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 3.4 浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù) 浮點(diǎn)型常量的表示方法浮點(diǎn)型常量的表示方法 v浮點(diǎn)數(shù)(浮點(diǎn)數(shù)(float)又稱為實(shí)數(shù)()又稱為實(shí)數(shù)(r
39、eal) v兩種表示方法:兩種表示方法: l十進(jìn)制小數(shù)形式:十進(jìn)制小數(shù)形式:必須有小數(shù)點(diǎn)必須有小數(shù)點(diǎn) 如如 0.123 、.123 、123.0 、0.0 、123. l 指數(shù)形式:指數(shù)形式:e或或e之前之前后后必須有數(shù)字;指數(shù)必須為整數(shù)必須有數(shù)字;指數(shù)必須為整數(shù) 如如 123.456e0、12.3456e1 、1.23456e2 、 0.123456e3 、0.0123456e4 等等 v規(guī)范化指數(shù)形式規(guī)范化指數(shù)形式 l只有一位非零整數(shù)的指數(shù)形式只有一位非零整數(shù)的指數(shù)形式 l是指數(shù)的輸出形式是指數(shù)的輸出形式 6.28e-2 表示 6.28 10 -2 -3.0824e4 表示 3.0824
40、10 4 c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 浮點(diǎn)型變量浮點(diǎn)型變量 v浮點(diǎn)型數(shù)據(jù)在內(nèi)存中的存放形式浮點(diǎn)型數(shù)據(jù)在內(nèi)存中的存放形式 l浮點(diǎn)型數(shù)據(jù)在內(nèi)存中占浮點(diǎn)型數(shù)據(jù)在內(nèi)存中占4個(gè)字節(jié)(個(gè)字節(jié)(32位)位) l在內(nèi)存中分成在內(nèi)存中分成3部分,指數(shù)為部分,指數(shù)為2的冪次的冪次 + .314159 1 數(shù)符小數(shù)部分指數(shù) v浮點(diǎn)型變量的分類浮點(diǎn)型變量的分類 單精度 單精度 floatfloat 32位 67 雙精度雙精度 doubledouble 型型6464位位1516 長雙精度長雙精度long doublelong double型型128128位位1819 類類 型型 位數(shù) 位
41、數(shù)有效數(shù)字有效數(shù)字 float x,y; (指定(指定x、y為單精度浮點(diǎn)型變量)為單精度浮點(diǎn)型變量) double z; (指定(指定z為雙精度浮點(diǎn)型變量)為雙精度浮點(diǎn)型變量) long double t; (指定(指定t t為長雙精度浮點(diǎn)型變量)為長雙精度浮點(diǎn)型變量) c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 v浮點(diǎn)型數(shù)據(jù)的舍入誤差浮點(diǎn)型數(shù)據(jù)的舍入誤差 l數(shù)據(jù)超過有效位數(shù),則產(chǎn)生誤差數(shù)據(jù)超過有效位數(shù),則產(chǎn)生誤差 l要避免一個(gè)很大的數(shù)與一個(gè)很小的數(shù)加減要避免一個(gè)很大的數(shù)與一個(gè)很小的數(shù)加減 例例3.4 浮點(diǎn)型數(shù)據(jù)的舍入誤差浮點(diǎn)型數(shù)據(jù)的舍入誤差 #include void mai
42、n( ) float a , b; a= 123456.789e5; b= a+20; printf(%f n,b); 舍入誤差使舍入誤差使1.0/3*3 的的 結(jié)果并不等于結(jié)果并不等于1 ! 12345678848.000000 運(yùn)行結(jié)果: 浮點(diǎn)型常量的類型浮點(diǎn)型常量的類型 l浮點(diǎn)型常量一般按雙精度浮點(diǎn)型常量一般按雙精度64位處理,數(shù)后加位處理,數(shù)后加f或或f按單精度按單精度 l浮點(diǎn)型常量不分浮點(diǎn)型常量不分float和和double c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 3.5 字符型數(shù)據(jù)字符型數(shù)據(jù) 字符常量字符常量 v定義定義: :用用單引號(hào)單引號(hào)括起來的括起來的單個(gè)
43、單個(gè)字符字符或或轉(zhuǎn)義字符轉(zhuǎn)義字符 v字符常量的字符常量的值值:該字符的:該字符的ascii碼碼值值 v定義格式:定義格式:char 變量名變量名 = 值值 v轉(zhuǎn)義字符轉(zhuǎn)義字符: :反斜線后面跟一個(gè)字符或一個(gè)代碼值表示反斜線后面跟一個(gè)字符或一個(gè)代碼值表示 如 a a n t 如 a97 ,a65 n10, t9 char ch=65 與 char ch=a 與char=101是等效的 c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 表表3.3 轉(zhuǎn)義字符及其含義轉(zhuǎn)義字符及其含義 轉(zhuǎn)義字符含義 n v r a ddd t b f “ xhh 轉(zhuǎn)義字符含義 換行 垂直制表 回車(不換行)
44、響鈴 單引號(hào) 3位8進(jìn)制數(shù)代表的字符 水平制表(右移8格) 退格 換頁 反斜線 雙引號(hào) 2位16進(jìn)制數(shù)代表的字符 例例3.5 轉(zhuǎn)義字符的使用轉(zhuǎn)義字符的使用 #include void main( ) printf(“ ab ct derftgn”); printf(“htibbj k”); f gde h j k 顯示結(jié)果:顯示結(jié)果: 打印結(jié)果: fab gde h jik c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 字符變量字符變量 l存放字符常量,占用一個(gè)字節(jié),存放存放字符常量,占用一個(gè)字節(jié),存放一個(gè)一個(gè)字符字符 l定義形式:定義形式: 賦值:賦值: char c1,c2;
45、 c1=a;c2=b; 字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式及其使用方法字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式及其使用方法 l以二進(jìn)制存放字符的以二進(jìn)制存放字符的ascii碼值(碼值(0255整數(shù))整數(shù)) l與整數(shù)的存儲(chǔ)形式類似與整數(shù)的存儲(chǔ)形式類似 v以字符或整數(shù)形式輸出以字符或整數(shù)形式輸出 例例3.6 向字符變量賦整數(shù)向字符變量賦整數(shù) #include void main( ) char c1,c2 ; c1=97 ; c2=98 ; printf(“%c %c n,c1,c2); printf(“%d %d n,c1,c2); a b 97 98 運(yùn)行結(jié)果:運(yùn)行結(jié)果: 輸出形式取決于printf函數(shù)中的格式符
46、格式符為“%c”時(shí)輸出的變量值為字字 符符 格式符為“%d時(shí)輸出的變量值為整整 數(shù)數(shù) c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 對(duì)字符數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算對(duì)字符數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算 l實(shí)質(zhì)是對(duì)其實(shí)質(zhì)是對(duì)其ascii值進(jìn)行算術(shù)運(yùn)算值進(jìn)行算術(shù)運(yùn)算 例例3.7 大小寫字母的轉(zhuǎn)換大小寫字母的轉(zhuǎn)換 #include void main( ) char c1,c2 ; c1=a ; c2=b ; c1=c1-32; c2=c2-32; printf(“%c %c ,c1,c2); a b運(yùn)行結(jié)果:運(yùn)行結(jié)果: 字符型與整型間互相賦值字符型與整型間互相賦值 例:例: 互相賦值互相賦值 #includ
47、e void main( ) int c1; char c2 ; c1=a ; c2=98 ; c1=c1-32; c2=c2-32; printf(“%c %c ,c1,c2); c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 字符串常量字符串常量 v定義:用雙引號(hào)定義:用雙引號(hào)(“ ”)括起來的字符序列括起來的字符序列 “how do you do” , “china” , “a” , “$123.45” v存儲(chǔ):存儲(chǔ):每個(gè)字符串尾每個(gè)字符串尾自動(dòng)自動(dòng)加一個(gè)加一個(gè) 0 作為字作為字 符串結(jié)束標(biāo)志符串結(jié)束標(biāo)志 h e l l o 0 例例 字符串字符串“hellohello”在內(nèi)
48、存中在內(nèi)存中 例例 空串空串 “”“” 0 v字符常量與字符串常量不同字符常量與字符串常量不同 a a 0例例 a“a” 例: char ch; ch=“a”; 例: char ch; ch=a; c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 3.6 變量賦初值變量賦初值 v變量的使用:變量的使用:先定義,后使用先定義,后使用 v變量定義位置:變量定義位置:一般一般放在函數(shù)開頭放在函數(shù)開頭 v變量初始化變量初始化: :可以在定義時(shí)賦初值可以在定義時(shí)賦初值 例: int a=1,b= -3,c; float data=3.67; char ch=a; int x=1,y=1,z=1
49、; int x=y=1;( ) 編譯程序根據(jù)變量定義為其 分配指定字節(jié)的內(nèi)存單元 . 地址 int a=1, b=-3,c; a b c 2字節(jié) 2字節(jié) 2字節(jié) 地址 地址 . 內(nèi)存 1 -3 隨機(jī)數(shù) int a=b=c=3 c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 3.7 各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算 v整型、實(shí)型、字符型數(shù)據(jù)間可以混合運(yùn)算整型、實(shí)型、字符型數(shù)據(jù)間可以混合運(yùn)算 自動(dòng)轉(zhuǎn)換自動(dòng)轉(zhuǎn)換 v什么情況下發(fā)生什么情況下發(fā)生 l運(yùn)算轉(zhuǎn)換運(yùn)算轉(zhuǎn)換-不同類型數(shù)據(jù)混合運(yùn)算時(shí)不同類型數(shù)據(jù)混合運(yùn)算時(shí) l賦值轉(zhuǎn)換賦值轉(zhuǎn)換-把一個(gè)值賦給與其類型不同的變量時(shí)把一個(gè)值
50、賦給與其類型不同的變量時(shí) l輸出轉(zhuǎn)換輸出轉(zhuǎn)換-輸出時(shí)轉(zhuǎn)換成指定的輸出格式輸出時(shí)轉(zhuǎn)換成指定的輸出格式 l函數(shù)調(diào)用轉(zhuǎn)換函數(shù)調(diào)用轉(zhuǎn)換-實(shí)參與形參類型不一致時(shí)轉(zhuǎn)換實(shí)參與形參類型不一致時(shí)轉(zhuǎn)換 v運(yùn)算轉(zhuǎn)換規(guī)則運(yùn)算轉(zhuǎn)換規(guī)則: :不同類型數(shù)據(jù)運(yùn)算時(shí)先不同類型數(shù)據(jù)運(yùn)算時(shí)先自動(dòng)自動(dòng)轉(zhuǎn)換轉(zhuǎn)換 成同一類型成同一類型 c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 doublefloat long unsigned intchar,short 低 高 說明說明: 必定的轉(zhuǎn)換必定的轉(zhuǎn)換 運(yùn)算對(duì)象類型不同時(shí)轉(zhuǎn)換運(yùn)算對(duì)象類型不同時(shí)轉(zhuǎn)換 例例 char ch; int i; float f; double d; c
51、h/i + f*d - (f+i) int int double double double double double double int int double double double double double double 10+a +i*f - d/l 例例 int i; float f; double d; long l; c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 強(qiáng)制轉(zhuǎn)換(見強(qiáng)制轉(zhuǎn)換(見p56p56強(qiáng)制類型轉(zhuǎn)換運(yùn)算符部分)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符部分) v一般形式:一般形式:(類型名類型名)(表達(dá)式)表達(dá)式) 例:例:(int)(x+y)(int)(x+y) (i
52、nt)x+y (int)x+y (double)(3/2) (double)(3/2) (int)3.6 (int)3.6 v說明:強(qiáng)制轉(zhuǎn)換得到說明:強(qiáng)制轉(zhuǎn)換得到 所需類型的中間變量,所需類型的中間變量, 原變量類型不變?cè)兞款愋筒蛔?例例3.8 #include main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 結(jié)果:結(jié)果:x=3.600000,i=3 較高類型向較低類型轉(zhuǎn)換時(shí)可能發(fā)生 c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 3.8 算術(shù)算術(shù)運(yùn)算符和算術(shù)表達(dá)式運(yùn)算符和算術(shù)表達(dá)式 c 運(yùn) 算 符
53、 算術(shù)運(yùn)算符:(+ - * / % + -) 關(guān)系運(yùn)算符:( = !=) 邏輯運(yùn)算符:(! k=+j; j=3; k=+j; j=3; k=j+; j=3; k=j+; j=3; printf(j=3; printf(“%d%d”,+j); ,+j); j=3; printf(j=3; printf(“%d%d”,j+); ,j+); a=3;b=5;c=(+a)a=3;b=5;c=(+a)* *b; b; a=3;b=5;c=(a+)a=3;b=5;c=(a+)* *b; b; /k=4,j=4/k=4,j=4 /k=3,j=4/k=3,j=4 /4,j=4/4,j=4 /3,j=4/3,j
54、=4 /c=20,a=4/c=20,a=4 /c=15,a=4/c=15,a=4 c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 l幾點(diǎn)說明:幾點(diǎn)說明: 例例 - -i+i+ i=3; printf( i=3; printf(“%d%d”,-i+);,-i+); -(i+) -(i+) /-3/-3 u+ - + - 不能用于常量和表達(dá)式不能用于常量和表達(dá)式, ,如如 5+5+,( (a+b)+a+b)+ u+ - + - 結(jié)合方向:結(jié)合方向: 自右向左自右向左 u優(yōu)先級(jí):優(yōu)先級(jí):- + - -* / % -+ - (2) (3) (4)(2) (3) (4) u該運(yùn)算符常用于循環(huán)
55、語句中,使循環(huán)變量加減該運(yùn)算符常用于循環(huán)語句中,使循環(huán)變量加減1 1 v有關(guān)表達(dá)式使用中的問題說明有關(guān)表達(dá)式使用中的問題說明 l不同系統(tǒng)對(duì)運(yùn)算符和表達(dá)式的處理次序不同,盡可能不同系統(tǒng)對(duì)運(yùn)算符和表達(dá)式的處理次序不同,盡可能 寫通用性強(qiáng)的語句寫通用性強(qiáng)的語句 l不要寫有歧義和不知系統(tǒng)如何執(zhí)行的程序不要寫有歧義和不知系統(tǒng)如何執(zhí)行的程序 c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 3.9 賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符和賦值表達(dá)式 v簡單賦值運(yùn)算符簡單賦值運(yùn)算符 l符號(hào):符號(hào): = = l格式:格式: 變量標(biāo)識(shí)符變量標(biāo)識(shí)符= =表達(dá)式表達(dá)式 l作用:將一個(gè)數(shù)據(jù)(常量或表達(dá)式)賦給一個(gè)
56、變量作用:將一個(gè)數(shù)據(jù)(常量或表達(dá)式)賦給一個(gè)變量 l左側(cè)必須是變量,不能是常量或表達(dá)式左側(cè)必須是變量,不能是常量或表達(dá)式 例 a=3; d=func(); c=d+2; 例 3=x-2*y; a+b=3; () c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 v賦值表達(dá)式賦值表達(dá)式 l形式:形式: l賦值表達(dá)式的值與變量值相等賦值表達(dá)式的值與變量值相等,且可嵌套且可嵌套 例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2) /表達(dá)式值為5,a,b,c值為5 / b=5;a=5 /表達(dá)式值11,c=6,a=11 /表達(dá)式值
57、10,a=10,b=4,c=6 /表達(dá)式值5,a=5,b=10,c=2 c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 3.10 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式 v形式:形式:表達(dá)式表達(dá)式1,表達(dá)式表達(dá)式2,表達(dá)式表達(dá)式n v結(jié)合性結(jié)合性:從左向右從左向右 v優(yōu)先級(jí)優(yōu)先級(jí): 15,級(jí)別最低級(jí)別最低 v逗號(hào)表達(dá)式逗號(hào)表達(dá)式的值:等于表達(dá)式的值:等于表達(dá)式n的值的值 v用途:用途:常用于循環(huán)常用于循環(huán)for語句中語句中 例 a=3*5,a*4 a=3*5,a*4,a+5 例 x=(a=3,6*3) x=a=3,6*a 例 a=1;b=2;c=3; printf(“%d,%
58、d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c); /a=15,表達(dá)式值60 /a=15,表達(dá)式值20 /賦值表達(dá)式,表達(dá)式值18,x=18 /逗號(hào)表達(dá)式,表達(dá)式值18,x=3 /1,2,3 /3,2,3 c語言程序設(shè)計(jì) 第三章第三章 程序的靈魂程序的靈魂算法算法 例例: 逗號(hào)表達(dá)式使用逗號(hào)表達(dá)式使用 main() int x,y=7; float z=4; x=(y=y+6,y/z); printf(x=%dn,x); x=3 運(yùn)行結(jié)果:運(yùn)行結(jié)果: 本章的內(nèi)容散亂而復(fù)雜,但卻是 程序設(shè)計(jì)的基礎(chǔ),要認(rèn)真看書,通過 編程序才可以深入理解。 c語言程序設(shè)計(jì)
59、第三章第三章 程序的靈魂程序的靈魂算法算法 課后作業(yè)課后作業(yè) p6668頁習(xí)題:頁習(xí)題: v3.2, 3.5(思考)(思考) v3.3, 3.4, 3.9, 3.12(寫出答案)(寫出答案) v3.6, 3.10(上機(jī)驗(yàn)證)(上機(jī)驗(yàn)證) 上機(jī):實(shí)驗(yàn)教材:實(shí)驗(yàn)上機(jī):實(shí)驗(yàn)教材:實(shí)驗(yàn)2(做好上機(jī)準(zhǔn)備)(做好上機(jī)準(zhǔn)備) 預(yù)習(xí)第四、第五章預(yù)習(xí)第四、第五章 第4章 最簡單的c程序設(shè)計(jì) 順序程序設(shè)計(jì) c語言程序設(shè)計(jì) 第四章第四章 順序程序設(shè)計(jì)順序程序設(shè)計(jì) c語言概述 賦值語句 數(shù)據(jù)輸入輸出的概念及在c語言中的實(shí)現(xiàn) 字符數(shù)據(jù)的輸入輸出 格式輸入與輸出 順序結(jié)構(gòu)程序設(shè)計(jì)舉例 4.1 c語句概述語句概述 c程序結(jié)
60、構(gòu):程序結(jié)構(gòu): v一個(gè)一個(gè)c c程序可以由多個(gè)源程序文件構(gòu)成程序可以由多個(gè)源程序文件構(gòu)成 v一個(gè)源程序文件由若干函數(shù)、預(yù)編譯命令及全局變量聲明部一個(gè)源程序文件由若干函數(shù)、預(yù)編譯命令及全局變量聲明部 分構(gòu)成分構(gòu)成 v函數(shù)包括數(shù)據(jù)定義部分和執(zhí)行部分,執(zhí)行部分是函數(shù)包括數(shù)據(jù)定義部分和執(zhí)行部分,執(zhí)行部分是c c語言語句,語言語句, 完成對(duì)數(shù)據(jù)的操作完成對(duì)數(shù)據(jù)的操作 c語言程序設(shè)計(jì) 第四章第四章 順序程序設(shè)計(jì)順序程序設(shè)計(jì) 源程序文件1 預(yù)處理命令全局變量聲明 函數(shù)首部 局部變量聲明執(zhí)行語句 函數(shù)體 函數(shù)1函數(shù)n 源程序文件2源程序文件n c程序 c語句分為語句分為5類類 v控制語句:共控制語句:共9種種
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全月知識(shí)試題及答案
- 工業(yè)互聯(lián)網(wǎng)平臺(tái)計(jì)算機(jī)視覺技術(shù)在航空航天液壓系統(tǒng)制造缺陷檢測(cè)的應(yīng)用前景報(bào)告001
- 安全生產(chǎn)考核試題及答案
- 安全焊接試題及答案
- 農(nóng)村金融服務(wù)創(chuàng)新與農(nóng)村金融市場競爭策略研究報(bào)告001
- 激光祛斑培訓(xùn)課件
- 培訓(xùn)課件通知模板圖片
- 中國區(qū)域地理復(fù)習(xí)課課件
- 中國功夫歌唱課件大全
- 左心衰竭臨床護(hù)理
- 送教上門記錄24篇
- DL-T+5174-2020燃?xì)?蒸汽聯(lián)合循環(huán)電廠設(shè)計(jì)規(guī)范
- (完整版)留學(xué)生漢語考試試卷及答案.文檔
- 建筑工程施工現(xiàn)場噪聲及其控制技術(shù)
- 2023年版工程建設(shè)標(biāo)準(zhǔn)強(qiáng)制性條文 水利工程部分
- MOOC 微課設(shè)計(jì)與制作-愛課程 中國大學(xué)慕課答案
- MOOC 大學(xué)生創(chuàng)新創(chuàng)業(yè)教育-云南大學(xué) 中國大學(xué)慕課答案
- 大數(shù)據(jù)技術(shù)與智能制造的深度融合
- 失業(yè)保險(xiǎn)待遇申請(qǐng)表范本
- 急性腎損傷護(hù)理查房
- 23《海底世界》 第二課時(shí) 公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論