教學(xué)課件·C語(yǔ)言程序設(shè)計(jì)教程_第1頁(yè)
教學(xué)課件·C語(yǔ)言程序設(shè)計(jì)教程_第2頁(yè)
教學(xué)課件·C語(yǔ)言程序設(shè)計(jì)教程_第3頁(yè)
教學(xué)課件·C語(yǔ)言程序設(shè)計(jì)教程_第4頁(yè)
教學(xué)課件·C語(yǔ)言程序設(shè)計(jì)教程_第5頁(yè)
已閱讀5頁(yè),還剩514頁(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)介

1、學(xué)時(shí)安排總學(xué)時(shí):64學(xué)時(shí)周學(xué)時(shí):4學(xué)時(shí)理論教學(xué):32學(xué)時(shí)實(shí)踐教學(xué):32學(xué)時(shí)課程類型:必修課(期中、期末均上機(jī)考試)平時(shí):期中:期末40:20:40注意:每曠課一次從成績(jī)中扣除6分,每遲到或早退一次從成績(jī)中扣除3分C語(yǔ)言的學(xué)習(xí)內(nèi)容C語(yǔ)言的學(xué)習(xí)內(nèi)容專業(yè)技能(學(xué)什么知識(shí))基礎(chǔ)語(yǔ)法知識(shí)、三大程序設(shè)計(jì)結(jié)構(gòu)、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體、文件相關(guān)內(nèi)容以項(xiàng)目驅(qū)動(dòng)形式組織學(xué)習(xí)過(guò)程職業(yè)能力(掌握什么與職業(yè)相關(guān)的能力)理解簡(jiǎn)單算法的編程思想并用C語(yǔ)言實(shí)現(xiàn)之熟練掌握在VC環(huán)境下調(diào)試程序的能力養(yǎng)成良好的編程習(xí)慣和編程風(fēng)格培養(yǎng)一定的團(tuán)隊(duì)協(xié)作及溝通能力怎樣學(xué)習(xí)C語(yǔ)言怎樣學(xué)習(xí)C語(yǔ)言 讀、仿、改、編四字訣多讀關(guān)鍵:理解程序思路模

2、仿關(guān)鍵:復(fù)制程序思路改寫關(guān)鍵:不改變程序思路,只改變思路中的某個(gè)具體步驟編寫關(guān)鍵:重組思路,創(chuàng)造新的產(chǎn)品通過(guò)小組合作,共同學(xué)習(xí),多和別人交流,這樣才能碰撞出思想的火花來(lái)態(tài)度決定一切,增強(qiáng)信心,努力會(huì)使一切成為現(xiàn)實(shí)怎樣學(xué)習(xí)C語(yǔ)言怎樣學(xué)習(xí)C語(yǔ)言多讀大量閱讀別人寫的程序,代碼量由小到大,初學(xué)時(shí)讀簡(jiǎn)單的程序,慢慢過(guò)渡到讀一些經(jīng)典的算法程序。關(guān)鍵是要邊讀邊理解別人解決問(wèn)題的思路,并記住這種思路。模仿讀完別人的程序后,模仿著寫出同樣的程序。在模仿的過(guò)程中也是要根據(jù)你讀程序時(shí)理解到的思路來(lái)寫程序。怎樣學(xué)習(xí)C語(yǔ)言怎樣學(xué)習(xí)C語(yǔ)言改寫能夠比較熟練地模仿后,就可以自問(wèn)自答,“如果要加一個(gè)什么功能,我應(yīng)該怎么去編寫程

3、序?”、“如果要實(shí)現(xiàn)那個(gè)功能,應(yīng)該怎么做?”等,寫完后進(jìn)行調(diào)試。編寫根據(jù)所掌握的一些常見編程思路,獨(dú)立編寫簡(jiǎn)單的程序,或者將幾個(gè)簡(jiǎn)單的功能通過(guò)某種方法組合到一個(gè)程序中。不斷地訓(xùn)練這種能力,就能夠?qū)懗鲈絹?lái)越復(fù)雜的程序了。編程環(huán)境Visual C+ 6.0Visual C+ 6.0環(huán)境使用演示創(chuàng)建工作區(qū)創(chuàng)建項(xiàng)目創(chuàng)建.c源文件編輯源代碼,并保存編譯鏈接執(zhí)行演示項(xiàng)目演示項(xiàng)目一在屏幕上顯示“你好,歡迎使用Visual C+ 6.0”字樣。/*本程序?qū)⒃谄聊簧巷@示“你好,歡迎使用Visual C+ 6.0”字樣*/#include main( )printf(“你好,歡迎使用Visual C+ 6.0n”

4、);演示項(xiàng)目演示項(xiàng)目詳解在屏幕上顯示“你好,歡迎使用Visual C+ 6.0”字樣。/*本程序?qū)⒃谄聊簧巷@示“你好,歡迎使用Visual C+ 6.0”字樣*/#include main( )printf(“你好,歡迎使用Visual C+ 6.0n”);程序注釋(/*/是段注釋,/是行注釋)預(yù)編譯語(yǔ)句,包含stdio.h文件到程序中函數(shù)首部。main是主函數(shù),每個(gè)C程序有且只能有一個(gè)main函數(shù):函數(shù)代碼的起始處:函數(shù)代碼的結(jié)束處printf:系統(tǒng)提供的輸出函數(shù)演示項(xiàng)目演示項(xiàng)目一詳解程序架構(gòu)/*程序注釋*/#include 預(yù)編譯語(yǔ)句main( )主函數(shù)頭左括號(hào)一條或多條語(yǔ)句;右括號(hào)演示項(xiàng)

5、目演示項(xiàng)目詳解printf函數(shù)講解printf(“你好,歡迎使用Visual C+ 6.0n”);函數(shù)名雙引號(hào)內(nèi)是想要輸出的文字n是要輸出換行符,即換行語(yǔ)句末尾必須要有分號(hào)結(jié)束printf的使用格式為:printf(“想要輸出的文字及換行符”);演示項(xiàng)目從鍵盤上輸入兩個(gè)整數(shù),計(jì)算并輸出它們的乘積。/*本程序?qū)逆I盤上輸入兩個(gè)整數(shù),計(jì)算并輸出它們的乘積*/#include main( )int x, y, fac; printf(“請(qǐng)輸入兩個(gè)整數(shù):”);scanf(“%d%d”, &x, &y);fac = x * y;printf(“兩個(gè)數(shù)的積 %d * %d = %dn”, x, y, fa

6、c);:函數(shù)代碼的結(jié)束處:函數(shù)代碼的開始處注釋預(yù)編譯語(yǔ)句主函數(shù)頭部語(yǔ)句項(xiàng)目實(shí)踐1、在屏幕上輸出”hello, neusoft!”字樣。2、在屏幕上輸出如下的圖形: 3、在屏幕上列出自己的以下信息:姓名:NNN專業(yè):MMMMM班級(jí):CCCCC住址:AAAAAAAAAAA4、想個(gè)辦法,用printf語(yǔ)句,在屏幕上拼出一個(gè)簡(jiǎn)單的字符圖形。課后項(xiàng)目完成VC6.0的環(huán)境安裝將課堂練習(xí)編寫的程序輸入到計(jì)算機(jī)中,編譯、鏈接、執(zhí)行,觀察結(jié)果是否符合要求。C語(yǔ)言的應(yīng)用范圍C語(yǔ)言UNIX操作系統(tǒng)動(dòng)畫制作軟件中的腳本嵌入式系統(tǒng)計(jì)算機(jī)游戲機(jī)器人工廠電影特效計(jì)算機(jī)語(yǔ)言開發(fā)硬件驅(qū)動(dòng)程序2008年在51job上對(duì)北京、上海

