C語(yǔ)言項(xiàng)目化教程(基于智能制造軟件)教案全套 羅穎 項(xiàng)目1-8 課程準(zhǔn)備 -一輛汽車(chē)的數(shù)據(jù)顯示_第1頁(yè)
C語(yǔ)言項(xiàng)目化教程(基于智能制造軟件)教案全套 羅穎 項(xiàng)目1-8 課程準(zhǔn)備 -一輛汽車(chē)的數(shù)據(jù)顯示_第2頁(yè)
C語(yǔ)言項(xiàng)目化教程(基于智能制造軟件)教案全套 羅穎 項(xiàng)目1-8 課程準(zhǔn)備 -一輛汽車(chē)的數(shù)據(jù)顯示_第3頁(yè)
C語(yǔ)言項(xiàng)目化教程(基于智能制造軟件)教案全套 羅穎 項(xiàng)目1-8 課程準(zhǔn)備 -一輛汽車(chē)的數(shù)據(jù)顯示_第4頁(yè)
C語(yǔ)言項(xiàng)目化教程(基于智能制造軟件)教案全套 羅穎 項(xiàng)目1-8 課程準(zhǔn)備 -一輛汽車(chē)的數(shù)據(jù)顯示_第5頁(yè)
已閱讀5頁(yè),還剩306頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGE課題項(xiàng)目一課程準(zhǔn)備課型講練授課班級(jí)授課時(shí)數(shù)2教學(xué)目標(biāo)初步熟悉C語(yǔ)言程序開(kāi)發(fā)過(guò)程和VisualC++開(kāi)發(fā)程序的步驟理解語(yǔ)句的概念掌握C語(yǔ)言程序和C函數(shù)(包括主函數(shù))的結(jié)構(gòu)教學(xué)重點(diǎn)掌握C語(yǔ)言程序和C函數(shù)(包括主函數(shù))的結(jié)構(gòu)教學(xué)難點(diǎn)“程序”概念的理解;程序設(shè)計(jì)過(guò)程的掌握;學(xué)情分析高中畢業(yè)的大部分學(xué)生對(duì)程序設(shè)計(jì)比較生疏,沒(méi)有形成概念,因而重點(diǎn)是語(yǔ)法知識(shí)的理解掌握,首次上課顯得尤其重要,盡可能多地引起學(xué)生的學(xué)習(xí)興趣,為日后的學(xué)習(xí)打下良基。教學(xué)效果教后記課程準(zhǔn)備模塊一:課程介紹中國(guó)慕課注冊(cè)中國(guó)慕課比例(40%),平時(shí)分?jǐn)?shù)(20%),期末(40%)學(xué)習(xí)方法,課前預(yù)習(xí)教學(xué)內(nèi)容,課中學(xué)習(xí),課后復(fù)習(xí)模塊二:新課講授[學(xué)習(xí)目標(biāo)]知識(shí)目標(biāo):初步熟悉C語(yǔ)言程序開(kāi)發(fā)過(guò)程和VisualC++開(kāi)發(fā)程序的步驟理解語(yǔ)句的概念掌握C語(yǔ)言程序和C函數(shù)(包括主函數(shù))的結(jié)構(gòu)能力目標(biāo):能夠初步對(duì)C語(yǔ)言程序進(jìn)行調(diào)試任務(wù)1.1 計(jì)算機(jī)語(yǔ)言介紹1.1.1計(jì)算機(jī)語(yǔ)言發(fā)展人與人之間的交流需要通過(guò)語(yǔ)言。人和計(jì)算機(jī)交流信息也需要語(yǔ)言解決問(wèn)題。計(jì)算機(jī)語(yǔ)言(ComputerLanguage)指用于人與計(jì)算機(jī)之間通訊的語(yǔ)言,是人與計(jì)算機(jī)之間傳遞信息的媒介。計(jì)算機(jī)系統(tǒng)最重要的特征之一是通過(guò)一種語(yǔ)言發(fā)出指令傳達(dá)給機(jī)器。計(jì)算機(jī)語(yǔ)言經(jīng)歷了以下幾個(gè)發(fā)展階段。機(jī)器語(yǔ)言人們通過(guò)編寫(xiě)“0”、“1”這樣的二進(jìn)制數(shù)字串去控制電腦,其實(shí)就是控制計(jì)算機(jī)硬件的高低電平或通路開(kāi)路,每一操作碼在計(jì)算機(jī)內(nèi)部都有相應(yīng)的電路來(lái)完成它。計(jì)算機(jī)只能識(shí)別和接受由0和1組成二進(jìn)制代碼,這類(lèi)由計(jì)算機(jī)能直接識(shí)別和執(zhí)行的一種機(jī)器指令的集合稱(chēng)為機(jī)器指令(machineinstruction)。機(jī)器指令的集合就是該計(jì)算機(jī)的機(jī)器語(yǔ)言。一般計(jì)算機(jī)的指令長(zhǎng)度為16,即以16個(gè)0和1組成的各種排列組合,例如,1100110000000001。這種計(jì)算機(jī)能直接識(shí)別和接受的二進(jìn)制代碼稱(chēng)為機(jī)器指令。機(jī)器指令的集合,就是該計(jì)算機(jī)的機(jī)器語(yǔ)言。匯編語(yǔ)言一種用于電子計(jì)算機(jī)、微處理器、微控制器或其他可編程器件的低級(jí)語(yǔ)言,亦稱(chēng)為符號(hào)語(yǔ)言。在匯編語(yǔ)言中,用助記符(Mnemonics)代替機(jī)器指令的操作碼,用地址符號(hào)(Symbol)或標(biāo)號(hào)(Label)代替指令或操作數(shù)的地址。程序員用匯編語(yǔ)言寫(xiě)出源程序,再用匯編編譯器將其編譯為機(jī)器碼,由計(jì)算機(jī)最終執(zhí)行。匯編語(yǔ)言編寫(xiě)程序的過(guò)程如圖1-1所示。圖1-1匯編語(yǔ)言編寫(xiě)程序的過(guò)程雖然匯編語(yǔ)言筆記氣源簡(jiǎn)單,好記一些。但仍然難以普及,不同型號(hào)的計(jì)算機(jī)的機(jī)器語(yǔ)言和匯編源是互不通用的。高級(jí)語(yǔ)言是獨(dú)立于機(jī)器,面向過(guò)程或?qū)ο蟮木幊陶Z(yǔ)言,與低級(jí)語(yǔ)言相對(duì)。它是以人類(lèi)的日常語(yǔ)言為基礎(chǔ)的一種編程語(yǔ)言,使用一般人易于接受的文字來(lái)表示(例如漢字、不規(guī)則英文或其他外語(yǔ)),從而使程序編寫(xiě)員編寫(xiě)更容易,亦有較高的可讀性。20世紀(jì)50年代創(chuàng)造出了第一個(gè)計(jì)算機(jī)高級(jí)語(yǔ)言-FORTRAN語(yǔ)言,目前的高級(jí)語(yǔ)言有Java,C,C++,C#,Pascal,Python等。計(jì)算機(jī)是不能直接識(shí)別高級(jí)語(yǔ)言程序的,也要進(jìn)行翻譯用一種稱(chēng)為編譯程序的軟件把高級(jí)語(yǔ)言寫(xiě)的程序(也稱(chēng)為源程序)轉(zhuǎn)換為機(jī)器指令的程序(稱(chēng)為目標(biāo)程序),然后讓計(jì)算機(jī)執(zhí)行機(jī)器指令程序,最后得到結(jié)果。高級(jí)語(yǔ)言經(jīng)歷了非結(jié)構(gòu)化的語(yǔ)言、結(jié)構(gòu)化的語(yǔ)言、面向?qū)ο蟮恼Z(yǔ)言三個(gè)階段。非結(jié)構(gòu)化語(yǔ)言編程比較隨意,只要符合語(yǔ)法規(guī)則即可,程序中可以隨意跳轉(zhuǎn),導(dǎo)致程序很難閱讀及維護(hù)。比如BASIC,F(xiàn)ORTRAN等結(jié)構(gòu)化的語(yǔ)言程序必須由良好特性的基本結(jié)構(gòu)構(gòu)成,不允許隨意跳轉(zhuǎn),程序從上到下順序執(zhí)行各個(gè)基本結(jié)構(gòu)。比如QBASIC等。面向?qū)ο蟮恼Z(yǔ)言是一類(lèi)以對(duì)象作為基本程序結(jié)構(gòu)單位的程序設(shè)計(jì)語(yǔ)言,語(yǔ)言中提供了類(lèi)、繼承等成分。1.1.2C語(yǔ)言介紹C語(yǔ)言是20世紀(jì)70年代初由美國(guó)貝爾實(shí)驗(yàn)室在B語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的,它保持了B語(yǔ)言精練、接近硬件的特點(diǎn),又改進(jìn)了B語(yǔ)言過(guò)于簡(jiǎn)單的缺點(diǎn)。在C語(yǔ)言的基礎(chǔ)上,貝爾實(shí)驗(yàn)室在1983年推出了C++。C++進(jìn)一步擴(kuò)展和完善了C語(yǔ)言,成為一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。C語(yǔ)言的主要特點(diǎn)如下:(1)C語(yǔ)言簡(jiǎn)潔、緊湊,使用方便靈活。標(biāo)準(zhǔn)C語(yǔ)言(ANSIC.只有32個(gè)關(guān)鍵字,9種控制語(yǔ)句。書(shū)寫(xiě)形式自由,一行可以書(shū)寫(xiě)多條語(yǔ)句,一個(gè)語(yǔ)句也可以寫(xiě)在不同行上。(2)運(yùn)算符豐富共有34種運(yùn)算符,可以實(shí)現(xiàn)其它高級(jí)語(yǔ)言中難以實(shí)現(xiàn)的運(yùn)算(3)數(shù)據(jù)類(lèi)型豐富C語(yǔ)言具有現(xiàn)代化語(yǔ)言的各種數(shù)據(jù)類(lèi)型;用戶(hù)能自己擴(kuò)充數(shù)據(jù)類(lèi)型,實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu),完成用于具體問(wèn)題的數(shù)據(jù)描述。(4)以函數(shù)作為模塊單位C語(yǔ)言是一種結(jié)構(gòu)化語(yǔ)言。C語(yǔ)言的主要成分是函數(shù)。函數(shù)是C語(yǔ)言程序的基本結(jié)構(gòu)模塊,程序可以由不同功能的函數(shù)有機(jī)組裝而成,從而可以達(dá)到結(jié)構(gòu)化程序設(shè)計(jì)中模塊的要求。另外,C語(yǔ)言提供了3種基本結(jié)構(gòu)(順序、選擇、循環(huán)),使程序流程具有良好的結(jié)構(gòu)性。(5)C語(yǔ)言有豐富的數(shù)據(jù)類(lèi)型C語(yǔ)言具有現(xiàn)代化語(yǔ)言的各種數(shù)據(jù)類(lèi)型;用戶(hù)能自己擴(kuò)充數(shù)據(jù)類(lèi)型,實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu),完成用于具體問(wèn)題的數(shù)據(jù)描述。(6)C語(yǔ)言具有較高的移植性,目標(biāo)代碼質(zhì)量高、運(yùn)行效率高用C語(yǔ)言編寫(xiě)的程序,其生成的目標(biāo)代碼質(zhì)量高、運(yùn)行效率高,一般只比匯編程序生成的目標(biāo)代碼效率低10%~20%。(7)允許直接訪問(wèn)物理地址C語(yǔ)言允許對(duì)硬件內(nèi)存地址進(jìn)行直接讀寫(xiě),以此可以實(shí)現(xiàn)匯編語(yǔ)言的主要功能,并可直接操作硬件。C語(yǔ)言不但具備高級(jí)語(yǔ)言所具有的良好特性,又包含了許多低級(jí)語(yǔ)言的優(yōu)勢(shì),故在系統(tǒng)軟件編程領(lǐng)域有著廣泛的應(yīng)用。C語(yǔ)言的以上特點(diǎn),讀者現(xiàn)在也許還不能深刻理解,待學(xué)完C語(yǔ)言以后再回顧一下,就會(huì)有比較深的體會(huì)。任務(wù)1.2C工具介紹在了解了基本的C語(yǔ)言知識(shí)后,我們需要上機(jī)實(shí)現(xiàn)一個(gè)C語(yǔ)言程序,以便更好的增加對(duì)程序的理解和認(rèn)識(shí)。下面我們介紹三種可以運(yùn)行C語(yǔ)言的環(huán)境。1.2.1VisualC++6.0環(huán)境介紹VisualC++6.0簡(jiǎn)稱(chēng)VC或者VC6.0,一個(gè)功能強(qiáng)大的可視化軟件開(kāi)發(fā)工具。VisualC++6.0不僅是一個(gè)C++編譯器,而且是一個(gè)基于Windows操作系統(tǒng)的可視化集成開(kāi)發(fā)環(huán)境(integrateddevelopmentenvironment,IDE)。很多C語(yǔ)言的教材上采用的都是這一環(huán)境,目前計(jì)算機(jī)等級(jí)考試中采用的C語(yǔ)言環(huán)境平臺(tái)就是它,另外一般C語(yǔ)言競(jìng)賽也將VisualC++作為平臺(tái)之一,比如由工業(yè)和信息化部人才交流中心舉辦的藍(lán)橋杯大賽。 VisualC++6.0運(yùn)行C語(yǔ)言的啟動(dòng)步驟如下:雙擊,打開(kāi)后集成環(huán)境如圖1-2所示。圖1-2VisualC++6.0集成開(kāi)發(fā)環(huán)境的窗口新建文件步驟,首先單擊“文件”→“新建”菜單命令,打開(kāi)后效果如圖1-2-2所示。圖1-2-2VisualC++6.0“文件”選項(xiàng)卡3)單擊“C++SourceFill”,在“文件名”輸入框中輸入程序名(如:hello),在VisualC++6.0環(huán)境下編輯的C語(yǔ)言源程序的擴(kuò)展名默認(rèn)是.cpp。單擊“確定”按鈕。圖1-2-3新建hello文件4)進(jìn)入源程序的編輯窗口,如圖1-2-4所示。圖1-2-4源程序編輯窗口5)編寫(xiě)源程序,如圖1-2-5所示。圖1-2-5編寫(xiě)源程序6)單擊菜單欄組建中的編譯,如圖1-2-6所示,或者單擊工具欄的圖標(biāo)都可以編譯,最后單擊確定即可完成編譯。圖1-2-6菜單欄編譯7)單擊菜單欄“組建”中“全部重建”的連接,如圖1-2-7所示?;蛘邌螕艄ぞ邫谥袌D標(biāo),都可以編譯連接。圖1-2-7連接8)單擊“組建”中的“執(zhí)行”,如圖1-2-8所示?;蛘邌螕舨藛螜谥械膱D標(biāo),也可以執(zhí)行。圖1-2-8執(zhí)行9)顯示程序執(zhí)行結(jié)果,如圖1-2-9所示。圖1-2-9執(zhí)行結(jié)果1.2.2DEV-C++DEVC++是一個(gè)Windows環(huán)境下的一個(gè)適合于初學(xué)者使用的輕量級(jí)C/C++集成開(kāi)發(fā)環(huán)境(IDE),它是一款自由軟件,遵守GPL(GeneralPublicLicense)許可協(xié)議分發(fā)源代碼。開(kāi)發(fā)環(huán)境包括多頁(yè)面窗口、工程編輯器以及調(diào)試器等,在工程編輯器中集合了編輯器、編譯器、連接程序和執(zhí)行程序,提供高亮度語(yǔ)法顯示的,以減少編輯錯(cuò)誤,還有完善的調(diào)試功能,適合于在教學(xué)中供C/C++語(yǔ)言初學(xué)者使用。雙擊Windows桌面圖標(biāo),進(jìn)入DEV-C++編輯環(huán)境。如下圖1-2-10所示。圖1-2-10DEV-C++界面2)單擊“文件”→“新建”→“源代碼”菜單命令,將進(jìn)入源代碼編輯頁(yè)面。如圖1-2-11所示。圖1-2-11DEV-C++新建源代碼3)新建一個(gè)C語(yǔ)言程序,并寫(xiě)入第一個(gè)程序源代碼。點(diǎn)擊保存按鈕如下圖1-2-12所示。圖1-2-12保存程序源代碼4)單擊調(diào)試源代碼,顯示源代碼編輯對(duì)話框如下圖1-2-13所示。圖1-2-13源代碼編輯對(duì)話框5)可以選擇“運(yùn)行”→“運(yùn)行”菜單項(xiàng),亦可單擊運(yùn)行控件,運(yùn)行源代碼,如圖1-2-14所示。圖1-2-14源代碼運(yùn)行6)源代碼運(yùn)行結(jié)果,如下圖1-2-15所示。圖1-2-15程序運(yùn)行結(jié)果1.2.3C/C++程序?qū)嶒?yàn)與學(xué)習(xí)系統(tǒng)本教程中介紹的C/C++程序設(shè)計(jì)學(xué)習(xí)與實(shí)驗(yàn)系統(tǒng)是一位從事一線教學(xué)的大學(xué)教師根據(jù)C/C++初學(xué)者的特點(diǎn),量身定制的一個(gè)簡(jiǎn)單易用的C/C++程序設(shè)計(jì)學(xué)習(xí)與實(shí)驗(yàn)軟件。在學(xué)習(xí)資源樹(shù)上可以很方便的打開(kāi)學(xué)習(xí)資源,有集成的《C語(yǔ)言入門(mén)教程》,對(duì)應(yīng)的每章都指出了初學(xué)者易錯(cuò)點(diǎn)和每章都配有習(xí)題和答案分析,有歷年的計(jì)算機(jī)等級(jí)二級(jí)C語(yǔ)言的試卷和答案,有58個(gè)經(jīng)典源程序等。程序出錯(cuò)時(shí),除了有英文提示,還有中文提示,便于學(xué)生查找問(wèn)題。C/C++啟動(dòng)步驟如下:1)雙擊,打開(kāi)后C/C++集成環(huán)境如圖1-2-16所示:圖1-2-16C/C++集成環(huán)境2)填寫(xiě)程序,并單擊作上角“保存”,出現(xiàn)保存路徑如圖1-2-17所示:圖1-2-17保存界面3)選擇保存路徑,并輸入文件名one,產(chǎn)生的界面如圖1-2-18所示。圖1-2-18保存為one的程序界面單擊運(yùn)行可以直接執(zhí)行編輯、連接、運(yùn)行,執(zhí)行截圖如1-2-19所示:圖1-2-19運(yùn)行截圖任務(wù)1.3創(chuàng)建第一個(gè)C語(yǔ)言程序——?dú)g迎來(lái)到車(chē)輛監(jiān)控系統(tǒng)1.3.1任務(wù)目標(biāo)創(chuàng)建一個(gè)C語(yǔ)言程序,顯示“歡迎來(lái)到車(chē)輛監(jiān)控系統(tǒng)”。運(yùn)行截圖如圖1-3-1所示:圖1-3-1歡迎來(lái)到車(chē)輛監(jiān)控系統(tǒng)運(yùn)行截圖1.3.2知識(shí)儲(chǔ)備要實(shí)現(xiàn)一個(gè)具體的C語(yǔ)言程序,就必須先從了解C語(yǔ)言最基本的結(jié)構(gòu),各種規(guī)則。1.C程序的主要結(jié)構(gòu)#include<stdio.h>頭文件,因?yàn)楹瘮?shù)中使用printf函數(shù),否則編譯時(shí)不能執(zhí)行voidmain()主函數(shù){數(shù)據(jù)定義;數(shù)據(jù)賦值;數(shù)據(jù)計(jì)算;數(shù)據(jù)輸出}2.C語(yǔ)言的程序注意點(diǎn)=1\*GB3①C語(yǔ)言由函數(shù)構(gòu)成。函數(shù)是C程序的基本單位,C程序由一個(gè)或多個(gè)函數(shù)組成,必須有一個(gè)main()主函數(shù);C程序從main()主函數(shù)開(kāi)始執(zhí)行,主函數(shù)的位置無(wú)關(guān)緊要;C程序中的函數(shù)可以由庫(kù)函數(shù)和用戶(hù)自定義的函數(shù)構(gòu)成;函數(shù)可以不帶參數(shù),函數(shù)名后面必須有一對(duì)圓括號(hào),是函數(shù)標(biāo)志;函數(shù)體必須由一對(duì)大括號(hào)括起來(lái);程序至少有一個(gè)輸出函數(shù),0個(gè)及以上的輸出函數(shù)。=2\*GB3②一個(gè)函數(shù)由若干行組成。一行一個(gè)語(yǔ)句或幾個(gè)語(yǔ)句,也可一個(gè)語(yǔ)句寫(xiě)在多行,用“\”作續(xù)行符;“;”是語(yǔ)句結(jié)束標(biāo)志。=3\*GB3③C程序書(shū)寫(xiě)習(xí)慣是小寫(xiě)英文字母。=4\*GB3④頭文件的作用--賦予了調(diào)用某些庫(kù)函數(shù)的權(quán)限。當(dāng)程序中有輸入輸出函數(shù)時(shí)必須要有頭文件--#include"stdio.h"當(dāng)程序中有數(shù)學(xué)函數(shù)時(shí)必須要有頭文件--#include"math.h"當(dāng)程序中有字符串函數(shù)時(shí)必須要有頭文件--#include"string.h"3.printf函數(shù)printf函數(shù)的作用時(shí)向終端(輸出設(shè)備)輸出多個(gè)數(shù)據(jù)。其一般格式為:printf(格式控制,輸出項(xiàng)表);格式控制:雙引號(hào)括起來(lái)的字符串,一般由字符串和和格式說(shuō)明(%和格式字符)組成。輸出表項(xiàng):需要輸出數(shù)據(jù),可以是表達(dá)式,變量,常量等。一些常用的printf輸出格式如表1-3-1所示:表1-3-1printf輸出格式輸出類(lèi)型舉例運(yùn)行截圖輸出普通字符printf("一串字符");輸出字符帶換行printf(“一串字符\n”);printf(“二串字符”);輸出數(shù)值inta=10,b=15;printf(“%d+%d=%d”,a,b,a+b);輸出字符charch='a';printf("字符為%c",ch);4.格式控制程序中的數(shù)據(jù)根據(jù)不同的類(lèi)型需要不同的格式控制,比如十進(jìn)制整數(shù)存放的是整數(shù)類(lèi)型,一個(gè)字符只能存放一個(gè)字母或者特殊字符,其中一個(gè)漢字就要占用2個(gè)字符那么就要采用字符串格式控制。單精度和雙精度主要存放帶有小數(shù)的數(shù)據(jù),對(duì)于初學(xué)者可以先學(xué)習(xí)一些基本的格式控制,最基礎(chǔ)的格式類(lèi)型如表1-3-2所示:表1-3-2格式類(lèi)型數(shù)據(jù)類(lèi)型格式控制十進(jìn)制整數(shù)%d一個(gè)字符%c字符串%s單精度%f雙精度%lf5.注釋格式注釋的作用是增強(qiáng)程序的可讀性和用于對(duì)程序進(jìn)行調(diào)試。注釋格式如表1-3-3所示。表1-3-3注釋格式注釋類(lèi)型格式舉例單行注釋////主函數(shù)多行注釋以/*開(kāi)始,以*/結(jié)束/*這個(gè)題目的主要目的為完成計(jì)算器功能*/1.3.3典型實(shí)例典型案例1.已知2015年江蘇省的車(chē)輛上牌數(shù)量如圖1-3-2所示,顯示蘇州的車(chē)輛上牌信息:圖1-3-2江蘇省車(chē)輛上牌數(shù)量程序代碼:#include"stdio.h"http://頭文件voidmain()//主函數(shù){printf("2015年江蘇省的新車(chē)上牌量排名%d,城市%s,上牌量%f",1,"蘇州",32.8);//顯示數(shù)據(jù)}運(yùn)行截圖如圖1-3-3所示:圖1-3-3典型案例1運(yùn)行截圖典型案例2.顯示一輛新能源車(chē)輛的基本數(shù)據(jù)。駕駛員的駕照類(lèi)型為A,車(chē)牌號(hào)碼為蘇E88888,車(chē)輛速度為80公里/小時(shí),累計(jì)里程15347.5公里,充放點(diǎn)次數(shù)100次,目前處在的檔位為4檔。程序代碼:#include"stdio.h"http://頭文件voidmain()//主函數(shù){printf("一輛新能源車(chē)輛的基本數(shù)據(jù)為\n");//車(chē)輛數(shù)據(jù)顯示printf("教師員的駕照類(lèi)型為%c\n",'A');printf("車(chē)牌號(hào)碼為%s\n","蘇E88888");printf("車(chē)輛速度為%d公里/小時(shí)\n",80);printf("累計(jì)里程%lf公里\n",15347.5);printf("充放點(diǎn)次數(shù)%d次\n",100);printf("目前處在的檔位為%d檔\n",4);}運(yùn)行截圖如圖1-3-4所示:圖1-3-4典型案例2運(yùn)行截圖1.3.4任務(wù)分析與實(shí)踐程序代碼:#include"stdio.h"voidmain(){printf("####################\n");printf("歡迎來(lái)到車(chē)輛監(jiān)控系統(tǒng)\n");printf("####################\n");}1.3.5鞏固練習(xí)1.編寫(xiě)程序,實(shí)現(xiàn)在屏幕上顯示如下語(yǔ)句。安全情系生命,文明創(chuàng)造和諧,建設(shè)平安校園,你我共同責(zé)任。2.編寫(xiě)程序,顯示一名駕駛?cè)藛T的信息,其中駕駛員,18,1990,C用格式符表示。我是一名駕駛員;我的安全駕駛年限為18.5年;我從1990開(kāi)始開(kāi)車(chē);我的駕照類(lèi)型為C型號(hào)3.一個(gè)汽車(chē)4S店有一個(gè)150*100空地,有一間18*12*3.7的房間。用程序計(jì)算出空地的面積和房間的空間大小。==========Welcome==========Theareais22500Theroomspaceis799.200000==========Good-bye==========答案參考:main(){printf("==========Welcome==========\n");printf("Theareais%d\n",150*150);printf("Thethirdpowerof18is%f\n",pow(18,3));printf("==========Good-bye==========\n");}main(){printf("==========Welcome==========\n");printf("Theareais%d\n",150*150);printf("Thethirdpowerof18is%f\n",pow(18,3));printf("==========Good-bye==========\n");}4.編寫(xiě)程序,計(jì)算邊長(zhǎng)為150的正方形面積和18的3次方的值,并按如下形式顯示。答案參考:#include<stdio.h>#include<math.h>main(){printf("125+65=%d\n",125+65);printf("%d+%d=%d\n",125,65,125+65);printf("squarerootof130:%lf\n",sqrt(130));printf("squarerootof%d:%lf\n",130,sqrt(130));}課題項(xiàng)目二任務(wù)1統(tǒng)計(jì)汽車(chē)的數(shù)量(printf函數(shù))課型講練授課班級(jí)授課時(shí)數(shù)2教學(xué)目標(biāo)1、掌握c語(yǔ)言中提供的各種數(shù)據(jù)類(lèi)型,理解常量的概念。2、掌握各種類(lèi)型的變量的定義,初始化方式。教學(xué)重點(diǎn)1、C語(yǔ)言數(shù)據(jù)類(lèi)型的分類(lèi)。2、符號(hào)常量的定義。3、變量的定義初始化。教學(xué)難點(diǎn)數(shù)據(jù)類(lèi)型的理解(引入數(shù)據(jù)類(lèi)型的因素)學(xué)情分析學(xué)生經(jīng)過(guò)第一次理論課的學(xué)習(xí)對(duì)C語(yǔ)言程序整體有了解,對(duì)于數(shù)據(jù)類(lèi)型及常量變量的介紹屬概念記憶類(lèi)較多,因此學(xué)生在理解上沒(méi)有很大困難,重點(diǎn)于在一些概念,格式的記憶。教學(xué)效果教后記項(xiàng)目二車(chē)輛行駛狀態(tài)顯示(輸入、輸出)知識(shí)目標(biāo)熟悉輸入、輸出用法的格式。熟悉C語(yǔ)言幾種常用的數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式掌握標(biāo)識(shí)符的命名規(guī)則。掌握常量和變量的定義和引用規(guī)則。掌握流程圖的幾種符號(hào)。能力目標(biāo)能準(zhǔn)確運(yùn)用輸入與輸出用法。能熟練運(yùn)用數(shù)據(jù)類(lèi)型之間的自動(dòng)轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換。掌握算術(shù)運(yùn)算符的使用規(guī)則、優(yōu)先級(jí)和結(jié)合性。能畫(huà)出簡(jiǎn)單程序的流程圖。掌握程序的最基本的算法過(guò)程。情景設(shè)置主要通過(guò)printf()等函數(shù)打印出整個(gè)案例的宏觀流程,主要包括車(chē)輛采集端進(jìn)行車(chē)輛數(shù)據(jù)的采集、存儲(chǔ)和發(fā)送;服務(wù)器接收端完成數(shù)據(jù)接收、呈現(xiàn)(打?。?。通過(guò)輸入函數(shù)實(shí)現(xiàn)與用戶(hù)的簡(jiǎn)單交互,輸入車(chē)號(hào)顯示運(yùn)行狀態(tài)。任務(wù)2.1統(tǒng)計(jì)汽車(chē)的數(shù)量(printf函數(shù))2.1.1任務(wù)目標(biāo)已知A汽車(chē)公司第一季度生產(chǎn)新能源客車(chē)5987輛,新能源物流車(chē)1245輛,公交客運(yùn)2580輛,輕型客車(chē)7890輛,求該公司一季度共生產(chǎn)汽車(chē)多少。任務(wù)目標(biāo)運(yùn)行截圖如圖2-1-1所示:圖2-1-1任務(wù)目標(biāo)運(yùn)行截圖2.1.2知識(shí)儲(chǔ)備一個(gè)基本的程序應(yīng)該包含數(shù)據(jù)的描述和操作步驟兩個(gè)方面的內(nèi)容。著名計(jì)算機(jī)科學(xué)家沃思(NiklausWirth)提出了一個(gè)公式:數(shù)據(jù)結(jié)構(gòu)+算法=程序在C語(yǔ)言中,數(shù)據(jù)類(lèi)型指的是用于聲明不同類(lèi)型的變量或函數(shù)的一個(gè)廣泛的系統(tǒng)。1.數(shù)據(jù)類(lèi)型C語(yǔ)言提供的數(shù)據(jù)結(jié)構(gòu)是以數(shù)據(jù)類(lèi)型形式出現(xiàn)的。在對(duì)數(shù)據(jù)存放中,根據(jù)使用數(shù)據(jù)的類(lèi)型,定義不同類(lèi)型。C語(yǔ)言中包含的基本數(shù)據(jù)類(lèi)型如圖2-1-2所示。圖2-1-2C語(yǔ)言基本數(shù)據(jù)類(lèi)型在C程序中什么樣的數(shù)據(jù)類(lèi)型用什么樣的符號(hào)輸出,另外需要注意數(shù)據(jù)類(lèi)型的范圍,否則會(huì)出錯(cuò)。[示例2-1]通過(guò)printf語(yǔ)句顯示3.0,3,’a’數(shù)據(jù)。#include"stdio.h"voidmain(){printf("%f,%d,%c",3.0,3,'a');}[示例2-2]運(yùn)行如下程序,分析運(yùn)行錯(cuò)誤原因#include"stdio.h"voidmain(){printf("%f,%d,%c",5,7,b);}分析:第4行的5是整數(shù),%f是浮點(diǎn)型,輸出類(lèi)型不匹配。b作為字符必須加單引號(hào)。2.常量常量:在程序運(yùn)行過(guò)程中其值不能被改變的量。常用的常量有以下幾種類(lèi)型:(1)整型常量。比如10,-2,0等。(2)實(shí)型常量。主要包含兩種形式,第一種十進(jìn)制小數(shù)形式,有數(shù)字和小數(shù)點(diǎn)組成。如34.56,-90.8等。第二種指數(shù)形式,如45.78e5(代表45.78×105)等,由于計(jì)算機(jī)輸入或者輸出時(shí)無(wú)法表示上角或者下角,故規(guī)定以E或者e代表以10為底的指數(shù)。(3)字符常量。主要包含兩種形式,第一種普通型字符,用單撇號(hào)括起來(lái),如’b’,’d’等,注意只能是一個(gè)。第二種轉(zhuǎn)義字符,以字符”\”字符開(kāi)頭的字符序列。比如’\n’等。(4)字符串常量。用雙撇號(hào)括起來(lái)的字符。比如“234”,a“”等。(5)符號(hào)常量。用#define指令,指定用一個(gè)符號(hào)名稱(chēng)代表一個(gè)常量。如:#definePI3.1416示例2-3求半徑為2.1的圓的面積#include"stdio.h"#definePI3.14voidmain(){ doubler,s; r=3; s=PI*r*r; printf("圓的面積為%.2lf",s);}3.變量變量:在程序執(zhí)行過(guò)程中,其值可以改變的量。就如同一個(gè)杯子,開(kāi)始可以裝水,后面可以裝咖啡,下來(lái)可以換成牛奶或者汽油,其變量圖解如圖2-1-3所示:圖2-1-3變量圖解在變量定義命名中是有一定規(guī)范的,在語(yǔ)言定義中,用來(lái)標(biāo)識(shí)變量名,符號(hào),數(shù)組,類(lèi)型名,文件名等有效字符序列我們稱(chēng)之為標(biāo)識(shí)符。上面的常量命名的PI也是一個(gè)標(biāo)識(shí)符。其命名規(guī)則如下:標(biāo)識(shí)符的命名規(guī)則如下:(1)標(biāo)識(shí)名中只能出現(xiàn)數(shù)學(xué)、大寫(xiě)英文字母、小寫(xiě)英文字母和下劃線。(2)標(biāo)識(shí)名必須以字母或下劃線開(kāi)頭。(3)標(biāo)識(shí)符名與關(guān)鍵字不能相同。(4)標(biāo)識(shí)符需要見(jiàn)名知義注意:變量是標(biāo)識(shí)符的一種,必須先定義后使用。變量在使用過(guò)程中,有一定規(guī)則的,定義什么類(lèi)型,一般使用什么類(lèi)型,輸出什么類(lèi)型,當(dāng)定義的類(lèi)型和輸出的類(lèi)型不一致時(shí),程序結(jié)果就會(huì)出錯(cuò),這也是初學(xué)者會(huì)常犯的錯(cuò)誤。定義變量的一般形式:類(lèi)型名變量1,變量2,…,變量名n;變量的三個(gè)屬性:變量名、變量值、變量類(lèi)型4.常見(jiàn)的數(shù)據(jù)類(lèi)型根據(jù)我們?nèi)粘5氖褂昧?xí)慣,列出了下面一些主要的數(shù)據(jù)類(lèi)型的符合,格式符,取值范圍等。具體如表2-1-1所示:表2-1-1常見(jiàn)的數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型符號(hào)格式符字節(jié)位數(shù)取值范圍無(wú)符號(hào)短整型unsignedshort%d2160~(216-1)短整型short%d216-215~(215-1)無(wú)符號(hào)整型unsignedint%d4320~(232-1)整型int%d432-231~(231-1)無(wú)符號(hào)長(zhǎng)整型unsignedlong%ld4320~(232-1)長(zhǎng)整型long%ld432-231~(231-1)單精度型float%f432-1038~1038雙精度型double%lf864-10308~10308無(wú)符號(hào)字符unsigned%d180~(28-1)字符char%c18--27~(27-1)5.編程規(guī)范:在實(shí)際變量命名中,規(guī)范會(huì)根據(jù)各個(gè)公司內(nèi)部規(guī)定而有區(qū)別,一般變量命名規(guī)則為類(lèi)型和對(duì)應(yīng)英文單詞的組合,單詞首字母大寫(xiě)或單詞之間用下劃線隔開(kāi),如fVeh_Speed(或fVehSpeeD.分別為類(lèi)型float的縮寫(xiě)f、車(chē)輛vehicle和車(chē)速speed的組合而成。類(lèi)型前綴表如表2-1-2所示:表2-1-2類(lèi)型前綴表2.1.3典型案例典型案例1.已知B汽車(chē)運(yùn)營(yíng)公司共擁有48377輛汽車(chē),目前正在運(yùn)營(yíng)的車(chē)輛47342輛,求維修的車(chē)輛數(shù)?算法分析:定義變量Veh_SumNum總車(chē)輛,Veh_Run運(yùn)營(yíng)車(chē)輛,Veh_Repair維修車(chē)輛給總車(chē)輛和運(yùn)營(yíng)車(chē)輛賦值計(jì)算維修車(chē)輛輸出維修車(chē)輛程序代碼:#include"stdio.h"voidmain(){intVeh_SumNum,Veh_Run,Veh_Repair;//定義變量Veh_SumNum=48377;//給數(shù)據(jù)賦值Veh_Run=47342;Veh_Repair=Veh_SumNum-Veh_Run;//計(jì)算printf("目前正在維修中的車(chē)輛的個(gè)數(shù)為%d",Veh_Repair);//輸出}典型案例1運(yùn)行截圖如圖2-1-4所示:圖2-1-4典型案例1運(yùn)行截圖典型案例2.已知B汽車(chē)運(yùn)營(yíng)公司共有48377輛汽車(chē),為了保證公司業(yè)務(wù)的正常運(yùn)營(yíng),售后維修部門(mén)必須有車(chē)輛數(shù)量的1/80的輪胎數(shù),求維修部門(mén)的輪胎數(shù)。算法分析:1) 定義變量Vehicle_SumNo總車(chē)輛,Vehicle_TyreNo輪胎數(shù)2) 給總車(chē)輛賦值3) 計(jì)算輪胎數(shù)4) 輸出輪胎數(shù)程序代碼:#include"stdio.h"voidmain(){intVehicle_SumNumber,Vehicle_TyreNum;//定義變量Vehicle_SumNumber=48377;//賦值Vehicle_TyreNum=Vehicle_SumNumber/80;//計(jì)算printf("目前車(chē)輛的備用輪胎數(shù)為%d",Vehicle_TyreNum);//輸出}典型案例2運(yùn)行截圖如2-1-5所示:圖2-1-5典型案例2運(yùn)行截圖典型案例3.編寫(xiě)程序,將數(shù)字字符‘2’,‘7’轉(zhuǎn)換為響應(yīng)的數(shù)字。算法分析:1) 定義數(shù)字字符2) 轉(zhuǎn)換3) 輸出程序代碼:#include"stdio.h"voidmain(){charch_Num1,ch_Num2;//定義變量ch_Num1='2';//賦值ch_Num2='7';ch_Num1=ch_Num1-'0';//計(jì)算ch_Num2='7'-48;printf("第一個(gè)字符的整型數(shù)據(jù)%d\n",ch_Num1);//輸出printf("第二個(gè)字符的整型數(shù)據(jù)%d\n",ch_Num2);} 典型案例3運(yùn)行截圖如圖2-1-6所示:圖2-1-6典型案例3運(yùn)行截圖 2.1.4任務(wù)分析與實(shí)踐算法分析:變量命名:新能源汽車(chē)數(shù)目:uMotorVeh_No;物流車(chē)數(shù)目:uDeliveryVeh_No公交車(chē)數(shù)目:uBus_No輕型客車(chē)數(shù)目:uLightBus_No車(chē)輛總數(shù):uVeh_Sum定義變量給大客車(chē)的數(shù)量和小客車(chē)的數(shù)量賦值求客車(chē)總的數(shù)量輸出客車(chē)的數(shù)量程序代碼:#include"stdio.h"voidmain(){intuMotorVeh_No,uDeliveryVeh_No,uBus_No,uLightBus_No,uVeh_Sum; uMotorVeh_No=5987; uDeliveryVeh_No=1234; uBus_No=2580; uLightBus_No=7890; uVeh_Sum=uMotorVeh_No+uDeliveryVeh_No+uBus_No+uLightBus_No; printf("該公司一季度共生產(chǎn)汽車(chē)%d輛車(chē)",uVeh_Sum);}2.1.5鞏固練習(xí)1.已知4S店目前45位男性員工,宿舍是4人間,需要準(zhǔn)備多少間宿舍。(參考變量英文男性員工Maleemployee,宿舍人數(shù)Numberofhostelresidents,宿舍間數(shù)Numberofdormitories)2.假設(shè)兩個(gè)駕駛員的工資甲為5500一個(gè)月,乙為7800一個(gè)月,那么一年工資相差多少。(參考變量工資salary,差額difference)3.一輛新能源車(chē)2019年的車(chē)輛保險(xiǎn)為3507.5元,2020年的車(chē)輛保險(xiǎn)為3209.5元,求一共花費(fèi)的保險(xiǎn)費(fèi)用。(參考變量保險(xiǎn)insurance)課題任務(wù)2.2統(tǒng)計(jì)汽車(chē)的載客人數(shù)(scanf函數(shù))課型講練授課班級(jí)授課時(shí)數(shù)2教學(xué)目標(biāo)掌握三種輸入輸出函數(shù)的使用方法;scanf()和printf()函數(shù)的調(diào)用方法和允許使用的格式轉(zhuǎn)換控制符。熟悉scanf()函數(shù)對(duì)各種類(lèi)型數(shù)據(jù)的鍵盤(pán)輸入格式的要求。能靈活使用printf()函數(shù)控制屏幕格式輸出。能用scanf()和printf()函數(shù)和賦值語(yǔ)句進(jìn)行簡(jiǎn)單的順序結(jié)構(gòu)程序的設(shè)計(jì)編寫(xiě)。教學(xué)重點(diǎn)scanf()和printf()函數(shù)的調(diào)用方法和允許使用的格式轉(zhuǎn)換控制符。能用scanf()和printf()函數(shù)和賦值語(yǔ)句進(jìn)行簡(jiǎn)單的順序結(jié)構(gòu)程序的設(shè)計(jì)編寫(xiě)。教學(xué)難點(diǎn)格式控制符的靈活使用學(xué)情分析輸出函數(shù)前面學(xué)生已經(jīng)基本接觸,但是只是原型輸出,對(duì)于具體的格式輸出,不太了解。輸入函數(shù)只是從書(shū)上的部分例題看到,還沒(méi)有具體的接觸,此處應(yīng)該具體講解各種不同的用途。教學(xué)效果教后記任務(wù)2.2統(tǒng)計(jì)汽車(chē)的載客人數(shù)(scanf函數(shù))2.2.1任務(wù)目標(biāo)已知某公交車(chē)隊(duì)某品牌某款純電動(dòng)城市客車(chē)的額定載客人數(shù)為56人,以鍵盤(pán)上輸入該車(chē)隊(duì)的客車(chē)數(shù)量,計(jì)算客車(chē)總的載客人數(shù)。程序運(yùn)行結(jié)果如圖2-7所示。圖2-7程序運(yùn)行結(jié)果2.2.2知識(shí)儲(chǔ)備圖2-7程序運(yùn)行結(jié)果在程序中,需要一些從外面輸入的數(shù)據(jù)。下面就來(lái)介紹輸入數(shù)據(jù)的輸入/輸出函數(shù)。1.scanf()函數(shù)(格式輸入函數(shù))scanf()函數(shù)可以用于輸入任何類(lèi)型的多個(gè)數(shù)據(jù),其語(yǔ)法格式為:scanf(格式說(shuō)明符,變量地址列表);功能:按用戶(hù)指定的格式從鍵盤(pán)上把數(shù)據(jù)輸入指定的變量中。注意:“地址列表”里由若干個(gè)地址組成,是變量地址,而不是變量名;輸入數(shù)據(jù)只能是常量,不能是表達(dá)式;輸入多個(gè)整型或?qū)嵭蛿?shù)據(jù)時(shí),可用空格、回車(chē)、制表符為間隔;“格式說(shuō)明”中的普通字符原樣輸入;“格式說(shuō)明”中一般只寫(xiě)若干個(gè)格式符。舉例:scanf("%d%d%d",&a,&b,&c);scanf("%d,%d,%d",&a,&b,&c);2.printf()函數(shù)(格式輸出函數(shù))一般都是按照默認(rèn)類(lèi)型數(shù)據(jù)輸出的,在此情況下,我們有時(shí)需要根據(jù)實(shí)際情況輸出數(shù)據(jù),如實(shí)型數(shù)一般默認(rèn)顯示小數(shù)點(diǎn)后6位,但是有時(shí)只需要顯示小數(shù)點(diǎn)后2位。整數(shù)原來(lái)有2位,但是需要最終顯示占5個(gè)空格等,特殊格式顯示如表2-2所示。表2-2特殊格式顯示要求格式顯示到小數(shù)點(diǎn)后2位的單精度類(lèi)型%.2f顯示到小數(shù)點(diǎn)后1位的雙精度類(lèi)型%.1lf雙精度顯示整數(shù)%.0f整型顯示至少占5個(gè)位置左空格%-5d整型顯示至少占4個(gè)位置右空格%4d小貼士:輸出函數(shù)的格式種類(lèi)較多,需要按要求靈活掌握。2.2.3典型案例典型案例1:從鍵盤(pán)上輸入某客車(chē)的累計(jì)行駛里程和使用年限,計(jì)算該客車(chē)平均每年的行駛里程。算法分析如下。(1)變量名命名:累積行駛里程AccumulatedMileage、使用年限ServiceYears、平均每年的行駛里程AvgMileage。(2)定義變量。(3)輸入累積行駛里程和使用年限。(4)計(jì)算平均每年的行駛里程。(5)輸出平均每年的行駛里程。代碼如下:#include"stdio.h"voidmain(){intServiceYear;doubleAccumulatedMileage,AvgdMileage;printf("請(qǐng)輸入累積行駛里程");scanf("%lf",&AccumulatedMileage);printf("請(qǐng)輸入使用年限");scanf("%d",&ServiceYear);AvgdMileage=AccumulatedMileage/ServiceYear;printf("平均每年的行駛里程為%lf",AvgdMileage);}典型案例1的運(yùn)行結(jié)果如圖2-8所示。典型案例2:已知某公交車(chē)隊(duì)某品牌A款純電動(dòng)城市大型客車(chē)的載客人數(shù)為36人,B款純電動(dòng)城市小型客車(chē)的荷載人數(shù)為18人,輸入兩款客車(chē)的數(shù)量,計(jì)算總的載客人數(shù)。算法分析如下。(1)變量名命名:大型客車(chē)載客人數(shù)BVehicle_LoadNumber、小型客車(chē)載客人數(shù)SVehicle_Loadnumber、大型客車(chē)數(shù)量BVehicle_Number、小型客車(chē)數(shù)量SVehicle_Number、客車(chē)總的載客人數(shù)Vehicle_SumLoadnumber。(2)定義5個(gè)變量。(3)輸入大型客車(chē)和小型客車(chē)的數(shù)量。(4)計(jì)算總的荷載人數(shù)。(5)計(jì)算總的輸出荷載人數(shù)。代碼如下:#include"stdio.h"voidmain(){intBVehicle_Loadnumber=36,SVehicle_Loadnumber=18;intBVehicle_Number,SVehicle_Number,Vehicle_SumLoadnumber;printf("請(qǐng)輸入大型客車(chē)的車(chē)輛數(shù)");scanf("%d",&BVehicle_Number);printf("請(qǐng)輸入小型客車(chē)的車(chē)輛數(shù)");scanf("%d",&SVehicle_Number);Vehicle_SumLoadnumber=BVehicle_Number*BVehicle_Loadnumber+SVehicle_Number*SVehicle_Loadnumber;printf("客車(chē)總的載客人數(shù)為%d",Vehicle_SumLoadnumber);}典型案例2的運(yùn)行結(jié)果如圖2-8所示。 圖2-8典型案例1的運(yùn)行結(jié)果 圖2-9典型案例2的運(yùn)行結(jié)果典型案例3:從鍵盤(pán)上輸入某客車(chē)平均每年的行駛里程和使用年限,計(jì)算該客車(chē)的累計(jì)行駛里程。算法分析如下。(1)變量名命名:累積行駛里程AccumulatedMileage、使用年限ServiceYear、平均每年的行駛里程AvgdMileage。(2)定義變量。(3)輸入平均每年的行駛里程和使用年限。(4)計(jì)算累積行駛里程。(5)輸出累積行駛里程。代碼如下:#include"stdio.h"voidmain(){intServiceYear;doubleAccumulatedMileage,AvgdMileage;printf("請(qǐng)輸入平均每年的行駛里程");scanf("%lf",&AvgdMileage);printf("請(qǐng)輸入使用年限");scanf("%d",&ServiceYear);AccumulatedMileage=AvgdMileage*ServiceYear;printf("%d年的累計(jì)行駛里程為%.2lf",ServiceYear,AccumulatedMileage);}典型案例3的運(yùn)行結(jié)果如圖2-10所示。圖2-10典型案例3的運(yùn)行結(jié)果2.2.4任務(wù)分析與實(shí)踐圖2-10典型案例3的運(yùn)行結(jié)果算法分析如下。(1)變量名客車(chē)的載客人數(shù)Vehicle_Loadnumber、客車(chē)的數(shù)量Vehicle_Number、客車(chē)總的載客人數(shù)Vehicle_SumLoadnumber。(2)定義變量。(3)輸入客車(chē)的數(shù)量。(4)計(jì)算。(5)輸出總的載客量。#include"stdio.h"voidmain(){intVehicle_Loadnumber=56,Vehicle_Number,Vehicle_SumLoadnumber;printf("請(qǐng)輸入客車(chē)的數(shù)量");scanf("%d",&Vehicle_Number);SumLoadnumber=Vehicle_Loadnumber*Vehicle_Number;printf("客車(chē)總的載客人數(shù)為%d",Vehicle_SumLoadnumber);}2.2.5鞏固練習(xí)1.編寫(xiě)程序,有一輛汽車(chē)歷經(jīng)了兩個(gè)車(chē)主的使用,從鍵盤(pán)上輸入兩個(gè)車(chē)主的使用年限,計(jì)算目前這輛汽車(chē)總的使用年限(變量參考:車(chē)主ownerofavehicle、使用年限servicelife)。2.編寫(xiě)程序,從鍵盤(pán)上輸入車(chē)輛的單價(jià)和數(shù)量,計(jì)算所有車(chē)輛的總價(jià)格(變量參考:車(chē)輛的單價(jià)VehiclePrice、車(chē)輛的數(shù)量Numberofvehicles、總價(jià)格Vehiclecosts)。3.編寫(xiě)程序,從鍵盤(pán)上輸入一個(gè)駕駛員的駕駛證類(lèi)型,輸出該駕駛證類(lèi)型對(duì)應(yīng)的小寫(xiě)字母(變量參考:大小寫(xiě)字母的ACSII碼值相差32Typeofdriver'slicense)。課題任務(wù)2.3統(tǒng)計(jì)需要的車(chē)輛(算術(shù)運(yùn)算符、強(qiáng)制轉(zhuǎn)換)課型講練授課班級(jí)授課時(shí)數(shù)2教學(xué)目標(biāo)1.了解算術(shù)運(yùn)算符,關(guān)系運(yùn)算符并且會(huì)合理的使用它們。2.會(huì)判斷邏輯值的真和假3.會(huì)編寫(xiě)程序計(jì)算教學(xué)重點(diǎn)算術(shù)運(yùn)算符,關(guān)系運(yùn)算符的使用教學(xué)難點(diǎn)合理使用運(yùn)算符學(xué)情分析+、-、*、/這些運(yùn)算符基本上學(xué)生平時(shí)都有接觸,只需講解日常不太使用的運(yùn)算符即可,但由于沒(méi)有接觸使用到判斷語(yǔ)句,對(duì)于運(yùn)算符的使用面還是比較狹窄,需要利用以后的課時(shí)將這個(gè)知識(shí)點(diǎn)逐漸的滲入。教學(xué)效果教后記任務(wù)2.3統(tǒng)計(jì)需要的車(chē)輛(算術(shù)運(yùn)算符、強(qiáng)制轉(zhuǎn)換)2.3.1任務(wù)目標(biāo)某公司承辦某班級(jí)春游包車(chē)服務(wù),要求通過(guò)鍵盤(pán)輸入?yún)⒓踊顒?dòng)的學(xué)生人數(shù)以及一輛客車(chē)的載客人數(shù),計(jì)算該公司承接該項(xiàng)服務(wù)所需要的車(chē)輛數(shù)?任務(wù)目標(biāo)運(yùn)行截圖如圖2-3-1所示:

圖2-3-1任務(wù)目標(biāo)2.3.2知識(shí)儲(chǔ)備C語(yǔ)言的運(yùn)算符范圍很寬,把除了控制語(yǔ)句和輸入輸出以外所有的基本操作都作為運(yùn)算符處理。一些基本的運(yùn)算符與數(shù)學(xué)運(yùn)算一樣比如+,-,*等,但是有一些運(yùn)算符不太一樣,比如‘=’與“==”的區(qū)別,‘/’在數(shù)據(jù)為浮點(diǎn)型和整數(shù)類(lèi)型時(shí)是不同的,‘%’是求余的含義等,在具體使用時(shí)需要注意。1.算術(shù)運(yùn)算符算數(shù)運(yùn)算符包含以下幾種基本運(yùn)算符+(加法運(yùn)算符):雙目運(yùn)算符-(減法運(yùn)算符):雙目運(yùn)算符*(乘法運(yùn)算符):雙目運(yùn)算符/(除法運(yùn)算符):雙目運(yùn)算符,/(整除)對(duì)于int,float,double均適用,例如:8.0/3.0%(求余運(yùn)算符):雙目運(yùn)算符,%(求余)只對(duì)整數(shù)類(lèi)型起作用。++(自增運(yùn)算符):?jiǎn)文窟\(yùn)算符--(自減運(yùn)算符):?jiǎn)文窟\(yùn)算符2.賦值運(yùn)算符=(單等號(hào))就是賦值運(yùn)算符,作用就是將一個(gè)常量或者變量等賦值給一個(gè)變量。[示例2-3]觀察下面的程序,說(shuō)出程序結(jié)果#include"stdio.h"voidmain(){intdataA=2,dataB;dataB=20;//將20賦值給dataBdataA*=dataB+1;//等價(jià)于dataA=dataA*(dataB+1); printf("dataA=%d,dataB=%d",dataA,dataB);}運(yùn)算符的優(yōu)先級(jí)在數(shù)據(jù)運(yùn)行時(shí),不同類(lèi)型的數(shù)據(jù)要先轉(zhuǎn)換成同一類(lèi)型,然后進(jìn)行運(yùn)算,轉(zhuǎn)換的規(guī)則如圖2-3-1所示:圖2-3-1轉(zhuǎn)換的規(guī)則4.數(shù)學(xué)頭文件#include“math.h”2.3.3典型案例典型案例1.從鍵盤(pán)輸入貨物的噸數(shù)和貨車(chē)的載重量,求共需要拉幾次和最后一次拉的噸數(shù)。(噸數(shù)不能整除載重量)算法分析:定義變量Cargo_Quantity貨物量,Truck_load貨車(chē)載重量,Pull_Number拉貨次數(shù),F(xiàn)inal_load最后一次的載重量。輸入貨物的噸數(shù)和貨車(chē)的載重量。計(jì)算拉貨次數(shù),求最后一次的拉貨量。輸出拉貨次數(shù)和最后一次的拉貨量。程序代碼:#include"stdio.h"#include"stdio.h"voidmain(){intCargo_Quantity,Truck_load,Pull_Number,Final_load;printf("請(qǐng)輸入貨物的重量(單位:噸)");scanf("%d",&Cargo_Quantity);printf("請(qǐng)輸入貨車(chē)的載重量");scanf("%d",&Truck_load);Pull_Number=Cargo_Quantity/Truck_load+1;Final_load=Cargo_Quantity%Truck_load;printf("貨車(chē)需要拉%d趟\n",Pull_Number); printf("最后一次需要拉%d噸\n",Final_load);}典型案例1運(yùn)行截圖如圖2-3-2所示:圖2-3-2典型案例1運(yùn)行截圖典型案例2.從鍵盤(pán)輸入一個(gè)浮點(diǎn)數(shù),求它的整數(shù)部分和小數(shù)部分。算法分析:定義變量Float_Number浮點(diǎn)數(shù),Int_Part整數(shù)部分,Decimal_Part小數(shù)部分

