第3章-最簡(jiǎn)單的C程序設(shè)計(jì)課件_第1頁
第3章-最簡(jiǎn)單的C程序設(shè)計(jì)課件_第2頁
第3章-最簡(jiǎn)單的C程序設(shè)計(jì)課件_第3頁
第3章-最簡(jiǎn)單的C程序設(shè)計(jì)課件_第4頁
第3章-最簡(jiǎn)單的C程序設(shè)計(jì)課件_第5頁
已閱讀5頁,還剩185頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3章最簡(jiǎn)單的C程序設(shè)計(jì)第3章最簡(jiǎn)單的C程序設(shè)計(jì)第3章最簡(jiǎn)單的C程序設(shè)計(jì)3.1順序程序設(shè)計(jì)舉例例3.1有人用溫度計(jì)測(cè)量出用華氏法表示的溫度(如F,今要求把它轉(zhuǎn)換為以攝氏法表示的溫度(如C)。解題思路:找到二者間的轉(zhuǎn)換公式f代表華氏溫度,c代表攝氏溫度第3章最簡(jiǎn)單的C程序設(shè)計(jì)第3章最簡(jiǎn)單的C程序設(shè)計(jì)第3章13.1順序程序設(shè)計(jì)舉例

例3.1有人用溫度計(jì)測(cè)量出用華氏法表示的溫度(如F,今要求把它轉(zhuǎn)換為以攝氏法表示的溫度(如C)。解題思路:找到二者間的轉(zhuǎn)換公式f代表華氏溫度,c代表攝氏溫度3.1順序程序設(shè)計(jì)舉例例3.1有人用溫度計(jì)測(cè)量出用華氏23.1順序程序設(shè)計(jì)舉例算法:輸入f的值輸出c的值

例3.1有人用溫度計(jì)測(cè)量出用華氏法表示的溫度(如F,今要求把它轉(zhuǎn)換為以攝氏法表示的溫度(如C)。N-S圖3.1順序程序設(shè)計(jì)舉例算法:輸入f的值輸出c的值例3.133.1順序程序設(shè)計(jì)舉例#include<stdio.h>intmain(){floatf,c;f=64.0;c=(5.0/9)*(f-32);printf("f=%f\nc=%f\n",f,c);return0;}定義f和c為單精度浮點(diǎn)型變量指定f的值計(jì)算c的值輸出f和c的值3.1順序程序設(shè)計(jì)舉例#include<stdio.h>定43.1順序程序設(shè)計(jì)舉例

例3.2計(jì)算存款利息。有1000元,想存一年。有三種方法可選:(1)活期,年利率為r1(2)一年期定期,年利率為r2(3)存兩次半年定期,年利率為r3

請(qǐng)分別計(jì)算出一年后按三種方法所得到的本息和。3.1順序程序設(shè)計(jì)舉例例3.2計(jì)算存款利息。有100053.1順序程序設(shè)計(jì)舉例解題思路:確定計(jì)算本息和的公式。從數(shù)學(xué)知識(shí)可知:若存款額為p0,則:活期存款一年后本息和為:

p1=p0(1+r1)一年期定期存款,一年后本息和為:

p2=p0(1+r2)兩次半年定期存款,一年后本息和為:

3.1順序程序設(shè)計(jì)舉例解題思路:確定計(jì)算本息和的公式。63.1順序程序設(shè)計(jì)舉例算法:輸入p0,r1,r2,r3的值計(jì)算p1=p0(1+r1)計(jì)算p2=p0(1+r2)計(jì)算p3=p0(1+)(1+)輸出p1,p2,p33.1順序程序設(shè)計(jì)舉例算法:輸入p0,r1,r2,r3的值計(jì)73.1順序程序設(shè)計(jì)舉例#include<stdio.h>intmain(){floatp0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3;p1=p0*(1+r1);p2=p0*(1+r2);p3=p0*(1+r3/2)*(1+r3/2);printf(”%f\n%f\n%f\n”,p1,p2,p3);return0;}定義變量同時(shí)賦予初值3.1順序程序設(shè)計(jì)舉例#include<stdio.h>定83.2數(shù)據(jù)的表現(xiàn)形式及其運(yùn)算3.2.1常量和變量3.2.2數(shù)據(jù)類型3.2.3整型數(shù)據(jù)3.2.4字符型數(shù)據(jù)3.2.5浮點(diǎn)型數(shù)據(jù)3.2.6怎樣確定常量的類型3.2.7運(yùn)算符和表達(dá)式3.2數(shù)據(jù)的表現(xiàn)形式及其運(yùn)算3.2.1常量和變量93.2.1常量和變量1.常量:在程序運(yùn)行過程中,其值不能被改變的量整型常量:如1000,12345,0,-345實(shí)型常量十進(jìn)制小數(shù)形式:如0.34-56.790.0指數(shù)形式:如12.34e3(代表12.34103)字符常量:如’?’轉(zhuǎn)義字符:如’\n’字符串常量:如”boy”符號(hào)常量:#definePI3.14163.2.1常量和變量1.常量:在程序運(yùn)行過程中,其值不能被103.2.1常量和變量2.變量:在程序運(yùn)行期間,變量的值是可以改變的變量必須先定義,后使用定義變量時(shí)指定該變量的名字和類型變量名和變量值是兩個(gè)不同的概念變量名實(shí)際上是以一個(gè)名字代表的一個(gè)存儲(chǔ)地址從變量中取值,實(shí)際上是通過變量名找到相應(yīng)的內(nèi)存地址,從該存儲(chǔ)單元中讀取數(shù)據(jù)3.2.1常量和變量2.變量:在程序運(yùn)行期間,變量的值是113.2.1常量和變量3.常變量:constinta=3;4.標(biāo)識(shí)符:一個(gè)對(duì)象的名字C語言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線3種字符組成,且第一個(gè)字符必須為字母或下劃線合法的標(biāo)識(shí)符:如sum,average,_total,Class,day,BASIC,li_ling不合法的標(biāo)識(shí)符:M.D.John,¥123,#33,3D64,a>b大小寫字母是不同的字符3.2.1常量和變量3.常變量:constinta=3123.2.2數(shù)據(jù)類型所謂類型,就是對(duì)數(shù)據(jù)分配存儲(chǔ)單元的安排,包括存儲(chǔ)單元的長(zhǎng)度(占多少字節(jié))以及數(shù)據(jù)的存儲(chǔ)形式不同的類型分配不同的長(zhǎng)度和存儲(chǔ)形式3.2.2數(shù)據(jù)類型所謂類型,就是對(duì)數(shù)據(jù)分配存儲(chǔ)單元的安排,133.2.2數(shù)據(jù)類型C語言允許使用的數(shù)據(jù)類型:基本類型整型類型基本整型短整型長(zhǎng)整型雙長(zhǎng)整型字符型布爾型浮點(diǎn)類型單精度浮點(diǎn)型雙精度浮點(diǎn)型復(fù)數(shù)浮點(diǎn)型3.2.2數(shù)據(jù)類型C語言允許使用的數(shù)據(jù)類型:浮點(diǎn)類型143.2.2數(shù)據(jù)類型C語言允許使用的數(shù)據(jù)類型:基本類型枚舉類型空類型派生類型指針類型數(shù)組類型結(jié)構(gòu)體類型共用體類型函數(shù)類型算術(shù)類型純量類型3.2.2數(shù)據(jù)類型C語言允許使用的數(shù)據(jù)類型:算術(shù)類型純量類153.2.3整型數(shù)據(jù)1.整型數(shù)據(jù)的分類最基本的整型類型基本整型(int型):占2個(gè)或4個(gè)字節(jié)短整型(shortint):VC++6.0中占2個(gè)字節(jié)長(zhǎng)整型(longint):VC++6.0中占4個(gè)字節(jié)雙長(zhǎng)整型(longlongint):C99新增的3.2.3整型數(shù)據(jù)1.整型數(shù)據(jù)的分類163.2.3整型數(shù)據(jù)1.整型數(shù)據(jù)的分類2.整型變量的符號(hào)屬性整型變量的值的范圍包括負(fù)數(shù)到正數(shù)可以將變量定義為“無符號(hào)”類型擴(kuò)充的整形類型:3.2.3整型數(shù)據(jù)1.整型數(shù)據(jù)的分類173.2.3整型數(shù)據(jù)擴(kuò)充的整型類型:有符號(hào)基本整型[signed]int;無符號(hào)基本整型unsignedint;有符號(hào)短整型[signed]short[int];無符號(hào)短整型unsignedshort[int];有符號(hào)長(zhǎng)整型[signed]long[int];無符號(hào)長(zhǎng)整型unsignedlong[int]有符號(hào)雙長(zhǎng)整型[signed]longlong[int];無符號(hào)雙長(zhǎng)整型unsignedlonglong[int]3.2.3整型數(shù)據(jù)擴(kuò)充的整型類型:183.2.4字符型數(shù)據(jù)字符是按其代碼(整數(shù))形式存儲(chǔ)的C99把字符型數(shù)據(jù)作為整數(shù)類型的一種字符型數(shù)據(jù)在使用上有自己的特點(diǎn)3.2.4字符型數(shù)據(jù)字符是按其代碼(整數(shù))形式存儲(chǔ)的193.2.4字符型數(shù)據(jù)1.字符與字符代碼大多數(shù)系統(tǒng)采用ASCII字符集字母:A~Z,a~z數(shù)字:0~9專門符號(hào):29個(gè):!”#&‘()*等空格符:空格、水平制表符、換行等不能顯示的字符:空(null)字符(以‘\0’表示)、警告(以‘\a’表示)、退格(以‘\b’表示)、回車(以‘\r’表示)等3.2.4字符型數(shù)據(jù)1.字符與字符代碼203.2.4字符型數(shù)據(jù)字符’1’和整數(shù)1是不同的概念:字符’1’只是代表一個(gè)形狀為’1’的符號(hào),在需要時(shí)按原樣輸出,在內(nèi)存中以ASCII碼形式存儲(chǔ),占1個(gè)字節(jié)整數(shù)1是以整數(shù)存儲(chǔ)方式(二進(jìn)制補(bǔ)碼方式)存儲(chǔ)的,占2個(gè)或4個(gè)字節(jié)0011000100000000000000013.2.4字符型數(shù)據(jù)字符’1’和整數(shù)1是不同的概念:00213.2.4字符型數(shù)據(jù)2.字符變量用類型符char定義字符變量charc=’?’;

系統(tǒng)把“?”的ASCII代碼63賦給變量cprintf(”%d%c\n”,c,c);輸出結(jié)果是:63?3.2.4字符型數(shù)據(jù)2.字符變量223.2.5浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)是用來表示具有小數(shù)點(diǎn)的實(shí)數(shù)float型(單精度浮點(diǎn)型)編譯系統(tǒng)為float型變量分配4個(gè)字節(jié)數(shù)值以規(guī)范化的二進(jìn)制數(shù)指數(shù)形式存放參見主教材圖3.113.2.5浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)是用來表示具有小數(shù)點(diǎn)的實(shí)數(shù)233.2.5浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)是用來表示具有小數(shù)點(diǎn)的實(shí)數(shù)float型(單精度浮點(diǎn)型)double型(雙精度浮點(diǎn)型)編譯系統(tǒng)為double型變量分配8個(gè)字節(jié)15位有效數(shù)字longdouble(長(zhǎng)雙精度)型3.2.5浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)是用來表示具有小數(shù)點(diǎn)的實(shí)數(shù)243.2.6怎樣確定常量的類型字符常量:由單撇號(hào)括起來的單個(gè)字符或轉(zhuǎn)義字符整型常量:不帶小數(shù)點(diǎn)的數(shù)值系統(tǒng)根據(jù)數(shù)值的大小確定int型還是long型等浮點(diǎn)型常量:凡以小數(shù)形式或指數(shù)形式出現(xiàn)的實(shí)數(shù)C編譯系統(tǒng)把浮點(diǎn)型常量都按雙精度處理分配8個(gè)字節(jié)3.2.6怎樣確定常量的類型字符常量:由單撇號(hào)括起來的單個(gè)253.2.7運(yùn)算符和表達(dá)式1.基本的算術(shù)運(yùn)算符:+:正號(hào)運(yùn)算符(單目運(yùn)算符)-:負(fù)號(hào)運(yùn)算符(單目運(yùn)算符)*:乘法運(yùn)算符/:除法運(yùn)算符%:求余運(yùn)算符+:加法運(yùn)算符-:減法運(yùn)算符3.2.7運(yùn)算符和表達(dá)式1.基本的算術(shù)運(yùn)算符:263.2.7運(yùn)算符和表達(dá)式說明兩個(gè)整數(shù)相除的結(jié)果為整數(shù)如5/3的結(jié)果值為1,舍去小數(shù)部分如果除數(shù)或被除數(shù)中有一個(gè)為負(fù)值,舍入方向不固定。例如,-5/3,有的系統(tǒng)中得到的結(jié)果為-1,在有的系統(tǒng)中則得到結(jié)果為-2VC++采取“向零取整”的方法

