順序結(jié)構(gòu)程序設(shè)計(jì).ppt_第1頁(yè)
順序結(jié)構(gòu)程序設(shè)計(jì).ppt_第2頁(yè)
順序結(jié)構(gòu)程序設(shè)計(jì).ppt_第3頁(yè)
順序結(jié)構(gòu)程序設(shè)計(jì).ppt_第4頁(yè)
順序結(jié)構(gòu)程序設(shè)計(jì).ppt_第5頁(yè)
已閱讀5頁(yè),還剩79頁(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語(yǔ)言程序設(shè)計(jì),第三講,3.1順序程序設(shè)計(jì)舉例3.2數(shù)據(jù)的表示形式及其運(yùn)算3.3C語(yǔ)句3.4數(shù)據(jù)的輸入輸出,順序結(jié)構(gòu)程序設(shè)計(jì),第3章,算法:在主函數(shù)中調(diào)用printf函數(shù)原樣輸出以上信息即可。,例3.1在屏幕上顯示“Hello,Cprogram!”信息。,3.1,順序程序設(shè)計(jì)舉例,#include“stdio.h”intmain()printf(“Hello,Cprogram!n”);return0;,轉(zhuǎn)義符號(hào),換行,VisualC+6.0在輸出運(yùn)行結(jié)果之后,由系統(tǒng)自動(dòng)加上的一行信息。,最簡(jiǎn)單的輸出文本信息的程序模式:,3.1,順序程序設(shè)計(jì)舉例,#include“stdio.h”intmain

2、()printf(“”);return0;,輸出信息放在這里,思考:在屏幕上顯示:Hello,CIWillbeanexcellentprogrammer!,#includeintmain()printf(“”);return0;,printf(“Hello,CnIWillbeanexcellentprogrammer!n”);,printf(“Hello,Cn”);printf(“IWillbeanexcellentprogrammer!n”);return0;,分析:,例3.2有人用溫度計(jì)測(cè)量出用華氏法表示的溫度為64F,今要求把它轉(zhuǎn)換為以攝氏法表示的溫度。,3.1,順序程序設(shè)計(jì)舉例,編程思

3、想:,故求解本問(wèn)題的關(guān)鍵在于:(1)如何把該公式輸入到計(jì)算機(jī)?(2)如何將計(jì)算的結(jié)果在屏幕上顯示?,3.1,順序程序設(shè)計(jì)舉例,(1)如何把該公式輸入到計(jì)算機(jī)?在C語(yǔ)言中,利用表達(dá)式來(lái)描述數(shù)學(xué)公式,其對(duì)應(yīng)的C語(yǔ)言描述是C=5/9*(f-32);(2)如何將計(jì)算的結(jié)果在屏幕上顯示?計(jì)算結(jié)果的輸出需要使用printf()函數(shù)的格式輸出:printf(格式控制,輸出項(xiàng)列表),#includeintmain()printf(“c=%fn”,(5.0/9)*(64-32);return0;,3.1,順序程序設(shè)計(jì)舉例,3.1,順序程序設(shè)計(jì)舉例,#include“stdio.h”intmain()printf

4、(“”,);return0;,最簡(jiǎn)單的計(jì)算程序的模式:,計(jì)算表達(dá)式,注意表達(dá)式的輸出格式,如采用“%f”,則按實(shí)數(shù)形式輸出計(jì)算表達(dá)式的結(jié)果,如果把f換成其他字符,輸出的結(jié)果則不同;實(shí)際上,此程序模式中,表達(dá)式的正確書寫是求解問(wèn)題的關(guān)鍵。,設(shè)定輸出格式,分析:,例3.3:編寫C程序,運(yùn)行時(shí)輸入梯形的底和高,計(jì)算梯形的面積,并將計(jì)算結(jié)果在屏幕上進(jìn)行顯示。,3.1,順序程序設(shè)計(jì)舉例,假設(shè)梯形的底和高已知,利用公式S=(a+b)h/2就可計(jì)算其面積。故求解本問(wèn)題的關(guān)鍵在于:(1)如何在程序運(yùn)行時(shí)輸入梯形的底和高?(2)輸入的底和高存放在哪里?(3)計(jì)算結(jié)果怎樣進(jìn)行顯示?,輸入函數(shù)scanf(),定義變

5、量,可直接從屏幕上輸出,也可定義存儲(chǔ)空間存放后再輸出,算法:,例3.3:編寫C程序,運(yùn)行時(shí)輸入梯形的底和高,計(jì)算梯形的面積,并將計(jì)算結(jié)果在屏幕上進(jìn)行顯示。,3.1,順序程序設(shè)計(jì)舉例,(1)定義3個(gè)變量a、b、h,分別存放梯形的上底、下底和高;(2)調(diào)用scanf()函數(shù)輸入a、b、h的值;(3)通過(guò)公式S=(a+b)h/2計(jì)算梯形的面積;(4)調(diào)用printf()函數(shù)輸出結(jié)果。,12,#include“stdio.h”intmain()floata,b,h;printf(“pleaseinputa,bandh:”);scanf(“%f%f%f”,運(yùn)行結(jié)果:,輸入函數(shù),類型說(shuō)明符,系統(tǒng)保留字,p

6、rintf(“pleaseinputa,bandh:”);scanf(“%f%f%f”,預(yù)先定義存儲(chǔ)空間,再輸出計(jì)算結(jié)果,利用賦值運(yùn)算符“=”將計(jì)算結(jié)果存儲(chǔ)在變量中,思考:該程序能求出任意一個(gè)梯形的面積,原因?,3.1,順序程序設(shè)計(jì)舉例,#include“stdio.h”intmain()若干變量定義語(yǔ)句;輸入語(yǔ)句;若干計(jì)算和賦值語(yǔ)句;若干輸出語(yǔ)句;return0;,順序結(jié)構(gòu)程序的通用模式:,3.2.2,C語(yǔ)言中的數(shù)據(jù)類型,數(shù)據(jù)類型決定:1.數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2.數(shù)據(jù)取值范圍3.其上可進(jìn)行的操作,數(shù)據(jù)類型整型,整型,3.2.2,C語(yǔ)言中的數(shù)據(jù)類型,(signed),(signed),(signe

7、d),不同平臺(tái),不同編譯器,可能會(huì)迥然不同凡是需要字節(jié)數(shù)的地方,一律用sizeof獲得,基本整型,短整型,長(zhǎng)整型,signed,unsigned,整型數(shù)據(jù)在內(nèi)存中二進(jìn)制補(bǔ)碼形式存放,+1001001,十進(jìn)制,二進(jìn)制(真值),+73,原碼,01001001,-1001001,-73,11001001,補(bǔ)碼,01001001,10110111,3.2.2,C語(yǔ)言中的數(shù)據(jù)類型,數(shù)據(jù)類型字符型,占用的空間一個(gè)字節(jié)的存儲(chǔ)空間。存儲(chǔ)形式存儲(chǔ)字符相應(yīng)的二進(jìn)制ASCII值。例:存儲(chǔ)字符dd(100)10(1100100)2,3.2.2,C語(yǔ)言中的數(shù)據(jù)類型,系統(tǒng)保留字,char,數(shù)據(jù)類型字符型,字符型數(shù)據(jù)的子類

8、型有符號(hào)字符型signedchar無(wú)符號(hào)字符型unsignedchar,3.2.2,C語(yǔ)言中的數(shù)據(jù)類型,對(duì)于有符號(hào)字符型數(shù)據(jù),允許存儲(chǔ)的值為-128127,但字符的代碼不可能為負(fù)值,所以在存儲(chǔ)字符時(shí),實(shí)際只使用0127這一部分。,charc=130;printf(“c=%dn”,c);,數(shù)據(jù)類型浮點(diǎn)型,浮點(diǎn)型數(shù)據(jù)的子類型單精度(float型)雙精度(double型)長(zhǎng)雙精度型(longdouble)存儲(chǔ)形式二進(jìn)制指數(shù)形式存儲(chǔ),3.2.2,C語(yǔ)言中的數(shù)據(jù)類型,字母e之前的小數(shù)中,小數(shù)點(diǎn)前的數(shù)字為0,小數(shù)點(diǎn)后第一位數(shù)字不為0的表示形式例如:123.456可以表示為:123.456e0,12.345

9、6e1,1.23456e2,0.123456e3,0.0123456e4,0.00123456e,規(guī)范化的指數(shù)形式,3.2.1,常量與變量,小數(shù)部分,指數(shù),數(shù)符,0.123456e3,3.2.1,在程序執(zhí)行過(guò)程中其值不能被改變的量。,常量與變量,1常量,常量可分為不同類型,常用的有以下四種:整型常量實(shí)型常量字符型常量字符串常量,3.2.1,常量與變量,整型常量,長(zhǎng)整型數(shù)的表示:在整型常量的后面加一個(gè)字母l或L。如:345L無(wú)符號(hào)整型數(shù)的表示:在整型常量的后面加一個(gè)字母U。如:234u,如1000,12345,0,-345,整型常量在內(nèi)存中存儲(chǔ)時(shí)(VC+6.0中)的處理規(guī)則:,若數(shù)值在-2147

10、4836482147483647范圍內(nèi),認(rèn)為是int型的,自動(dòng)分配4字節(jié)存儲(chǔ)空間;,若超過(guò)了上述范圍,而在longlong范圍內(nèi),則認(rèn)為是longlong型的,分配8字節(jié)存儲(chǔ)空間;,若在一個(gè)整型常量后面加上字母L或l,則認(rèn)為是longint型常量,自動(dòng)分配4字節(jié)存儲(chǔ)空間;如:123L、432L、0l等。,3.2.1,常量與變量,十進(jìn)制小數(shù)形式,指數(shù)形式(科學(xué)記數(shù)法),包括符號(hào)“+”與“-”,09,小數(shù)點(diǎn)“.”以及e(或E)。如12.3e2,在符號(hào)e(或E)的前面必須要有數(shù)字。e(或E)的后面的指數(shù)必須為整數(shù)。,注意,必須要有,指數(shù)形式實(shí)型常量12.3e3,123E2,1.23e4,e-5,1.

11、2E-3.5,.e3,3.2.1,常量與變量,實(shí)型常量,包括符號(hào)“+”與“-”,09以及小數(shù)點(diǎn)“.”。如12.7、-12.7,3.浮點(diǎn)型數(shù)據(jù)的舍入誤差,運(yùn)行結(jié)果:a=3.141593,float型數(shù)據(jù)能得到7位有效數(shù)據(jù)double型數(shù)據(jù)能得到15位有效數(shù)據(jù),轉(zhuǎn)義字符:一個(gè)以字符開頭的字符序列,普通字符:用單引號(hào)括起來(lái)的一個(gè)字符,如:a、A等,轉(zhuǎn)義字符及其作用,3.2.1,常量與變量,字符型常量,【例3.5】,例轉(zhuǎn)義字符舉例#include“stdio.h”intmain()printf(101x42Cn);printf(Isay:Howareyou?n);printf(CProgramn);p

12、rintf(TurboC);return0;,運(yùn)行結(jié)果:(屏幕顯示)ABCIsay:”Howareyou?”CProgramTurboC,3.2.1,常量與變量,用一對(duì)雙引號(hào)括起來(lái)的一個(gè)字符序列,如:“Howdoyoudo?”、“China”、“a”、“$123.45”等,存儲(chǔ):系統(tǒng)自動(dòng)為字符串常量后面加上“0”作為字符串結(jié)束標(biāo)志,使所占內(nèi)存單元多一個(gè),但字符串常量的長(zhǎng)度不變。,3.2.1,常量與變量,字符串常量,3.2.1,常量與變量,字面常量(直接常量)從其字面即可判斷其值。,符號(hào)常量使用專門的符號(hào)來(lái)代表一個(gè)常量。,符號(hào)常量的定義#define,符號(hào)常量定義舉例#definePI3.141

13、5926#defineSTAR*,說(shuō)明:符號(hào)常量一般使用大寫英文字母表示,以區(qū)別一般用小寫字母表示的變量,注意:符號(hào)常量不能賦值!STAR=#,3.2.1,常量與變量,【例3.6】在程序中使用符號(hào)常量。,運(yùn)行結(jié)果:total=300,符號(hào)常量的使用能給程序員帶來(lái)哪些好處?,含義清楚;一改全改,#include”stdio.h”#definePRICE30intmain()intnum,total;num=10;total=num*PRICE;printf(total=%d,total);return0;,在程序執(zhí)行過(guò)程中其值可以被改變的量,2變量,3.2.1,常量與變量,#definePRIC

14、E30intmain()intnum,total;num=10;total=num*PRICE;printf(total=%d,total);return0;,變量,變量四要素,變量的標(biāo)識(shí)符。用來(lái)區(qū)分不同的變量。變量名應(yīng)遵循標(biāo)識(shí)符的命名規(guī)則。,TEXT,變量名,表示變量的屬性,每一個(gè)變量都屬于一個(gè)確定的類型。,變量的內(nèi)容,在某一時(shí)刻,變量有一個(gè)確定的值。,用來(lái)保存變量值。不同類型的變量占用存儲(chǔ)空間的大小不同。,TEXT,類型,TEXT,變量值,存儲(chǔ)空間,3.2.1,常量與變量,3.2.1,常量與變量,標(biāo)識(shí)符的定義用來(lái)標(biāo)識(shí)對(duì)象名字的有效字符序列。對(duì)象包括變量、函數(shù)、數(shù)組、類型等。即標(biāo)識(shí)符就是對(duì)象

15、的名字。,標(biāo)識(shí)符,標(biāo)識(shí)符的構(gòu)成C語(yǔ)言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線3種字符組成,且第一個(gè)字符必須為字母或下劃線。大小寫敏感,討論:判斷下列標(biāo)識(shí)符號(hào)合法性sumSumM.D.JohndayDate3daysstudent_name#33lotus_1_2_3ababove$123_toDay,M.D.John,#33,$123,ab,3days,在C語(yǔ)言中,要求對(duì)所用到的變量使用前必須先強(qiáng)制定義,即:先定義,后使用。,能按名字使用變量凡未被事先定義的用戶標(biāo)識(shí)符,系統(tǒng)不把其認(rèn)作是變量名以便分配相應(yīng)的存儲(chǔ)空間定義時(shí)指定了變量的類型,在編譯時(shí)就能為變量分配相應(yīng)的存儲(chǔ)單元檢查運(yùn)算是否合法定義時(shí)指定了

16、每一個(gè)變量的類型,便于編譯時(shí)據(jù)此檢查程序中對(duì)其進(jìn)行的運(yùn)算是否合法,數(shù)據(jù)類型變量名1,變量名2,變量名n;,變量的定義,3.2.1,常量與變量,整型變量的定義,【例3.7】整型變量的定義與使用。#includeintmain()inta,b,c,d;unsignedu;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=d,b+u=dn”,c,d);return0;,運(yùn)行結(jié)果為:a+u=22,b+u=-14,變量的定義一般放在一個(gè)函數(shù)開頭的聲明部分,可以同時(shí)定義多個(gè)同類型的變量,各變量之間用逗號(hào)分隔,定義變量只是為變量分配存儲(chǔ)空間,在未對(duì)這些變量賦值前,這些變量中(即

17、存儲(chǔ)空間中)的值是隨機(jī)的;,3.2.3整型變量,實(shí)型變量的定義,【例3.8】實(shí)型變量的定義與使用。#include“stdio.h”intmain()floati;doublej;i=4444.444444;j=4444.4444444444444;printf(“i=%fnj=%fn”,i,j);return0;,3.2.4實(shí)型變量,charc1,c2;c1=a;c2=b;printf(“c1=cn,c1);printf(“c2=cn”,c2);,一個(gè)字符變量只能存放一個(gè)字符。實(shí)際上并不是把該字符本身存入內(nèi)存單元中,而是將該字符對(duì)應(yīng)的ASCII碼存入內(nèi)存單元中,3.2.4字符型變量,在內(nèi)存中

