C語(yǔ)言設(shè)計(jì)(教學(xué))_第1頁(yè)
C語(yǔ)言設(shè)計(jì)(教學(xué))_第2頁(yè)
C語(yǔ)言設(shè)計(jì)(教學(xué))_第3頁(yè)
C語(yǔ)言設(shè)計(jì)(教學(xué))_第4頁(yè)
C語(yǔ)言設(shè)計(jì)(教學(xué))_第5頁(yè)
已閱讀5頁(yè),還剩465頁(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、c c語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)教材:教材:c c語(yǔ)言程序設(shè)計(jì)教程語(yǔ)言程序設(shè)計(jì)教程 孫輝孫輝 吳潤(rùn)秀編著吳潤(rùn)秀編著參考資料:參考資料:1 1、c c程序設(shè)計(jì)(第二版)譚浩強(qiáng)著程序設(shè)計(jì)(第二版)譚浩強(qiáng)著 清華大學(xué)清華大學(xué)出版社出版社2 2、輕松學(xué)習(xí)、輕松學(xué)習(xí)c c程序設(shè)計(jì)程序設(shè)計(jì) 何勤著何勤著 中國(guó)電力出中國(guó)電力出版社版社計(jì)算機(jī)系統(tǒng)計(jì)算機(jī)系統(tǒng)硬件系統(tǒng)硬件系統(tǒng)軟件系統(tǒng)軟件系統(tǒng)運(yùn)運(yùn) 算算 器器控控 制制 器器 存存 儲(chǔ)儲(chǔ) 器器輸入設(shè)備輸入設(shè)備輸出設(shè)備輸出設(shè)備系統(tǒng)軟件系統(tǒng)軟件應(yīng)用軟件應(yīng)用軟件操作系統(tǒng)操作系統(tǒng)程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言如如c語(yǔ)言語(yǔ)言,basic,vb第一章第一章 程序設(shè)計(jì)語(yǔ)言概述程序設(shè)計(jì)語(yǔ)言

2、概述 2.2.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)指的是數(shù)據(jù)與數(shù)據(jù)間存在一種或多種特定關(guān)系。指的是數(shù)據(jù)與數(shù)據(jù)間存在一種或多種特定關(guān)系。在程序設(shè)計(jì)語(yǔ)言中,與數(shù)據(jù)結(jié)構(gòu)密切相關(guān)的便是在程序設(shè)計(jì)語(yǔ)言中,與數(shù)據(jù)結(jié)構(gòu)密切相關(guān)的便是數(shù)據(jù)的類(lèi)型和數(shù)據(jù)的存放。數(shù)據(jù)的類(lèi)型和數(shù)據(jù)的存放。一一. .軟件、程序、程序設(shè)計(jì)軟件、程序、程序設(shè)計(jì)(了解幾個(gè)基本概念)(了解幾個(gè)基本概念)1.1.數(shù)據(jù)數(shù)據(jù)是計(jì)算機(jī)程序處理的對(duì)象,可以是整數(shù)、實(shí)數(shù)、是計(jì)算機(jī)程序處理的對(duì)象,可以是整數(shù)、實(shí)數(shù)、字符,也可以是圖像、聲音等的編碼表示。字符,也可以是圖像、聲音等的編碼表示。3.程序的概念程序的概念計(jì)算機(jī)程序就是由人事先規(guī)定的計(jì)算機(jī)完成某計(jì)算機(jī)程序就是由人事先規(guī)

3、定的計(jì)算機(jī)完成某項(xiàng)工作的操作步驟。每一步驟的具體內(nèi)容由計(jì)算機(jī)項(xiàng)工作的操作步驟。每一步驟的具體內(nèi)容由計(jì)算機(jī)能夠理解的指令來(lái)描述,這些指令告訴計(jì)算機(jī)能夠理解的指令來(lái)描述,這些指令告訴計(jì)算機(jī)做做什么什么和和怎樣做怎樣做。 4.4.軟件軟件= =程序程序+ +文檔。文檔。 5.5.程序設(shè)計(jì)及程序設(shè)計(jì)及程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言 程序設(shè)計(jì)就是編寫(xiě)程序的過(guò)程。程序設(shè)計(jì)就是編寫(xiě)程序的過(guò)程。 編寫(xiě)計(jì)算機(jī)程序所使用的語(yǔ)言稱為程序設(shè)計(jì)語(yǔ)言。編寫(xiě)計(jì)算機(jī)程序所使用的語(yǔ)言稱為程序設(shè)計(jì)語(yǔ)言。 高級(jí)語(yǔ)言是相對(duì)低級(jí)語(yǔ)言而言的。高級(jí)語(yǔ)言是相對(duì)低級(jí)語(yǔ)言而言的。低級(jí)語(yǔ)言低級(jí)語(yǔ)言是是計(jì)算機(jī)能直接識(shí)別的語(yǔ)言計(jì)算機(jī)能直接識(shí)別的語(yǔ)言( (機(jī)

4、器語(yǔ)言機(jī)器語(yǔ)言) )或符號(hào)化的機(jī)或符號(hào)化的機(jī)器語(yǔ)言器語(yǔ)言( (匯編語(yǔ)言匯編語(yǔ)言) ),高級(jí)語(yǔ)言是一種通用的,高級(jí)語(yǔ)言是一種通用的, ,面向面向用戶的各類(lèi)需要用戶的各類(lèi)需要, ,其語(yǔ)言格式接近于自然語(yǔ)言或接其語(yǔ)言格式接近于自然語(yǔ)言或接近于數(shù)學(xué)函數(shù)形式。近于數(shù)學(xué)函數(shù)形式。要使計(jì)算機(jī)識(shí)別高級(jí)語(yǔ)言要使計(jì)算機(jī)識(shí)別高級(jí)語(yǔ)言,必須要,必須要c c語(yǔ)言是一種高級(jí)設(shè)語(yǔ)言,用它所編寫(xiě)的程序,必須語(yǔ)言是一種高級(jí)設(shè)語(yǔ)言,用它所編寫(xiě)的程序,必須要經(jīng)過(guò)要經(jīng)過(guò)才能執(zhí)行。才能執(zhí)行。1.1.面向過(guò)程面向過(guò)程: :處理任務(wù)時(shí)處理任務(wù)時(shí), ,告訴計(jì)算機(jī)告訴計(jì)算機(jī)怎么做怎么做,必須必須把解題的步驟一步一步事先寫(xiě)好把解題的步驟一步一步

5、事先寫(xiě)好, ,再讓計(jì)算機(jī)去執(zhí)行再讓計(jì)算機(jī)去執(zhí)行, ,這這種語(yǔ)言稱為過(guò)程式語(yǔ)言。如種語(yǔ)言稱為過(guò)程式語(yǔ)言。如:basic,fortran,pascal,c:basic,fortran,pascal,c2.2.面向?qū)ο竺嫦驅(qū)ο? :處理任務(wù)時(shí)處理任務(wù)時(shí), ,告訴計(jì)算機(jī)告訴計(jì)算機(jī)做什么做什么不必指不必指出出怎么做怎么做,計(jì)算機(jī)就能完成所要求的任務(wù),計(jì)算機(jī)就能完成所要求的任務(wù). .這種語(yǔ)這種語(yǔ)言稱為非過(guò)程式語(yǔ)言言稱為非過(guò)程式語(yǔ)言. .如:如:c+,vc,vb,vf,sqlc+,vc,vb,vf,sql查詢語(yǔ)言查詢語(yǔ)言等。等。面向過(guò)程的語(yǔ)言。它是最早也是最簡(jiǎn)單的計(jì)算面向過(guò)程的語(yǔ)言。它是最早也是最簡(jiǎn)單的計(jì)算