如5/3=1,-5/3=-1,取整后向零靠攏%運(yùn)算符要求參加運(yùn)算的運(yùn)算對(duì)象(即操作數(shù))為整數(shù),結(jié)果也是整數(shù)。如8%3,結(jié)果為23.2.7運(yùn)算符和表達(dá)式說明273.2.7運(yùn)算符和表達(dá)式2.自增、自減運(yùn)算符:作用是使變量的值1或減1++i,--i:在使用i之前,先使i的值加(減)1i++,i--:在使用i之后,使i的值加(減)13.2.7運(yùn)算符和表達(dá)式2.自增、自減運(yùn)算符:283.2.7運(yùn)算符和表達(dá)式3.算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性:用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(也稱操作數(shù))連接起來的、符合C語法規(guī)則的式子,稱為C算術(shù)表達(dá)式運(yùn)算對(duì)象包括常量、變量、函數(shù)等C語言規(guī)定了運(yùn)算符的優(yōu)先級(jí)和結(jié)合性3.2.7運(yùn)算符和表達(dá)式3.算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與293.2.7運(yùn)算符和表達(dá)式4.不同類型數(shù)據(jù)間的混合運(yùn)算:+、-、*、/運(yùn)算的兩個(gè)數(shù)中有一個(gè)數(shù)為float或double型,結(jié)果是double型。系統(tǒng)將float型數(shù)據(jù)都先轉(zhuǎn)換為double型,然后進(jìn)行運(yùn)算(2)如果int型與float或double型數(shù)據(jù)進(jìn)行運(yùn)算,先把int型和float型數(shù)據(jù)轉(zhuǎn)換為double型,然后進(jìn)行運(yùn)算,結(jié)果是double型(3)字符型數(shù)據(jù)與整型數(shù)據(jù)進(jìn)行運(yùn)算,就是把字符的ASCII代碼與整型數(shù)據(jù)進(jìn)行運(yùn)算3.2.7運(yùn)算符和表達(dá)式4.不同類型數(shù)據(jù)間的混合運(yùn)算:303.2.7運(yùn)算符和表達(dá)式