18、字符數(shù)據(jù)的存儲(chǔ)形式與整型數(shù)據(jù)類似,這就使得字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。即一個(gè)字符數(shù)據(jù)既可以字符形式輸出,也可以整數(shù)形式輸出。,3.2.4字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式及其使用方法,以字符形式輸出時(shí),系統(tǒng)先將內(nèi)存單元中的ASCII碼轉(zhuǎn)換成相應(yīng)字符,然后輸出。,以整數(shù)形式輸出時(shí),直接將ASCII碼作為整數(shù)輸出。,因此,可以對(duì)字符數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算,這時(shí)相當(dāng)于對(duì)其ASCII碼進(jìn)行算術(shù)運(yùn)算。,【例3.9】給字符變量賦整數(shù)值。#includeintmain()unsignedcharc1,c2;c1=97;c2=98;printf(“%c%cn”,c1,c2);/*以字符形式輸出*/printf(“%d

19、%dn”,c1,c2);/*以整數(shù)形式輸出*/return0;,【例3.10】#includeintmain()charc1,c2;c1=A;c2=c1+32;printf(“cdn”,c2,c2);,C語(yǔ)言允許字符數(shù)據(jù)與整數(shù)直接進(jìn)行算術(shù)運(yùn)算,可以相互賦值。,大寫字母轉(zhuǎn)換為小寫字母。,3常變量,3.2.1,常量與變量,const數(shù)據(jù)類型變量名=數(shù)值;,constinta=30;,常變量與常量的區(qū)別:常變量具有變量的基本屬性,即有名字、類型、占內(nèi)存單元。常變量是有名字的不變量,而常量是沒(méi)有名字的不變量。,常變量與符號(hào)常量的區(qū)別:符號(hào)常量不分配內(nèi)存單元,在預(yù)編譯后,符號(hào)常量就不存在了;常變量要占內(nèi)

