




已閱讀5頁,還剩528頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
教材、參考書與課時安排,教材 C程序設(shè)計 (第二版) 譚浩強(qiáng)編著 清華大學(xué)出版社 參考書 C語言程序設(shè)計教程 譚浩強(qiáng) 高等教育出版社 C高級實用程序設(shè)計 王士元 清華大學(xué)出版社 C程序設(shè)計試題匯編 譚浩強(qiáng) 清華大學(xué)出版社 課時安排 64學(xué)時,熟記C語言的基本概念 熟悉Turbo C的上機(jī)操作環(huán)境 會讀、會編、會調(diào)試C程序 學(xué)習(xí)要點(diǎn) 熟記C語言的語法 學(xué)會算法分析與算法設(shè)計,課程目的,課程要求,課前請做好預(yù)習(xí) 保持課堂安靜,頭腦清醒,思維活躍 認(rèn)真、獨(dú)立、按時完成并提交作業(yè) 重視上機(jī)實踐,有效利用寶貴的上機(jī)時間,目 錄,第1章 C語言概述,C語言程序設(shè)計 第一章 C語言概述,1.1 C語言發(fā)展歷史 程序設(shè)計語言的發(fā)展,CPU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成 如:10000000 加 10010000 減,用助記符號描述的指令系統(tǒng),可進(jìn)行地址、位操作 如 ADD A, B 編寫系統(tǒng)軟件,直接對硬件操作,可讀性,移植性差,面向機(jī)器的語言,C語言程序設(shè)計 第一章 C語言概述,可讀性,移植性好,編寫應(yīng)用程序 一般較難實現(xiàn)匯編語言的某些功能 如:地址和位的操作,C語言兼有高級和低級語言的功能 適合寫系統(tǒng)軟件和應(yīng)用軟件 又稱中級語言,C語言發(fā)展過程 產(chǎn)生背景 ALGOL 60CPL語言BCPLB語言,寫UNIX系統(tǒng) 產(chǎn)生過程 時間:19721973 地點(diǎn):美國貝爾實驗室 目的:UNIX操作系統(tǒng) 設(shè)計人: Ken.Thompson和Dennis.M.Ritchie C標(biāo)準(zhǔn) 標(biāo)準(zhǔn)C: 1978年 K&R合著The C Programming Language ANSI C: 1983年 87 ANSI C: 1987年 1990年國際標(biāo)準(zhǔn)的ANSI C ,1994年再次修訂。 C版本 Microsoft C 或稱 MS-C Turbo C 或稱 TC,C語言程序設(shè)計 第一章 C語言概述,1.2 C語言的特點(diǎn) 語言簡潔、緊湊、靈活 運(yùn)算符豐富 數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)類型豐富 鏈表、樹、棧 程序設(shè)計結(jié)構(gòu)化、模塊化 結(jié)構(gòu)化控制語句:ifelse、while、switch、for 函數(shù)作為模塊單位 語法不嚴(yán)格、程序設(shè)計自由度大 可以訪問內(nèi)存地址、進(jìn)行位運(yùn)算 生成目標(biāo)代碼質(zhì)量高 可移植性好,C語言程序設(shè)計 第一章 C語言概述,32個關(guān)鍵字:(由系統(tǒng)定義,不能重作其它定義) auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef unsigned union void volatile while Turbo C擴(kuò)充了11個關(guān)鍵字: asm _cs _ds _es _ss cdecl far huge interrupt near pascal 注意:在C語言中,關(guān)鍵字都是小寫的。,C語言程序設(shè)計 第一章 C語言概述,C語言簡潔、緊湊,使用方便、靈活。 ANSI C一共只有32個關(guān)鍵字,見365頁 附錄B,9種控制語句: if( )else for( ) while( ) dowhile( ) continue break switch goto return,C語言程序設(shè)計 第一章 C語言概述,C語言有 9 種控制語句,程序書寫形式自由,主要用小寫字母表示,壓縮了一切不必要的成分。,C語言程序設(shè)計 第一章 C語言概述,表1.1 C語言與Pascal語言比較,通過表1.1 我們可以得出結(jié)論:C比 Pascal簡練,因此源程序更短,編程效率高。,34種運(yùn)算符: 算術(shù)運(yùn)算符:+ - * / % + - 關(guān)系運(yùn)算符: = != 邏輯運(yùn)算符:! & | 位運(yùn)算符 : | & 賦值運(yùn)算符:= 及其擴(kuò)展 條件運(yùn)算符:?: 逗號運(yùn)算符:, 指針運(yùn)算符:* & 求字節(jié)數(shù) :sizeof 強(qiáng)制類型轉(zhuǎn)換:(類型) 分量運(yùn)算符:. - 下標(biāo)運(yùn)算符: 其它 :( ) - 注意:各種運(yùn)算符混合使用,其優(yōu)先級與結(jié) 合方法是難點(diǎn),可先預(yù)習(xí)。,C語言程序設(shè)計 第一章 C語言概述,C語言運(yùn)算符豐富(附錄C),C語言程序設(shè)計 第一章 C語言概述,C語言數(shù)據(jù)結(jié)構(gòu)豐富,例1.2求倆個數(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 calculates the sum of x and y */ int add(int x,int y) int z; z=x+y; return(z); ,運(yùn)行結(jié)果: sum=34,C語言程序設(shè)計 第一章 C語言概述,printf語句中的“ %d ”是表示“十進(jìn)制整數(shù)類型”,1.3 簡單的C程序介紹,/* example1.1 The first C Program*/ #include void main() printf(“This is a c program.n”); ,C語言程序設(shè)計 第一章 C語言概述,輸出: This is a c program.,例1.1 第一個程序This is a c program .,printf語句中的“n”是換行符,C語言程序設(shè)計 第一章 C語言概述,例1.3 從鍵盤輸入兩個整數(shù),輸出其中較大的數(shù),#include void main() int max(int x,int y) int a,b,c; scanf(“%d,%d”, ,scanf語句中“&a”的含義是“取地址”,輸入:10,20 輸出:max = 20,聲明部分,定義變量,調(diào)用max函數(shù),返回值賦給c,定義max子函數(shù),函數(shù)值、形參x、y為整型,通過max函數(shù)將z值帶回調(diào)用處,C語言格式特點(diǎn) 習(xí)慣用小寫字母,大小寫敏感 不使用行號,無程序行概念 可使用空行和空格 常用鋸齒形書寫格式,C語言程序設(shè)計 第一章 C語言概述,main( ) . . . . ,main( ) int i , j , sum; sum=0; for(i=1; i10;i+) for(j=1;j10;j+) sum+=i*j ; printf(“%dn”,sum); ,優(yōu)秀程序員的素質(zhì)之一: 使用TAB縮進(jìn) 對齊 有足夠的注釋 有合適的空行,C語言結(jié)構(gòu)特點(diǎn) 函數(shù)與主函數(shù) 程序由一個或多個函數(shù)組成 必須有且只能有一個主函數(shù)main(),可以放在程序中任一位置 程序執(zhí)行從main開始,在main中結(jié)束,其它函數(shù)通過嵌套調(diào)用得以執(zhí)行。 程序語句 C程序由語句組成 用“;”作為語句終止符 注釋 /* */為注釋,不能嵌套 不產(chǎn)生編譯代碼,例: /*This is the main /* of example1.1*/ */,編譯預(yù)處理命令,C語言程序設(shè)計 第一章 C語言概述,1.4 C程序的上機(jī)步驟 C程序開發(fā)步驟,file.exe,C語言程序設(shè)計 第一章 C語言概述,程序代碼的錄入, 生成源程序*.c,語法分析查錯,翻譯 生成目標(biāo)程序*.obj,與其它目標(biāo)程序或庫 鏈接裝配,生成可執(zhí)行 程序*.exe,Turbo C集成開發(fā)環(huán)境 配置要求 UNIX,PC-DOS,MS-DOS,UCDOS操作系統(tǒng) 硬盤容量約2M,448K RAM運(yùn)行空間 安裝Turbo C 創(chuàng)建子目錄 Install 若不是可安裝盤,將文件拷貝到對應(yīng)的目錄下,C語言程序設(shè)計 第一章 C語言概述,進(jìn)入Turbo C D:TCTC.exe 主控菜單 文件操作FILE :New Load Save Write to 編輯操作EDIT:插入/修改 塊 查找/替換 編譯鏈接COMPILE LINK MAKE 執(zhí)行RUN 退出Turbo C Alt +x Alt+F ,Q 幫助Help F1 Ctrl+F1,C語言程序設(shè)計 第一章 C語言概述,基本操作: F10-調(diào)用主菜單 F2-存盤 F3-打開 F1-幫助信息 Alt+F9-Compile Ctrl+F9-Run Alt+F5-User Screen Alt+X -退出Tc,常用熱鍵,文本編輯: -移動光標(biāo) PgUp,PgDn-上下翻頁 Ctrl+PgUp,Ctrl+PgDn-文件首尾 Home行首 End行尾 Ddelete Insert Bkspace,塊操作: Ctrl+KB-塊開始標(biāo)記 Ctrl+KK-塊結(jié)束標(biāo)記 Ctrl+KC-塊拷貝 Ctrl+KV-塊移動 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è)計 第一章 C語言概述,課后作業(yè) 預(yù)習(xí)“題解與上機(jī)指導(dǎo)”一書中 P181199頁的14.314.10節(jié) P236頁實驗1 教材P12: 1.5、 1.6、 1.7、 1.8題。 注意:有關(guān)設(shè)計程序的作業(yè),必須經(jīng)過上機(jī)調(diào)試!,C語言程序設(shè)計 第一章 C語言概述,算法的概念,簡單算法舉例,算法的特性,怎樣表示一個算法,第2章 程序的靈魂算法,C語言程序設(shè)計 第二章 程序的靈魂算法,結(jié)構(gòu)化程序設(shè)計方法,C語言程序設(shè)計 第二章 程序的靈魂算法,程序包括的內(nèi)容: 數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)的類型和組織形式 算法:操作步驟的描述,Nikiklaus Wirth提出:,教材認(rèn)為:,程序,=算法+數(shù)據(jù)結(jié)構(gòu)+程序設(shè)計方法+語言工具和環(huán)境,靈魂,加工對象,工具,C語言程序設(shè)計 第二章 程序的靈魂算法,2.1 算法的概念 為解決一個問題而采取的方法和步驟,就成為算法。例如:歌曲的樂譜,建造房子等。 算法核心是解決“做什么”和“怎么做”的問題。 P15頁的例2.1,求15之積。 可以有多種方法,一般采用簡單和運(yùn)算步驟少的。準(zhǔn)確、高效 計算機(jī)算法類別 數(shù)值運(yùn)算算法 非數(shù)值運(yùn)算算法,C語言程序設(shè)計 第二章 程序的靈魂算法,2.2 簡單算法舉例 例2.1 方法1:累乘 方法2:用循環(huán)結(jié)構(gòu)解決,靈活、通用。 例2.2 通過循環(huán)選擇打印 例2.3 判斷閏年 例2.4 累加求級數(shù)的和,循環(huán)改變正負(fù)號和分母加1。 例2.5 判斷素數(shù),課后認(rèn)真思考,加深什么是算法的概念,C語言程序設(shè)計 第二章 程序的靈魂算法,2.3 算法的特性 有窮性在合理范圍內(nèi)可完成 確定性無歧義性 有零個或多個輸入從外界得到信息 有一個或多個輸出問題的答案 有效性每步有確定的結(jié)果,C語言程序設(shè)計 第二章 程序的靈魂算法,2.4 怎樣表示一個算法 自然語言表示 2.2節(jié)例。易懂,文字冗長,易歧義性 流程圖表示 用流程圖符號構(gòu)成,直觀,易懂 N-S流程圖表示 偽代碼表示 計算機(jī)語言表示,順序結(jié)構(gòu) 選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu),C語言程序設(shè)計 第二章 程序的靈魂算法,傳統(tǒng)流程圖流向混亂、可讀性差,所以應(yīng)該采用結(jié)構(gòu)化流程圖。 結(jié)構(gòu)化程序設(shè)計 基本思想:任何程序都可以用三種基本結(jié)構(gòu)表示,限制使用無條件轉(zhuǎn)移語句(goto) 結(jié)構(gòu)化程序:由三種基本結(jié)構(gòu)反復(fù)嵌套構(gòu)成的程序 優(yōu)點(diǎn):結(jié)構(gòu)清晰,易讀,提高程序設(shè)計質(zhì)量和效率,三種基本結(jié)構(gòu) 順序結(jié)構(gòu),C語言程序設(shè)計 第二章 程序的靈魂算法,選擇結(jié)構(gòu),二分支選擇結(jié)構(gòu),多分支選擇結(jié)構(gòu),C語言程序設(shè)計 第二章 程序的靈魂算法,循環(huán)結(jié)構(gòu),當(dāng)型循環(huán)結(jié)構(gòu),直到型循環(huán)結(jié)構(gòu),注:A,B,A1.An可以是一個簡單語句,也可以是一個基本結(jié)構(gòu),C語言程序設(shè)計 第二章 程序的靈魂算法,三種基本結(jié)構(gòu)的共同特點(diǎn): 只有一個入口; 只有一個出口; 結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會被執(zhí)行到; 結(jié)構(gòu)內(nèi)不存在“死循環(huán)”。,C語言程序設(shè)計 第二章 程序的靈魂算法,2.5 結(jié)構(gòu)化程序設(shè)計方法 結(jié)構(gòu)化程序:用三種基本結(jié)構(gòu)組成的程序 基本設(shè)計思路: 復(fù)雜問題分解成 幾個最基本問題,再分別處理。 采用的方法: 自頂向下; 逐步細(xì)化; 模塊化設(shè)計:復(fù)雜問題按功能分成多個子模塊 結(jié)構(gòu)化編碼:正確采用三種基本結(jié)構(gòu)實現(xiàn),C語言程序設(shè)計 第二章 程序的靈魂算法,課后作業(yè) P36頁習(xí)題: 2.4、2.8(結(jié)合實驗指導(dǎo)讀懂答案) 用N-S圖表示2.4題中 用傳統(tǒng)流程圖求解以下問題:將一個16進(jìn)制數(shù)轉(zhuǎn)化為10進(jìn)制數(shù) 復(fù)習(xí)二進(jìn)制的基本概念 “計算機(jī)文化基礎(chǔ)”一書中P2733頁,第3章 數(shù)據(jù)類型、運(yùn)算符與表達(dá)式,C語言程序設(shè)計 第三章 程序的靈魂算法,C的數(shù)據(jù)類型,常量與變量,整型數(shù)據(jù),實型數(shù)據(jù),字符型數(shù)據(jù),變量賦初值,各種數(shù)值型數(shù)據(jù)間的混合運(yùn)算,算術(shù)運(yùn)算符和算術(shù)表達(dá)式,賦值運(yùn)算符和賦值表達(dá)式,逗號運(yùn)算符和逗號表達(dá)式,C語言程序設(shè)計 第三章 程序的靈魂算法,3.1 C的數(shù)據(jù)類型,數(shù)據(jù)類型決定: 1. 數(shù)據(jù)占內(nèi)存字節(jié)數(shù) 2. 數(shù)據(jù)取值范圍 3. 可以進(jìn)行的操作,C語言程序設(shè)計 第三章 程序的靈魂算法,常量和符號常量 定義:程序運(yùn)行過程中,其值不能被改變的量(常數(shù)) 分類:直接常量、符號常量,3.2 常量與變量,C語言程序設(shè)計 第三章 程序的靈魂算法,符號常量:用標(biāo)識符代表常量 一般用大寫字母: PRICE 、 PI 定義格式: #define 符號常量 常量 其值在作用域內(nèi)不能改變和再賦值。,例3.1 符號常量舉例 #define PRICE 30 #include void main() int num,total; num=10; total=num*PRICE; printf(“total=%dn“,total); ,符號常量的優(yōu)點(diǎn)是:見名知意、一改全改,C語言程序設(shè)計 第三章 程序的靈魂算法,變量 定義:其值可以改變的量。 定義格式:數(shù)據(jù)類型 變量名; 變量應(yīng)該有名字,并在內(nèi)存中占據(jù)一定的存儲單元。 變量名和變量值有不同的含義 變量名實為一個符號地址,例 變量的使用 main() int a; a=3; printf(“a=%d“,a); ,C語言程序設(shè)計 第三章 程序的靈魂算法,標(biāo)識符 定義:標(biāo)識變量名、符號常量名、函數(shù)名、數(shù)組名、 文件名的字符串序列名字。 命名規(guī)則: 只能由字母、數(shù)字、下劃線組成,且第一個字符必須是字母或下劃線 大小寫字母含義不同,一般用小寫 不能使用關(guān)鍵字 TC允許最長32個字符,建議長度不超過8個字符 使用:先定義、后使用,標(biāo)識符應(yīng)該“見名知意”,如 total , max 標(biāo)識符應(yīng)該“不宜混淆”,如 l與1 , O與0,這些標(biāo)識符合法嗎? 1A、M.D.John、¥123、#33、 Tatol、int、max,C語言程序設(shè)計 第三章 程序的靈魂算法,3.3 整型數(shù)據(jù) 整型常量(整常數(shù))的三種表示方法 十進(jìn)制整數(shù):由數(shù)字09和正負(fù)號表示. 如 123,-456,0 八進(jìn)制整數(shù):由數(shù)字0開頭,后跟數(shù)字07表示. 如 0123,011 十六進(jìn)制整數(shù):由0x開頭,后跟09,af,AF表示. 如 0x123,0xff,C語言程序設(shè)計 第三章 程序的靈魂算法,補(bǔ)充知識:,字節(jié)和位 內(nèi)存以字節(jié)為單元組成 每個字節(jié)有一個地址 一個字節(jié)一般由8個二進(jìn)制位組成 每個二進(jìn)位的值是0或1,C語言程序設(shè)計 第三章 程序的靈魂算法,數(shù)值的表示方法原碼、反碼和補(bǔ)碼 原碼:最高位為符號位,其余各位為數(shù)值本身的絕對值 反碼: 正數(shù):反碼與原碼相同 負(fù)數(shù):符號位為1,其余位對原碼取反 補(bǔ)碼: 正數(shù):原碼、反碼、補(bǔ)碼相同 負(fù)數(shù):最高位為1,其余位為原碼取反,再對整個數(shù)加1,9-5=4 9+7=16=(14)12,C語言程序設(shè)計 第三章 程序的靈魂算法,負(fù)數(shù)補(bǔ)碼轉(zhuǎn)換成十進(jìn)制數(shù):最高位不動,其余位取反加1,例 補(bǔ)碼:11111001 取反:10000110 加1: 10000111=-7,C語言程序設(shè)計 第三章 程序的靈魂算法,整型變量 整型數(shù)據(jù)在內(nèi)存中的存放形式 數(shù)據(jù)在內(nèi)存中以二進(jìn)制補(bǔ)碼形式存放 每一個整型變量在內(nèi)存中占2個字節(jié) 10的原碼 反碼 補(bǔ)碼 -10的原碼 取絕對值 反碼 補(bǔ)碼,整數(shù)的最左二進(jìn)制位是符號位,0正、1負(fù),C語言程序設(shè)計 第三章 程序的靈魂算法,整型變量的分類 三類整型變量,整數(shù)類型和取值范圍,C語言程序設(shè)計 第三章 程序的靈魂算法,整型變量的定義 先定義后使用強(qiáng)制類型定義 int a,b; ( 指定變量a、b為整型 ) unsigned short c, d; (指定變量c、d為無符號短整型 ) long e,f; ( 指定變量e、f為長整型),例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為無符號整型變量,定義放在函數(shù)開頭的聲明部分,不同類型混合運(yùn)算,類型自動轉(zhuǎn)換,結(jié)果: a+u=22,b+u= -14,定義與賦值同時進(jìn)行: int a=12;,C語言程序設(shè)計 第三章 程序的靈魂算法,整型數(shù)據(jù)的溢出 此情況稱為“溢出”,運(yùn)行時不報錯,編程時要注意,整型變量最大值32767,加1后是 32768的補(bǔ)碼形式,例3.3 整型數(shù)據(jù)的溢出 #include void main( ) int a , b; a= 32767; b= a+1; printf(“%d , %d n “,a,b); ,改為:long b; 結(jié)果是什么?,C語言程序設(shè)計 第三章 程序的靈魂算法,整型常量的類型 整型常量的值在-32768+32767范圍內(nèi),編譯器認(rèn)為是int類型 整型常量的值超過上述范圍,而在2147483648 +2147483647范圍內(nèi),編譯器認(rèn)為是long類型 當(dāng)系統(tǒng)定義short int與int占內(nèi)存長度相同,則兩種類型常量均可以賦給 int和short int型變量 在整型常量后面加大寫L或小寫l,則告訴編譯器,把該整型常量作為long類型處理。例:123L、0L 在整型常量后面加u,則按無符號整型方式存放,負(fù)數(shù)轉(zhuǎn)換成補(bǔ)碼再按無符號整型方式存放。,C語言程序設(shè)計 第三章 程序的靈魂算法,3.4 浮點(diǎn)型數(shù)據(jù) 浮點(diǎn)型常量的表示方法 浮點(diǎn)數(shù)(float)又稱為實數(shù)(real) 兩種表示方法: 十進(jìn)制小數(shù)形式:必須有小數(shù)點(diǎn) 如 0.123 、.123 、123.0 、0.0 、123. 指數(shù)形式:e或E之前后必須有數(shù)字;指數(shù)必須為整數(shù) 如 123.456e0、12.3456e1 、1.23456e2 、 0.123456e3 、0.0123456e4 等 規(guī)范化指數(shù)形式 只有一位非零整數(shù)的指數(shù)形式 是指數(shù)的輸出形式,6.28e-2 表示 6.28 10 -2,-3.0824e4 表示 3.0824 10 4,C語言程序設(shè)計 第三章 程序的靈魂算法,浮點(diǎn)型變量 浮點(diǎn)型數(shù)據(jù)在內(nèi)存中的存放形式 浮點(diǎn)型數(shù)據(jù)在內(nèi)存中占4個字節(jié)(32位) 在內(nèi)存中分成3部分,指數(shù)為2的冪次,+ .314159 1,數(shù)符,小數(shù)部分,指數(shù),浮點(diǎn)型變量的分類,float x,y; (指定x、y為單精度浮點(diǎn)型變量) double z; (指定z為雙精度浮點(diǎn)型變量) long double t; (指定t為長雙精度浮點(diǎn)型變量),C語言程序設(shè)計 第三章 程序的靈魂算法,浮點(diǎn)型數(shù)據(jù)的舍入誤差 數(shù)據(jù)超過有效位數(shù),則產(chǎn)生誤差 要避免一個很大的數(shù)與一個很小的數(shù)加減,例3.4 浮點(diǎn)型數(shù)據(jù)的舍入誤差 #include void main( ) float a , b; a= 123456.789e5; b= a+20; printf(“%f n“,b); ,舍入誤差使1.0/3*3 的結(jié)果并不等于1 !,浮點(diǎn)型常量的類型 浮點(diǎn)型常量一般按雙精度64位處理,數(shù)后加F或f按單精度 浮點(diǎn)型常量不分float和double,C語言程序設(shè)計 第三章 程序的靈魂算法,3.5 字符型數(shù)據(jù) 字符常量 定義:用單引號括起來的單個字符或轉(zhuǎn)義字符 字符常量的值:該字符的ASCII碼值 定義格式:char 變量名 = 值 轉(zhuǎn)義字符:反斜線后面跟一個字符或一個代碼值表示,如 a A n t ,如 a97 ,A65 n10, t9,char ch=65 與 char ch=A 與char=101是等效的,C語言程序設(shè)計 第三章 程序的靈魂算法,例3.5 轉(zhuǎn)義字符的使用 #include void main( ) printf(“ ab ct derftgn”); printf(“htibbj k”); ,C語言程序設(shè)計 第三章 程序的靈魂算法,字符變量 存放字符常量,占用一個字節(jié),存放一個字符 定義形式: 賦值: char c1,c2; c1=a;c2=b;,字符數(shù)據(jù)在內(nèi)存中的存儲形式及其使用方法 以二進(jìn)制存放字符的ASCII碼值(0255整數(shù)) 與整數(shù)的存儲形式類似 以字符或整數(shù)形式輸出,例3.6 向字符變量賦整數(shù) #include void main( ) char c1,c2 ; c1=97 ; c2=98 ; printf(“%c %c n“,c1,c2); printf(“%d %d n“,c1,c2); ,輸出形式取決于printf函數(shù)中的格式符,格式符為“%c”時輸出的變量值為字符 格式符為“%d“時輸出的變量值為整數(shù),C語言程序設(shè)計 第三章 程序的靈魂算法,對字符數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算 實質(zhì)是對其ASCII值進(jìn)行算術(shù)運(yùn)算,例3.7 大小寫字母的轉(zhuǎn)換 #include void main( ) char c1,c2 ; c1=a ; c2=b ; c1=c1-32; c2=c2-32; printf(“%c %c “,c1,c2); ,字符型與整型間互相賦值,例: 互相賦值 #include void main( ) int c1; char c2 ; c1=a ; c2=98 ; c1=c1-32; c2=c2-32; printf(“%c %c “,c1,c2); ,小寫字母比大寫字母的ASCII碼大(32)10,C語言程序設(shè)計 第三章 程序的靈魂算法,字符串常量 定義:用雙引號(“ ”)括起來的字符序列 “How do you do” , “CHINA” , “a” , “$123.45” 存儲:每個字符串尾自動加一個 0 作為字符串結(jié)束標(biāo)志,字符常量與字符串常量不同,例: char ch; ch=“A”;,沒有字符串變量, 只能用字符數(shù)組存放,C語言程序設(shè)計 第三章 程序的靈魂算法,3.6 變量賦初值 變量的使用:先定義,后使用 變量定義位置:一般放在函數(shù)開頭 變量初始化:可以在定義時賦初值,例: int a=1,b= -3,c; float data=3.67; char ch=A; int x=1,y=1,z=1; int x=y=1;( ),錯!int a=b=c=3,C語言程序設(shè)計 第三章 程序的靈魂算法,3.7 各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算 整型、實型、字符型數(shù)據(jù)間可以混合運(yùn)算,自動轉(zhuǎn)換 什么情況下發(fā)生 運(yùn)算轉(zhuǎn)換-不同類型數(shù)據(jù)混合運(yùn)算時 賦值轉(zhuǎn)換-把一個值賦給與其類型不同的變量時 輸出轉(zhuǎn)換-輸出時轉(zhuǎn)換成指定的輸出格式 函數(shù)調(diào)用轉(zhuǎn)換-實參與形參類型不一致時轉(zhuǎn)換 運(yùn)算轉(zhuǎn)換規(guī)則:不同類型數(shù)據(jù)運(yùn)算時先自動轉(zhuǎn)換成同一類型,C語言程序設(shè)計 第三章 程序的靈魂算法,C語言程序設(shè)計 第三章 程序的靈魂算法,強(qiáng)制轉(zhuǎn)換(見P56強(qiáng)制類型轉(zhuǎn)換運(yùn)算符部分) 一般形式:(類型名)(表達(dá)式) 例:(int)(x+y) (int)x+y (double)(3/2) (int)3.6 說明:強(qiáng)制轉(zhuǎn)換得到 所需類型的中間變量, 原變量類型不變,例3.8 #include main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 結(jié)果:x=3.600000,i=3,精度損失問題,強(qiáng)制類型轉(zhuǎn)換運(yùn)算符,表達(dá)式僅一個變量時,括號可以省略,C語言程序設(shè)計 第三章 程序的靈魂算法,3.8 算術(shù)運(yùn)算符和算術(shù)表達(dá)式,學(xué)習(xí)運(yùn)算符應(yīng)注意: 運(yùn)算符功能 與運(yùn)算量關(guān)系 要求運(yùn)算量個數(shù) 要求運(yùn)算量類型 運(yùn)算符優(yōu)先級別 結(jié)合方向 結(jié)果的類型,C語言程序設(shè)計 第三章 程序的靈魂算法,算術(shù)運(yùn)算符和算術(shù)表達(dá)式 基本算術(shù)運(yùn)算符: + - * / % 結(jié)合方向:從左向右 優(yōu)先級: - -* / % - + - (2) (3) (4) 說明: “-”可為單目運(yùn)算符時,右結(jié)合性 兩整數(shù)相除,結(jié)果為整數(shù) %要求兩側(cè)均為整型數(shù)據(jù) + - * / 運(yùn)算的兩個數(shù)中有一個數(shù)為實數(shù),結(jié)果是double型,例 5/2 = -5/2.0 =,例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2,例 5/2 = 2 -5/2.0 = -2.5,例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 (),C語言程序設(shè)計 第三章 程序的靈魂算法,自增、自減運(yùn)算符+ 作用:使變量值加1或減1 種類: 前置 +i, -i (先執(zhí)行i+1或i-1,再使用i值) 后置 i+,i- (先使用i值,再執(zhí)行i+1或i-1),例 j=3; k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d”,j+); a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b;,/k=4,j=4,/k=3,j=4,/4,j=4,/3,j=4,/c=20,a=4,/c=15,a=4,C語言程序設(shè)計 第三章 程序的靈魂算法,幾點(diǎn)說明:,例 -i+ i=3; printf(“%d”,-i+);, -(i+),/-3,+ - 不能用于常量和表達(dá)式,如 5+,(a+b)+ + - 結(jié)合方向: 自右向左 優(yōu)先級:- + - -* / % -+ - (2) (3) (4) 該運(yùn)算符常用于循環(huán)語句中,使循環(huán)變量加減1,有關(guān)表達(dá)式使用中的問題說明 不同系統(tǒng)對運(yùn)算符和表達(dá)式的處理次序不同,盡可能寫通用性強(qiáng)的語句 不要寫有歧義和不知系統(tǒng)如何執(zhí)行的程序,C語言程序設(shè)計 第三章 程序的靈魂算法,3.9 賦值運(yùn)算符和賦值表達(dá)式,簡單賦值運(yùn)算符 符號: = 格式: 變量標(biāo)識符=表達(dá)式 作用:將一個數(shù)據(jù)(常量或表達(dá)式)賦給一個變量 左側(cè)必須是變量,不能是常量或表達(dá)式,例 a=3; d=func(); c=d+2;,例 3=x-2*y; a+b=3; (),類型轉(zhuǎn)換 賦值轉(zhuǎn)換規(guī)則:使賦值號右邊表達(dá)式值自動轉(zhuǎn)換成其左邊變量的類型,例 float f ; int i=10; f=i; 則 f=10.0,例 int i; i=2.56; /結(jié)果i=2;,復(fù)合賦值運(yùn)算符 種類:+= -= *= /= %= = = &= = |= 含義: exp1 op= exp2 exp1 = exp1 op exp2,C語言程序設(shè)計 第三章 程序的靈魂算法,賦值表達(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á)式值10,a=10,b=4,c=6,/表達(dá)式值5,a=5,b=10,c=2,C語言程序設(shè)計 第三章 程序的靈魂算法,3.10 逗號運(yùn)算符和逗號表達(dá)式 形式:表達(dá)式1,表達(dá)式2,表達(dá)式n 結(jié)合性:從左向右 優(yōu)先級: 15,級別最低 逗號表達(dá)式的值:等于表達(dá)式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,%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,/逗號表達(dá)式,表達(dá)式值18,x=3,/1,2,3,/3,2,3,C語言程序設(shè)計 第三章 程序的靈魂算法,例: 逗號表達(dá)式使用 main() int x,y=7; float z=4; x=(y=y+6,y/z); printf(“x=%dn“,x); ,本章的內(nèi)容散亂而復(fù)雜,但卻是程序設(shè)計的基礎(chǔ),要認(rèn)真看書,通過編程序才可以深入理解。,C語言程序設(shè)計 第三章 程序的靈魂算法,課后作業(yè) P6668頁習(xí)題: 3.2, 3.5(思考) 3.3, 3.4, 3.9, 3.12(寫出答案) 3.6, 3.10(上機(jī)驗證) 上機(jī):實驗教材:實驗2(做好上機(jī)準(zhǔn)備) 預(yù)習(xí)第四、第五章,第4章 最簡單的C程序設(shè)計 順序程序設(shè)計,C語言程序設(shè)計 第四章 順序程序設(shè)計,C語言概述,賦值語句,數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn),字符數(shù)據(jù)的輸入輸出,格式輸入與輸出,順序結(jié)構(gòu)程序設(shè)計舉例,4.1 C語句概述 C程序結(jié)構(gòu): 一個C程序可以由多個源程序文件構(gòu)成 一個源程序文件由若干函數(shù)、預(yù)編譯命令及全局變量聲明部分構(gòu)成 函數(shù)包括數(shù)據(jù)定義部分和執(zhí)行部分,執(zhí)行部分是C語言語句,完成對數(shù)據(jù)的操作,C語言程序設(shè)計 第四章 順序程序設(shè)計,C語句分為5類 控制語句:共9種 完成一定的控制功能,這些語句能夠根據(jù)一定的測試條件決定某些語句是否被執(zhí)行,如分支、循環(huán)、跳轉(zhuǎn)等語句。,C語言程序設(shè)計 第四章 順序程序設(shè)計,C語言程序設(shè)計 第四章 順序程序設(shè)計,空語句:只有一個“ ; ”,什么也不做,表達(dá)式語句:由表達(dá)式加“ ; ”組成 典型的是賦值語句,由賦值表達(dá)式加分號構(gòu)成,如:y=x+1是表達(dá)式,而y=x+1;則是賦值語句。實際上函數(shù)調(diào)用語句也屬于表達(dá)式語句。,函數(shù)調(diào)用語句:由函數(shù)加“ ; ”組成,printf(“This is a C program”);,a=3 ; i+ ;,for(i=0;i100;i+) ; ,復(fù)合語句: 用 括起來的一組語句,也稱作程序塊。 一般形式:,C語言程序設(shè)計 第四章 順序程序設(shè)計,int i=0,sum=0; while(i=100) sum=sum+i; i=i+1; ,說明 復(fù)合語句“ ”后不加分號 語法上和其它語句相同 復(fù)合語句可嵌套,4.2 賦值語句 基本格式: 賦值表達(dá)式 + ; 賦值表達(dá)式可以包含在其它表達(dá)式中,而賦值語句不可以。,C語言程序設(shè)計 第四章 順序程序設(shè)計,例:if (a=b)0) t=a; 不可寫為:if (a=b;)0) t=a;,C語言程序設(shè)計 第四章 順序程序設(shè)計,表達(dá)式中允許出現(xiàn)運(yùn)算符號、變量、數(shù)值、函數(shù),序號,語句,含義,右側(cè)表達(dá)式包括,另一種形式的賦值語句 = ;,C語言程序設(shè)計 第四章 順序程序設(shè)計,我們可以理解為: =;,只適合于 整型變量,連續(xù)賦值語句,C語言程序設(shè)計 第四章 順序程序設(shè)計,int a , b , c ; a=b=c=1 ;,int a=b=c=1 ;,4.3 數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn),C語言程序設(shè)計 第四章 順序程序設(shè)計,標(biāo)準(zhǔn)輸入輸出函數(shù) putchar 輸出字符, scanf 格式輸入,puts 輸出字符串 getchar 輸入字符, printf 格式輸出,gets 輸入字符串,所謂數(shù)據(jù)的輸入輸出是從計算機(jī)角度出發(fā)的。 C語言本身沒有I/O語句,所有I/O都由函數(shù)來實現(xiàn)。 C語言的標(biāo)準(zhǔn)庫函數(shù) 由編譯系統(tǒng)提供的一系列函數(shù),以庫形式存放在系統(tǒng)中,不是C語言文本的組成部分。 庫函數(shù)已編譯成目標(biāo)文件(.obj),在連接階段才與源程序編譯成的目標(biāo)文件相連接,生成可執(zhí)行文件。 調(diào)用形式: 函數(shù)名(參數(shù)表) 注意在調(diào)用C語言庫函數(shù)時,需要使用編譯預(yù)處理命令#include ,使相應(yīng)的頭文件包含到用戶源程序中。,#include 或 #include ”stdio.h”,Turbo C 2.0可以不加#include命令,常用頭文件: stdio.h 定義輸入輸出函數(shù) string.h 定義字符串操作函數(shù) math.h 定義sin、cos等數(shù)學(xué)函數(shù),4.4 字符數(shù)據(jù)的輸入輸出 putchar 函數(shù)(單字符輸出函數(shù)),C語言程序設(shè)計 第四章 順序程序設(shè)計,輸出一個字符:,格式: putchar( 字符); 或 putchar( 字符變量); 強(qiáng)調(diào):被輸出的單個字符必須被 括起來,運(yùn)行結(jié)果:BOY,/* 例 4.1 putchar(字符)*/ #include void main() putchar(B); putchar(O); putchar(Y); ,/* 例 4.1 putchar(字符變量) */ #include void main() char a,b,c; a=B; b=O; c=Y; putchar(a); putchar(b); putchar(c); ,結(jié)果當(dāng)然還是一樣的!,輸出控制字符,C語言程序設(shè)計 第四章 順序程序設(shè)計,/* 例 putchar(控制字符) */ #include void main() char a,b; a=O; b=k; putchar(a); putchar(n); putchar(b); ,運(yùn)行結(jié)果:O k,輸出轉(zhuǎn)義字符,/*例 putchar( ) 含有轉(zhuǎn)義符* / #include void main() char a; a=B; putchar(101); putchar(a); ,運(yùn)行結(jié)果:AB,getchar 函數(shù)(單字符輸入函數(shù)) 。,C語言程序設(shè)計 第四章 順序程序設(shè)計,格式: getchar( ) ; 強(qiáng)調(diào):輸入單個字符后,必須按一次回車, 計算機(jī)才接受輸入的字符。,# include 不能少!,/*例4.2 */ #include void main() char c; c=getchar( ); putchar(c); ,運(yùn)行結(jié)果: a a,4.5 格式輸入與輸出 printf函數(shù)(格式輸出函數(shù)) printf函數(shù)的一般格式,C語言程序設(shè)計 第四章 順序程序設(shè)計,格式: printf( 格式控制,輸出表列);,格式控制:用雙引號括起來的字符串,包含兩種信息 格式說明:%修飾符格式字符,指定輸出格式 普通字符:原樣輸出 輸出表列:要輸出的數(shù)據(jù),可以是變量或表達(dá)式,可以沒有,多個時以“,”分隔),例: printf( “%d %d”,a,b); printf( “a=%d b= %dn”,a,b);,C語言程序設(shè)計 第四章 順序程序設(shè)計,/*從最簡單的學(xué)起 */ #include void main() printf(“Hello World !” ); ,運(yùn)行結(jié)果: Hello World!,調(diào)用 printf( ) 時可以省略# include 命令!,格式字符 d格式符:輸出十進(jìn)制整數(shù),有3種用法 %d格式:按數(shù)據(jù)實際長度輸出,數(shù)據(jù)范圍 -3276832767。,C語言程序設(shè)計 第四章 順序程序設(shè)計,/* %d 格
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 活動押金合同協(xié)議書范本
- 2025年家用水表項目合作計劃書
- 2025年超高壓復(fù)合膠管項目發(fā)展計劃
- 有趣游戲活動策劃與執(zhí)行
- 細(xì)胞生物學(xué)實驗室細(xì)胞凍存盒租賃與維護(hù)服務(wù)協(xié)議
- 環(huán)保企業(yè)應(yīng)急預(yù)案編制與實施協(xié)議
- 微信社群運(yùn)營及轉(zhuǎn)化效果跟蹤與反饋協(xié)議
- 知識產(chǎn)權(quán)侵權(quán)糾紛賠償金額評估協(xié)議
- 北美保健品分銷及市場推廣合同
- 工業(yè)機(jī)器人維護(hù)保養(yǎng)與備件庫存管理合同
- 2025年山東省聊城市東昌府區(qū)中考二模語文試題(含答案)
- 2025-2030中國藥品連續(xù)生產(chǎn)行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025年中考數(shù)學(xué)總復(fù)習(xí)《投影與視圖》專項測試卷(附答案)
- 空調(diào)崗位試題庫及答案
- 胃鏡室試題及答案
- 2024紡織機(jī)械操作流程掌握試題及答案
- 死魚賠償協(xié)議書范本
- 2025年貴州水投水庫運(yùn)營管理西秀有限公司招聘筆試參考題庫附帶答案詳解
- 2008年高考語文試卷(山東)(解析卷)
- 2024年中國成人心肌炎臨床診斷與治療指南解讀
- 倉庫三級安全教育培訓(xùn)
評論
0/150
提交評論