例3.3給定一個(gè)大寫字母,要求用小寫字母輸出。解題思路:關(guān)鍵是找到大、小寫字母間的內(nèi)在聯(lián)系同一個(gè)字母,用小寫表示的字符的ASCII代碼比用大寫表示的字符的ASCII代碼大323.2.7運(yùn)算符和表達(dá)式例3.3給定一個(gè)大寫字母,313.2.7運(yùn)算符和表達(dá)式#include<stdio.h>intmain(){charc1,c2;c1=’A’;c2=c1+32;printf("%c\n",c2);printf(”%d\n”,c2);return0;}將字符‘A’的ASCII代碼65放到c1中將65+32的結(jié)果放到c2中用字符形式輸出用十進(jìn)制形式輸出3.2.7運(yùn)算符和表達(dá)式#include<stdio.h323.2.7運(yùn)算符和表達(dá)式5.強(qiáng)制類型轉(zhuǎn)換運(yùn)算符強(qiáng)制類型轉(zhuǎn)換運(yùn)算符的一般形式為

(類型名)(表達(dá)式)(double)a(將a轉(zhuǎn)換成double類型)(int)(x+y)(將x+y的值轉(zhuǎn)換成int型)(float)(5%3)(將5%3的值轉(zhuǎn)換成float型)有兩種類型轉(zhuǎn)換系統(tǒng)自動(dòng)進(jìn)行的類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換3.2.7運(yùn)算符和表達(dá)式5.強(qiáng)制類型轉(zhuǎn)換運(yùn)算符333.2.7運(yùn)算符和表達(dá)式6.C運(yùn)算符(1)算術(shù)運(yùn)算符

(+-*/%++--)(2)關(guān)系運(yùn)算符

(><==>=<=?。剑?3)邏輯運(yùn)算符

(?。Γ|)(4)位運(yùn)算符

(<<>>~|∧&)(5)賦值運(yùn)算符

(=及其擴(kuò)展賦值運(yùn)算符)(6)條件運(yùn)算符

(?:)3.2.7運(yùn)算符和表達(dá)式6.C運(yùn)算符343.2.7運(yùn)算符和表達(dá)式6.C運(yùn)算符(7)逗號(hào)運(yùn)算符

(,)(8)指針運(yùn)算符

(*和&)(9)求字節(jié)數(shù)運(yùn)算符

(sizeof)(10)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符

((類型))(11)成員運(yùn)算符

(.->)(12)下標(biāo)運(yùn)算符

([

])(13)其他

(如函數(shù)調(diào)用運(yùn)算符())3.2.7運(yùn)算符和表達(dá)式6.C運(yùn)算符353.3C語句3.3.1C語句的作用和分類3.3.2最基本的語句----賦值語句3.3C語句3.3.1C語句的作用和分類363.3.1 C語句的作用和分類C語句分為以下5類:(1)控制語句:if、switch、for、while、do…while、continue、break、return、goto等(2)函數(shù)調(diào)用語句(3)表達(dá)式語句(4)空語句(5)復(fù)合語句3.3.1 C語句的作用和分類C語句分為以下5類:373.3.2最基本的語句----賦值語句在C程序中,最常用的語句是:賦值語句輸入輸出語句其中最基本的是賦值語句3.3.2最基本的語句----賦值語句在C程序中,最常用的383.3.2最基本的語句----賦值語句

例3.4給出三角形的三邊長(zhǎng),求三角形面積。3.3.2最基本的語句----賦值語句例3.4給出393.3.2最基本的語句----賦值語句解題思路:假設(shè)給定的三個(gè)邊符合構(gòu)成三角形的條件關(guān)鍵是找到求三角形面積的公式公式為:其中s=(a+b+c)/23.3.2最基本的語句----賦值語句解題思路:假設(shè)給定的40#include<stdio.h>#include<math.h>intmain(){doublea,b,c,s,area;a=3.67;b=5.43;c=6.21;s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%f\tb=%f\t%f\n",a,b,c);printf("area=%f\n",area);return0;}對(duì)邊長(zhǎng)a、b、c賦值計(jì)算s計(jì)算area#include<stdio.h>對(duì)邊長(zhǎng)a、b、c賦值計(jì)算41#include<stdio.h>#include<math.h>intmain(){doublea,b,c,s,area;a=3.67;b=5.43;c=6.21;s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%f\tb=%f\t%f\n",a,b,c);printf("area=%f\n",area);return0;}數(shù)學(xué)函數(shù),計(jì)算平方根調(diào)用數(shù)學(xué)函數(shù)加此行#include<stdio.h>數(shù)學(xué)函數(shù),計(jì)算平方根調(diào)用42#include<stdio.h>#include<math.h>intmain(){doublea,b,c,s,area;a=3.67;b=5.43;c=6.21;s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%f\tb=%f\t%f\n",a,b,c);printf("area=%f\n",area);return0;}轉(zhuǎn)義字符,使輸出位置跳到下一個(gè)tab位置調(diào)用數(shù)學(xué)函數(shù)加此行#include<stdio.h>轉(zhuǎn)義字符,使輸出位置跳到43歸納總結(jié):1.賦值運(yùn)算符“=”是賦值運(yùn)算符作用是將一個(gè)數(shù)據(jù)賦給一個(gè)變量也可以將一個(gè)表達(dá)式的值賦給一個(gè)變量歸納總結(jié):44歸納總結(jié):1.賦值運(yùn)算符2.復(fù)合的賦值運(yùn)算符在賦值符“=”之前加上其他運(yùn)算符,可以構(gòu)成復(fù)合的運(yùn)算符a+=3

等價(jià)于

a=a+3歸納總結(jié):45歸納總結(jié):1.賦值運(yùn)算符2.復(fù)合的賦值運(yùn)算符3.賦值表達(dá)式一般形式為:

變量

賦值運(yùn)算符

表達(dá)式對(duì)賦值表達(dá)式求解的過程:求賦值運(yùn)算符右側(cè)的“表達(dá)式”的值賦給賦值運(yùn)算符左側(cè)的變量歸納總結(jié):46歸納總結(jié):1.賦值運(yùn)算符2.復(fù)合的賦值運(yùn)算符3.賦值表達(dá)式賦值表達(dá)式“a=3*5”的值為15,對(duì)表達(dá)式求解后,變量a的值和表達(dá)式的值都是15“a=(b=5)”和“a=b=5”等價(jià)“a=b”和“b=a”含義不同歸納總結(jié):47歸納總結(jié):1.賦值運(yùn)算符2.復(fù)合的賦值運(yùn)算符3.賦值表達(dá)式4.賦值過程中的類型轉(zhuǎn)換兩側(cè)類型一致時(shí),直接賦值兩側(cè)類型不一致,但都是算術(shù)類型時(shí),自動(dòng)將右側(cè)的類型轉(zhuǎn)換為左側(cè)類型后賦值定義變量時(shí)要防止數(shù)據(jù)溢出歸納總結(jié):48歸納總結(jié):1.賦值運(yùn)算符2.復(fù)合的賦值運(yùn)算符3.賦值表達(dá)式4.賦值過程中的類型轉(zhuǎn)換5.賦值表達(dá)式和賦值語句賦值表達(dá)式的末尾沒有分號(hào),而賦值語句有分號(hào)一個(gè)表達(dá)式可以包含賦值表達(dá)式,但決不能包含賦值語句歸納總結(jié):49歸納總結(jié):1.賦值運(yùn)算符2.復(fù)合的賦值運(yùn)算符3.賦值表達(dá)式4.賦值過程中的類型轉(zhuǎn)換5.賦值表達(dá)式和賦值語句6.變量賦初值inta=3,b=3,c;inta=3;相當(dāng)于inta;a=3;歸納總結(jié):503.4數(shù)據(jù)的輸入輸出3.4.1輸入輸出舉例3.4.2有關(guān)數(shù)據(jù)輸入輸出的概念3.4.3用printf函數(shù)輸出數(shù)據(jù)3.4.4用scanf函數(shù)輸入數(shù)據(jù)3.4.5字符數(shù)據(jù)的輸入輸出3.4數(shù)據(jù)的輸入輸出3.4.1輸入輸出舉例513.4.1輸入輸出舉例例3.5求