20、存單元,有變量值,只是其值不能改變。,C運(yùn)算符算術(shù)運(yùn)算符+-*/+-關(guān)系運(yùn)算符=!j=i+;printf(“%d%dn”,i,j);i=0;j=+i;printf(“%d%d”,i,j);return0;,11,區(qū)分:j=i+1;j=+i;,10,用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象連接起來(lái)的、符合C語(yǔ)法規(guī)則的式子,稱為C算術(shù)表達(dá)式。如:a*b/c-1.5+a,x+sqrt(0.25*y)/(abs(a+b)-3.6),3.2.7運(yùn)算符和表達(dá)式,3.算術(shù)表達(dá)式,教學(xué)進(jìn)程,教學(xué)進(jìn)程,表達(dá)式求值,(1)先按運(yùn)算符優(yōu)先級(jí)別的高低來(lái)執(zhí)行;(2)在一個(gè)運(yùn)算對(duì)象兩側(cè)的運(yùn)算符的優(yōu)先級(jí)別相同,則按規(guī)定的“結(jié)合方向”處

21、理。詳見P378,常量、變量、函數(shù)等,運(yùn)算規(guī)則:不同類型數(shù)據(jù)運(yùn)算時(shí)自動(dòng)轉(zhuǎn)換成同一類型,4不同類型數(shù)據(jù)間的混合運(yùn)算,charch;inti;floatf;doubled;,ch/i+f*d-(f+i),注意:系統(tǒng)所進(jìn)行的類型轉(zhuǎn)換并不改變?cè)瓟?shù)據(jù)的類型,只是在運(yùn)算過(guò)程中將其值變成同類型后再運(yùn)算。,(double)a將a的值轉(zhuǎn)換成double類型(int)(x+y)將x+y的結(jié)果轉(zhuǎn)換成int類型(int)x+y將x的值轉(zhuǎn)換成int類型后與y進(jìn)行相加(float)(5%3)將5%3的值轉(zhuǎn)換成float類型,在強(qiáng)制類型轉(zhuǎn)換過(guò)程中,并不改變?cè)兞康念愋?,只是在運(yùn)算過(guò)程中將其值轉(zhuǎn)換類型后再運(yùn)算。,(類型名)(

22、表達(dá)式),5強(qiáng)制類型轉(zhuǎn)換運(yùn)算符,【例3.8】強(qiáng)制類型轉(zhuǎn)換。#includeintmain()floatx;inti;x=3.6;i=(int)x;printf(“x=%fti=%dn”,x,i);return0;,運(yùn)行結(jié)果為:x=3.6i=3,5強(qiáng)制類型轉(zhuǎn)換運(yùn)算符,C語(yǔ)句,3.3,一條語(yǔ)句經(jīng)編譯后產(chǎn)生若干條機(jī)器指令。,一個(gè)函數(shù)的執(zhí)行部分是由若干條語(yǔ)句組成的。,C語(yǔ)句都是用來(lái)完成一定的操作任務(wù)的。,C語(yǔ)句的分類,C語(yǔ)句分為5類:控制語(yǔ)句、函數(shù)調(diào)用語(yǔ)句、表達(dá)式語(yǔ)句、復(fù)合語(yǔ)句、空語(yǔ)句。,(1)控制語(yǔ)句用于完成一定的控制功能if()elseswitch()for()dowhile()while()br