6、機(jī)語(yǔ)言,非常實(shí)用。機(jī)語(yǔ)言,非常實(shí)用。 pascalpascal語(yǔ)言是一種有著良好結(jié)構(gòu)化特性的高級(jí)語(yǔ)語(yǔ)言是一種有著良好結(jié)構(gòu)化特性的高級(jí)語(yǔ)言,面向過(guò)程的語(yǔ)言,它是在軟件危機(jī)的言,面向過(guò)程的語(yǔ)言,它是在軟件危機(jī)的7070年代所年代所創(chuàng)造的一種完全符合結(jié)構(gòu)化原則,有著嚴(yán)格的語(yǔ)法創(chuàng)造的一種完全符合結(jié)構(gòu)化原則,有著嚴(yán)格的語(yǔ)法規(guī)則的高級(jí)語(yǔ)言。該語(yǔ)言在語(yǔ)言教學(xué)中有著良好的規(guī)則的高級(jí)語(yǔ)言。該語(yǔ)言在語(yǔ)言教學(xué)中有著良好的聲譽(yù),但在實(shí)際使用中,利用該語(yǔ)言開(kāi)發(fā)軟件并不聲譽(yù),但在實(shí)際使用中,利用該語(yǔ)言開(kāi)發(fā)軟件并不多。所以許多人認(rèn)為多。所以許多人認(rèn)為pascal pascal 只是一種教學(xué)語(yǔ)言。只是一種教學(xué)語(yǔ)言。fortr

7、anfortran是最早出現(xiàn)的高級(jí)語(yǔ)言之一。它是針對(duì)科是最早出現(xiàn)的高級(jí)語(yǔ)言之一。它是針對(duì)科學(xué)計(jì)算而設(shè)計(jì)的一種高級(jí)語(yǔ)言(早期計(jì)算機(jī)的主要任學(xué)計(jì)算而設(shè)計(jì)的一種高級(jí)語(yǔ)言(早期計(jì)算機(jī)的主要任務(wù)就是進(jìn)行科學(xué)計(jì)算),到目前為止,務(wù)就是進(jìn)行科學(xué)計(jì)算),到目前為止,fortranfortran仍主要仍主要是用于科學(xué)計(jì)算。是用于科學(xué)計(jì)算。c c語(yǔ)言出現(xiàn)后,有人給語(yǔ)言出現(xiàn)后,有人給fortranfortran語(yǔ)言判了死刑,但事語(yǔ)言判了死刑,但事實(shí)上,在科學(xué)計(jì)算上,尤其是在大規(guī)??茖W(xué)計(jì)算上,實(shí)上,在科學(xué)計(jì)算上,尤其是在大規(guī)??茖W(xué)計(jì)算上,fortranfortran仍是首選的高級(jí)語(yǔ)言。仍是首選的高級(jí)語(yǔ)言。fortra

8、n fortran 自身也在發(fā)展自身也在發(fā)展,目前,目前,fortranfortran已發(fā)展到已發(fā)展到9090和和9595版本。版本。是由微軟公司開(kāi)發(fā)的,支持是由微軟公司開(kāi)發(fā)的,支持windowswindows平臺(tái)下開(kāi)發(fā)平臺(tái)下開(kāi)發(fā)的的basicbasic語(yǔ)言。它支持面向?qū)ο蟮拈_(kāi)發(fā),是目前語(yǔ)言。它支持面向?qū)ο蟮拈_(kāi)發(fā),是目前windowswindows平臺(tái)下流行的開(kāi)發(fā)工具之一。平臺(tái)下流行的開(kāi)發(fā)工具之一。在實(shí)際應(yīng)用中,還有許多其它的高級(jí)語(yǔ)言或開(kāi)發(fā)在實(shí)際應(yīng)用中,還有許多其它的高級(jí)語(yǔ)言或開(kāi)發(fā)工具。一般來(lái)說(shuō),每一種高級(jí)語(yǔ)言或開(kāi)發(fā)工具都有工具。一般來(lái)說(shuō),每一種高級(jí)語(yǔ)言或開(kāi)發(fā)工具都有它的使用范圍,到目前為止,

9、還沒(méi)有一種語(yǔ)言能包它的使用范圍,到目前為止,還沒(méi)有一種語(yǔ)言能包打天下。打天下。2 2 做大量的習(xí)題做大量的習(xí)題實(shí)踐實(shí)踐, ,只有通過(guò)上機(jī)實(shí)踐才能真正掌握只有通過(guò)上機(jī)實(shí)踐才能真正掌握c c語(yǔ)言語(yǔ)言1 1 掌握最基本的語(yǔ)法概念:如掌握最基本的語(yǔ)法概念:如c程序的組成、標(biāo)識(shí)符、常量、變量、數(shù)據(jù)類(lèi)型等。例例1 .下列描述正確的是:下列描述正確的是:a)c語(yǔ)言比其它語(yǔ)言好語(yǔ)言比其它語(yǔ)言好 b)c語(yǔ)言可以不用編繹就能被計(jì)算機(jī)識(shí)別語(yǔ)言可以不用編繹就能被計(jì)算機(jī)識(shí)別c)c語(yǔ)言格式接近于自然語(yǔ)言或接近于數(shù)學(xué)函數(shù)形式語(yǔ)言格式接近于自然語(yǔ)言或接近于數(shù)學(xué)函數(shù)形式d)c語(yǔ)言出現(xiàn)最晚,有其它高級(jí)語(yǔ)言的所有優(yōu)點(diǎn)語(yǔ)言出現(xiàn)最晚,

10、有其它高級(jí)語(yǔ)言的所有優(yōu)點(diǎn)例例2.用用c語(yǔ)言編寫(xiě)的代碼程序語(yǔ)言編寫(xiě)的代碼程序a)可立即執(zhí)行)可立即執(zhí)行 b)是一個(gè)源程序是一個(gè)源程序 c) 經(jīng)過(guò)編譯即可執(zhí)行經(jīng)過(guò)編譯即可執(zhí)行 d)經(jīng)過(guò)編譯解釋后方可執(zhí)行經(jīng)過(guò)編譯解釋后方可執(zhí)行結(jié)束語(yǔ)結(jié)束語(yǔ) 紙上談兵紙上談兵學(xué)不出程序設(shè)計(jì)本領(lǐng);只有學(xué)不出程序設(shè)計(jì)本領(lǐng);只有大量上機(jī)、編程、調(diào)試,才能掌握。大量上機(jī)、編程、調(diào)試,才能掌握。 學(xué)好程序設(shè)計(jì)語(yǔ)言的唯一途徑是上機(jī)。學(xué)好程序設(shè)計(jì)語(yǔ)言的唯一途徑是上機(jī)。 你的編程能力和你在機(jī)器上投入的時(shí)間你的編程能力和你在機(jī)器上投入的時(shí)間成正比。成正比。1 c1 c程序由哪幾部分組成?程序由哪幾部分組成?2 c2 c語(yǔ)言的基本符號(hào)?語(yǔ)

11、言的基本符號(hào)?3 c3 c語(yǔ)言的數(shù)據(jù)類(lèi)型有哪些?語(yǔ)言的數(shù)據(jù)類(lèi)型有哪些?4 c4 c語(yǔ)言的常量概念?語(yǔ)言的常量概念?5 c5 c語(yǔ)言的變量概念?語(yǔ)言的變量概念?第二章順序結(jié)構(gòu)第二章順序結(jié)構(gòu)例例1 1.2.2 已知圓的半徑為已知圓的半徑為r(rr(r是一個(gè)可變的量是一個(gè)可變的量),),求圓求圓的面積和周長(zhǎng)的面積和周長(zhǎng), ,用計(jì)算機(jī)求解,程序如下用計(jì)算機(jī)求解,程序如下: :/* exam22.c */* 計(jì)算圓的面積和周長(zhǎng)計(jì)算圓的面積和周長(zhǎng) */#includemain() float r,area,s; scanf(%f,&r); area=3.14*r*r; s=2*3.14*r; printf

12、(面積面積= %f, 周長(zhǎng)周長(zhǎng)=%f,area,s); 例例1.31.3 從鍵盤(pán)輸入從鍵盤(pán)輸入3 3個(gè)整數(shù)個(gè)整數(shù), ,求求3 3個(gè)數(shù)的和與積個(gè)數(shù)的和與積, ,并并將結(jié)果輸出在屏幕上輸出。將結(jié)果輸出在屏幕上輸出。/*m22.c */ #include main() int a,b,c,s1,s2;scanf(%d%d%d,&a,&b,&c);s1=a+b+c;s2=a*b*c;printf(面積面積=%d, 周長(zhǎng)周長(zhǎng)%d,s1,s2);1.注釋注釋4.數(shù)據(jù)說(shuō)明數(shù)據(jù)說(shuō)明5. 5.數(shù)據(jù)輸入數(shù)據(jù)輸入6. 6.數(shù)據(jù)處理數(shù)據(jù)處理7.7.結(jié)果輸出結(jié)果輸出2.頭文件頭文件3.主函數(shù)主函數(shù)一個(gè)完整的一個(gè)完整的c