方程的根。a、b、c由鍵盤輸入

設(shè)

>03.4.1輸入輸出舉例例3.5求523.4.1輸入輸出舉例解題思路:首先要知道求方程式的根的方法。由數(shù)學(xué)知識(shí)已知:如果

≥0,則一元二次方程有兩個(gè)實(shí)根:若記3.4.1輸入輸出舉例解題思路:首先要知道求方程式的根的方53#include<stdio.h>#include<math.h>intmain(){doublea,b,c,disc,x1,x2,p,q;

scanf("%lf%lf%lf",&a,&b,&c);disc=b*b-4*a*c;p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;

printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);return0;}程序中調(diào)用數(shù)學(xué)函數(shù)sqrt輸入a,b,c的值#include<stdio.h>程序中調(diào)用數(shù)學(xué)函數(shù)sqr54#include<stdio.h>#include<math.h>intmain(){doublea,b,c,disc,x1,x2,p,q;

scanf("%lf%lf%lf",&a,&b,&c);disc=b*b-4*a*c;p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;

printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);return0;}輸入的是雙精度型實(shí)數(shù)#include<stdio.h>輸入的是雙精度型實(shí)數(shù)55#include<stdio.h>#include<math.h>intmain(){doublea,b,c,disc,x1,x2,p,q;

scanf("%lf%lf%lf",&a,&b,&c);disc=b*b-4*a*c;p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;

printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);return0;}要求輸入3個(gè)實(shí)數(shù)自動(dòng)轉(zhuǎn)成實(shí)數(shù)后賦給a,b,c#include<stdio.h>要求輸入3個(gè)實(shí)數(shù)自動(dòng)轉(zhuǎn)成56#include<stdio.h>#include<math.h>intmain(){doublea,b,c,disc,x1,x2,p,q;

scanf("%lf%lf%lf",&a,&b,&c);disc=b*b-4*a*c;p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;

printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);return0;}輸出數(shù)據(jù)占7列,其中小數(shù)占2列#include<stdio.h>輸出數(shù)據(jù)占7列,其中小數(shù)573.4.2有關(guān)數(shù)據(jù)輸入輸出的概念幾乎每一個(gè)C程序都包含輸入輸出輸入輸出是程序中最基本的操作之一3.4.2有關(guān)數(shù)據(jù)輸入輸出的概念幾乎每一個(gè)C程序都包含輸入583.4.2有關(guān)數(shù)據(jù)輸入輸出的概念(1)所謂輸入輸出是以計(jì)算機(jī)主機(jī)為主體而言的從計(jì)算機(jī)向輸出設(shè)備(如顯示器、打印機(jī)等)輸出數(shù)據(jù)稱為輸出從輸入設(shè)備(如鍵盤、磁盤、光盤、掃描儀等)向計(jì)算機(jī)輸入數(shù)據(jù)稱為輸入3.4.2有關(guān)數(shù)據(jù)輸入輸出的概念(1)所謂輸入輸出是以計(jì)593.4.2有關(guān)數(shù)據(jù)輸入輸出的概念(2)C語言本身不提供輸入輸出語句輸入和輸出操作是由C標(biāo)準(zhǔn)函數(shù)庫中的函數(shù)來實(shí)現(xiàn)的printf和scanf不是C語言的關(guān)鍵字,而只是庫函數(shù)的名字putchar、getchar、puts、gets3.4.2有關(guān)數(shù)據(jù)輸入輸出的概念(2)C語言本身不提供輸603.4.2有關(guān)數(shù)據(jù)輸入輸出的概念(3)在使用輸入輸出函數(shù)時(shí),要在程序文件的開頭用預(yù)編譯指令#include<stdio.h>或#include″stdio.h″3.4.2有關(guān)數(shù)據(jù)輸入輸出的概念(3)在使用輸入輸出函數(shù)時(shí)613.4.3用printf函數(shù)輸出數(shù)據(jù)在C程序中用來實(shí)現(xiàn)輸出和輸入的,主要是printf函數(shù)和scanf函數(shù)這兩個(gè)函數(shù)是格式輸入輸出函數(shù)用這兩個(gè)函數(shù)時(shí),必須指定格式3.4.3用printf函數(shù)輸出數(shù)據(jù)在C程序中用來實(shí)現(xiàn)輸出623.4.3用printf函數(shù)輸出數(shù)據(jù)1.printf函數(shù)的一般格式printf(格式控制,輸出表列)例如:printf(”i=%d,c=%c\n”,i,c);格式聲明3.4.3用printf函數(shù)輸出數(shù)據(jù)1.printf函數(shù)的633.4.3用printf函數(shù)輸出數(shù)據(jù)1.printf函數(shù)的一般格式printf(格式控制,輸出表列)例如:printf(”i=%d,c=%c\n”,i,c);普通字符3.4.3用printf函數(shù)輸出數(shù)據(jù)1.printf函數(shù)的643.4.3用printf函數(shù)輸出數(shù)據(jù)1.printf函數(shù)的一般格式printf(格式控制,輸出表列)例如:printf(”i=%d,c=%c\n”,i,c);可以是常量、變量或表達(dá)式3.4.3用printf函數(shù)輸出數(shù)據(jù)1.printf函數(shù)的653.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符d格式符。用來輸出一個(gè)有符號(hào)的十進(jìn)制整數(shù)可以在格式聲明中指定輸出數(shù)據(jù)的域?qū)抪rintf(”%5d%5d\n”,12,-345);%d輸出int型數(shù)據(jù)%ld輸出long型數(shù)據(jù)3.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符663.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符c格式符。用來輸出一個(gè)字符charch=’a’;printf(”%c”,ch);或printf(”%5c”,ch);輸出字符:a3.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符輸出673.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符s格式符。用來輸出一個(gè)字符串printf(”%s”,”CHINA”);輸出字符串:CHINA3.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符輸出683.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符f格式符。用來輸出實(shí)數(shù),以小數(shù)形式輸出①不指定數(shù)據(jù)寬度和小數(shù)位數(shù),用%f

例3.6用%f輸出實(shí)數(shù),只能得到6位小數(shù)。doublea=1.0;printf(”%f\n”,a/3);3.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符693.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符f格式符。用來輸出實(shí)數(shù),以小數(shù)形式輸出②指定數(shù)據(jù)寬度和小數(shù)位數(shù)。用%m.nf

printf("%20.15f\n",1/3);