23、eakcontinuereturngoto標(biāo)號(hào)說(shuō)明:“()”中是一個(gè)判斷條件,“”表示內(nèi)嵌的語(yǔ)句。,今后學(xué)習(xí)的重點(diǎn)哦!,(3)表達(dá)式語(yǔ)句由一個(gè)表達(dá)式加一個(gè)分號(hào)構(gòu)成賦值語(yǔ)句:賦值表達(dá)式加一個(gè);號(hào)如:s=3.1415*r*r;i+;,(2)函數(shù)調(diào)用語(yǔ)句由一個(gè)函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成如:printf(“ThisisaCstatement.”);,(5)復(fù)合語(yǔ)句用“”括起來(lái)的若干個(gè)語(yǔ)句z=x+y;t=z/100;printf(“%f”,t);,(4)空語(yǔ)句只有一個(gè)分號(hào),什么都不做,例如:for(i=0;i=10;i+);,(1)復(fù)合語(yǔ)句的之外不能有分號(hào)(2)復(fù)合語(yǔ)句中可以是簡(jiǎn)單語(yǔ)句、復(fù)合語(yǔ)句,空語(yǔ)句。,

24、用作轉(zhuǎn)向點(diǎn),或?yàn)檠h(huán)語(yǔ)句提供空體,1.賦值運(yùn)算符“”作用:將一個(gè)數(shù)據(jù)賦給一個(gè)變量,常量、變量或表達(dá)式,只能是變量,不能是常量或表達(dá)式,例3=x-2*y;a+b=3;,例a3;a(a+b)*c;,賦值語(yǔ)句,3.3.2,結(jié)合方向:自右向左,例:a=b=c=5,/*b=5;a=5*/,2.復(fù)合的賦值運(yùn)算符賦值運(yùn)算符前面加上其它運(yùn)算符,如+=-=*=/=%=inti;i=10;f=i;則f=10.0,例2inti;i=2.56;/結(jié)果i=2;,-類型轉(zhuǎn)換P62-63自學(xué),區(qū)別賦值表達(dá)式和賦值語(yǔ)句的不同,如:if(a=b)0)t=a;if(a=b;)0)t=a;,給定義的部分變量初始化如:inta,b,

