版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第四章順序結(jié)構(gòu)1、基本結(jié)構(gòu)2、執(zhí)行過程:先執(zhí)行A操作,再執(zhí)行B操作順序結(jié)構(gòu)程序ABAB4.1賦值語句1、構(gòu)成:由賦值表達式加上一個分號(;)構(gòu)成。如:a=12;2、使用要點:(1)在賦值表達式中,“=”作為賦值運算符;(2)區(qū)別賦值表達式與賦值語句是兩個不同的概念。如:if((a=b)>0)t=a;(正確)if((a=b;)>0)t=a;(錯誤)4.2數(shù)據(jù)輸出在C語言中,本身不提供用于輸入和輸出的語句C語言的輸入/輸出功能通過調(diào)用標準庫函數(shù)提供的輸入和輸出函數(shù)來實現(xiàn)數(shù)據(jù)的輸入和輸出。C語言的輸入輸出庫函數(shù)名稱不是關(guān)鍵字(保留字)。如printf、putchar、puts,scanf、getchar、gets格式字符串定界符一、格式輸出函數(shù)printf1.printf函數(shù)格式與功能a.一般格式printf(“格式控制字符串”,輸出表項列表)如:printf(函數(shù)名格式控制字符串輸出項列表x)%10.3“x=\n”,非格式字符串寬度精度f輸出項數(shù)據(jù)類型b.功能:按指定的格式向終端輸出若干任意類型的數(shù)據(jù)。#include<stdio.h>voidmain(){inti=2598;floatj=3.1415;printf(“i=%d,j=%f,i*j=%e\n”,i,j,i*j);}輸出結(jié)果為:i=2598,j=3.141500,i*j=8.161617e+003例4.12.printf函數(shù)中常用的格式控制字符串
格式控制字符串是用雙引號括起來的字符串,用來確定確定輸出項的格式和需要原樣輸出的字符串。其組成形式為:[普通字符串]%[附加格式][輸出最小寬帶][.精度][長度]格式字符其中方括號[]中的項為可選項
格式字符用來表示輸出數(shù)據(jù)的類型,格式字符所代表的意義,如表4.1所示(1)格式字符(2)附加格式
附加格式字符為:+、-、#和數(shù)字0,其意義如表4.2所示格式字符說明d或i輸出帶符號的十進制整型數(shù)(正數(shù)不輸出符號)u無符號十進制形式輸出整型數(shù)o無符號八進制形式輸出整型數(shù)(不輸出前導(dǎo)符0)x或X無符號十六進制形式輸出整型數(shù)(不輸出前導(dǎo)符0x或0X)。用x則輸出十六進制數(shù)的a~f時以小寫形式輸出;X時用大寫形式輸出c輸出一個字符s輸出字符串,直到遇到“\0”或輸出有精度指定的字符數(shù)f以小數(shù)形式輸出單、雙精度數(shù),隱含輸出六位小數(shù)e或E以標準指數(shù)形式輸出單、雙精度數(shù),數(shù)字部分六位小數(shù)。用e時指數(shù)以e表示(1.8e+004),用E時指數(shù)以E表示(1.8E+004)g或G系統(tǒng)選用%f或%e格式中輸出寬度較短的一種格式輸出,不輸出無意義的0p輸出變量的內(nèi)存地址%打印一個%格式控制字符附加格式字符意義-在指定輸出寬度的同時,指定數(shù)據(jù)左對齊,右邊填空格+輸出符號(正號或負號),輸出值為正時在數(shù)據(jù)前加“+”,負數(shù)時在數(shù)據(jù)前加“-”#對c,s,d,u類無影響;對o,x類,在輸出時加前導(dǎo)符;對e,g,f類當(dāng)結(jié)果有小數(shù)是才給出小數(shù)點0在指定輸出寬度的同時,在數(shù)據(jù)前面的多余處填數(shù)字0附加格式字符例4.2給出了未指附加格式和指定附加格式時的輸出結(jié)果#include<stdio.h>voidmain(){printf("%dr\n",123);printf("%5dr\n",123);printf("%-5dr\n",123);printf("%+5dr\n",123);printf("%#5dr\n",123);printf("%05dr\n",123);printf("%fr\n",123.45);printf("%12fr\n",123.45);printf("%-12fr\n",123.45);printf("%+12fr\n",123.45);printf("%#12fr\n",123.45);printf("%012fr\n",123.45);printf("%or\n",0123);printf("%-5or\n",0123);printf("%+5or\n",0123);printf("%#5or\n",0123);printf("%05or\n",0123);}程序運行若實際位數(shù)多于定義的寬帶,則按實際位數(shù)輸出。若實際位數(shù)少于定義的寬度,則在左邊補以空格。(3)輸出最小寬帶
用十進制整數(shù)來表示輸出的最少位數(shù)。若無特別指明,系統(tǒng)默認右對齊方式。例4.3給出了未指定寬度和指定輸出寬度時的輸出結(jié)果#include<stdio.h>voidmain(){printf("%d\n",123);printf("%5d\n",123);printf("%2d\n",123);printf("%f\n",123.45);printf("%e\n",123.45);printf("%12f\n",123.45);printf("%12e\n",123.45);printf("%g\n",123.45);printf("%2g\n",123.45);}程序運行(4)精度精度格式符以“.”開頭,后跟十進制整數(shù),形如“.m”。針對不同的格式字符,其意義不同,如表下所示。格式字符精度格式符.m的意義d用于指定輸出的數(shù)字格式,若數(shù)字少于m,則前面補0,若大于m,按數(shù)據(jù)的實際寬度輸出e、E或f用于指定小數(shù)位數(shù),若小數(shù)位數(shù)大于m,則四舍五入截去右邊多余位數(shù),若小數(shù)位數(shù)小于m,則在小數(shù)位右邊補0g、G指定輸出的有效數(shù)字s指定最多輸出的字符個數(shù)例4.4給出了未指定精度和指定輸出寬度時的輸出結(jié)果#include<stdio.h>voidmain(){printf("%dr\n",123);printf("%.5dr\n",123);printf("%.0dr\n",123);printf("%fr\n",123.45);printf("%12.3fr\n",123.45);printf("%12.1fr\n",123.45);printf("%12.0fr\n",123.45);printf("%er\n",123.45);printf("%12.3er\n",123.45);printf("%12.1er\n",123.45);printf("%12.0er\n",123.45);printf("%gr\n",123.45);printf("%12.3gr\n",123.45);printf("%12.1gr\n",123.45);printf("%12.0gr\n",123.45);printf("%sr\n",”thisistest!”);printf("%.5sr\n",”thisistest!”);printf("%.0sr\n",”thisistest!”);}程序運行(5)長度長度格式符為h和l兩種,h表示按短整型量輸出,l表示長整型量輸出,或者按double類型輸出。輸出長整型數(shù)時,必須加l,但對于double型數(shù)據(jù)%f與%lf意義相同。例4.5#include<stdio.h>voidmain(){inta=15;longb=65536;floatc=123.4567890;doubled=12345678.987654321;printf(“a=%d,%o,%x\n”,a,a,a);printf(“b=%d,%ld\n”,b);printf(“c=%f,%e,%g\n”,c,c,c);printf(“d=%lf,%f,%g\n”,d,d,d);}程序運行3.printf函數(shù)的使用說明(1)除了x、e、g這3個格式符既可以用小寫也可以用大寫外,其它的格式符必須用小寫字母。如%d不能寫成%D。(2)格式符d可用i代替,d和i作為格式符使用時,兩者作用一樣。(3)介紹過的d、o、x、u、c、f、e、g等字符,如在%后面則作為格式符,如不在%后面則僅是一個普通字符而已如:printf(“a=%df,b=%fe”,a,b);則輸出結(jié)果應(yīng)為:
a=15f,b=12.600000e(4)格式控制字符串中,格式說明與輸出項的個數(shù)應(yīng)該相同。若格式說明符的個數(shù)少于輸出項列表時,多余的輸出項不予輸出。若格式說明符的個數(shù)多于輸出項列表時,對于多余的格式將輸出不定值。#include<stdio.h>voidmain(){inta=15,b=50,c=66;printf("%d,%d,%d\n",a,b,c);printf("%d,%d,%d\n",a,b);printf("%d,%d\n",a,b,c);}(5)在輸出數(shù)據(jù)時,格式說明與輸出項從左至右在類型上必須一一對應(yīng)匹配。如數(shù)據(jù)的數(shù)據(jù)類型和格式控制字符的類型不同,系統(tǒng)將輸出項中數(shù)據(jù)的類型強制轉(zhuǎn)換成對應(yīng)格式控制字符所指定的類型。這種轉(zhuǎn)換與3.9中所討論的賦值表達式中的類型轉(zhuǎn)換規(guī)則類似。(6)若項輸出%,應(yīng)在格式控制字符串中用兩個連續(xù)的%%表示,如:
printf(“%f%%\n”,1.0/3.0);
輸出結(jié)果為:
0.333333%(7)在使用f格式符輸出實數(shù)時,并非全部數(shù)字都是有效數(shù)字。單精度實數(shù)的有效位數(shù)一般為7位,雙精度實數(shù)的有效位數(shù)一般為15位。如:
floatx=111111.111,y=222222.222printf(”%f”,x+y);則運行結(jié)果為:333333.328125(8)在使用printf函數(shù)時還要注意一個問題,那就是輸出列表中的求值順序。不一樣的編譯系統(tǒng)不一定相同,可用自左至右,也可以自右至左。(9)printf函數(shù)的返回值是本次調(diào)用過程中輸出的字符個數(shù)。二、輸出字符putchar函數(shù)在C語言中,除了可用通過printf函數(shù)對字符進行格式輸出,還提供了字符輸出的專用函數(shù)putchar函數(shù)。1.putchar函數(shù)的一般格式:putchar(ch)其中,ch可以是字符變量、字符常量或整型表達式。當(dāng)ch為字符型變量或常量時,它輸出參數(shù)ch的值當(dāng)ch為取值不大于255的整型變量或整型表達式時,它輸出ASCII代碼值等于參數(shù)ch的字符2.注意:在該函數(shù)調(diào)用之后加“;”,就構(gòu)成了字符輸出語句。使用putchar函數(shù)時必須要用文件包含命令:#include<stdio.h>例4.7putchar函數(shù)的應(yīng)用#include<stdio.h>main(){intx=97;chara='A';printf("x的值:%d,x的值對應(yīng)的字符為:%c\n",x,x);printf("a的值:%c,a的ASCii為:%d\n",a,a);putchar(x);putchar('\n');putchar(a);
putchar('\n');}三、字符串輸出puts函數(shù)1.puts函數(shù)的一般格式:puts(字符數(shù)組)2.功能:把字符數(shù)組中所存放的字符串,輸出到標準輸出設(shè)備中去,并用‘\n’取代字符串的結(jié)束標志‘\0’。puts函數(shù)的定義包含在頭文件string.h字符串中允許包含轉(zhuǎn)義字符,輸出時產(chǎn)生一個控制操作。該函數(shù)一次只能輸出一個字符串,而printf()函數(shù)也能用%s來輸出字符串,且一次能輸出多個。3.注意:例:scanf(“”,&x,&y)4.3數(shù)據(jù)輸入一、格式輸入scanf函數(shù)
1.scanf函數(shù)的格式與功能
a.scanf函數(shù)的一般格式為:scanf(“格式控制字符串”,輸入項地址列表)函數(shù)名格式控制字符串輸入項地址列表%%dd,格式字符定界符格式字符非格式字符串b.功能:從終端按照“格式控制字符串”中規(guī)定的格式輸入若干個數(shù)據(jù),按“輸入項地址列表”中變量的順序,依次存入對應(yīng)的變量中。2.scanf函數(shù)中的常用格式說明
格式字符串的一般形式為:%[*][輸入數(shù)據(jù)寬度][長度]格式字符其中方括號[]中的項為可選項。
(1)格式字符格式字符用于表示輸入數(shù)據(jù)的類型,格式字符和所代表的意義如表4.4所示。(2)“*“符%后跟著一個*號,用以表示該輸入項讀入后不賦予相應(yīng)的變量,即跳過該輸入值。如:scanf(“%d%*d%d“,&a,&b);當(dāng)輸入為:123↙時,把1賦給a,跳過2,把3賦給b。格式字符說明d/i用了輸入有符號的十進制整數(shù)u用了輸入無符號的十進制整數(shù)o用了輸入無符號的八進制整數(shù)x/X用來輸入無符號的十六進制整數(shù)(不區(qū)分大小寫)c用來輸入單個字符s用來輸入字符串,并將字符串送到一個字符數(shù)組中,在輸入時以非空格字符開始,遇到回車或空格結(jié)束f用來輸入實數(shù),可用以小數(shù)形式也可以用指數(shù)形式輸入e/E,g/G與f作用相同,e、f、g可用相互替換使用格式控制字符(3)寬度用十進制整數(shù)指定輸入的寬度(即字符數(shù))。若輸入數(shù)據(jù)的寬度大于指定的寬度,則多余的被舍去若輸入數(shù)據(jù)的寬度小于指定的寬度,則按輸入數(shù)據(jù)的寬度取值如
scanf(“%5d”,&i);輸入:123456789↙i的值被賦為12345,其余的被截去。又如:
scanf(“%3d”,&a);輸入:12↙i的值被賦為12。(4)長度長度格式符為l和h,l表示輸入長整型數(shù)據(jù)(如%ld)和雙精度實型數(shù)(如%lf),h則表示輸入短整型數(shù)據(jù)。TC環(huán)境下:ld與d表示不同的數(shù)據(jù)類型且取值范圍不同,而f與lf也表示不同的數(shù)據(jù)類型和不同的取值范圍。VC環(huán)境下:ld與d表示不同的數(shù)據(jù)類型但取值范圍相同,而f與lf表示不同的數(shù)據(jù)類型和不同的取值范圍。如(在TC環(huán)境下):longinta=0;scanf("%d",&a);printf(“a=%ld”,a);輸入:123456789↙a的值為52501;而把輸入語句改為:scanf("%ld",&a);后,輸入:123456789↙這是a的值為123456789。又如(在VC環(huán)境下):longinta=0;scanf("%d",&a);printf(“a=%ld”,a);輸入:123456789↙a的值為123456789;而把輸入語句改為:scanf("%ld",&a);后,輸入:123456789↙這是a的值為123456789。3.scanf函數(shù)的使用說明
(1)在格式控制字符串中,格式說明的類型、個數(shù)與輸入項的類型、個數(shù)必須一一對應(yīng)。如果類型不匹配,系統(tǒng)并不給出出錯信息,但不可能得到正確的數(shù)據(jù)。(2)從終端輸入數(shù)值數(shù)據(jù)時,遇下述情況系統(tǒng)將認為該項數(shù)據(jù)結(jié)束:空格、回車符、制表符(TAB)遇到寬度結(jié)束遇到非法輸入(3)若在scanf函數(shù)中的格式控制字符串中除了格式字符外還有其它字符,則在輸入時應(yīng)原樣輸入。(4)在輸入字符數(shù)據(jù)時:若無非格式字符串,則認為所以輸入的字符均為有效字符。若有非格式字符串,則認為空格、回車和橫向跳格符(TAB)作為間隔符而不能讀入如:scanf(“%c%c%c”,&a,&b,&c);運行時,若輸入:d□e□f↙則把d賦給了變量a,空格賦給了變量b,e賦給了c。只有輸入:def↙才能把d賦給a,e賦給b,f賦給c。如把scanf函數(shù)改成如下形式:
scanf(“%c%c%c”,&a,&b,&c);運行時如輸入:d□e□f↙和輸入:def↙效果相同,都是把d賦給a,e賦給b,f賦給c。例4.8字符與數(shù)值型數(shù)據(jù)的混合輸入#include<stdio.h>Voidmain(){ charc1,c2,c3,c4;
intn1,n2; floatf1,f2; printf("pleaseinputdatatoc1,n1,c2,n2,f1,f2,c3,c4:\n"); scanf("%c%d%c%d",&c1,&n1,&c3,&n2);
scanf("%f%f%c%c",&f1,&f2,&c3,&c4);
printf("c1=%c,c2=%c,c3=%c,c4=%c\n",c1,c2,c3,c4); printf("n1=%d,n2=%d\n",n1,n2); printf("f1=%f,f2=%f\n",f1,f2);}(5)在格式控制字符串中,格式說明的個數(shù)應(yīng)該與輸入項的個數(shù)相同。若格式說明的個數(shù)少于輸入項的個數(shù)時,則多余的數(shù)據(jù)并不消失,而是將多余的數(shù)據(jù)留在緩沖區(qū)作為下一次輸入操作的輸入數(shù)據(jù)。若格式說明的個數(shù)多于輸入項的個數(shù)時,則程序等待輸入,直到滿足要求或遇到非法字符為止。(6)在標準C中不使用%u格式符,對unsigned型數(shù)據(jù)以%d、%x、%o格式輸入。(7)輸入實型數(shù)據(jù)時,用戶不能規(guī)定小數(shù)點后的位數(shù)。若無小數(shù)部分,可按整型數(shù)據(jù)輸入。(8)每次調(diào)用scanf函數(shù)后,函數(shù)將得到一個整型函數(shù)值,此值等于正常輸入數(shù)據(jù)的個數(shù)。二、字符輸入getchar函數(shù)
1.字符輸入getchar的一般格式:getchar()其中g(shù)etchar后的括號內(nèi)沒有參數(shù),但是不可以省略。2.功能:getchar函數(shù)從終端(或系統(tǒng)默認的輸入設(shè)備)讀入一個字符作為函數(shù)值。3.注意必須在程序的開頭出現(xiàn)包含頭文件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年岳陽貨運從業(yè)資格考試
- 2025年晉城貨運資格證考試有哪些項目
- 2025年南京貨運資格考試答案
- 2025年天津貨運從業(yè)資格證考試題技巧答案詳解
- 電梯維護保養(yǎng)合同(2篇)
- 電力用戶協(xié)議(2篇)
- 2025年市婦聯(lián)執(zhí)委會議上的工作報告
- 浙教版數(shù)學(xué)七年級上冊2.5《有理數(shù)的乘方》聽評課記錄1
- 徐州報關(guān)委托協(xié)議
- 幼兒園后勤總務(wù)工作計劃范本
- 北京市房山區(qū)2024-2025學(xué)年七年級上學(xué)期期末英語試題(含答案)
- 2025年南陽科技職業(yè)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點試題含答案解析
- 加油站復(fù)工復(fù)產(chǎn)方案
- 2025-2030年中國增韌劑(MBS高膠粉)行業(yè)發(fā)展現(xiàn)狀及前景趨勢分析報告
- 2025年高考物理復(fù)習(xí)新題速遞之萬有引力與宇宙航行(2024年9月)
- 2025年首都機場集團公司招聘筆試參考題庫含答案解析
- 2025云南省貴金屬新材料控股集團限公司面向高校畢業(yè)生專項招聘144人高頻重點提升(共500題)附帶答案詳解
- 蘇州市區(qū)2024-2025學(xué)年五年級上學(xué)期數(shù)學(xué)期末試題一(有答案)
- 物業(yè)服務(wù)投標文件
- 《數(shù)值分析》配套教學(xué)課件
- 山西省衛(wèi)生院社區(qū)衛(wèi)生服務(wù)中心信息名單目錄
評論
0/150
提交評論