printf("%.0f\n”,10000/3.0);3.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符703.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符f格式符。用來輸出實(shí)數(shù),以小數(shù)形式輸出②指定數(shù)據(jù)寬度和小數(shù)位數(shù)。用%m.nffloata;a=10000/3.0;printf("%f\n",a);3.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符713.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符f格式符。用來輸出實(shí)數(shù),以小數(shù)形式輸出③輸出的數(shù)據(jù)向左對(duì)齊,用%-m.nf3.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符723.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符f格式符。用來輸出實(shí)數(shù),以小數(shù)形式輸出float型數(shù)據(jù)只能保證6位有效數(shù)字double型數(shù)據(jù)能保證15位有效數(shù)字計(jì)算機(jī)輸出的數(shù)字不都是絕對(duì)精確有效的3.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符733.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符e格式符。指定以指數(shù)形式輸出實(shí)數(shù)%e,VC++給出小數(shù)位數(shù)為6位

指數(shù)部分占5列

小數(shù)點(diǎn)前必須有而且只有1位非零數(shù)字printf(”%e”,123.456);

輸出:1.234560

e+0023.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符743.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符e格式符。指定以指數(shù)形式輸出實(shí)數(shù)%m.neprintf(”%13.2e”,123.456);

輸出:1.23e+002(前面有4個(gè)空格)3.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符753.4.4用scanf函數(shù)輸入數(shù)據(jù)1.scanf函數(shù)的一般形式scanf(格式控制,地址表列)含義同printf函數(shù)3.4.4用scanf函數(shù)輸入數(shù)據(jù)1.scanf函數(shù)763.4.4用scanf函數(shù)輸入數(shù)據(jù)1.scanf函數(shù)的一般形式scanf(格式控制,地址表列)可以是變量的地址,或字符串的首地址3.4.4用scanf函數(shù)輸入數(shù)據(jù)1.scanf函數(shù)773.4.4用scanf函數(shù)輸入數(shù)據(jù)2.scanf函數(shù)中的格式聲明與printf函數(shù)中的格式聲明相似以%開始,以一個(gè)格式字符結(jié)束,中間可以插入附加的字符scanf("a=%f,b=%f,c=%f",&a,&b,&c);3.4.4用scanf函數(shù)輸入數(shù)據(jù)2.scanf函數(shù)中783.4.4用scanf函數(shù)輸入數(shù)據(jù)3.使用scanf函數(shù)時(shí)應(yīng)注意的問題scanf(”%f%f%f”,a,b,c);錯(cuò)scanf(”%f%f%f”,&a,&b,&c);對(duì)對(duì)于scanf("a=%f,b=%f,c=%f",&a,&b,&c);

132↙

錯(cuò)

a=1,b=3,c=2↙

對(duì)

a=1b=3c=2↙

錯(cuò)3.4.4用scanf函數(shù)輸入數(shù)據(jù)3.使用scanf函數(shù)793.4.4用scanf函數(shù)輸入數(shù)據(jù)3.使用scanf函數(shù)時(shí)應(yīng)注意的問題對(duì)于scanf(”%c%c%c”,&c1,&c2,&c3);

abc↙

對(duì)

abc↙

錯(cuò)對(duì)于scanf(”%d%c%f”,&a,&b,&c);若輸入

1234a123o.26↙3.4.4用scanf函數(shù)輸入數(shù)據(jù)3.使用scanf函數(shù)803.4.4用scanf函數(shù)輸入數(shù)據(jù)3.使用scanf函數(shù)時(shí)應(yīng)注意的問題對(duì)于scanf(”%c%c%c”,&c1,&c2,&c3);

abc↙

對(duì)

abc↙

錯(cuò)對(duì)于scanf(”%d%c%f”,&a,&b,&c);若輸入

1234a123o.26↙3.4.4用scanf函數(shù)輸入數(shù)據(jù)3.使用scanf函數(shù)813.4.4用scanf函數(shù)輸入數(shù)據(jù)3.使用scanf函數(shù)時(shí)應(yīng)注意的問題對(duì)于scanf(”%c%c%c”,&c1,&c2,&c3);

abc↙

對(duì)

abc↙

錯(cuò)對(duì)于scanf(”%d%c%f”,&a,&b,&c);若輸入

1234a123o.26↙3.4.4用scanf函數(shù)輸入數(shù)據(jù)3.使用scanf函數(shù)823.4.5字符數(shù)據(jù)的輸入輸出1.用putchar函數(shù)輸出一個(gè)字符從計(jì)算機(jī)向顯示器輸出一個(gè)字符putchar函數(shù)的一般形式為:putchar(c)3.4.5字符數(shù)據(jù)的輸入輸出1.用putchar函數(shù)輸出一833.4.5字符數(shù)據(jù)的輸入輸出例3.8先后輸出BOY三個(gè)字符。解題思路:定義3個(gè)字符變量,分別賦以初值B、O、Y用putchar函數(shù)輸出這3個(gè)字符變量的值3.4.5字符數(shù)據(jù)的輸入輸出例3.8先后輸出BOY三個(gè)字843.4.5字符數(shù)據(jù)的輸入輸出#include<stdio.h>intmain(){chara='B',b='O',c='Y';putchar(a);putchar(b);putchar(c);putchar('\n');return0;}向顯示器輸出字符B向顯示器輸出換行符3.4.5字符數(shù)據(jù)的輸入輸出#include<stdio853.4.5字符數(shù)據(jù)的輸入輸出#include<stdio.h>intmain(){chara='B',b='O',c='Y';putchar(a);putchar(b);putchar(c);putchar('\n');return0;}改為inta=66,b=79,c=89;3.4.5字符數(shù)據(jù)的輸入輸出#include<stdio863.4.5字符數(shù)據(jù)的輸入輸出putchar(’\101’)(輸出字符A)putchar(’\’’)(輸出單撇號(hào)字符’)3.4.5字符數(shù)據(jù)的輸入輸出putchar(’\101’)873.4.5字符數(shù)據(jù)的輸入輸出2.用getchar函數(shù)輸入一個(gè)字符向計(jì)算機(jī)輸入一個(gè)字符getchar函數(shù)的一般形式為:getchar()3.4.5字符數(shù)據(jù)的輸入輸出2.用getchar函數(shù)輸入883.4.5字符數(shù)據(jù)的輸入輸出

例3.9從鍵盤輸入BOY三個(gè)字符,然后把它們輸出到屏幕。解題思路:用3個(gè)getchar函數(shù)先后從鍵盤向計(jì)算機(jī)輸入BOY三個(gè)字符用putchar函數(shù)輸出3.4.5字符數(shù)據(jù)的輸入輸出例3.9從鍵盤輸入BO893.4.5字符數(shù)據(jù)的輸入輸出#include<stdio.h>intmain(){chara,b,c;a=getchar();b=getchar();c=getchar();putchar(a);putchar(b);putchar(c);putchar('\n');return0;}輸入一個(gè)字符,送給變量a3.4.5字符數(shù)據(jù)的輸入輸出#include<stdio903.4.5字符數(shù)據(jù)的輸入輸出#include<stdio.h>intmain(){chara,b,c;a=getchar();b=getchar();c=getchar();putchar(a);putchar(b);putchar(c);putchar('\n');return0;}putchar(getchar());3.4.5字符數(shù)據(jù)的輸入輸出#include<stdio913.4.5字符數(shù)據(jù)的輸入輸出#include<stdio.h>intmain(){chara,b,c;

a=getchar();b=getchar();c=getchar();

putchar(a);putchar(b);putchar(c);putchar('\n');return0;}putchar(getchar());putchar(getchar());3.4.5字符數(shù)據(jù)的輸入輸出#include<stdio923.4.5字符數(shù)據(jù)的輸入輸出#include<stdio.h>intmain(){chara,b,c;