25、c=5;,對(duì)幾個(gè)變量賦同一初值如:inta=3,b=3,c=3;inta=b=c=3(),定義變量的同時(shí)給變量初始化如:inta=3;charc=a;,6,變量賦初值,注意:初始化不是在編譯階段完成的,而是在程序運(yùn)行時(shí)執(zhí)行到本函數(shù)時(shí)賦初值的。,數(shù)據(jù)的輸入與輸出是相對(duì)于計(jì)算機(jī)而言的。其中:輸出:從計(jì)算機(jī)向外部設(shè)備(顯示器、打印機(jī)等)輸出數(shù)據(jù);輸入:從輸入設(shè)備(鍵盤、鼠標(biāo)、掃描儀等)向計(jì)算機(jī)輸入數(shù)據(jù)。,3.4,數(shù)據(jù)輸入輸出的概念及在C語(yǔ)言中的實(shí)現(xiàn),C語(yǔ)言本身不提供輸入輸出語(yǔ)句,輸入和輸出操作是由C函數(shù)庫(kù)中的系統(tǒng)函數(shù)來(lái)實(shí)現(xiàn)的。,例如:字符輸入函數(shù):getchar字符輸出函數(shù):putchar格式輸入函

26、數(shù):scanf格式輸出函數(shù):printf字符串輸入函數(shù):gets字?jǐn)?shù)串輸出函數(shù):puts,數(shù)據(jù)輸入輸出的概念及在C語(yǔ)言中的實(shí)現(xiàn),注意:若在程序中使用C語(yǔ)言所提供的輸入或輸出函數(shù),應(yīng)該在程序開頭使用包含命令(include)將頭文件”stdio.h”包含進(jìn)來(lái)。,#include“stdio.h”或#include,3.4.3,printf(格式控制符,輸出項(xiàng)列表);,格式控制符,用一對(duì)雙引號(hào)括起來(lái)的字符串,包括兩種信息:格式說(shuō)明由“%”和特定字符組成,用于說(shuō)明輸出項(xiàng)目所采用的格式,如:%d、%c、%f等普通字符作為說(shuō)明性的文字、符號(hào)等,照原樣顯示出來(lái)。輸出項(xiàng)列表指出所要輸出的內(nèi)容,可以是常量、變

