![Chapter 04 順序程序設(shè)計_第1頁](http://file4.renrendoc.com/view/93c1966e352b5ea744bb019187e463c5/93c1966e352b5ea744bb019187e463c51.gif)
![Chapter 04 順序程序設(shè)計_第2頁](http://file4.renrendoc.com/view/93c1966e352b5ea744bb019187e463c5/93c1966e352b5ea744bb019187e463c52.gif)
![Chapter 04 順序程序設(shè)計_第3頁](http://file4.renrendoc.com/view/93c1966e352b5ea744bb019187e463c5/93c1966e352b5ea744bb019187e463c53.gif)
![Chapter 04 順序程序設(shè)計_第4頁](http://file4.renrendoc.com/view/93c1966e352b5ea744bb019187e463c5/93c1966e352b5ea744bb019187e463c54.gif)
![Chapter 04 順序程序設(shè)計_第5頁](http://file4.renrendoc.com/view/93c1966e352b5ea744bb019187e463c5/93c1966e352b5ea744bb019187e463c55.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第4章
最簡單的C—順序程序設(shè)計1
程序?qū)?shù)據(jù)的處理流程:
程序的主要功能就是對數(shù)據(jù)的處理,其整個流程主要包括數(shù)據(jù)的輸入、數(shù)據(jù)的處理、數(shù)據(jù)的輸出。數(shù)據(jù)處理數(shù)據(jù)輸入數(shù)據(jù)輸出2
程序的結(jié)構(gòu):
寫文章有文章的結(jié)構(gòu)
建房子有房子的結(jié)構(gòu)
制造機械產(chǎn)品有機械產(chǎn)品的結(jié)構(gòu)
………
那么編寫程序是否有程序的結(jié)構(gòu)呢?程序結(jié)構(gòu)順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)YES!本章討論第5章討論第6章討論34.1格式化輸出printf
一般格式printf("格式控制字符串",表達(dá)式1,表達(dá)式2,…,表達(dá)式n);
功能
按照“格式控制字符串”的要求,將表達(dá)式1,表達(dá)式2,…,表達(dá)式n的值顯示在計算機屏幕上。
說明
格式控制字符串用于指定輸出格式。它包含兩類字符:
常規(guī)字符:包括可顯示字符和用轉(zhuǎn)義字符表示的字符。
格式控制符:以%開頭的一個或多個字符,以說明輸出數(shù)據(jù)的類型、形式、長度、小數(shù)位數(shù)等。其格式為:%[修飾符]格式轉(zhuǎn)換字符例:
longintx=0x8AB6;printf(“TheValueofxis%ld\n”,x);4
printf使用時的注意事項(1)格式控制字符串可以不包含任何格式控制符。(2)當(dāng)格式控制字符串中既含有常規(guī)字符,又包含有格式控制符時,則表達(dá)式的個數(shù)應(yīng)與格式控制符的個數(shù)一致。此時,常規(guī)字符原樣輸出,而格式控制符的位置上輸出對應(yīng)的表達(dá)式的值,其對應(yīng)的順序是:從左到右的格式控制符對應(yīng)從左到右的表達(dá)式。(3)
如果格式控制字符串中格式控制符的個數(shù)多于表達(dá)式的個數(shù),則余下的格式控制符的值將是不確定的。(4)不同類型的表達(dá)式要使用不同的格式轉(zhuǎn)換符,同一表達(dá)式如果按照不同的格式轉(zhuǎn)換符來輸出,其結(jié)果可能是不一樣的。
printf(“howareyou?\n”);//只有一個字符串參數(shù),
輸出為:howareyou?printf(“howoldareyou?\n”,20);//帶有兩個參數(shù),20沒有意義,
輸出為:howoldareyou?已
知:inta=2;函數(shù)調(diào)用:printf("a*a=%d,a+5=%d\n",a*a,a+5);實際輸出:
a*a=4,a+5=7printf("5+3=%d,5-3=%d,5*3=%d",5+3,5-3);
輸出結(jié)果將是:5+3=8,5–3=2,5*3=-28710輸出隨機charch='A';printf("ch=%c",ch);//輸出結(jié)果:ch=A
(以字符形式輸出)printf("ch=%d",ch);//輸出結(jié)果:ch=65
(以'A'字符的ASCII碼形式輸出)5
printf函數(shù)中的格式轉(zhuǎn)換字符及其含義
格式轉(zhuǎn)換符含
義對應(yīng)的表達(dá)式數(shù)據(jù)類型%d或%i以十進(jìn)制形式輸出一個整型數(shù)據(jù)。例如:inta=20;printf("%d",a);//輸出20有符號整型%x,%X以十六進(jìn)制形式輸出一個無符號整型數(shù)據(jù)。例如:inta=164;printf("%x",a);//輸出a4printf("%X",a);//輸出A4無符號整型%o(字母o)以八進(jìn)制形式輸出一個無符號整型數(shù)據(jù)。例如:inta=164;printf("%o",a);//輸出244無符號整型%u以十進(jìn)制形式輸出一個無符號整型數(shù)據(jù)。例如:inta=-1;printf("%u",a);//BC下輸出65535,VC下4294967295無符號整型%c輸出一個字符型數(shù)據(jù)。例如:charch='A';printf("%c",ch);//輸出A字符型6
printf函數(shù)中的格式轉(zhuǎn)換字符及其含義
格式轉(zhuǎn)換符含
義對應(yīng)的表達(dá)式數(shù)據(jù)類型%s輸出一個字符串。例如:printf("mynameis%s","wangjinghua");//輸出mynameiswangjinghua字符串%f以十進(jìn)制小數(shù)形式輸出一個浮點型數(shù)據(jù)。例如:floatf=-12.3;printf("%f",f);//輸出-12.300000浮點型%e,%E以指數(shù)形式輸出一個浮點型數(shù)據(jù)。例如:floatf=1234.8998;printf("%e",f);//輸出1.234900e+003printf("%E",f);//輸出1.234900E+003浮點型%g,%G按照%f或%e中輸出寬度比較短的一種格式輸出。浮點型%p以主機的格式顯示指針,即變量的地址。例如:inta=2;printf(“%p”,&a);//BC下輸出FFD8,VC下0012FF7C指針類型71.整數(shù)的輸出
有符號整數(shù)的輸出
一般形式:
[]:表示可選項,可缺省。
-:表示輸出的數(shù)據(jù)左對齊,缺省時是右對齊。
+:輸出正數(shù)時,在數(shù)的前面加上+號。
數(shù)字0:右對齊時,如果實際寬度小于width,則在左邊的空位補0。
width:無符號整數(shù),表示輸出整數(shù)的最小域?qū)挘凑计聊坏亩嗌俑瘢?。若實際寬度超過了width,則按照實際寬度輸出。
.precision:無符號整數(shù),表示至少要輸出precision位。若整數(shù)的位數(shù)大于precision,則按照實際位數(shù)輸出,否則在左邊的空位上補0。
字母l:如果在d的前面有字母l(long),表示要輸出長整型數(shù)據(jù)。
字母h:如果在d的前面有字母h(short),表示要輸出短整型數(shù)據(jù)。
說明:%[-][+][0][width][.precision][l][h]d輔助格式控制字符(修飾符)
8【例】有符號整數(shù)的格式化輸出
#include<stdio.h>
intmain(){inta=123;longL=65537;printf("123456789\n");printf("a=%d--------(a=%%d)\n",a);printf("a=%6d-----(a=%%6d)\n",a);printf("a=%+6d-----(a=%%+6d)\n",a);printf("a=%-6d-----(a=%%-6d)\n",a);printf("a=%-06d-----(a=%%-06d)\n",a);printf("a=%+06d-----(a=%%+06d)\n",a);printf("a=%+6.6d----(a=%%+6.6d)\n",a);printf("a=%6.6d-----(a=%%6.6d)\n",a);printf("a=%-6.5d-----(a=%%-6.5d)\n",a);printf("a=%6.4d-----(a=%%6.4d)\n",a);printf("L=%ld------(L=%%ld)\n",L);printf("L=%hd----------(L=%%hd)\n",L);}
123456789a=123--------(a=%d)a=123-----(a=%6d)a=+123-----(a=%+6d)a=123-----(a=%-6d)a=123-----(a=%-06d)a=+00123-----(a=%+06d)a=+000123----(a=%+6.6d)a=000123-----(a=%6.6d)a=00123-----(a=%-6.5d)a=0123-----(a=%6.4d)L=65537------(L=%ld)L=1----------(L=%hd)運行結(jié)果:L是一長整型數(shù)65537,其值為十六進(jìn)制0X00010001,所以要將其轉(zhuǎn)換成短整型,即取低16位0x0001,將其輸出,故輸出為1。
Why?91.整數(shù)的輸出
無符號整數(shù)的輸出
一般形式:
[]:表示可選項,可缺省。
|:表示互斥關(guān)系。
#:表示當(dāng)以八進(jìn)制形式輸出數(shù)據(jù)(%o)時,在數(shù)字前輸出0;當(dāng)以十六進(jìn)制形式輸出數(shù)據(jù)(%x或%X)時,在數(shù)字前輸出0x或0X。
.precision的含義與前面介紹的相同,但要注意,在TC和BC下,precision所指定的位數(shù)也包含了0x或0X所占的位數(shù),可在VC下,則不包含0x或0X所占的位數(shù)。
其它字段的含義與前面介紹的相同。
說明:%[-][#][0][width][.precision][l][h]u|o|x|X輔助格式控制字符(修飾符)
10【例】無符號整數(shù)的格式化輸出
a=-1,a=4294967295---(a=%d,a=%u)a=ffff,a=FFFFFFFF---(a=%hx,a=%X)u=77777,u=7FFF------(u=%o,u=%X)u=0X00007FFF---------(u=%#010X)u=0X0000007FFF-------(u=%#10.10X)L=FFFF8000-----------(L=%lX)L=0X00FFFF8000-----(L=%-#14.10X)#include<stdio.h>intmain(){inta=-1;unsignedu=32767;unsignedlongL=-32768;printf("a=%d,a=%u---(a=%%d,a=%%u)\n",a,a);printf("a=%hx,a=%X---(a=%%hx,a=%%X)\n",a,a);printf("u=%o,u=%X------(u=%%o,u=%%X)\n",u,u);printf("u=%#010X---------(u=%%#010X)\n",u);printf("u=%#10.10X-------(u=%%#10.10X)\n",u);printf("L=%lX-----------(L=%%lX)\n",L);printf("L=%-#14.10X-----(L=%%-#14.10X)\n",L);}
112.實數(shù)的輸出
一般形式:
[]:表示可選項,可缺省。|:表示互斥關(guān)系。
#:必須輸出小數(shù)點。
.precision:規(guī)定輸出實數(shù)時,小數(shù)部分的位數(shù)。l:輸出double型數(shù)據(jù)(缺省時也是輸出double型數(shù)據(jù))。
L:輸出longdouble型數(shù)據(jù)。
其它字段的含義與前面介紹的相同。
說明:%[-][+][#][0][width][.precision][l|L]f|e|E|g|G輔助格式控制字符(修飾符)
12【例】實數(shù)的格式化輸出
#include<stdio.h>intmain(){doublef=2.5e5;printf("123456789\n");printf("f=%15f--------(f=%%15f)\n",f);printf("f=%015f--------(f=%%015f)\n",f);printf("f=%-15.0f--------(f=%%-15.0f)\n",f);printf("f=%#15.0f--------(f=%%#15.0f)\n",f);printf("f=%+15.4f--------(f=%%+15.4f)\n",f);printf("f=%15.4E--------(f=%%15.4E)\n",f);}
123456789f=250000.000000--------(f=%15f)f=00250000.000000--------(f=%015f)f=250000--------(f=%-15.0f)f=250000.--------(f=%#15.0f)f=+250000.0000--------(f=%+15.4f)f=2.5000E+005--------(f=%#15.4E)運行結(jié)果:133.字符和字符串的輸出
一般形式:
[]:表示可選項,可缺省。
.precision:表示只輸出字符串的前precision個字符。
其它字段的含義與前面介紹的相同。
說明:
輸出字符:
%[-][0][width]c
輔助格式控制字符(修飾符)
輸出字符串:%[-][0][width][.precision]s輔助格式控制字符(修飾符)
14【例】字符及字符串的格式化輸出
123456789ch=A-----------(ch=%c)ch=A--------(ch=%4c)ch=A--------(ch=%-4c)ch=000A--------(ch=%04c)st=QFNU--------(st=%s)st=QFNU------(st=%6s)st=000QFN------(st=%06.3s)運行結(jié)果:#include<stdio.h>intmain(){charch='A';printf("123456789\n");printf("ch=%c-----------(ch=%%c)\n",ch);printf("ch=%4c--------(ch=%%4c)\n",ch);printf("ch=%-4c--------(ch=%%-4c)\n",ch);printf("ch=%04c--------(ch=%%04c)\n",ch);printf("st=%s--------(st=%%s)\n",“QFNU");printf("st=%6s------(st=%%6s)\n",“QFNU");printf("st=%06.3s------(st=%%06.3s)\n",“QFNU");}
154.輔助格式控制符(修飾符)小結(jié)
修飾符功
能例
子width輸出數(shù)據(jù)域?qū)?,?shù)據(jù)長度<width,補空格;否則按實際輸出%4d:表示輸出至少占4格.precision對于整數(shù):表示至少要輸出precision位,當(dāng)數(shù)據(jù)長度小于precision,左邊補0%6.4d:表示至少要輸出4位數(shù)對于實數(shù):指定小數(shù)點后位數(shù)(四舍五入)%6.2f:表示輸出2位小數(shù)對于字符串:表示只輸出字符串的前precision個字符%.3s:表示輸出字符串前3個字符-輸出數(shù)據(jù)在域內(nèi)左對齊(缺省右對齊)%-16d:表示輸出數(shù)據(jù)左對齊+輸出有符號正數(shù)時,在其前面顯示正號(+)%+d:表示輸出整數(shù)的正負(fù)號0輸出數(shù)值時,指定左邊不使用的空格自動填0%08X:表示輸出十六進(jìn)制無符號整數(shù),不足8位時左補0164.輔助格式控制符(修飾符)小結(jié)
修飾符功
能例
子#對于無符號數(shù):在八進(jìn)制和十六進(jìn)制數(shù)前顯示前導(dǎo)0,0x或0X%#X:表示輸出的十六進(jìn)制前顯示前導(dǎo)0X對于實數(shù):必須輸出小數(shù)點%#10.0f:表示輸出的浮點數(shù)必須輸出小數(shù)點h在d、o、x、u前,指定輸出為短整型數(shù)%hd:表示輸出短整型數(shù)l在d、o、x、u前,指定輸出為longint型%ld:表示輸出長整型數(shù)在e、f、g前,指定輸出精度為double型(缺省也為double)%lf:表示輸出為double型數(shù)L在e、f、g前,指定輸出精度為longdouble型%Lf:表示輸出為longdouble型數(shù)174.2格式化輸入scanf
一般格式scanf(“格式控制字符串”,變量1的地址,變量2的地址,…,變量n的地址);
功能
第一個參數(shù)格式控制字符串的控制下,接受用戶的鍵盤輸入,并將輸入的數(shù)據(jù)依此存放在變量1、變量2、……、變量n中
。
inta;scanf("%d",&a);
取地址運算符(與按位“與”同符號),只能作用于變量!
格式控制符與后續(xù)參數(shù)中的變量地址的對應(yīng)關(guān)系
已
知:
inta,b;函數(shù)調(diào)用:scanf("%d%d",&a,&b);假設(shè)輸入:10□20↙變量的值:a的值是10,b的值是2018
scanf函數(shù)的格式控制符
%[*][width][l|h]Type
一般形式:
說明:
[]:表示可選項,可缺省。|表示互斥關(guān)系。
width:指定輸入數(shù)據(jù)的域?qū)?,遇空格或不可轉(zhuǎn)換字符則結(jié)束。
Type:各種格式轉(zhuǎn)換符(參照printf)。*:抑制符,輸入的數(shù)據(jù)不會賦值給相應(yīng)的變量。
l:用于d、u、o、x|X前,指定輸入為long型整數(shù);用于e|E、f前,指定輸入為double型實數(shù)。
h:用于d、u、o、x|X前,指定輸入為short型整數(shù)。19
使用scanf函數(shù)注意事項
(1)如果相鄰兩個格式控制符之間,不指定數(shù)據(jù)分隔符(如逗號、冒號等),則相應(yīng)的兩個輸入數(shù)據(jù)之間,至少用一個空格分隔,或者用Tab鍵分隔,或者輸入一個數(shù)據(jù)后,按回車,然后再輸入下一個數(shù)據(jù)。(2)格式控制字符串中出現(xiàn)的常規(guī)字符(包括轉(zhuǎn)義字符),務(wù)必原樣輸入。
(3)為改善人機交互性,同時簡化輸入操作,在設(shè)計輸入操作時,一般先用printf()函數(shù)輸出一個提示信息,再用scanf()函數(shù)進(jìn)行數(shù)據(jù)輸入
。(4)當(dāng)格式控制字符串中指定了輸入數(shù)據(jù)的域?qū)抴idth時,將讀取輸入數(shù)據(jù)中相應(yīng)的width位,但按需要的位數(shù)賦給相應(yīng)的變量,多余部分被舍棄。
例如:
scanf("%d%d",&num1,&num2);
假設(shè)給num1輸入12,給num2輸入36,則正確的輸入操作為:
12□36↙
或者
12↙36↙
使用“↙”符號表示按回車鍵操作,在輸入數(shù)據(jù)操作中的作用是,通知系統(tǒng)輸入操作結(jié)束。例如:
scanf("%d:%d:%d",&h,&m,&s);
假設(shè)給h輸入12,給m輸入30,給s輸入10,正確的輸入操作為:
12:30:10↙
例如:
scanf("num1=%d,num2=%d\n",&num1,&num2);
假設(shè)給num1輸入12,給num2輸入36,正確的輸入操作為:num1=12,num2=36\n↙例如:
將scanf("num1=%d,num2=%d\n",&num1,&num2);改為:printf("num1=");scanf("%d",&num1);printf("num2=");scanf("%d",&num2);例如:
scanf("%3c%3c",&ch1,&ch2);
假設(shè)輸入abcdefg↙,則系統(tǒng)將讀取的“abc”中的'a'賦給變量ch1;將讀取的"def"中的'd'賦給變量ch2。20
使用scanf函數(shù)注意事項
(5)當(dāng)格式控制字符串中含有抑制符‘*’時,表示本輸入項對應(yīng)的數(shù)據(jù)讀入后,不賦給相應(yīng)的變量(該變量由下一個格式指示符輸入)。(6)使用格式控制符%c輸入單個字符時,空格和轉(zhuǎn)義字符均作為有效字符被輸入。(7)輸入數(shù)據(jù)時,遇到以下情況,系統(tǒng)認(rèn)為該數(shù)據(jù)結(jié)束:
遇到空格,或者回車鍵,或者Tab鍵。
遇到輸入域?qū)挾冉Y(jié)束。例如“%3d”,只取3列。
遇到非法輸入。比方說,在輸入數(shù)值數(shù)據(jù)時,遇到字母等非數(shù)值符號。(8)當(dāng)一次scanf調(diào)用需要輸入多個數(shù)據(jù)項時,如果前面數(shù)據(jù)的輸入遇到非法字符,并且輸入的非法字符不是格式控制字符串中的常規(guī)字符,那么,這種非法輸入將影響后面數(shù)據(jù)的輸入,導(dǎo)致數(shù)據(jù)輸入失敗。例如:
scanf("%2d%*2d%3d",&num1,&num2);printf("num1=%d,num2=%d\n",num1,num2);
假設(shè)輸入123456789↙
輸出結(jié)果為:num1=12,num2=567。
例如:
scanf("%c%c%c",&ch1,&ch2,&ch3);
假設(shè)輸入:A□B□C↙,則系統(tǒng)將字母'A'賦值給ch1,空格'□'賦值給ch2,字母'B'賦值給ch3。
例如:
scanf("%d",a);
如果輸入為:12a3↙,a的值將是12。例如:scanf("%d,%d",&a,&b);
如果輸入為:12a34↙,那么a的值將是12,b的值將無法預(yù)測。
正確的輸入是:12,34↙
214.3字符數(shù)據(jù)的非格式化輸入、輸出
1.字符數(shù)據(jù)的非格式化輸入intgetchar(void);
//應(yīng)包含的.h文件為stdio.h
getchar
功能:從鍵盤讀一字符
返值:正常,返回讀取字符的ASCII碼值;出錯,返回EOF(-1)。
說明:以回車符為輸入結(jié)束條件;輸入多個字符時,返回第一個字符的值;輸入字符回顯。22【例】利用getchar輸入字符
#include<stdio.h>#include<conio.h>voidmain(){charch1,ch2;inta;ch1=getchar();ch2=getchar();scanf("%d",&a);printf("ch1=%c,ch2=%c\n",ch1,ch2);printf("a=%d\n",a);}ch1=1,ch2=2a=34運行結(jié)果(假設(shè)輸入為:1234↙):
232.字符數(shù)據(jù)的非格式化輸出intputchar(intc);
//應(yīng)包含的.h文件為stdio.h
putchar
功能:在顯示器上輸出字符c。
返值
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年電解電容器化成箱項目可行性研究報告
- 2025至2030年環(huán)烷酸鋯項目投資價值分析報告
- 2025年家禽藥項目可行性研究報告
- 2025年度人工智能項目合同匯編
- 2025年國際航空業(yè)貸款合同(含燃油價格風(fēng)險對沖)
- 2025年度建筑外架施工人員健康監(jiān)測勞務(wù)合同模板
- 2025年度新能源汽車貨物運輸合同技術(shù)支持與充電保障
- 2025年度婚慶場地租賃合同二零二五年度升級版
- 2025年度家具原材料采購合同格式范本
- 2025年度醫(yī)療設(shè)備采購合同范本協(xié)議
- 浙江省杭州市2023年中考一模語文試題及答案
- 上海市楊浦區(qū)2022屆初三中考二模英語試卷+答案
- 高中英語原版小說整書閱讀指導(dǎo)《奇跡男孩》(wonder)-Part one 講義
- GB/T 4745-2012紡織品防水性能的檢測和評價沾水法
- 山東省中考物理總復(fù)習(xí) 八上 第1講 機械運動
- 北京理工大學(xué)應(yīng)用光學(xué)課件(大全)李林
- 國家綜合性消防救援隊伍消防員管理規(guī)定
- 2023年全國各地高考英語試卷:完形填空匯編(9篇-含解析)
- 五年級上冊數(shù)學(xué)習(xí)題課件 簡便計算專項整理 蘇教版 共21張
- 疼痛科的建立和建設(shè)
- 運動技能學(xué)習(xí)PPT課件
評論
0/150
提交評論