




已閱讀5頁,還剩202頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1,概 述,說明:教育部關(guān)于大學(xué)生計(jì)算機(jī)能力的統(tǒng)一要求。 目的: (1)掌握C語言的語法知識(shí) (2)掌握C語言程序設(shè)計(jì)方法 (3)鍛煉嚴(yán)密的邏輯思維能力,提高科學(xué)研究的素質(zhì) 與前導(dǎo)課程關(guān)系【大學(xué)計(jì)算機(jī)基礎(chǔ)】 計(jì)算機(jī)系統(tǒng)的硬件組成(參看2.1.2) 2、8、10、16進(jìn)制整數(shù)的轉(zhuǎn)換(參看2.2.1、2.2.2) 數(shù)據(jù)在計(jì)算機(jī)中的存放形式(參看2.3.1、2.3.2) 計(jì)算機(jī)基本操作(參看4.2.1、4.2.2、4.2.3) WORD編輯(參看5.2.1、5.2.2、5.2.3) 知識(shí)結(jié)構(gòu): (1)自然語言的知識(shí)結(jié)構(gòu) (2)C語言的知識(shí)結(jié)構(gòu) (3)教材的知識(shí)結(jié)構(gòu),2,自然語言的知識(shí)結(jié)構(gòu),C語言的知識(shí)結(jié)構(gòu),教材的知識(shí)結(jié)構(gòu),3,學(xué)習(xí)方法提要: (1)詞類、句型、程序結(jié)構(gòu) 分析、記憶 (2)程序設(shè)計(jì)與調(diào)試 上機(jī)實(shí)驗(yàn)、總結(jié) (3)常用算法與標(biāo)準(zhǔn)程序段 分析、實(shí)驗(yàn)、記憶 考試要求: (1)時(shí)間:期中考試、期末考試 (2)范圍:課堂教學(xué)的所有內(nèi)容、作業(yè)中的習(xí)題 (3)題型:單項(xiàng)選擇題(10題20分)、填空題 (10空20分) 程序閱讀題( 4題20分)、程序填空題( 2題10分) 程序設(shè)計(jì)題( 3題30分) 教學(xué)要求: (1)課堂教學(xué)方式:講解總結(jié)實(shí)例分析提問討論 (2)實(shí)驗(yàn)教學(xué)方式:(前)準(zhǔn)備(中)自主(后)總結(jié)與記錄 (3)課堂紀(jì)律: 按時(shí)不出聲 (4)作業(yè)通過實(shí)驗(yàn)來驗(yàn)證其正確性。,4,第1章 C語言概述, C語言概況 C程序概況 運(yùn)行C程序的步驟與方法與(重點(diǎn)) 補(bǔ)充 計(jì)算機(jī)程序 計(jì)算機(jī)程序 一串計(jì)算機(jī)能識(shí)別的、可執(zhí)行的指令。 【例】 操作系統(tǒng) 專家編好大家使用的計(jì)算機(jī)程序 本班成績統(tǒng)計(jì)程序 自己編寫自己使用的計(jì)算機(jī)程序。 計(jì)算機(jī)語言 計(jì)算機(jī)語言 寫計(jì)算機(jī)程序所遵守的某種語法規(guī)則的集合(指令的集合)。 【三個(gè)階段】機(jī)器語言 又名二進(jìn)制語言,用0和1組成指令(含操作和數(shù)據(jù)) 符號(hào)語言 又名匯編語言,用指定的單詞和數(shù)字組成指令 高級(jí)語言 用接近人類的自然語言和數(shù)學(xué)公式組成指令(語句) 高級(jí)語言的發(fā)展 非結(jié)構(gòu)化語言、結(jié)構(gòu)化語言(如C)、面向?qū)ο蟮恼Z言(如C+) 1.1 C語言出現(xiàn)的歷史背景 【發(fā)展過程】 60年 +硬件處理 63年 簡化 67年 簡化 70年 擴(kuò)充 72、73年 可移植 77年 標(biāo)準(zhǔn)化 ALGOL CPL BCPL B C 獨(dú)立C 78年 標(biāo)準(zhǔn)化 83年 標(biāo)準(zhǔn)化 89 標(biāo)準(zhǔn)化 90年 標(biāo)準(zhǔn)化 99年 舊標(biāo)準(zhǔn)C 83ANSI C C89 ISO C(c89) C99 (美國國家標(biāo)準(zhǔn)) (美國國家標(biāo)準(zhǔn)) (國際標(biāo)準(zhǔn)化組織) (國際標(biāo)準(zhǔn)化組織) 【編譯程序】Turbo C、Quick C、Microsoft C、BORLAND C、C+、VC+,5,1.2 C語言的特點(diǎn)【略】邊學(xué)邊理解 1.3 簡單C語言程序介紹 【例1】從鍵盤上輸入兩個(gè)實(shí)數(shù),輸出他們的和。 #include “stdio.h“ /* 將標(biāo)準(zhǔn)輸入輸出函數(shù)包含到本程序中 */ void main() /* 主函數(shù)的標(biāo)記,main稱為主函數(shù)名 */ float a,b,s; /* 定義實(shí)型變量a、b、s */ scanf(“%f,%f“, /* 輸出變量s中的實(shí)數(shù) */ /* 主函數(shù)的結(jié)束,前面的表示主函數(shù)的開始, 后面的表示主函數(shù)的結(jié)束 */,6,【例2】從鍵盤上輸入兩個(gè)整數(shù),求并輸出他們中的大者和小者。 #include int max(int x,int y) /* 非主函數(shù)的標(biāo)記,max是函數(shù)名、x和y是函數(shù)參數(shù) */ int z; /* 定義本函數(shù)用到的變量z */ if (xy) /* 如果x大于y*/ z=x; /* 將參數(shù)x中的整數(shù)送到變量z中 */ else /* 否則 */ z=y; /* 將參數(shù)y中的整數(shù)送到變量z中 */ return(z); /* 返回變量z中的整數(shù),即參數(shù)x和y中的大者 */ /* 本函數(shù)的結(jié)束標(biāo)記 */ int min(int x,int y) /* 非主函數(shù)的標(biāo)記,min是函數(shù)名、x和y是函數(shù)參數(shù) */ int z; if (xy) z=x; else z=y; return(z); void main() int a,b,s; /* 定義整型變量a、b、s */ ; scanf(“%d,%d“,/* 輸出變量s中的整數(shù) (兩個(gè)整數(shù)中的小者) */ ,7,關(guān)于C程序的初步小結(jié): (1)組成C程序的符號(hào)都是鍵盤上符號(hào),即ASCII代碼字符集的字符(參看附錄A P364)。 其他符號(hào)(如漢字)只能出現(xiàn)在“ “中間或/* */中間。 (2)總是有一個(gè),并且只能有一個(gè)名為“main”的主函數(shù); 其他函數(shù)稱為非主函數(shù),可以沒有,也可以有很多個(gè)。 (3)任何C程序的結(jié)構(gòu)都是下列幾種之一: 函數(shù)1 主函數(shù) 函數(shù)1 函數(shù)2 函數(shù)1 . . 函數(shù)2 主函數(shù) 主函數(shù) . . 函數(shù)n (4)程序的執(zhí)行總是從主函數(shù)體的第1條語句開始,到最后一條語句結(jié)束 非主函數(shù)的執(zhí)行,只能利用函數(shù)調(diào)用來執(zhí)行。 (5)任何函數(shù)的基本結(jié)構(gòu)都是這樣的: 函數(shù)名(函數(shù)參數(shù)1,函數(shù)參數(shù)2,.)【參數(shù)可以沒有】 函數(shù)中所使用的變量的定義; 【可以沒有】 輸入某些變量的值; 【可以沒有】 對(duì)參數(shù)和變量的加工處理; 【可以沒有】 輸出某些變量的值; 【可以沒有】 返回某些變量的值; 【主函數(shù)沒有、非主函數(shù)可以沒有】 【花括號(hào)及括住的部分稱為函數(shù)體、前面稱為函數(shù)頭】 (6)語句的最后一定有“分號(hào)”,一行可以寫多條語句。一個(gè)語句可以寫在多行上。 最好的書寫格式是縮格對(duì)齊方式,稱為“結(jié)構(gòu)化”書寫格式。 (7)輸入、輸出使用系統(tǒng)函數(shù)scanf()和printf()來完成,程序的開頭要加 #include 或 #include “stdio.h“ (我們常用) (8)注釋是用“/*”和“*/”括住的任何一串符號(hào)。可以出現(xiàn)在程序的任何一處。,8,1.4 C程序的上機(jī)調(diào)試步驟與方法【用VC+6.0編譯程序】 【預(yù)備知識(shí)】 調(diào)試窗口 VC的主窗口 運(yùn)行窗口 運(yùn)行程序時(shí)會(huì)自動(dòng)彈出一個(gè)窗口, 接收輸入數(shù)據(jù),并顯示輸出結(jié)果。 基本操作方法(后面用到處再介紹) 編譯、調(diào)試程序的過程是在Windows窗口 下進(jìn)行的,應(yīng)掌握Windows的基本操作方法。 例如,菜單驅(qū)動(dòng)方法、工具按鈕的使用、 熱鍵、對(duì)話框操作、文本框輸入、鼠標(biāo)操作等。 編輯修改源程序和WORD操作類似。 【調(diào)試程序的步驟(參看1.4.1節(jié)) 】 參看右圖 【調(diào)試程序的方法 】,9,第一步:開機(jī)、啟動(dòng)VC+6.0 【建議:在D盤根目錄下建一個(gè)自己的文件夾】 【方法】通電,啟動(dòng)WINDOWS; 依次選取“開始”、“程序”、“Microsoft Visual C+ 6.0 ” 再單擊“Microsoft Visual C+6.0”菜單;將出現(xiàn)下列VC+主窗口。 也可以直接雙擊桌面上的VC+6.0的圖標(biāo)。 工作區(qū) 顯示當(dāng)前工作區(qū)的名稱,以樹狀結(jié)構(gòu)顯示工程文件夾及其中的源程序名。 編輯區(qū) 顯示正在編輯調(diào)試的源程序。 輸出區(qū) 顯示編輯區(qū)中的源程序在編譯、連接時(shí)的錯(cuò)誤信息。,10,常用菜單 File (文件) New (新建) 創(chuàng)建源程序文件。 Open (打開) 調(diào)入已經(jīng)建立的源程序文件。 Close Workspace (關(guān)閉工作區(qū)) 關(guān)閉當(dāng)前工作區(qū),結(jié)束某個(gè)程序的調(diào)試。 Save(保存) 保存編輯區(qū)的文件(存盤)。 Edit(編輯) Cut (剪切) 刪除選中的陰影區(qū)并復(fù)制到剪貼板中。 Copy (復(fù)制) 將陰影區(qū)復(fù)制到剪貼板中。 Paste (粘貼) 將剪貼板中內(nèi)容插入到光標(biāo)處。 【注】選定陰影區(qū)的方法是用鼠標(biāo)拖曳。 Build(創(chuàng)建) Compile (編譯)【Ctrl+F7 】對(duì)工作區(qū)的源程序進(jìn)行編譯生成OBJ文件。 Build (創(chuàng)建) 【F7 】 對(duì)工作區(qū)的源程序進(jìn)行連接生成EXE文件。 Execute (執(zhí)行) 【Ctrl+F5 】運(yùn)行編譯連接后的可執(zhí)行程序(EXE文件)。,11,第二步:建立新的源程序 【方法】 執(zhí)行菜單命令“File | New”, 在彈出的對(duì)話框中單擊“Files”標(biāo)簽,顯示結(jié)果如下圖。 選取“C+ Source File”。 在“Location”文本框中選取或輸入源程序所在的路徑。例如“D:CCW” 在“File”文本框輸入源程序文件名,擴(kuò)展名選C。例如“P1.C” 。 單擊“Ok”按鈕。光標(biāo)將出現(xiàn)在編輯區(qū),可以輸入源程序清單。 注:建議文件名構(gòu)成 姓名拼音章號(hào)_題號(hào).C 如CCW6_5.C,12,第三步 調(diào)試舊的源程序 【方法】 執(zhí)行菜單命令“File | Open”或工具按鈕 , 將彈出如圖所示的對(duì)話框。 單擊“查找范圍”文本框右邊的向下箭頭按鈕, 選定存放源程序所在的文件夾。 在下面的列表框中選定“源程序”文件。例如“P2.C”。 單擊“打開”按鈕。 源程序清單將出現(xiàn)在主窗口的編輯區(qū),可以對(duì)其進(jìn)行編輯修改與調(diào)試。,13,第四步 編輯源程序清單 【方法】同WORD操作?!究梢允褂脻h字,修改源程序時(shí)一定要回到英文輸入】。 第五步 存盤 【方法】執(zhí)行菜單命令“File | Save”或 按對(duì)應(yīng)工具按鈕 。 第六步 編譯生成中間代碼文件(.OBJ) 【方法】 執(zhí)行菜單命令“Build | Compile”或熱鍵“Ctrl+F7”或常用工具 。 此時(shí)將彈出一個(gè)對(duì)話框,單擊“是”按鈕。 在輸出區(qū)將顯示編譯后的結(jié)果。 【說明】無錯(cuò)誤:在輸出區(qū)顯示錯(cuò)誤條數(shù)(0)、警告性錯(cuò)誤條數(shù)(0); 有錯(cuò)誤:在輸出區(qū)顯示錯(cuò)誤條數(shù)、警告性錯(cuò)誤條數(shù)、 以及出錯(cuò)的程序行數(shù)和原因。(有警告性錯(cuò)誤可以連接!) 第七步 連接生成可執(zhí)行文件(.EXE) 【方法】 執(zhí)行菜單命令“Build | Build ”或按熱鍵“F7”或按常用工具 。 在輸出區(qū)將顯示連接后的結(jié)果。 【說明】無錯(cuò)誤:在輸出區(qū)顯示錯(cuò)誤條數(shù)(0)、警告性錯(cuò)誤條數(shù)(0); 有錯(cuò)誤:在輸出區(qū)顯示錯(cuò)誤條數(shù)、警告性錯(cuò)誤條數(shù)、 以及出錯(cuò)的原因。,14,第八步 運(yùn)行目標(biāo)程序 【方法】 單擊菜單命令“Build | Execute ”。或熱鍵“Ctrl+F5”或常用工具 。 【說明】 程序運(yùn)行時(shí),會(huì)自動(dòng)彈出一個(gè)“運(yùn)行窗口”。 如果程序沒有輸入,則窗口中將顯示程序運(yùn)行的輸出結(jié)果; 如果程序有輸入, 則窗口中將有光標(biāo)閃爍,等待輸入。 程序運(yùn)行結(jié)束后,窗口中將顯示“Press any Key to Continue”, 按任何鍵將退出“運(yùn)行窗口”,返回VC主窗口。 第九步 調(diào)試下一個(gè)程序【經(jīng)常忘了這一步,造成錯(cuò)誤或死機(jī)!】 【方法】 執(zhí)行菜單“File|Close Workspace”,將彈出一個(gè)對(duì)話框,單擊“是”按鈕。 (1)如果接著調(diào)試新程序 從第二步開始; (2)如果接著調(diào)試舊程序 從第三步開始 第十步:退出VC 【方法】單擊VC 主窗口右上角的關(guān)閉按鈕。 【異常情況的強(qiáng)迫關(guān)閉】按“Ctrl+Alt+Delete”鍵,彈出任務(wù)管理器, 選中“應(yīng)用程序”標(biāo)簽,再選取要關(guān)閉的“VC+6.0”,單擊“結(jié)束任務(wù)”按鈕。 第十一步:關(guān)機(jī)。 【方法】單擊菜單命令“開始 | 關(guān)機(jī)”。 【建議】備一個(gè)U盤,關(guān)機(jī)前復(fù)制本次實(shí)驗(yàn)的源程序文件(擴(kuò)展名為C)到U盤備份。,15,第一章習(xí)題答疑,1.5 輸出指定的三行符號(hào)。 提示:一行符號(hào)的輸出方法如下: printf(”符號(hào)符號(hào)n”); 1.7 上機(jī)運(yùn)行本章的3個(gè)例題。 重點(diǎn):熟悉C程序的調(diào)試步驟和每步的操作方法 可以制造錯(cuò)誤,增加練習(xí)的機(jī)會(huì)。 說明:從第4章開始的程序設(shè)計(jì)題目,格式要求如下: 題目 修改后正確 程序清單 的程序清單 輸入數(shù)據(jù) 錯(cuò)誤原因的 輸出結(jié)果 分析,16,第二章 程序的靈魂算法,算法概念 算法的表示 結(jié)構(gòu)化程序設(shè)計(jì)方法 程序數(shù)據(jù)結(jié)構(gòu)算法 2.1 算法的概念 算法解決某個(gè)問題的方法步驟(計(jì)算方法、數(shù)學(xué)方法、物理方法等) 2.2 簡單算法舉例 【例一】表決型的會(huì)議【算法】第1步 宣布會(huì)議開始 第2步 宣讀某個(gè)決議草案 第3步 通過監(jiān)票人和計(jì)票人名單 第4步 宣讀投票注意事項(xiàng) 第5步 投票 第6步 計(jì)票 第7步 宣布投票結(jié)果 第8步 宣布會(huì)議結(jié)束,17,【例二】計(jì)算123.100 【算法1】 【算法2】 【算法3】 【算法4】 令S為0 令S、K均為0 令S、K均為0 計(jì)算: 計(jì)算:S=S+1 計(jì)算:S=S+K 計(jì)算:K=K+1 計(jì)算:S=S+2 計(jì)算:K=K+1 計(jì)算:S=S+K 輸出S . 判斷:若k101轉(zhuǎn) 判斷:若k100 轉(zhuǎn) 計(jì)算:S=S+100 否則輸出S 否則輸出S 輸出S 【分析:哪種算法好? 討論:算法的優(yōu)劣】 【例三】判別某年份是否閏年? 【算法】輸入年份到Y(jié)中; 判斷:若Y能被4除盡且不能被100除盡;或能被400除盡,是閏年 否則,不是閏年。【算法說明:1年是365天5小時(shí)48分46秒】 2.3 算法的特點(diǎn) (1)有窮性(有始有終) 反例,計(jì)算+(-2)+(-1)+0+123 (2)確定性(無二義) 反例,高個(gè)子坐后排,矮個(gè)子坐前排。 (3)可操作性(可做到的)反例,向上跳半米,向上跳半米,到達(dá)月球。 (4)沒有或有若干個(gè)輸入 例如,例二無輸入、例三有輸入 (5)沒有或有若干個(gè)輸出 例如,例二、例三均有輸出,18,2.4 算法的表示 【例二的算法1】 【例二的算法2】 順序結(jié)構(gòu) 循環(huán)結(jié)構(gòu) (1)用自然語言 前面對(duì)三個(gè)算法的描述。 (2)用流程圖 【例一的算法】 順序結(jié)構(gòu) . 選擇結(jié)構(gòu) 【例三的算法】 . 【注:流程圖的國家標(biāo)準(zhǔn)】,Y,N,19,【說明】三種基本結(jié)構(gòu)的流程圖 順序結(jié)構(gòu) 選擇(分支)結(jié)構(gòu) 重復(fù)(循環(huán))結(jié)構(gòu) 單分支 雙分支 當(dāng)型 直到型 (3)N-S圖 順序結(jié)構(gòu) 選擇(分支)結(jié)構(gòu) 重復(fù)(循環(huán))結(jié)構(gòu) 單分支 雙分支 當(dāng)型 直到型 (4)偽代碼 【例二算法二】BEGIN 【例三】BEGIN S=0,K=0 INPUT Y DO S=S+K IF Y%4=0 AND Y%100!=0 OR Y%400=0 K=K+1 PRINT YES! UNTIL K100 ELSE PRINT S PRINT NO! END END,20,(5)用某種計(jì)算機(jī)語言來寫(用C語言來寫) 【例二算法二】#include “stdio.h“【例三】#include “stdio.h“ void main() void main() int s,k; int y; s=0; scanf(“%d“, 2.5 結(jié)構(gòu)化程序設(shè)計(jì)方法 (1)自頂向下,逐步細(xì)化 第一步 將算法分成幾個(gè)大的步驟,每步寫出本步驟的局部功能。 第二步 對(duì)上述步驟中的每一步進(jìn)行細(xì)化。 反復(fù)進(jìn)行,直到每個(gè)步驟都對(duì)應(yīng)一個(gè)基本結(jié)構(gòu)(順序、選擇、循環(huán)) (2)模塊化 將程序劃分為相互獨(dú)立的小程序(模塊,也就是C語言中的函數(shù))。 每個(gè)模塊的語句數(shù)目以50條左右為佳。 (3)結(jié)構(gòu)化編程 程序段的結(jié)構(gòu)只有三種:順序結(jié)構(gòu) 選擇結(jié)構(gòu)(單分支、雙分支、多分支) 重復(fù)結(jié)構(gòu)(當(dāng)型循環(huán)、直到型循環(huán)、次數(shù)型循環(huán)) 結(jié)構(gòu)化程序設(shè)計(jì)語言必須保證每種結(jié)構(gòu)的程序段都可使用一條語句實(shí)現(xiàn)。 【說明】書寫源程序清單時(shí),建議采用“結(jié)構(gòu)化書寫方法”。 具體說,每條語句都有規(guī)定的書寫格式(縮格對(duì)齊),希望能遵守。,21,程序設(shè)計(jì)的技巧,程序設(shè)計(jì)的基本思路 (1)輸入(原始數(shù)據(jù)) (2)計(jì)算與加工(算法,可能產(chǎn)生一些中間結(jié)果數(shù)據(jù)) (3)輸出(最終結(jié)果數(shù)據(jù)) 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的基本思路 (1)原始數(shù)據(jù)的類型與存放處 (2)中間結(jié)果的類型與存放處 (3)最終結(jié)果的類型與存放處 算法設(shè)計(jì)的思路 (1)來源于其他專業(yè)知識(shí)(如判閏年) (2)來源于本課程的介紹(排序、查找、求最大數(shù)等) (3)臨時(shí)構(gòu)造(例如游泳池的最佳路線),22,第三章 數(shù)據(jù)類型、運(yùn)算符和表達(dá)式,詞類之一 常量 詞類之二 變量 詞類之三 運(yùn)算符 詞類之四 表達(dá)式 各種詞類的數(shù)據(jù)類型 3.1 C語言的數(shù)據(jù)類型 數(shù)據(jù)類型:是指數(shù)據(jù)在計(jì)算機(jī)中存放的形式。 不同類型的數(shù)據(jù)有不同的加工方法。 C語言的數(shù)據(jù)類型分類 參看下表。,23,C語言的數(shù)據(jù)類型表 帶符號(hào)整型 (簡稱整型) 帶符號(hào)整型 帶符號(hào)短整型(簡稱短整) 帶符號(hào)長整型(簡稱長整) 整型 無符號(hào)整型 (簡稱無符號(hào)整型) 無符號(hào)整型 無符號(hào)短整型(簡稱無符號(hào)短整) 無符號(hào)長整型(簡稱無符號(hào)長整) 基本類型 單精度型 實(shí)型 雙精度型 字符型 數(shù)據(jù)類型 數(shù)組型(字符串型) 構(gòu)造類型 結(jié)構(gòu)型 共用型 指針型 空類型,24,3.2 常量與變量 一、常量與符號(hào)常量 (1)常量 直接寫在程序清單中的數(shù)據(jù),分為整型、實(shí)型、字符型、字符串。 (2)符號(hào)常量 用名字來替代常量。 【定義方法】#define 符號(hào)常量名 常量 【注】符號(hào)常量名:用戶任取的一個(gè)標(biāo)識(shí)符。 標(biāo)識(shí)符 :字母開頭的字母、數(shù)字、下劃線等組成,長度8或32。 符號(hào)常量通常用大寫字母組成,以便區(qū)別其他的對(duì)象,如變量名。 符號(hào)常量性質(zhì)是常量,不能象變量那樣給其賦新值。 二、變量 (1)變量 利用數(shù)據(jù)定義語句在程序中定義的對(duì)象,用來存放數(shù)據(jù)。 (2)變量名 標(biāo)識(shí)符(通常用小寫字母組成) ,在定義時(shí)確定的。 (3)變量值 變量中存放的數(shù)據(jù),通過輸入、初始化、賦值獲得。 (4)變量數(shù)據(jù)類型 變量中能存放的數(shù)據(jù)類型,在定義時(shí)確定的。 【注】變量名區(qū)分字母大小寫的!如ccw、Ccw、CCw、CCW是不同變量名。 標(biāo)識(shí)符不能是關(guān)鍵字(C語句中使用的英語單詞) C語言的關(guān)鍵字請(qǐng)參考附錄B,P365(后續(xù)課程會(huì)一一介紹)。,25,3.3 整型數(shù)據(jù) 一、整型常量及其表示方法 【表示方法】有3種。 十進(jìn)制整數(shù) 通常形式的整數(shù) 例如 +12、 -12、 12。 八進(jìn)制整數(shù) 以0開頭的八進(jìn)制整數(shù) 例如 +012、 -012、 012。 十六進(jìn)制整數(shù) 以0x開頭的十六進(jìn)制整數(shù) 例如+0x12、-0x12、0x12。 二、整型變量 【作用】存放整型數(shù)據(jù)。 【定義方法】存儲(chǔ)類型符 數(shù)據(jù)類型符 變量名1=初值,變量名2=初值,.; 其中:方括號(hào)中內(nèi)容是可以省略的,變量名是標(biāo)識(shí)符,初值是常量或常量表達(dá)式。 數(shù)據(jù)類型符可以是下列任一種: 整型 短整型 長整型 無符號(hào)整型 無符號(hào)短整型 無符號(hào)長整型 類型符 int short long unsigned int unsigned short unsigned long 字節(jié)數(shù) 4(2) 2 4 4(2) 2 4 【功能】定義某種數(shù)據(jù)類型的變量,分配內(nèi)存,并賦予初值。 【注】int、unsigned int在VC中為4字節(jié)。 三、整型常量的數(shù)據(jù)類型 在VC中整型常量均為帶符號(hào)長整型 【注 】在VC中整型常量后可以加字母L或l,如1L、12000L。,通用的數(shù)據(jù)定義語句,參看基礎(chǔ)知識(shí)P1,參看基礎(chǔ)知識(shí)P2-P10,26,3.4 浮點(diǎn)(實(shí))型數(shù)據(jù) 一、浮點(diǎn)型常量的表示方法 【表示方法】(1)普通的十進(jìn)制實(shí)數(shù),帶小數(shù)點(diǎn)。如0.0、-123.、.456 (2)指數(shù)形式(在字母E或e的后面寫上10的方次),如12.3E3、1e-5。 二、浮點(diǎn)型變量 【定義方法】存儲(chǔ)類型符 數(shù)據(jù)類型符 變量名=初值,.; 其中:數(shù)據(jù)類型符 可以是下列任一種: 單精度浮點(diǎn)型 float 占4字節(jié) 范圍:10-3710+38 (7位有效數(shù)字) 雙精度浮點(diǎn)型 double 占8字節(jié) 范圍:10-30710+308(16位有效數(shù)字) 變量名 用戶給出的標(biāo)識(shí)符,初值是常量或常量表達(dá)式。 【功能】定義某種數(shù)據(jù)類型的變量,并賦予初值。 【注】浮點(diǎn)型常量不區(qū)分單、雙精度。 賦值時(shí)有效數(shù)字超出將截去多余數(shù)字。 例如,賦予單精度實(shí)型變量時(shí), 1234.56789變成1234.568。 3.5 字符型數(shù)據(jù) 一、字符常量 【表示方法】 (1)可顯示字符。用單引號(hào)()括住單個(gè)字符。 如0、 A、 a。 (2)所有字符(包括不可顯示字符)。 用單引號(hào)括住“轉(zhuǎn)義字符”,常用轉(zhuǎn)義字符參看右表。,通用的數(shù)據(jù)定義語句,27,二、字符型變量 【定義方法】存儲(chǔ)類型符 數(shù)據(jù)類型符 變量名=初值,.; 其中:數(shù)據(jù)類型符只能是char,占用的內(nèi)存字節(jié)數(shù)是1。 變量名是標(biāo)識(shí)符,初值是常量或常量表達(dá)式。 【功能】定義字符型的變量,并賦予初值。 【注】字符型數(shù)據(jù)在內(nèi)存中實(shí)際存放的是對(duì)應(yīng)字符的ASCII代碼值(0127)。 因此,字符型數(shù)據(jù)可以看成帶符號(hào)或無符號(hào)的整型數(shù)據(jù)。 而整型數(shù)據(jù)只要不超出范圍(0127),也可以看成是字符型數(shù)據(jù)。 【例】#include “stdio.h“ 【說明】整型、實(shí)型、字符型合稱數(shù)值型 void main() int i; char c=97; i=A; printf(“%c,%dn“,c,i); /* 程序是正確的,輸出結(jié)果是:a,65*/ 三、字符串常量(簡稱字符串) 【表示方法】雙引號(hào)(“)括住的若干個(gè)字符(包括轉(zhuǎn)義字符)。 【例】 “、“1“、“1.23“、“abc“、“n“、“nnxyz“ 。 【注】(1)字符串在內(nèi)存的存放規(guī)則是:按順序依次存放字符串中每個(gè)字符的ASCII 代碼值,最后自動(dòng)存放一個(gè)“0”,其值為0,稱為字符串結(jié)束標(biāo)記符。 (2)字符串長度字符串中的字符數(shù)目。 (3)字符串占用的內(nèi)存字節(jié)數(shù)字符串長度1。 (4)無字符的字符串稱為空字符串,簡稱空串??沾L度為0,占用1個(gè)字節(jié)。 (5)字符串與字符常量是不同的。 a和“a“是不同的數(shù)據(jù)類型,占用字節(jié)數(shù)不同。 (6) C中沒有字符串變量,是用字符型數(shù)組來存放的,以后介紹。,介紹常用字符 的ASCII代碼 AZ、az、09,通用的數(shù)據(jù)定義語句,28,3.6 變量賦初值 【方法】在定義變量時(shí),給出初值。 【注】初值是常量或已經(jīng)定義過的符號(hào)常量、或由它們組成的表達(dá)式(常量表達(dá)式), 其數(shù)據(jù)類型與變量的數(shù)據(jù)類型要一致。 【例】#define PI 3.14159 錯(cuò)誤的 int i=10,j=-6+1,k; int i=10,j=i+1; float f=1.2345,s=0.0-0.1,x1,x2=PI+1; float f=1.2345,s=0.0-f; char c1=a,c2=A+1,c3; char c1=a,c2=c1+1; 3.7 各種基本數(shù)據(jù)類型的數(shù)據(jù)之間混合運(yùn)算 【規(guī)則】 double float 橫向:必定先轉(zhuǎn)換 縱向:沿箭頭按需要轉(zhuǎn)換 表達(dá)式計(jì)算時(shí) long 就長不就短 unsigned int short、char 【例】設(shè)有定義: char c=1; int i=2; long L=3L; float f=4.0; 計(jì)算“c*i/L+f”的過程是: (1)c*i c轉(zhuǎn)換成int型,和i相乘,運(yùn)算結(jié)果是int型 (2)(c*i)/L c*i轉(zhuǎn)換成long型,和L相除,運(yùn)算結(jié)果是long型 (3)(c*i/L)+f (c*i/L)和f轉(zhuǎn)換成double型,相加,運(yùn)算結(jié)果是double型 最后對(duì)基本類型的數(shù)據(jù)給一個(gè)小結(jié)表。,此處用大寫。 因?yàn)樾懽帜竘和數(shù)字1相似。,29,基本數(shù)據(jù)類型的小結(jié),30,3.8 算術(shù)運(yùn)算符與算術(shù)表達(dá)式 基本算術(shù)運(yùn)算符(+ - + - * / %) 一、C的運(yùn)算符 算術(shù)運(yùn)算符 增1減1運(yùn)算符(+ -) 關(guān)系運(yùn)算符( = = .) 指針運(yùn)算符(& * + -) 注:掌握運(yùn)算符必須掌握:運(yùn)算符、對(duì)象數(shù)目、運(yùn)算符的位置、對(duì)象的類型、 運(yùn)算規(guī)則、運(yùn)算結(jié)果的類型、 優(yōu)先級(jí)、結(jié)合性。,31,二、算術(shù)運(yùn)算符 【說明】 (1)優(yōu)先級(jí):單目 雙目 (3)模運(yùn)算結(jié)果符號(hào)與被除數(shù)相同。 *、/、% 、 例如,28 10 8(商為2) (2)除運(yùn)算的結(jié)果與除數(shù)、被除數(shù)的數(shù)據(jù)類型有關(guān)。 28-10 8(商為-2) 兩個(gè)都是整型,則為整除,只取商的整數(shù)部分。 -28 10-8(商為-2) 例如,28/102 -28-10-8(商為2) 28.0/10=2.8 28/10.0=2.8 28.0/10.0=2.8,32,三、強(qiáng)制運(yùn)算符 【優(yōu)先級(jí)】單目算術(shù)、強(qiáng)制 雙目算術(shù) 【例】 (float)(7%3)的結(jié)果是1.000000 7位有效數(shù)字 (double)(5/2)的結(jié)果是2.000000000000000 16位有效數(shù)字 (int)(3.7+2.2)的結(jié)果是5 【注】其后無括號(hào),僅對(duì)第一個(gè)數(shù)據(jù)起作用,如(int)3.7+2.2的結(jié)果是5.2 四、自增自減運(yùn)算符,33,【優(yōu)先級(jí)】+、-、單目算術(shù)、強(qiáng)制 雙目算術(shù) 【例】#include “stdio.h“ void main() int k=3; printf(“%dn“,+k); 輸出結(jié)果是4,k為4 printf(“%dn“,k+); 輸出結(jié)果是4,k為5 【注】(1)注意理解后綴+、-的加減1的時(shí)間。 i=3; k=i+; k為3、i為4 i=3; k=(i+)+(i+)+(i+) k=3+3+3=9、i=3+1+1+1=6 結(jié)論:后綴的+和-是所在的表達(dá)式全部計(jì)算結(jié)束后,再進(jìn)行加減1的運(yùn)算。 (2)自左向右盡可能地選取多個(gè)運(yùn)算符組成復(fù)合運(yùn)算符。 k=1; k+k+k 相當(dāng)于(k+)+(k+)+k,結(jié)果是3,k為3。 (3)+和-只能作用于變量,不能作用于表達(dá)式。 k=1; +k相當(dāng)+(+k),其中(+k)是正確的,但+(+k)是錯(cuò)誤的。 (4)注意TC中函數(shù)參數(shù)的計(jì)算順序是自右向左的(VC中是自左向右)。 k=1; printf(“%d,%d”,k,k+); 輸出結(jié)果是2,1(VC中是1,1)。 五、算術(shù)表達(dá)式 表達(dá)式 :用運(yùn)算符將合適的運(yùn)算對(duì)象連接起來的式子。 表達(dá)式值 :表達(dá)式的最終運(yùn)算結(jié)果值。 表達(dá)式類型(兩種分類):表達(dá)式值的數(shù)據(jù)類型、最后一個(gè)運(yùn)算符的類型。 運(yùn)算符的運(yùn)算對(duì)象 :常量、變量、表達(dá)式(常量、變量看成表達(dá)式特例)。 表達(dá)式運(yùn)算的轉(zhuǎn)換規(guī)則:就長不就短。 算術(shù)表達(dá)式 :用算術(shù)運(yùn)算符將合適的運(yùn)算對(duì)象連接起來的式子。,34,3.9 賦值運(yùn)算符與賦值表達(dá)式 一、賦值運(yùn)算符 【注】(1)前一個(gè)運(yùn)算對(duì)象只能是變量,后一個(gè)運(yùn)算對(duì)象是表達(dá)式(或常量、變量)。 (2)賦值時(shí)的轉(zhuǎn)換規(guī)則是:就左不就右。 當(dāng)字節(jié)數(shù)少的值賦予字節(jié)數(shù)多的變量時(shí),不會(huì)出錯(cuò);反之,可能會(huì)出錯(cuò)。 【例】int k; k=3.99; k為3。 float f; f=3; f為3.000000 unsigned short u=65535; short k; k=u; k為-1 long L=32768; short s; s=L; s為-32768,復(fù)習(xí):帶符號(hào)整數(shù)與無符號(hào)整數(shù),35,二、復(fù)合賦值運(yùn)算符 【優(yōu)先級(jí)】 +、-、+、-、強(qiáng)制 雙目算術(shù) 賦值 就長不就短,轉(zhuǎn)為雙精度 所有賦值運(yùn)算符的優(yōu)先級(jí)相同。 【注】后5個(gè)將在第12章“位運(yùn)算”介紹。 右邊表達(dá)式自動(dòng)加圓括號(hào)。 【例】int k=3; k-=3; k為0。 int k=3; float f=3.0; f*=3; f為9.000000 k*=1+2; int k=-5; k/=2; k為-2 相當(dāng)于“k=k*(1+2);” long L=5; L%=8L; L為5L,常見的警告型錯(cuò)誤: float f; f=1.0+2.0;,36,三、賦值表達(dá)式 賦值表達(dá)式: 用賦值運(yùn)算符連接變量和表達(dá)式組成的式子。 賦值表達(dá)式的值: 賦予左邊變量的值。 賦值表達(dá)式的類型: 左邊變量的數(shù)據(jù)類型。 【注】(1)賦值表達(dá)式也是表達(dá)式,可以出現(xiàn)在賦值運(yùn)算符的右邊。 例如,int k1=1,k2=2,k3; k3=k2=k1=5; k3=k2=k1=5相當(dāng)于k3=(k2=(k1=5); 結(jié)果k3、k2、k1均為5。 注:定義變量時(shí)的初值只能是常量(或常量組成的表達(dá)式) 下列定義語句是錯(cuò)誤的:int k1=k2=k3=5; (2)賦值運(yùn)算符的左邊只能是變量,不能是表達(dá)式。 例如,int k1=1,k2; k2=k1+2=3; k2=k1+2=3相當(dāng)于k2=(k1+2)=3),賦值運(yùn)算符的左邊是表達(dá)式。 【例】int a=2; 計(jì)算表達(dá)式“a+=a-=a*a”和變量a的值。 a+=a-=a*a相當(dāng)于a+=(a-=a*a)。 先算a-=a*a,相當(dāng)于a=a-(a*a),表達(dá)式計(jì)算結(jié)果是-2,a是-2。 再算a+=(-2),相當(dāng)于a=a+(-2),表達(dá)式計(jì)算結(jié)果是-4,a是-4。 3.10 逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式 一、逗號(hào)運(yùn)算符 運(yùn)算符是“,”; 雙目中綴、運(yùn)算對(duì)象是表達(dá)式。 運(yùn)算規(guī)則是先計(jì)算左邊的表達(dá)式,再計(jì)算右邊的表達(dá)式。 運(yùn)算結(jié)果是右邊表達(dá)式的值;類型是右邊表達(dá)式的數(shù)據(jù)類型。 結(jié)合性是自左向右的。,37,二、逗號(hào)表達(dá)式 逗號(hào)表達(dá)式: 用逗號(hào)運(yùn)算符連接兩個(gè)表達(dá)式組成。 逗號(hào)表達(dá)式的值: 右邊表達(dá)式的值。 倒數(shù)第2 逗號(hào)表達(dá)式的類型:右邊表達(dá)式的數(shù)據(jù)類型。 倒數(shù)第1 【注】不是所有的逗號(hào)都是逗號(hào)運(yùn)算符。 例如,int k=5,j=6; printf(“%d,%d“,k,j+1); 【說明】運(yùn)算符的優(yōu)先級(jí):+、-、+、-、強(qiáng)制 雙目算術(shù) 賦值 逗號(hào) 各種賦值運(yùn)算符是同級(jí)的、多個(gè)逗號(hào)運(yùn)算符也是同級(jí)的。 【例】 3+5,4+2,3+1 逗號(hào)表達(dá)式值為4。 int a,b,c; a=3,b=4,c=5 逗號(hào)表達(dá)式值為5,變量a、b、c值依次為3、4、5。 int a,b,c; c=(a=3,b=4) 賦值表達(dá)式值為4,變量a、b、c值依次為3、4、4。 int x,a; x=(a=3,3*6) 賦值表達(dá)式值為18,變量a、x值依次為3、18。 int x,a; x=a=3,3*6; 逗號(hào)表達(dá)式值為18,變量a、x值均為3。 int a=3,b=4,c=5; printf(“%d,%d,%dn“,a,b,c); 輸出結(jié)果是3,4,5 printf(“%d,%d,%dn“,(a,b,c),b,c); 輸出結(jié)果是5,4,5 【編程經(jīng)驗(yàn)】不要自找麻煩,使用一些難以理解的表達(dá)式。 (1)int n=5,a=12; a%=(n%=2) 結(jié)果n為1、a為0、表達(dá)式為0。 (2)int a=16; a+=a-=a*=a 結(jié)果a為0、表達(dá)式為0。,38,第三章習(xí)題答疑(一),3.3 十進(jìn)制帶符號(hào)整數(shù)轉(zhuǎn)換成八、十六進(jìn)制整數(shù)。 通用驗(yàn)證程序清單如下: #include ”stdio.h” void main() int x=?; printf(”%o %xn”,x,x); /* 以八、十六進(jìn)制輸出 */ 其中:? 是對(duì)應(yīng)的帶符號(hào)整數(shù)。 輸出結(jié)果是4字節(jié)八進(jìn)制整數(shù) 十六進(jìn)制整數(shù),39,3.7 字符加密(用后4個(gè)字母) 提示:每個(gè)字母+4即是后4個(gè)字母 不能是W、X、Y、Z。 3.9 計(jì)算某個(gè)表達(dá)式的值。 通用驗(yàn)證程序清單如下: #include ”stdio.h” void main() 每次換成新表達(dá)式 ? xx; xx=( 表達(dá)式 ); /* 計(jì)算表達(dá)式值存入xx */ printf(”%?n”,xx); 其中:? 表達(dá)式對(duì)應(yīng)的數(shù)據(jù)類型符(需事先判斷) ? 表達(dá)式為整型,則為d 表達(dá)式為實(shí)型,則為f,第三章習(xí)題答疑(二),40,3.10 寫出程序運(yùn)行的輸出結(jié)果,上機(jī)驗(yàn)證。 3.12 a=12,計(jì)算某表達(dá)式后,求變量a的值。 通用驗(yàn)證程序清單如下: #include ”stdio.h” void main() short a=12,n=5; 表達(dá)式; printf(”%dn”,a); 其中:表達(dá)式 每次換成新表達(dá)式 輸出結(jié)果是變量a的值。,第三章習(xí)題答疑(三),41,第四章 最簡單的C程序設(shè)計(jì) 順序程序設(shè)計(jì),C語句 函數(shù)調(diào)用語句 數(shù)據(jù)定義語句 表達(dá)式語句和賦值語句 分支語句(3個(gè)) 復(fù)合語句和空語句 控制語句 循環(huán)語句(5個(gè)) 字符輸入輸出函數(shù) 轉(zhuǎn)向語句(1個(gè)) 數(shù)據(jù)輸入輸出函數(shù) 返回語句(1個(gè)) 順序結(jié)構(gòu)程序設(shè)計(jì) 函數(shù)調(diào)用語句 表達(dá)式語句(賦值語句) 4.1 C語句概述 復(fù)合語句 【說明】 空語句 (1)函數(shù)調(diào)用語句 函數(shù)名(實(shí)際參數(shù)1,實(shí)際參數(shù)2,.); (2)表達(dá)式語句 表達(dá)式; (3)復(fù)合語句 語句1; . 語句K; 其中可以出現(xiàn)任何語句,數(shù)據(jù)定義語句要集中寫在前面。 (4)空語句 ;,函數(shù)與函數(shù)調(diào)用的概念 f(x,y)=x2+6y-7 f(2,1)=22+61-7=3,42,4.2 賦值語句 【格式】變量表達(dá)式; 【注】表達(dá)式語句的一種。 4.3 數(shù)據(jù)輸入輸出概念及其在C語言中的實(shí)現(xiàn)。 一、程序中的輸入輸出要求 #include “stdio.h“ #include “stdio.h“ void main()只能計(jì)算5+8的程序 void main()能計(jì)算任何兩整數(shù)和的程序 int x1,x2,x; int x1,x2,x; x1=5,x2=8; 輸入兩個(gè)整數(shù)存入x1,x2; x=x1+x2; x=x1+x2; 看不到計(jì)算結(jié)果 輸出變量x中的值; 二、C語言中輸入輸出的實(shí)現(xiàn) 【方法】利用系統(tǒng)函數(shù)中的輸入輸出函數(shù)。 【注】(1)系統(tǒng)函數(shù) 系統(tǒng)已經(jīng)編好的一段程序,能完成特定功能。 (2)使用系統(tǒng)函數(shù)的方法 函數(shù)調(diào)用,即“函數(shù)名(實(shí)參1,.)”。 (3)使用系統(tǒng)函數(shù)的程序開始必須寫:#include “頭文件名.h“ 其中的“頭文件”中含有該系統(tǒng)函數(shù)的程序清單。 (4)頭函數(shù)有很多種,存放輸入輸出函數(shù)的頭文件名是“stdio.h”。 存放數(shù)學(xué)類函數(shù)的頭文件名是“math.h”。,43,4.4 字符數(shù)據(jù)的輸入輸出 一、字符輸出函數(shù) 【調(diào)用格式】 putchar(ch) 參數(shù)ch:字符型表達(dá)式(結(jié)果為0127的整型或字符型數(shù)據(jù)) 【功能】在顯示器上顯示ch對(duì)應(yīng)的單個(gè)字符。 【例】#include “stdio.h“ /* 程序中使用了字符輸出函數(shù) */ void main() putchar(ch1);putchar(n);putchar(ch2); char ch1; 輸出結(jié)果是:A int ch2; 改為 B ch1=A,ch2=66; 改為 putchar();putchar(ch1);putchar(); putchar(ch1+1);putchar(ch2-1); 輸出結(jié)果是:A 輸出結(jié)果是:BA 二、字符輸入函數(shù) 【調(diào)用格式】 getchar() 【功能】從鍵盤上讀取單個(gè)字符作為函數(shù)的返回值。 【注】(1)通常的使用方法:字符(整)型變量getchar(); (2)鍵盤上輸入數(shù)據(jù),輸完后應(yīng)跟一個(gè)“回車鍵”。注意回車鍵也是一個(gè)字符。 【例】#include “stdio.h“ /* 程序中使用了字符輸入函數(shù) */ void main() 若輸入A回車鍵B回車鍵 char c; 則輸出結(jié)果是:A 不能輸入 c=getchar(); putchar(c); 若輸入AB回車鍵 c=getchar(); putchar(c); 則輸出結(jié)果是:AB 【討論】若一定要按第1種方法輸入,程序怎么改! 【說明】鍵盤緩沖區(qū)的概念。,44,4.5 格式輸入輸出函數(shù) 一、格式輸出函數(shù) 【調(diào)用格式】printf(“輸出格式字符串“,表達(dá)式1,表達(dá)式2,.) 其中:“輸出格式字符串”是由“輸出格式字符”與“非格式字符”組成的一串字符。 【功能】按自左向右(TC中自右向左)順序計(jì)算各個(gè)表達(dá)式的值,然后按照自左向右的 順序,依據(jù)“輸出格式字符串”中的“輸出格式字符”規(guī)定的格式輸出表達(dá)式值。 “輸出格式字符串”中的“非格式字符”將原樣原位置輸出。 【注】(1)輸出格式字符及其對(duì)應(yīng)的格式。參看下頁的表格。 (2)0255之間的整數(shù)可以使用“%c”格式輸出(256個(gè)符號(hào)稱擴(kuò)展ASCII代碼)。 (3)單個(gè)字符可以使用“%d”、“%o”、“%x”、“%u”格式輸出。 (4)常用輸出格式字符: 帶符號(hào)整數(shù) 無符號(hào)整數(shù) 長整數(shù) 無符號(hào)長整數(shù) 實(shí)數(shù) 字符 字符串 %d %u %ld %lu %f %c %s (5)常用的非格式字符: ,(數(shù)據(jù)間隔) n 回車換行 【例】#include “stdio.h” /*使用系統(tǒng)函數(shù)printf()應(yīng)有#include “stdio.h“ */ void main() int i=1; short s=2; long l=3L; float f=4.0; double d=5.0; char c=A; printf(“i=%d,s=%d,l=%ldn“,i,s,l); 輸出結(jié)果:i=1,s=2,l=3 printf(“f=%f,d=%5.2fn“,f,d); 輸出結(jié)果:f=4.000000,d= 5.00 printf(“%c%cn%sn“,c,c+32,“string!“); 輸出結(jié)果:Aa string! 跳頁,printf(“%d%d“,12,345); 12345 printf(“%d,%d“,12,345); 12,345 printf(“%dn%d“,12,345); 12 345,128-255在VC中是亂碼!,45,46,二、格式輸入函數(shù) 【格式】scanf(“輸入格式字符串“,地址1,地址2,.) 其中:“輸入格式字符串”是由“輸入格式字符”與“非格式字符”組成的一串字符。 【功能】按照自左向右的順序,依據(jù)“輸入格式字符串”中的“輸入格式字符”規(guī)定的格式 從鍵盤輸入數(shù)據(jù),按次序存入地址1,地址2,. 對(duì)應(yīng)的變量中。 “輸入格式字符串”中的“非格式字符”必須原樣原位置輸入。 【注】(1)地址的寫法: 若輸入:1,2,3回車鍵4 5回車A回車B回車鍵 則i=1,其他變量值不確定!且這些不能輸入 跳頁 用來接受回車換行符號(hào),47,48,4.6 順序結(jié)構(gòu)程序設(shè)計(jì)例 程序設(shè)計(jì)方法:讀3遍題目,了解已知什么?求什么?設(shè)計(jì)算法、提取數(shù)據(jù)結(jié)構(gòu)。 【例一】輸入三角形邊長,求面積。 【程序設(shè)計(jì)】 (1)算法:輸入3個(gè)邊長a、b、c; 用下列公式計(jì)算面積s。 ,其中L=(a+b+c)/2; 輸出面積s。 (2)數(shù)據(jù)結(jié)構(gòu):設(shè)計(jì)存放原始數(shù)據(jù)、中間數(shù)據(jù)、最終結(jié)果數(shù)據(jù)的變量名及類型。 原始數(shù)據(jù):a、b、c(實(shí)型); 中間結(jié)果:L(實(shí)型); 最終結(jié)果:s(實(shí)型)。 【程序清單】 #include “stdio.h“ #include “math.h“ /* 其中用到開方的系統(tǒng)函數(shù)sqrt(表達(dá)式) */ void main() float a,b,c,L,s; /* 由數(shù)據(jù)結(jié)構(gòu)確定的數(shù)據(jù)定義語句 */ scanf(“%f,%f,%f”, 注:在VC中此處會(huì)出現(xiàn)警告性錯(cuò)誤。雙精度數(shù)存入單精度變量L。 在VC中,這樣的警告性錯(cuò)誤不影響程序的正確運(yùn)行!,49,【例二】輸入a、b、c,求方程ax2+bx+c=0的兩個(gè)實(shí)根(假定b2-4ac0)。 【程序設(shè)計(jì)】(1)算法:輸入a、b、c; 用公式計(jì)算:db2-4ac, 用公式計(jì)算 輸出兩個(gè)實(shí)根x1和x2。 (2)數(shù)據(jù)結(jié)構(gòu):原始數(shù)據(jù):a、b、c(實(shí)型); 中間結(jié)果:d(實(shí)型); 最終結(jié)果:x1、x2(實(shí)型)。 【程序清單】 #include “stdio.h“ #include “math.h“ /* 程序中用到開方函數(shù)sqrt(表達(dá)式) */ void main() float a,b,c,d,x1,x2; scanf(“%f,%f,%f“, 【順序結(jié)構(gòu)程序設(shè)計(jì)方法】 輸入 計(jì)算(算法設(shè)計(jì)) 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 輸出,50,第四章 習(xí)題答疑(一),4.4 給變量的值,編程序輸出指定的格式與數(shù)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年下沉市場(chǎng)消費(fèi)金融場(chǎng)景化布局與生態(tài)構(gòu)建報(bào)告
- 2025年商業(yè)寫字樓智能化設(shè)計(jì)評(píng)估與智能化環(huán)境監(jiān)測(cè)系統(tǒng)報(bào)告
- 藥品進(jìn)貨查驗(yàn)管理制度
- 藥庫人員培訓(xùn)管理制度
- 藥店商品品類管理制度
- 藥店藥品進(jìn)銷管理制度
- 營業(yè)場(chǎng)所線路管理制度
- 設(shè)備保養(yǎng)考核管理制度
- 設(shè)備外包服務(wù)管理制度
- 設(shè)備拆除搬運(yùn)管理制度
- 安管員考試題庫及答案
- 2025年高考語文備考之常見易錯(cuò)成語1700例
- 科技公司實(shí)驗(yàn)室管理制度
- T/CCT 011-2020干法選煤技術(shù)規(guī)范
- (高清版)DB62∕T 4730-2023 公路裝配式石籠防護(hù)設(shè)計(jì)與施工技術(shù)規(guī)范
- 2024-2025 學(xué)年八年級(jí)英語下學(xué)期期末模擬卷 (深圳專用)原卷
- 2024廣西農(nóng)村信用社(農(nóng)村商業(yè)銀行農(nóng)村合作銀行)鄉(xiāng)村振興人才招聘946人筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 仿制藥項(xiàng)目立項(xiàng)可行性報(bào)告
- 2024年注冊(cè)核安全工程師歷年真題答案
- 懷孕私了賠償協(xié)議書
- 秸稈主題班會(huì)課件
評(píng)論
0/150
提交評(píng)論