27、量或表達(dá)式。,Printf函數(shù),3.4.3,例如:printf(a=%db=%fn,a,b);,功能:向終端輸出若干個(gè)類型任意的數(shù)據(jù),d,按十進(jìn)制整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出有符號(hào)數(shù)。,2.基本的格式字符,printf(“%dn%d”,12,-123);,%c,僅輸出一個(gè)字符。,輸出時(shí),可以指定輸出數(shù)據(jù)的寬度,%md,printf(“%3dn%5d”,1234,-123);,charch=a;printf(“%c”,ch);,m表示輸出的整型數(shù)據(jù)所占總寬度(即列數(shù)),其中:當(dāng)實(shí)際數(shù)據(jù)的位數(shù)不到m位時(shí),數(shù)據(jù)前面將用空格補(bǔ)滿;若實(shí)際數(shù)據(jù)位數(shù)大于m,則以數(shù)據(jù)的實(shí)際位數(shù)為準(zhǔn)進(jìn)行輸出。,輸出時(shí),可以指定輸出數(shù)

28、據(jù)的寬度,%mc,shorta=121;intb=377;printf(“%c%c”,a,b);,charch=a;printf(“%5c”,ch);,對(duì)于0-127之間的整數(shù),可以用%c的形式輸出,%f,以小數(shù)形式輸出一個(gè)實(shí)數(shù)(含單雙精度數(shù))。整數(shù)部分全部輸出,并輸出6位小數(shù)。,%e或%E,以指數(shù)形式輸出一個(gè)實(shí)數(shù)(含單雙精度數(shù))。小數(shù)點(diǎn)前僅1位非0數(shù)字,并輸出6位小數(shù),指數(shù)部分占5位。,%s,輸出一個(gè)字符串。,printf(%sn,CHINA);輸出的結(jié)果是字符串CHINA,printf(%fn,1/3);0.333333,m.nf或-m.nf,格式說(shuō)明符中的m表示整個(gè)數(shù)據(jù)所占的寬度,n表示