7、、大連三地各IT公司進(jìn)行的調(diào)查數(shù)據(jù)2008年10月TIOBE編程語(yǔ)言排行榜發(fā)布,前三甲依然被Java、C和C+占據(jù),占比分別為20.949%、15.565%、10.954%. 整型數(shù)據(jù)輸入輸出目錄回顧計(jì)算器項(xiàng)目簡(jiǎn)介數(shù)據(jù)類型介紹變量定義和使用輸出變量的值輸入變量的值項(xiàng)目小結(jié)課后項(xiàng)目回顧VC的使用C程序的基本架構(gòu)printf函數(shù)的簡(jiǎn)單使用計(jì)算器項(xiàng)目簡(jiǎn)介項(xiàng)目名稱:計(jì)算器項(xiàng)目項(xiàng)目簡(jiǎn)介:使用C語(yǔ)言,編寫一個(gè)字符界面的計(jì)算器程序,包括加、減、乘、除等基本的算術(shù)運(yùn)算。后期還需要加上累加、階乘等運(yùn)算。本項(xiàng)目涉及的的C語(yǔ)言知識(shí)數(shù)據(jù)類型變量定義和引用變量值的輸出變量值的輸入無(wú)參無(wú)返回值的函數(shù)分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)數(shù)據(jù)

8、類型C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void定義類型typedef字符類型char枚舉類型enum整 型實(shí)型單精度型float雙精度型double數(shù)組結(jié)構(gòu)體struct共用體union短整型short長(zhǎng)整型long整型int數(shù)據(jù)類型C語(yǔ)言的數(shù)據(jù)類型的常量表示整型:-999 10000 0 55浮點(diǎn)型:1.53.141597.84210. .25 字符型:A B X m t 3 7 # ,*n 0 t b變量定義和使用變量:程序執(zhí)行過(guò)程中,存儲(chǔ)會(huì)改變值的標(biāo)識(shí)符,稱為變量。標(biāo)識(shí)符的命名規(guī)則:標(biāo)識(shí)符僅由大小寫英文字母、數(shù)字字符和下劃線組合而成。數(shù)字不允許放在標(biāo)識(shí)符的首位。系統(tǒng)提供的關(guān)鍵字不能

9、作為標(biāo)識(shí)符。標(biāo)識(shí)符練習(xí):合法的標(biāo)識(shí)符:num x2 time_for_exec _minid Double For不合法的標(biāo)識(shí)符:2m ttime.xy abcert int for float double 變量定義和使用變量定義單變量定義格式:數(shù)據(jù)類型變量名;多變量定義格式:數(shù)據(jù)類型變量名1, 變量名2,變量名3;注意:多個(gè)變量名之間用逗號(hào)隔開。 幾種常用的基本數(shù)據(jù)類型的關(guān)鍵字:整型:int長(zhǎng)整型:long單精度浮點(diǎn)型:float雙精度浮點(diǎn)型:double字符型:char變量定義和使用變量定義整型變量定義:int a;/定義了一個(gè)整型變量aint num1, num2;/定義了兩個(gè)整型變量

10、num1, num2單精度浮點(diǎn)型變量定義:float fNumber;/定義了一個(gè)單精度浮點(diǎn)型變量float x, y, t, k; /定義了四個(gè)單精度浮點(diǎn)型變量 字符型變量定義:char cx; /定義了一個(gè)字符型變量char m , n ,zck; /定義了三個(gè)字符型變量變量定義和使用變量定義練習(xí)定義兩個(gè)雙精度浮點(diǎn)型變量,變量名請(qǐng)自定定義三個(gè)長(zhǎng)整型變量,變量名自定定義兩個(gè)單精度浮點(diǎn)型變量hight和weight分別表示一個(gè)人的身高和體重變量定義和使用變量初始化和賦值初始化:在定義變量的同時(shí),給變量賦相應(yīng)的值。int s_c = 77; /定義了整型變量s_c,并賦初始值77相當(dāng)于以下兩步操

11、作:int s_c;s_c = 77; / = 代表賦值,并非數(shù)學(xué)上的“相等”變量初始化練習(xí):修改前面的各個(gè)變量定義,對(duì)其初始化相應(yīng)的值。演示項(xiàng)目/*本程序在屏幕上顯示兩個(gè)變量的值*/#include main( )float hight=172.7, weight=70.4; /定義變量并初始化printf(“您好:n”); /輸出固定的字符串printf(“您的身高是:%fn”, hight);/輸出變量hight的值printf(“您的體重是:%fn”, weight); /輸出變量weith的值/printf(“ %f , %f n “, hight, weight);/一次將兩個(gè)變量

12、的值輸出演示項(xiàng)目演示項(xiàng)目詳解使用printf函數(shù)輸出變量的值格式:printf(“ %f , %f n “, hight, weight);要輸出變量值的地方用“格式修飾符”占住位置,不同變量需要使用不一樣的格式修飾符除格式修飾符外的普通字符原樣輸出轉(zhuǎn)義字符按照轉(zhuǎn)義字符的真實(shí)意義輸出“”后面的變量表用于將變量的值替換對(duì)應(yīng)的格式修飾符。演示項(xiàng)目演示項(xiàng)目詳解幾種基本數(shù)據(jù)類型對(duì)應(yīng)的格式修飾符整型:%d長(zhǎng)整型:%ld單精度浮點(diǎn)型:%f雙精度浮點(diǎn)型:%lf字符型:%c演示項(xiàng)目定義兩個(gè)整型變量s_c, s_math,分別代表C語(yǔ)言和數(shù)學(xué)成績(jī),然后將其值顯示在屏幕上。/*本程序在屏幕上顯示兩個(gè)變量的值*/#

13、include main( )int s_c, s_math; /定義變量s_c=76;s_math=98;printf(“your c score is:%dnyour math score is: %dn”, s_c , s_math);/一次將兩個(gè)成績(jī)輸出演示項(xiàng)目定義單精度浮點(diǎn)型變量hight和weight,代表身高和體重,從鍵盤上輸入身高和體重,然后將其值顯示在屏幕上。/*本程序從鍵盤上輸入兩個(gè)變量的值,然后顯示兩個(gè)變量的值*/#include main( )float hight, weight; /定義變量scanf(“%f%f”, &hight, &weight); /輸入兩個(gè)值

14、到變量中去printf(“您好:n”); /輸出固定的字符串printf(“您的身高是:%fn”, hight);/輸出變量hight的值printf(“您的體重是:%fn”, weight); /輸出變量weith的值/printf(“ %f , %f n “, hight, weight);/一次將兩個(gè)變量的值輸出演示項(xiàng)目演示項(xiàng)目詳解使用printf函數(shù)輸出變量的值格式:scanf(“ %f %f “, &hight, &weight);要輸入變量值的地方用“格式修飾符”占住位置,不同變量需要使用不一樣的格式修飾符“”后面的變量地址表用于將變量的值保存起來(lái)。演示項(xiàng)目定義兩個(gè)整型變量s_c,