13、程序包括下面幾部分:程序包括下面幾部分:7 .注釋注釋3.3.變量說(shuō)明變量說(shuō)明4. 數(shù)據(jù)輸入數(shù)據(jù)輸入5 .數(shù)據(jù)處理數(shù)據(jù)處理6. 結(jié)果輸出結(jié)果輸出int a,b,s;/或或 /* */printf();s=a+b;scanf();說(shuō)明說(shuō)明2.一個(gè)一個(gè)c源程序可由一個(gè)或多個(gè)函數(shù)組成,源程序可由一個(gè)或多個(gè)函數(shù)組成,函數(shù)函數(shù)是是c程程 序的基本組成單位。序的基本組成單位。3.一個(gè)一個(gè)c源程序必須包含一個(gè)源程序必須包含一個(gè)main函數(shù),函數(shù), main函數(shù)函數(shù)可可以在程序任意位置以在程序任意位置,程序的執(zhí)行總是程序的執(zhí)行總是main函數(shù)開(kāi)始函數(shù)開(kāi)始,到到main函數(shù)結(jié)束。函數(shù)結(jié)束。1. #include

14、 為頭文件,通常稱為命令行,必為頭文件,通常稱為命令行,必 須用須用#號(hào)開(kāi)頭,最后不加分號(hào),因?yàn)樗皇翘?hào)開(kāi)頭,最后不加分號(hào),因?yàn)樗皇莄語(yǔ)語(yǔ) 句,不同的頭文件包含不同的信息。句,不同的頭文件包含不同的信息。5.c語(yǔ)言本身沒(méi)有輸入輸出語(yǔ)句,是通過(guò)函數(shù)語(yǔ)言本身沒(méi)有輸入輸出語(yǔ)句,是通過(guò)函數(shù)scanf() 與與printf()來(lái)完成輸入輸出的。因此來(lái)完成輸入輸出的。因此scanf(),printf()不不是是c語(yǔ)句。語(yǔ)句。6.說(shuō)明多個(gè)變量時(shí)用逗號(hào)隔開(kāi),最后用分號(hào),也可分說(shuō)明多個(gè)變量時(shí)用逗號(hào)隔開(kāi),最后用分號(hào),也可分多行多行說(shuō)明,分號(hào)是說(shuō)明,分號(hào)是c語(yǔ)句組成部分。語(yǔ)句組成部分。如:如:int a=1,b,

15、c; 等價(jià)于等價(jià)于 int a=1; int b; int c;4.c程序中,注釋語(yǔ)句可以放在程序任意合適的位置,程序中,注釋語(yǔ)句可以放在程序任意合適的位置, 但不能把單詞分開(kāi)。但不能把單詞分開(kāi)。2.2 c語(yǔ)言的基本符號(hào)語(yǔ)言的基本符號(hào)基本符號(hào)集(基本符號(hào)集(ascii字符集)字符集) 阿拉伯?dāng)?shù)字阿拉伯?dāng)?shù)字10個(gè):個(gè):0、1、2、9 大小寫(xiě)英文字母各大小寫(xiě)英文字母各26個(gè):個(gè):a,b,c,z,a,b,c,z 下劃線:下劃線:_ 特殊符號(hào):特殊符號(hào):主要是運(yùn)算符和操作符主要是運(yùn)算符和操作符 保留字保留字/關(guān)鍵字關(guān)鍵字(32個(gè)個(gè)) 是編譯系統(tǒng)固有的,用做語(yǔ)句名、類(lèi)型名的標(biāo)是編譯系統(tǒng)固有的,用做語(yǔ)句名

16、、類(lèi)型名的標(biāo)識(shí)符。不允許作為用戶標(biāo)識(shí)符使用識(shí)符。不允許作為用戶標(biāo)識(shí)符使用標(biāo)識(shí)符標(biāo)識(shí)符 字符序列,用作常量、變量、函數(shù)、文件指針、字符序列,用作常量、變量、函數(shù)、文件指針、類(lèi)型的名字。類(lèi)型的名字。 用戶標(biāo)識(shí)符用戶標(biāo)識(shí)符 保留字保留字/關(guān)鍵字關(guān)鍵字 預(yù)定義標(biāo)識(shí)符預(yù)定義標(biāo)識(shí)符用戶標(biāo)識(shí)符:用戶標(biāo)識(shí)符: 用戶根據(jù)需要對(duì)用戶根據(jù)需要對(duì)c程序中用到的變量、符號(hào)程序中用到的變量、符號(hào)常量、自己的函數(shù)或文件指針進(jìn)行命名,形成用常量、自己的函數(shù)或文件指針進(jìn)行命名,形成用戶標(biāo)識(shí)符。構(gòu)成規(guī)則:戶標(biāo)識(shí)符。構(gòu)成規(guī)則: 由英文字母、數(shù)字、下劃線組成,且第一由英文字母、數(shù)字、下劃線組成,且第一個(gè)字符不能是數(shù)字;個(gè)字符不能是數(shù)

17、字; 英文字母區(qū)別大小寫(xiě);英文字母區(qū)別大小寫(xiě); 通常識(shí)別前通常識(shí)別前8個(gè)字符;個(gè)字符; 取名遵循取名遵循簡(jiǎn)潔明了簡(jiǎn)潔明了和和見(jiàn)名知意見(jiàn)名知意。 預(yù)定義標(biāo)識(shí)符預(yù)定義標(biāo)識(shí)符 允許用戶作其他其途,但將失去系統(tǒng)規(guī)定的允許用戶作其他其途,但將失去系統(tǒng)規(guī)定的原意。原意。 例例define、include例例1可在可在c程序中用作用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符是程序中用作用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符是a)12ab b)f-at _ c)aw1e d)b6ty例例2 以下關(guān)于以下關(guān)于c語(yǔ)言標(biāo)識(shí)符的描述中,正確的是:語(yǔ)言標(biāo)識(shí)符的描述中,正確的是: a)標(biāo)識(shí)符可以由漢字組成標(biāo)識(shí)符可以由漢字組成 b)標(biāo)識(shí)符只能以字母開(kāi)頭標(biāo)識(shí)符只

18、能以字母開(kāi)頭 c)關(guān)鍵字可以作為用戶標(biāo)識(shí)符關(guān)鍵字可以作為用戶標(biāo)識(shí)符 d)if可以作為用戶定義的合法標(biāo)識(shí)符可以作為用戶定義的合法標(biāo)識(shí)符例例3 以下不能定義為用戶標(biāo)識(shí)符是以下不能定義為用戶標(biāo)識(shí)符是 a)scanf b)void c)_3com d)int 例例4可在可在c程序中用作用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符是程序中用作用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符是 a)1vod b) as_b3 c) for d) 2c define _123 -abc do, word if c.se sig枚舉類(lèi)型枚舉類(lèi)型數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型 基本類(lèi)型基本類(lèi)型 構(gòu)造類(lèi)型構(gòu)造類(lèi)型其它類(lèi)型其它類(lèi)型 字符型字符型數(shù)值型數(shù)值型 整型整型實(shí)型實(shí)型基

