版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
順序結(jié)構(gòu)程序設(shè)計(jì)本章主要內(nèi)容:3.1格式化輸出—printf()(重點(diǎn))3.2格式化輸入—scanf()(重點(diǎn))3.3字符的輸入輸出3.4順序結(jié)構(gòu)程序設(shè)計(jì)舉例本章教學(xué)要求:熟悉順序結(jié)構(gòu)程序設(shè)計(jì)的特點(diǎn)掌握格式化輸入輸出函數(shù)的使用方法3.1格式化輸出—printf()3.1.1printf的一般格式格式:printf("格式控制",輸出表列);1.格式控制
格式控制是用雙引號(hào)括起來(lái)的字符串,它包括格式說(shuō)明和普通字符兩部分。(1)格式說(shuō)明
格式說(shuō)明由“%”和格式字符組成,它的作用是說(shuō)明計(jì)算機(jī)中的數(shù)值將以何種形式顯示在屏幕上。順序結(jié)構(gòu)程序設(shè)計(jì)3.1格式化輸出—printf()(2)普通字符
普通字符是需要原樣輸出的字符。如:x=、y=。普通字符的使用使輸出結(jié)果更加清晰、易懂。比如,輸出結(jié)果x=5就比只輸出5更容易使人理解。例如:floatx;printf("x=%f\n",x);順序結(jié)構(gòu)程序設(shè)計(jì)3.1格式化輸出—printf()2.
輸出表列
輸出表列是需要輸出的數(shù)據(jù),它可以是常量、變量或表達(dá)式,各輸出項(xiàng)之間以逗號(hào)作為間隔。執(zhí)行printf函數(shù)時(shí)輸出項(xiàng)將按格式符指定的格式輸出?!纠?-1】分析下列程序的執(zhí)行結(jié)果。順序結(jié)構(gòu)程序設(shè)計(jì)3.1格式化輸出—printf()3.1.2格式字符C語(yǔ)言中的格式字符主要有以下幾種,如表3-1所示。順序結(jié)構(gòu)程序設(shè)計(jì)3.1格式化輸出—printf()
1.輸出整型數(shù)據(jù)的格式字符d:按整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出。md:m為指定的輸出寬度。若數(shù)據(jù)位數(shù)小于m,當(dāng)m為正數(shù)時(shí),則左端補(bǔ)空格;當(dāng)m為負(fù)數(shù)時(shí),則右端補(bǔ)空格。若數(shù)據(jù)位數(shù)大于m,按實(shí)際位數(shù)輸出。ld:用于輸出長(zhǎng)整型數(shù)據(jù)。o:以八進(jìn)制數(shù)形式輸出。x:以十六進(jìn)制數(shù)形式輸出。u:以無(wú)符號(hào)型整數(shù)形式輸出。順序結(jié)構(gòu)程序設(shè)計(jì)3.1格式化輸出—printf()【例3-2】#include<stdio.h>intmain(){inta,b;a=123,b=12345;printf("*%d*,*%d*\n",a,b);printf("*%5d*,*%4d*\n",a,b);printf("*%-5d*,*%-4d*\n",a,b);return0;}順序結(jié)構(gòu)程序設(shè)計(jì)3.1格式化輸出—printf()【例3-3】#include<stdio.h>intmain(){longx;x=123456;printf("%ld\n",x);return0;}程序運(yùn)行結(jié)果:123456順序結(jié)構(gòu)程序設(shè)計(jì)3.1格式化輸出—printf()【例3-4】
#include<stdio.h>intmain(){inta,b,c;a=10;b=010;c=0x10;printf("%d,%o,%x\n",a,b,c);printf("%d,%d,%d\n",a,b,c);return0;}程序運(yùn)行結(jié)果:10,10,1010,8,16順序結(jié)構(gòu)程序設(shè)計(jì)3.1格式化輸出—printf()【例3-5】#include<stdio.h>intmain(){unsignedinta;a=4294967295;printf("%u,%d\n",a,a);return0; }程序運(yùn)行結(jié)果:4294967295,-1順序結(jié)構(gòu)程序設(shè)計(jì)3.1格式化輸出—printf()2.輸出實(shí)型數(shù)據(jù)的格式字符f:以小數(shù)形式輸出實(shí)數(shù),保留6位小數(shù)。m.nf:輸出數(shù)據(jù)共占m位,其中有n位小數(shù),小數(shù)點(diǎn)占1位。如果數(shù)據(jù)長(zhǎng)度小于m,則左端補(bǔ)空格,即數(shù)據(jù)右對(duì)齊;-m.nf:當(dāng)數(shù)據(jù)長(zhǎng)度小于m時(shí),右端補(bǔ)空格,即數(shù)據(jù)左對(duì)齊?!纠?-6】順序結(jié)構(gòu)程序設(shè)計(jì)3.1格式化輸出—printf()【例3-7】
#include<stdio.h>intmain(){floatx=123.456;printf("%f\n",x);printf("*%-10.3f*\n",x);printf("*%10.1f*\n",x);return0;}順序結(jié)構(gòu)程序設(shè)計(jì)3.1格式化輸出—printf()【例3-8】#include<stdio.h>intmain(){floatr=2.5,s;s=3.14*r*r;printf("s=%f\n",s);printf("s=%.2f\n",s);return0;}順序結(jié)構(gòu)程序設(shè)計(jì)3.1格式化輸出—printf()
3.輸出字符型數(shù)據(jù)的格式符c:輸出單個(gè)字符。mc:按指定寬度m輸出字符。若m為正值,則輸出字符右對(duì)齊;若m為負(fù)值,則輸出字符左對(duì)齊。【例3-9】順序結(jié)構(gòu)程序設(shè)計(jì)3.1格式化輸出—printf()
4.輸出字符串的格式符s:按實(shí)際長(zhǎng)度輸出字符串。ms:按指定寬度m輸出字符串。當(dāng)m為正數(shù)時(shí),字符串右對(duì)齊輸出;m為負(fù)數(shù)時(shí),字符串左對(duì)齊輸出;如果m小于字符串長(zhǎng)度,則按實(shí)際長(zhǎng)度輸出。m.ns:只輸出字符串的前n個(gè)字符,共占m列。當(dāng)m為正數(shù)時(shí),字符串右對(duì)齊輸出;m為負(fù)數(shù)時(shí),字符串左對(duì)齊輸出?!纠?-10】順序結(jié)構(gòu)程序設(shè)計(jì)3.2格式化輸入—scanf()3.2.1scanf的一般格式格式:scanf("格式字符",地址表列);
例如:scanf("%d",&a);說(shuō)明:(1)“地址表列”是變量的內(nèi)存地址,它是通過(guò)對(duì)變量的“求地址”運(yùn)算得到的,“&”就是求地址運(yùn)算符。(2)scanf函數(shù)也使用格式符,格式符的作用是表示用戶想要將輸入的文本轉(zhuǎn)換為何種形式存儲(chǔ)在內(nèi)存中。順序結(jié)構(gòu)的程序設(shè)計(jì)順序結(jié)構(gòu)程序設(shè)計(jì)3.2格式化輸入—scanf()3.2.2scanf的用法1.整型、實(shí)型數(shù)據(jù)的輸入scanf(“%d,%d,%d”,&a,&b,&c);scanf("%d%d%d",&a,&b,&c);
如果格式符之間以逗號(hào)間隔,則輸入的數(shù)據(jù)間也要以逗號(hào)間隔。
比如,要給變量a、b、c分別賦值1、2、3,則在執(zhí)行時(shí)輸入數(shù)據(jù)如下:
1,2,3↙順序結(jié)構(gòu)程序設(shè)計(jì)3.2格式化輸入—scanf()【例3-11】#include<stdio.h>intmain(){ inta,b; floatc,d; scanf("%d,%d",&a,&b); scanf("%f,%f",&c,&d); printf("%d,%d,%.1f,%.1f\n",a,b,c,d);return0;}順序結(jié)構(gòu)程序設(shè)計(jì)3.2格式化輸入—scanf()【例3-12】#include<stdio.h>intmain(){ floata,b; scanf("%f%f",&a,&b); printf("a=%.1fb=%.1f\n",a,b);return0;}程序運(yùn)行結(jié)果:2.5凵2.6↙a=2.5b=2.6順序結(jié)構(gòu)程序設(shè)計(jì)3.2格式化輸入—scanf()(3)scanf("a=%d,b=%d",&a,&b);
若要給a、b分別賦值為1、2,則運(yùn)行時(shí)輸入:a=1,b=2↙【例3-13】#include<stdio.h>intmain(){ inta,b,c,d; scanf("a=%d,b=%d\n",&a,&b); scanf("c:%d,d:%d",&c,&d); printf("%d%d%d%d\n",a,b,c,d);return0;}順序結(jié)構(gòu)程序設(shè)計(jì)3.2格式化輸入—scanf()【例3-14】#include<stdio.h>intmain(){ inta; printf("輸入年齡:"); scanf("%d",&a); printf("年齡:%d\n",a);return0;}程序運(yùn)行結(jié)果:輸入年齡:10↙年齡:10順序結(jié)構(gòu)程序設(shè)計(jì)3.2格式化輸入—scanf()2.字符型數(shù)據(jù)的輸入scanf("%c,%c,%c",&a,&b,&c);
在字符輸入時(shí),如果scanf中的格式符間以逗號(hào)間隔,輸入數(shù)據(jù)時(shí),字符間也以逗號(hào)間隔。scanf(“%c%c%c”,&a,&b,&c);
在字符輸入時(shí),如果scanf中的格式符間沒(méi)有間隔,輸入數(shù)據(jù)時(shí),字符要連續(xù)輸入。順序結(jié)構(gòu)程序設(shè)計(jì)3.2格式化輸入—scanf()【例3-15】#include<stdio.h>intmain(){ chara,b,c; scanf("%c,%c,%c",&a,&b,&c); printf("%c%c%c\n",a,b,c);return0;}順序結(jié)構(gòu)程序設(shè)計(jì)3.2格式化輸入—scanf()【例3-16】#include<stdio.h>intmain(){ chara,b,c; scanf("%c%c%c",&a,&b,&c); printf("%c%c%c\n",a,b,c);return0;}程序運(yùn)行結(jié)果:you↙you順序結(jié)構(gòu)程序設(shè)計(jì)3.2格式化輸入—scanf()【例3-17】編寫(xiě)程序,求圓面積。分析:圓面積的計(jì)算公式為:s=πr2,因?yàn)殒I盤(pán)上不能輸入π,所以用3.14代替。順序結(jié)構(gòu)程序設(shè)計(jì)3.3
字符的輸入輸出—getchar()和putchar()
3.3.1getchar函數(shù)格式:變量=getchar();【例3-18】順序結(jié)構(gòu)程序設(shè)計(jì)3.3字符的輸入輸出—getchar()和putchar()3.3.2putchar函數(shù)格式:putchar(c);【例3-19】順序結(jié)構(gòu)程序設(shè)計(jì)3.4順序結(jié)構(gòu)程序設(shè)計(jì)舉例
【例3-20】求一元二次方程ax2+bx+c=0的根。
分析:
要用計(jì)算機(jī)解方程,必須給出求解方程的算法,對(duì)于一元二次方程ax2+bx+c=0來(lái)說(shuō),就是要給出求根公式。給公式中的變量賦值,計(jì)算機(jī)就可以求出方程的根了。
因?yàn)榍蟾街杏玫搅似椒礁瘮?shù)sqrt(x),所以程序必須將數(shù)學(xué)頭文件:math.h包含到程序中。順序結(jié)構(gòu)程序設(shè)計(jì)3.4順序結(jié)構(gòu)程序設(shè)計(jì)舉例
【例3-21】輸入任意三個(gè)整數(shù),求和及平均值。分析:
編寫(xiě)該程序時(shí),有兩個(gè)地方需要注意:①定義變量時(shí),平均值變量aver要定義為實(shí)型,不能定義為整型,否則誤差太大。②求平均值時(shí),sum除以實(shí)數(shù)3.0,而不是除以整數(shù)3,如果除數(shù)和被除數(shù)都是整數(shù),那么商也將是一個(gè)整數(shù),這樣也會(huì)造成誤差大的錯(cuò)誤。順序結(jié)構(gòu)程序設(shè)計(jì)3.4順序結(jié)構(gòu)程序設(shè)計(jì)舉例
【例3-22】從鍵盤(pán)輸入一個(gè)小寫(xiě)字母,將其轉(zhuǎn)換為大寫(xiě)字母輸出。分析:
大寫(xiě)字母的ASCII碼值等于小寫(xiě)字母的ASCII碼值減32。
順序結(jié)構(gòu)程序設(shè)計(jì)3.4順序結(jié)構(gòu)程序設(shè)計(jì)舉例
【例3-23】輸入三角形的三條邊,求三角形面積。三角形面積的計(jì)算公式為:分析:
為簡(jiǎn)單起見(jiàn),設(shè)輸入的三條邊a、b、c能構(gòu)成三角形,所以讀者運(yùn)行程序時(shí),給變量的賦值必須保證三邊長(zhǎng)的值可以構(gòu)成三角形,否則運(yùn)行結(jié)果將是錯(cuò)誤的。
順序結(jié)構(gòu)程序設(shè)計(jì)
溫馨提示
- 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年三季度報(bào)天津地區(qū)A股流動(dòng)負(fù)債合計(jì)排名前十大上市公司
- 課題申報(bào)參考:教育家精神賦能高校師德師風(fēng)建設(shè)研究
- 二零二五版外資企業(yè)會(huì)計(jì)人員聘用與管理服務(wù)協(xié)議3篇
- 二零二五年環(huán)境治理?yè)?dān)保合同標(biāo)的屬性與實(shí)施3篇
- 二零二五年度農(nóng)產(chǎn)品批發(fā)市場(chǎng)合作協(xié)議書(shū)4篇
- 2025年湛江貨運(yùn)從業(yè)資格證怎么考
- 醫(yī)院工作個(gè)人工作總結(jié)
- 二零二五版?zhèn)€體工商戶雇工勞動(dòng)合同(文創(chuàng)產(chǎn)業(yè)專用)3篇
- 2025年度智能交通設(shè)施安裝與維護(hù)承包合作協(xié)議4篇
- 2025年度智慧家居蟲(chóng)害預(yù)防與治理服務(wù)合同4篇
- 2024年高純氮化鋁粉體項(xiàng)目可行性分析報(bào)告
- 安檢人員培訓(xùn)
- 山東省濰坊市2024-2025學(xué)年高三上學(xué)期1月期末 英語(yǔ)試題
- 危險(xiǎn)性較大分部分項(xiàng)工程及施工現(xiàn)場(chǎng)易發(fā)生重大事故的部位、環(huán)節(jié)的預(yù)防監(jiān)控措施
- 《榜樣9》觀后感心得體會(huì)四
- 2023事業(yè)單位筆試《公共基礎(chǔ)知識(shí)》備考題庫(kù)(含答案)
- 化學(xué)-廣東省廣州市2024-2025學(xué)年高一上學(xué)期期末檢測(cè)卷(一)試題和答案
- 2025四川中煙招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- EHS工程師招聘筆試題與參考答案(某大型央企)2024年
- 營(yíng)銷(xiāo)策劃 -麗亭酒店品牌年度傳播規(guī)劃方案
- 2025年中國(guó)蛋糕行業(yè)市場(chǎng)規(guī)模及發(fā)展前景研究報(bào)告(智研咨詢發(fā)布)
評(píng)論
0/150
提交評(píng)論