15、 s_math,分別代表C語(yǔ)言和數(shù)學(xué)成績(jī),從鍵盤上輸入這兩門成績(jī),然后將其值顯示在屏幕上。/*本程序在屏幕上顯示兩個(gè)變量的值*/#include main( )int s_c, s_math; /定義變量scanf(“%d %d”, &s_c, &s_math ); /輸入兩門成績(jī)printf(“your c score is:%dnyour math score is: %dn”, s_c , s_math);/一次將兩個(gè)成績(jī)輸出項(xiàng)目實(shí)踐實(shí)踐:編寫符合下列要求的C程序1:定義一個(gè)整型變量age代表年齡,從鍵盤上輸入一個(gè)年齡值,然后將其顯示在屏幕上。2:定義一個(gè)雙精度變量radius代表圓的半

16、徑,從鍵盤上輸入一個(gè)半徑,然后將其顯示在屏幕上。3:定義一個(gè)長(zhǎng)整型變量length代表距離,從鍵盤上輸入大連到東京的距離,然后將其顯示在屏幕上。4:定義兩個(gè)字符變量cUpper和cLower分別代表大寫和小寫字母,從鍵盤上分別輸入一個(gè)大寫和小寫字母存儲(chǔ)到這兩個(gè)變量中,然后將它們輸出到屏幕上。教師提示:兩個(gè)字符的分隔字符輸入輸出的其它形式(getchar、putchar等)項(xiàng)目小結(jié)小結(jié)本項(xiàng)目的知識(shí)點(diǎn)及技能要求1:掌握基本數(shù)據(jù)類型及其變量的定義2:掌握基本數(shù)據(jù)類型對(duì)應(yīng)的關(guān)鍵字和格式修飾符3:熟悉VC6.0的簡(jiǎn)單使用4:掌握printf語(yǔ)句的靈活使用評(píng)價(jià)總結(jié)項(xiàng)目完成質(zhì)量及情況課后項(xiàng)目編寫程序達(dá)到以下

17、要求:1、定義兩個(gè)整型變量a和b,從鍵盤上輸入它們的值,并將其值顯示在屏幕上。2、定義兩個(gè)單精度浮點(diǎn)型變量m和n,從鍵盤上輸入它們的值,試著計(jì)算它們的和(sum)、差(diff)、積(multi)、商(div),然后并將結(jié)果顯示在屏幕上。運(yùn)算符目錄回顧運(yùn)算符總覽算術(shù)運(yùn)算符賦值運(yùn)算符類型轉(zhuǎn)換自加/自減運(yùn)算符關(guān)系運(yùn)算符邏輯運(yùn)算符項(xiàng)目小結(jié)課后項(xiàng)目回顧變量的定義和引用printf函數(shù)的靈活使用scanf函數(shù)的靈活使用項(xiàng)目導(dǎo)引問(wèn)題:要計(jì)算兩個(gè)數(shù)的和、差、積、商,該怎么編寫程序?qū)崿F(xiàn)?答案:需要使用C提供的算術(shù)運(yùn)算符和賦值運(yùn)算符。運(yùn)算符總覽C運(yùn)算符算術(shù)運(yùn)算符:(+ - * / % + -)關(guān)系運(yùn)算符:( =

18、 !=)邏輯運(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)算符總覽學(xué)習(xí)運(yùn)算符應(yīng)注意的問(wèn)題:運(yùn)算符的功能運(yùn)算符的運(yùn)算規(guī)則運(yùn)算符的優(yōu)先級(jí)運(yùn)算數(shù)的個(gè)數(shù)結(jié)合方向運(yùn)算結(jié)果的數(shù)據(jù)類型算術(shù)運(yùn)算符、/、%均是兩個(gè)運(yùn)算數(shù),自左向右結(jié)合注意:/:整數(shù)/整數(shù)結(jié)果為整數(shù),其余情況下為浮點(diǎn)數(shù)。例: 5/3結(jié)果為1,2/5結(jié)果為012/5結(jié)果為25.0/3結(jié)果為1.666667 2/5.0結(jié)果為0.40000012.0/5.

19、0結(jié)果為2.400000%:求余運(yùn)算左右兩邊的運(yùn)算數(shù)均只能是整數(shù)例:7%4結(jié)果為38%4結(jié)果為07%5結(jié)果為27.2%3錯(cuò)誤算術(shù)運(yùn)算符是賦值運(yùn)算符賦值運(yùn)算符的含義:將賦值運(yùn)算符右邊表達(dá)式的值送到左邊變量名所代表的存儲(chǔ)單元中。如:a=b+1; x=x+1; 求值規(guī)則:賦值表達(dá)式的值就是賦值號(hào)右邊表達(dá)式的值,如:a=(b=3*2)+1; 優(yōu)先級(jí):14 賦值運(yùn)算符的優(yōu)先級(jí)小于算術(shù)運(yùn)算符,如:a=b+1;結(jié)合性:賦值運(yùn)算符的結(jié)合性是自右至左,如:int a,b=2; a=b=3;運(yùn)算符實(shí)踐編寫程序:從定義兩個(gè)變量,從鍵盤輸入它們的值,然后分別計(jì)算其和、差、積、商及余數(shù),并輸出結(jié)果。#include m

20、ain( )float a,b;/兩個(gè)變量float sum, diff, multi, div, res; /各種計(jì)算值scanf(“%f%f”, &a, &b);/輸入a,b的值sum = a + b;/求和diff = a b;/求差multi = a * b;/求積div = a / b;/求商res = (int) a % (int) b;/求余數(shù)。(int)這是什么玩意?/輸出結(jié)果(自己用printf函數(shù)試試)強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換是要把某種類型的數(shù)據(jù)轉(zhuǎn)換為其他類型格式(要轉(zhuǎn)換成的類型)表達(dá)式例如:想把一個(gè)int類型的值轉(zhuǎn)換為float類型int x=7;x / 3 (結(jié)果為?)

21、(float) x / 3 (結(jié)果為?)(float) (x/3) (結(jié)果為?)隱式類型轉(zhuǎn)換隱式類型轉(zhuǎn)換是指系統(tǒng)根據(jù)運(yùn)算規(guī)則,自動(dòng)將某些數(shù)據(jù)類型轉(zhuǎn)換為其他類型的處理方式。隱式類型轉(zhuǎn)換由下面的轉(zhuǎn)換方向決定,隱式轉(zhuǎn)換只能由低等級(jí)轉(zhuǎn)換為高等級(jí)charintlongdoublefloat級(jí)別高級(jí)別低隱式類型轉(zhuǎn)換隱式類型轉(zhuǎn)換是指系統(tǒng)根據(jù)運(yùn)算規(guī)則,自動(dòng)將某些數(shù)據(jù)類型轉(zhuǎn)換為其他類型的處理方式。float f,g;int i, j; f=5/2; /f的值為2.000000i=3.5; /i的值為3g=f+i; /g的值為5.000000j=g/2; /j的值為2自加/自減運(yùn)算符:自加運(yùn)算符,每次給變量自增1

22、:自減運(yùn)算符,每次給變量自減1使用格式后綴用法:變量+ 或 變量前綴用法: +變量或變量例:int m=9, x, y;x=m+; (x為?m為?)y= +m; (x為?m為?)逗號(hào)運(yùn)算符語(yǔ)法: e1,e2,e3求值規(guī)則:從左至右依次計(jì)算各個(gè)表達(dá)式的值,最后一個(gè)表達(dá)式的值是整個(gè)逗號(hào)表達(dá)式的值優(yōu)先級(jí):15 最低結(jié)合性:左結(jié)合例1: 3+2,5-4,5*3例2:int i=2 ,j=5 ; j=(i =5,i +5,i *4);項(xiàng)目實(shí)踐按照要求完成以下程序:1、求一元二次方程 3.2X2+2.1X-8.4=0 兩個(gè)實(shí)根。2、求任意一元二次方程度兩個(gè)實(shí)根。關(guān)系運(yùn)算符、=、b (ab)=cb+cbf=