a=getchar();

b=getchar();c=getchar();

putchar(a);putchar(b);putchar(c);putchar('\n');return0;}putchar(getchar());putchar(getchar());putchar(getchar());3.4.5字符數(shù)據(jù)的輸入輸出#include<stdio933.4.5字符數(shù)據(jù)的輸入輸出#include<stdio.h>intmain(){chara,b,c;

a=getchar();

b=getchar();

c=getchar();

putchar(a);putchar(b);putchar(c);putchar('\n');return0;}putchar(getchar());putchar(getchar());putchar(getchar());3.4.5字符數(shù)據(jù)的輸入輸出#include<stdio94謝謝!謝謝!95第3章最簡(jiǎn)單的C程序設(shè)計(jì)第3章最簡(jiǎn)單的C程序設(shè)計(jì)第3章最簡(jiǎn)單的C程序設(shè)計(jì)3.1順序程序設(shè)計(jì)舉例例3.1有人用溫度計(jì)測(cè)量出用華氏法表示的溫度(如F,今要求把它轉(zhuǎn)換為以攝氏法表示的溫度(如C)。解題思路:找到二者間的轉(zhuǎn)換公式f代表華氏溫度,c代表攝氏溫度第3章最簡(jiǎn)單的C程序設(shè)計(jì)第3章最簡(jiǎn)單的C程序設(shè)計(jì)第3章963.1順序程序設(shè)計(jì)舉例