19、本型基本型短整型短整型長(zhǎng)整型長(zhǎng)整型無(wú)符號(hào)整無(wú)符號(hào)整單精度單精度雙單精度雙單精度長(zhǎng)雙單精度長(zhǎng)雙單精度字符字符字符串字符串空類(lèi)型空類(lèi)型(void)(void)指針類(lèi)型指針類(lèi)型2.3 數(shù)據(jù)的類(lèi)型(為什么要對(duì)數(shù)據(jù)進(jìn)行分類(lèi)?)數(shù)據(jù)的類(lèi)型(為什么要對(duì)數(shù)據(jù)進(jìn)行分類(lèi)?)在在c語(yǔ)言中語(yǔ)言中,變量的數(shù)據(jù)的類(lèi)型一定要先定義后使用。變量的數(shù)據(jù)的類(lèi)型一定要先定義后使用。float a,b,c; 定義了定義了a,b,c 為實(shí)型變量為實(shí)型變量 int a,b,c; 定義了定義了a,b,c 為整型變量為整型變量 short int a,b,c; 短整型long int a,b,c; 長(zhǎng)整型double a,b,c; 雙精度u

20、nsigned int a,b,c; 無(wú)符號(hào)整型char a,b,c; 定義了定義了a,b,c, 為字符型變量為字符型變量 turbo c基本數(shù)據(jù)類(lèi)型所占寬度與數(shù)據(jù)范圍基本數(shù)據(jù)類(lèi)型所占寬度與數(shù)據(jù)范圍 類(lèi)型類(lèi)型占字節(jié)占字節(jié) 最小取值范圍最小取值范圍 int2-3276832767 即即-215(215-1)unsigined int(無(wú)符號(hào)無(wú)符號(hào)) 2065535short int 2-3276832767即即-215(215-1)unsigined short int2065535 long int 4-21474836482147483647即即-231(231-1)unsigined lo

21、ng int404294967295float 4-21474836482147483647即即-231(231-1)double810-30710308long double 1610-49311049321.注釋注釋2.頭文件頭文件4.數(shù)據(jù)定數(shù)據(jù)定義義5. 5.數(shù)據(jù)輸入數(shù)據(jù)輸入6. 6.數(shù)據(jù)處理數(shù)據(jù)處理7.7.結(jié)果輸出結(jié)果輸出3.主函數(shù)主函數(shù)常量常量變量變量2.4 常量常量概念:概念:在程序運(yùn)行中在程序運(yùn)行中, ,其數(shù)值不能被改變的其數(shù)值不能被改變的量。量。分類(lèi):分類(lèi):直接常量和符號(hào)常量直接常量和符號(hào)常量一一. .直接常量:是在程序中直接常量:是在程序中直接引用直接引用的數(shù)據(jù)。的數(shù)據(jù)。分為

22、:整型、實(shí)型、字符型、字符串分為:整型、實(shí)型、字符型、字符串以數(shù)據(jù)的原以數(shù)據(jù)的原型出現(xiàn)!型出現(xiàn)!1.整型常量整型常量 可以用十進(jìn)制、八進(jìn)制、十六進(jìn)制形式表示可以用十進(jìn)制、八進(jìn)制、十六進(jìn)制形式表示,整型常量只有整型常量只有數(shù)字?jǐn)?shù)字,不帶小數(shù)不帶小數(shù)(如如12、-1、0)。 八進(jìn)制用數(shù)字八進(jìn)制用數(shù)字0 開(kāi)頭例如開(kāi)頭例如:010、011、017等。等。 十六進(jìn)制用十六進(jìn)制用0 x或或0x開(kāi)頭,例如:開(kāi)頭,例如:0 x1、0xde、0 xf等。等。例例1. 以下選項(xiàng)中正確整型常量是以下選項(xiàng)中正確整型常量是 a)12. b) -12 c) 1,000 d) 4 5 6 例例2.以下選項(xiàng)中正確的整型常量是

23、以下選項(xiàng)中正確的整型常量是 a ) 10110b b)0386 c)0xfaa d)x2a2 2. 2. 實(shí)型常量實(shí)型常量二種表現(xiàn)形式:二種表現(xiàn)形式:l十進(jìn)制形式十進(jìn)制形式: :由數(shù)字和小數(shù)點(diǎn)及正負(fù)號(hào)組成;由數(shù)字和小數(shù)點(diǎn)及正負(fù)號(hào)組成;l指數(shù)形式:由指數(shù)形式:由十進(jìn)制小數(shù)十進(jìn)制小數(shù) + e( + e(或或e) + e) + 十進(jìn)制數(shù)整數(shù)十進(jìn)制數(shù)整數(shù) 三部分組成。三部分組成。 十進(jìn)制小數(shù)十進(jìn)制小數(shù)e(e(或或e)e)十進(jìn)制數(shù)整數(shù)十進(jìn)制數(shù)整數(shù)例如例如: 12.5e-6 : 12.5e-6 表示表示12.512.51010-6-6c語(yǔ)言的語(yǔ)法規(guī)定,語(yǔ)言的語(yǔ)法規(guī)定,e之前必須要有數(shù)字,且之前必須要有數(shù)字

24、,且e后面的指數(shù)必須為整數(shù)。如后面的指數(shù)必須為整數(shù)。如e3, .5e3.6 .e3等都等都是不合法的指數(shù)形式。是不合法的指數(shù)形式。 例例1.以下選項(xiàng)中不正確的實(shí)型常量是以下選項(xiàng)中不正確的實(shí)型常量是a) 2.607e-1 b) 0.8103e 2 c) -77.77 d) 456e-2例例2.以下選項(xiàng)中正確的實(shí)型常量是以下選項(xiàng)中正確的實(shí)型常量是a) 5e2.0 b)e-3 c)2.2e1 d)1.3e例例3.以下所列的以下所列的c語(yǔ)言常量中,錯(cuò)誤的是(語(yǔ)言常量中,錯(cuò)誤的是( )a)0 xff b)1.2e0.5 c)2 d) 723 3 字符型常量字符型常量二種表現(xiàn)形式:二種表現(xiàn)形式:l用單引號(hào)

25、括起來(lái)的一個(gè)字符;用單引號(hào)括起來(lái)的一個(gè)字符;l用單引號(hào)括起來(lái)的由反斜杠用單引號(hào)括起來(lái)的由反斜杠()()引導(dǎo)的引導(dǎo)的轉(zhuǎn)義字符。轉(zhuǎn)義字符。如:如:aa、 11、? ? 等。等。如:如: n n 101 101 x41 x41在統(tǒng)計(jì)字符個(gè)數(shù)在統(tǒng)計(jì)字符個(gè)數(shù)時(shí),只能記為一時(shí),只能記為一個(gè)字符個(gè)字符只能是英文只能是英文的單引號(hào)的單引號(hào)常用的轉(zhuǎn)義字符常量的含義常用的轉(zhuǎn)義字符常量的含義字符形式字符形式意義意義a響鈴響鈴n換行,光標(biāo)到下行行首換行,光標(biāo)到下行行首 t水平制表水平制表 (從當(dāng)前光標(biāo)位置向右移動(dòng)從當(dāng)前光標(biāo)位置向右移動(dòng)8個(gè)字個(gè)字符符 )r回車(chē),光標(biāo)到本行行首回車(chē),光標(biāo)到本行行首 f換頁(yè)換頁(yè)0空字符空字

26、符反斜杠反斜杠 單引號(hào)單引號(hào) 雙引號(hào)雙引號(hào)xhh1到到2位位16進(jìn)制所表示的字符進(jìn)制所表示的字符ddd1到到3位位8進(jìn)制所表示的字符進(jìn)制所表示的字符 一個(gè)字符的多種表示方法:一個(gè)字符的多種表示方法: 65d 65d(十進(jìn)制)(十進(jìn)制)=41h=41h(十六進(jìn)制)(十六進(jìn)制)=101q=101q(八進(jìn)制)(八進(jìn)制) 因此,字符因此,字符a a可以表示為可以表示為aa、x41x41、101101、6565、0 x410 x41、01010101。 要避免的錯(cuò)誤:要避免的錯(cuò)誤:表示單引號(hào):表示單引號(hào): 表示雙引號(hào):表示雙引號(hào):表示斜線:表示斜線: (1)下面四個(gè)選項(xiàng)中,合法的字符常量是:下面四個(gè)選項(xiàng)