23、abc注意:C語(yǔ)言中連續(xù)比較可能會(huì)產(chǎn)生意想不到的結(jié)果如:974的結(jié)果為0邏輯運(yùn)算符&(與)、|(或)、!(非)運(yùn)算數(shù)分為兩類:0即是“假”,非0即是“真”運(yùn)算結(jié)果亦兩類:結(jié)果為真,用1表示;結(jié)果為假,用0表示運(yùn)算規(guī)則如下:aba&ba|b!a!b真真真真假假真假假真假真假真假真真假假假假假真真邏輯運(yùn)算符邏輯運(yùn)算符之間的優(yōu)先級(jí): !(最高) 、&(次之)、|(低)查看正面運(yùn)算的優(yōu)先級(jí),用括號(hào)標(biāo)識(shí)出來(lái)a=x & xb&xya=b|x=y!a|ab計(jì)算下列各式的值a=4;b=5;!aa&ba|b!a|b4&0|253&2|8b)&(n=cd)項(xiàng)目小結(jié)小結(jié)本項(xiàng)目的知識(shí)點(diǎn)及技能要求1:掌握基本運(yùn)算符2:

24、掌握簡(jiǎn)單程序編寫的方法評(píng)價(jià)總結(jié)項(xiàng)目完成質(zhì)量及情況課后項(xiàng)目編寫程序達(dá)到以下要求:1、編寫程序求任意半徑的圓的面積。2、定義一個(gè)身高變量hight和一個(gè)體重變量weight,從鍵盤上輸入hight的值,根據(jù)公式 體重(身高100)計(jì)算weight的值,然后輸出結(jié)果。順序結(jié)構(gòu)及無(wú)參無(wú)返回值函數(shù)目錄回顧順序結(jié)構(gòu)編程思路計(jì)算器項(xiàng)目功能實(shí)現(xiàn)無(wú)參無(wú)返回值函數(shù)實(shí)現(xiàn)計(jì)算器項(xiàng)目項(xiàng)目小結(jié)課后項(xiàng)目回顧常用的運(yùn)算符算術(shù)運(yùn)算自加/自減運(yùn)算符關(guān)系運(yùn)算符邏輯運(yùn)算符各運(yùn)算符的具體符號(hào)及運(yùn)算規(guī)則?順序結(jié)構(gòu)編程思想所有現(xiàn)實(shí)中的問(wèn)題通過(guò) 順序、選擇(分支)、循環(huán)三種基本程序結(jié)構(gòu)的不同組合,均可得到解決方案。順序結(jié)構(gòu):順序結(jié)構(gòu)程序設(shè)計(jì)

25、適合于只需要按照先后(從上到下)的順序來(lái)執(zhí)行語(yǔ)句,即可解決問(wèn)題的情形。順序結(jié)構(gòu)也是計(jì)算機(jī)編程中最基礎(chǔ)的編程結(jié)構(gòu)。順序結(jié)構(gòu)編程思想順序結(jié)構(gòu)編程的基本思想:按照解決問(wèn)題的先后順序,寫出每一步的語(yǔ)句。一個(gè)順序結(jié)構(gòu)的C程序的基本思路(四步曲)定義變量(非常簡(jiǎn)單的問(wèn)題也可能不需要定義變量)輸入某個(gè)(些)變量的值(也可能是用賦值語(yǔ)句直接賦值)計(jì)算其他變量的值輸出計(jì)算結(jié)果分析講解項(xiàng)目項(xiàng)目一 計(jì)算長(zhǎng)方形的面積和周長(zhǎng)項(xiàng)目構(gòu)思:從鍵盤上輸入長(zhǎng)方形的長(zhǎng)和寬,然后計(jì)算面積和周長(zhǎng),最后將結(jié)果輸出 項(xiàng)目設(shè)計(jì)(1)定義變量chang, kuang, mianji, zhouchang(2)輸入chang和kuang的值(3

26、)計(jì)算mianji和zhouchang的值(4)輸出mianji和zhouchang的值分析講解項(xiàng)目項(xiàng)目一 計(jì)算長(zhǎng)方形的面積和周長(zhǎng)項(xiàng)目實(shí)現(xiàn)/*計(jì)算長(zhǎng)方形的面積和周長(zhǎng)*/#include main( )double chang, kuang, mianji, zhouchang;printf(“請(qǐng)輸入長(zhǎng)和寬的值:”);scanf(“%lf %lf”, &chang, &kuang);mianji = chang * kuang;zhouchang = 2 * ( chang + kuang );printf(“面積為:%lfn周長(zhǎng)為:%lfn”, mianji, zhouchang);項(xiàng)目運(yùn)行輸

27、入長(zhǎng)寬分別為 55.5 20 試試分析講解項(xiàng)目項(xiàng)目二 溫度轉(zhuǎn)換項(xiàng)目構(gòu)思:從鍵盤上輸入一個(gè)攝氏溫度c,將它轉(zhuǎn)化為華氏溫度f(wàn)。轉(zhuǎn)化的公式為 f = 9(c+32)/5 。項(xiàng)目設(shè)計(jì)(1)定義變量c和f(2)輸入變量c的值(3)計(jì)算變量f的值(4)輸出結(jié)果分析講解項(xiàng)目項(xiàng)目二 溫度轉(zhuǎn)換項(xiàng)目實(shí)現(xiàn)/*由攝氏溫度轉(zhuǎn)化為華氏溫度*/#include main( )double c, f;printf(“請(qǐng)輸入一個(gè)攝氏溫度:”);scanf(“%lf”, &c);f = 9 * ( c + 32 ) / 5;printf(“轉(zhuǎn)換后的華氏溫度為:%lfn” , f);項(xiàng)目運(yùn)行輸入幾個(gè)攝氏溫度,并查看結(jié)果實(shí)踐項(xiàng)目 項(xiàng)

28、目三 簡(jiǎn)單計(jì)算器項(xiàng)目構(gòu)思:從鍵盤上輸入兩個(gè)整數(shù),分別計(jì)算它們的和、差、積、商、求余,并將結(jié)果輸出在屏幕上。項(xiàng)目設(shè)計(jì)(1)定義變量x, y, he, cha, ji, shang, yu(2)輸入x,y的值(3)計(jì)算和、差、積、商、余數(shù)(4)輸出結(jié)果實(shí)踐項(xiàng)目 項(xiàng)目實(shí)現(xiàn):#include main( )int x, y, he, cha, ji, shang, yu;printf(“請(qǐng)輸入兩個(gè)整數(shù):”);scanf(“%d%d”, &x, &y);he = x + y;cha = x y;ji = x * y ;shang = x / y;yu = x % y;printf(“he=%d, cha

