大學(xué)c語(yǔ)言教程(最有用)ppt課件_第1頁(yè)
大學(xué)c語(yǔ)言教程(最有用)ppt課件_第2頁(yè)
大學(xué)c語(yǔ)言教程(最有用)ppt課件_第3頁(yè)
大學(xué)c語(yǔ)言教程(最有用)ppt課件_第4頁(yè)
大學(xué)c語(yǔ)言教程(最有用)ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩530頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C程序設(shè)計(jì) 主講 江小輝 教材 參考書與課時(shí)安排 教材C程序設(shè)計(jì) 第二版 譚浩強(qiáng)編著清華大學(xué)出版社參考書C語(yǔ)言程序設(shè)計(jì)教程譚浩強(qiáng)高等教育出版社C高級(jí)實(shí)用程序設(shè)計(jì)王士元清華大學(xué)出版社C程序設(shè)計(jì)試題匯編譚浩強(qiáng)清華大學(xué)出版社課時(shí)安排64學(xué)時(shí) 熟記C語(yǔ)言的基本概念熟悉TurboC的上機(jī)操作環(huán)境會(huì)讀 會(huì)編 會(huì)調(diào)試C程序?qū)W習(xí)要點(diǎn)熟記C語(yǔ)言的語(yǔ)法學(xué)會(huì)算法分析與算法設(shè)計(jì) 課程目的 課程要求 課前請(qǐng)做好預(yù)習(xí)保持課堂安靜 頭腦清醒 思維活躍認(rèn)真 獨(dú)立 按時(shí)完成并提交作業(yè)重視上機(jī)實(shí)踐 有效利用寶貴的上機(jī)時(shí)間 目錄 第1章C語(yǔ)言概述 C語(yǔ)言程序設(shè)計(jì)第一章C語(yǔ)言概述 1 1C語(yǔ)言發(fā)展歷史程序設(shè)計(jì)語(yǔ)言的發(fā)展 CPU指令系統(tǒng) 由0 1序列構(gòu)成的指令碼組成如 10000000加10010000減 用助記符號(hào)描述的指令系統(tǒng) 可進(jìn)行地址 位操作如ADDA B編寫系統(tǒng)軟件 直接對(duì)硬件操作 可讀性 移植性差 C語(yǔ)言程序設(shè)計(jì)第一章C語(yǔ)言概述 可讀性 移植性好 編寫應(yīng)用程序一般較難實(shí)現(xiàn)匯編語(yǔ)言的某些功能如 地址和位的操作 C語(yǔ)言兼有高級(jí)和低級(jí)語(yǔ)言的功能適合寫系統(tǒng)軟件和應(yīng)用軟件又稱中級(jí)語(yǔ)言 C語(yǔ)言發(fā)展過(guò)程產(chǎn)生背景ALGOL60 CPL語(yǔ)言 BCPL B語(yǔ)言 寫UNIX系統(tǒng)產(chǎn)生過(guò)程時(shí)間 1972 1973地點(diǎn) 美國(guó)貝爾實(shí)驗(yàn)室目的 UNIX操作系統(tǒng)設(shè)計(jì)人 Ken Thompson和Dennis M RitchieC標(biāo)準(zhǔn)標(biāo)準(zhǔn)C 1978年K R合著 TheCProgrammingLanguage ANSIC 1983年87ANSIC 1987年1990年國(guó)際標(biāo)準(zhǔn)的ANSIC 1994年再次修訂 C版本MicrosoftC或稱MS CTurboC或稱TC C語(yǔ)言程序設(shè)計(jì)第一章C語(yǔ)言概述 1 2C語(yǔ)言的特點(diǎn)語(yǔ)言簡(jiǎn)潔 緊湊 靈活運(yùn)算符豐富數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)類型豐富鏈表 樹 棧程序設(shè)計(jì)結(jié)構(gòu)化 模塊化結(jié)構(gòu)化控制語(yǔ)句 if else while switch for函數(shù)作為模塊單位語(yǔ)法不嚴(yán)格 程序設(shè)計(jì)自由度大可以訪問(wèn)內(nèi)存地址 進(jìn)行位運(yùn)算生成目標(biāo)代碼質(zhì)量高可移植性好 C語(yǔ)言程序設(shè)計(jì)第一章C語(yǔ)言概述 32個(gè)關(guān)鍵字 由系統(tǒng)定義 不能重作其它定義 autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhileTurboC擴(kuò)充了11個(gè)關(guān)鍵字 asm cs ds es sscdeclfarhugeinterruptnearpascal注意 在C語(yǔ)言中 關(guān)鍵字都是小寫的 C語(yǔ)言程序設(shè)計(jì)第一章C語(yǔ)言概述 C語(yǔ)言簡(jiǎn)潔 緊湊 使用方便 靈活 ANSIC一共只有32個(gè)關(guān)鍵字 見(jiàn)365頁(yè)附錄B 9種控制語(yǔ)句 if else for while do while continuebreakswitchgotoreturn C語(yǔ)言程序設(shè)計(jì)第一章C語(yǔ)言概述 C語(yǔ)言有9種控制語(yǔ)句 程序書寫形式自由 主要用小寫字母表示 壓縮了一切不必要的成分 C語(yǔ)言程序設(shè)計(jì)第一章C語(yǔ)言概述 表1 1C語(yǔ)言與Pascal語(yǔ)言比較 通過(guò)表1 1我們可以得出結(jié)論 C比Pascal簡(jiǎn)練 因此源程序更短 編程效率高 34種運(yùn)算符 算術(shù)運(yùn)算符 關(guān)系運(yùn)算符 邏輯運(yùn)算符 位運(yùn)算符 賦值運(yùn)算符 及其擴(kuò)展條件運(yùn)算符 逗號(hào)運(yùn)算符 指針運(yùn)算符 求字節(jié)數(shù) sizeof強(qiáng)制類型轉(zhuǎn)換 類型 分量運(yùn)算符 下標(biāo)運(yùn)算符 其它 注意 各種運(yùn)算符混合使用 其優(yōu)先級(jí)與結(jié)合方法是難點(diǎn) 可先預(yù)習(xí) C語(yǔ)言程序設(shè)計(jì)第一章C語(yǔ)言概述 C語(yǔ)言運(yùn)算符豐富 附錄C C語(yǔ)言程序設(shè)計(jì)第一章C語(yǔ)言概述 C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)豐富 1 3簡(jiǎn)單的C程序介紹 example1 1ThefirstCProgram includevoidmain printf Thisisacprogram n C語(yǔ)言程序設(shè)計(jì)第一章C語(yǔ)言概述 輸出 Thisisacprogram 例1 1第一個(gè)程序Thisisacprogram printf語(yǔ)句中的 n 是換行符 例1 2求倆個(gè)數(shù)的和 example1 1calculatethesumofaandb include Thisisthemainprogram voidmain inta b sum 定義變量 a 10 b 24 sum add a b printf sum d n sum Thisfunctioncalculatesthesumofxandy intadd intx inty intz z x y return z 運(yùn)行結(jié)果 sum 34 C語(yǔ)言程序設(shè)計(jì)第一章C語(yǔ)言概述 printf語(yǔ)句中的 d 是表示 十進(jìn)制整數(shù)類型 C語(yǔ)言程序設(shè)計(jì)第一章C語(yǔ)言概述 例1 3從鍵盤輸入兩個(gè)整數(shù) 輸出其中較大的數(shù) includevoidmain intmax intx inty inta b c scanf d d scanf語(yǔ)句中 a 的含義是 取地址 輸入 10 20 輸出 max 20 聲明部分 定義變量 調(diào)用max函數(shù) 返回值賦給c 定義max子函數(shù) 函數(shù)值 形參x y為整型 通過(guò)max函數(shù)將z值帶回調(diào)用處 C語(yǔ)言格式特點(diǎn)習(xí)慣用小寫字母 大小寫敏感不使用行號(hào) 無(wú)程序行概念可使用空行和空格常用鋸齒形書寫格式 C語(yǔ)言程序設(shè)計(jì)第一章C語(yǔ)言概述 main main inti j sum sum 0 for i 1 i 10 i for j 1 j 10 j sum i j printf d n sum 優(yōu)秀程序員的素質(zhì)之一 使用TAB縮進(jìn) 對(duì)齊有足夠的注釋有合適的空行 C語(yǔ)言結(jié)構(gòu)特點(diǎn)函數(shù)與主函數(shù)程序由一個(gè)或多個(gè)函數(shù)組成必須有且只能有一個(gè)主函數(shù)main 可以放在程序中任一位置程序執(zhí)行從main開始 在main中結(jié)束 其它函數(shù)通過(guò)嵌套調(diào)用得以執(zhí)行 程序語(yǔ)句C程序由語(yǔ)句組成用 作為語(yǔ)句終止符注釋 為注釋 不能嵌套不產(chǎn)生編譯代碼 例 Thisisthemain ofexample1 1 編譯預(yù)處理命令 C語(yǔ)言程序設(shè)計(jì)第一章C語(yǔ)言概述 1 4C程序的上機(jī)步驟C程序開發(fā)步驟 file exe C語(yǔ)言程序設(shè)計(jì)第一章C語(yǔ)言概述 程序代碼的錄入 生成源程序 c 語(yǔ)法分析查錯(cuò) 翻譯生成目標(biāo)程序 obj 與其它目標(biāo)程序或庫(kù)鏈接裝配 生成可執(zhí)行程序 exe TurboC集成開發(fā)環(huán)境配置要求UNIX PC DOS MS DOS UCDOS操作系統(tǒng)硬盤容量約2M 448KRAM運(yùn)行空間安裝TurboC創(chuàng)建子目錄Install若不是可安裝盤 將文件拷貝到對(duì)應(yīng)的目錄下 C語(yǔ)言程序設(shè)計(jì)第一章C語(yǔ)言概述 進(jìn)入TurboCD TC TC exe 主控菜單文件操作FILE NewLoadSaveWriteto編輯操作EDIT 插入 修改塊查找 替換編譯鏈接COMPILELINKMAKE執(zhí)行RUN退出TurboCAlt xAlt F Q幫助HelpF1Ctrl F1 C語(yǔ)言程序設(shè)計(jì)第一章C語(yǔ)言概述 基本操作 F10 調(diào)用主菜單F2 存盤F3 打開F1 幫助信息Alt F9 CompileCtrl F9 RunAlt F5 UserScreenAlt X 退出Tc 常用熱鍵 文本編輯 移動(dòng)光標(biāo)PgUp PgDn 上下翻頁(yè)Ctrl PgUp Ctrl PgDn 文件首尾Home行首End行尾DdeleteInsertBkspace 塊操作 Ctrl KB 塊開始標(biāo)記Ctrl KK 塊結(jié)束標(biāo)記Ctrl KC 塊拷貝Ctrl KV 塊移動(dòng)Ctrl KY 塊刪除Ctrl KH 塊隱藏 程序調(diào)試 F8 StepoverF7 TraceintoF4 GotoCursorCtrl F7 AddWatchCtrl F8 ToggleBreakpointCtrl F2 ProgramReset 窗口操作 F5 窗口縮放F6 窗口切換 C語(yǔ)言程序設(shè)計(jì)第一章C語(yǔ)言概述 課后作業(yè)預(yù)習(xí) 題解與上機(jī)指導(dǎo) 一書中P181 199頁(yè)的14 3 14 10節(jié)P236頁(yè)實(shí)驗(yàn)1教材P12 1 5 1 6 1 7 1 8題 注意 有關(guān)設(shè)計(jì)程序的作業(yè) 必須經(jīng)過(guò)上機(jī)調(diào)試 C語(yǔ)言程序設(shè)計(jì)第一章C語(yǔ)言概述 算法的概念 簡(jiǎn)單算法舉例 算法的特性 怎樣表示一個(gè)算法 第2章程序的靈魂 算法 C語(yǔ)言程序設(shè)計(jì)第二章程序的靈魂 算法 結(jié)構(gòu)化程序設(shè)計(jì)方法 C語(yǔ)言程序設(shè)計(jì)第二章程序的靈魂 算法 程序包括的內(nèi)容 數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)的類型和組織形式算法 操作步驟的描述 NikiklausWirth提出 教材認(rèn)為 程序 算法 數(shù)據(jù)結(jié)構(gòu) 程序設(shè)計(jì)方法 語(yǔ)言工具和環(huán)境 靈魂 加工對(duì)象 工具 C語(yǔ)言程序設(shè)計(jì)第二章程序的靈魂 算法 2 1算法的概念為解決一個(gè)問(wèn)題而采取的方法和步驟 就成為算法 例如 歌曲的樂(lè)譜 建造房子等 算法核心是解決 做什么 和 怎么做 的問(wèn)題 P15頁(yè)的例2 1 求1 5之積 可以有多種方法 一般采用簡(jiǎn)單和運(yùn)算步驟少的 準(zhǔn)確 高效計(jì)算機(jī)算法類別數(shù)值運(yùn)算算法非數(shù)值運(yùn)算算法 C語(yǔ)言程序設(shè)計(jì)第二章程序的靈魂 算法 2 2簡(jiǎn)單算法舉例例2 1方法1 累乘方法2 用循環(huán)結(jié)構(gòu)解決 靈活 通用 例2 2通過(guò)循環(huán)選擇打印例2 3判斷閏年例2 4累加求級(jí)數(shù)的和 循環(huán)改變正負(fù)號(hào)和分母加1 例2 5判斷素?cái)?shù) 課后認(rèn)真思考 加深什么是算法的概念 C語(yǔ)言程序設(shè)計(jì)第二章程序的靈魂 算法 2 3算法的特性有窮性 在合理范圍內(nèi)可完成確定性 無(wú)歧義性有零個(gè)或多個(gè)輸入 從外界得到信息有一個(gè)或多個(gè)輸出 問(wèn)題的答案有效性 每步有確定的結(jié)果 C語(yǔ)言程序設(shè)計(jì)第二章程序的靈魂 算法 2 4怎樣表示一個(gè)算法自然語(yǔ)言表示2 2節(jié)例 易懂 文字冗長(zhǎng) 易歧義性流程圖表示用流程圖符號(hào)構(gòu)成 直觀 易懂N S流程圖表示偽代碼表示計(jì)算機(jī)語(yǔ)言表示 順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu) C語(yǔ)言程序設(shè)計(jì)第二章程序的靈魂 算法 傳統(tǒng)流程圖流向混亂 可讀性差 所以應(yīng)該采用結(jié)構(gòu)化流程圖 結(jié)構(gòu)化程序設(shè)計(jì)基本思想 任何程序都可以用三種基本結(jié)構(gòu)表示 限制使用無(wú)條件轉(zhuǎn)移語(yǔ)句 goto 結(jié)構(gòu)化程序 由三種基本結(jié)構(gòu)反復(fù)嵌套構(gòu)成的程序優(yōu)點(diǎn) 結(jié)構(gòu)清晰 易讀 提高程序設(shè)計(jì)質(zhì)量和效率 三種基本結(jié)構(gòu)順序結(jié)構(gòu) C語(yǔ)言程序設(shè)計(jì)第二章程序的靈魂 算法 選擇結(jié)構(gòu) 二分支選擇結(jié)構(gòu) 多分支選擇結(jié)構(gòu) C語(yǔ)言程序設(shè)計(jì)第二章程序的靈魂 算法 循環(huán)結(jié)構(gòu) 當(dāng)型循環(huán)結(jié)構(gòu) 直到型循環(huán)結(jié)構(gòu) 注 A B A1 An可以是一個(gè)簡(jiǎn)單語(yǔ)句 也可以是一個(gè)基本結(jié)構(gòu) C語(yǔ)言程序設(shè)計(jì)第二章程序的靈魂 算法 三種基本結(jié)構(gòu)的共同特點(diǎn) 只有一個(gè)入口 只有一個(gè)出口 結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會(huì)被執(zhí)行到 結(jié)構(gòu)內(nèi)不存在 死循環(huán) C語(yǔ)言程序設(shè)計(jì)第二章程序的靈魂 算法 2 5結(jié)構(gòu)化程序設(shè)計(jì)方法結(jié)構(gòu)化程序 用三種基本結(jié)構(gòu)組成的程序基本設(shè)計(jì)思路 復(fù)雜問(wèn)題分解成幾個(gè)最基本問(wèn)題 再分別處理 采用的方法 自頂向下 逐步細(xì)化 模塊化設(shè)計(jì) 復(fù)雜問(wèn)題按功能分成多個(gè)子模塊結(jié)構(gòu)化編碼 正確采用三種基本結(jié)構(gòu)實(shí)現(xiàn) C語(yǔ)言程序設(shè)計(jì)第二章程序的靈魂 算法 課后作業(yè)P36頁(yè)習(xí)題 2 4 2 8 結(jié)合實(shí)驗(yàn)指導(dǎo)讀懂答案 用N S圖表示2 4題中 用傳統(tǒng)流程圖求解以下問(wèn)題 將一個(gè)16進(jìn)制數(shù)轉(zhuǎn)化為10進(jìn)制數(shù)復(fù)習(xí)二進(jìn)制的基本概念 計(jì)算機(jī)文化基礎(chǔ) 一書中P27 33頁(yè) 第3章數(shù)據(jù)類型 運(yùn)算符與表達(dá)式 C語(yǔ)言程序設(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語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 3 1C的數(shù)據(jù)類型 數(shù)據(jù)類型決定 1 數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2 數(shù)據(jù)取值范圍3 可以進(jìn)行的操作 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 常量和符號(hào)常量定義 程序運(yùn)行過(guò)程中 其值不能被改變的量 常數(shù) 分類 直接常量 符號(hào)常量 3 2常量與變量 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 符號(hào)常量 用標(biāo)識(shí)符代表常量一般用大寫字母 PRICE PI定義格式 define符號(hào)常量常量其值在作用域內(nèi)不能改變和再賦值 例3 1符號(hào)常量舉例 definePRICE30 includevoidmain intnum total num 10 total num PRICE printf total d n total 符號(hào)常量的優(yōu)點(diǎn)是 見(jiàn)名知意 一改全改 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 變量定義 其值可以改變的量 定義格式 數(shù)據(jù)類型變量名 變量應(yīng)該有名字 并在內(nèi)存中占據(jù)一定的存儲(chǔ)單元 變量名和變量值有不同的含義變量名實(shí)為一個(gè)符號(hào)地址 例變量的使用main inta a 3 printf a d a C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 標(biāo)識(shí)符定義 標(biāo)識(shí)變量名 符號(hào)常量名 函數(shù)名 數(shù)組名 文件名的字符串序列 名字 命名規(guī)則 只能由字母 數(shù)字 下劃線組成 且第一個(gè)字符必須是字母或下劃線大小寫字母含義不同 一般用小寫不能使用關(guān)鍵字TC允許最長(zhǎng)32個(gè)字符 建議長(zhǎng)度不超過(guò)8個(gè)字符使用 先定義 后使用 標(biāo)識(shí)符應(yīng)該 見(jiàn)名知意 如total max標(biāo)識(shí)符應(yīng)該 不宜混淆 如l與1 O與0 這些標(biāo)識(shí)符合法嗎 1A M D John 123 33 Tatol int max C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 3 3整型數(shù)據(jù)整型常量 整常數(shù) 的三種表示方法十進(jìn)制整數(shù) 由數(shù)字0 9和正負(fù)號(hào)表示 如123 456 0八進(jìn)制整數(shù) 由數(shù)字0開頭 后跟數(shù)字0 7表示 如0123 011十六進(jìn)制整數(shù) 由0 x開頭 后跟0 9 a f A F表示 如0 x123 0 xff C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 補(bǔ)充知識(shí) 字節(jié)和位內(nèi)存以字節(jié)為單元組成每個(gè)字節(jié)有一個(gè)地址一個(gè)字節(jié)一般由8個(gè)二進(jìn)制位組成每個(gè)二進(jìn)位的值是0或1 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 數(shù)值的表示方法 原碼 反碼和補(bǔ)碼原碼 最高位為符號(hào)位 其余各位為數(shù)值本身的絕對(duì)值反碼 正數(shù) 反碼與原碼相同負(fù)數(shù) 符號(hào)位為1 其余位對(duì)原碼取反補(bǔ)碼 正數(shù) 原碼 反碼 補(bǔ)碼相同負(fù)數(shù) 最高位為1 其余位為原碼取反 再對(duì)整個(gè)數(shù)加1 9 5 49 7 16 14 12 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 負(fù)數(shù)補(bǔ)碼轉(zhuǎn)換成十進(jìn)制數(shù) 最高位不動(dòng) 其余位取反加1 例補(bǔ)碼 11111001取反 10000110加1 10000111 7 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 整型變量整型數(shù)據(jù)在內(nèi)存中的存放形式數(shù)據(jù)在內(nèi)存中以二進(jìn)制補(bǔ)碼形式存放每一個(gè)整型變量在內(nèi)存中占2個(gè)字節(jié)10的原碼反碼補(bǔ)碼 10的原碼取絕對(duì)值反碼補(bǔ)碼 整數(shù)的最左二進(jìn)制位是符號(hào)位 0正 1負(fù) C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 整型變量的分類三類整型變量 整數(shù)類型和取值范圍 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 整型變量的定義先定義后使用 強(qiáng)制類型定義inta b 指定變量a b為整型 unsignedshortc d 指定變量c d為無(wú)符號(hào)短整型 longe f 指定變量e f為長(zhǎng)整型 例3 2整型變量的定義與使用 includevoidmain 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 指定abcd為整型變量 指定u為無(wú)符號(hào)整型變量 定義放在函數(shù)開頭的聲明部分 不同類型混合運(yùn)算 類型自動(dòng)轉(zhuǎn)換 結(jié)果 a u 22 b u 14 定義與賦值同時(shí)進(jìn)行 inta 12 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 整型數(shù)據(jù)的溢出此情況稱為 溢出 運(yùn)行時(shí)不報(bào)錯(cuò) 編程時(shí)要注意 整型變量最大值32767 加1后是 32768的補(bǔ)碼形式 例3 3整型數(shù)據(jù)的溢出 includevoidmain inta b a 32767 b a 1 printf d d n a b 改為 longb 結(jié)果是什么 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 整型常量的類型整型常量的值在 32768 32767范圍內(nèi) 編譯器認(rèn)為是int類型整型常量的值超過(guò)上述范圍 而在 2147483648 2147483647范圍內(nèi) 編譯器認(rèn)為是long類型當(dāng)系統(tǒng)定義shortint與int占內(nèi)存長(zhǎng)度相同 則兩種類型常量均可以賦給int和shortint型變量在整型常量后面加大寫L或小寫l 則告訴編譯器 把該整型常量作為long類型處理 例 123L 0L在整型常量后面加u 則按無(wú)符號(hào)整型方式存放 負(fù)數(shù)轉(zhuǎn)換成補(bǔ)碼再按無(wú)符號(hào)整型方式存放 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 3 4浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型常量的表示方法浮點(diǎn)數(shù) float 又稱為實(shí)數(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 104 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 浮點(diǎn)型變量浮點(diǎn)型數(shù)據(jù)在內(nèi)存中的存放形式浮點(diǎn)型數(shù)據(jù)在內(nèi)存中占4個(gè)字節(jié) 32位 在內(nèi)存中分成3部分 指數(shù)為2的冪次 3141591 數(shù)符 小數(shù)部分 指數(shù) 浮點(diǎn)型變量的分類 floatx y 指定x y為單精度浮點(diǎn)型變量 doublez 指定z為雙精度浮點(diǎn)型變量 longdoublet 指定t為長(zhǎng)雙精度浮點(diǎn)型變量 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 浮點(diǎn)型數(shù)據(jù)的舍入誤差數(shù)據(jù)超過(guò)有效位數(shù) 則產(chǎn)生誤差要避免一個(gè)很大的數(shù)與一個(gè)很小的數(shù)加減 例3 4浮點(diǎn)型數(shù)據(jù)的舍入誤差 includevoidmain floata 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語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 3 5字符型數(shù)據(jù)字符常量定義 用單引號(hào)括起來(lái)的單個(gè)字符或轉(zhuǎn)義字符字符常量的值 該字符的ASCII碼值定義格式 char變量名 值轉(zhuǎn)義字符 反斜線后面跟一個(gè)字符或一個(gè)代碼值表示 如 a A n t 如 a 97 A 65 n 10 t 9 charch 65與charch A 與char 101 是等效的 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 例3 5轉(zhuǎn)義字符的使用 includevoidmain printf abc tde rf tg n printf h ti b bjk C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 字符變量存放字符常量 占用一個(gè)字節(jié) 存放一個(gè)字符定義形式 賦值 charc1 c2 c1 a c2 b 字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式及其使用方法以二進(jìn)制存放字符的ASCII碼值 0 255整數(shù) 與整數(shù)的存儲(chǔ)形式類似以字符或整數(shù)形式輸出 例3 6向字符變量賦整數(shù) includevoidmain charc1 c2 c1 97 c2 98 printf c c n c1 c2 printf d d n c1 c2 輸出形式取決于printf函數(shù)中的格式符 格式符為 c 時(shí)輸出的變量值為字符格式符為 d 時(shí)輸出的變量值為整數(shù) C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 對(duì)字符數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算實(shí)質(zhì)是對(duì)其ASCII值進(jìn)行算術(shù)運(yùn)算 例3 7大小寫字母的轉(zhuǎn)換 includevoidmain charc1 c2 c1 a c2 b c1 c1 32 c2 c2 32 printf c c c1 c2 字符型與整型間互相賦值 例 互相賦值 includevoidmain intc1 charc2 c1 a c2 98 c1 c1 32 c2 c2 32 printf c c c1 c2 小寫字母比大寫字母的ASCII碼大 32 10 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 字符串常量定義 用雙引號(hào) 括起來(lái)的字符序列 Howdoyoudo CHINA a 123 45 存儲(chǔ) 每個(gè)字符串尾自動(dòng)加一個(gè) 0 作為字符串結(jié)束標(biāo)志 字符常量與字符串常量不同 例 charch ch A 沒(méi)有字符串變量 只能用字符數(shù)組存放 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 3 6變量賦初值變量的使用 先定義 后使用變量定義位置 一般放在函數(shù)開頭變量初始化 可以在定義時(shí)賦初值 例 inta 1 b 3 c floatdata 3 67 charch A intx 1 y 1 z 1 intx y 1 錯(cuò) inta b c 3 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 3 7各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算整型 實(shí)型 字符型數(shù)據(jù)間可以混合運(yùn)算 自動(dòng)轉(zhuǎn)換什么情況下發(fā)生運(yùn)算轉(zhuǎn)換 不同類型數(shù)據(jù)混合運(yùn)算時(shí)賦值轉(zhuǎn)換 把一個(gè)值賦給與其類型不同的變量時(shí)輸出轉(zhuǎn)換 輸出時(shí)轉(zhuǎn)換成指定的輸出格式函數(shù)調(diào)用轉(zhuǎn)換 實(shí)參與形參類型不一致時(shí)轉(zhuǎn)換運(yùn)算轉(zhuǎn)換規(guī)則 不同類型數(shù)據(jù)運(yùn)算時(shí)先自動(dòng)轉(zhuǎn)換成同一類型 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 強(qiáng)制轉(zhuǎn)換 見(jiàn)P56強(qiáng)制類型轉(zhuǎn)換運(yùn)算符部分 一般形式 類型名 表達(dá)式 例 int x y int x y double 3 2 int 3 6說(shuō)明 強(qiáng)制轉(zhuǎn)換得到所需類型的中間變量 原變量類型不變 例3 8 includemain floatx inti x 3 6 i int x printf x f i d x i 結(jié)果 x 3 600000 i 3 精度損失問(wèn)題 強(qiáng)制類型轉(zhuǎn)換運(yùn)算符 表達(dá)式僅一個(gè)變量時(shí) 括號(hào)可以省略 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 3 8算術(shù)運(yùn)算符和算術(shù)表達(dá)式 學(xué)習(xí)運(yùn)算符應(yīng)注意 運(yùn)算符功能與運(yùn)算量關(guān)系要求運(yùn)算量個(gè)數(shù)要求運(yùn)算量類型運(yùn)算符優(yōu)先級(jí)別結(jié)合方向結(jié)果的類型 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 算術(shù)運(yùn)算符和算術(shù)表達(dá)式基本算術(shù)運(yùn)算符 結(jié)合方向 從左向右優(yōu)先級(jí) 2 3 4 說(shuō)明 可為單目運(yùn)算符時(shí) 右結(jié)合性兩整數(shù)相除 結(jié)果為整數(shù) 要求兩側(cè)均為整型數(shù)據(jù) 運(yùn)算的兩個(gè)數(shù)中有一個(gè)數(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 11 10 15 1 05 5 2 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 自增 自減運(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語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 幾點(diǎn)說(shuō)明 例 i i 3 printf d i i 3 不能用于常量和表達(dá)式 如5 a b 結(jié)合方向 自右向左優(yōu)先級(jí) 2 3 4 該運(yùn)算符常用于循環(huán)語(yǔ)句中 使循環(huán)變量加減1 有關(guān)表達(dá)式使用中的問(wèn)題說(shuō)明不同系統(tǒng)對(duì)運(yùn)算符和表達(dá)式的處理次序不同 盡可能寫通用性強(qiáng)的語(yǔ)句不要寫有歧義和不知系統(tǒng)如何執(zhí)行的程序 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 3 9賦值運(yùn)算符和賦值表達(dá)式 簡(jiǎn)單賦值運(yùn)算符符號(hào) 格式 變量標(biāo)識(shí)符 表達(dá)式作用 將一個(gè)數(shù)據(jù) 常量或表達(dá)式 賦給一個(gè)變量左側(cè)必須是變量 不能是常量或表達(dá)式 例a 3 d func c d 2 例3 x 2 y a b 3 類型轉(zhuǎn)換賦值轉(zhuǎn)換規(guī)則 使賦值號(hào)右邊表達(dá)式值自動(dòng)轉(zhuǎn)換成其左邊變量的類型 例floatf inti 10 f i 則f 10 0 例inti i 2 56 結(jié)果i 2 復(fù)合賦值運(yùn)算符種類 含義 exp1op exp2 exp1 exp1opexp2 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 賦值表達(dá)式形式 賦值表達(dá)式的值與變量值相等 且可嵌套 例 a b c 5a 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語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 3 10逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式形式 表達(dá)式1 表達(dá)式2 表達(dá)式n結(jié)合性 從左向右優(yōu)先級(jí) 15 級(jí)別最低逗號(hào)表達(dá)式的值 等于表達(dá)式n的值用途 常用于循環(huán)for語(yǔ)句中 例a 3 5 a 4a 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 逗號(hào)表達(dá)式 表達(dá)式值18 x 3 1 2 3 3 2 3 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 例 逗號(hào)表達(dá)式使用main intx y 7 floatz 4 x y y 6 y z printf x d n x 本章的內(nèi)容散亂而復(fù)雜 但卻是程序設(shè)計(jì)的基礎(chǔ) 要認(rèn)真看書 通過(guò)編程序才可以深入理解 C語(yǔ)言程序設(shè)計(jì)第三章程序的靈魂 算法 課后作業(yè)P66 68頁(yè)習(xí)題 3 2 3 5 思考 3 3 3 4 3 9 3 12 寫出答案 3 6 3 10 上機(jī)驗(yàn)證 上機(jī) 實(shí)驗(yàn)教材 實(shí)驗(yàn)2 做好上機(jī)準(zhǔn)備 預(yù)習(xí)第四 第五章 第4章最簡(jiǎn)單的C程序設(shè)計(jì) 順序程序設(shè)計(jì) C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) C語(yǔ)言概述 賦值語(yǔ)句 數(shù)據(jù)輸入輸出的概念及在C語(yǔ)言中的實(shí)現(xiàn) 字符數(shù)據(jù)的輸入輸出 格式輸入與輸出 順序結(jié)構(gòu)程序設(shè)計(jì)舉例 4 1C語(yǔ)句概述C程序結(jié)構(gòu) 一個(gè)C程序可以由多個(gè)源程序文件構(gòu)成一個(gè)源程序文件由若干函數(shù) 預(yù)編譯命令及全局變量聲明部分構(gòu)成函數(shù)包括數(shù)據(jù)定義部分和執(zhí)行部分 執(zhí)行部分是C語(yǔ)言語(yǔ)句 完成對(duì)數(shù)據(jù)的操作 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) C語(yǔ)句分為5類控制語(yǔ)句 共9種完成一定的控制功能 這些語(yǔ)句能夠根據(jù)一定的測(cè)試條件決定某些語(yǔ)句是否被執(zhí)行 如分支 循環(huán) 跳轉(zhuǎn)等語(yǔ)句 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) 空語(yǔ)句 只有一個(gè) 什么也不做 表達(dá)式語(yǔ)句 由表達(dá)式加 組成典型的是賦值語(yǔ)句 由賦值表達(dá)式加分號(hào)構(gòu)成 如 y x 1是表達(dá)式 而y x 1 則是賦值語(yǔ)句 實(shí)際上函數(shù)調(diào)用語(yǔ)句也屬于表達(dá)式語(yǔ)句 函數(shù)調(diào)用語(yǔ)句 由函數(shù)加 組成 printf ThisisaCprogram a 3 i for i 0 i 100 i 復(fù)合語(yǔ)句 用 括起來(lái)的一組語(yǔ)句 也稱作程序塊 一般形式 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) inti 0 sum 0 while i 100 sum sum i i i 1 說(shuō)明復(fù)合語(yǔ)句 后不加分號(hào)語(yǔ)法上和其它語(yǔ)句相同復(fù)合語(yǔ)句可嵌套 4 2賦值語(yǔ)句基本格式 賦值表達(dá)式 賦值表達(dá)式可以包含在其它表達(dá)式中 而賦值語(yǔ)句不可以 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) 例 if a b 0 t a 不可寫為 if a b 0 t a C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) 表達(dá)式中允許出現(xiàn)運(yùn)算符號(hào) 變量 數(shù)值 函數(shù) 序號(hào) 語(yǔ)句 含義 右側(cè)表達(dá)式包括 另一種形式的賦值語(yǔ)句 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) 我們可以理解為 只適合于整型變量 連續(xù)賦值語(yǔ)句 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) inta b c a b c 1 inta b c 1 4 3數(shù)據(jù)輸入輸出的概念及在C語(yǔ)言中的實(shí)現(xiàn) C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) 標(biāo)準(zhǔn)輸入輸出函數(shù)putchar輸出字符 scanf格式輸入 puts輸出字符串getchar輸入字符 printf格式輸出 gets輸入字符串 所謂數(shù)據(jù)的輸入輸出是從計(jì)算機(jī)角度出發(fā)的 C語(yǔ)言本身沒(méi)有I O語(yǔ)句 所有I O都由函數(shù)來(lái)實(shí)現(xiàn) C語(yǔ)言的標(biāo)準(zhǔn)庫(kù)函數(shù)由編譯系統(tǒng)提供的一系列函數(shù) 以庫(kù)形式存放在系統(tǒng)中 不是C語(yǔ)言文本的組成部分 庫(kù)函數(shù)已編譯成目標(biāo)文件 obj 在連接階段才與源程序編譯成的目標(biāo)文件相連接 生成可執(zhí)行文件 調(diào)用形式 函數(shù)名 參數(shù)表 注意在調(diào)用C語(yǔ)言庫(kù)函數(shù)時(shí) 需要使用編譯預(yù)處理命令 include 使相應(yīng)的頭文件包含到用戶源程序中 include或 include stdio h TurboC2 0可以不加 include命令 常用頭文件 stdio h定義輸入輸出函數(shù)string h定義字符串操作函數(shù)math h定義sin cos等數(shù)學(xué)函數(shù) 4 4字符數(shù)據(jù)的輸入輸出putchar函數(shù) 單字符輸出函數(shù) C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) 輸出一個(gè)字符 格式 putchar 字符 或putchar 字符變量 強(qiáng)調(diào) 被輸出的單個(gè)字符必須被 括起來(lái) 運(yùn)行結(jié)果 BOY 例4 1putchar 字符 includevoidmain putchar B putchar O putchar Y 例4 1putchar 字符變量 includevoidmain chara b c a B b O c Y putchar a putchar b putchar c 結(jié)果當(dāng)然還是一樣的 輸出控制字符 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) 例putchar 控制字符 includevoidmain chara b a O b k putchar a putchar n putchar b 運(yùn)行結(jié)果 Ok 輸出轉(zhuǎn)義字符 例putchar 含有轉(zhuǎn)義符 includevoidmain chara a B putchar 101 putchar a 運(yùn)行結(jié)果 AB getchar函數(shù) 單字符輸入函數(shù) C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) 格式 getchar 強(qiáng)調(diào) 輸入單個(gè)字符后 必須按一次回車 計(jì)算機(jī)才接受輸入的字符 include不能少 例4 2 includevoidmain charc c getchar putchar c 運(yùn)行結(jié)果 a a 4 5格式輸入與輸出printf函數(shù) 格式輸出函數(shù) printf函數(shù)的一般格式 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) 格式 printf 格式控制 輸出表列 格式控制 用雙引號(hào)括起來(lái)的字符串 包含兩種信息格式說(shuō)明 修飾符 格式字符 指定輸出格式普通字符 原樣輸出輸出表列 要輸出的數(shù)據(jù) 可以是變量或表達(dá)式 可以沒(méi)有 多個(gè)時(shí)以 分隔 例 printf d d a b printf a db d n a b C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) 從最簡(jiǎn)單的學(xué)起 includevoidmain printf HelloWorld 運(yùn)行結(jié)果 HelloWorld 調(diào)用printf 時(shí)可以省略 include命令 格式字符d格式符 輸出十進(jìn)制整數(shù) 有3種用法 d格式 按數(shù)據(jù)實(shí)際長(zhǎng)度輸出 數(shù)據(jù)范圍 32768 32767 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) d格式的printf 函數(shù)使用 includevoidmain inta 3 b 4 printf d d n a b printf a d b d n a b 運(yùn)行結(jié)果 34a 3 b 4 格式說(shuō)明決定最終輸出的格式 格式說(shuō)明應(yīng)與輸出列表項(xiàng)個(gè)數(shù)相同 順序一致 格式說(shuō)明通常用小寫字母表示 md格式 m指定輸出字段的寬度數(shù)據(jù)位數(shù)小于m 左端補(bǔ)空格 反之按實(shí)際輸出 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) inta 123 b 12345 printf 4d 4d a b ld格式 輸出長(zhǎng)整型數(shù)據(jù)可以用 mld格式指定輸出列寬 longc 135790printf ld n c printf 8ld c 135790 32767 int型數(shù)據(jù)的最大值 o格式符 八進(jìn)制輸出整數(shù)是將內(nèi)存中的二進(jìn)制位整個(gè)按八進(jìn)制輸出 所以輸出值沒(méi)有符號(hào) 可以指定輸出寬度 mo 長(zhǎng)整型可以用 lo格式輸出 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) inta 1 printf d o 8o x a a a a 輸出 1 177777 177777 ffff x格式符 十六進(jìn)制輸出整數(shù)同o格式符 無(wú)符號(hào) 即無(wú)負(fù)十六進(jìn)制數(shù) 可以指定輸出寬度 mx 長(zhǎng)整型可以用 lx格式輸出 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) u格式符 十進(jìn)制輸出unsigned型數(shù)據(jù)int型可以用 u格式輸出 unsigned型也可以用 d o和 x格式輸出 例4 3無(wú)符號(hào)數(shù)據(jù)的輸出 includevoidmain unsignedinta 65535 intb 2 printf a d o x u n a a a a printf b d o x u n b b b b 運(yùn)行結(jié)果 a 1 177777 ffff 65535b 2 177776 fffe 65534 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) c格式符 輸出一個(gè)字符值在0 255的整數(shù) 可以用 c形式輸出為字符 例4 4字符數(shù)據(jù)的輸出 includevoidmain charc a inti 97 printf c d n c c printf c d n i i 運(yùn)行結(jié)果 a 97a 97 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) s格式符 輸出一個(gè)字符串有 s ms ms m ns m ns五種用法 例4 5字符串的輸出 includevoidmain printf 3s 7 2s 4s 5 3d n CHINA CHINA CHINA CHINA 運(yùn)行結(jié)果 CHINA CH CHIN CHI C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) f格式符 輸出實(shí)數(shù) f格式 整數(shù)部分全部輸出 小數(shù)6位 可以有非有效數(shù)字輸出 因?yàn)閱尉扔行?位 雙精度16位 m nf格式 占m列 其中n位小數(shù) 左補(bǔ)空格 m nf格式 右補(bǔ)空格 例4 8 f格式輸出實(shí)數(shù)時(shí)指定小數(shù)位數(shù) includevoidmain flotf 123 456 printf f 10f 10 2f 2f 10 2f n f f f f f 運(yùn)行結(jié)果 123 456001 123 456001 123 46 123 46 123 46 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) e格式符 指數(shù)形式輸出實(shí)數(shù) e格式 不指定m和n 小數(shù)6位 指數(shù)部分共5位 其中e和指數(shù)符號(hào)各1位 指數(shù)值3位 m ne和 m ne格式 m n 的含義同前面 沒(méi)有n時(shí) 自動(dòng) 6 g格式符 輸出實(shí)數(shù)可以自動(dòng)根據(jù)數(shù)值大小選擇f或e格式 選列少的 不輸出無(wú)意義的零 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) inta 100 printf d a inta 255 printf x a inta 8 printf o a inta 100 printf u a chara 65 printf c a printf s ABC floata 567 789 printf e a floata 567 789 printf f a floata 567 789 printf g a printf 100 ff 10 100 A ABC 5 677890e 002 567 789000 567 789 scanf函數(shù) 格式輸入函數(shù) 一般形式功能 按指定格式從鍵盤讀入數(shù)據(jù) 存入地址表指定的存儲(chǔ)單元中 并按回車鍵結(jié)束格式控制 含義同printf函數(shù)地址表列 變量地址或字符串地址 地址間 分隔 強(qiáng)調(diào) 地址列表中每一項(xiàng)必須以取地址運(yùn)算符 開頭 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) 格式 scanf 格式控制 地址表列 例4 9用scanf函數(shù)輸入數(shù)據(jù) includevoidmain inta b c scanf d d d 輸入 3 4 5 輸出 3 4 5 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) 例scanf 3d 4d f 輸入12345678765 43 則123 k 8765 43 f 例scanf 2d 3d 2d 輸入12 345 67 則12 a 67 b 例scanf 3c 2c 輸入abcde 則 a c1 d c2 例scanf 4d 2d 2d 輸入19991015 則1999 yy 10 mm 15 dd 輸入分隔符的指定一般以空格 TAB或回車鍵作為分隔符輸入數(shù)據(jù)時(shí) 遇非法輸入則認(rèn)為數(shù)據(jù)結(jié)束其它字符做分隔符 格式串中兩個(gè)格式符間有其它字符 則輸入時(shí)對(duì)應(yīng)位置也要有相同的字符 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) 例scanf d d d 輸入12 30 45 則12 h 30 m 45 s 例scanf d c f 輸入1234a123o 26 則1234 a a b 123 c 4 6順序結(jié)構(gòu)程序舉例 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) 例4 10輸入三角形邊長(zhǎng) 求面積 include includevoidmain floata b c s area scanf f f f 輸入 3 4 6 輸出 a 3 00 b 4 00 c 6 00s 6 50area 5 33 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) 例4 11從鍵盤輸入大寫字母 用小寫字母輸出 include stdio h voidmain charc1 c2 c1 getchar printf c d n c1 c1 c2 c1 32 printf c d n c2 c2 輸入 A 輸出 A 65a 97 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) include includevoidmain floata b c disc x1 x2 p q scanf a f b f c f 輸入 a 1 b 3 c 2 輸出 x1 1 00 x2 2 00 C語(yǔ)言程序設(shè)計(jì)第四章順序程序設(shè)計(jì) 本章要求程序的三種基本結(jié)構(gòu)及其特點(diǎn) 數(shù)據(jù)輸入輸出函數(shù)及其格式控制 熟悉TurboC環(huán)境的使用 頭文件和幫助系統(tǒng)的使用 ctrl F1 課后作業(yè)P86 90頁(yè)習(xí)題 4 7 4 10 思考 4 4 4 5 4 6 4 8 4 9 答案寫在作業(yè)本上 4 4 4 8 4 9 上機(jī)驗(yàn)證 上機(jī) 實(shí)驗(yàn)教材 實(shí)驗(yàn)3 做好上機(jī)準(zhǔn)備 預(yù)習(xí)第五 六章 第5章選擇結(jié)構(gòu)程序設(shè)計(jì) C語(yǔ)言程序設(shè)計(jì)第五章選擇結(jié)構(gòu)程序設(shè)計(jì) 關(guān)系運(yùn)算符和關(guān)系表達(dá)式 邏輯運(yùn)算符和邏輯表達(dá)式 if語(yǔ)句 switch語(yǔ)句 程序舉例 選擇結(jié)構(gòu)是三種基本結(jié)構(gòu)之一 其作用是 根據(jù)指定的條件所滿足的情況轉(zhuǎn)而執(zhí)行相應(yīng)的操作 C語(yǔ)言用關(guān)系表達(dá)式和邏輯表達(dá)式通過(guò)if語(yǔ)句實(shí)現(xiàn)雙分支選擇 用switch語(yǔ)句實(shí)現(xiàn)多分支選擇 C語(yǔ)言程序設(shè)計(jì)第五章選擇結(jié)構(gòu)程序設(shè)計(jì) 5 1關(guān)系運(yùn)算符和關(guān)系表達(dá)式 關(guān)系運(yùn)算 即 比較運(yùn)算 是對(duì)兩個(gè)值進(jìn)行比較 比較的結(jié)果是得到真假兩種值 A 3 關(guān)系表達(dá)式 關(guān)系運(yùn)算符 C語(yǔ)言程序設(shè)計(jì)第五章選擇結(jié)構(gòu)程序設(shè)計(jì) 關(guān)系運(yùn)算符及其優(yōu)先次序C語(yǔ)言提供6種關(guān)系運(yùn)算符種類 結(jié)合方向 自左向右優(yōu)先級(jí)別 大于 大于等于 等于 不等于 優(yōu)先級(jí)6 高 優(yōu)先級(jí)7 低 c a b c a b a b c a b ca bc a b c 關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來(lái)的式子 C語(yǔ)言程序設(shè)計(jì)第五章選擇結(jié)構(gòu)程序設(shè)計(jì) 關(guān)系表達(dá)式的值 是邏輯值 真 或 假 用1和0表示 a b a b b c 5 3 inta 3 b 2 c 1 d f a b a b cb cbf a b c 表達(dá)式值1 表達(dá)式值1 表達(dá)式值0 d 1 f 0 關(guān)系運(yùn)算幾點(diǎn)注意 C語(yǔ)言程序設(shè)計(jì)第五章選擇結(jié)構(gòu)程序設(shè)計(jì) 例5 2 7 8在C中是允許的 值為 0 例inti 1 j 7 a a i j 4 0 則a 2 例 a 0結(jié)果為 A 100結(jié)果為 1 0 結(jié)合方向自左至右 用ASCII值比較 關(guān)系運(yùn)算中應(yīng)該注意 C語(yǔ)言程序設(shè)計(jì)第五章選擇結(jié)構(gòu)程序設(shè)計(jì) 注意區(qū)分 與 inta 0 b 1 if a b printf aequaltob elseprintf anotequaltob 應(yīng)避免對(duì)實(shí)數(shù)作相等或不等于0的判斷如1 0 3 0 3 0 1 0可改寫為 fabs 1 0 3 0 3 0 1 0 1e 6 5 2邏輯運(yùn)算符和邏輯表達(dá)式用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來(lái)的式子就是邏輯表達(dá)式 邏輯運(yùn)算符 C語(yǔ)言提供3種邏輯運(yùn)算符 C語(yǔ)言程序設(shè)計(jì)第五章選擇結(jié)構(gòu)程序設(shè)計(jì) 和 是雙目運(yùn)算符 是單目運(yùn)算符 邏輯運(yùn)算真值表 C語(yǔ)言程序設(shè)計(jì)第五章選擇結(jié)構(gòu)程序設(shè)計(jì) 例 優(yōu)先次序 a b x y a b x y a a b 寫成a b x y 寫成a b x y 寫成 a a b 邏輯運(yùn)算符的優(yōu)先次序 非 與 或 優(yōu)先次序 高 2 11 12 低結(jié)合方向 從右向左從左向右從左向右 邏輯表達(dá)式 C語(yǔ)言程序設(shè)計(jì)第五章選擇結(jié)構(gòu)程序設(shè)計(jì) C語(yǔ)言中 運(yùn)算量 0表示 假 運(yùn)算結(jié)果 0表示 假 非0表示 真 1表示 真 例a 4 b 5 aa ba b a b4 0 25 3 2 8 4 0 c d 值為1 值為0 值為1 值為1 值為1 值為1 5 3 2 8 4 0 值為1 邏輯運(yùn)算中的注意點(diǎn) 短路特性 邏輯表達(dá)式求解時(shí) 并非所有的邏輯運(yùn)算符都被執(zhí)行 只是在必須執(zhí)行下一個(gè)邏輯運(yùn)算符才能求出表達(dá)式的解時(shí) 才執(zhí)行該運(yùn)算符 C語(yǔ)言程序設(shè)計(jì)第五章選擇結(jié)構(gòu)程序設(shè)計(jì) 若a 1 b 2 c 3 d 4 m 1 n 1 則 m a b n c d a b c 只在a為真時(shí) 才判別b的值 只在a b都為真時(shí) 才判別c的值a b c 只在a為假時(shí) 才判別b的值 只在a b都為假時(shí) 才判別c的值 結(jié)果m 0 n 1 復(fù)雜邏輯條件的表述判斷某一年year是否為閏年 C語(yǔ)言程序設(shè)計(jì)第五章選擇結(jié)構(gòu)程序設(shè)計(jì) 判別閏年的條件 intyear 能被4整除 year 4 0能被4整除但不能被100整除 year 4 0 year 100 0 能被400整除 year 400 0綜合起來(lái) year 4 0 year 100 0 year 400 0 此表達(dá)式為真時(shí)是閏年 優(yōu)化語(yǔ)句 year 4 0 year 100 0 year 400 0 5 3if語(yǔ)句 條件選擇語(yǔ)句 If語(yǔ)句的三種形式形式一 格式 if 表達(dá)式 語(yǔ)句執(zhí)行過(guò)程 C語(yǔ)言程序設(shè)計(jì)第五章選擇結(jié)構(gòu)程序設(shè)計(jì) main intx y x 20 y 10 if x y printf d x 沒(méi)有 C語(yǔ)言程序設(shè)計(jì)第五章選擇結(jié)構(gòu)程序設(shè)計(jì) 形式二 格式 if 表達(dá)式 語(yǔ)句1else語(yǔ)句2執(zhí)行過(guò)程 main intx y x 20 y 10 if x y printf d x elseprintf d y C語(yǔ)言程序設(shè)計(jì)第五章選擇結(jié)構(gòu)程序設(shè)計(jì) 形式三 格式 if 表達(dá)式1 語(yǔ)句1elseif 表達(dá)式2 語(yǔ)句2elseif 表達(dá)式3 語(yǔ)句3 elseif 表達(dá)式m 語(yǔ)句melse語(yǔ)句n執(zhí)行過(guò)程 例 if number 500 cost 0 15 elseif number 300 cost 0 1 elseif number 100 cost 0 075 elseif number 50 cost 0 05 elsecost 0 必須有 C語(yǔ)言程序設(shè)計(jì)第五章選擇結(jié)構(gòu)程序設(shè)計(jì) 幾點(diǎn)說(shuō)明 if后面的表達(dá)式類型任意 if后面的語(yǔ)句可以是復(fù)合語(yǔ)句 必須要加 if a b 考慮下面程序的輸出結(jié)果 main intx y scanf d d CompileError 后沒(méi)有 C語(yǔ)言程序設(shè)計(jì)第五章選擇結(jié)構(gòu)程序設(shè)計(jì) includevoidmain inta b printf Enterintegera scanf d 例 輸入兩個(gè)數(shù)并判斷兩數(shù)是否相等 運(yùn)行 Enterintegera 12 Enterintegerb 12 a b 運(yùn)行 Enterintegera 12 Enterintegerb 9 a b C語(yǔ)言程序設(shè)計(jì)第五章選擇結(jié)構(gòu)程序設(shè)計(jì) includevoidma

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論