29、小數(shù)點(diǎn)后面所占的位數(shù),數(shù)值長(zhǎng)度小于m,左端補(bǔ)空格。如果在小數(shù)點(diǎn)后取n位后,所規(guī)定的數(shù)據(jù)寬度m不夠輸出數(shù)據(jù)前面的整數(shù)部分(包括小數(shù)點(diǎn)),則整數(shù)部分按實(shí)際的位數(shù)進(jìn)行輸出。,printf(%en,123.456);1.234560e+002,P73-P74自學(xué),【例3.9】輸出實(shí)數(shù)時(shí),指定小數(shù)位數(shù)。,#includeintmain()floatf=123.456;printf(%f%10f%10.2f%.2f%-10.2fn,f,f,f,f,f);return0;,運(yùn)行結(jié)果:123.456001123.456001123.46123.46123.46,幾點(diǎn)說(shuō)明:,編譯程序只是檢查printf函數(shù)的調(diào)

30、用形式,不分析格式字符串,如果格式字符與輸出項(xiàng)類型不匹配,不進(jìn)行類型轉(zhuǎn)換;格式字符要用小寫字母;格式控制字符串中可以包含轉(zhuǎn)義字符;格式控制字符串中的普通字符原樣輸出;輸出項(xiàng)的參數(shù)除了常數(shù),變量外還可以是表達(dá)式、函數(shù)調(diào)用如:printf(“max=%dti=%dn”,max(a,b),i+);,inti=321;floatf=123.456;printf(“%5.2fn”,i);printf(“%5d:”,f);,403022178.210,scanf(格式控制符,變量地址列表),作用按格式控制符的要求將數(shù)據(jù)從終端送到變量地址所指定的存儲(chǔ)單元。說(shuō)明“格式控制符”的含義同printf函數(shù),說(shuō)明輸入