29、=%d, ji=%dn”, he, cha, ji);printf(“shang=%d, yu=%dn”, shang, yu);項(xiàng)目運(yùn)行輸入幾組x,y查看結(jié)果分析講解項(xiàng)目項(xiàng)目四 用函數(shù)來(lái)實(shí)現(xiàn)簡(jiǎn)單計(jì)算器當(dāng)碰到某個(gè)問(wèn)題比較復(fù)雜時(shí),通常會(huì)將問(wèn)題細(xì)化到很容易解決的每一步,然后將這些步驟有機(jī)組合起來(lái),就可以解決整個(gè)問(wèn)題了。在C語(yǔ)言中,需要用到函數(shù)來(lái)細(xì)化問(wèn)題項(xiàng)目構(gòu)思:用函數(shù)來(lái)實(shí)現(xiàn)簡(jiǎn)單計(jì)算器。把加、減、乘、除、求余運(yùn)算分別寫成一個(gè)函數(shù),然后再在main函數(shù)中調(diào)用它們,從而實(shí)現(xiàn)與之前一樣的簡(jiǎn)單計(jì)算器 。分析講解項(xiàng)目項(xiàng)目四 用函數(shù)來(lái)實(shí)現(xiàn)簡(jiǎn)單計(jì)算器項(xiàng)目設(shè)計(jì):在C語(yǔ)言中,所有的函數(shù)與main函數(shù)的編程思路都是類似

30、的。本項(xiàng)目 中,我們?cè)O(shè)計(jì)五個(gè)函數(shù)來(lái)分別計(jì)算和、差、積、商、求余,每個(gè)函數(shù)都遵循與main函數(shù)類似的“四步曲”編程思路。加法函數(shù): void add( );減法函數(shù): void sub( );乘法函數(shù): void multiply( );除法函數(shù): void divide( );求余函數(shù): void remain( );分析講解項(xiàng)目項(xiàng)目四 用函數(shù)來(lái)實(shí)現(xiàn)簡(jiǎn)單計(jì)算器函數(shù)基礎(chǔ)C語(yǔ)言中函數(shù)用下面的格式來(lái)定義:返回值類型 函數(shù)名( 參數(shù) );返回值類型 是指這個(gè)函數(shù)執(zhí)行完后,是否要帶回一個(gè)指定值給調(diào)用它的函數(shù)(如main函數(shù))。返回值類型可以是任何已知類型,例如:int代表返回整型數(shù)據(jù)double代表返回

31、雙精度浮點(diǎn)型數(shù)據(jù)char代表返回字符型數(shù)據(jù) 等void代表沒(méi)有返回值(就這個(gè)是特殊的)函數(shù)名與變量名命名規(guī)則一樣括號(hào)中的東西稱為參數(shù):若括號(hào)里沒(méi)有東西,就稱為無(wú)參數(shù)。void add( )這類函數(shù)稱為無(wú)參數(shù)無(wú)返回值函數(shù)。分析講解項(xiàng)目項(xiàng)目四 用函數(shù)來(lái)實(shí)現(xiàn)簡(jiǎn)單計(jì)算器項(xiàng)目實(shí)現(xiàn)一個(gè)函數(shù)(如add函數(shù))的實(shí)現(xiàn)(其他函數(shù)類似)/*加法函數(shù)的實(shí)現(xiàn)*/void add( )int a, b, s;printf(“請(qǐng)輸入兩個(gè)整數(shù):”);scanf(“%d%d”, &a, &b);s = a + b;printf(“%d + %d = %dn”, a, b, s );分析講解項(xiàng)目項(xiàng)目實(shí)現(xiàn)一個(gè)函數(shù)(如add函數(shù))的

32、調(diào)用/*實(shí)現(xiàn)了加法函數(shù)的計(jì)算器*/#include void add( ); /*加法函數(shù)的聲明*/*分別聲明減、乘、除、求余函數(shù)*/main( )add( ); /*調(diào)用加法函數(shù)*/*分別調(diào)用減、乘、除、求余函數(shù)*/void add( )/*加法函數(shù)定義*/int a, b, s;printf(“請(qǐng)輸入兩個(gè)整數(shù):”);scanf(“%d%d”, &a, &b);s = a + b;printf(“%d + %d = %dn”, a, b, s );/*分別編寫減、乘、除、求余函數(shù)*/請(qǐng)?jiān)谙鄳?yīng)位置補(bǔ)充全其他函數(shù)項(xiàng)目實(shí)踐1、完善用無(wú)參無(wú)返回值函數(shù)編寫的簡(jiǎn)單計(jì)算器。2、分別編寫無(wú)參無(wú)返回值的函數(shù),

33、實(shí)現(xiàn)從鍵盤上輸入圓的半徑,計(jì)算圓的面積和圓的周長(zhǎng)。項(xiàng)目設(shè)計(jì)計(jì)算圓的面積的函數(shù)可定義為:void mianji_circle( );計(jì)算圓的周長(zhǎng)的函數(shù)可定義為:void zhouchang_circle( );3、編寫無(wú)參無(wú)返回值的函數(shù),實(shí)現(xiàn)從鍵盤上三角形的三邊,計(jì)算三角形的面積。項(xiàng)目設(shè)計(jì)計(jì)算三角形的面積的函數(shù)可定義為:void mianji_triangle( );三角形面積計(jì)算方法為,若a,b,c為三邊,則計(jì)算公式為:s = ( a+b+c)/2, 面積sqrt( s * ( s a ) * ( s b ) * ( s c ) )另外,因?yàn)橛玫搅藄qrt函數(shù),需要在程序開頭增加 #inclu

34、de 語(yǔ)句項(xiàng)目小結(jié)小結(jié)本項(xiàng)目的知識(shí)點(diǎn)及技能要求1:掌握順序結(jié)構(gòu)程序設(shè)計(jì)的基本思路2:掌握無(wú)參無(wú)返回值函數(shù)的使用方法函數(shù)聲明函數(shù)定義函數(shù)調(diào)用課后項(xiàng)目將簡(jiǎn)單計(jì)算器修改為可以對(duì)浮點(diǎn)數(shù)進(jìn)行計(jì)算的計(jì)算器。(提示:求余運(yùn)算需要用到強(qiáng)制類型轉(zhuǎn)換)分支結(jié)構(gòu)程序設(shè)計(jì)目錄回顧分支結(jié)構(gòu)的引入分支結(jié)構(gòu)計(jì)算器項(xiàng)目功能完善分支結(jié)構(gòu)程序設(shè)計(jì)項(xiàng)目小結(jié)課后項(xiàng)目回顧無(wú)參無(wú)返回值函數(shù)的應(yīng)用函數(shù)聲明函數(shù)定義(編寫)函數(shù)調(diào)用簡(jiǎn)單分析講解 函數(shù)的調(diào)用過(guò)程main( ) add( ); sub( ); multiply( ); divide( ); remain( );void add( ) int a, b , s; scanf(“%d

35、%d”,&a, &b); s = a + b; printf(“%d+%d=%dn”, a , b, s );void sub( ) int a, b , s; scanf(“%d%d”,&a, &b); s = a - b; printf(“%d-%d=%dn”, a , b, s );分支結(jié)構(gòu)的引入運(yùn)行計(jì)算器程序,在執(zhí)行除法時(shí),輸入 22 0 兩個(gè)數(shù),看會(huì)出現(xiàn)什么結(jié)果?引出:在程序中要通過(guò)代碼來(lái)處理類似出錯(cuò)的這種情況,例如上面的 除數(shù)為0 的錯(cuò)誤。這種情況下,就要判斷 除數(shù)是否為0,根據(jù)判斷結(jié)果進(jìn)行相應(yīng)的處理。這時(shí)要用到 分支結(jié)構(gòu)。出錯(cuò)!得不到正確結(jié)果!分支結(jié)構(gòu)分支結(jié)構(gòu)是三種程序設(shè)計(jì)結(jié)構(gòu)中