27、中,合法的字符常量是: a)b b)101 c)68 d)d(2)下面四個(gè)選項(xiàng)中,正確的字符常量是:下面四個(gè)選項(xiàng)中,正確的字符常量是: a)084 b)x43 c)ab d)0(3)下面四個(gè)選項(xiàng)中,均是合法的轉(zhuǎn)義字符的選項(xiàng)是:下面四個(gè)選項(xiàng)中,均是合法的轉(zhuǎn)義字符的選項(xiàng)是: a) b) c)018 d)0 017 f 101 n , xab x1f()已知大寫(xiě)字母已知大寫(xiě)字母a的的ascii碼值是碼值是65,小寫(xiě)字母小寫(xiě)字母a的的ascii 碼是碼是97,則用八進(jìn)制表示的字符常量,則用八進(jìn)制表示的字符常量102是是 a)字符字符a b)字符字符a c)字符字符cd)字符字符b二、符號(hào)常量二、符號(hào)常

28、量 是用標(biāo)識(shí)符來(lái)表示一個(gè)數(shù)據(jù):是用標(biāo)識(shí)符來(lái)表示一個(gè)數(shù)據(jù): 如如 #define pi 3.14159 4 字符串常量字符串常量: 用雙引號(hào)括號(hào),如用雙引號(hào)括號(hào),如stri,abdn, (表示空表示空)等。等。定義形式定義形式: : #define 標(biāo)識(shí)符標(biāo)識(shí)符 常量數(shù)據(jù)常量數(shù)據(jù)在程序預(yù)處理時(shí),凡是出現(xiàn)標(biāo)識(shí)符在程序預(yù)處理時(shí),凡是出現(xiàn)標(biāo)識(shí)符pipi的地方都將用的地方都將用數(shù)據(jù)數(shù)據(jù)3.141593.14159來(lái)替換。來(lái)替換。1.1.變量的命名規(guī)則要符合標(biāo)識(shí)符變量的命名規(guī)則要符合標(biāo)識(shí)符( (見(jiàn)標(biāo)識(shí)符)見(jiàn)標(biāo)識(shí)符)2.2.變量的基本類(lèi)型變量的基本類(lèi)型: :整型變量整型變量, ,實(shí)型變量實(shí)型變量, ,字符變

29、量字符變量3.3.先定義,再使用。如:先定義,再使用。如:int a,bint a,b; float x,y;char a; float x,y;char a;4.c4.c語(yǔ)言中定義的變量,代表內(nèi)存中的一個(gè)地址語(yǔ)言中定義的變量,代表內(nèi)存中的一個(gè)地址5.5.變量的賦值符為變量的賦值符為= =,賦值表達(dá)式為,賦值表達(dá)式為: :變量變量= =表達(dá)式。表達(dá)式。 t=x+5t=x+5;p=q=r=9, x=x+1,x=(y=1)-(z=2)p=q=r=9, x=x+1,x=(y=1)-(z=2)等等, , 但但x= =9,a+b=cx= =9,a+b=c非法非法6.6.賦值表達(dá)式加分號(hào)就變成賦值語(yǔ)句。賦

30、值表達(dá)式加分號(hào)就變成賦值語(yǔ)句。2.5 變量變量變量變量: 在程序運(yùn)行過(guò)程中,其值能被改變的量c語(yǔ)言提供了多種運(yùn)算符,有些運(yùn)算符看起來(lái)語(yǔ)言提供了多種運(yùn)算符,有些運(yùn)算符看起來(lái)很簡(jiǎn)單,但不小心很容易出錯(cuò)很簡(jiǎn)單,但不小心很容易出錯(cuò)(18)(加),(加), (減、取負(fù)),(減、取負(fù)), (乘),(乘), (除),(除),%(模運(yùn)算)(模運(yùn)算)運(yùn)算符的優(yōu)先級(jí)為運(yùn)算符的優(yōu)先級(jí)為:()()*, / , %高高低低+,-在四則運(yùn)算中,有先乘除,后加減的規(guī)則。同樣,在程序在四則運(yùn)算中,有先乘除,后加減的規(guī)則。同樣,在程序中,也存在那個(gè)運(yùn)算符先進(jìn)行運(yùn)算,那個(gè)后進(jìn)行運(yùn)算的問(wèn)題,中,也存在那個(gè)運(yùn)算符先進(jìn)行運(yùn)算,那個(gè)后進(jìn)

31、行運(yùn)算的問(wèn)題,這些,稱為這些,稱為運(yùn)算符的優(yōu)先級(jí)運(yùn)算符的優(yōu)先級(jí)。一、一、 除法除法 a/b (b不能為不能為0)(1)a b兩數(shù)都是或一個(gè)是實(shí)數(shù)結(jié)果是實(shí)數(shù)兩數(shù)都是或一個(gè)是實(shí)數(shù)結(jié)果是實(shí)數(shù) 7/2.0=3.500(2) a b兩數(shù)都是整數(shù)結(jié)果是整數(shù)兩數(shù)都是整數(shù)結(jié)果是整數(shù)7/2=3, 9/2=4,-13/3=-4 例:例: 6 % 2,5 % 2,輸出結(jié)果為:輸出結(jié)果為:0 1關(guān)于取模運(yùn)算的說(shuō)明關(guān)于取模運(yùn)算的說(shuō)明例:例: -7%5 余數(shù)為余數(shù)為-2 7%-5 余數(shù)為余數(shù)為2二、算術(shù)表達(dá)式二、算術(shù)表達(dá)式用算術(shù)運(yùn)算符和括號(hào)將常量,變量及函數(shù)連起來(lái)的式子稱用算術(shù)運(yùn)算符和括號(hào)將常量,變量及函數(shù)連起來(lái)的式子稱

32、為算術(shù)表達(dá)式。為算術(shù)表達(dá)式。例例1 代數(shù)式代數(shù)式 3x2+x-2 相應(yīng)的算術(shù)表達(dá)式為:相應(yīng)的算術(shù)表達(dá)式為:3*pow(x,2)+x-2例例2 代數(shù)式代數(shù)式 5x6y2a相應(yīng)的算術(shù)表達(dá)式為:相應(yīng)的算術(shù)表達(dá)式為:a/2-(6*y)/(5*x)t=x+5例:例:y=(3*5,8+9); 例:例:y=(x=6,x+8); 表達(dá)式的值為表達(dá)式的值為10則則y=17則則y=14( )* ,/ , % 高低+,- , = - +,- 一、邏輯量的概念一、邏輯量的概念邏輯值: 真、假,或 t 、f表示方式: 0 表示假,非0表示真系統(tǒng)真值: 1二、關(guān)系運(yùn)算符二、關(guān)系運(yùn)算符關(guān)系運(yùn)算符 含義 例子 結(jié)果 優(yōu)先級(jí)

33、大于 4+69 小于 8= 大于或等于 6=5 = 小于或等于 8=7 = 等于 2+3=6 != 不等于 9+3!=12 t t t f f f相同,高相同,低?。ǚ牵?, &(與), | (或) 1、運(yùn)算符2、運(yùn)算法則(t 真, f 假)(書(shū)24頁(yè)表2.5) 值 邏輯非 邏輯與 邏輯或x y ! x x & y x| yt t t ff tf ff t tf f tt f tt f f用邏輯運(yùn)算符連接關(guān)系表達(dá)式的式子稱邏輯表達(dá)式。例 用邏輯表達(dá)式表達(dá)下述數(shù)學(xué)式(1) 0 x10 (2) x80(3) 10 x 30, 50 x 90相應(yīng)的邏輯表達(dá) (1) 0 x & x10(2) x180