從鍵盤(pán)輸入一個(gè)浮點(diǎn)數(shù)。求整數(shù)部分。求小數(shù)部分。輸出整數(shù)和小數(shù)部分。程序代碼:#include"stdio.h"voidmain(){doubleFloat_Number,Decimal_Part;intInt_Part;printf("請(qǐng)輸入一個(gè)浮點(diǎn)數(shù)");scanf("%lf",&Float_Number);Int_Part=(int)Float_Number;Decimal_Part=Float_Number-Int_Part;printf("浮點(diǎn)數(shù)的整數(shù)部分為%d,小數(shù)部分為%lf",Int_Part,Decimal_Part);}典型案例2運(yùn)行截圖如圖2-3-3所示:小貼士:請(qǐng)大家將本題目中浮點(diǎn)數(shù)的類(lèi)型換成float試一試,對(duì)比一下結(jié)果。圖2-3-3小貼士:請(qǐng)大家將本題目中浮點(diǎn)數(shù)的類(lèi)型換成float試一試,對(duì)比一下結(jié)果。典型案例3.編寫(xiě)程序,計(jì)算函數(shù)y=的值,其中自變量的值從鍵盤(pán)輸入。算法分析:1) 定義變量x,y;2) 從鍵盤(pán)輸入x的值。3) 求y的值。4) 輸出y的值。程序代碼:#include"stdio.h"#include"math.h"voidmain(){doublex,y;printf("請(qǐng)輸入x的值");scanf("%lf",&x);y=sqrt(x)+5*x+3/(x*x+2);printf("y的值為%lf",y);}典型案例3運(yùn)行截圖如圖2-3-4所示:圖2-3-4典型案例3截圖2.3.4任務(wù)分析與實(shí)踐算法分析:定義變量Vehicle_Passenger車(chē)載人數(shù),Vehicle_Number車(chē)輛數(shù),Student_NumBer學(xué)生人數(shù)。從鍵盤(pán)輸入車(chē)載人數(shù),學(xué)生數(shù)求車(chē)輛數(shù)程序代碼#include"stdio.h"voidmain(){intVehicle_Passenger,Vehicle_Number,Student_NumBer;printf("請(qǐng)輸入每量車(chē)的載客人數(shù)");scanf("%d",&Vehicle_Passenger);printf("請(qǐng)輸入學(xué)生人數(shù)");scanf("%d",&Student_NumBer);Vehicle_Number=Student_NumBer/Vehicle_Passenger+1;printf("共需要車(chē)輛%d輛",Vehicle_Number);}2.3.5鞏固練習(xí)1.一名駕駛員的工號(hào)為4位的整數(shù),從鍵盤(pán)輸入一名駕駛員的工號(hào),輸出工號(hào)各位數(shù)字之和。(變量參考工號(hào)jobnumber,個(gè)位units,十位tens,百位hundreds,千位thousands)2.從鍵盤(pán)輸入一名駕駛員的身高(米)和體重(公斤),求這名駕駛員的體指數(shù)。(體脂數(shù)公式為BIM=體重/(身高*身高);變量參考體重weight,身高h(yuǎn)eigh)3.從鍵盤(pán)輸入一輛箱式貨車(chē)箱長(zhǎng)的長(zhǎng)、寬、高,求它的容積。(變量長(zhǎng)length,寬width,高h(yuǎn)igh)4.一名駕駛員想看一下天氣溫度,結(jié)果給出的時(shí)華氏溫度,他希望知道攝氏溫度。從鍵盤(pán)輸入華氏溫度,求出攝氏溫度。(華氏轉(zhuǎn)化為攝氏的公式:C=5/9*(F-32))課題任務(wù)2.4顯示駕照的類(lèi)型(字符輸入與輸出)課型講練授課班級(jí)授課時(shí)數(shù)2教學(xué)目標(biāo)1.利用getchar(),putchar()函數(shù)單個(gè)字符的輸入輸出2.利用scanf(),printf()函數(shù)單個(gè)字符的輸入輸出3.當(dāng)輸入多個(gè)字符時(shí)輸入函數(shù)的注意點(diǎn)教學(xué)重點(diǎn)多個(gè)字符函數(shù)的輸入與輸出教學(xué)難點(diǎn)多個(gè)字符函數(shù)的輸入與輸出學(xué)情分析scanf與printf也可以對(duì)于字符和字符串進(jìn)行輸入與輸出,本節(jié)課主要是字符的輸入與輸出,但是有時(shí)判斷不出字符的輸入與輸出應(yīng)該采用哪個(gè)函數(shù)更好一些。教學(xué)效果教后記任務(wù)2.4顯示駕照的類(lèi)型(字符輸入與輸出)2.4.1任務(wù)目標(biāo)從鍵盤(pán)輸入駕駛員的駕照類(lèi)型(高于C級(jí)),因?yàn)?個(gè)實(shí)習(xí)年度扣分超過(guò)12分被降1級(jí),輸出新的駕照類(lèi)型。2.4.2知識(shí)儲(chǔ)備由于字符是按照整數(shù)形式存放的,因此字符型數(shù)據(jù)也作為整數(shù)類(lèi)型的一種,在使用過(guò)程中有其獨(dú)特的特點(diǎn)。1.字符常量C語(yǔ)言的字符常量一般用單引號(hào)括起來(lái),個(gè)數(shù)只能有一個(gè),比如’A’(A字符),’b’等。除了這種情況外,C語(yǔ)言還允許另一種特殊格式的字符常量,以‘\’開(kāi)頭,比如’\n‘代表?yè)Q行等,常用的以‘\’開(kāi)頭的特殊字符如表2-4-1所示:表2-4-1常用特殊字符字符格式功能\n換行\(zhòng)t橫向跳格\\反斜杠字符“\”\ddd1到3位8進(jìn)制所代表的字符\xhh1到2位16進(jìn)制所代表的字符2.字符變量用來(lái)存放字符類(lèi)型,并且只能放一個(gè)字符的變量,稱(chēng)為字符變量。將一個(gè)字符常量放到字符變量中,實(shí)際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符對(duì)應(yīng)的ASCII代碼放到存儲(chǔ)單元中。例如’A’字符的ASCII代碼為65,在內(nèi)存中存放的就是65,所以一個(gè)字符數(shù)據(jù)既可以以字符形式輸出,也可以以整數(shù)形式輸出。那么字符數(shù)據(jù)參與算術(shù)運(yùn)算時(shí),就相當(dāng)于對(duì)于他們的ASCII值進(jìn)行算數(shù)運(yùn)算。[示例2-4]觀察下面的程序,說(shuō)出程序結(jié)果#include"stdio.h"voidmain(){charchA=65,chB='A',chC;chC=chB+32; printf("chA=%d,chB=%d,ASCIIchC=%d,字符chC=%c",chA,chB,chC,chC);}3.字符數(shù)據(jù)輸出函數(shù)putchar()在項(xiàng)目一中我們接觸到了printf函數(shù),它也可以輸出字符類(lèi)型,putchar函數(shù)是專(zhuān)門(mén)輸出字符的函數(shù),只能輸出一個(gè)字符。格式:putchar(c);功能:在終端上輸出一個(gè)字符,不換行如:chara=‘A’;intk=65;putchar(a);putchar(k);putchar(‘A’+32);putchar(65);putchar(‘\101’);4.字符輸入函數(shù)getchar()在項(xiàng)目一中我們接觸到了scanf函數(shù),它也可以輸入字符類(lèi)型,getchar函數(shù)是專(zhuān)門(mén)輸入字符的函數(shù),只能輸入一個(gè)字符。格式:getchar();功能:返回從鍵盤(pán)輸入一個(gè)字符,不帶任何參數(shù)。[示例2-4]觀察下面的程序,猜測(cè)結(jié)果,并運(yùn)行程序看結(jié)果和猜測(cè)是否一致#include"stdio.h"voidmain(){charchA,chB;chA=getchar();chB=chA+32; printf("chA=%d,chB=%c\n",chA,chB);}2.4.3典型案例典型案例1.一個(gè)駕駛員原來(lái)是小轎車(chē)類(lèi)型C型駕照,駕駛員通過(guò)大客車(chē)的學(xué)習(xí)升了二級(jí)級(jí),顯示駕駛員最新的駕照類(lèi)型。典型案例1運(yùn)行截圖如2-4-1所示圖2-4-1典型案例1截圖算法分析:定義變量Driver_LicenseType駕照類(lèi)型輸入駕照類(lèi)型Driver_LicenseType減2輸出駕照類(lèi)型程序代碼:#include"stdio.h"voidmain(){charDriver_LicenseType;printf("請(qǐng)輸入原有的駕照類(lèi)型");Driver_LicenseType=getchar();Driver_LicenseType=Driver_LicenseType-2;printf("升二級(jí)后的駕照類(lèi)型為");putchar(Driver_LicenseType);}典型案例2.從鍵盤(pán)輸入一個(gè)大寫(xiě)字母,轉(zhuǎn)換成小寫(xiě)字母并輸出。典型案例2程序運(yùn)行截圖如圖2-4-2所示:圖2-4-2典型案例2運(yùn)行截圖算法分析:定義變量輸入大寫(xiě)字母轉(zhuǎn)換成小寫(xiě)字母輸出轉(zhuǎn)換后的字母程序代碼:#include"stdio.h"voidmain(){intch;printf("請(qǐng)輸入一個(gè)大寫(xiě)字母");scanf("%c",&ch);ch=ch+32;printf("轉(zhuǎn)換后的小寫(xiě)字母為%c",ch);}典型案例3.從鍵盤(pán)輸入3個(gè)字母,輸出這些字母后面的字母。典型案例3運(yùn)行截圖如圖2-4-3所示:圖2-4-3典型案例3截圖方法一:算法分析:定義變量輸入3個(gè)字母轉(zhuǎn)換成后面的字母輸出轉(zhuǎn)換后的3個(gè)字母程序代碼:#include"stdio.h"main(){ charch1,ch2,ch3; scanf("%c%c%c",&ch1,&ch2,&ch3); ch1=ch1+5; ch2=ch2+5; ch3=ch3+5; printf("ch1=%c,ch2=%c,ch3=%c",ch1,ch2,ch3);}注意使用1個(gè)scanf函數(shù)輸入多個(gè)字符時(shí),在各字符之間不能用任何分隔符,因?yàn)橄到y(tǒng)將空格,TAB鍵,回車(chē)符等均作為合法字符。方法二:算法分析:定義變量輸入第1個(gè)字母轉(zhuǎn)換成后面的字母輸入第2個(gè)字母轉(zhuǎn)換成后面的字母輸入第3個(gè)字母轉(zhuǎn)換成后面的字母輸出轉(zhuǎn)換后的3個(gè)字母程序代碼程序1:#include"stdio.h"main(){ charch1,ch2,ch3; printf("請(qǐng)輸入第一個(gè)字母"); ch1=getchar(); getchar(); printf("請(qǐng)輸入第二個(gè)字母"); ch2=getchar(); getchar(); printf("請(qǐng)輸入第三個(gè)字母"); ch3=getchar(); getchar(); printf("轉(zhuǎn)換后的三個(gè)字母為"); ch1=ch1+1; ch2=ch2+1; ch3=ch3+1; putchar(ch1); putchar(ch2); putchar(ch3);}注意:getchar();是接收輸入字符后的回車(chē)符。程序2:#include"stdio.h"main(){ charch1,ch2,ch3; printf("請(qǐng)輸入第一個(gè)字母"); scanf("%c",&ch1); printf("請(qǐng)輸入第二個(gè)字母"); scanf("%c",&ch2); printf("請(qǐng)輸入第三個(gè)字母"); scanf("%c",&ch3); ch1=ch1+5; ch2=ch2+5; ch3=ch3+5; printf("ch1=%c,ch2=%c,ch3=%c",ch1,ch2,ch3);}注意:%c前有一個(gè)空格主要是接收前一個(gè)字符后面的回車(chē)符。2.4.4任務(wù)分析與實(shí)踐算法分析:定義變量Driver_LicenseType駕照類(lèi)型輸入駕照類(lèi)型降級(jí)駕照輸出駕照類(lèi)型程序代碼:#include"stdio.h"voidmain(){charDriver_LicenseType;printf("請(qǐng)輸入原有的駕照類(lèi)型");Driver_LicenseType=getchar();Driver_LicenseType=Driver_LicenseType++;printf("降級(jí)后的駕照類(lèi)型為");putchar(Driver_LicenseType);}2.4.5鞏固練習(xí)1.一名駕駛員在輸入年齡時(shí)方法錯(cuò)誤,輸入成了二個(gè)數(shù)字字符,請(qǐng)將它變?yōu)閷?shí)際年齡值。(變量參考年齡age)2.從鍵盤(pán)輸入一名駕駛員的駕照等級(jí),輸出等級(jí)對(duì)應(yīng)的小寫(xiě)字母。(變量參考年齡Classofdriver'slicense)3.從鍵盤(pán)輸入一個(gè)車(chē)輛三角形警示牌的三邊(單位cm),求警示牌的面積。(變量參考長(zhǎng)length,面積area)課題任務(wù)2.5求能拿到駕照的過(guò)程(流程圖)課型講練授課班級(jí)授課時(shí)數(shù)2教學(xué)目標(biāo)掌握流程圖的各種符號(hào),能辨別基本的符號(hào)教學(xué)重點(diǎn)能根據(jù)題意畫(huà)出順序,選擇,循環(huán)的流程圖教學(xué)難點(diǎn)循環(huán)流程圖的畫(huà)法學(xué)情分析高中數(shù)學(xué)知識(shí)已經(jīng)講解了基本的流程圖格式。教學(xué)效果教后記任務(wù)2.5求能拿到駕照的過(guò)程(流程圖)2.5.1任務(wù)目標(biāo)通過(guò)流程圖,顯示獲得駕照的過(guò)程。如果要按期拿到駕照需要通過(guò)科目一、科目二、科目三、科目四每次最多5次機(jī)會(huì)。2.5.2知識(shí)儲(chǔ)備1.算法的概念為解決一個(gè)問(wèn)題而采取的方法和步驟稱(chēng)為算法。2.算法的特征(1)有窮性:算法的步驟是有限的。(2)確定性:算法中的每一個(gè)步驟都應(yīng)當(dāng)是確定的,不能產(chǎn)生歧義。(3)可行性:算法的每一步必須是切實(shí)可行的。(4)有輸入:有0個(gè)或者多個(gè)輸入。(5)有輸出:有1個(gè)或者多個(gè)輸出。3.算法的表示1.用自然語(yǔ)言表示算法(標(biāo)號(hào)有沒(méi)有問(wèn)題?)算法可以用自然語(yǔ)言來(lái)描述,自然語(yǔ)言就是人們?nèi)粘J褂玫恼Z(yǔ)言,可以是漢語(yǔ)、英語(yǔ)或者其他各種語(yǔ)言,其優(yōu)點(diǎn)在用表示的算法通俗易懂,便于理解,但是缺點(diǎn)在于文字冗長(zhǎng),容易產(chǎn)生歧義,特別是在表達(dá)條件判斷和循環(huán)算法時(shí),很難表述清楚。2.用流程圖表示算法流程圖是流經(jīng)一個(gè)系統(tǒng)的信息流、觀點(diǎn)流或部件流的圖形代表。程序流程圖表示程序中的操作順序。程序流程圖包括:指明實(shí)際處理操作的處理符號(hào),它包括根據(jù)邏輯條件確定要執(zhí)行的路徑的符號(hào);指明控制流的流線符號(hào);便于讀寫(xiě)程序流程圖的特殊符號(hào)3.用N-S圖表示算法4.用偽代碼表示算法偽代碼是自然語(yǔ)言和類(lèi)編程語(yǔ)言組成的混合結(jié)構(gòu)。5.三種基本結(jié)構(gòu)在C語(yǔ)言中有三種基本結(jié)構(gòu),分別為順序結(jié)構(gòu),如圖2-5-2所示。選擇結(jié)構(gòu)如圖2-5-3所示。循環(huán)結(jié)構(gòu)體如圖2-5-4所示。圖2-20順序結(jié)構(gòu)圖2-21選擇結(jié)構(gòu)圖2-22循環(huán)結(jié)構(gòu)2.5.3典型案例典型案例1:大客車(chē)駕駛員的工資等級(jí)分為四級(jí),連續(xù)10年無(wú)事故為一級(jí),滿8年無(wú)事故為二級(jí),滿5五年無(wú)事故為三級(jí),其余為四級(jí)。輸入駕駛員的無(wú)事故年限,輸出等級(jí),請(qǐng)畫(huà)出流程圖算法分析:1.確定判斷條件2.根據(jù)題目?jī)?nèi)容畫(huà)出流程圖流程圖:圖2-23典型案例1的流程圖典型案例2:B企業(yè)有120人,目前需要所有人從B企業(yè)到A場(chǎng)去參觀,只有一輛大客車(chē)可容納的人數(shù)為32人,運(yùn)用流程圖畫(huà)出一輛大客車(chē)運(yùn)送人員的過(guò)程,畫(huà)出流程圖算法分析:1.確定循環(huán)條件:把所有人的送完為止2.根據(jù)題目要求畫(huà)出流程圖2.5.4任務(wù)分析與實(shí)踐算法分析1.將任務(wù)進(jìn)行拆分2.該任務(wù)要求每次任務(wù)可以進(jìn)行5次考試,即用到循環(huán)語(yǔ)句3.通過(guò)前一個(gè)科目才能進(jìn)行下一個(gè),用到判斷語(yǔ)句流程圖:2.5.5鞏固練習(xí)一、選擇題1.執(zhí)行如圖2-5-8所示的程序框圖,則輸出s的值為()A.3/4B.5/6C.11/12D.25/24圖2-5-8選擇題1流程圖2.根據(jù)如圖2-5-9流程圖,當(dāng)輸入x為6時(shí),輸出的y=()圖2-5-9選題題2流程圖A.1B.2C.5D.103.閱讀如圖2-5-10所示的程序圖,運(yùn)行相應(yīng)的程序,則輸出i的值為()圖2-5-10選擇題3流程圖A.2B.3C.4D.54.執(zhí)行如圖2-5-10所示的程序圖,若輸出k的值為8,則判斷框圖可填入的條件是()圖2-5-10選擇題4流程圖A. S<=3/4B.S<=5/6C.S<=11/12D.S<=25/245.執(zhí)行如圖2-5-11所示的程序框圖,若輸入的x,y∈R,那么輸出的S的最大值為()圖2-5-11選擇題5流程圖A.0B.1C.2D.36.執(zhí)行如圖2-5-12所示的程序框圖,如果輸入的t∈[﹣2,2],則輸出的s屬于()圖2-5-12選擇題6流程圖A. [-6,-2]B.[-5,-1]C.[-4,5]D.[-3,6]二.畫(huà)流程圖1.有一位學(xué)生目前需要從學(xué)校到蘇州火車(chē)站,過(guò)程為宿舍、四號(hào)支線地鐵站、蘇州火車(chē)站。請(qǐng)用流程圖畫(huà)出來(lái)。2.有一位同學(xué)目前需要從學(xué)校到蘇州火車(chē)站,當(dāng)他從宿舍開(kāi)始時(shí),可以選擇打車(chē),也可以四號(hào)支線地鐵站、蘇州火車(chē)站。請(qǐng)用流程圖畫(huà)出它可能的過(guò)程。3.從鍵盤(pán)輸入兩個(gè)數(shù)據(jù)A,B,交換后輸出。(程序)當(dāng)A>B的時(shí)候不交換,否則交換(流程圖)課題項(xiàng)目三任務(wù)1新能源汽車(chē)電池組的選擇(單分支)課型講練授課班級(jí)授課時(shí)數(shù)1教學(xué)目標(biāo)靈活運(yùn)用關(guān)系及邏輯運(yùn)算符;if語(yǔ)句的單分支語(yǔ)法結(jié)構(gòu)教學(xué)重點(diǎn)if語(yǔ)句的具體應(yīng)用。教學(xué)難點(diǎn)關(guān)系運(yùn)算符和邏輯運(yùn)算符具體運(yùn)用。學(xué)情分析對(duì)于C語(yǔ)言語(yǔ)法知識(shí)的講解,容易理解,重點(diǎn)在于培養(yǎng)學(xué)生良好的編程習(xí)慣及編程規(guī)范,其二是培養(yǎng)學(xué)生的探究式自學(xué)能力,調(diào)試程序的能力。因而重點(diǎn)是語(yǔ)法知識(shí)的掌握,逐步過(guò)渡到培養(yǎng)學(xué)生良好的編程習(xí)慣及編程規(guī)范。教學(xué)效果教后記項(xiàng)目三任務(wù)1新能源汽車(chē)電池組的選擇(單分支)3.1.1任務(wù)目標(biāo)通過(guò)鍵盤(pán)輸入新能源汽車(chē)的電池型號(hào),如果輸入1則輸出使用鉛酸電池。(變量:電池型號(hào)batterytype)任務(wù)目標(biāo)運(yùn)行截圖如圖3-1-1所示:圖3-1-1任務(wù)目標(biāo)截圖3.1.2知識(shí)儲(chǔ)備在日常生活中,總會(huì)出現(xiàn)根據(jù)條件來(lái)判定結(jié)果的情況。在程序中,我們將這種情況采用選擇結(jié)構(gòu)。if語(yǔ)句的格式格式:if(條件)語(yǔ)句組1;[else語(yǔ)句組2;]說(shuō)明:[]格式代表可有可無(wú),在實(shí)際使用[]中的內(nèi)容也可以不寫(xiě)。C語(yǔ)言的選擇結(jié)構(gòu)是通過(guò)條件判斷語(yǔ)句來(lái)實(shí)現(xiàn)的,模塊化的結(jié)構(gòu)便于閱讀、調(diào)試和修改。選擇結(jié)構(gòu)有兩種方式來(lái)實(shí)現(xiàn):由if語(yǔ)句來(lái)實(shí)現(xiàn)的兩分支語(yǔ)句;由switch語(yǔ)句來(lái)實(shí)現(xiàn)的多分支語(yǔ)句。在選擇結(jié)構(gòu)中要對(duì)條件判斷表達(dá)式進(jìn)行判斷,根據(jù)判斷的結(jié)果決定選擇哪一個(gè)分支路徑,條件判斷表達(dá)式大多情況下是由關(guān)系表達(dá)式或者邏輯表達(dá)式構(gòu)成。選擇結(jié)構(gòu)的三種流程圖如圖3-1-2所示,其中(1)為單分支結(jié)構(gòu),(2)為雙分支結(jié)構(gòu),(3)為多分支結(jié)構(gòu)。圖3-1-2選擇結(jié)構(gòu)的三種流程圖1.關(guān)系運(yùn)算符及優(yōu)先順序關(guān)系運(yùn)算符:<、<=、>、>=、==、!=,分別稱(chēng)之為:小于、小于等于、大于、大于等于、等于、不等于。關(guān)系運(yùn)算符,關(guān)系表達(dá)式等的說(shuō)明如表3-1-1所示:表3-1-1關(guān)系運(yùn)算符等的說(shuō)明名稱(chēng)說(shuō)明關(guān)系運(yùn)算符系統(tǒng)提供了六種關(guān)系運(yùn)算符<:小于雙目運(yùn)算符優(yōu)先級(jí)第6級(jí)<=:小于等于雙目運(yùn)算符同上>:大于雙目運(yùn)算符同上>=:大于等于雙目運(yùn)算符同上==:等于雙目運(yùn)算符優(yōu)先級(jí)第7級(jí)!=:不等于雙目運(yùn)算符同上關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來(lái)的式子,稱(chēng)關(guān)系表達(dá)式。例如:3>2、x+y>x+z、x>y==z、z=x>y、'c'<'d'等都是關(guān)系表達(dá)式。關(guān)系表達(dá)式的值是一個(gè)邏輯值,即“真”或“假”。若關(guān)系成立,為“真”,值為“1”;若關(guān)系不成立,為“假”,值為“0”。邏輯運(yùn)算符及優(yōu)先級(jí)C語(yǔ)言主要提供邏輯與、邏輯或、邏輯非三種邏輯運(yùn)算符,具體的使用和說(shuō)明如表3-1-2所示:表3-1-2邏輯運(yùn)算符說(shuō)明名稱(chēng)說(shuō)明邏輯運(yùn)算符C語(yǔ)言提供3種邏輯運(yùn)算符:“!”:邏輯非,是單目運(yùn)算符,優(yōu)先級(jí)是2。例如:!3“&&”:邏輯與,是雙目運(yùn)算符,優(yōu)先級(jí)是11。例如:0&&1“||”:邏輯或,是雙目運(yùn)算符,優(yōu)先級(jí)是12。例如:'a'||'b'邏輯表達(dá)式用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量(0、1)連接起來(lái)的式子就是邏輯表達(dá)式。例如:a>b&&x>y、0&&1、2||9&&0、4-!3&&'c'、'a'||'b'、3.5&&4.8等都是邏輯表達(dá)式。邏輯表達(dá)式的值邏輯表達(dá)式的值也是一個(gè)邏輯值,即“真”或“假”。為“真”,值為“1”;為“假”,值為“0”。當(dāng)運(yùn)算對(duì)象取不同的邏輯值時(shí),邏輯運(yùn)算真值表如表3-2所示。ab!a!ba&&ba||b110011100101011001001100運(yùn)算符的優(yōu)先級(jí)C語(yǔ)言中,運(yùn)算符的運(yùn)算優(yōu)先級(jí)共分為15級(jí)。1級(jí)最高,15級(jí)最低。在表達(dá)式中,優(yōu)先級(jí)較高的先于優(yōu)先級(jí)較低的進(jìn)行運(yùn)算。在一個(gè)表達(dá)式中可能包含多種不同數(shù)據(jù)類(lèi)型的數(shù)據(jù)及運(yùn)算符,不同的運(yùn)算順序可能得出不同結(jié)果甚至出現(xiàn)錯(cuò)誤運(yùn)算錯(cuò)誤,必須按一定順序進(jìn)行結(jié)合,才能保證運(yùn)算的合理性以及結(jié)果的正確性、唯一性。當(dāng)一個(gè)運(yùn)算量?jī)蓚?cè)的運(yùn)算符優(yōu)先級(jí)相同時(shí),按運(yùn)算符的結(jié)合性所規(guī)定的結(jié)合方向處理,C語(yǔ)言中各運(yùn)算符的結(jié)合性分為兩種,即左結(jié)合性(自左至右)和右結(jié)合性(自右至左)。在程序中,運(yùn)算符的優(yōu)先級(jí)如圖3-1-3所示:圖3-1-3運(yùn)算符的優(yōu)先級(jí)if單分支語(yǔ)句格式在選擇結(jié)構(gòu)中,一般我們把滿足條件后執(zhí)行一種結(jié)果,沒(méi)有else的選擇結(jié)構(gòu)叫做單分支語(yǔ)句。單分支語(yǔ)句格式:if(表達(dá)式){語(yǔ)句1;語(yǔ)句2;…}單分支語(yǔ)句流程圖:根據(jù)單分支的程序,流程圖如圖3-1-4所示,其中if單分支流程圖(1)與N-S流程圖(2)圖3-1-4單分支流程圖小貼士:這種自左至右的結(jié)合方向就稱(chēng)為小貼士:這種自左至右的結(jié)合方向就稱(chēng)為“左結(jié)合性”。而自右至左的結(jié)合方向稱(chēng)為“右結(jié)合性”。C語(yǔ)言運(yùn)算符中有不少為右結(jié)合性,應(yīng)注意區(qū)別,以避免理解錯(cuò)誤。示例1:求關(guān)系表達(dá)式的值。1#include<stdio.h>2voidmain()3{4intx=1,y=2,z=3;5printf("%d\n",3>2);6printf("%d\n",2>3);7printf("%d\n",x+y>x+z);8printf("%d\n",x>y==z);9printf("%d\n",z=x>y);10printf("%d\n",'c'<'d');11}運(yùn)行截圖:圖3-1-5示例1運(yùn)行截圖解析:本例題為關(guān)系表達(dá)式的應(yīng)用,第一個(gè)輸出語(yǔ)句為求3>2的值,關(guān)系表達(dá)式運(yùn)算結(jié)果為真或假,真為1,假為0,3>2成立結(jié)果為真,即為1;第二個(gè)輸出語(yǔ)句求2>3的值,2>3不成立,結(jié)果為假,即為0;第三個(gè)輸出語(yǔ)句中算術(shù)運(yùn)算符+的優(yōu)先級(jí)高于關(guān)系運(yùn)算符>,先算加法,再比較大小,先求得x+y=1+2=3,x+z=1+3=4,再得到3>4的運(yùn)算結(jié)果為假,即為0;第四個(gè)輸出語(yǔ)句中關(guān)系運(yùn)算符>優(yōu)先級(jí)高于關(guān)系運(yùn)算符==的優(yōu)先級(jí),先計(jì)算x>y也就是1>2,結(jié)果為假,即為0,再比較0==3,結(jié)果為假,即為0;第五個(gè)輸出語(yǔ)句中關(guān)系運(yùn)算符優(yōu)先級(jí)高于賦值運(yùn)算符,先比較x>y,也就是1>2,結(jié)果為假,即為0,再將0賦值給z,輸出z的值為0;第六個(gè)輸出語(yǔ)句為比較兩個(gè)字符’c’和’d’,c的ASCⅡ碼值小于d的ASCⅡ碼值,結(jié)果為真,即為1。示例2:求邏輯表達(dá)式的值。程序代碼:1#include<stdio.h>2voidmain()3{4intx=1,y=2,a=1,b=2,c=3,d=4,m=1,n=1;//定義整型變量5printf("%d\n",0&&x||y);//輸出邏輯表達(dá)式的值6printf("%d\n",2||9&&0);7printf("%d\n",4-!3&&'c');8printf("%d,%d,%d\n",(m=a>b)&&(n=c>d),m,n);9printf("%d,%d,%d\n",(m=d>c)||(n=c>d),m,n);10}運(yùn)行結(jié)果:

圖3-1-6示例2運(yùn)行截圖解析:本例題為邏輯表達(dá)式的應(yīng)用,第一個(gè)輸出語(yǔ)句根據(jù)邏輯運(yùn)算符&&優(yōu)先級(jí)高于||,先進(jìn)行0&&x(x值為1),結(jié)果為0,再進(jìn)行0||y(y值為2,非零值),結(jié)果為1;第二個(gè)輸出語(yǔ)句的求解過(guò)程同上;第三個(gè)輸出語(yǔ)句中邏輯非!的優(yōu)先級(jí)最高,先進(jìn)行求解!3,結(jié)果為0,再進(jìn)行算術(shù)運(yùn)算符的求解4-0,結(jié)果為4,最后4&&‘c’,兩個(gè)非零值進(jìn)行邏輯與,結(jié)果為1;第四個(gè)輸出語(yǔ)句中按照從左到右的次序輸出,先進(jìn)行關(guān)系運(yùn)算a>b,將結(jié)果0賦值給m,但是由于0&&任意值均為0,所以后面部分不用再進(jìn)行計(jì)算,直接輸出表達(dá)式的值,所以表達(dá)式為0,m的值為0,n的值沒(méi)有計(jì)算保持原始數(shù)據(jù)1,因此輸出結(jié)果為0,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論