36、的一種。分支結(jié)構(gòu)的形式雙分支結(jié)構(gòu)( if else )單分支結(jié)構(gòu)( if )多分支結(jié)構(gòu)( if else if 、switch)分支結(jié)構(gòu)主要是要判斷條件,條件可以是關(guān)系表達(dá)式,也可以是邏輯表達(dá)式或其他任意的表達(dá)式。分支結(jié)構(gòu)雙分支結(jié)構(gòu)( if else )格式: if ( e ) /e是一個(gè)表達(dá)式A;/e為真時(shí)執(zhí)行 elseB;/e為假時(shí)執(zhí)行eAB真假執(zhí)行流程分支結(jié)構(gòu)單分支結(jié)構(gòu)( if )格式: if ( e ) /e是一個(gè)表達(dá)式A;/e為真時(shí)執(zhí)行 eA真假執(zhí)行流程分析講解項(xiàng)目項(xiàng)目一 修改計(jì)算器項(xiàng)目中的除法函數(shù)項(xiàng)目構(gòu)思:修改計(jì)算器項(xiàng)目中的除法函數(shù),使其能夠分辨出除數(shù)為0的情況,若除數(shù)為0,則輸出

37、“除數(shù)不能為0”的提示信息,若除數(shù)不為0,則輸出正常的除式。 項(xiàng)目設(shè)計(jì)(1)定義a,b變量(2)輸入a和b的值(3)用表達(dá)式 0 = b判斷b是否為0,若是,則輸出錯(cuò)誤提示, 若不是,則輸出除式分析講解項(xiàng)目項(xiàng)目實(shí)現(xiàn)實(shí)現(xiàn)divide函數(shù)#include void divide( )int a, b;printf(“請(qǐng)輸入兩個(gè)整數(shù):”);scanf(“%d%d”, &a, &b);if ( 0 = b )printf(“ 0 不能作除數(shù)!n”);elseprintf(“ %d / %d = %d n”, a, b, a / b);項(xiàng)目實(shí)踐項(xiàng)目二 修改求余函數(shù)求余函數(shù)remain也有類似的不能除0的

38、問(wèn)題, 請(qǐng)用if-else分支結(jié)構(gòu)修改求余函數(shù)項(xiàng)目三 修改求三角形面積的函數(shù)在mianji_triangle函數(shù)中,考慮三邊是否能構(gòu)成三角形,若可以,則正常計(jì)算三角形面積,若不能構(gòu)成三角形,則輸出錯(cuò)誤提示”你輸入的三邊不能構(gòu)成三角形“。(提示:構(gòu)成三角形的條件是 a + b c & a + c b & b + c a )用if else 結(jié)構(gòu)改寫函數(shù)項(xiàng)目實(shí)踐項(xiàng)目四 偶數(shù)輸出項(xiàng)目構(gòu)思:從鍵盤上輸入一個(gè)整數(shù),若它為偶數(shù),則輸出在屏幕上,否則,不作任何處理。項(xiàng)目設(shè)計(jì)(1)定義變量num(2)輸入變量num的值(3)用 表達(dá)式 num % 2 = 0 判斷num是否為偶數(shù),若是則輸出項(xiàng)目實(shí)現(xiàn)#incl

39、ude main( ) int num;printf(“請(qǐng)輸入一個(gè)整數(shù):”);scanf(“%d”, &num);if ( num % 2 = 0 ) printf(“你輸入的是偶數(shù),它是:%dn”, num);請(qǐng)將程序修改為無(wú)參無(wú)返回值的函數(shù)形式項(xiàng)目實(shí)踐項(xiàng)目五 比較兩個(gè)數(shù)的大小項(xiàng)目構(gòu)思從鍵盤上輸入兩個(gè)數(shù),輸出其中較大的一個(gè)。項(xiàng)目設(shè)計(jì)定義兩個(gè)變量num1和num2輸入num1和num2的值比較 num1 num2的關(guān)系,若成立,則輸出num1,否則就輸出num2項(xiàng)目實(shí)現(xiàn)用無(wú)參無(wú)返回值的函數(shù)編寫代碼項(xiàng)目 運(yùn)行項(xiàng)目實(shí)踐項(xiàng)目六 兩個(gè)數(shù)排序項(xiàng)目構(gòu)思從鍵盤上輸入兩個(gè)數(shù),將它們按從大到小的順序輸出在屏幕上

40、。項(xiàng)目設(shè)計(jì)定義兩個(gè)變量num1和num2輸入num1和num2的值比較 num1 =18,則輸出”你已經(jīng)是成人,應(yīng)該規(guī)劃好自己的未來(lái)“的提示,否則,輸出“你還不到18,要準(zhǔn)備學(xué)習(xí)如何規(guī)劃自己了”的提示。(注意:以上均寫成無(wú)參無(wú)返回值的函數(shù)形式)課后項(xiàng)目寫一程序,從鍵盤上輸入一年份year(為十進(jìn)制數(shù)),判斷其是否為閏年。(閏年的條件是:能被4整除、但不能被100整除,或者能被400整除),條件表達(dá)式為: (0=year % 4 and 0 !=year % 100) | ( 0 = year % 400 )從鍵盤輸入x的值,求y的值并輸出。 3x3+x2+2x+5 (x 0)分支結(jié)構(gòu)程序設(shè)計(jì)目

41、錄回顧(if-else, if結(jié)構(gòu))分支結(jié)構(gòu)(if-else-if,switch結(jié)構(gòu))if嵌套語(yǔ)句使用switch語(yǔ)句使用項(xiàng)目小結(jié)課后項(xiàng)目94回顧if-else結(jié)構(gòu)if ( e ) /e是一個(gè)表達(dá)式A;/e為真時(shí)執(zhí)行 elseB;/e為假時(shí)執(zhí)行if結(jié)構(gòu)if ( e ) /e是一個(gè)表達(dá)式A;/e為真時(shí)執(zhí)行分支結(jié)構(gòu)(if嵌套)當(dāng)某個(gè)問(wèn)題用一個(gè)簡(jiǎn)單的if-else或if無(wú)法一次解決時(shí),就可能要用到多次判斷。如:成績(jī)等級(jí)問(wèn)題。從鍵盤上輸入一個(gè)學(xué)生的成績(jī),判斷其成績(jī)所對(duì)應(yīng)的級(jí)別是什么。成績(jī)和級(jí)別之間的對(duì)應(yīng)關(guān)系如下表所示:解決辦法:用多個(gè)if-else嵌套起來(lái)判斷各個(gè)對(duì)應(yīng)關(guān)系(記住,一個(gè)if-else只能

42、將問(wèn)題一分為二)。成績(jī)級(jí)別90100A8089B7079C6069D059E小于0或大于100非法輸入if-else和if結(jié)構(gòu)之間可以相互嵌套,嵌套可以出現(xiàn)在if分支中,也可以出現(xiàn)在else分支中。嵌套形式可能出現(xiàn)以下幾種:if ( e1 ) if ( e2 ) s1; elses2;if ( e1 ) s1; elseif ( e2 ) s2; if ( e1 ) if ( e2 ) s1; else s2; elses3;if ( e1 ) s1;else if ( e2 ) s2; else s3; if ( e1 ) if ( e2 ) s1; if ( e1 ) if ( e2 )

43、s1; else s2; 分支結(jié)構(gòu)(if嵌套)if嵌套中要注意的問(wèn)題:養(yǎng)成良好的編程習(xí)慣,在每個(gè)分支上加。若有的程序在嵌套分支上未加,則嵌套的規(guī)則為:else與最近的未與其他else配對(duì)的if進(jìn)行配對(duì)。(這種法則實(shí)際上與()的匹配規(guī)則一樣,只需要把if當(dāng)成“(”,把else當(dāng)成“)”就可以正確找到與某個(gè)else配對(duì)的if,從而正確理解整個(gè)程序的結(jié)構(gòu)。分支結(jié)構(gòu)(if嵌套)例: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);修改: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”)