34、(或 !(x=60 & x=10 & x=50 & x9?2*6:18 則則y=例:例:a=5,b=3 y=ab?a+b:b*a 則則y=18188 8格式格式: (類(lèi)型名)(表達(dá)式)(類(lèi)型名)(表達(dá)式)習(xí)題2 2 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)年增長(zhǎng)率年增長(zhǎng)率r、年數(shù)、年數(shù)n、第、第n年的總產(chǎn)值年的總產(chǎn)值s。而這幾。而這幾個(gè)量中,年增長(zhǎng)率肯定是小數(shù)(浮點(diǎn))型數(shù)據(jù),個(gè)量中,年增長(zhǎng)率肯定是小數(shù)(浮點(diǎn))型數(shù)據(jù),年數(shù)是整數(shù)(整型),總產(chǎn)值不會(huì)是整數(shù),應(yīng)為年數(shù)是整數(shù)(整型),總產(chǎn)值不會(huì)是整數(shù),應(yīng)為浮點(diǎn)數(shù)。這些數(shù)據(jù)都要放在相應(yīng)的浮點(diǎn)數(shù)。這些數(shù)據(jù)都要放在相應(yīng)的變量變量中。中。int n;float r ,s; 3 3

35、源程序代碼源程序代碼02cbxaxacabbxcab242,122,04abcaibxcab242,122,04 由于問(wèn)題簡(jiǎn)單,只需用到一些單精度實(shí)數(shù)由于問(wèn)題簡(jiǎn)單,只需用到一些單精度實(shí)數(shù)輸入方程系數(shù)輸入方程系數(shù) a a,b b,c c計(jì)算判別式計(jì)算判別式 d=bd=b* *b-4b-4* *a a* *c cif if 判別式判別式大于等于大于等于 0 then 0 then 計(jì)算兩個(gè)實(shí)根計(jì)算兩個(gè)實(shí)根 定位輸出光標(biāo)定位輸出光標(biāo) 打印結(jié)果打印結(jié)果 elseelse 計(jì)算實(shí)部計(jì)算實(shí)部 計(jì)算虛部計(jì)算虛部 定位輸出光標(biāo)定位輸出光標(biāo) 打印結(jié)果打印結(jié)果 end programend program#inc

36、lude #includemain() float a,b,d,c,x1,x2,p,q; printf( 輸入方程系數(shù)輸入方程系數(shù): ); scanf(%f,%f,%f,&a,&b,&c); d=b*b-4*a*c; if ( d=0) x1=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*a); printf( x1=%f,x2=%fn,x1,x2); else p=-b/(2*a); q=sqrt(-d)/(2*a); printf( x1=%f+i%f,x2=%f-i%fn,p,q,p,q); 求平方根的函數(shù)例例2.42.4 小寫(xiě)字母轉(zhuǎn)盤(pán)小寫(xiě)字母轉(zhuǎn)盤(pán), ,用戶輸

37、入一個(gè)小寫(xiě)字母用戶輸入一個(gè)小寫(xiě)字母, ,如輸入如輸入a a,則顯示則顯示b,b,輸入輸入b b則顯則顯c,c,以此類(lèi)推,輸入以此類(lèi)推,輸入z z則顯示則顯示a a。1.1.先定義字符變量先定義字符變量c c來(lái)接受從鍵盤(pán)輸入的值時(shí)來(lái)接受從鍵盤(pán)輸入的值時(shí)char c;char c;2.2.通過(guò)通過(guò)c-ac-a求出求出c c中的字母在字母序列中的序號(hào)中的字母在字母序列中的序號(hào)(a(a為為0,z0,z為為25),25), c-a+1 c-a+1得出下一個(gè)字母序號(hào),表達(dá)式(得出下一個(gè)字母序號(hào),表達(dá)式(c-a+1)%26,c-a+1)%26,使序號(hào)使序號(hào)2626 變成變成0,0,這樣字母這樣字母z z的序

38、號(hào)變成的序號(hào)變成0,0,再加上再加上aa就轉(zhuǎn)成字母就轉(zhuǎn)成字母a a,即,即 轉(zhuǎn)換公式為轉(zhuǎn)換公式為:(c-a+1)%26+a:(c-a+1)%26+a#includemain() char c;scanf(%c,&c); (這里可用這里可用c=getchar()c=(c-a+1)%26+a;printf(%cn,c);2 2 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)程序中要用的程序中要用的數(shù)據(jù)數(shù)據(jù),存放頭,存放頭h、腳數(shù)量、腳數(shù)量f的變量,存放的變量,存放方程解(雞方程解(雞x、兔、兔y數(shù)量)的數(shù)量)的變量變量,存放方程判別式的變量,存放方程判別式的變量等。對(duì)于頭、腳的數(shù)量,肯定是整型變量,方程的解理論等。對(duì)于頭、腳的

39、數(shù)量,肯定是整型變量,方程的解理論上講是整型,但在求解方程時(shí)要進(jìn)行運(yùn)算,為了避免發(fā)生上講是整型,但在求解方程時(shí)要進(jìn)行運(yùn)算,為了避免發(fā)生錯(cuò)誤,最好是用浮點(diǎn)數(shù)據(jù)。錯(cuò)誤,最好是用浮點(diǎn)數(shù)據(jù)。4 4 源程序代碼源程序代碼提示輸入數(shù)據(jù)的內(nèi)容分析分析: :1.1.小寫(xiě)字母與大寫(xiě)字母的小寫(xiě)字母與大寫(xiě)字母的asciiascii值相差值相差32322.2.小寫(xiě)字母的范圍表示為小寫(xiě)字母的范圍表示為 (x=a&x(x=a&x=z)=z)3.3.要使用條件運(yùn)算符要使用條件運(yùn)算符 ?:?:#includemain() char x;printf(please input a char:n);scanf(%c,&x); 或

40、或x=getchar();x=( x=a&x=z)?(x-32):xprintf(%c,x);分支結(jié)構(gòu)分支結(jié)構(gòu)問(wèn)題:1、從鍵盤(pán)輸入一個(gè)數(shù),如果該數(shù)為正,打印,否則不打?。?、從鍵盤(pán)輸入一個(gè)數(shù),如果該數(shù)為正,打印,否則不打??;2、將考試成績(jī)不及格的學(xué)生名單打印出來(lái);、將考試成績(jī)不及格的學(xué)生名單打印出來(lái);3、解一元二次方程,求出相應(yīng)的實(shí)根或復(fù)根。、解一元二次方程,求出相應(yīng)的實(shí)根或復(fù)根。 對(duì)于上述或類(lèi)似問(wèn)題,需要進(jìn)行某種判斷,對(duì)于上述或類(lèi)似問(wèn)題,需要進(jìn)行某種判斷,并根據(jù)不同情況進(jìn)行不同的處理,怎樣進(jìn)行程并根據(jù)不同情況進(jìn)行不同的處理,怎樣進(jìn)行程序設(shè)計(jì)?序設(shè)計(jì)?解決辦法:1、引入新的程序結(jié)構(gòu),分支結(jié)構(gòu),、

41、引入新的程序結(jié)構(gòu),分支結(jié)構(gòu), 有時(shí)也稱有時(shí)也稱 判斷結(jié)構(gòu)判斷結(jié)構(gòu) 或或 選擇結(jié)構(gòu)。選擇結(jié)構(gòu)。2、有三種形式可進(jìn)行分支結(jié)構(gòu)的程序設(shè)計(jì)、有三種形式可進(jìn)行分支結(jié)構(gòu)的程序設(shè)計(jì)a a、 if if 結(jié)構(gòu)結(jié)構(gòu)b b、多重選擇結(jié)構(gòu)(、多重選擇結(jié)構(gòu)(switchswitch語(yǔ)句)語(yǔ)句)c c、無(wú)條件轉(zhuǎn)移結(jié)構(gòu)(、無(wú)條件轉(zhuǎn)移結(jié)構(gòu)(gotogoto語(yǔ)句語(yǔ)句)if 條件條件真真 語(yǔ)句塊語(yǔ)句塊1else 語(yǔ)句塊語(yǔ)句塊2if,else 為關(guān)鍵字為關(guān)鍵字如果語(yǔ)句塊超過(guò)一條語(yǔ)句如果語(yǔ)句塊超過(guò)一條語(yǔ)句,則要用一對(duì)大括號(hào)將則要用一對(duì)大括號(hào)將語(yǔ)句塊括起作為復(fù)合語(yǔ)句語(yǔ)句塊括起作為復(fù)合語(yǔ)句esle 可省可省#includemain()

42、 char x;printf(please input a char:n);scanf(%c,&x); if( x=a&x=0)x2 (x0)#includemain() float y,x;scanf(%f,&x);if(x=0) y=2*x; printf(y=%f,y);else y=x*x; printf(y=%f,y); 例例 3.6 3.6 將輸入的字母轉(zhuǎn)化為小寫(xiě)字母。將輸入的字母轉(zhuǎn)化為小寫(xiě)字母。1 算法分析 在計(jì)算機(jī)中,處理英文字母,其實(shí)是處理它的在計(jì)算機(jī)中,處理英文字母,其實(shí)是處理它的ascii碼值。碼值。將大寫(xiě)字母變成小寫(xiě)字母,就是將大寫(xiě)字母的將大寫(xiě)字母變成小寫(xiě)字母,就是將大

43、寫(xiě)字母的ascii碼值變?yōu)榇a值變?yōu)橄鄳?yīng)的小寫(xiě)字母的相應(yīng)的小寫(xiě)字母的ascii碼值。碼值。 大寫(xiě)字母的大寫(xiě)字母的ascii值比小寫(xiě)字母的值比小寫(xiě)字母的ascii值小值小32,故將,故將相應(yīng)字母的相應(yīng)字母的ascii值加值加32就變成了小寫(xiě)字母。就變成了小寫(xiě)字母。 程序設(shè)計(jì)時(shí),要注意如果輸入的不是大寫(xiě)的字母,則程序設(shè)計(jì)時(shí),要注意如果輸入的不是大寫(xiě)的字母,則不用轉(zhuǎn)換。不用轉(zhuǎn)換。 /源代碼源代碼#includemain() char x;printf(please input a char:n);scanf(%c,&x); 或或x=getchar();x=( x=a&x=z)?(x+32):xprin

