




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第二章數(shù)據(jù)輸出與輸入第1頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月2.1C語(yǔ)言的基本語(yǔ)句一個(gè)實(shí)際的C程序是一系列語(yǔ)句的集合,每一條語(yǔ)句都用來(lái)完成一定的操作任務(wù),C程序的每一條語(yǔ)句都要有分號(hào)結(jié)束,但變量聲明部分不算嚴(yán)格意義上的C語(yǔ)句。main(){inta,b;a=2;b=++a;printf(“%d,%d\n”,a,b);}嚴(yán)格說(shuō)來(lái),應(yīng)不稱(chēng)為語(yǔ)句。C語(yǔ)句分為以下幾類(lèi):(1)控制語(yǔ)句(2)函數(shù)調(diào)用語(yǔ)句(3)表達(dá)式語(yǔ)句(4)空語(yǔ)句(5)復(fù)合語(yǔ)句第2頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月2.1格式化輸出數(shù)據(jù)的“輸入”和“輸出”是相對(duì)于計(jì)算機(jī)主機(jī)而言的。C語(yǔ)言本身不提供輸入輸出語(yǔ)句,輸入輸出操作是通過(guò)調(diào)用庫(kù)函數(shù)來(lái)實(shí)現(xiàn)的,例如:printf和scanf就是c語(yǔ)言中用于實(shí)現(xiàn)數(shù)據(jù)輸入、輸出的庫(kù)函數(shù)之一。因?yàn)閏語(yǔ)言的輸入輸出庫(kù)函數(shù)都位于一個(gè)名為stdio.h的頭文件中,所以,每一個(gè)c語(yǔ)言程序的開(kāi)始都要用下面的編譯預(yù)處理命令將該頭文件包括到用戶編輯的文件中去。
#include“stdio.h”或#include<stdio.h>
第3頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月格式化輸出函數(shù)printf功能:向顯示屏輸出數(shù)據(jù)。語(yǔ)法:printf(格式控制,輸出列表);例如:printf(“%d,%d”,x,y);2.1格式化輸出第4頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月Printf函數(shù)說(shuō)明:一、格式控制部分是用雙引號(hào)括起來(lái)的字符串,用于描述輸出時(shí)的格式要求,其中包含兩種信息:(1)普通字符和轉(zhuǎn)義字符常量,普通字符原樣輸出,轉(zhuǎn)義字符按所表示的字符含義輸出;(2)格式說(shuō)明:如%d,%c等形式的字符串,指定輸出表列中相應(yīng)的變量或表達(dá)式的值的輸出形式。見(jiàn)P34表2-1例如:若已知整型變量a的值為2,整型變量b的值為3,程序中有輸出語(yǔ)句:printf(“a=%d,b=%d”,a,b);輸出結(jié)果為()。格式說(shuō)明,規(guī)范數(shù)據(jù)說(shuō)明信息,原樣輸出a=2,b=3第5頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月格式說(shuō)明對(duì)應(yīng)的輸出數(shù)據(jù)格式格式說(shuō)明輸出數(shù)據(jù)格式%d或%i輸出有符號(hào)的十進(jìn)制整型數(shù)%f輸出精度或雙精度且小數(shù)點(diǎn)后有6位數(shù)%c輸出一個(gè)字符%o輸出八進(jìn)制無(wú)符號(hào)整型數(shù)%x或%X輸出十六進(jìn)制無(wú)符號(hào)整型數(shù)%u輸出無(wú)符號(hào)十進(jìn)制整數(shù)%c或%E不常用第6頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月Printf函數(shù)舉例例3若有以下程序段intm=32767,n=032767;Printf(“%d,%o\n”,m,n);執(zhí)行后輸出的結(jié)果是:32767,32767例4若有以下程序段intm=0xabc,,n=0xabc;m-=n;Printf(“%X\n”,m);執(zhí)行后輸出的結(jié)果是:0第7頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月Printf函數(shù)說(shuō)明:二、輸出數(shù)據(jù)列表包括需要輸出的一些數(shù)據(jù)。各個(gè)數(shù)據(jù)間用逗號(hào)分隔開(kāi)。輸出數(shù)據(jù)的個(gè)數(shù)與輸出控制中的格式說(shuō)明個(gè)數(shù)相等,并且在順序上要一一對(duì)應(yīng)且類(lèi)型匹配。例如:printf(“%d,%f”,3.89,6);三、在輸出控制中,格式說(shuō)明個(gè)數(shù)應(yīng)與輸出項(xiàng)的個(gè)數(shù)相同。如果說(shuō)明個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),多余的輸出項(xiàng)則不輸出;如果格式說(shuō)明的個(gè)數(shù)多于輸出項(xiàng)個(gè)數(shù),則對(duì)多余的格式說(shuō)明輸出不定值。第8頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月例1有以下程序:Main(){inti=2000;floatj=2.71828;printf(“i=%d,j=%f,j*10=%f”,i,j,j*10);}結(jié)果是:i=2000,j=2.718280,j*10=27.182800Printf函數(shù)舉例:例2有以下程序Main(){inta=666,b=888;printf(“%d\n”,a,b);}結(jié)果是:666第9頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月Printf函數(shù)舉例:例3:若有程序段intm=32767,n=032767;printf(“%d,%o\n”,m,n);執(zhí)行后輸出結(jié)果是:32767,32767例4:若有程序段intm=0xabc,n=0xabc;m-=n,printf(“%X\n”,m);執(zhí)行后輸出結(jié)果是:0例5:若變量a,b已定義為int類(lèi)型并賦值21和55,要求用printf函數(shù)以a=21,b=55的形式輸出,完整的輸出語(yǔ)句是
printf(“a=%d,b=%d”,a,b);函數(shù)說(shuō)明二第10頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月Printf函數(shù)說(shuō)明:(1)可以在%和格式字符間加入一個(gè)整數(shù)來(lái)控制輸出數(shù)據(jù)寬度,如果整數(shù)指定寬度大于實(shí)際輸出數(shù)據(jù)寬度,數(shù)據(jù)輸出采用右對(duì)齊方式,左邊自動(dòng)補(bǔ)空格;反之,則以實(shí)際寬度輸出。2.1格式化輸出輸出語(yǔ)句輸出結(jié)果Printf(“%d”,254);254Printf(“%2d”,254);254Printf(“%4d”,254);254Printf(“%f”,1.25);1.250000Printf(“%10f”,1.25);1.250000第11頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月(2)當(dāng)在%和格式字符f之間加入“整數(shù)1.整數(shù)2”來(lái)控制輸出數(shù)據(jù)的格式時(shí),“整數(shù)1”用于指定輸出數(shù)據(jù)占的總寬度,“整數(shù)2”用于指定輸出實(shí)數(shù)的小數(shù)部分的位數(shù)。2.1格式化輸出輸出語(yǔ)句輸出結(jié)果Printf(“%4.4f”,1.25);1.2500Printf(“%7.4f”,1.25);1.2500Printf(“%2.0f”,1.25);1第12頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月(3)如果需要在輸出的八進(jìn)制數(shù)前添加0,或在輸出的十六進(jìn)制前添加0x,可在%號(hào)和格式字符o和x之間插入一個(gè)#號(hào)。2.1格式化輸出輸出語(yǔ)句輸出結(jié)果Printf(“%o”,254);376Printf(“%#o”,254);0376Printf(“%#x”,254);0xfe第13頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月Printf函數(shù)舉例:例如:main(){inta,b;clrscr();/*清屏*/a=123,b=12345;printf(“%d,%2d,%d,%10d\n”,a,a,b,b);}結(jié)果:123,123,12345,12345第14頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月字符輸出函數(shù)putchar語(yǔ)法:putchar(字符常量或字符變量);功能:將括號(hào)內(nèi)的字符常量或字符變量的值顯示在屏幕上。如:#include<stdio.h>main(){charc;c=‘A’;putchar(‘c’);putchar(‘\n’);putchar(c);}
cA2.2字符數(shù)據(jù)的輸出第15頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月格式化輸入函數(shù)scanf用于在程序運(yùn)行時(shí),由用戶自行輸入數(shù)值送入相應(yīng)變量保存。語(yǔ)法:scanf(格式控制,地址表列);說(shuō)明:格式控制含義與printf中的相同,地址表列一般是由若干個(gè)變量的地址組成的。2.3格式化輸入例:#definePI3.14159Main(){floatr,area;scanf(“%f”,&r);area=PI*r*r;Printf(“area=%f”,area);}“&”是求地址運(yùn)算符,&r表示取變量r的地址。第16頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月2.3格式化輸入格式說(shuō)明輸入數(shù)據(jù)格式格式說(shuō)明輸入數(shù)據(jù)格式%d輸入十進(jìn)制整型數(shù)%x輸入十六進(jìn)制整型數(shù)%c輸入一個(gè)字符%u輸入無(wú)符號(hào)的十進(jìn)制整數(shù)%o輸入八進(jìn)制整型數(shù)%f輸入單精度或雙精度數(shù)Scanf函數(shù)中格式說(shuō)明說(shuō)明:(1)當(dāng)從鍵盤(pán)輸入多個(gè)數(shù)值數(shù)據(jù)時(shí),輸入數(shù)值數(shù)據(jù)之間用分隔符(包括空格符、制表符和回車(chē)符;但不包括逗號(hào))隔開(kāi)。且格式說(shuō)明類(lèi)型與輸入項(xiàng)類(lèi)型一一對(duì)應(yīng)匹配,個(gè)數(shù)相同。如:intx,y,z;scanf(“%d%d%d”,&x,&y,&z);則鍵盤(pán)輸入格式:10<分隔符>20<分隔符>30<回車(chē)>例如下輸入語(yǔ)句intx,y,z;scanf(“%d%d”,&x,&y,&z);如輸入形式為10<分隔符>20<分隔符>30<回車(chē)>則只能對(duì)x和y變量分別輸入10和20.第17頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月說(shuō)明:(2)與printf相似,在scanf函數(shù)中的格式字符前可以用一個(gè)整數(shù)指定輸入數(shù)據(jù)所占的寬度,但對(duì)實(shí)數(shù)不能指定小數(shù)的位數(shù)。例如:如下語(yǔ)句inta,b;scanf(“%3d%2d”,&a,&b);printf(“%d,%d”,a,b);輸入數(shù)據(jù)123456789<回車(chē)>,輸出結(jié)果為123,45(3)路過(guò)輸入數(shù)據(jù)的方法??梢栽诟袷阶址c%之間加入一個(gè)“*”使輸入過(guò)程路過(guò)輸入的數(shù)據(jù)。如:intx,y,z;scanf(“%d,%d,%d”,&x,&y,&z);如下輸入:10<分隔符>20<分隔符>30<分隔符>40<回車(chē)>則將會(huì)10賦給變量x,跳過(guò)20,30賦給變量y,40賦給變量z。2.3格式化輸入第18頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月(4)、若在scanf函數(shù)的輸入控制串中含有其他的字符,則在輸入時(shí)要求一一對(duì)應(yīng)的位置原樣輸入這些字符。如:intx,y,z;scanf(“%d,%d,%d”,&x,&y,&z);如下輸入:10<分隔符>20<分隔符>30<分隔符>40<回車(chē)>則將會(huì)10賦給變量x,跳過(guò)20,30賦給變量y,40賦給變量z。2.3格式化輸入例:執(zhí)行以下程序時(shí)輸入1234567<CR>,則輸出結(jié)果是#include<stdio.h>Main(){inta=1,b;scanf(“%2d%2d”,&a,&b);printf(“%d%d\n”,a,b);}1234第19頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月小結(jié):1、scanf的輸入分隔符不包含逗號(hào),因此在使用鍵盤(pán)輸入數(shù)據(jù)時(shí),不能以逗號(hào)作為分隔符。如果需要以逗號(hào)作分隔符,則格式為:scanf(“%d,%d”,&a,&b);則輸入為10,20<回車(chē)>2、一般情況下,scanf的格式控制字符串中不要包含其他非格式控制符,否則往往容易混淆。3、使用scanf時(shí),如果數(shù)據(jù)輸入未能完成,則程序一直等待鍵盤(pán)輸入,此時(shí)用戶應(yīng)該完成數(shù)據(jù)輸入。4、使用scanf給變量賦值和直接使用賦值語(yǔ)句給變量賦值,都能使變量的值發(fā)生改變,但二者有本質(zhì)區(qū)別。2.3格式化輸入第20頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月字符輸入函數(shù)getchar語(yǔ)法:getchar();注意:()內(nèi)為空功能:要求用戶在程序執(zhí)行時(shí)從鍵盤(pán)上輸入一個(gè)字符,輸入的字符先放在緩沖區(qū)中,等待用戶按回車(chē)鍵確認(rèn),用戶敲入回車(chē)鍵后,該函數(shù)才真正獲得輸入的字符,同時(shí)將輸入的字符顯示在屏幕上。使用時(shí),一般用一個(gè)字符變量接收getchar()獲得的字符。例:#include<stdio.h>main(){charc;c=getchar();putchar(c);}例:#include<stdio.h>main(){putchar(getchar());}2.4格式化字符輸入第21頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月說(shuō)明:c語(yǔ)言程序執(zhí)行時(shí),首先會(huì)找到main函數(shù),然后按順序執(zhí)行main函數(shù)內(nèi)部的每條語(yǔ)句,當(dāng)遇到scanf語(yǔ)句時(shí),程序會(huì)暫停,等待用戶輸入數(shù)據(jù)后按回車(chē),才繼續(xù)向下運(yùn)行,運(yùn)行到main函數(shù)的最后一條語(yǔ)句后,運(yùn)行結(jié)束,可以看結(jié)果了。用戶輸入時(shí)應(yīng)按格式控制部分要求的格式輸入,否則會(huì)出錯(cuò)。(1)格式控制部分若有普通字符,按原樣輸入。(注:scanf函數(shù)的格式控制部分中,不應(yīng)該出現(xiàn)轉(zhuǎn)義字符。)(2)格式控制部分若有格式說(shuō)明符,如%d,%f等,要求輸入相應(yīng)格式的數(shù)據(jù)。第22頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月思考:像上例的scanf(“%d%d”,&a,&b);語(yǔ)句,格式說(shuō)明部分只要求輸入兩個(gè)十進(jìn)制整數(shù),并且兩個(gè)%d相連,之間沒(méi)有任何間隔符,那么在輸入的時(shí)候是不是直接輸入兩個(gè)相連的整數(shù)呢?第23頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月2.5順序結(jié)構(gòu)程序設(shè)計(jì)舉例例1:輸入一個(gè)華氏溫度,要求輸出對(duì)應(yīng)的攝氏溫度(保留兩位小數(shù)),轉(zhuǎn)換公式為c=5/9(f-32)。分析問(wèn)題,找出求解問(wèn)題的方法和步驟(簡(jiǎn)稱(chēng)問(wèn)題求解的算法)。該問(wèn)題的求解步驟很簡(jiǎn)單,首先要從鍵盤(pán)輸入一個(gè)華氏溫度,存儲(chǔ)在一個(gè)變量里,供以后做華氏溫度向攝氏溫度的轉(zhuǎn)換用;接著,使用轉(zhuǎn)換公式,將轉(zhuǎn)換后的攝氏溫度值保存在另一變量中,等待輸出;然后輸出該攝氏溫度值。第24頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月用c語(yǔ)言語(yǔ)句描述上面的算法,寫(xiě)成完整的程序。main(){floatf,c;scanf(“%f”,&f);c=5.0/9*(f-32);printf(“%.2f\n”,c);}書(shū)寫(xiě)程序時(shí),注意:(1)首先,應(yīng)考慮程序中要使用幾個(gè)變量,每個(gè)變量的含義及類(lèi)型(2)變量應(yīng)在有了確定值后,才可以使用(3)數(shù)學(xué)表達(dá)式到c語(yǔ)言表達(dá)式的轉(zhuǎn)換
2.5順序結(jié)構(gòu)程序設(shè)計(jì)舉例第25頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月例2:輸入兩個(gè)整數(shù),分別存放在變量a和b中,要求將這兩個(gè)變量的值互換,輸出它們的值。分析:完成該問(wèn)題的算法可分為以下幾步:(1)輸入兩個(gè)數(shù),分別存入a和b中(2)將a,b變量的值相互交換(3)輸出交換后的a和b的值問(wèn)題是:第(2)步如何具體實(shí)現(xiàn)?2.5順序結(jié)構(gòu)程序設(shè)計(jì)舉例第26頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月main(){inta,b,c;scanf(“%d,%d”,&a,&b);printf(“first:a=%d,b=%d\n”,a,b);c=a;a=b;b=c;printf(“l(fā)ater:a=%d,b=%d\n”,a,b);}2.5順序結(jié)構(gòu)程序設(shè)計(jì)舉例第27頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月例3:編寫(xiě)c程序,按下列公式計(jì)算并輸出s的值,其中,a和b的值由鍵盤(pán)輸入。s=2ab/(a+b)2分析:求解該問(wèn)題的算法分為以下幾步(1)輸入a和b的值(2)由公式計(jì)算出s的值(3)輸出s2.5順序結(jié)構(gòu)程序設(shè)計(jì)舉例第28頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月main(){floata,b,s;scanf(“%f,%f”,&a,&b);s=2*a*b/((a+b)*(a+b));printf(“s=%f\n”,s);}2.5順序結(jié)構(gòu)程序設(shè)計(jì)舉例第29頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月若程序如下,則不能實(shí)現(xiàn)題意要求的功能。為什么?main(){inta,b;floats;scanf(“%d,%d”,&a,&b);s=2*a*b/((a+b)*(a+b));printf(“s=%f\n”,s);}2.5順序結(jié)構(gòu)程序設(shè)計(jì)舉例第30頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月思考:如果要求對(duì)上面的程序作修改,但不允許改變變量的類(lèi)型,使程序仍能實(shí)現(xiàn)題意要求的功能,應(yīng)該怎么辦?第31頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月習(xí)題1、以下程序運(yùn)行時(shí)若從鍵盤(pán)輸入:102030<回車(chē)>。輸出結(jié)果是#include“stdio.h”Main(){inti=0,j=0,k=0;Scanf(“%d%*d%d
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年中新天津生態(tài)城管委會(huì)招聘黨務(wù)指導(dǎo)員考試真題
- 2024年昆明市盤(pán)龍區(qū)拓東第一小學(xué)編制外教師招聘考試真題
- 2024年廣東省民政廳選調(diào)大學(xué)畢業(yè)生考試真題
- 物業(yè)管理行業(yè)創(chuàng)新服務(wù)培訓(xùn)方案
- 風(fēng)力提水機(jī)組項(xiàng)目融資計(jì)劃書(shū)
- 綜采工作面回撤技術(shù)措施與經(jīng)濟(jì)效益分析
- 高速公路隧道工程質(zhì)量保障措施
- 機(jī)電設(shè)備裝配的技術(shù)保障措施
- 電信行業(yè)隱患排查治理年度方案
- 商業(yè)空間改造的關(guān)鍵施工措施
- TSG-R0005-2022《移動(dòng)式壓力容器安全技術(shù)監(jiān)察規(guī)程》(2022版)
- 人教版一年級(jí)下冊(cè)數(shù)學(xué)十幾減9算理的練習(xí)
- QC成果構(gòu)造柱澆筑新技術(shù)的研發(fā)創(chuàng)新(附圖)
- qbq問(wèn)題背后的問(wèn)題
- 流體輸送實(shí)訓(xùn)裝置操作規(guī)程
- extreme-sports 極限運(yùn)動(dòng) 英文 ppt
- 國(guó)際注冊(cè)建造師與項(xiàng)目管理師雙資格認(rèn)證
- 面癱護(hù)理查房
- 精品資料(2021-2022年收藏)建筑立面裝飾設(shè)計(jì)技術(shù)導(dǎo)則
- ISO9001質(zhì)量管理體系目錄結(jié)構(gòu)
- 5米對(duì)數(shù)視力表及E尺寸標(biāo)準(zhǔn)A4
評(píng)論
0/150
提交評(píng)論