44、; 實(shí)現(xiàn)if else 正確配對(duì)方法:加 分支結(jié)構(gòu)(if嵌套)例 考慮下面程序輸出結(jié)果: main() int x=100,a=10,b=20; int v1=5,v2=0; if(ab) if(b!=15) if(!v1) x=1; else if(v2) x=10; x=-1; printf(“%d”,x); 結(jié)果:-1分支結(jié)構(gòu)(if嵌套)一種特殊的if嵌套形式( if else if )格式: if ( e1 )s1; else if ( e2 ) s2; else if ( e3 ) s3; else if ( e4 ) s4; elsesn;e1e2e3e4s1s2s3s4s5if-

45、else-if后的其他語(yǔ)句真假真假真假真假分析講解項(xiàng)目項(xiàng)目一:用if-else-if語(yǔ)句解決成績(jī)等級(jí)問(wèn)題(自己改寫成函數(shù)形式)/*成績(jī)等級(jí)問(wèn)題*/#include main( ) int score;printf(“請(qǐng)輸入一個(gè)成績(jī):”);scanf(“%d”, &score);if( score 100 )printf(“非法輸入n”); else if ( score = 90 )printf(“An”);else if ( score = 80 )printf(“Bn”);else if (score =70 ) printf(“Cn”); else if (score =60 ) pri

46、ntf(“Dn”); else printf(“En”);分析講解項(xiàng)目項(xiàng)目二 處理一元二次方程項(xiàng)目構(gòu)思:從鍵盤輸入一元二次方程的三個(gè)系數(shù)a、b、c,求方程的根??紤]二次項(xiàng)系數(shù)是否為零和判別式正負(fù)的問(wèn)題。項(xiàng)目設(shè)計(jì)解決此問(wèn)題的NS流程圖如下:定義變量a,b,c,x1,x2,p;輸入a,b,c的值;a=0真假輸出“這不是一個(gè)二次方程!”求判別式p的值;p=0真假求x1,x2并輸出輸出“no real root!”假項(xiàng)目二 處理一元二次方程(自己改寫成函數(shù)形式)項(xiàng)目實(shí)現(xiàn)#include#includemain() float a,b,c,x1,x2,p; printf(“請(qǐng)輸入a、b、c的值:”);

47、scanf(“%f%f%f”,&a,&b,&c); p=b*b-4*a*c;if(a=0) printf(“不是二次方程!”);else if(p=0) x1=(-b+sqrt(p)/(2*a); x2= (-b-sqrt(p)/(2*a); printf(“x1=%f,x2=%f”,x1,x2); else printf(“no real root!”); 項(xiàng)目一 判斷一個(gè)三角形的類型項(xiàng)目構(gòu)思:根據(jù)輸入的三個(gè)邊長(zhǎng)a、b、c,判斷他們能否構(gòu)成三角形;若能構(gòu)成三角形,繼續(xù)判斷該三角形是等邊、等腰還是一般三角形的程序流程圖。請(qǐng)參考程序流程圖編寫相應(yīng)的程序。項(xiàng)目實(shí)踐項(xiàng)目二 求分段函數(shù)的值項(xiàng)目構(gòu)思:根

48、據(jù)以下函數(shù)關(guān)系,對(duì)輸入的每個(gè)x值,計(jì)算出y值。 x y2x=10 x(x+2)-1x=2 2xx60n”); break; .例 switch(score) case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: printf(“Fail!”); default : printf(“data error!”); 運(yùn)行結(jié)果:score為5時(shí),輸出: Very good! Good! Pass! Fail! data error!switch語(yǔ)句例 void main() int

49、 x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+;b+; break; case 3: a+;b+; printf(“na=%d,b=%d”,a,b); 運(yùn)行結(jié)果:a=2,b=1switch語(yǔ)句#include main() int c; printf(Enter m or n or h or other:); c=getchar(); switch(c) case m: printf(nGood morning!n);break; case n: pri

50、ntf(nGood night!n); break; case h: printf(nHello!n); break; default : printf(n?n); break; 項(xiàng)目一: 根據(jù)輸入字母輸出字符串項(xiàng)目實(shí)踐項(xiàng)目一 switch解決成績(jī)等級(jí)問(wèn)題項(xiàng)目構(gòu)思從鍵盤輸入一個(gè)百分制的成績(jī),要求輸出成績(jī)等級(jí)。90分及以上為A,80-89分為B,70-79分為C,60-69分為D,60以下為E 。 項(xiàng)目二 發(fā)放獎(jiǎng)金問(wèn)題項(xiàng)目構(gòu)思某企業(yè)需要發(fā)放獎(jiǎng)金,獎(jiǎng)金的發(fā)放要根據(jù)利潤(rùn)提成,其中發(fā)放原則如下:利潤(rùn)低于或等于10萬(wàn)元時(shí),獎(jiǎng)金可提10%;利潤(rùn)在10萬(wàn)到20萬(wàn)之間,低于10萬(wàn)的部分按10%提成,高于10萬(wàn)

51、元的部分,可提成7.5%;利潤(rùn)在20萬(wàn)到40萬(wàn)之間時(shí),高于20萬(wàn)元的部分,可提成5%;利潤(rùn)在40萬(wàn)到60萬(wàn)之間時(shí),高于40萬(wàn)元的部分,可提成3%;利潤(rùn)在60萬(wàn)到100萬(wàn)之間時(shí),高于60萬(wàn)元的部分,可提成1.5%;利潤(rùn)高于100萬(wàn)元時(shí),超過(guò)100萬(wàn)元的部分按1%提成。要求用戶從鍵盤上輸入當(dāng)月的利潤(rùn),請(qǐng)?jiān)O(shè)計(jì)解決問(wèn)題的程序。項(xiàng)目小結(jié)小結(jié)本項(xiàng)目的知識(shí)點(diǎn)及技能要求1:掌握if-else-if和switch的用法2:進(jìn)一步掌握無(wú)參無(wú)返回值函數(shù)的使用方法函數(shù)聲明函數(shù)定義函數(shù)調(diào)用課后項(xiàng)目繼續(xù)完成本PPT中的實(shí)踐項(xiàng)目。循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(1)循環(huán)結(jié)構(gòu)while語(yǔ)句VC中程序的跟蹤調(diào)試(1)課堂實(shí)踐課前回顧

52、 分支結(jié)構(gòu)程序設(shè)計(jì):從鍵盤輸入一個(gè)整數(shù),如果該數(shù)既能被3整除又能被5整除,輸出“yes”;否則輸出“no” 。解決該問(wèn)題的N-S盒圖定義變量n;從鍵盤給n賦值;真假輸出“yes”輸出“no”n既能被3整除又能被5整除課前回顧 從鍵盤輸入一個(gè)整數(shù),如果該數(shù)既能被3整除又能被5整除,輸出“yes”;否則輸出“no” 。#include void is_times ()int n;scanf(“%d”, &n);if( n%3=0 & n%5=0)printf(“yesn”);elseprintf(“non”);課前回顧條件運(yùn)算符一般格式 條件運(yùn)算符的一般格式為: 表達(dá)式1?表達(dá)式2:表達(dá)式3舉例設(shè)

