




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章語(yǔ)句與輸入輸出1《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出第3章語(yǔ)句與輸入輸出3.1C語(yǔ)言的語(yǔ)句
3.2數(shù)據(jù)的輸入和輸出2《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出C程序函數(shù)中的執(zhí)行部分是由語(yǔ)句組成的。程序的功能是由執(zhí)行語(yǔ)句實(shí)現(xiàn)的??蓤?zhí)行語(yǔ)句通過(guò)向計(jì)算機(jī)系統(tǒng)發(fā)出操作指令,指揮計(jì)算機(jī)完成相應(yīng)的操作。3.1C語(yǔ)言的語(yǔ)句《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3C語(yǔ)言的語(yǔ)句分為五類(lèi)。3.1C語(yǔ)言的語(yǔ)句《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出41.控制語(yǔ)句控制語(yǔ)句用于控制程序的流程,以實(shí)現(xiàn)程序的各種結(jié)構(gòu)。C語(yǔ)言有九種控制語(yǔ)句??煞殖梢韵氯?lèi):(1)條件判斷語(yǔ)句if語(yǔ)句、switch語(yǔ)句;(2)循環(huán)執(zhí)行語(yǔ)句dowhile語(yǔ)句、while語(yǔ)句、for語(yǔ)句;(3)轉(zhuǎn)向語(yǔ)句break語(yǔ)句、continue語(yǔ)句、return語(yǔ)句、goto語(yǔ)句。C語(yǔ)言的語(yǔ)句分為五類(lèi)。3.1C語(yǔ)言的語(yǔ)句《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出52.函數(shù)調(diào)用語(yǔ)句函數(shù)調(diào)用語(yǔ)句由函數(shù)調(diào)用加分號(hào)構(gòu)成。例如:
printf(“ThisismyfirstCprogram.\n”);C語(yǔ)言的語(yǔ)句分為五類(lèi)。3.1C語(yǔ)言的語(yǔ)句《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出63.表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句由表達(dá)式后加分號(hào)構(gòu)成。比較典型的表達(dá)式語(yǔ)句是賦值表達(dá)式語(yǔ)句。需要注意表達(dá)式與表達(dá)式語(yǔ)句是不同的:表達(dá)式后面沒(méi)有分號(hào),它可以出現(xiàn)在任何使用表達(dá)式的地方;語(yǔ)句以分號(hào)結(jié)束,它是可執(zhí)行語(yǔ)句,不能出現(xiàn)在表達(dá)式中。C語(yǔ)言的語(yǔ)句分為五類(lèi)。3.1C語(yǔ)言的語(yǔ)句《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出74.空語(yǔ)句空語(yǔ)句僅由一個(gè)分號(hào)構(gòu)成。顯然,空語(yǔ)句什么操作也不執(zhí)行。有時(shí)用來(lái)做被轉(zhuǎn)向點(diǎn)或循環(huán)體(此時(shí)循環(huán)體不執(zhí)行任何操作)。例如:;就是一個(gè)空語(yǔ)句。C語(yǔ)言的語(yǔ)句分為五類(lèi)。3.1C語(yǔ)言的語(yǔ)句《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出85.復(fù)合語(yǔ)句復(fù)合語(yǔ)句是由大括號(hào)括起來(lái)的一組語(yǔ)句構(gòu)成。說(shuō)明:(1)在語(yǔ)法上和單一語(yǔ)句相同,即可以使用單一語(yǔ)句的地方,也可以使用復(fù)合語(yǔ)句。(2)復(fù)合語(yǔ)句可以嵌套,即復(fù)合語(yǔ)句中也可出現(xiàn)復(fù)合語(yǔ)句。3.2數(shù)據(jù)的輸入和輸出所謂數(shù)據(jù)的輸入,是指計(jì)算機(jī)外部設(shè)備將數(shù)據(jù)送入計(jì)算機(jī)內(nèi)部的操作。例如常見(jiàn)的從鍵盤(pán)輸入數(shù)據(jù)。所謂數(shù)據(jù)的輸出,是指將計(jì)算機(jī)內(nèi)部的數(shù)據(jù)送到外部設(shè)備的操作。例如常見(jiàn)的將數(shù)據(jù)顯示在屏幕上或打印在紙上。C語(yǔ)言本身沒(méi)有輸入輸出語(yǔ)句,它是通過(guò)調(diào)用標(biāo)準(zhǔn)庫(kù)函數(shù)中提供的輸入輸出函數(shù)來(lái)實(shí)現(xiàn)數(shù)據(jù)的輸入輸出。C語(yǔ)言提供了豐富的用于輸入輸出的庫(kù)函數(shù)。在使用這些庫(kù)函數(shù)之前需要在源文件開(kāi)頭包含以下預(yù)編譯命令#include<stdio.h>9《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2數(shù)據(jù)的輸入和輸出3.2.1printf()函數(shù)3.2.2scanf()函數(shù)3.2.3getchar()函數(shù)與putchar()函數(shù)10《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)printf()函數(shù)稱(chēng)為格式輸出函數(shù),其作用是向終端設(shè)備按指定格式輸出數(shù)據(jù)。它是一個(gè)標(biāo)準(zhǔn)庫(kù)函數(shù),它的函數(shù)原型在頭文件“stdio.h”中。11《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)1.printf()函數(shù)的調(diào)用形式 printf(格式控制,輸出表列)例如:
printf("%d,%c\n",i,c);12《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)1.printf()函數(shù)的調(diào)用形式
說(shuō)明:(1)格式控制:是由""括起來(lái)的字符串,由“格式說(shuō)明”和“普通字符”兩部分組成。1)格式說(shuō)明:以“%”字符開(kāi)始,由%及格式字符共同組成。其作用是說(shuō)明將“輸出表列”中的數(shù)據(jù)按指定格式進(jìn)行輸出。2)普通字符:格式字符以外的字符作為普通字符,按原樣輸出。13《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)1.printf()函數(shù)的調(diào)用形式
說(shuō)明:(2)輸出表列:是指需要輸出的數(shù)據(jù),可以是變量、常量或表達(dá)式。14《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)1.printf()函數(shù)的調(diào)用形式例如:inta=3,b=4;printf("a=%db=%d",a,b);運(yùn)行結(jié)果:a=3b=4其中,普通字符“a=”、“”、“b=”原樣輸出;格式說(shuō)明“%d”、“%d”則按有符號(hào)數(shù)十進(jìn)制整數(shù)形式輸出變量a、b的值,即3和4。15《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)2.格式字符
格式字符用以指明按什么格式輸出數(shù)據(jù)。16《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)2.格式字符(1)格式字符d:以有符號(hào)十進(jìn)制形式輸出整數(shù)。1)%d:用以輸出整型數(shù)據(jù)。例如:inta=123;printf("%d",a);運(yùn)行結(jié)果:12317《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)2.格式字符(1)格式字符d:以有符號(hào)十進(jìn)制形式輸出整數(shù)。2)%ld,用以輸出長(zhǎng)整型數(shù)據(jù)。例如:longa=123456;printf("%ld",a);運(yùn)行結(jié)果:123456注意:對(duì)于長(zhǎng)整型數(shù)據(jù)輸出應(yīng)該采用%ld格式,否則有可能會(huì)出現(xiàn)錯(cuò)誤。18《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)2.格式字符(1)格式字符d:以有符號(hào)十進(jìn)制形式輸出整數(shù)。3)%md或%mld:按指定的長(zhǎng)度輸出整型數(shù)據(jù)或長(zhǎng)整型數(shù)據(jù)。如果數(shù)據(jù)位數(shù)小于m,則左端補(bǔ)以空格;否則,則按實(shí)際位數(shù)輸出。例如:longa=123456;printf("%8ld,%4ld",a,a);運(yùn)行結(jié)果:□□123456,123456注意:□表示空格。19《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)2.格式字符(2)格式字符o:以無(wú)符號(hào)八進(jìn)制形式輸出整數(shù)。例如:inta=-1;printf("%d,%o",a,a);在TC環(huán)境(16位系統(tǒng))下的運(yùn)行結(jié)果:-1,177777說(shuō)明:因?yàn)?1的16位補(bǔ)碼為1111111111111111,因此變量a在內(nèi)存實(shí)際存儲(chǔ)的內(nèi)容為“1111111111111111”。當(dāng)變量a以“八進(jìn)制無(wú)符號(hào)整數(shù)形式”輸出時(shí),其值為177777Q,所以實(shí)際輸出為“177777”。20《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)2.格式字符(3)格式字符x:以無(wú)符號(hào)十六進(jìn)制形式輸出整數(shù)。例如:inta=-1;printf("%x,%d",a,a);在TC環(huán)境(16位系統(tǒng))下的:ffff,-1說(shuō)明:變量a在內(nèi)存實(shí)際存儲(chǔ)的內(nèi)容為“1111111111111111”。當(dāng)變量a以“十六進(jìn)制無(wú)符號(hào)整數(shù)形式”輸出時(shí),其值為FFFFH,所以實(shí)際輸出為“ffff”。21《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)2.格式字符(4)格式字符u:以無(wú)符號(hào)十進(jìn)制形式輸出整數(shù)。與“%d”格式一樣,可以使用“%lu”輸出長(zhǎng)整型,使用“%mu”或“%mlu”形式進(jìn)行定長(zhǎng)輸出。注意:一個(gè)int型數(shù)據(jù)可以用“%u”格式輸出;反之,一個(gè)unsigned型數(shù)據(jù)也可以用“%d”、“%o”、“%x”格式輸出。所有輸出都是將內(nèi)存中實(shí)際存儲(chǔ)的數(shù)據(jù)按格式字符指定的編碼進(jìn)行輸出。22《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出【例3.1】輸出函數(shù)的應(yīng)用。3.2.1printf()函數(shù)《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出2324源程序:#include<stdio.h>intmain(){ unsignedinta=65535; intb=-2; printf("a=%d,%o,%x,%u\n",a,a,a,a); printf("b=%d,%o,%x,%u\n",b,b,b,b); return0;}在TC環(huán)境下的運(yùn)行結(jié)果:《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出a=-1,177777,ffff,65535b=-2,177776,fffe,65534【例3.1】輸出函數(shù)的應(yīng)用。程序分析:a為無(wú)符號(hào)整型變量,賦值為65535后,在內(nèi)存中存儲(chǔ)為“1111111111111111”。當(dāng)變量a以“%d”格式輸出時(shí),是作為有符號(hào)數(shù)輸出。根據(jù)補(bǔ)碼規(guī)則,“1111111111111111”是-1的補(bǔ)碼,因此輸出為-1。3.2.1printf()函數(shù)《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出253.2.1printf()函數(shù)2.格式字符(5)格式字符c:以字符形式輸出單個(gè)字符。例如:charc='a';printf("%c",c);26《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)2.格式字符實(shí)際上,整數(shù)也可以用字符形式輸出;反之,字符數(shù)據(jù)也可以用整數(shù)形式輸出。例如:inti=65;printf("%c,%d\n",i,I);運(yùn)行結(jié)果:A,65說(shuō)明:65是字符'A'的ASCII碼的值。也可以指定字符輸出的寬度,例如printf("%3c",c),此時(shí)輸出的3列中,前2列補(bǔ)空格。27《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)2.格式字符(6)格式字符s:輸出字符串。有5種用法:1)%s:按字符串的實(shí)際長(zhǎng)度輸出。例如:printf("%s","CHINA");運(yùn)行結(jié)果:CHINA。2)%ms:指定長(zhǎng)度輸出字符串。如果字符串長(zhǎng)小于m,則左補(bǔ)空格;否則,按字符串實(shí)際長(zhǎng)度輸出。28《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)2.格式字符3)%-ms:指定對(duì)齊方式為左對(duì)齊(默認(rèn)的對(duì)齊方式為右對(duì)齊)。在m列范圍內(nèi),字符串向左靠,右補(bǔ)空格。4)%m.ns:指定長(zhǎng)度與輸出字符數(shù)。輸出占m列,只取待輸出字符串中左端n個(gè)字符。這n個(gè)字符向右靠,左補(bǔ)空格。5)%-m.ns:指定對(duì)齊方式為左對(duì)齊,并指定長(zhǎng)度與輸出字符數(shù)。輸出占m列,只取待輸出字符串中左端n個(gè)字符,這n個(gè)字符向左靠,右補(bǔ)空格。29《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)2.格式字符注意:如果n>m,則m自動(dòng)取n值(m=n),即保證n個(gè)字符正常輸出。例如:
printf("%3s,%7.2s,%.4s,%-5.3s\n","CHINA","CHINA","CHINA","CHINA");運(yùn)行結(jié)果:CHINA,□□□□□CH,CHIN,CHI□□注意:%.4s中只給出了n,沒(méi)給m,自動(dòng)使m=n=4。30《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)2.格式字符(7)格式字符f:以小數(shù)形式輸出實(shí)數(shù)。1)%f:不指定輸出寬度。整數(shù)部分全部輸出,小數(shù)部分占6位。如果輸出雙精度實(shí)數(shù),使用%lf。注意:輸出的數(shù)字并非全部是有效數(shù)字。單、雙精度實(shí)數(shù)的有效數(shù)字一般分別為7、16位。31《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)【例3.2】輸出函數(shù)的應(yīng)用。32《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出33源程序:#include<stdio.h>intmain(){ floatx,y; doublea,b; x=123456.123; y=654321.321; a=1234401190110.123456789; b=7531031008655.23456321; printf("%f\n",x+y); printf("%lf\n",a+b); return0;}在TC環(huán)境下的運(yùn)行結(jié)果:《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出777777.4375008765432198765.3574003.2.1printf()函數(shù)【例3.2】輸出函數(shù)的應(yīng)用。程序分析:由于單精度數(shù)前7位有效、雙精度數(shù)前16位有效,所以上述結(jié)果中超出有效位數(shù)的小數(shù)部分均存在無(wú)效數(shù)字,如.437500中的37500和.357400中的400是無(wú)意義的。34《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)2.格式字符(7)格式字符f:以小數(shù)形式輸出實(shí)數(shù)。2)%m.nf:指定輸出長(zhǎng)度和小數(shù)位數(shù)。輸出總長(zhǎng)度為m列(含1位小數(shù)點(diǎn)),小數(shù)點(diǎn)后保留n位小數(shù)。當(dāng)數(shù)據(jù)位數(shù)小于m時(shí),左補(bǔ)空格。當(dāng)數(shù)據(jù)位數(shù)大于m時(shí),整數(shù)部分按實(shí)際長(zhǎng)度輸出,小數(shù)部分按指定位數(shù)即n位輸出。如果沒(méi)有指定小數(shù)部分位數(shù)n時(shí),則小數(shù)部分默認(rèn)為6位。35《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)2.格式字符(7)格式字符f:以小數(shù)形式輸出實(shí)數(shù)。3)%-m.nf:指定對(duì)齊方式為左對(duì)齊,并指定輸出長(zhǎng)度和小數(shù)位數(shù)。例如:
floatf=123.456;printf("%f,%11f,%9.2f,%-9.2f,%.2f\n",f,f,f,f,f);運(yùn)行結(jié)果:123.456001,□123.456001,□□□123.46,123.46□□□,123.4636《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)2.格式字符(8)格式字符e:以指數(shù)形式輸出實(shí)數(shù)。按“%e”格式輸出時(shí),系統(tǒng)自動(dòng)指定小數(shù)位數(shù)為6位,指數(shù)部分為5位(如e+002),數(shù)值按規(guī)范化指數(shù)形式輸出(即小數(shù)點(diǎn)前有且只有1位非零數(shù)字)。因此“%e”輸出正實(shí)數(shù)時(shí),總位數(shù)為13位(含1位小數(shù)點(diǎn)),輸出負(fù)實(shí)數(shù)時(shí),總位數(shù)為14位(多出1位符號(hào)位)。37《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)2.格式字符(8)格式字符e:以指數(shù)形式輸出實(shí)數(shù)。也可以按“%m.ne”或“%-m.ne”格式輸出,m用以控制顯示數(shù)值的寬度、n用于控制小數(shù)點(diǎn)后面的位數(shù)、-用以控制對(duì)齊方式。例如:
floatf=123.96;printf("%15e,%10.2e,%-10.2e,%.1e",f,f,f,f);運(yùn)行結(jié)果:
□□1.239600e+002,□1.24e+002,1.24e+002□,1.2e+00238《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.1printf()函數(shù)2.格式字符(9)格式字符g:選擇“小數(shù)形式”和“指數(shù)形式”中位數(shù)較少的一種形式輸出實(shí)數(shù)(不輸出無(wú)意義的0)。此格式較少使用。例如:floatf=123.468;printf("%f,%e,%g",f,f,f);
運(yùn)行結(jié)果:123.468002,1.234680e+002,123.468
從結(jié)果中可以看出“%g”選擇了“%f”格式,且取消了末尾的無(wú)意義的002。39《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出40格式字符說(shuō)明d,i以帶符號(hào)的十進(jìn)制形式輸出整數(shù)(正數(shù)不輸出符號(hào))。u以無(wú)符號(hào)的十進(jìn)制形式輸出整數(shù)。O以無(wú)符號(hào)的八進(jìn)制形式輸出整數(shù)(不輸出前導(dǎo)符0)。x,X以無(wú)符號(hào)的十六進(jìn)制形式輸出整數(shù)(不輸出前導(dǎo)符0x),用x則輸出十六進(jìn)制數(shù)a~f時(shí)以小寫(xiě)形式輸出,用X時(shí),則以大寫(xiě)形式輸出。c以字符形式輸出單個(gè)字符。s輸出字符串。f以小數(shù)形式輸出單、雙精度實(shí)數(shù),隱含輸出6位小數(shù)。e,E以規(guī)范化指數(shù)形式輸出單、雙精度實(shí)數(shù)。用e時(shí)指數(shù)以“e”表示(如1.23e+002),用E時(shí)指數(shù)以“E”表示(如1.23E+002)。g,G選用%f或%e格式中輸出寬度較短的一種,不輸出無(wú)意義的0。用G時(shí),若以指數(shù)形式輸出,則指數(shù)以大寫(xiě)表示。表3-1printf()函數(shù)的格式字符注意:在格式說(shuō)明中,在%和上述格式字符間可以插入以下幾種附加的格式修飾符,如表3-2所示?!禖語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出41字符說(shuō)明字母l輸出長(zhǎng)整型數(shù)據(jù)(%ld,%lu,%lo,%lx)或double型數(shù)據(jù)(%lf、%le)。m(一個(gè)正整數(shù))指定輸出數(shù)據(jù)的最小寬度。當(dāng)實(shí)際數(shù)據(jù)寬度>m時(shí),以實(shí)際寬度為準(zhǔn)。n(一個(gè)正整數(shù))對(duì)實(shí)數(shù),表示輸出n位小數(shù);對(duì)字符串,表示截取的字符個(gè)數(shù)。-輸出的數(shù)字或字符在域內(nèi)向左靠。+輸出的有符號(hào)數(shù)無(wú)論正、負(fù),都帶上符號(hào)輸出(“+”號(hào)或“-”號(hào))。0當(dāng)域?qū)抦>實(shí)際數(shù)據(jù)長(zhǎng)度時(shí),不足數(shù)位以0補(bǔ)足。表3-2printf()函數(shù)的格式修飾符注意:修飾符可以多個(gè)一起使用。例如:printf("%+08d\n",2346);運(yùn)行結(jié)果:+0002346從結(jié)果中可以看出,三個(gè)修飾符“+、0、8(域?qū)挘币黄鹗褂茫馆敵鰯?shù)據(jù)帶有+號(hào),且總寬度為8,不足數(shù)位補(bǔ)0。3.2.2scanf()函數(shù)scanf()函數(shù)稱(chēng)為格式輸入函數(shù),其作用是按用戶(hù)指定的格式從鍵盤(pán)輸入數(shù)據(jù)到指定的變量之中。它是一個(gè)標(biāo)準(zhǔn)庫(kù)函數(shù),它的函數(shù)原型在頭文件“stdio.h”中。42《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.2scanf()函數(shù)1.scanf()函數(shù)的調(diào)用形式(1)格式控制:是由""括起來(lái)的字符串,由“格式說(shuō)明”和“普通字符”兩部分組成。用于控制輸入數(shù)據(jù)的類(lèi)型、個(gè)數(shù)、間隔符等。1)格式說(shuō)明:以“%”字符開(kāi)始,由%及格式字符共同組成。其是說(shuō)明按指定格式進(jìn)行數(shù)據(jù)輸入。例如:“%d”,“%f”等。2)普通字符:格式字符以外的字符為普通字符,必須按原樣輸入。43《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.2scanf()函數(shù)1.scanf()函數(shù)的調(diào)用形式例如:inta;scanf("a=%d",&a);
“scanf("a=%d",&a);”語(yǔ)句中,“a=%d”為格式控制,其中的“a=”為普通字符,在從鍵盤(pán)輸入數(shù)據(jù)時(shí)必須原樣輸入。44《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.2scanf()函數(shù)1.scanf()函數(shù)的調(diào)用形式(2)地址表列:由若干個(gè)地址組成的表列,可以是變量的地址,或字符數(shù)組的首地址等。例如:inta,b,c;scanf("%d%d%d",&a,&b,&c);“scanf(”%d%d%d“,&a,&b,&c);”語(yǔ)句中,“&”為取地址運(yùn)算符,“&a”是變量a在內(nèi)存中的地址,該地址將作為從鍵盤(pán)輸入數(shù)據(jù)存放的內(nèi)存地址。45《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.2scanf()函數(shù)1.scanf()函數(shù)的調(diào)用形式注意:輸入的數(shù)據(jù)一般以空格進(jìn)行分隔,也可以用回車(chē)鍵(Enter、↙)或制表鍵(跳格鍵、Tab)。例如,對(duì)于“scanf("%d%d%d",&a,&b,&c);”語(yǔ)句,以下三種輸入方式均是正確的。(1)345↙(2)3↙45↙(3)3(按tab鍵)4↙5↙46《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.2scanf()函數(shù)1.scanf()函數(shù)的調(diào)用形式注意:輸入數(shù)據(jù)時(shí),不能加入多余的普通字符。例如,對(duì)于“scanf("%d%d%d",&a,&b,&c);”來(lái)說(shuō),“3,4,5↙”輸入方式是不正確的。47《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.2scanf()函數(shù)2.格式說(shuō)明以%開(kāi)頭,以一個(gè)格式字符為結(jié)束,中間可以插入格式修飾符,如l、h、*等。格式字符如表3-3所示,格式修飾符如表3-4所示。48《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出49格式字符說(shuō)明d,i用來(lái)輸入有符號(hào)的十進(jìn)制整數(shù)。u用來(lái)輸入無(wú)符號(hào)的十進(jìn)制整數(shù)。o用來(lái)輸入無(wú)符號(hào)的八進(jìn)制整數(shù)。x,X用來(lái)輸入無(wú)符號(hào)的十六進(jìn)制整數(shù)(大小寫(xiě)作用相同)。c用來(lái)輸入單個(gè)字符。s用來(lái)輸入字符串。將字符串送到一個(gè)字符數(shù)組中,在輸入時(shí)以非空格字符開(kāi)始,以第一個(gè)空格字符結(jié)束。字符串末尾自動(dòng)添加‘\0’作為字符串結(jié)束標(biāo)志。f用來(lái)輸入實(shí)數(shù),可以用小數(shù)形式或指數(shù)形式輸入。e,E,g,G與f作用相同,e、f、g可以互相替換(大小寫(xiě)作用相同)。表3-3scanf()函數(shù)格式字符《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出50字符說(shuō)明l用于輸入長(zhǎng)整型數(shù)據(jù)(%ld、%lo、%lx、%lu)或double型數(shù)據(jù)(%lf、%le)。h用于輸入短整型數(shù)據(jù)(%hd,%ho,%hx)。域?qū)捴付ㄝ斎霐?shù)據(jù)所占寬度(列數(shù)),域?qū)拺?yīng)為正整數(shù)。*表示本輸入項(xiàng)在讀入后不賦給相應(yīng)的變量。表3-4scanf()函數(shù)的格式修飾字符3.2.2scanf()函數(shù)格式修飾字符的說(shuō)明(1)指定域?qū)捿斎霐?shù)據(jù)時(shí),系統(tǒng)自動(dòng)按指定寬度截取所需數(shù)據(jù)。例如:inta,b;scanf("%3d%3u",&a,&b);輸入“123456↙”,則123賦值給a,456賦值給b。51《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.2scanf()函數(shù)格式修飾字符的說(shuō)明(2)如果使用禁止賦值符“*”,表示跳過(guò)它指定的列數(shù)。例如:
inta,b;scanf("%2d%*3d%2d",&a,&b);輸入:“123456789↙”,則12賦值給a;%*3d表示讀入3位整數(shù)但不賦給任何變量,即跳過(guò)345不用;67賦值給b。52《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.2scanf()函數(shù)格式修飾字符的說(shuō)明(3)輸入實(shí)數(shù)時(shí)不要指定精度。例如:“scanf("%7.2f",&a);”是錯(cuò)誤的。(4)輸入字符串時(shí)用“%s”,以空格符或回車(chē)鍵作為輸入結(jié)束的標(biāo)志。53《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.2scanf()函數(shù)3.使用scanf()函數(shù)時(shí)應(yīng)注意的問(wèn)題(1)“地址列表”中的變量名前必須要有&符號(hào)(取地址運(yùn)算符)。例如:“scanf(”%d,%f“,a,f);”中變量a,f前未加&,運(yùn)行時(shí)會(huì)出現(xiàn)錯(cuò)誤。54《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.2scanf()函數(shù)3.使用scanf()函數(shù)時(shí)應(yīng)注意的問(wèn)題(2)如果“格式控制”字符串中除了格式說(shuō)明以外,還有其他字符,則在輸入數(shù)據(jù)時(shí)應(yīng)輸入與這些字符相同的字符。例如:inta,b;scanf("%d,%d",&a,&b);正確的輸入:“3,4↙”。55《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.2scanf()函數(shù)3.使用scanf()函數(shù)時(shí)應(yīng)注意的問(wèn)題(3)用“%c”格式輸入字符時(shí),空格字符和“轉(zhuǎn)義字符”都作為有效字符輸入。例如:scanf("%c%c%c",&c1,&c2,&c3);輸入:abc↙分析:字符‘a(chǎn)’賦值給c1,‘’(空格字符)賦值給c2,字符‘b’賦值給c3。如果希望變量c1、c2、c3的值分別為‘a(chǎn)’、‘b’、‘c’,則輸入應(yīng)該為“abc↙”,這是因?yàn)?c只能接收一個(gè)字符,所以‘a(chǎn)’、‘b’、‘c’之間無(wú)需加空格進(jìn)行分隔。56《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.2scanf()函數(shù)3.使用scanf()函數(shù)時(shí)應(yīng)注意的問(wèn)題(4)在輸入數(shù)據(jù)時(shí),遇到以下情況則認(rèn)為一個(gè)數(shù)據(jù)輸入結(jié)束:1)遇到空格鍵、回車(chē)鍵、制表鍵。2)按指定的寬度結(jié)束,如“%3d”,只取3列。3)遇到非法輸入。57《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.2scanf()函數(shù)例如:
inta;charb;floatc;scanf("%d%c%f",&a,&b,&c);printf("%d%c%f\n",a,b,c);輸入:1234a123O.26↙運(yùn)行結(jié)果:1234a123.000000分析:在輸入變量a的值時(shí),字符'a'為非法字符,因此遇到'a'時(shí),變量a的輸入會(huì)自動(dòng)結(jié)束。同理,輸入變量c的值時(shí),123后的字符'O'為非法輸入,變量c的輸入會(huì)自動(dòng)結(jié)束。58《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.3getchar()函數(shù)與putchar()函數(shù)getchar()函數(shù)與putchar()函數(shù)是標(biāo)準(zhǔn)庫(kù)函數(shù),在使用時(shí)程序前面應(yīng)包含預(yù)編譯命令“#include<stdio.h>”。59《C語(yǔ)言程序設(shè)計(jì)》第3章語(yǔ)句與輸入輸出3.2.3getchar()函數(shù)與putchar()函數(shù)1.getchar()函數(shù)(字符輸入函數(shù))getchar()函數(shù)調(diào)用形式如下:
變量=getchar()函數(shù)沒(méi)有參數(shù)。功能:從標(biāo)準(zhǔn)輸入設(shè)備(一般為鍵盤(pán))輸入一個(gè)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工商變更股權(quán)轉(zhuǎn)讓協(xié)議
- 售后服務(wù)流程與響應(yīng)時(shí)效統(tǒng)計(jì)表
- 醫(yī)學(xué)資料 醫(yī)療類(lèi)模版 學(xué)習(xí)課件
- 房地產(chǎn)開(kāi)發(fā)借款合同
- 巖板背景墻的施工方案
- 學(xué)校校區(qū)房屋租賃合同
- 技術(shù)推廣服務(wù)合同
- 2025年期末小聯(lián)考試題及答案
- 1.4 等腰三角形(4) 等邊三角形的判定-八年級(jí)數(shù)學(xué)下冊(cè)10分鐘課前預(yù)習(xí)練(北師大版)(原卷版)
- 烘干機(jī)不銹鋼網(wǎng)筒施工方案
- 內(nèi)部控制及內(nèi)部審計(jì)
- 學(xué)前比較教育全套教學(xué)課件
- 電工電子技術(shù)完整全套教學(xué)課件
- 高中歷史:如何上好高一開(kāi)學(xué)第一課(共58張PPT)
- 三年級(jí)數(shù)學(xué)下冊(cè)課件-制作活動(dòng)日歷-人教版-(共45張PPT)
- 石油化工建設(shè)工程竣工報(bào)告
- 詩(shī)歌鑒賞之思鄉(xiāng)懷人詩(shī)課件
- 成人高考輔導(dǎo)資料教學(xué)課件
- 2022-2023學(xué)年廣西壯族河池市小升初考試數(shù)學(xué)試卷含答案
- 2022春大學(xué)英語(yǔ)A2學(xué)習(xí)通課后章節(jié)答案期末考試題庫(kù)2023年
- “家校合育”手冊(cè)
評(píng)論
0/150
提交評(píng)論