例3.1有人用溫度計(jì)測(cè)量出用華氏法表示的溫度(如F,今要求把它轉(zhuǎn)換為以攝氏法表示的溫度(如C)。解題思路:找到二者間的轉(zhuǎn)換公式f代表華氏溫度,c代表攝氏溫度3.1順序程序設(shè)計(jì)舉例例3.1有人用溫度計(jì)測(cè)量出用華氏973.1順序程序設(shè)計(jì)舉例算法:輸入f的值輸出c的值

例3.1有人用溫度計(jì)測(cè)量出用華氏法表示的溫度(如F,今要求把它轉(zhuǎn)換為以攝氏法表示的溫度(如C)。N-S圖3.1順序程序設(shè)計(jì)舉例算法:輸入f的值輸出c的值例3.1983.1順序程序設(shè)計(jì)舉例#include<stdio.h>intmain(){floatf,c;f=64.0;c=(5.0/9)*(f-32);printf("f=%f\nc=%f\n",f,c);return0;}定義f和c為單精度浮點(diǎn)型變量指定f的值計(jì)算c的值輸出f和c的值3.1順序程序設(shè)計(jì)舉例#include<stdio.h>定993.1順序程序設(shè)計(jì)舉例

例3.2計(jì)算存款利息。有1000元,想存一年。有三種方法可選:(1)活期,年利率為r1(2)一年期定期,年利率為r2(3)存兩次半年定期,年利率為r3

請(qǐng)分別計(jì)算出一年后按三種方法所得到的本息和。3.1順序程序設(shè)計(jì)舉例例3.2計(jì)算存款利息。有10001003.1順序程序設(shè)計(jì)舉例解題思路:確定計(jì)算本息和的公式。從數(shù)學(xué)知識(shí)可知:若存款額為p0,則:活期存款一年后本息和為:

p1=p0(1+r1)一年期定期存款,一年后本息和為:

p2=p0(1+r2)兩次半年定期存款,一年后本息和為:

3.1順序程序設(shè)計(jì)舉例解題思路:確定計(jì)算本息和的公式。1013.1順序程序設(shè)計(jì)舉例算法:輸入p0,r1,r2,r3的值計(jì)算p1=p0(1+r1)計(jì)算p2=p0(1+r2)計(jì)算p3=p0(1+)(1+)輸出p1,p2,p33.1順序程序設(shè)計(jì)舉例算法:輸入p0,r1,r2,r3的值計(jì)1023.1順序程序設(shè)計(jì)舉例#include<stdio.h>intmain(){floatp0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3;p1=p0*(1+r1);p2=p0*(1+r2);p3=p0*(1+r3/2)*(1+r3/2);printf(”%f\n%f\n%f\n”,p1,p2,p3);return0;}定義變量同時(shí)賦予初值3.1順序程序設(shè)計(jì)舉例#include<stdio.h>定1033.2數(shù)據(jù)的表現(xiàn)形式及其運(yùn)算3.2.1常量和變量3.2.2數(shù)據(jù)類型3.2.3整型數(shù)據(jù)3.2.4字符型數(shù)據(jù)3.2.5浮點(diǎn)型數(shù)據(jù)3.2.6怎樣確定常量的類型3.2.7運(yùn)算符和表達(dá)式3.2數(shù)據(jù)的表現(xiàn)形式及其運(yùn)算3.2.1常量和變量1043.2.1常量和變量1.常量:在程序運(yùn)行過程中,其值不能被改變的量整型常量:如1000,12345,0,-345實(shí)型常量十進(jìn)制小數(shù)形式:如0.34-56.790.0指數(shù)形式:如12.34e3(代表12.34103)字符常量:如’?’轉(zhuǎn)義字符:如’\n’字符串常量:如”boy”符號(hào)常量:#definePI3.14163.2.1常量和變量1.常量:在程序運(yùn)行過程中,其值不能被1053.2.1常量和變量2.變量:在程序運(yùn)行期間,變量的值是可以改變的變量必須先定義,后使用定義變量時(shí)指定該變量的名字和類型變量名和變量值是兩個(gè)不同的概念變量名實(shí)際上是以一個(gè)名字代表的一個(gè)存儲(chǔ)地址從變量中取值,實(shí)際上是通過變量名找到相應(yīng)的內(nèi)存地址,從該存儲(chǔ)單元中讀取數(shù)據(jù)3.2.1常量和變量2.變量:在程序運(yùn)行期間,變量的值是1063.2.1常量和變量3.常變量:constinta=3;4.標(biāo)識(shí)符:一個(gè)對(duì)象的名字C語言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線3種字符組成,且第一個(gè)字符必須為字母或下劃線合法的標(biāo)識(shí)符:如sum,average,_total,Class,day,BASIC,li_ling不合法的標(biāo)識(shí)符:M.D.John,¥123,#33,3D64,a>b大小寫字母是不同的字符3.2.1常量和變量3.常變量:constinta=31073.2.2數(shù)據(jù)類型所謂類型,就是對(duì)數(shù)據(jù)分配存儲(chǔ)單元的安排,包括存儲(chǔ)單元的長(zhǎng)度(占多少字節(jié))以及數(shù)據(jù)的存儲(chǔ)形式不同的類型分配不同的長(zhǎng)度和存儲(chǔ)形式3.2.2數(shù)據(jù)類型所謂類型,就是對(duì)數(shù)據(jù)分配存儲(chǔ)單元的安排,1083.2.2數(shù)據(jù)類型C語言允許使用的數(shù)據(jù)類型:基本類型整型類型基本整型短整型長(zhǎng)整型雙長(zhǎng)整型字符型布爾型浮點(diǎn)類型單精度浮點(diǎn)型雙精度浮點(diǎn)型復(fù)數(shù)浮點(diǎn)型3.2.2數(shù)據(jù)類型C語言允許使用的數(shù)據(jù)類型:浮點(diǎn)類型1093.2.2數(shù)據(jù)類型C語言允許使用的數(shù)據(jù)類型:基本類型枚舉類型空類型派生類型指針類型數(shù)組類型結(jié)構(gòu)體類型共用體類型函數(shù)類型算術(shù)類型純量類型3.2.2數(shù)據(jù)類型C語言允許使用的數(shù)據(jù)類型:算術(shù)類型純量類1103.2.3整型數(shù)據(jù)1.整型數(shù)據(jù)的分類最基本的整型類型基本整型(int型):占2個(gè)或4個(gè)字節(jié)短整型(shortint):VC++6.0中占2個(gè)字節(jié)長(zhǎng)整型(longint):VC++6.0中占4個(gè)字節(jié)雙長(zhǎng)整型(longlongint):C99新增的3.2.3整型數(shù)據(jù)1.整型數(shù)據(jù)的分類1113.2.3整型數(shù)據(jù)1.整型數(shù)據(jù)的分類2.整型變量的符號(hào)屬性整型變量的值的范圍包括負(fù)數(shù)到正數(shù)可以將變量定義為“無符號(hào)”類型擴(kuò)充的整形類型:3.2.3整型數(shù)據(jù)1.整型數(shù)據(jù)的分類1123.2.3整型數(shù)據(jù)擴(kuò)充的整型類型:有符號(hào)基本整型[signed]int;無符號(hào)基本整型unsignedint;有符號(hào)短整型[signed]short[int];無符號(hào)短整型unsignedshort[int];有符號(hào)長(zhǎng)整型[signed]long[int];無符號(hào)長(zhǎng)整型unsignedlong[int]有符號(hào)雙長(zhǎng)整型[signed]longlong[int];無符號(hào)雙長(zhǎng)整型unsignedlonglong[int]3.2.3整型數(shù)據(jù)擴(kuò)充的整型類型:1133.2.4字符型數(shù)據(jù)字符是按其代碼(整數(shù))形式存儲(chǔ)的C99把字符型數(shù)據(jù)作為整數(shù)類型的一種字符型數(shù)據(jù)在使用上有自己的特點(diǎn)3.2.4字符型數(shù)據(jù)字符是按其代碼(整數(shù))形式存儲(chǔ)的1143.2.4字符型數(shù)據(jù)1.字符與字符代碼大多數(shù)系統(tǒng)采用ASCII字符集字母:A~Z,a~z數(shù)字:0~9專門符號(hào):29個(gè):!”#&‘()*等空格符:空格、水平制表符、換行等不能顯示的字符:空(null)字符(以‘\0’表示)、警告(以‘\a’表示)、退格(以‘\b’表示)、回車(以‘\r’表示)等3.2.4字符型數(shù)據(jù)1.字符與字符代碼1153.2.4字符型數(shù)據(jù)字符’1’和整數(shù)1是不同的概念:字符’1’只是代表一個(gè)形狀為’1’的符號(hào),在需要時(shí)按原樣輸出,在內(nèi)存中以ASCII碼形式存儲(chǔ),占1個(gè)字節(jié)整數(shù)1是以整數(shù)存儲(chǔ)方式(二進(jìn)制補(bǔ)碼方式)存儲(chǔ)的,占2個(gè)或4個(gè)字節(jié)0011000100000000000000013.2.4字符型數(shù)據(jù)字符’1’和整數(shù)1是不同的概念:001163.2.4字符型數(shù)據(jù)2.字符變量用類型符char定義字符變量charc=’?’;

系統(tǒng)把“?”的ASCII代碼63賦給變量cprintf(”%d%c\n”,c,c);輸出結(jié)果是:63?3.2.4字符型數(shù)據(jù)2.字符變量1173.2.5浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)是用來表示具有小數(shù)點(diǎn)的實(shí)數(shù)float型(單精度浮點(diǎn)型)編譯系統(tǒng)為float型變量分配4個(gè)字節(jié)數(shù)值以規(guī)范化的二進(jìn)制數(shù)指數(shù)形式存放參見主教材圖3.113.2.5浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)是用來表示具有小數(shù)點(diǎn)的實(shí)數(shù)1183.2.5浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)是用來表示具有小數(shù)點(diǎn)的實(shí)數(shù)float型(單精度浮點(diǎn)型)double型(雙精度浮點(diǎn)型)編譯系統(tǒng)為double型變量分配8個(gè)字節(jié)15位有效數(shù)字longdouble(長(zhǎng)雙精度)型3.2.5浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)是用來表示具有小數(shù)點(diǎn)的實(shí)數(shù)1193.2.6怎樣確定常量的類型字符常量:由單撇號(hào)括起來的單個(gè)字符或轉(zhuǎn)義字符整型常量:不帶小數(shù)點(diǎn)的數(shù)值系統(tǒng)根據(jù)數(shù)值的大小確定int型還是long型等浮點(diǎn)型常量:凡以小數(shù)形式或指數(shù)形式出現(xiàn)的實(shí)數(shù)C編譯系統(tǒng)把浮點(diǎn)型常量都按雙精度處理分配8個(gè)字節(jié)3.2.6怎樣確定常量的類型字符常量:由單撇號(hào)括起來的單個(gè)1203.2.7運(yùn)算符和表達(dá)式1.基本的算術(shù)運(yùn)算符:+:正號(hào)運(yùn)算符(單目運(yùn)算符)-:負(fù)號(hào)運(yùn)算符(單目運(yùn)算符)*:乘法運(yùn)算符/:除法運(yùn)算符%:求余運(yùn)算符+:加法運(yùn)算符-:減法運(yùn)算符3.2.7運(yùn)算符和表達(dá)式1.基本的算術(shù)運(yùn)算符:1213.2.7運(yùn)算符和表達(dá)式說明兩個(gè)整數(shù)相除的結(jié)果為整數(shù)如5/3的結(jié)果值為1,舍去小數(shù)部分如果除數(shù)或被除數(shù)中有一個(gè)為負(fù)值,舍入方向不固定。例如,-5/3,有的系統(tǒng)中得到的結(jié)果為-1,在有的系統(tǒng)中則得到結(jié)果為-2VC++采取“向零取整”的方法

如5/3=1,-5/3=-1,取整后向零靠攏%運(yùn)算符要求參加運(yùn)算的運(yùn)算對(duì)象(即操作數(shù))為整數(shù),結(jié)果也是整數(shù)。如8%3,結(jié)果為23.2.7運(yùn)算符和表達(dá)式說明1223.2.7運(yùn)算符和表達(dá)式2.自增、自減運(yùn)算符:作用是使變量的值1或減1++i,--i:在使用i之前,先使i的值加(減)1i++,i--:在使用i之后,使i的值加(減)13.2.7運(yùn)算符和表達(dá)式2.自增、自減運(yùn)算符:1233.2.7運(yùn)算符和表達(dá)式3.算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性:用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(也稱操作數(shù))連接起來的、符合C語法規(guī)則的式子,稱為C算術(shù)表達(dá)式運(yùn)算對(duì)象包括常量、變量、函數(shù)等C語言規(guī)定了運(yùn)算符的優(yōu)先級(jí)和結(jié)合性3.2.7運(yùn)算符和表達(dá)式3.算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與1243.2.7運(yùn)算符和表達(dá)式4.不同類型數(shù)據(jù)間的混合運(yùn)算:+、-、*、/運(yùn)算的兩個(gè)數(shù)中有一個(gè)數(shù)為float或double型,結(jié)果是double型。系統(tǒng)將float型數(shù)據(jù)都先轉(zhuǎn)換為double型,然后進(jìn)行運(yùn)算(2)如果int型與float或double型數(shù)據(jù)進(jìn)行運(yùn)算,先把int型和float型數(shù)據(jù)轉(zhuǎn)換為double型,然后進(jìn)行運(yùn)算,結(jié)果是double型(3)字符型數(shù)據(jù)與整型數(shù)據(jù)進(jìn)行運(yùn)算,就是把字符的ASCII代碼與整型數(shù)據(jù)進(jìn)行運(yùn)算3.2.7運(yùn)算符和表達(dá)式4.不同類型數(shù)據(jù)間的混合運(yùn)算:1253.2.7運(yùn)算符和表達(dá)式

