已閱讀5頁,還剩624頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
計(jì)算機(jī)基礎(chǔ)教學(xué)系列課程 C語言 課程性質(zhì) 大學(xué)生公共基礎(chǔ)課程 必修課 學(xué)時(shí) 講課34課時(shí) 實(shí)驗(yàn)64 課內(nèi)32 課外32 學(xué)分 2學(xué)分總評成績 平時(shí)成績40 期末成績60 平時(shí)成績 成績1 作業(yè) 考勤10 成績2 單元測驗(yàn)15 成績3 實(shí)驗(yàn)報(bào)告15 期末成績 期末理論機(jī)考60 C語言程序設(shè)計(jì) 第一章C語言的發(fā)展 特點(diǎn)與程序結(jié)構(gòu)第二章基本數(shù)據(jù)類型 運(yùn)算符和表達(dá)式第三章基本語句與順序結(jié)構(gòu)第四章選擇結(jié)構(gòu)第五章循環(huán)結(jié)構(gòu)第六章數(shù)組第七章函數(shù)第八章指針第十章結(jié)構(gòu)體第十二章文件 C語言程序設(shè)計(jì) 推薦參考書 譚浩強(qiáng)主編 程序設(shè)計(jì) 第二版 北京 清華大學(xué)出版社 第一章C語言的發(fā)展 特點(diǎn)與程序開發(fā)基本知識(shí) 1 1C語言的發(fā)展與特點(diǎn)1 2程序設(shè)計(jì)的基本方法1 3算法的概念及其表示1 4C語言的基本結(jié)構(gòu)1 5應(yīng)用程序的開發(fā)步驟和運(yùn)行過程 下一章 目錄 習(xí)題 C語言是一門優(yōu)秀的程序設(shè)計(jì)語言C語言是在1973年由美國貝爾實(shí)驗(yàn)室開發(fā)的 1983年 ANSI為C語言制定了新的標(biāo)準(zhǔn) 稱為ANSIC 并于1989年最終完成 目前使用較多的版本有ANSIC BorlandC TurboC MicrosoftC C VisualC 等 C語言的發(fā)展 WUCC C語言是結(jié)構(gòu)化程序設(shè)計(jì)語言功能強(qiáng)大 具有豐富的數(shù)據(jù)類型及運(yùn)算符 簡潔緊湊 使用方便靈活 C語言具有自我擴(kuò)充能力C語言具有匯編語言的功能可移植性好 WUCC C語言的特點(diǎn) 程序的概念程序是計(jì)算機(jī)解決問題所需的一系列指令的集合 著名計(jì)算機(jī)科學(xué)家NikiklausWirth提出了 算法 數(shù)據(jù)結(jié)構(gòu) 程序 的公式程序就是在數(shù)據(jù)的某些特定的表示方式和結(jié)構(gòu)的基礎(chǔ)上 對抽象算法的具體描述 1 2程序設(shè)計(jì)的基本方法 程序 數(shù)據(jù)結(jié)構(gòu) 算法 程序設(shè)計(jì)方法 語言工具數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)的類型和數(shù)據(jù)的組織形式 算法是為解決一個(gè)問題而采用的方法和有限的步驟 程序設(shè)計(jì)方法確定語言和編程環(huán)境 WUCC 面向過程的程序設(shè)計(jì) 所謂面向過程的程序設(shè)計(jì) 是指利用面向過程的語言工具 如Pascal Fortran和C語言等 進(jìn)行程序開發(fā)的各項(xiàng)活動(dòng) 優(yōu)點(diǎn) 編程簡單 結(jié)構(gòu)性強(qiáng) 可讀性好 遵循這種結(jié)構(gòu)的程序只有一個(gè)入口和一個(gè)出口 缺點(diǎn) 存在數(shù)據(jù)與程序模塊的分離和程序的可重用性差等問題 WUCC 面向?qū)ο蟮某绦蛟O(shè)計(jì) ProgramDesigninCLanguage 面向?qū)ο蟮某绦蛟O(shè)計(jì)將一些新的理念和結(jié)構(gòu)化程序設(shè)計(jì)中好的思想相融合 提供了一種全新的程序設(shè)計(jì)方法 1 3算法及其表示 算法的特性有窮性一個(gè)算法的操作步驟應(yīng)當(dāng)是有限的 確定性算法中的每一個(gè)步驟應(yīng)當(dāng)有確定的意義 不能有二義性 有效性算法中的每一個(gè)步驟應(yīng)當(dāng)正確 可行 并且能有效地執(zhí)行 有零個(gè)或多個(gè)輸入執(zhí)行算法時(shí)需要從外界獲取的信息 有一個(gè)或多個(gè)輸出執(zhí)行算法后應(yīng)當(dāng)?shù)玫秸_的結(jié)果 算法舉例 例1 1 輸入三個(gè)數(shù) 然后輸出其中最大的數(shù) 1 輸入變量x y z的值 2 比較x和y 如果x y 則x送max 否則y送max 3 比較max與z 如果z max 則將z送max 4 輸出max max即為最大數(shù) 算法 對同一個(gè)問題 算法是不唯一的 例如 求和1 2 3 100 1 1 2 3 4 100 2 1 100 50一個(gè)好的算法應(yīng)該是 正確 易讀 效率高 算法的表示方法 常用的算法描述方法有 自然語言描述 偽代碼 流程圖 N S圖 PAD圖等 1 自然語言就是用人們?nèi)粘J褂玫恼Z言來描述或表示算法的方法 英語和程序設(shè)計(jì)語言混合使用稱為偽代碼 Begin 算法開始 inputx y zifx ythenmax xelsemax yifz maxthenmax zprintmaxend 算法結(jié)束 2 用偽代碼表示算法 用一些圖框和方向線表示算法的圖形表示法 特點(diǎn) 直觀形象 易于理解 便于檢查和交流 常用流程圖符號(hào)及含義如下 3 用流程圖表示算法 流程圖 例1 1 對任意給定的三個(gè)整數(shù)x y z 求出其最大值 例 對任意給定的三個(gè)整數(shù)x y z 求出其最大值 4 用N S流程圖表示算法 結(jié)構(gòu)化程序設(shè)計(jì) C語言是結(jié)構(gòu)化程序設(shè)計(jì)語言 有三種基本結(jié)構(gòu) 順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)實(shí)踐證明 任何復(fù)雜的算法都可以用這三種基本結(jié)構(gòu)來描述 程序設(shè)計(jì)的目標(biāo)在正確的前提下 其重要性排列次序依次為 可讀 可維護(hù) 可移植和高效 順序結(jié)構(gòu) 矩形框 用于表示順序結(jié)構(gòu) 執(zhí)行時(shí)按語句的先后順序執(zhí)行 先執(zhí)行語句A 再執(zhí)行語句B 順序結(jié)構(gòu)的流程圖 順序結(jié)構(gòu)的N S圖 選擇結(jié)構(gòu) 分支結(jié)構(gòu) 根據(jù)條件的真或假選擇執(zhí)行不同的操作內(nèi)容 當(dāng)條件成立執(zhí)行語句A 否則執(zhí)行語句B 選擇結(jié)構(gòu)的流程圖 選擇結(jié)構(gòu)的N S圖 循環(huán)結(jié)構(gòu) 1 當(dāng)型 while型循環(huán) 當(dāng)條件成立 執(zhí)行循環(huán)體 否則跳出循環(huán)體 L形框 用于表示循環(huán)結(jié)構(gòu) 2 直到型循環(huán) do while型循環(huán) 首先執(zhí)行循環(huán)體 若條件不成立繼續(xù)執(zhí)行循環(huán)體 直到條件成立為止 例1 2 在屏幕上顯示一行文字 WelcometoC includevoidmain 定義主函數(shù) printf WelcometoC n 程序運(yùn)行結(jié)果 WelcometoC 函數(shù) Function C程序包含一個(gè)或多個(gè)函數(shù) 其中必須有一個(gè)main 圓括號(hào)指示一個(gè)函數(shù) 包含函數(shù)體 表示main函數(shù)結(jié)束 printf Welcome printf toC n printf Welcome nto nC n 程序運(yùn)行結(jié)果 WelcometoC 程序運(yùn)行結(jié)果 WelcometoC 注釋 文本 或 不被執(zhí)行以提高程序的可讀性 語句 Statement 必須以 結(jié)尾格式輸出函數(shù)printf 調(diào)用標(biāo)準(zhǔn)函數(shù) 顯示引號(hào)中的內(nèi)容 includevoidmain inta b sum 聲明部分 定義變量類型a 123 b 456 執(zhí)行部分 賦值語句sum a b 執(zhí)行部分 賦值語句printf sum d n sum 執(zhí)行部分 輸出語句 程序運(yùn)行結(jié)果 sum 579 賦初值 計(jì)算 輸出 定義變量 例1 3 求兩個(gè)整數(shù)的和 函數(shù)體包括變量說明部分語句執(zhí)行部分 文件包含預(yù)處理命令 將標(biāo)準(zhǔn)輸入輸出頭文件包含到源程序中 includevoidmain inta b c 定義變量類型printf inputtwonumbers n 提示scanf d d intmax x y intx y intz if x y z x elsez y return z 例1 4 求兩個(gè)數(shù)中的較大值 程序由兩個(gè)函數(shù)組成 main函數(shù)和max函數(shù) 運(yùn)行程序屏幕顯示提示信息 鍵盤輸入a b的值 屏幕顯示c的值 inputtwonumbers 123 456 max 456 一個(gè)C程序由一個(gè)或多個(gè)函數(shù)組成 其中必須有一個(gè)主函數(shù)main 程序執(zhí)行時(shí)總是從主函數(shù)開始 main 可以置于程序的任何位置 程序中需有預(yù)處理命令 如 include 預(yù)處理命令通常放在程序的最前面 分號(hào)是C語句結(jié)束的標(biāo)志 每個(gè)語句和數(shù)據(jù)定義后必須有一個(gè)分號(hào) 預(yù)處理命令 函數(shù)頭和花括號(hào) 之后不能加分號(hào) 1 4 2C語言程序基本結(jié)構(gòu) C程序書寫靈活 一行可以寫幾個(gè)語句 一個(gè)語句可以寫在多個(gè)程序行上 includevoidmain inta b sum a 123 b 456 sum a b printf sum d n sum C語言本身沒有輸入輸出語句 輸入輸出的操作是由庫函數(shù)scanf 和printf 等函數(shù)完成的 1 4 2C語言程序基本結(jié)構(gòu) C程序嚴(yán)格區(qū)分大小寫 一般變量 語句等用小寫字母書寫 符號(hào)常量等用大寫字母書寫 標(biāo)識(shí)符 保留字之間必須至少加一個(gè)空格以示分隔 函數(shù) C語言的函數(shù)有兩種 標(biāo)準(zhǔn)庫函數(shù)和用戶定義的函數(shù) 用戶自定義函數(shù) 可有可無 數(shù)目不限 如例1 4中的intmax intx inty C語言提供的庫函數(shù) 如輸出函數(shù)printf 和輸入函數(shù)scanf 函數(shù)定義 函數(shù)頭 函數(shù)體函數(shù)頭 說明函數(shù)的類型 名字 參數(shù)及參數(shù)的類型 intmax intx inty includevoidmain inta b sum a 123 b 456 sum a b printf sum d n sum 函數(shù)體 函數(shù)頭 函數(shù)體 由 括起 包括變量聲明和執(zhí)行部分 函數(shù)定義 1 4 3C語言的字符集 關(guān)鍵字和標(biāo)識(shí)符 字符集 C語言允許使用字符的集合字符集的組成 26個(gè)小寫字母abcdefghi z26個(gè)大寫字母ABCDEFG Z10個(gè)數(shù)字0 9其他符號(hào) 空格 SPACE 制表符 Tab C語言的關(guān)鍵字 關(guān)鍵字 C語言中預(yù)定的具有特定含義的詞 也稱保留字 共有32個(gè) 分四類 類型說明 int long float 語句定義 if else while for 存儲(chǔ)類 auto static 長度運(yùn)算符 sizeof 標(biāo)識(shí)符 標(biāo)識(shí)符 用來標(biāo)識(shí)變量 符號(hào)常量 數(shù)組 函數(shù)的名字 組成 只能由英文字母 數(shù)字和下劃線組成 第一個(gè)字符不能是數(shù)字 只能是字母或下劃線 VC6 0中有效長度為1 255個(gè)字符 例如 x m1 average k123 1 5AN WA 11 alot 11 注意 標(biāo)識(shí)符嚴(yán)格區(qū)分大小寫例如 ABC abc是不同的標(biāo)識(shí)符不能和C語言的關(guān)鍵字 用戶定義的函數(shù)名以及系統(tǒng)庫函數(shù)同名 C的 h 頭文件中經(jīng)常使用以下劃線開頭的內(nèi)部變量名 因此用戶最好避免使用這類標(biāo)識(shí)符 取名應(yīng)盡可能見名知意 如 alfa aver pi bata等 例 以下各標(biāo)識(shí)符組中 合法的用戶標(biāo)識(shí)符分別為 1 A PAdB scanfC voidD 4aP Da10maxtemp 2 A b bB CCPC hiyD iswabcfloatINT 3 A 0123B del wordC listD keep ssipedsigned jerwind 分隔符 分隔符分隔符主要有逗號(hào)和空格兩種 逗號(hào)用于分隔變量或參數(shù) 空格用于分隔單詞 在關(guān)鍵字和標(biāo)識(shí)符之間必須用空格分隔 例如 int a b c max x y z 1 5應(yīng)用程序的開發(fā)過程 1 5應(yīng)用程序的開發(fā)過程 編輯器 file cfile cpp 編譯器 file obj 連接器 file exe Libraries CPU 裝載程序 建立 修改 保存源文件 生成目標(biāo)文件 生成可執(zhí)行文件 運(yùn)行可執(zhí)行文件 1 5應(yīng)用程序的開發(fā)過程 在VisualC 6 0環(huán)境下 開發(fā)和運(yùn)行 程序的步驟如下 1 啟動(dòng)VC 開始 程序 MicrosoftVisualC 6 0 即可啟動(dòng)VC6 0 2 編輯 建立源文件 3 編譯 連接和運(yùn)行源程序 習(xí)題 1 一個(gè)C語言程序是由 組成a 主程序b 子程序c 函數(shù)d 過程2 一個(gè)完整的C語言的程序a 至少包含一個(gè)主函數(shù)b 至少包含一個(gè)主函數(shù)與一個(gè)子函數(shù)c 必須由一個(gè)主函數(shù)與一個(gè)以上的子函數(shù)組成d 必須由一個(gè)主函數(shù)與一個(gè)子函數(shù)組成 習(xí)題 3 C語言程序的執(zhí)行總是從 a main函數(shù)的入口開始b 編譯預(yù)處理命令開始c 源程序的第一個(gè)函數(shù)開始d 源程序的第一行語句開始 習(xí)題 4 在C語言的源程序中 主函數(shù)的位置 a 必須在源程序的最后b 任意c 必須在源程序的開頭5 一個(gè)函數(shù)一般由兩部分組成 它們分別是 和 6 函數(shù)體使用 符號(hào)開始 使用 符號(hào)結(jié)束 函數(shù)頭 函數(shù)體 習(xí)題 7 C程序的每條語句的結(jié)束標(biāo)志是 符號(hào) 8 在C程序中 注釋以 符號(hào)開始 使用 符號(hào)結(jié)束 9 算法是 10 表示算法的常用方法有 等 11 結(jié)構(gòu)化程序的三種基本結(jié)構(gòu)是 解決某一問題所采取的方法和步驟 自然語言 流程圖 偽代碼 順序結(jié)構(gòu) 選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu) 12 判斷下述說法是否正確 如不正確 說明理由 a printf函數(shù)總是從新行的起始位置開始打印 b 計(jì)算機(jī)會(huì)把 和 之間的注釋文本打印到屏幕上 c 所有的變量在使用前都必須予以聲明 d C語言認(rèn)為變量number和NuMbEr是相同的 e 聲明語句可放在函數(shù)體中的任何位置 f 打印三行輸出的C語言程序必須用三條printf語句 g printf函數(shù)的格式控制串中使用轉(zhuǎn)義字符 n會(huì)把光標(biāo)定位到屏幕上下一行的開始位置 2 1數(shù)據(jù)與數(shù)據(jù)類型 2 2常量 變量和標(biāo)準(zhǔn)函數(shù) 2 3基本運(yùn)算符及其表達(dá)式 第二章數(shù)據(jù)類型 運(yùn)算符和表達(dá)式 下一章 上一章 目錄 習(xí)題 整型 包括有 無符號(hào)的基本整型 短整型 長整型實(shí)型 包括單精度實(shí)型 雙精度實(shí)型float double字符型 用于表示和存儲(chǔ)ASCII字符 char 2 1數(shù)據(jù)類型 是C語言數(shù)據(jù)類型的基本型 其值不可再分解為其他類型 一種特殊的數(shù)據(jù)類型 其值為某個(gè)量的內(nèi)存地址 一種無返回值函數(shù)的數(shù)據(jù)類型 void 用新的類型名替代已有類型名使用 用typedef定義 一種由單種或多種數(shù)據(jù)類型構(gòu)造而成的數(shù)據(jù)類型 數(shù)組結(jié)構(gòu)共用體枚舉類型 C語言的基本數(shù)據(jù)類型 2 2常量 變量和標(biāo)準(zhǔn)函數(shù) 2 2 1常量2 2 2變量2 2 3標(biāo)準(zhǔn)函數(shù) 下一節(jié) 第二章 目錄 習(xí)題 2 2 1常量 常量在程序執(zhí)行期間其值保持不變的量C語言有以下幾種類型的常量 整型常量實(shí)型 浮點(diǎn)型 常量字符常量字符串常量 有三種形式 十進(jìn)制整數(shù) 八進(jìn)制整數(shù) 由數(shù)字0開頭十六進(jìn)制整數(shù) 由前綴0 x或0X開頭 1 整型常量 如 014 0110177777 如 0 x110XAFBDE 0X00FFH 如 11 13 0 65535 1 00021 310454 10 30199 整數(shù)又可分為 長整型整數(shù) 用后綴L l表示 012L 65536L 0XCL無符號(hào)整數(shù) 用后綴U u表示 017u 0 xfdbU無符號(hào)長整數(shù) 用后綴UL ul表示 15uL 實(shí)型常量又稱實(shí)數(shù) 指帶有小數(shù)部分的數(shù) C語言中的實(shí)數(shù)是以十進(jìn)制表示的 有兩種表示形式 十進(jìn)制小數(shù)形式 由數(shù)字 數(shù)符和小數(shù)點(diǎn)組成 例 0 123 123 123 0 0 2 5 指數(shù)形式 又稱科學(xué)記數(shù)法 用E 或e 表示以10為底的指數(shù) 如 100000000 1 108 1E 80 0000125 1 25 10 5 1 25E 05 0 91 10 3 0 91E 03 尾數(shù)部分 指數(shù)部分 字母E e前必須有數(shù)字 而E后面的階碼必須為整數(shù) 2 實(shí)型常量 浮點(diǎn)數(shù) 例 下列不合法的指數(shù)形式 單獨(dú)的小數(shù)點(diǎn)和單獨(dú)的指數(shù)部分如 E 5E10 階碼只能是整數(shù) 不能帶小數(shù)點(diǎn) 如 1234E1 52 E6 5e 2 3 E 35 E4 1012不能寫成E12 必須寫成 3 字符常量 字符常量 是用單引號(hào)括起來的一個(gè)字符如 a A 9 合法 a 99999 非法在內(nèi)存中 字符常量以ASCII碼存儲(chǔ) 一個(gè)字符占一個(gè)字節(jié) 由于字符常量是按整數(shù)存儲(chǔ)的 可以像整數(shù)一樣在程序中參與相關(guān)的運(yùn)算 如 a 32 執(zhí)行結(jié)果97 32 65 9 9 執(zhí)行結(jié)果57 9 48 以 開頭的字符序列 有特定的含義 如 表示輸出一個(gè)反斜杠符 表示輸出一個(gè)雙引號(hào) ddd ddd表示八進(jìn)制的ASCII碼 xhh hh表示十六進(jìn)制的ASCII碼 例 n 回車換行 12 xa A 101 x41 注 0 或 000 是代表ASCII碼為0的字符 即空字符 NULL 表示整數(shù)0 轉(zhuǎn)義字符 例2 1 轉(zhuǎn)義字符的應(yīng)用 includevoidmain printf a tb nc bd 100 x40 n a bd 輸出到顯示屏 字符串常量 用一對雙引號(hào)括起的字符序列 例 CHINA a 12 5 w x53 np 103q 字符串長度 字符串中所有字符的個(gè)數(shù)系統(tǒng)自動(dòng)在每個(gè)字符串的末尾加上一個(gè)空字符NULL 即 0 作為字符串的結(jié)束 0 是一個(gè)ASCII碼為0的字符 例 CHINA 在內(nèi)存中所占的字節(jié)為 4 字符串常量 字符常量由單引號(hào)括起來 字符串常量由雙引號(hào)括起來 字符串常量和字符常量的主要區(qū)別 字符常量只能是單個(gè)字符 字符串常量可以含有多個(gè)字符 字符常量占一個(gè)字節(jié) 字符串常量占的字節(jié)數(shù)等于字符個(gè)數(shù)加1 比較 A 與 A 的區(qū)別 若輸出的字符串中含雙引號(hào) 則要使用轉(zhuǎn)義字符 例 printf hesaid Iamastudent n 輸出 hesaid Iamastudent 5 符號(hào)常量 符號(hào)常量 用標(biāo)識(shí)符表示的常量格式 define標(biāo)識(shí)符常量功能 用該標(biāo)識(shí)符代表后面的常量值例 definePI3 defineSTAR 預(yù)處理命令 define也稱為宏定義 一個(gè) define命令只能定義一個(gè)符號(hào)常量 用一行書寫 不用分號(hào)結(jié)尾 include definePI3 用預(yù)處理命令定義符號(hào)常量voidmain floatr area l 定義變量類型為實(shí)型scanf f 例2 2 求半徑為r的圓面積和圓周長 說明 符號(hào)常量名習(xí)慣用大寫字母表示該命令通常放在文件頭在程序中 符號(hào)常量不允許重新賦值 例 definePI3 PI 5 6 或scanf f 5 符號(hào)常量 2 2 2變量 變量概述整型變量實(shí)型變量字符型變量變量的初始化 變量概述 變量 在程序執(zhí)行期間其值可以改變的量變量在使用之前必須被聲明每一個(gè)變量有名字 類型 長度和值 對變量賦值過程是 覆蓋 過程 用新值去替換舊值 從內(nèi)存中讀出變量的值 該變量保持不變 90 x 90 printf d x 定義變量的形式 類型說明符變量名表 例 inta b 定義兩個(gè)整型變量a和b charc 定義字符型變量c floatf1 f2 定義單精度實(shí)型變量f1和f2 變量概述 變量類型 type 變量名 name 是一個(gè)標(biāo)識(shí)符 1 整型變量 用來存放整型數(shù)據(jù)的變量 整型變量的分類表 與操作系統(tǒng) 編譯系統(tǒng) 機(jī)器字長有關(guān) 有符號(hào)的整數(shù) 最高位是符號(hào)位 正整數(shù)在內(nèi)存中以二進(jìn)制原碼形式存放 負(fù)整數(shù)在內(nèi)存中以二進(jìn)制補(bǔ)碼的形式存放 有符號(hào)正整數(shù)10 有符號(hào)負(fù)整數(shù) 10 無符號(hào)整數(shù) 無符號(hào)整數(shù)的所有二進(jìn)制位全部用來存放數(shù)值 不能存放負(fù)數(shù) 無符號(hào)整數(shù)65535u 例 求50的三次方 includevoidmain shortintx x 50 50 50 printf d n x 程序運(yùn)行結(jié)果為 6072 錯(cuò) 將以上程序改為 includevoidmain intx x 50 50 50 printf d n x 運(yùn)行結(jié)果 125000 因此 在定義整型變量時(shí) 要注意數(shù)據(jù)類型允許的數(shù)值范圍 用來存放實(shí)型數(shù)據(jù)的變量分單精度型 雙精度型和長雙精度型三類 2 實(shí)型變量 includevoidmain floatf f為單精度實(shí)型變量doubled d為雙精度實(shí)型變量f 33333 33333 d 33333333333333 333333 printf f f nd f n f d 輸出結(jié)果 f 33333 332031d 33333333333333 332000 例2 3 實(shí)型變量的使用 f 3 字符變量 用來存放字符常量的變量例 charc1 c2 c3 c1 A c2 n c3 97 每個(gè)字符變量分配一個(gè)字節(jié)用于存放一個(gè)字符 存放的是字符的ASCII碼值 字符數(shù)據(jù)與整型數(shù)據(jù)可相互賦值 直接運(yùn)算 可以把字符變量按整型量輸出 也允許把整型量按字符量輸出 includevoidmain inta b 給一個(gè)整型變量賦一個(gè)字符值charc1 97 給一個(gè)字符變量賦一個(gè)整數(shù)值c1 c1 32 將小寫字母轉(zhuǎn)換為大寫字母printf d d n a c1 printf c c n a c1 輸出結(jié)果 9865bA 例2 4 字符型變量的使用 注意 只能將一個(gè)字符常數(shù)賦給一個(gè)字符變量 不能把一個(gè)字符串常量賦予字符變量 例 charc abc 在C語言中沒有字符串變量 但可以用一個(gè)字符數(shù)組來存放一個(gè)字符串常量 4 變量的初始化 在說明變量的同時(shí)給變量賦初值格式 類型說明符變量 常數(shù) 例 inta 5 定義并初始化charc1 a c2 B doublearea r 23 e 2 intx 10 y 10 z 10 不能寫成intx y z 10 inta a 5 賦初值 2 2 3標(biāo)準(zhǔn)函數(shù) C編譯系統(tǒng)提供的庫函數(shù)包括 輸入輸出函數(shù) 數(shù)學(xué)函數(shù) 字符和字符串函數(shù)等 數(shù)學(xué)函數(shù) x為弧度 doublex doublesin x cos x sin x cos x exp x log x log10 x fabs x pow x y sqrt x area s s a s b s c s a b c 2 include include 例2 5 求三角形面積 預(yù)編譯命令 將系統(tǒng)提供的數(shù)學(xué)函數(shù) 作為頭文件包含到用戶源文件中 voidmain doublea b c s area scanf lf lf lf 運(yùn)行 2 3運(yùn)算符和表達(dá)式 2 3 1算術(shù)運(yùn)算符與算術(shù)表達(dá)式2 3 2不同數(shù)據(jù)類型的轉(zhuǎn)換與運(yùn)算2 3 3關(guān)系運(yùn)算符與關(guān)系表達(dá)式2 3 4邏輯運(yùn)算符與邏輯表達(dá)式2 3 5條件運(yùn)算符與條件表達(dá)式2 3 6賦值運(yùn)算符與賦值表達(dá)式2 3 7逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式 2 3基本運(yùn)算符及其表達(dá)式 1 基本算術(shù)運(yùn)算符 算術(shù)運(yùn)算符用于各類數(shù)值運(yùn)算 包括基本算術(shù)運(yùn)算符 自增運(yùn)算符 自減運(yùn)算符 下表為基本算術(shù)運(yùn)算符 1 在C語言中 規(guī)定了運(yùn)算符的優(yōu)先級和結(jié)合性 優(yōu)先級 語言中 運(yùn)算符的優(yōu)先級共分為15級 1級最高 15級最低 表達(dá)式求值時(shí) 先做優(yōu)先級高的操作 如 d a b c 當(dāng)運(yùn)算符的優(yōu)先級別相同時(shí) 運(yùn)算次序由結(jié)合性決定 結(jié)合性 左結(jié)合性 先左后右 例 d 3 5 4 右結(jié)合性 先右后左 例 d a 3 運(yùn)算符 整數(shù)相除截去余數(shù) 此運(yùn)算為整除 5 2 2 2 5 1 3 1 3 1 3 0 對于浮點(diǎn)數(shù)則為通常意義的除法5 0 2 0 2 51 3 1 3 1 3 1 模運(yùn)算符 用于計(jì)算兩個(gè)數(shù)相除后得到的余數(shù) 如 a b求a除以b以后得到的余數(shù) 運(yùn)算對象只能是整型量 其結(jié)果也是整型量 如 5 2 13 3 03 5 3 A 2 13 0 10 0 5所得結(jié)果的符號(hào)與運(yùn)算符左側(cè)操作數(shù)的符號(hào)相同 5 2 15 2 1 2 自增 自減運(yùn)算符 例 x 10 y x 此時(shí) y 11若 x 10 y x 則y 10在這兩種情況下 x都被置為11 K 3 j 5 i 3 m k j n i j 例 m k 20 4 n i 15 4 例2 7 自增 自減運(yùn)算符的使用 includevoidmain inti 6 a b printf d n i printf d n i a i printf d n a b i printf d n b printf d n i printf i d n i i 7777 6 7 注意 自增 自減運(yùn)算只能用于變量 不能用于常量和表達(dá)式 例 i 為合法的運(yùn)算 6 a b 為非法的運(yùn)算 自增 自減運(yùn)算符是兩個(gè) 或兩個(gè) 的一個(gè)整體 中間不能有空格 如果有多于兩個(gè) 或兩個(gè) 連寫的情況 則編譯首先識(shí)別前兩個(gè) 或 為增量或減量運(yùn)算符 表達(dá)式x y等價(jià)于 x y自增 自減運(yùn)算符的運(yùn)算順序是右結(jié)合 因此對 i 應(yīng)理解為 i 而 i 是非法的 例 i 3 printf d i 輸出 3 例2 8 自增 自減運(yùn)算符的使用 includevoidmain inti j k i 1 j 1 k i j printf i d j d k d n i j k 程序運(yùn)行結(jié)果 i 2 j 1 k 2 k i j 由算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對象 如常量 變量 函數(shù)等 連接起來的一個(gè)有值的式子 例 A 2 sqrt 4 d d 2 表達(dá)式求值的優(yōu)先次序 函數(shù) 高低 3 算術(shù)表達(dá)式 號(hào) 如 a b c d 不能省略 如 2 a b 2 a b 括號(hào)只能使用圓括號(hào) 且成對出現(xiàn) 不能使用 和 如 a x b y c a x b y c 書寫問題 LN X 例 將下列數(shù)學(xué)式子寫成C算術(shù)表達(dá)式 log sqrt a x x x a e st abs a exp s t sqrt fabs sin x 3 14 180 xy pow x y A 3 x n 2 x 1 B 3 x n 2 x 1 C 3 pow x n 1 2 x 1 D 3 pow n x 2 x 1 例 與數(shù)學(xué)式子3乘以x的n次方除以 2x 1 對應(yīng)的C語言表達(dá)式是 2 3 2不同數(shù)據(jù)類型間的轉(zhuǎn)換與運(yùn)算 在C程序中 當(dāng)不同類型的量進(jìn)行運(yùn)算時(shí) 要轉(zhuǎn)換成同一種類型然后再進(jìn)行運(yùn)算 例 10 a 1 5 8765 1234 b 轉(zhuǎn)換方式 自動(dòng)轉(zhuǎn)換 數(shù)據(jù)類型自動(dòng)由低級向高級轉(zhuǎn)換 強(qiáng)制轉(zhuǎn)換 將表達(dá)式的運(yùn)算結(jié)果強(qiáng)制轉(zhuǎn)換成指定的數(shù)據(jù)類型 自動(dòng)類型轉(zhuǎn)換 這種類型轉(zhuǎn)換由編譯系統(tǒng)自動(dòng)完成轉(zhuǎn)換規(guī)則 說明 1 橫向的箭頭表示必定的轉(zhuǎn)換 2 縱向的箭頭表示當(dāng)運(yùn)算對象類型不同時(shí)轉(zhuǎn)換的方向 例 floatf 3 5 intn 6 longk 21 doubless f n k 2 強(qiáng)制類型轉(zhuǎn)換 格式 數(shù)據(jù)類型說明符 表達(dá)式 注意 強(qiáng)制轉(zhuǎn)換屬單目運(yùn)算 運(yùn)算優(yōu)先級為2 強(qiáng)制轉(zhuǎn)換得到的是中間結(jié)果類型 原變量類型不變 數(shù)據(jù)類型說明符和表達(dá)式都必須加括號(hào) 單個(gè)變量除外 例 intx y floatz float x y int z x float 5 3 將5 3的值轉(zhuǎn)換為float型 includevoidmain intx 8 floatf 6 85 printf float x f x d n float x x printf int f d f f n int f f 例2 12 強(qiáng)制類型轉(zhuǎn)換的應(yīng)用 2 4 f 2 3 3關(guān)系運(yùn)算 比較運(yùn)算 即比較兩個(gè)量的大小 比較的結(jié)果為 真 或 假 例 a 3如果a 8 則結(jié)果為 真 如果a 1 則結(jié)果為 假 1 關(guān)系運(yùn)算符 2 關(guān)系表達(dá)式 用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來的式子 格式 其中 表達(dá)式1和表達(dá)式2可以是任意表達(dá)式 例 m n 20 測試此關(guān)系是否成立 成立為真 不成立為假 成立 關(guān)系表達(dá)式的值為1 不成立 關(guān)系表達(dá)式的值為0 例 5 4 b 3 a 4 b 6 5 2 7 8 0 0 0 值為 1 例2 13讀程 includevoidmain inta b c a b c 10 a b c printf d d d n a b c a b c 2 printf d d d n a b c a b c 100 printf d d d n a b c 輸出結(jié)果 1 10 101 20 110 20 11 關(guān)系運(yùn)算的不足 關(guān)系表達(dá)式只能表達(dá)簡單的關(guān)系 如 sum 1500y z即只能對一個(gè)條件進(jìn)行測試 而以下關(guān)系 0 x 5則不能用關(guān)系表達(dá)式表示 x 0 x 5 2 3 4邏輯運(yùn)算符與邏輯表達(dá)式 1 邏輯運(yùn)算符C邏輯運(yùn)算符 邏輯運(yùn)算真值表 特點(diǎn) 全真為真 其余為假 特點(diǎn) 全假為假 其余為真 邏輯非 邏輯與 邏輯或 2 邏輯表達(dá)式 用邏輯運(yùn)算符將表達(dá)式連接起來的式子 形式 表達(dá)式1和表達(dá)式2可以是任何表達(dá)式如 5 3 2 4 a 邏輯表達(dá)式的值整數(shù)1 true0 false 判斷時(shí) 0代表 假 非0即表示 真 將下面的條件用C語言的邏輯表達(dá)式表示 例1 1 x 10且x 7x 1 x 10 x 7例2 y能被4整除 但不能被100整除或y能被400整除 y 4 0 y 100 0 y 400 0 運(yùn)算順序 算術(shù)運(yùn)算 關(guān)系運(yùn)算 賦值運(yùn)算例 若a 2 b a c 5 f 3 0c 3 86 b 1 6 0 1 1 0 邏輯與和邏輯或運(yùn)算符具有短路能力 邏輯與 表達(dá)式1 表達(dá)式2 只有表達(dá)式1的值為 真 時(shí)才求表達(dá)式2的值 如 x y 1 x x y 0 1 短路表達(dá)式 邏輯或 表達(dá)式1 表達(dá)式2 只有表達(dá)式1為假時(shí)才判斷表達(dá)式2的值例 voidmain intnum 3 5 4 num 0 printf num d n num 輸出 num 3 條件運(yùn)算符 三目運(yùn)算符 右結(jié)合 13級 條件表達(dá)式 執(zhí)行過程 2 3 5條件運(yùn)算符與條件表達(dá)式 例 max a b a b max a b a b 說明 在程序中常把條件表達(dá)式的值賦給某個(gè)變量 如 將ch中字母轉(zhuǎn)換為小寫字母charch getchar ch ch A 將x的絕對值賦給yy x 0 x x 在條件表達(dá)式中 各表達(dá)式的類型可以不同 此時(shí) 條件表達(dá)式值的類型為表達(dá)式2和表達(dá)式3中較高的類型 如 x y 1 1 5條件表達(dá)式的值為浮點(diǎn)型 說明 說明 條件運(yùn)算符可以嵌套 這種嵌套是右結(jié)合的 例 inta 15 b 20 c 25 d 30 e e a b c c d b d e 30 例2 15讀程 寫出運(yùn)行結(jié)果 includevoidmain inta 1 b 1 c 1 a a b b b c c c a printf 1 d n a b a b printf 2 d n a c a c a b c printf a n printf b n printf 4 d d d n a b c 運(yùn)行結(jié)果 1 2 2 3b 4 2 2 4 例2 16 任意輸入三個(gè)數(shù) 輸出最大值 includevoidmain inta b c max scanf d d d 程序運(yùn)行如下 25 748 最大數(shù)為 48 賦值運(yùn)算符分兩種 簡單賦值運(yùn)算符 復(fù)合賦值運(yùn)算符 如 等優(yōu)先級14 右結(jié)合性 賦值表達(dá)式 由賦值運(yùn)算符連接起來式子作用 將表達(dá)式的值賦給變量 2 3 6賦值運(yùn)算符和賦值表達(dá)式 簡單賦值運(yùn)算符為 由 連接的式子為 簡單 賦值表達(dá)式 格式 作用 把右邊表達(dá)式的值 賦給左邊的變量 例 k i j i 2 j 3 k的值為 x a 5 b 8 x的值為 d e 2 1執(zhí)行順序是 先計(jì)算 再賦值 4 13 1 簡單賦值運(yùn)算符和賦值表達(dá)式 例 指出下列賦值表達(dá)式的錯(cuò)誤 s x y 5 n a a 3 2 w 3 64E2 1 5 87 cos a sqrt a a b b y int i k 12 3 4 a a 7 賦值運(yùn)算的類型轉(zhuǎn)換 規(guī)則為 實(shí)型數(shù)據(jù)賦給整型變量時(shí) 只取整數(shù)部分 如 inti 1 5 2 2 x的值為0 000000 整型數(shù)據(jù)賦給實(shí)型變量時(shí) 以浮點(diǎn)形式取值 i值為1 如 floatx 1 4 1 4 1 4 字符型數(shù)據(jù)賦給整型變量時(shí) 整型變量的高位補(bǔ)的數(shù)與char的最高位相同 低八位為字符的ASCII碼值 整型數(shù)據(jù)賦給字符型時(shí) 只把低8位賦給字符變量 如 K A k值為65 k 0000000001000001 例2 13 voidmain shortintx 300 chary y x printf y dy c n y y 輸出結(jié)果 y 44y x y 2 復(fù)合賦值符及表達(dá)式 復(fù)合賦值運(yùn)算符是在簡單賦值運(yùn)算符前加雙目運(yùn)算符構(gòu)成 共10種 等 例 c c 3c 3x y 7x x y 7 設(shè)x y z的初始值分別為 10 20 30 x y z zx x y y z z 結(jié)果為 930設(shè)t的值為5t t t tt t t t t t 結(jié)果為 40 例2 14 voidmain inta b c a b c 5 printf a d b d c d n a b c a b 4 c 6 printf a d b d c d n a b c a b c printf a d b d c d n a b c a a a a printf a d n a 運(yùn)行結(jié)果 a 5 b 5 c 5a 10 b 4 c 6a 20 b 4 c 6a 0 逗號(hào)運(yùn)算符運(yùn)算符 優(yōu)先級15級最低 左結(jié)合用逗號(hào)運(yùn)算符將各表達(dá)式連接起來的式子為逗號(hào)表達(dá)式 格式 如 a 3 5 a 10 a 8求解過程 先求表達(dá)式1的值 再求表達(dá)式2的值 最后求表達(dá)式n的值 表達(dá)式n的值作為整個(gè)逗號(hào)表達(dá)式的值 2 3 7逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式 例 逗號(hào)表達(dá)式的應(yīng)用 includevoidmain inta 2 b 4 c y y c a b b c printf y d n y 輸出結(jié)果 y 12 例 1 a 3 5 a 4 a 52 a 5 a a a 53 inta b a 2 b 5 a b a b 4 intx 10 y 3 z printf d n z x y x y 20 30 9 3 說明 1 用一個(gè)逗號(hào)表達(dá)式語句 可代替多個(gè)賦值語句 如a 0 b 1 c 2 可寫成 a 0 b 1 c 2 2 在變量說明和函數(shù)參數(shù)表中逗號(hào)只是起分隔符作用printf d d d a b c printf d d d a b c b c 例 交換變量a b的值 a 1 0 b 2 0 voidmain floata b c a 1 0 b 2 0 printf a fb f a b c a a b b c printf a fb f a b a b c a a b b y x 1 0 1 0 2 0 習(xí)題 1 下面四個(gè)選項(xiàng)中 均是合法整型常量的選項(xiàng)是 A 160B 0 xcdfC 01D 0 x48a 0 xffff01a986 0122e50110 xe06680 x2 下面四個(gè)選項(xiàng)中 均是不合法浮點(diǎn)數(shù)的選項(xiàng)是 A 160 B 123C 018D e30 122e4 2123e4 234e3 e50 01e3 A B 習(xí)題 3 下面四個(gè)選項(xiàng) 均是合法轉(zhuǎn)義字符的選項(xiàng)是 A B C 018 D 0 017 f 101 n xab x1f 4 下面四個(gè)選項(xiàng)中 均是非法常量的選項(xiàng)是 A ads B C 0 x18D 0 xabc 0fff 01 01177 0 0 xa 12 4560 xf a A A 習(xí)題 5 下列變量名中合法的是 A 3a4bB cos b C 6a7bD ch 566 下面錯(cuò)誤的c常數(shù)是 A 0 0E0B 0 1E02C E 1D 1E17 下列表達(dá)式值為5的是 A sqrt 25 0 B pow 25 0 5 C 10 0 5D 25 10 C C 9 C語言中 char型數(shù)據(jù)在內(nèi)存中是以形式存儲(chǔ)的A 原碼B 補(bǔ)碼C ASC 碼D 反碼 10 執(zhí)行以下語句的輸出為 intx 15 y 5 printf d n x y 2 A 0B 1C 6D 12 習(xí)題 習(xí)題 11 判斷表達(dá)式的類型 1 chara intb floatc doubled a b c d結(jié)果的類型為 2 float 5 3 結(jié)果的類型 3 doublex y int x y類型為 double float double 習(xí)題 voidmain inti 10 printf d d d d n i i i i 程序運(yùn)行結(jié)果 12 12 12 11 習(xí)題 voidmain intc 5 printf d d d n c c c 8 c c 5 printf d n c c c 8 c 程序運(yùn)行結(jié)果 12 14 612 上機(jī)作業(yè) 1 取圓周率為3 半徑r為40 求圓面積 要求 圓周率定義為符號(hào)常量 半徑用scanf 輸入 分兩行輸出 先輸出圓周率和半徑 再輸出面積 2 思考題 設(shè)學(xué)生常數(shù)為500 編程輸出下列結(jié)果 引號(hào)也要輸出 Howmanystudenthere 500 上機(jī)實(shí)驗(yàn)內(nèi)容 1 實(shí)驗(yàn)教程 第二章實(shí)驗(yàn)一 1 3 4題2 輸入兩個(gè)數(shù)分別賦予變量a b 然后 交換變量a b的值再輸出 上機(jī)作業(yè) 實(shí)驗(yàn)教程 第二章實(shí)驗(yàn)二 1 2 3題 編程題 任意輸入三個(gè)數(shù) 輸出最大值 用條件表達(dá)式 上機(jī)作業(yè) 實(shí)驗(yàn)教程 第三章實(shí)驗(yàn)一2 4題 編程 輸入一個(gè)三位正整數(shù) 然后反向輸出對應(yīng)的數(shù) 如輸入123 則輸出321 要求 用 運(yùn)算符 上機(jī)作業(yè) 實(shí)驗(yàn)與習(xí)題 第4章實(shí)驗(yàn)一3 4題 實(shí)驗(yàn)與習(xí)題 P63編程題的第4小題要求 用switch語句編寫 上機(jī)作業(yè) 實(shí)驗(yàn)與習(xí)題 第5章實(shí)驗(yàn)一 1 編程題 任意輸入一串字符 以 結(jié)束 分別統(tǒng)計(jì)其中字母 數(shù)字和其他字符的個(gè)數(shù) 改錯(cuò) difinePI 3 1415926 voidMain 求圓面積 intr 40 scanf f n r area PI r r print PI dr d narea f n PI m definePI3 f f floatarea floatarea d include 第三章基本語句與順序結(jié)構(gòu)程序設(shè)計(jì) 3 1C語言程序的基本語句 3 2賦值語句 3 3數(shù)據(jù)的輸入輸出 下一章 上一章 目錄 習(xí)題 3 1C語言程序的基本語句 C語言語句有五類 表達(dá)式語句 函數(shù)調(diào)用語句 控制語句 復(fù)合語句 空語句 是C語句結(jié)束標(biāo)志 表達(dá)式語句 x x 1 z x j j 3 是表達(dá)式 不是語句 j j 3 是語句 i 自增運(yùn)算表達(dá)式加分號(hào)n 10 復(fù)合賦值表達(dá)式加分號(hào) 函數(shù)調(diào)用語句 printf Good n 控制語句 if語句 while語句 return語句等 復(fù)合語句 用 括起來組成的一個(gè)語句 if a b c a a b b c 空語句 僅由一個(gè) 構(gòu)成的語句 3 2賦值語句 是由賦值表達(dá)式加上分號(hào)構(gòu)成的表達(dá)式語句 格式 注意 在賦值符 右邊的表達(dá)式又可以是一個(gè)賦值表達(dá)式 如 a b c d 5 右結(jié)合 變量 表達(dá)式 賦值表達(dá)式是一種表達(dá)式 它可以出現(xiàn)在任何允許表達(dá)式出現(xiàn)的地方 而賦值語句則不能 如 if a b 0 c a if a b 0 c a printf d n z x y x y 賦值表達(dá)式和賦值語句的區(qū)別是 3 3數(shù)據(jù)的輸入輸出 C語言中數(shù)據(jù)的輸入 輸出是由函數(shù)來實(shí)現(xiàn)的 3 3 1格式輸入輸出函數(shù)printf 和scanf 3 3 2字符輸入輸出函數(shù)putchar 和getchar 1 格式輸出函數(shù) printf 函數(shù) 格式 printf 格式控制字符串 輸出表列 功能 按格式控制字符串規(guī)定的格式 向標(biāo)準(zhǔn)輸出設(shè)備 一般為顯示器 輸出輸出表列中各輸出項(xiàng)的值 printf 格式控制 輸出表列 格式控制 由雙引號(hào)括起來的字符串 用于指定輸出格式 普通字符 按原樣輸出的字符格式說明 用來指定需輸出數(shù)據(jù)的輸出格式形式 修飾符 格式字符輸出表列 需要輸出的數(shù)據(jù)列表 彼此間用逗號(hào)分隔 可以是任意合法的表達(dá)式 printf a d tb f a b 格式說明 輸出表列 若此例中inta 5 floatb 20 5 輸出結(jié)果 a 5b 20 500000 繼續(xù) 表3 1用于輸出的修飾符 返回 表3 2用于輸出的格式字符 返回 例 格式輸出 printf 函數(shù) printf a b 5 2f c 1 d格式符 作用 輸出一個(gè)帶符號(hào)的十進(jìn)制整數(shù) 正數(shù)不輸出符號(hào) 格式 d md ld其中 d 按整型數(shù)據(jù)的實(shí)際長度輸出 m 字段寬度 ld 輸出長整型數(shù)據(jù) hd 輸出短整型數(shù)據(jù) 作用 輸出一個(gè)無符號(hào)的八進(jìn)制 十六進(jìn)制或十進(jìn)制整數(shù) 例 longa 10 shortb 1 unsignedintc 65535 printf 5d o x n a a a printf hd ho hx hX hu n b b b b b printf d o x u n c c c c 1 原 10001 1 補(bǔ) 1111111111111111 2 o x和u格式符 輸出結(jié)果 10 12 a 1 0 xffff FFFF 6553565535 177777 ffff 65535 作用 用來輸出一個(gè)字符例 charch a inta 65 printf c d 3c n ch ch ch printf c t b 3d n a a 3 c格式符 輸出結(jié)果 a 97 aA 65 一個(gè)整數(shù) 如果在0 127之間 也可用字符形式輸出 系統(tǒng)會(huì)將該整數(shù)轉(zhuǎn)換成對應(yīng)的ASCII碼字符 4 s格式符 作用 用來輸出一個(gè)字符串格式 s ms m ns其中 m 輸出的字符串占m列 n 輸出字符串中左端n個(gè)字符 includevoidmain printf s n computer printf computer n printf 3s n 5 3s 8 2s n computer computer computer 例 輸出結(jié)果 computer computercomputercom co 作用 以小數(shù)形式輸出單 雙精度實(shí)數(shù) 格式 f m nf其中 f 整數(shù)部分全部輸出 隱含輸出6位小數(shù) m 字段寬度 整數(shù) 小數(shù)位數(shù) 數(shù)符 小數(shù)點(diǎn) n 小數(shù)位數(shù)的個(gè)數(shù) 如 12 4f 5 f格式符 例 includevoidmain floatx 123 456 doubley 321 654321 printf f 7 2f 10 4f n x x x printf 5 3f n 0f n y y 輸出結(jié)果 123 456001 123 46 123 4560321 654322 作用 以標(biāo)準(zhǔn)化的指數(shù)形式輸出實(shí)數(shù) 小數(shù)點(diǎn)前必須有而且只能有一位為非0數(shù)字 格式 e m ne其中 e 默認(rèn)輸出6位小數(shù)m 字段寬度 指數(shù)部分占5列 n 小數(shù)部分的位數(shù) 6 e格式符 例 includevoidmain floatf 123 456 printf e n 10 2e n 10E n f f f 輸出結(jié)果 1 234560e 0021 23e 002 1 234560E 002 輸出表列中各輸出項(xiàng)與各格式說明必須按照從左到右的順序在類型上一一匹配 如果實(shí)型數(shù)據(jù)用 d輸出 結(jié)果出錯(cuò) 整型數(shù)據(jù)用 f輸出 結(jié)果為0 注意 輸出表列可以是變量 常數(shù) 數(shù)組元素 函數(shù)引用及帶運(yùn)算符的表達(dá)式 例 printf f d d f 3 14 a b x cos y 當(dāng)格式說明個(gè)數(shù)輸出項(xiàng)時(shí) 輸出不定值 注意 輸出表列的求值順序 VC是從右到左順序求值的 輸出仍從左至右 voidmain inti 8 printf d d d d n i i i i 除X E G格式符外 其他格式符必須用小寫字母 輸出結(jié)果 88 87 2 格式輸入函數(shù)scanf 格式 scanf 格式控制 地址表列 功能 按格式控制所規(guī)定的格式 從指定的輸入設(shè)備 一般為鍵盤 上把數(shù)據(jù)輸入到指定的變量中 格式控制 普通字符 需原樣輸入的字符 通常不使用 格式說明 用于指定需輸入數(shù)據(jù)的輸入格式形式 修飾符 格式字符地址表列 給出各變量的地址 地址是由 運(yùn)算得到的 是取地址運(yùn)算符 得到變量在內(nèi)存中的地址 單目運(yùn)算符 右結(jié)合性 scanf d d 格式說明 地址表列 繼續(xù) 表3 3用于輸入的修飾符 返回 表3 4用于輸入的格式字符 返回 格式輸入的使用與注意 1 輸入數(shù)據(jù)時(shí)采用的分隔符應(yīng)與格式控制中的分隔符一致 格式控制中無普通字符時(shí) 輸入數(shù)值型數(shù)據(jù)可用空格 Tab鍵 回車鍵作分隔符 例 inta b floatf e scanf d d 輸入 23 456 23 Tab 456 23 456 23 67 612 9 a 12 b 24 scanf a d b d 注意 2 輸入數(shù)據(jù)時(shí)不可規(guī)定精度 但可指定寬度 例 scanf 7 2f 輸入 12346abc a b ch 3 輸入格式符帶有 表示該數(shù)據(jù)不賦值 例 scanf d d d 輸入 12 34 567 則a 12 c 567 34被跳過 4 無符號(hào)數(shù)可用 d o x格式輸入 注意 5 用C格式符輸入字符時(shí) 空格 轉(zhuǎn)義字符均為有效字符 例 scanf c c c 若鍵入ABC 則a A b B c C若鍵入A B C 則a A b c B若鍵入A B 則C未送 結(jié)果已出為 a A b c B 6 在下列情況下可認(rèn)為數(shù)據(jù)輸入結(jié)束 遇空格 回車 Tab鍵 遇寬度結(jié)束 非法輸入 例3 1 includevoidmain inta floatb charc scanf d f c 運(yùn)行 23 4 5y a 23 b 4 500000 c y23 4 5 y a 23 b 4 500000 c y按格式 6d 6f c送數(shù) 23 4 5y a 23 b
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GA/T 1003-2024銀行自助服務(wù)亭技術(shù)規(guī)范
- 銀行合規(guī)管理制度實(shí)施成效
- 高速公路安全行車管理制度
- 新學(xué)期美術(shù)教學(xué)工作計(jì)劃(23篇)
- 挑戰(zhàn)2024演講稿(31篇)
- 六年級下冊各具特色的民居課件
- 福建省泉州市惠安縣2023-2024學(xué)年七年級上學(xué)期期末考試數(shù)學(xué)試卷(含解析)
- 顧客服務(wù)政策的設(shè)計(jì)
- 7.2《歸園田居(其一)》課件 2024-2025學(xué)年統(tǒng)編版高中語文必修上冊
- 福州七中2025屆高考英語一模試卷含解析
- 高中英語U4-The-Words-That-Changed-A-Nation教學(xué)課件
- 大學(xué)生創(chuàng)業(yè)法律服務(wù)智慧樹知到期末考試答案2024年
- 中職學(xué)考《哲學(xué)與人生》考試復(fù)習(xí)題庫(含答案)
- 貨運(yùn)駕駛員崗前培訓(xùn)
- 滅火器維修與保養(yǎng)手冊
- 電梯日管控、周排查、月調(diào)度內(nèi)容表格
- 降低檢查報(bào)告錯(cuò)誤率品管圈護(hù)理課件
- 預(yù)防未成年人犯罪法主題班會(huì)
- 2024-2024年江蘇省普通高中學(xué)業(yè)水平測試物理試卷(含答案)
- 環(huán)衛(wèi)公司行業(yè)風(fēng)險(xiǎn)分析
- 信托行業(yè)保密知識(shí)培訓(xùn)
評論
0/150
提交評論