53、a=5,b=3,c=4,則 (1)max=ab?a:b的值為 ? (2)max=ab?a:bc?b:c 的值為 ?課前回顧switch 語(yǔ)句switch語(yǔ)句是實(shí)現(xiàn)多個(gè)分支的選擇語(yǔ)句switch (表達(dá)式) case 常量表達(dá)式 1 :語(yǔ)句1;break; case 常量表達(dá)式 2 :語(yǔ)句2;break; case 常量表達(dá)式 n :語(yǔ)句n ;break; default :語(yǔ)句n+1;break;課前回顧例子main() int i=2; switch(i) case 0: printf( i=0); break; case 1: printf( i=1); break; case 2: pr

54、intf( i=2); break; case 3: printf( i=3); break; default: printf(default); 結(jié)果:i=2循環(huán)結(jié)構(gòu)問(wèn)題的提出1、在屏幕上輸出一行*(假設(shè)為10個(gè))。如果要求輸出100行呢?如果要求輸出1萬(wàn)行呢?2、求s=1+2+3+10的結(jié)果。如果是求s=1+2+3+200的結(jié)果呢?這類問(wèn)題的共同點(diǎn):重復(fù)做某種操作若干次。這就需要用到 循環(huán)結(jié)構(gòu)。算法描述s=0,i=1s=s+ii=i+1s=s+ii=i+1s=s+ii=i+1s=s+ii=i+1s=s+ii=i+1s=s+ii=i+1輸出ss=s+ii=i+1s=0,i=1輸出s當(dāng)i=10

55、時(shí),循環(huán)執(zhí)行這兩條語(yǔ)句流程s=s+i;i=i+1;s=0,i=1;輸出si=10真假開始結(jié)束while語(yǔ)句while語(yǔ)句while(表達(dá)式e1) 語(yǔ)句s1; s1; e1 真假表達(dá)式e1的值為真循環(huán)體s1while語(yǔ)句的N-S圖例題: 求s=1+2+3+10 ;s=s+ii=i+1s=0,i=1輸出s當(dāng)i=10時(shí),循環(huán)執(zhí)行這兩條語(yǔ)句 i=10s=s+i;i=i+1;解決該問(wèn)題的N-S圖 定義變量i,s; i=1,s=0; 輸出s的值 例題: 求s=1+2+3+10 ;#include void sumFromOneToTen( )int i, s; /定義循環(huán)變量i和累加變量si=1; /循環(huán)

56、變量賦初始值s=0; /累加變量根據(jù)實(shí)際賦初始值while(i=10) /i從1變到10(即當(dāng)i=10都需要循環(huán))s += i; /累加i+; /循環(huán)變量改變值printf(“s=%d”, s);循環(huán)結(jié)構(gòu)的三個(gè)要素:1、循環(huán)條件:循環(huán)結(jié)構(gòu)中的條件表達(dá)式如while (i=10)其中,i=10就是循環(huán)條件。2、循環(huán)體:在每個(gè)循環(huán)周期均要執(zhí)行一次的語(yǔ)句序列。如while下用 括起來(lái)的語(yǔ)句序列。3、循環(huán)控制變量:能夠決定控制條件是真是假的量,如上例中的變量i。一般來(lái)說(shuō),在循環(huán)體中要有改變循環(huán)變量的語(yǔ)句,使得循環(huán)條件可以為假,即循環(huán)可以結(jié)束而不是無(wú)限循環(huán)(死循環(huán))。while語(yǔ)句VC程序調(diào)試(1)單步

57、執(zhí)行 跟蹤計(jì)算機(jī)依次執(zhí)行每一條C語(yǔ)句的情況 可以跟蹤變量或表達(dá)式的值 快捷鍵:F10單步執(zhí)行調(diào)試?yán)} #include void sumFromOneToTen()int i, s;i=1;s=0;while(i=2)是否為素?cái)?shù)(素?cái)?shù)即只能被1和自身整除的自然數(shù))。注意單步執(zhí)行調(diào)試工具的運(yùn)用。課堂實(shí)踐 5、求任意整數(shù)的所有位上的數(shù)之和,例17865的所有位上的數(shù)之和為:5+6+8+7+1,得27。6、 解決數(shù)學(xué)積分問(wèn)題。求f(x)=x2-3x+2在區(qū)間5,22上的積分,即求注意單步執(zhí)行調(diào)試工具的運(yùn)用。課后作業(yè)1、求11000內(nèi)所有能被3整除的整數(shù),所有數(shù)右對(duì)齊(思考:如果程序額外要求每行輸出1

58、0個(gè)數(shù),每屏輸出20行應(yīng)該怎么處理)。 2、從鍵盤上接收10個(gè)數(shù),求和。要求:(1)先提示“請(qǐng)輸入第1個(gè)數(shù):” ,輸入第一個(gè)數(shù)后再提示“請(qǐng)輸入第2個(gè)數(shù)”,依次類推;(2)輸入完十個(gè)數(shù)后,輸出十個(gè)數(shù)求和的結(jié)果。要求:課下在計(jì)算機(jī)上調(diào)試程序,使之能得到正確結(jié)果。課后作業(yè)3、把累加功能,即1+2+3+4+n(n從鍵盤上輸入)添加到計(jì)算器應(yīng)用程序中。 4、把累乘功能,即1*2*3*4*n(n從鍵盤上輸入)添加到計(jì)算器應(yīng)用程序中。要求:課下在計(jì)算機(jī)上調(diào)試程序,使之能得到正確結(jié)果。循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(2)回顧(while語(yǔ)句)for語(yǔ)句課堂實(shí)踐課前回顧求s=1+2+3+100 ;#inclu

59、de void sum_1_to_100( )int i, s;s=0;i=1; /初始化循環(huán)變量,只執(zhí)行一次while(i=100) /循環(huán)條件,將決定繼續(xù)循環(huán)或終止循環(huán)s+=i; /循環(huán)體i+; /每次執(zhí)行循環(huán)體后,修改循環(huán)變量printf(“s=%d”,s);求s=1+2+3+100 ; 用while實(shí)現(xiàn)。for語(yǔ)句for語(yǔ)句語(yǔ)法:for(e1;e2;e3) 語(yǔ)句s1; 語(yǔ)法上要求s1是一條語(yǔ)句,若有多條語(yǔ)句,必須用 ,使之成為一條復(fù)合語(yǔ)句,從而滿足語(yǔ)法要求。 e2 e1;真假e3;s1;for語(yǔ)句執(zhí)行流程#include void sum_1_to_100( )int i, s;s =

60、 0;for( i = 1; i = 100; i+ )s += i; /循環(huán)體printf(“s=%d”, s);求s=1+2+3+100 ; 用for語(yǔ)句實(shí)現(xiàn)。for( e1; e2; e3 ) s1; e1表達(dá)式只執(zhí)行一次,一般用于循環(huán)變量初始化e2表達(dá)式是循環(huán)條件表達(dá)式,決定是繼續(xù)循環(huán)還是終止循環(huán)e3表達(dá)式一般用于修改循環(huán)變量的值,執(zhí)行完循環(huán)體s1后再執(zhí)行e3,然后判斷e2s1是循環(huán)體,一般是一條復(fù)合語(yǔ)句真假e2為假,終止循環(huán),執(zhí)行后續(xù)語(yǔ)句1243for( i=1; i=100; i+; ) s+=i; e1表達(dá)式只執(zhí)行一次,一般用于循環(huán)變量初始化e2表達(dá)式是循環(huán)條件表達(dá)式,決定是繼續(xù)

溫馨提示

  • 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)論