44、tf(%c,x); 例:從鍵盤(pán)輸入某一年,如例:從鍵盤(pán)輸入某一年,如1956,1956,判斷這一年是否是閏年,若是判斷這一年是否是閏年,若是 就顯示就顯示yesyes,若不是就顯示,若不是就顯示nono。 注:閏年的條件為注:閏年的條件為(1)能被能被4整除,但不能被整除,但不能被100整除整除 或或 (2)能被能被4整除,且又能被整除,且又能被400整除整除 #include main() int b; printf(please input years:n); scanf(%d,&b); if(b%4= =0&b%100!=0)| (b%400= =0) printf( yesn,); e

45、lse printf(non); 用關(guān)系運(yùn)符用關(guān)系運(yùn)符, =, , =, = =及邏輯運(yùn)算符及邏輯運(yùn)算符!,&,|將兩個(gè)算術(shù)表達(dá)將兩個(gè)算術(shù)表達(dá)式聯(lián)起來(lái)的式子,其值為邏輯值式聯(lián)起來(lái)的式子,其值為邏輯值(0或或1)。)。例:例:if(10= =56); if(a=10= =57+8); if(b=7!=73);例例#includemain() int a,b; a=10= =56; b=(10= =5)6; printf(%d,%dn,a,b);輸出結(jié)果輸出結(jié)果:0,1例例#includemain() int a,b; a=6*77+8; b=7!=73; printf(%d,%dn,a,b);輸

46、出結(jié)果輸出結(jié)果:1,1 一、一、if if 語(yǔ)句的變形語(yǔ)句的變形1、省略、省略 else語(yǔ)句語(yǔ)句 語(yǔ)法:語(yǔ)法: if 邏輯表達(dá)式邏輯表達(dá)式真真 語(yǔ)句體語(yǔ)句體 2、增加、增加 else if 語(yǔ)句語(yǔ)句 語(yǔ)法:語(yǔ)法: if 邏輯表達(dá)式邏輯表達(dá)式1真真 語(yǔ)句體語(yǔ)句體 1 else if 邏輯表達(dá)式邏輯表達(dá)式2真真 語(yǔ)句體語(yǔ)句體 2 . . else 語(yǔ)句體語(yǔ)句體 n if (邏輯表達(dá)式邏輯表達(dá)式) 真真 復(fù)合語(yǔ)句復(fù)合語(yǔ)句 1 真否?復(fù)合語(yǔ)句1執(zhí)行復(fù)合語(yǔ)句1后的語(yǔ)句ftif 的執(zhí)行過(guò)程的執(zhí)行過(guò)程if語(yǔ)句兩種變形語(yǔ)句兩種變形 if(邏輯表達(dá)式邏輯表達(dá)式)例例: :從鍵盤(pán)輸入一個(gè)整數(shù)從鍵盤(pán)輸入一個(gè)整數(shù),

47、,若為正,若為正,則輸出該數(shù)的平方,否則不輸出。則輸出該數(shù)的平方,否則不輸出。即:即:y=xy=x2 2(x0)(x0)#includemain()int x,y;scanf(%d,&x);if(x0)y=x*x; printf(x2=%f,y);第一種變形:省略第一種變形:省略else語(yǔ)句語(yǔ)句執(zhí)行復(fù)合語(yǔ)句1后的語(yǔ)句if (邏輯表達(dá)式邏輯表達(dá)式1) 真真 復(fù)合語(yǔ)句復(fù)合語(yǔ)句 1 if (邏輯表達(dá)式邏輯表達(dá)式2) 真真 復(fù)合語(yǔ)句復(fù)合語(yǔ)句 2 .if (邏輯表達(dá)式邏輯表達(dá)式n) 真真 復(fù)合語(yǔ)句復(fù)合語(yǔ)句n 第一種變形:省略第一種變形:省略else語(yǔ)句語(yǔ)句從鍵盤(pán)輸入一個(gè)數(shù)從鍵盤(pán)輸入一個(gè)數(shù),求求y的值的值

48、y=2*x (x0)0 (x=0)x2 (x0)當(dāng)條件較多時(shí),可用多個(gè)省當(dāng)條件較多時(shí),可用多個(gè)省略了略了else的的if語(yǔ)句。語(yǔ)句。#include main() float y,x; scanf(%f,&x); if(x0) y=2*x; printf(y=%f,y); if(x= =0) y=0; printf(y=%f,y); if(x0)x2 (x0)x2 (x0)0 (x=0)#include main() float y,x; scanf(%f,&x); if(x0) y=2*x; printf(y=%f,y); else if(x= =0) y=0; printf(y=%f,y)

49、; else y=x*x; printf(y=%f,y); 演示演示1例例 3.23.2 商店售貨,按購(gòu)買(mǎi)貨物款的多少分別給予不同的商店售貨,按購(gòu)買(mǎi)貨物款的多少分別給予不同的 優(yōu)惠折扣,編程計(jì)算實(shí)際應(yīng)付貨款。優(yōu)惠折扣,編程計(jì)算實(shí)際應(yīng)付貨款。購(gòu)貨不足購(gòu)貨不足250元,沒(méi)有折扣;元,沒(méi)有折扣;購(gòu)貨購(gòu)貨250元(含元(含250元,下同),不足元,下同),不足500元,減價(jià)元,減價(jià)5%;購(gòu)貨購(gòu)貨500元,不足元,不足1000元,減價(jià)元,減價(jià)7.5%;購(gòu)貨購(gòu)貨1000元元,不足不足2000元,減價(jià)元,減價(jià)10%;購(gòu)貨購(gòu)貨2000元及以上,減價(jià)元及以上,減價(jià)15%;1、算法分析、算法分析: 設(shè)購(gòu)物款為設(shè)購(gòu)

50、物款為m,折扣為,折扣為d,則,則d可表示為:可表示為: d=0 (m250) d=0.05 (250 m500) d=0.075 (500 m1000) d=0.1 (1000 m2000) d=0.15 (2000m)2、源程序清單、源程序清單#includemain() float m,d,t; printf(請(qǐng)輸入購(gòu)物金額請(qǐng)輸入購(gòu)物金額: ); scanf(%f,&m); if ( m=250 & m=500 & m=1000 & m=2000) d=0.15; t=m*(1-d); printf( 實(shí)際應(yīng)付款實(shí)際應(yīng)付款:%f,t); 輸入購(gòu)物款輸入購(gòu)物款: 249實(shí)際應(yīng)付款實(shí)際應(yīng)付款

