




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章順序結(jié)構(gòu)程序設(shè)計(jì)第3章順序結(jié)構(gòu)程序設(shè)計(jì)主要內(nèi)容:
3.1C語句概述
3.1.1C語言的基本語句
3.1.2賦值語句
3.2數(shù)據(jù)的輸入/輸出
3.2.1字符輸入/輸出函數(shù)
3.2.2格式輸入/輸出函數(shù)
3.3程序舉例主要內(nèi)容:
3.1C語句概述
3.1.1C語言的基本語句3.1C語句概述
圖3.1C語言程序結(jié)構(gòu)3.1C語句概述圖3.1C語言程序結(jié)構(gòu)3.1.1C語言的基本語句
1.表達(dá)式語句C語言是一種表達(dá)式語言,所有的操作運(yùn)算都通過表達(dá)式來完成。由表達(dá)式組成的語句稱為表達(dá)式語句。表達(dá)式語句的一般形式為:表達(dá)式;
應(yīng)注意:分號(hào)是C語言的語句中不可缺少的一部分,因此“a=10”和“a=10;”是不同的,前者是一個(gè)賦值表達(dá)式,而后者才是一個(gè)賦值語句。3.1.1C語言的基本語句
1.表達(dá)式語句C語言是一種表例如:
sum=0;
i++;
sum+=i++;
x+y;
2.控制語句控制語句用于完成一定的功能。C語言有9中控制語句,它們是:
例如:
sum=0;
i++;
sum+=i++;
x+y;(1)if()…else… (條件語句)
(2)for()… (循環(huán)語句)
(3)while()… (循環(huán)語句)
(4)do…while() (循環(huán)語句)
(5)continue (結(jié)束本次循環(huán)語句)
(6)break (中止執(zhí)行switch或循環(huán)語句)
(7)switch (多分支選擇語句)
(8)goto (轉(zhuǎn)向語句)
(9)return (從函數(shù)返回語句)(1)if()…else… (條件語句)
(2)for()3.函數(shù)調(diào)用語句
由一個(gè)函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成一個(gè)語句,其完成特定的任務(wù)。其一般形式為:
函數(shù)名(實(shí)際參數(shù)表);
例如:
printf(″Iamastudent!!!″);該函數(shù)調(diào)用語句的作用是:在屏幕上顯示Iamastudent!!!。3.函數(shù)調(diào)用語句
由一個(gè)函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成一個(gè)語句4.復(fù)合語句
復(fù)合語句由花括號(hào)“{}”括起來的兩條或兩條以上的語句組成。一個(gè)復(fù)合語句在功能上相當(dāng)于一條語句。復(fù)合語句也可稱為“塊語句”,復(fù)合語句的一般形式為:
{語句1;語句2;…;語句n;}
例如:
{inta=3,b; /*定義部分*/a++; /*執(zhí)行語句*/b*=a; /*執(zhí)行語句*/printf("b=%d\n",b);} /*執(zhí)行語句*/4.復(fù)合語句
復(fù)合語句由花括號(hào)“{}”括起來的兩5.空語句
C語言中的所有語句都必須由一個(gè)分號(hào)“;”作為結(jié)束。如果只有一個(gè)分號(hào),如:
main()
{;}
這個(gè)分號(hào)也是一條語句,稱為“空語句”。
空語句的一般形式為:
;空語句是什么也不執(zhí)行的語句。在程序中空語句常用來做空循環(huán)體,可起到延時(shí)作用。5.空語句
C語言中的所有語句都必須由一個(gè)分號(hào)“;”3.1.2賦值語句
賦值語句是由賦值表達(dá)式加上分號(hào)“;”構(gòu)成的。例如:
a=b+3;
a=b=c+5;
都是合法的賦值語句。
使用賦值語句要注意以下幾個(gè)方面:賦值號(hào)“=”左邊必須是變量,不能是常量或變量表達(dá)式。賦值號(hào)“=”右面可以是變量、常量或各種合法的表達(dá)式。3.1.2賦值語句
賦值語句是由賦值表達(dá)式加上分號(hào)2.變量賦初值與賦值語句的區(qū)別。例如:inta=3,b,*p=&a,*q;/*給變量a和p賦初值*/b=5; /*給變量b賦值*/q=&b; /*給指針變量q賦值*/再如:intx=5,y=5,m,n;m=n=6;這里要注意:intx=5,y=5,m,n;不能寫成intx=y=5,m,n;
也就是說在定義變量時(shí),不允許連續(xù)給多個(gè)變量賦初值。而賦值語句是允許連續(xù)給多個(gè)變量賦值。2.變量賦初值與賦值語句的區(qū)別。例如:這里要注意:3.2數(shù)據(jù)的輸入/輸出
C語言沒有專門的輸入或輸出語句,但在C的標(biāo)準(zhǔn)庫函數(shù)中提供了常用的輸入和輸出函數(shù)。由于標(biāo)準(zhǔn)庫函數(shù)中所用到的變量定義和宏定義均在擴(kuò)展名為.h的頭文件中描述,因此在需要使用標(biāo)準(zhǔn)I/O庫中的函數(shù)時(shí),應(yīng)在程序前使用下面的預(yù)編譯命令,#include<stdio.h>或#include"stdio.h""
"將相應(yīng)的.h頭文件包含到用戶程序中。3.2數(shù)據(jù)的輸入/輸出
C語言沒有專門的輸入或輸出3.2.1字符輸入/輸出函數(shù)
1.字符輸出函數(shù)一般形式為:
putchar(c);
該函數(shù)的作用是向終端(如顯示器)輸出一個(gè)字符。C可以是字符常量或變量、整型常量或變量、轉(zhuǎn)義字符。3.2.1字符輸入/輸出函數(shù)1.字符輸出函數(shù)【例3.2】字符輸出舉例
#include<stdio.h>
voidmain()
{chara='A',b='B';
putchar(a);
putchar('A');
putchar(65);
putchar('\n');
putchar(b);
putchar('B');
putchar(66);
}
運(yùn)行結(jié)果:
AAABBB【例3.2】字符輸出舉例
#include<stdio.2.字符輸入函數(shù)
一般形式為:
getchar();
該函數(shù)的作用是從終端(如鍵盤)輸入一個(gè)字符。【例3.3】字符輸入舉例#include<stdio.h>voidmain(){charch;ch=getchar();putchar(ch);putchar('\n');}運(yùn)行結(jié)果:A↙ A2.字符輸入函數(shù)
一般形式為:
ge使用getchar()函數(shù)要注意以下幾個(gè)方面:
(1)getchar()函數(shù)的括號(hào)()內(nèi)不允許有任何數(shù)據(jù),但這一對(duì)圓括號(hào)不可少,這一點(diǎn)要和putchar()區(qū)別開來。
(2)使用本函數(shù)前必須包含文件“stdio.h”。
(3)getchar()函數(shù)只能接收一個(gè)字符,輸入的數(shù)字也按字符處理,而且輸入的空格、回車都將作為字符讀入,當(dāng)輸入多個(gè)字符時(shí)也只能接收一個(gè)字符。因此,在用getchar()函數(shù)連續(xù)輸入兩個(gè)字符時(shí)要注意回車符和空格符。使用getchar()函數(shù)要注意以下幾個(gè)方面:
(1)get當(dāng)從鍵盤輸入:A12并按【enter】鍵,則變量ch1的值是‘A’,變量ch2的值是‘1’。
當(dāng)從鍵盤輸入:A12并按【enter】鍵,則變量ch1的值是‘A’,變量ch2的值是空格符。
當(dāng)從鍵盤輸入:A↙/*↙代表【enter】鍵*/
則變量ch1的值是‘A’,變量ch2的值是‘\n’。
例如:
charch1,ch2;
ch1=getchar();
ch2=getchar();
當(dāng)從鍵盤輸入:A12并按【enter】鍵,則變量ch1的值是(3)給getchar()函數(shù)輸入字符時(shí)不需加單引號(hào),輸入字符后必須按【enter】鍵,字符才能送到內(nèi)存。
(4)getchar()函數(shù)得到的字符可以賦給一個(gè)字符型變量或整型變量,也可以不賦給任何變量,可作為表達(dá)式的一部分。(3)給getchar()函數(shù)輸入字符時(shí)不需加單引號(hào),輸入字3.2.2格式輸入/輸出函數(shù)
1.格式輸出函數(shù)(1)printf(″要輸出的字符序列″)注意:“要輸出的字符序列”必須用英文的雙引號(hào)括起來,它的作用是在屏幕上原樣輸出“要輸出的字符序列”。
例如:printf("Ilovechina!!!");在屏幕上將看到:Ilovechina!!!3.2.2格式輸入/輸出函數(shù)1.格式輸出函數(shù)例如:(2)printf(“輸出格式控制符”,輸出列表項(xiàng))
注意:“輸出格式控制符”必須用英文的雙引號(hào)括起來,它的作用是按照輸出格式來輸出后面的輸出列表項(xiàng)的值。
例如:
intx=3,y=4,*px=&x,*py=&y;printf("%d,%d",x,y);
或?qū)懗桑簆rintf("%d,%d",*px,*py);在屏幕上將會(huì)看到:3,4。語句printf("%d,%d",x,y);的作用是:以%d的格式輸出變量x的值,以%d的格式輸出變量y的值,中間以逗號(hào)分隔。(2)printf(“輸出格式控制符”,輸出列表項(xiàng))
“輸出格式控制符”可以是:
(1)格式符:即由%和格式字符組成,如%d,%f等。
(2)普通字符:如printf(“a=%d,b=%d\n”,a,b);中的“a=”、“,”、“b=”都是普通字符,普通字符原樣輸出。
(3)轉(zhuǎn)義字符:如printf(“a=%d,b=%d\n”,a,b);中的“\n”。其含義是“換行”。C語言中常用的格式字符共有9種,如表3.1所示。“輸出格式控制符”可以是:
(1)格式符:即由%和格式字符組格式字符說明d,i輸出帶符號(hào)的十進(jìn)制整數(shù)(正數(shù)不輸出符號(hào))o以八進(jìn)制無符號(hào)形式輸出整數(shù)(不輸出前導(dǎo)0)x或X以十六進(jìn)制無符號(hào)形式輸出整數(shù)(不輸出前導(dǎo)0x),用x則輸出十六進(jìn)制數(shù)a~f時(shí)以小寫形式輸出;用X時(shí),則以大寫形式輸出u以無符號(hào)十進(jìn)制形式輸出整數(shù)c輸出一個(gè)字符s輸出字符串的字符,直到遇到“\0”,或者輸出由精度指定的字符數(shù)f以小數(shù)形式輸出單、雙精度數(shù),隱含輸出6位小數(shù)。若指定的精度為0,小數(shù)部分(包括小數(shù)點(diǎn))都不輸出e或E以標(biāo)準(zhǔn)指數(shù)形式輸出單、雙精度數(shù),用E時(shí),指數(shù)部分的e用大寫E,數(shù)字部分的小數(shù)位數(shù)為6位g或G由系統(tǒng)決定采用%f或%e或%E格式,以使輸出寬度最小,用G時(shí),指數(shù)部分的e用大寫E。%輸出百分號(hào)(%)表3.1printf()的格式說明格式字符說明d,i輸出帶符號(hào)的十進(jìn)制整數(shù)(正數(shù)不在格式說明中,在%和上述格式字符之間還可以插入表3.2所示的幾種附加字符(又稱修飾符)。格式字符說明l或L輸出長(zhǎng)整型數(shù)據(jù),可以放在d、o、x、u的前面;輸出double型數(shù)據(jù),可以放在f、e之前h輸出短整型數(shù)據(jù),可以放在d、o、x、u的前面m輸出數(shù)據(jù)的寬度n對(duì)于實(shí)數(shù),表示輸出n位小數(shù)。對(duì)于字符串,表示截取字符個(gè)數(shù)-輸出的數(shù)據(jù)在域內(nèi)左對(duì)齊表3.2printf()的附加格式說明符在格式說明中,在%和上述格式字符之間還可以插入表3.printf()函數(shù)常用的格式符如下.
d格式符用來輸出十進(jìn)制整數(shù)。%d→以整數(shù)的實(shí)際位數(shù)輸出。例如:
printf("%d",2009);輸出結(jié)果為:2009%+d→以整數(shù)的實(shí)際位數(shù)輸出,輸出時(shí)正整數(shù)前帶正號(hào)“+”。例如:
printf("%d",2009);輸出結(jié)果為:+2009printf()函數(shù)常用的格式符如下.d格式符用來輸出十進(jìn)%md→輸出的整數(shù)占m列并右對(duì)齊,當(dāng)m大于整數(shù)的寬度時(shí),多余的位用空格填充,當(dāng)m小于整數(shù)的寬度時(shí),按整數(shù)的實(shí)際位數(shù)輸出。
例如:
printf("%8d",2009);
輸出結(jié)果為:
2009%-md→輸出的整數(shù)占m列并左對(duì)齊,當(dāng)m大于整數(shù)的寬度時(shí),多余的位用空格填充,當(dāng)m小于整數(shù)的寬度時(shí),按整數(shù)的實(shí)際位數(shù)輸出。例如:printf("%8d\n%-8d",2009,2009);輸出結(jié)果為:
20092009%md→輸出的整數(shù)占m列并右對(duì)齊,當(dāng)m大于整數(shù)的寬度時(shí),多余%ld或%Ld→輸出長(zhǎng)整型數(shù)據(jù),按實(shí)際位數(shù)輸出。%hd→輸出短整型數(shù)據(jù),按實(shí)際位數(shù)輸出。%mld或%mLd→輸出長(zhǎng)整型數(shù)據(jù)占m列并右對(duì)齊,當(dāng)m大于整數(shù)的寬度時(shí),多余的位用空格填充,當(dāng)m小于整數(shù)的寬度時(shí),按整數(shù)的實(shí)際位數(shù)輸出。%-mld或%-mLd→輸出長(zhǎng)整型數(shù)據(jù)占m列并左對(duì)齊,當(dāng)m大于整數(shù)的寬度時(shí),多余的位用空格填充,當(dāng)m小于整數(shù)的寬度時(shí),按整數(shù)的實(shí)際位數(shù)輸出。例如:
longx=123456; printf("%8ld\n%-8ld",x,x);輸出結(jié)果為:
123456123456%ld或%Ld→輸出長(zhǎng)整型數(shù)據(jù),按實(shí)際位數(shù)輸出。例如:%0md→輸出的整數(shù)占m列并右對(duì)齊,當(dāng)m大于整數(shù)的寬度時(shí),多余的位用0填充,當(dāng)m小于整數(shù)的寬度時(shí),按整數(shù)的實(shí)際位數(shù)輸出。例如:
printf("%8d",2009);輸出結(jié)果為:00002009注意:沒有%-0md格式控制符。%0md→輸出的整數(shù)占m列并右對(duì)齊,當(dāng)m大于整數(shù)的寬度時(shí),多o格式符用來輸出八進(jìn)制整數(shù),其用法同d格式符,用時(shí)把d格式符改為o格式符即可。
例如:
shortintn=-1;
printf(“%ho”,n);
輸出結(jié)果為:
177777
可以看到,八進(jìn)制形式輸出的整數(shù)是不考慮符號(hào)的。o格式符用來輸出八進(jìn)制整數(shù),其用法同d格式符,用時(shí)把d格式符x或X格式符用來輸出十六進(jìn)制數(shù),其用法同d格式符,用時(shí)把d格式符改為x或X格式符即可。
例如:
shortintn=-1;
printf(“%hx”,n);
printf(“%hX”,n);
輸出結(jié)果為:
ffffFFFF
可以看到,十六進(jìn)制形式輸出的整數(shù)也是不考慮符號(hào)的。x或X格式符用來輸出十六進(jìn)制數(shù),其用法同d格式符,用時(shí)把d格u格式符用來輸出無符號(hào)型的十進(jìn)制整數(shù),其用法同d格式符,用時(shí)把d格式符改為u格式符即可。
例如:
shortintn=-1;
printf(“%hd,%hu”,n,n);
輸出結(jié)果為:
-1,65535
從有符號(hào)的角度看,它表示的是-1;從無符號(hào)數(shù)的角度看,它表示的是65535。u格式符用來輸出無符號(hào)型的十進(jìn)制整數(shù),其用法同d格式符,用時(shí)
c格式符用來輸出一個(gè)字符。有以下用法:
%c→輸出一個(gè)字符。
%mc→輸出的字符占m列并右對(duì)齊,多余的位用空格填充。
%-mc→輸出的字符占m列并左對(duì)齊,多余的位用空格填充。
例如:
printf("%4c\n%-4c",'A','A');
輸出結(jié)果為:
A
Ac格式符用來輸出一個(gè)字符。有以下用法:
%c→輸出一個(gè)字符
s格式符用來輸出一個(gè)字符串。有以下用法:%s→以字符串的實(shí)際長(zhǎng)度輸出一個(gè)字符串。printf("%s","china");輸出結(jié)果為:china%ms→輸出的字符串占m列并右對(duì)齊,當(dāng)m大于字符串的實(shí)際長(zhǎng)度時(shí),多余的位用空格填充,當(dāng)m小于字符串的實(shí)際長(zhǎng)度時(shí),按字符串的實(shí)際長(zhǎng)度輸出。s格式符用來輸出一個(gè)字符串。有以下用法:%s→以字符串的實(shí)%-ms→輸出的字符串占m列并左對(duì)齊,當(dāng)m大于字符串的實(shí)際長(zhǎng)度時(shí),多余的位用空格填充,當(dāng)m小于字符串的實(shí)際長(zhǎng)度時(shí),按字符串的實(shí)際長(zhǎng)度輸出。
例如:
printf(“%8s\n%-8s”,“china”,“china”);
輸出結(jié)果為:
china
china
%-ms→輸出的字符串占m列并左對(duì)齊,當(dāng)m大于字符串的實(shí)際長(zhǎng)%m.ns→在m列的位置上輸出一個(gè)字符串的前n個(gè)字符,并右對(duì)齊,m>n時(shí),多余的位數(shù)用空格填充,m<n時(shí),輸出實(shí)際長(zhǎng)度的字符串。
%-m.ns→在m列的位置上輸出一個(gè)字符串的前n個(gè)字符,并左對(duì)齊,m>n時(shí),多余的位數(shù)用空格填充,m<n時(shí),輸出實(shí)際長(zhǎng)度的字符串。例如:printf("%8.2s\n%-8.2s","china","china");輸出結(jié)果為:
chch%m.ns→在m列的位置上輸出一個(gè)字符串的前n個(gè)字符,并右對(duì)f格式符用來輸出實(shí)數(shù)(包括單精度、雙精度),以小數(shù)形式輸出。
%f→用于輸出單精度小數(shù),也可輸出雙精度小數(shù),輸出時(shí)實(shí)數(shù)的整數(shù)部分全部輸出,小數(shù)部分保留6位,在有效數(shù)據(jù)范圍內(nèi)的小數(shù)部分要進(jìn)行四舍五入。例如:printf("%f",12.123456789);輸出結(jié)果為:12.123457f格式符用來輸出實(shí)數(shù)(包括單精度、雙精度),以小數(shù)形式輸出。%lf或%Lf→用于輸出雙精度小數(shù),輸出時(shí)實(shí)數(shù)的整數(shù)部分全部輸出,小數(shù)部分保留6位,在有效數(shù)據(jù)范圍內(nèi)的小數(shù)部分要進(jìn)行四舍五入。
例如:doublex=12.123456789;
printf("%lf",x);
或?qū)懗桑?/p>
printf("%f",x);
輸出結(jié)果為:
12.123457%lf或%Lf→用于輸出雙精度小數(shù),輸出時(shí)實(shí)數(shù)的整數(shù)部分全部%m.nf→在m列的位置上輸出一個(gè)實(shí)數(shù)保留n位小數(shù),并右對(duì)齊,系統(tǒng)自動(dòng)對(duì)在有效數(shù)據(jù)范圍內(nèi)的小數(shù)部分進(jìn)行四舍五入。當(dāng)m大于實(shí)數(shù)總寬度時(shí),多余的位數(shù)用空格填充,當(dāng)m小于實(shí)數(shù)總寬度時(shí),實(shí)數(shù)的整數(shù)部分按實(shí)際寬度輸出。%-m.nf→在m列的位置上輸出一個(gè)實(shí)數(shù)保留n位小數(shù),并左對(duì)齊,系統(tǒng)自動(dòng)對(duì)在有效數(shù)據(jù)范圍內(nèi)的小數(shù)部分進(jìn)行四舍五入。當(dāng)m大于實(shí)數(shù)總寬度時(shí),多余的位數(shù)用空格填充,當(dāng)m小于實(shí)數(shù)總寬度時(shí),實(shí)數(shù)的整數(shù)部分按實(shí)際寬度輸出。%m.nf→在m列的位置上輸出一個(gè)實(shí)數(shù)保留n位小數(shù),并右對(duì)齊例如:
printf("%8.2f\n%-8.2f",12.123456789,12.123456789);
輸出結(jié)果為:
12.12
12.12%.nf→實(shí)數(shù)的整數(shù)部分按實(shí)際寬度輸出,保留n位小數(shù),系統(tǒng)自動(dòng)對(duì)在有效數(shù)據(jù)范圍內(nèi)的小數(shù)部分進(jìn)行四舍五入。例如:printf("%.2f",12.123456789);輸出結(jié)果為:12.12例如:
printf("%8.2f\n%-8.2f",12.
e格式符用來以指數(shù)形式輸出一個(gè)實(shí)數(shù),用法同f格式符,用時(shí)把f格式符換成e格式符即可。
g格式符用來輸出實(shí)數(shù),系統(tǒng)根據(jù)實(shí)數(shù)的大小,自動(dòng)選f格式符或e格式符輸出,輸出時(shí)選擇占寬度較小的一種格式輸出,且不輸出無意義的0。例如:
printf("%e",12.123456789);
輸出結(jié)果為:
1.212346e+001e格式符用來以指數(shù)形式輸出一個(gè)實(shí)數(shù),用法同f格式符,用時(shí)把【例3.4】輸出函數(shù)應(yīng)用舉例#include<stdio.h>voidmain(){inta=27;charch='A';floatb=12.3456;doublec=234.123456;printf("%4d%-4o%4x\n",a,a,a);printf("%-4c%4c\n",ch,ch);printf("b=%10.2f,b=%-10.2f\n",b,b);printf("b=%10.2e,b=%-10.2e\n",b,b);printf("c=%lf,c=%10.2lf\n",c,c);printf("%s,%5.2s","Hello!!!","Hello!!!");}【例3.4】輸出函數(shù)應(yīng)用舉例使用printf()函數(shù)要注意以下幾個(gè)方面:數(shù)據(jù)類型應(yīng)與格式說明符匹配,否則將會(huì)出現(xiàn)錯(cuò)誤。int型數(shù)據(jù)也可以用%u格式輸出;反之,一個(gè)unsigned型數(shù)據(jù)也可以用%d、%o、%x格式輸出。例如:shortinta=-1;unsignedshortb=65534;printf("%hu,%hd\n",a,b);程序運(yùn)行結(jié)果是:65535,-2使用printf()函數(shù)要注意以下幾個(gè)方面:數(shù)據(jù)類型應(yīng)與格式除了X、E、G、L可以大寫外,其他格式符必須小寫,如%f不能寫成%F。如果需要輸出“%”,則應(yīng)在格式符內(nèi)連續(xù)使用兩個(gè)%。例如:
printf("%5.2f%%",3.0/100)
輸出:33.33%除了X、E、G、L可以大寫外,其他格式符必須小寫,如%f不能2.格式輸入函數(shù)
格式輸入函數(shù)scanf()用于從鍵盤輸入數(shù)據(jù),該輸入數(shù)據(jù)按指定的輸入格式賦給相應(yīng)的輸入項(xiàng)。
注意:“輸入格式控制符”必須用英文的雙引號(hào)括起來,它的作用是按照輸入格式從鍵盤輸入若干類型的數(shù)據(jù)給后面的輸入項(xiàng)。其一般格式為:
scanf("輸入格式控制符",輸入項(xiàng)地址表列);2.格式輸入函數(shù)
格式輸入函數(shù)scanf()用于從鍵(1)格式符:即由%和格式字符組成,如%d,%f等。
(2)普通字符:如printf(“a=%d,b=%d\n”,a,b);中的“a=”、“,”、“b=”都是普通字符,輸入時(shí)要照原樣入。表3.3列出了scanf()函數(shù)常用的格式符。“輸入格式控制符”可以是:(1)格式符:即由%和格式字符組成,如%d,%f等。
(2)格式字符說明d,i輸入帶符號(hào)的十進(jìn)制整數(shù)o輸入八進(jìn)制無符號(hào)整數(shù)x或X輸入十六進(jìn)制無符號(hào)整數(shù),大、小寫形式相同u輸入無符號(hào)十進(jìn)制整數(shù)c輸入單個(gè)字符s輸入字符串f輸入實(shí)數(shù),以小數(shù)形式或指數(shù)形式e、E、g、G與f作用相同,e與f,g可以相互替換,大小寫形式相同表3.3scanf()的格式說明格式字符說明d,i輸入帶符號(hào)的十進(jìn)制整數(shù)o輸入八在格式說明中,在%和上述格式字符之間還可以插入表3.4所示的幾種附加字符(又稱修飾符)。格式字符說明l或L輸入長(zhǎng)整型數(shù)據(jù),可以放在d、o、x、u的前面;輸入double型數(shù)據(jù)。可以放在f、e之前h輸入短整型數(shù)據(jù),可以放在d、o、x、u的前面m用來指定輸入數(shù)據(jù)的寬度*表示本輸入項(xiàng)在讀入后不賦給相應(yīng)的變量表3.4scanf()的附加格式說明符在格式說明中,在%和上述格式字符之間還可以插入表3.4使用scanf()函數(shù)要注意以下幾個(gè)方面:地址表列要用地址運(yùn)算符“&”取變量的地址或用指針變量。例如:inta,b,*pa=&a,*pb=&b;scanf("%d%d",&a,&b);或?qū)懗桑簊canf("%d%d",pa,pb);&a、&b、pa、pb表示把輸入的數(shù)據(jù)送到系統(tǒng)為變量a和b分配的內(nèi)存中。下面的寫法是錯(cuò)誤的。scanf("%d%d",a,b);或?qū)懗桑簊canf("%d%d",*pa,*pb);使用scanf()函數(shù)要注意以下幾個(gè)方面:地址表列要用地址運(yùn)“輸入格式控制符“中的普通字符一定要照原樣輸入。如:
scanf("%d%d",&a,&b);
正確的輸入格式是:35↙
3 5↙
3↙
5↙
“↙”代表【enter】鍵。例如:
scanf(”a=%d,b=%d”,&a,&b);
輸入時(shí)一定要把普通字符“a=”、“,”、“b=”照原樣輸入,否則會(huì)出現(xiàn)數(shù)據(jù)讀入錯(cuò)誤。
正確的輸入格式是:a=3,b=5按【enter】鍵。
如果“輸入格式控制符“中沒有普通字符,則輸入時(shí)應(yīng)以一個(gè)或多個(gè)空格、Tab鍵或【enter】鍵來分隔。“輸入格式控制符“中的普通字符一定要照原樣輸入。如:
可以指定輸入數(shù)據(jù)的寬度,系統(tǒng)會(huì)自動(dòng)按它截取所需的數(shù)據(jù)。例如:
inta;
floatb;
scanf(“%2d%3f”,&a,&b);
輸入:123456↙
系統(tǒng)自動(dòng)把12賦給a,把345.0賦給變量b。此方法也可用于字符型數(shù)據(jù)。例如:
scanf(“%2c%3c”,&c1,&c2);
輸入:abcdefg↙
由于字符型變量只能存放一個(gè)字符,因此,系統(tǒng)將’a’賦給c1,’c’賦給c2。可以指定輸入數(shù)據(jù)的寬度,系統(tǒng)會(huì)自動(dòng)按它截取所需的數(shù)據(jù)。例如:需要連續(xù)輸入多個(gè)字符時(shí),字符之間不用分隔,而且空格、回車等均作為有效字符輸入.如果%后面有一個(gè)’*’,則表示本項(xiàng)輸入不賦給任何變量。例如:
scanf(“%c%c”,&c1,&c2);
輸入:AB↙
系統(tǒng)把字符’A’賦給c1,把字符’B’賦給c2。
輸入:AB↙系統(tǒng)把字符’A’賦給c1,把空格符賦給c2。例如:scanf("%d,%*d,%d",&a,&b);
輸入:12,34,56↙
系統(tǒng)將12賦給a,56賦給b。需要連續(xù)輸入多個(gè)字符時(shí),字符之間不用分隔,而且空格、回車等均輸入數(shù)據(jù)時(shí)不能規(guī)定精度。輸入double型數(shù)據(jù)時(shí),一定要在f、e之前加字母l或L。%d、%c、%f在一起進(jìn)行混合輸入時(shí),要注意輸入的格式。
例如:scanf("%d%c%f",&x,&y,&z);輸入:12A23.6↙
系統(tǒng)把12賦給x,把空格符賦給y,z的值為隨機(jī)數(shù)。例如:scanf(“%6.2f”,&a);
上述與輸入語句是不合法的。例如:doublea;scanf("%lf",&a);輸入:12A23.6↙
系統(tǒng)把12賦給x,把字符’A’賦給y,把23.6賦給z。輸入數(shù)據(jù)時(shí)不能規(guī)定精度。輸入double型數(shù)據(jù)時(shí),一定要在f輸入數(shù)據(jù)時(shí),遇到以下情況認(rèn)為數(shù)據(jù)輸入結(jié)束。遇到空格、回車或Tab鍵。指定的寬度結(jié)束。如”%2d”,只取2位。遇到非法輸入。例如:scanf("%d",&a);
輸入:123A↙
系統(tǒng)只將123賦給a。輸入數(shù)據(jù)時(shí),遇到以下情況認(rèn)為數(shù)據(jù)輸入結(jié)束。例如:【例3.5】從鍵盤輸入3個(gè)數(shù),輸出其平均值。
#include<stdio.h>
voidmain()
{inta,b,c;
floataver;
scanf("%d%d%d",&a,&b,&c);
aver=(a+b+c)/3.0;
printf("aver=%7.2f\n",aver);
}輸入:169↙輸出:5.33【例3.5】從鍵盤輸入3個(gè)數(shù),輸出其平均值。
#includ【例3.6】交換兩個(gè)變量的值。
#include<stdio.h>
voidmain()
{inta,b,t,*pa=&a,*pb=&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年智慧物流體系建設(shè)項(xiàng)目建議書
- 工業(yè)互聯(lián)網(wǎng)背景下AR交互技術(shù)在智能工廠生產(chǎn)設(shè)備狀態(tài)監(jiān)控中的應(yīng)用
- 工業(yè)互聯(lián)網(wǎng)量子通信技術(shù)2025年在智能養(yǎng)老通信領(lǐng)域的應(yīng)用預(yù)研報(bào)告
- 2025年1月新員工試用期轉(zhuǎn)正工作總結(jié)模版
- 福建省南安市柳城義務(wù)教育小片區(qū)達(dá)標(biāo)名校2024年中考數(shù)學(xué)對(duì)點(diǎn)突破模擬試卷含解析
- 聚焦2025年:新能源汽車后市場(chǎng)服務(wù)市場(chǎng)服務(wù)模式創(chuàng)新與市場(chǎng)應(yīng)用報(bào)告
- 農(nóng)產(chǎn)品品牌建設(shè)資金申請(qǐng)與品牌市場(chǎng)布局策略報(bào)告
- 員工培訓(xùn)總結(jié)模版
- 區(qū)塊鏈賦能醫(yī)療DeFi與NFT在醫(yī)療數(shù)據(jù)交易中的應(yīng)用
- 區(qū)塊鏈助力醫(yī)療物資供應(yīng)鏈的透明化管理
- GB/T 44193-2024全國一體化政務(wù)服務(wù)平臺(tái)一網(wǎng)通辦基本要求
- 專題10非負(fù)性的應(yīng)用(原卷版+解析)
- NB-T+31045-2013風(fēng)電場(chǎng)運(yùn)行指標(biāo)與評(píng)價(jià)導(dǎo)則
- 《無人機(jī)測(cè)繪技能訓(xùn)練模塊》課件-模塊8:像片控制點(diǎn)測(cè)量
- 2024年山東省濰坊市二模化學(xué)試卷
- 藥物過敏反應(yīng)的應(yīng)急處理
- 種植義齒課件
- 機(jī)動(dòng)車檢測(cè)站內(nèi)審報(bào)告(依據(jù)補(bǔ)充技術(shù)要求)
- 湖南省邵陽市2023年英語小升初試卷(含答案)
- 監(jiān)理公司員工手冊(cè)
- 我國軍事科技發(fā)展
評(píng)論
0/150
提交評(píng)論