31、數(shù)據(jù)應(yīng)使用的格式?!白兞康刂妨斜怼笔怯扇舾蓚€(gè)地址組成的,可以是變量的地址或字符串的首地址。,scanf函數(shù),3.4.3,變量地址,變量的地址通過(guò)對(duì)變量名“求地址”運(yùn)算得到,形式:floatb;scanf(“%d%f”,12,12.34,floatb,c;printf(“inputa,b,c:”);scanf(“%d%f%f”,inputa,b,c:1234A=12,b=3.000000,c=4.000000,scanf(“%d,%f,%f”,inputa,b,c:12,3,4A=12,b=3.000000,c=4.000000,scanf(“a=%d,b=%f,c=%f”,輸入數(shù)據(jù)時(shí)指定域?qū)?

32、如:scanf(“%3d%3d”,輸入1234567時(shí),a得到123,b得到456,多余的7無(wú)用,與輸出不同,輸入時(shí)無(wú)論是單精度還是雙精度實(shí)型,都不能用m.n來(lái)指定輸入的寬度和小數(shù)點(diǎn)后的位數(shù);例如:scanf(“7.2f”,printf(a=%d,b=%dn,a,b);return0;,思考:若用戶可以以任意字符(回車、空格、制表符、逗號(hào)、其它)作為分隔符進(jìn)行數(shù)據(jù)的輸入,輸入語(yǔ)句該如何實(shí)現(xiàn)?,scanf(%d%*c%d,字符數(shù)據(jù)的輸入輸出,3.4.5,字符數(shù)據(jù)的輸出函數(shù)putchar,格式putchar(c)作用將字符c顯示在顯示器上。說(shuō)明(1)c可以是字符型或整型的常量、變量、表達(dá)式。(2)

33、c可以是轉(zhuǎn)義字符型,如:putchar(101);輸出字符Aputchar();輸出字符單引號(hào)putchar(015);輸出回車putchar(n);輸出換行,putchar(a);putchar(97);putchar(66+32);,#includeintmain()chara,b;a=66;b=O;putchar(a);putchar(b);putchar(Y);putchar(n);return0;,【例3.10】輸出單個(gè)字符。,運(yùn)行結(jié)果:BOY,教學(xué)進(jìn)程,字符數(shù)據(jù)的輸入輸出,3.4.5,字符數(shù)據(jù)的輸入函數(shù)getchar,格式getchar()作用從鍵盤緩沖區(qū)接收一個(gè)字符說(shuō)明函數(shù)沒(méi)有參數(shù);函數(shù)的值就是從輸入設(shè)備得到的字符;getchar()函數(shù)只能從鍵盤上接收一個(gè)字符;該函數(shù)可給字符型或整型變量賦值;該函數(shù)可作為表達(dá)式的一部分。,intc1;ch

溫馨提示

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