51、:249輸入購(gòu)物款輸入購(gòu)物款: 500實(shí)際應(yīng)付款實(shí)際應(yīng)付款:462.5演示演示2例例 3.33.3 用else if購(gòu)物折扣程序的另一個(gè)寫(xiě)法購(gòu)物折扣程序的另一個(gè)寫(xiě)法改寫(xiě)后,程序更清晰,執(zhí)行時(shí)間更省。#includemain() float m,d,t; printf(請(qǐng)輸入購(gòu)物金額請(qǐng)輸入購(gòu)物金額: ); scanf(%f,&m); if(m=250 & m=500 & m=1000 & m=2000)d=0.15; t=m*(1-d); printf( 實(shí)際應(yīng)付款實(shí)際應(yīng)付款:%f,t); if (邏輯表達(dá)式邏輯表達(dá)式) 真真 復(fù)合語(yǔ)句復(fù)合語(yǔ)句 1 else 復(fù)合語(yǔ)句復(fù)合語(yǔ)句 2 分支結(jié)構(gòu)分支結(jié)

52、構(gòu) ifif語(yǔ)句語(yǔ)句第一種變形第一種變形:省略省略else語(yǔ)句語(yǔ)句if (邏輯表達(dá)式邏輯表達(dá)式) 真真 復(fù)合語(yǔ)句復(fù)合語(yǔ)句 1 第二種變形第二種變形:增加增加else if語(yǔ)句語(yǔ)句 語(yǔ)法語(yǔ)法: if 邏輯表達(dá)式邏輯表達(dá)式1真真 語(yǔ)句體語(yǔ)句體 1 else if 邏輯表達(dá)式邏輯表達(dá)式2真真 語(yǔ)句體語(yǔ)句體 2 else if 邏輯表達(dá)式邏輯表達(dá)式3 真真 語(yǔ)句體語(yǔ)句體 3 . else 語(yǔ)句體語(yǔ)句體 n if (邏輯表達(dá)式邏輯表達(dá)式1) 真真 復(fù)合語(yǔ)句復(fù)合語(yǔ)句 1 if (邏輯表達(dá)式邏輯表達(dá)式2) 真真 復(fù)合語(yǔ)句復(fù)合語(yǔ)句 2 .if (邏輯表達(dá)式邏輯表達(dá)式n) 真真 復(fù)合語(yǔ)句復(fù)合語(yǔ)句n 當(dāng)條件較多時(shí)

53、,可用多個(gè)省當(dāng)條件較多時(shí),可用多個(gè)省略了略了else的的if語(yǔ)句。語(yǔ)句。在一個(gè) if 語(yǔ)句中可以包含另外一個(gè) if 語(yǔ)句。 if 邏輯表達(dá)式 t if 邏輯表達(dá)式t 語(yǔ)句塊 2 else 語(yǔ)句塊3 else 語(yǔ)句塊 4else else 語(yǔ)句與最近的語(yǔ)句與最近的 ifif語(yǔ)語(yǔ)句配套,大句配套,大括號(hào)要配對(duì)。括號(hào)要配對(duì)。語(yǔ)句塊語(yǔ)句塊1以下程序的輸出結(jié)果是以下程序的輸出結(jié)果是#inlcudestdio.h#inlcude main()main() int x=2,y=-1,z=2; int x=2,y=-1,z=2; if(xy) if(xy) if(y0) z=0; if(y0) z=0; el

54、se z+=1; else z+=1; else else printf(%dn,z printf(%dn,z); ); a a)3 b3 b)2 c2 c)1 d1 d)0 0語(yǔ)句塊語(yǔ)句塊1注意:注意:演示演示3在一個(gè)在一個(gè) if 語(yǔ)句中可以包含另外一個(gè)語(yǔ)句中可以包含另外一個(gè) if 語(yǔ)句。語(yǔ)句。 if 邏輯表達(dá)式邏輯表達(dá)式 t 語(yǔ)句塊語(yǔ)句塊 1 else if邏輯表達(dá)式邏輯表達(dá)式 t 語(yǔ)句塊語(yǔ)句塊3 else 語(yǔ)句塊語(yǔ)句塊 4else else 語(yǔ)句與最近的語(yǔ)句與最近的 ifif配配套套, ,大大括號(hào)要配對(duì)。括號(hào)要配對(duì)。語(yǔ)句塊語(yǔ)句塊2以下程序的輸出結(jié)果以下程序的輸出結(jié)果是:是:#inlcud

55、estdio.h#inlcude main()main() int x=2,y=-1,z=2; int x=2,y=-1,z=2; if(xy) if(xy) z=0; z=0; else else if(y0) z+=1; if(y0) z+=1; else z else z* *=2;=2; printf(%dn,z printf(%dn,z); ); a a)3 b3 b)2 c2 c)1 d1 d)0 0語(yǔ)句塊語(yǔ)句塊2注意:注意:演示演示4#includemain() int x,y,z; printf(iput x,y,z:); scanf(%d,%d,%d,&x,&y,&z); i

56、f ( x0) if (y0 ) if (z0) printf( 所有數(shù)據(jù)大于零所有數(shù)據(jù)大于零!); else printf( 只有只有x,y大于零大于零!); else if (x=0) if (y=0) if (z=0) printf( 所有數(shù)據(jù)都為零所有數(shù)據(jù)都為零!); else printf( 只有只有x,y等于零等于零!); else printf( x 小于零小于零!);例例 3.53.5 演示5 嵌套不能太深,一般以三層為限,嵌套太深,容易出錯(cuò)。嵌嵌套套演演示示程程序序例例2.4 2.4 小寫(xiě)字母轉(zhuǎn)盤(pán)小寫(xiě)字母轉(zhuǎn)盤(pán), ,用戶輸入一個(gè)小寫(xiě)字母用戶輸入一個(gè)小寫(xiě)字母, ,如輸入如輸入a

57、a,則顯示則顯示b,b,輸入輸入b b則顯則顯c,c,以此類(lèi)推,輸入以此類(lèi)推,輸入z z則顯示則顯示a a。#includemain() char c;c=getchar();c=(c-a+1)%26+a;printf(%cn,c);#includemain() char c;c=getchar();if(c=a&c=y) c=c+1;else c=a;printf(%cn,c);用用if語(yǔ)句編寫(xiě)語(yǔ)句編寫(xiě)例例2.8 2.8 輸入一個(gè)正整數(shù),判斷是否是輸入一個(gè)正整數(shù),判斷是否是5 5又是又是7 7的倍數(shù),的倍數(shù),如是顯示如是顯示yes,yes,否則顯示否則顯示nono。#includemain(

58、) int x; printf(please input date!n); scanf(%d,&x); if(x%5=0&x%7=0) printf(yes); else printf(no);演示演示6main() char ch; scanf(%c,&ch); ch=(ch=a & chb?a:cd?c:d ab?a:(cd?c:d)此處使用了條件運(yùn)算符main() char ch; scanf(%c,&ch); if (ch=a & ch=z) ch=ch+32; printf(%c,ch);例:輸入大寫(xiě)字母,轉(zhuǎn)成小寫(xiě)字母輸出。例:輸入大寫(xiě)字母,轉(zhuǎn)成小寫(xiě)字母輸出。 #include ma

59、in() int i; printf(輸入數(shù)字輸入數(shù)字 1- 7: ); scanf(%d,&i); if (i= =1) printf ( today is monday!n); else if (i= =2) printf (today is tuesday!n); else if (i= =3) printf (today is wednesday !n); else if (i= =4) printf( today is thursday!n); else if (i= =5) printf( today is friday!n); else if (i= =6) printf( to

60、day is saturday!n); else printf( today is sunday!n);例:輸入星期中例:輸入星期中的某一天(的某一天(1-71-7天)天), ,顯示對(duì)應(yīng)顯示對(duì)應(yīng)的英文星期幾。的英文星期幾。演示演示7例例 3.43.4 從鍵盤(pán)輸入一字符從鍵盤(pán)輸入一字符,如果為如果為y,則打印是則打印是,為為n,打印否打印否,其它其它 字符字符,打印輸入錯(cuò)誤。打印輸入錯(cuò)誤。#includemain() char a; printf(輸入一個(gè)字符:輸入一個(gè)字符:); a=getchar(); if( a= =y | a= =n ) if (a=y) printf( 是是); els

溫馨提示

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