例3.3給定一個(gè)大寫字母,要求用小寫字母輸出。解題思路:關(guān)鍵是找到大、小寫字母間的內(nèi)在聯(lián)系同一個(gè)字母,用小寫表示的字符的ASCII代碼比用大寫表示的字符的ASCII代碼大323.2.7運(yùn)算符和表達(dá)式例3.3給定一個(gè)大寫字母,1263.2.7運(yùn)算符和表達(dá)式#include<stdio.h>intmain(){charc1,c2;c1=’A’;c2=c1+32;printf("%c\n",c2);printf(”%d\n”,c2);return0;}將字符‘A’的ASCII代碼65放到c1中將65+32的結(jié)果放到c2中用字符形式輸出用十進(jìn)制形式輸出3.2.7運(yùn)算符和表達(dá)式#include<stdio.h1273.2.7運(yùn)算符和表達(dá)式5.強(qiáng)制類型轉(zhuǎn)換運(yùn)算符強(qiáng)制類型轉(zhuǎn)換運(yùn)算符的一般形式為

(類型名)(表達(dá)式)(double)a(將a轉(zhuǎn)換成double類型)(int)(x+y)(將x+y的值轉(zhuǎn)換成int型)(float)(5%3)(將5%3的值轉(zhuǎn)換成float型)有兩種類型轉(zhuǎn)換系統(tǒng)自動(dòng)進(jìn)行的類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換3.2.7運(yùn)算符和表達(dá)式5.強(qiáng)制類型轉(zhuǎn)換運(yùn)算符1283.2.7運(yùn)算符和表達(dá)式6.C運(yùn)算符(1)算術(shù)運(yùn)算符

(+-*/%++--)(2)關(guān)系運(yùn)算符

(><==>=<=?。剑?3)邏輯運(yùn)算符

(?。Γ|)(4)位運(yùn)算符

(<<>>~|∧&)(5)賦值運(yùn)算符

(=及其擴(kuò)展賦值運(yùn)算符)(6)條件運(yùn)算符

(?:)3.2.7運(yùn)算符和表達(dá)式6.C運(yùn)算符1293.2.7運(yùn)算符和表達(dá)式6.C運(yùn)算符(7)逗號(hào)運(yùn)算符

(,)(8)指針運(yùn)算符

(*和&)(9)求字節(jié)數(shù)運(yùn)算符

(sizeof)(10)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符

((類型))(11)成員運(yùn)算符

(.->)(12)下標(biāo)運(yùn)算符

([

])(13)其他

(如函數(shù)調(diào)用運(yùn)算符())3.2.7運(yùn)算符和表達(dá)式6.C運(yùn)算符1303.3C語句3.3.1C語句的作用和分類3.3.2最基本的語句----賦值語句3.3C語句3.3.1C語句的作用和分類1313.3.1 C語句的作用和分類C語句分為以下5類:(1)控制語句:if、switch、for、while、do…while、continue、break、return、goto等(2)函數(shù)調(diào)用語句(3)表達(dá)式語句(4)空語句(5)復(fù)合語句3.3.1 C語句的作用和分類C語句分為以下5類:1323.3.2最基本的語句----賦值語句在C程序中,最常用的語句是:賦值語句輸入輸出語句其中最基本的是賦值語句3.3.2最基本的語句----賦值語句在C程序中,最常用的1333.3.2最基本的語句----賦值語句

例3.4給出三角形的三邊長(zhǎng),求三角形面積。3.3.2最基本的語句----賦值語句例3.4給出1343.3.2最基本的語句----賦值語句解題思路:假設(shè)給定的三個(gè)邊符合構(gòu)成三角形的條件關(guān)鍵是找到求三角形面積的公式公式為:其中s=(a+b+c)/23.3.2最基本的語句----賦值語句解題思路:假設(shè)給定的135#include<stdio.h>#include<math.h>intmain(){doublea,b,c,s,area;a=3.67;b=5.43;c=6.21;s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%f\tb=%f\t%f\n",a,b,c);printf("area=%f\n",area);return0;}對(duì)邊長(zhǎng)a、b、c賦值計(jì)算s計(jì)算area#include<stdio.h>對(duì)邊長(zhǎng)a、b、c賦值計(jì)算136#include<stdio.h>#include<math.h>intmain(){doublea,b,c,s,area;a=3.67;b=5.43;c=6.21;s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%f\tb=%f\t%f\n",a,b,c);printf("area=%f\n",area);return0;}數(shù)學(xué)函數(shù),計(jì)算平方根調(diào)用數(shù)學(xué)函數(shù)加此行#include<stdio.h>數(shù)學(xué)函數(shù),計(jì)算平方根調(diào)用137#include<stdio.h>#include<math.h>intmain(){doublea,b,c,s,area;a=3.67;b=5.43;c=6.21;s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%f\tb=%f\t%f\n",a,b,c);printf("area=%f\n",area);return0;}轉(zhuǎn)義字符,使輸出位置跳到下一個(gè)tab位置調(diào)用數(shù)學(xué)函數(shù)加此行#include<stdio.h>轉(zhuǎn)義字符,使輸出位置跳到138歸納總結(jié):1.賦值運(yùn)算符“=”是賦值運(yùn)算符作用是將一個(gè)數(shù)據(jù)賦給一個(gè)變量也可以將一個(gè)表達(dá)式的值賦給一個(gè)變量歸納總結(jié):139歸納總結(jié):1.賦值運(yùn)算符2.復(fù)合的賦值運(yùn)算符在賦值符“=”之前加上其他運(yùn)算符,可以構(gòu)成復(fù)合的運(yùn)算符a+=3

等價(jià)于

a=a+3歸納總結(jié):140歸納總結(jié):1.賦值運(yùn)算符2.復(fù)合的賦值運(yùn)算符3.賦值表達(dá)式一般形式為:

變量

賦值運(yùn)算符

表達(dá)式對(duì)賦值表達(dá)式求解的過程:求賦值運(yùn)算符右側(cè)的“表達(dá)式”的值賦給賦值運(yùn)算符左側(cè)的變量歸納總結(jié):141歸納總結(jié):1.賦值運(yùn)算符2.復(fù)合的賦值運(yùn)算符3.賦值表達(dá)式賦值表達(dá)式“a=3*5”的值為15,對(duì)表達(dá)式求解后,變量a的值和表達(dá)式的值都是15“a=(b=5)”和“a=b=5”等價(jià)“a=b”和“b=a”含義不同歸納總結(jié):142歸納總結(jié):1.賦值運(yùn)算符2.復(fù)合的賦值運(yùn)算符3.賦值表達(dá)式4.賦值過程中的類型轉(zhuǎn)換兩側(cè)類型一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論