版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第三章順序結(jié)構(gòu)程序設(shè)計(jì)3.1程序的三種基本結(jié)構(gòu)3.2C語句概述3.3賦值表達(dá)式和賦值語句3.4數(shù)據(jù)輸入輸出的概念及在C語言中的實(shí)現(xiàn)3.5字符數(shù)據(jù)的輸入輸出3.6簡(jiǎn)單的格式輸入與輸出3.7較復(fù)雜的輸入輸出格式控制3.8順序結(jié)構(gòu)程序設(shè)計(jì)舉例3.1程序的三種基本結(jié)構(gòu)一個(gè)良好的程序由以下三種基本結(jié)構(gòu)組成:順序結(jié)構(gòu):各操作步驟順序執(zhí)行,是一種最簡(jiǎn)單的基本結(jié)構(gòu)。(2)選擇結(jié)構(gòu):根據(jù)是否滿足給定的條件而從兩組操作中選擇一種操作(3)循環(huán)結(jié)構(gòu):在一定條件下反復(fù)執(zhí)行某一部分的操作
3.2C語句概述C程序源程序文件1源程序文件2源程序文件n預(yù)處理命令函數(shù)n函數(shù)1數(shù)據(jù)聲明函數(shù)首部函數(shù)體數(shù)據(jù)聲明執(zhí)行語句…C程序的結(jié)構(gòu):……
3.2C語句概述一個(gè)c程序可以有若干個(gè)源程序文件組成一個(gè)源文件可以有若干個(gè)函數(shù)和預(yù)處理命令以及全局變量聲明部分組成一個(gè)函數(shù)有函數(shù)首部和函數(shù)體組成函數(shù)體由數(shù)據(jù)聲明和執(zhí)行語句組成C語句分為5類控制語句函數(shù)調(diào)用語句表達(dá)式語句空語句復(fù)合語句
3.2C語句概述(一)控制語句完成一定的控制功能1if()~else條件語句6break中止語句 2for()~循環(huán)語句7switch()多分支選擇語句3while()~循環(huán)語句8return返回語句4do~while();循環(huán)語句9goto轉(zhuǎn)向語句 5continue結(jié)束本次循環(huán)語句3.2C語句概述(二)函數(shù)調(diào)用語句由一個(gè)函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成
printf(“ThisisaCstatement.”);例:3.2C語句概述(三)表達(dá)式語句由一個(gè)表達(dá)式加一個(gè)分號(hào)構(gòu)成
a=3;例:分號(hào)賦值表達(dá)式表達(dá)式語句+=
3.2C語句概述
(四)空語句只有一個(gè)分號(hào)的語句
(什么也不做)用來做流程的轉(zhuǎn)向點(diǎn)用來作為循環(huán)語句中的循環(huán)體;3.2C語句概述(五)復(fù)合語句用一對(duì){}括起來的語句
{ z=x+y; t=z/100; printf(“%f”,t); }注意:復(fù)合語句中最后一個(gè)語句中最后的分號(hào)不能忽略不寫。
例:3.3賦值表達(dá)式和賦值語句
3.3.1賦值表達(dá)式1.賦值運(yùn)算符賦值符號(hào)“=”就是賦值運(yùn)算符,它的作用是將一個(gè)數(shù)據(jù)賦給一個(gè)變量。
賦值語句是由賦值表達(dá)式加上一個(gè)分號(hào)構(gòu)成例:
“a=3”把常量3賦給變量a
說明:也可以將一個(gè)表達(dá)式的值賦給一個(gè)變量
3.3賦值表達(dá)式和賦值語句
3.3.1賦值表達(dá)式2.復(fù)合的賦值運(yùn)算符在賦值符“=”之前加上其他運(yùn)算符,可以構(gòu)成復(fù)合的運(yùn)算符。例:a+=3等價(jià)于a=a+3
先計(jì)算a加3,再賦給a3.3賦值表達(dá)式和賦值語句
3.3.1賦值表達(dá)式可以這樣理解:①a+=b(其中a為變量,b為表達(dá)式)②a+=b(將有下劃線的“a+”移到“=”右側(cè))|
↑③a=a+b(在“=”左側(cè)補(bǔ)上變量名a)
3.3賦值表達(dá)式和賦值語句
3.3.1賦值表達(dá)式如果b是包含若干項(xiàng)的表達(dá)式,則相當(dāng)于它有括號(hào)。例:①x%=y+3②x%=(y+3)|__↑③x=x%(y+3)(不要錯(cuò)寫成x=x%y+3)3.3賦值表達(dá)式和賦值語句
3.3.1賦值表達(dá)式說明:凡是二元(二目)運(yùn)算符,都可以與賦值符一起組合成復(fù)合賦值符。有關(guān)算術(shù)運(yùn)算的復(fù)合賦值運(yùn)算符有:+=,-=,*=,/=,%=C語言采用這種復(fù)合運(yùn)算符,一是為了簡(jiǎn)化程序,使程序精練,二是為了提高編譯效率,能產(chǎn)生質(zhì)量較高的目標(biāo)代碼。
3.3賦值表達(dá)式和賦值語句
3.3.1賦值表達(dá)式3.賦值表達(dá)式
由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來的式子。一般形式為:變量賦值運(yùn)算符表達(dá)式賦值表達(dá)式的求解過程:先求賦值運(yùn)算符右側(cè)的“表達(dá)式”的值,然后賦給賦值運(yùn)算符左側(cè)的變量。賦值運(yùn)算符左側(cè)的標(biāo)識(shí)符稱為“左值”出現(xiàn)在賦值運(yùn)算符右側(cè)的表達(dá)式稱為“右值”注意:并不是任何對(duì)象都可以作為左值的,表達(dá)式和常變量就不能作為左值。任何左值都可做右值。3.3賦值表達(dá)式和賦值語句
3.3.1賦值表達(dá)式
說明:賦值運(yùn)算符按照“自右而左”的結(jié)合順序,因此,“a=(b=5)”和“a=b=5”等價(jià)賦值表達(dá)式中的“表達(dá)式”,又可以是一個(gè)賦值表達(dá)式。
例:a=(b=5)相當(dāng)于執(zhí)行“b=5”和“a=b”兩個(gè)賦值表達(dá)式3.3賦值表達(dá)式和賦值語句
3.3.1賦值表達(dá)式
分析賦值表達(dá)式:
(a=3*5)=4*3
賦值表達(dá)式為左值右值說明:先執(zhí)行括號(hào)內(nèi)的運(yùn)算,將15賦給a,然后執(zhí)行4*3的運(yùn)算,得12,再把12賦給a。最后a的值為12,整個(gè)表達(dá)式的值為12。
注意:賦值表達(dá)式作為左值時(shí)應(yīng)加括號(hào)3.3賦值表達(dá)式和賦值語句
3.3.1賦值表達(dá)式
求解步驟如下:①先進(jìn)行“a-=a*a”的運(yùn)算,它相當(dāng)于:a=a-a*a,a的值為12-144=-132。②再進(jìn)行“a+=-132”的運(yùn)算,相當(dāng)于:a=a+(-132),a的值為-132-132=-264。賦值表達(dá)式也可以包含復(fù)合的賦值運(yùn)算符。
例:a+=a-=a*a3.3賦值表達(dá)式和賦值語句
3.3.1賦值表達(dá)式賦值表達(dá)式作為表達(dá)式的一種,不僅可以出現(xiàn)在賦值語句中,而且可以以表達(dá)式形式出現(xiàn)在其他語句(如輸出語句、循環(huán)語句等)中
。例:printf(″%d″,a=b);3.3賦值表達(dá)式和賦值語句
3.3.2賦值過程中的類型轉(zhuǎn)換如果賦值運(yùn)算符兩側(cè)的類型一致,則直接進(jìn)行賦值。例:i=6(假設(shè)i已定義為int型)如果賦值運(yùn)算符兩側(cè)的類型不一致,但都是數(shù)值型或字符型時(shí),在賦值時(shí)要進(jìn)行類型轉(zhuǎn)換。類型轉(zhuǎn)換是系統(tǒng)自動(dòng)進(jìn)行的。3.3賦值表達(dá)式和賦值語句
3.3.2賦值過程中的類型轉(zhuǎn)換轉(zhuǎn)換規(guī)則:
⑴將浮點(diǎn)型數(shù)據(jù)(包括單、雙精度)賦給整型變量時(shí),先對(duì)浮點(diǎn)數(shù)取為整,然后賦予整型變量。⑵將整型數(shù)據(jù)賦給單、雙精度變量時(shí),數(shù)值不變,但以浮點(diǎn)數(shù)形式存儲(chǔ)到變量中。⑶將一個(gè)double型數(shù)據(jù)賦給float變量時(shí),截取其前面7位有效數(shù)字,存放到float變量的存儲(chǔ)單元(4個(gè)字節(jié))中。但應(yīng)注意數(shù)值范圍不能溢出;將一個(gè)float型數(shù)據(jù)賦給double變量時(shí),數(shù)值不變,有效位數(shù)擴(kuò)展到16位,在內(nèi)存中以8個(gè)字節(jié)存儲(chǔ)。
轉(zhuǎn)換規(guī)則:⑷字符型數(shù)據(jù)賦給整型變量時(shí),將字符的ASCII碼賦給整型變量。⑸將一個(gè)占字節(jié)多的整型數(shù)據(jù)賦給一個(gè)占字節(jié)少的整型變量/字符變量時(shí),只將其低字節(jié)原封不動(dòng)地送到該變量
例:i=289;/*已定義i為整型變量*/c=′a′;/*已定義c為字符變量*/c=i;/*將一個(gè)占2字節(jié)的int型數(shù)據(jù)賦給char型變量*/i=289↓↓↓↓↓↓↓↓c=33⑹將有符號(hào)整數(shù)賦值給長(zhǎng)度相同的無符號(hào)整型變量時(shí),按字節(jié)原樣賦值。000000010010000100100001注意:要避免進(jìn)行這種賦值,因?yàn)橘x值后數(shù)值可能發(fā)生失真。如果一定要進(jìn)行這種賦值,應(yīng)當(dāng)保證賦值后數(shù)值不會(huì)發(fā)生變化。例3.1有符號(hào)整數(shù)賦值給無符號(hào)整型變量,
數(shù)據(jù)會(huì)失真。
#include<stdio.h>
voidmain()
{unsigneda;/*定義a為無符號(hào)整型變量*/
intb;/*定義b為有符號(hào)整型變量*/
b=-1;b
a=b;a
printf("%u\n",a);
}運(yùn)行結(jié)果:4294967295
說明:由于a是無符號(hào)整型變量,因此不能用%d輸出格式符,而要用輸出無符號(hào)數(shù)的“%u”格式符。11111111111111111111111111111111例:3.2無符號(hào)整數(shù)賦值給有符號(hào)整型變量,注意數(shù)值范圍。
#include<stdio.h>
voidmain()
{unsigneda;
intb;
a=65535;/*兩個(gè)字節(jié)16位全為1*/
b=a;/*b的數(shù)值范圍為-32768~32767*/
printf("%d\n",b);
}運(yùn)行結(jié)果-1
說明:執(zhí)行“b=a”時(shí),將a的兩個(gè)字節(jié)(全1)賦給b,由于是有符號(hào)的整型數(shù),笫1個(gè)二進(jìn)位是1表示此數(shù)是一個(gè)負(fù)數(shù),16位全1是-1的補(bǔ)碼。轉(zhuǎn)換規(guī)則:⑺將無符號(hào)整數(shù)賦值給長(zhǎng)度相同的有符號(hào)整型變量時(shí),應(yīng)注意不要超出有符號(hào)整型變量的數(shù)值范圍,否則會(huì)出錯(cuò)。
3.3賦值表達(dá)式和賦值語句
3.3.3賦值語句賦值語句是由賦值表達(dá)式加上一個(gè)分號(hào)構(gòu)成。
賦值表達(dá)式的作用是將一個(gè)表達(dá)式的值賦給一個(gè)變量。賦值表達(dá)式具有計(jì)算和賦值雙重功能。程序中的計(jì)算功能主要是由賦值語句來完成。C語言的賦值語句與其他高級(jí)語言的賦值語句之間的差異:
(1)C語言中的賦值號(hào)“=”是一個(gè)運(yùn)算符,在其他大多數(shù)語言中賦值號(hào)不是運(yùn)算符。(2)要區(qū)別賦值表達(dá)式和賦值語句。3.3賦值表達(dá)式和賦值語句
3.3.4變量賦初值程序中對(duì)變量賦初值的方法有兩種⑴在定義變量的同時(shí)使變量初始化(更方便)inta=3;/*指定a為整型變量,初值為3*/floatf=3.56;/*f為浮點(diǎn)型變量,初值3.56*/charc=′a′;/*指定c為字符變量,初值為′a′*/⑵用賦值語句對(duì)變量賦值inta;/*指定a為整型變量*/a=3;/*賦值語句,將3賦給a*/3.4數(shù)據(jù)輸入輸出的概念
及在C語言中的實(shí)現(xiàn)(一).所謂輸入輸出是以計(jì)算機(jī)主機(jī)為主體而言的輸出:從計(jì)算機(jī)向外部輸出設(shè)備(顯示器,打印機(jī))輸出數(shù)據(jù)輸入:從輸入設(shè)備(鍵盤,鼠標(biāo),掃描儀)向計(jì)算機(jī)輸入數(shù)據(jù).(二).C語言本身不提供輸入輸出語句,輸入和輸出操作是由C函數(shù)庫中的函數(shù)來實(shí)現(xiàn)的例如:字符輸入函數(shù):getchar字符輸出函數(shù):putchar格式輸入函數(shù):scanf格式輸出函數(shù):printf字符串輸入函數(shù):gets字?jǐn)?shù)串輸出函數(shù):puts
3.4數(shù)據(jù)輸入輸出的概念
及在C語言中的實(shí)現(xiàn)(三).在使用系統(tǒng)庫函數(shù)時(shí),要用預(yù)編譯命令“#include”將有關(guān)的“頭文件”包括到用戶源文件中。例如:在調(diào)用標(biāo)準(zhǔn)輸入輸出庫函數(shù)時(shí),文件開頭應(yīng)該有:#include“stdio.h”或:#include<stdio.h>頭文件
3.4數(shù)據(jù)輸入輸出的概念
及在C語言中的實(shí)現(xiàn)3.5字符數(shù)據(jù)的輸入輸出
3.5.1用putchar函數(shù)輸出一個(gè)字符
putchar函數(shù)(字符輸出函數(shù))的作用是向終端輸出一個(gè)字符。一般形式為putchar(c)
c可以是字符型變量或整型變量例3.3輸出單個(gè)字符。
#include<stdio.h>
voidmain()
{
chara,b,c;
a=‘B’;b=‘O’;c=‘Y’;
putchar(a);putchar(b);putchar(c);putchar(‘\n’);
}
運(yùn)行結(jié)果:BOYputchar(a);putchar(‘\n’);putchar(b);putchar(‘\n’);putchar(c);putchar(‘\n’);運(yùn)行結(jié)果:BOY3.5字符數(shù)據(jù)的輸入輸出
3.5.2用getchar函數(shù)輸入一個(gè)字符
getchar函數(shù)(字符輸入函數(shù))的作用是從計(jì)算機(jī)終端輸入一個(gè)字符。
getchar函數(shù)沒有參數(shù),一般形式為
getchar()函數(shù)的值就是從輸入設(shè)備得到的字符
例3.4輸入單個(gè)字符。
#include<stdio.h>
voidmain()
{
charc;
c=getchar();
putchar(c);
putchar(‘\n’);
}
運(yùn)行程序:
從鍵盤輸入字符‘a(chǎn)’按Enter鍵
屏幕上將顯示輸出的字符‘a(chǎn)’
a↙
a
字符串的輸入輸出puts函數(shù)puts函數(shù)的功能:向顯示器輸出字符串(輸出完,換行),其一般格式為:puts(字符數(shù)組);使用該函數(shù)需要注意的是:字符數(shù)組必須以‘\0’結(jié)束。gets函數(shù)gets函數(shù)的功能是從鍵盤輸入一以回車結(jié)束的字符串放入字符數(shù)組中,并自動(dòng)加‘\0’。其一般格式為:gets(字符數(shù)組)。使用gets函數(shù)需要注意的是:輸入串長(zhǎng)度應(yīng)小于字符數(shù)組長(zhǎng)度,且可以輸入包含空格的字符串。#include<stdio.h>voidmain(){charstring[80];printf(“Inputastring:”);gets(string);puts(string);}3.6簡(jiǎn)單的格式輸入與輸出
3.6.1用簡(jiǎn)單的printf函數(shù)輸出數(shù)據(jù)printf函數(shù)(格式輸出函數(shù))的作用是向終端(或系統(tǒng)隱含指定的輸出設(shè)備)輸出若干個(gè)任意類型的數(shù)據(jù)
。printf函數(shù)的一般格式為:printf(格式控制,輸出表列)例:
printf(”%d,%c\n”,i,c)
3.6簡(jiǎn)單的格式輸入與輸出
3.6.1用簡(jiǎn)單的printf函數(shù)輸出數(shù)據(jù)printf函數(shù)的參數(shù)包括兩部分:
(1)“格式控制”是用雙撇號(hào)括起來的字符串,也稱“轉(zhuǎn)換控制字符串”,它包括兩種信息。
①格式說明。格式說明由“%”和格式字符組成,如%d、%f等。它的作用是將輸出的數(shù)據(jù)轉(zhuǎn)換為指定的格式輸出。格式說明總是由“%”字符開始的。②普通字符。普通字符即需要原樣輸出的字符。例如上面printf函數(shù)中雙撇號(hào)內(nèi)的逗號(hào)、空格和換行符。
(2)“輸出表列”是需要輸出的一些數(shù)據(jù),可以是常量、變量或表達(dá)式。3.6簡(jiǎn)單的格式輸入與輸出
3.6.1用簡(jiǎn)單的printf函數(shù)輸出數(shù)據(jù)printf函數(shù)的例子:printf(“a=%db=%d”,a,b)|
||||格式說明輸出表列若a=3,b=4輸出為a=3b=43.6簡(jiǎn)單的格式輸入與輸出
3.6.1用簡(jiǎn)單的printf函數(shù)輸出數(shù)據(jù)基本的格式字符有以下幾種:
⑴d格式符。按十進(jìn)制整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出。
⑵i格式符。作用與d格式符相同,按十進(jìn)制整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出。一般習(xí)慣用%d而少用%i。⑶c格式符。用來輸出一個(gè)字符。
一個(gè)值在0~255范圍內(nèi)的整數(shù),也可以用“%c”使之按字符形式輸出例3.5字符數(shù)據(jù)的輸出。
#include<stdio.h>
voidmain()
{charc='a';
inti=97;
printf("%c,%d\n",c,c);
printf("%c,%d\n",i,i);
}運(yùn)行結(jié)果:a,97a,97
⑷s格式符,用來輸出一個(gè)字符串。
例:
printf(″%s″,″CHINA″);輸出字符串“CHINA”(不包括雙引號(hào))⑸f格式符。用來輸出實(shí)數(shù)(包括單、雙精度),以小數(shù)形式輸出,不指定整個(gè)字段的長(zhǎng)度,由系統(tǒng)自動(dòng)指定。一般的處理方法是:整數(shù)部分全部輸出,并輸出6位小數(shù)。
3.6簡(jiǎn)單的格式輸入與輸出
3.6.1用簡(jiǎn)單的printf函數(shù)輸出數(shù)據(jù)注意:在輸出的數(shù)字中并非全部數(shù)字都是有效數(shù)字。單精度實(shí)數(shù)的有效位數(shù)一般為6-7位,雙精度實(shí)數(shù)的有效位數(shù)一般為15-16位。例3.6輸出實(shí)數(shù)時(shí)的有效位數(shù)。
#include<stdio.h>
voidmain()
{floatx,y;
x=111111.111;y=222222.222;
printf("%f\n",x+y);
}運(yùn)行結(jié)果:333333.328125結(jié)果中只有前七位是有效數(shù)字。由于x和y是單精度變量,所以x+y也只能保證7位的精度,后面幾位是沒有意義的。
例3.7輸出雙精度數(shù)時(shí)的有效位數(shù)。
#include<stdio.h>
voidmain()
{doublex,y;
x=11111111.11111111;
y=22222222.22222222;
printf("%f\n",x+y);
}運(yùn)行結(jié)果:33333333.333333x和y是雙精度變量,能提供16位精度,但是由于用%f格式輸出,只能輸出6位小數(shù),有兩位被省掉了。3.6簡(jiǎn)單的格式輸入與輸出
3.6.1用簡(jiǎn)單的printf函數(shù)輸出數(shù)據(jù)(6)e格式符,用格式說明%e指定以指數(shù)形式輸出實(shí)數(shù)。
例:printf(″%e″,123.456);輸出如下
1.234560
e+002
6列5列C編譯系統(tǒng)自動(dòng)指定給出數(shù)字部分的小數(shù)位數(shù)為6位,指數(shù)部分占5位3.6簡(jiǎn)單的格式輸入與輸出
3.6.2用簡(jiǎn)單的scanf函數(shù)輸入數(shù)據(jù)scanf函數(shù)作用:按照變量在內(nèi)存的地址將變量值存進(jìn)去。一般格式:scanf(格式控制,地址表列)同printf函數(shù)是由若干個(gè)地址組成的表列,可以是變量的地址,或字符串的首地址例3.8用scanf函數(shù)輸入數(shù)據(jù)。
#include<stdio.h>
voidmain()
{
inta,b,c;
scanf(“%d%d%d”,&a,&b,&c);
printf(“%d,%d,%d\n”,a,b,c);
}
運(yùn)行情況:
345(輸入a,b,c的值,)
3,4,5(輸出a,b,c的值)a在內(nèi)存中的地址&是地址運(yùn)算符輸入數(shù)據(jù)時(shí),在兩個(gè)數(shù)據(jù)之間以一個(gè)或多個(gè)空格間隔,也可以用Enter鍵、Tab鍵。3.6簡(jiǎn)單的格式輸入與輸出
3.6.2用簡(jiǎn)單的scanf函數(shù)輸入數(shù)據(jù)scanf函數(shù)的格式說明與printf函數(shù)的相似,以%開始,以一個(gè)格式字符結(jié)束,中間可插入附加的字符。
例:scanf(”%d%d%d”,&a,&b,&c);/*格式控制字符串中包含3個(gè)格式說明符%d*/scanf(”a=%db=%dc=%d”,&a,&b,&c);/*格式控制字符串中包含格式說明符以外的字符*/3.6簡(jiǎn)單的格式輸入與輸出
3.6.2用簡(jiǎn)單的scanf函數(shù)輸入數(shù)據(jù)說明:scanf函數(shù)中的“格式控制”后面應(yīng)當(dāng)是變量地址,而不應(yīng)是變量名。(2)如果在“格式控制”字符串中除了格式說明以外還有其他字符,則在輸入數(shù)據(jù)時(shí)在對(duì)應(yīng)位置應(yīng)輸入與這些字符相同的字符。
(3)在用“%c”格式輸入字符時(shí),空格字符和“轉(zhuǎn)義字符”都作為有效字符輸入。(4)在輸入數(shù)據(jù)時(shí),空格,“回車”、“跳格”(Tab)鍵或遇非法輸入,認(rèn)為該數(shù)據(jù)結(jié)束。
scanf(“%c%c%c”,&c1,&c2,&c3);
若輸入a└┘b└┘c
則ac1,└┘c2,bc3scanf(“%d%c%f”,&a,&b,&c);若輸入1234a789o.26則a=1234,b=‘a(chǎn)’,c=7893.7較復(fù)雜的格式輸入與輸出
3.7.1輸出數(shù)據(jù)格式控制除了上節(jié)所介紹的基本的格式控制外,還可以用下面一些格式符和附加字符。⑴%md。m為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)小于m,則左端補(bǔ)以空格,若大于m,則按實(shí)際位數(shù)輸出。例:printf(“%4d,%4d,a,b”);若:a=123,d=12345,則輸出結(jié)果為:123,123453.7較復(fù)雜的格式輸入與輸出
3.7.1輸出數(shù)據(jù)格式控制⑵%ld。對(duì)于int型數(shù)據(jù)占2字節(jié)的系統(tǒng),在輸出長(zhǎng)整型數(shù)據(jù)時(shí)要在格式字符d前面加一個(gè)英文字毋l。例:
longa=135790;/*定義a為長(zhǎng)整型變量*/printf(“%ld”,a);%d只適用于范圍為-32768~32767的整型數(shù)據(jù),超過此范圍的整數(shù),應(yīng)該用%ld輸出說明:如果用的是VC++6.0,由于int型和long型數(shù)據(jù)都分配4個(gè)字節(jié),因此用%d可以輸出int和long型數(shù)據(jù),不必要用%ld。3.7較復(fù)雜的格式輸入與輸出
3.7.1輸出數(shù)據(jù)格式控制
⑶%o。以8進(jìn)制整數(shù)形式輸出。由于是將內(nèi)存單元中的各位的值(0或1)按八進(jìn)制形式輸出,因此輸出的數(shù)值不帶符號(hào),即將符號(hào)位也一起作為八進(jìn)制數(shù)的一部分輸出。例:inta=-1;printf("%d,%o",a,a);-1在內(nèi)存單元中的存放形式(以補(bǔ)碼形式存放)如下:
輸出為:-1,1777771111111111111111用%d輸出的結(jié)果1,111,111,111,111,111||||||177777二進(jìn)數(shù)111就是8進(jìn)數(shù)7。因此上面的數(shù)用8進(jìn)制數(shù)表示為177773.7較復(fù)雜的格式輸入與輸出
3.7.1輸出數(shù)據(jù)格式控制⑷%x。以16進(jìn)制數(shù)形式輸出整數(shù)。同樣不會(huì)出現(xiàn)負(fù)的十六進(jìn)制數(shù)。例:inta=-1;printf(“%x,%o,%d”,a,a,a);輸出結(jié)果為ffff,177777,-1同樣可以用“%1x”輸出長(zhǎng)整型數(shù),也可以指定輸出字段的寬度,如“%12x”。3.7較復(fù)雜的格式輸入與輸出
3.7.1輸出數(shù)據(jù)格式控制⑸%u。用來輸出無符號(hào)(unsigned)型數(shù)據(jù),以十進(jìn)制整數(shù)形式輸出。一個(gè)有符號(hào)整數(shù)(int型)也可以用%u格式輸出;反之,一個(gè)unsigned型數(shù)據(jù)也可以用%d格式輸出。按相互賦值的規(guī)則處理。unsigned型數(shù)據(jù)也可用%o或%x格式輸出。
⑹%mc。用來指定輸出字符數(shù)據(jù)的寬度m如果有printf(“%3c”,c);則輸出“a”,即c變量輸出占3列,前2列補(bǔ)空格。例3.9無符號(hào)數(shù)據(jù)的輸出。
#include<stdio.h>
voidmain()
{
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);
}
TurboC2.0環(huán)境下的運(yùn)行結(jié)果:
a=-1,177777,ffff,65535
b=-2,177776,fffe,65534VC++6.0環(huán)境下的運(yùn)行結(jié)果:
a=65535,177777,ffff,65535
b=-2,37777777776,fffffffe,42949672943.7較復(fù)雜的格式輸入與輸出
3.7.1輸出數(shù)據(jù)格式控制⑺%ms,指定輸出的字符串占m列。如果字符串本身長(zhǎng)度大于m,則突破m的限制,將字符串全部輸出。若串長(zhǎng)小于m,則左補(bǔ)空格。%-ms,如果串長(zhǎng)小于m,則在m列范圍內(nèi),字符串向左靠,右補(bǔ)空格。%m.ns,輸出占m列,但只取字符串中左端n個(gè)字符。這n個(gè)字符輸出在m列的右側(cè),左補(bǔ)空格。%-m.ns,其中m、n含義同上,n個(gè)字符輸出在m列范圍的左側(cè),右補(bǔ)空格。如果n>m,則m自動(dòng)取n值,即保證n個(gè)字符正常輸出。⑻%m.nf,指定輸出的實(shí)數(shù)共占m列,其中有n位小數(shù)。如果數(shù)值長(zhǎng)度小于m,則左端補(bǔ)空格。%-m.nf與%m.nf基本相同,只是使輸出的數(shù)值向左端靠,右端補(bǔ)空格。例3.10字符串的輸出。
#include<stdio.h>
voidmain()
{
printf(“%3s,%7.2s,%.4s,%-5.3s\n”,“CHINA”,“CHINA”,“CHINA”,“CHINA”);
}
運(yùn)行結(jié)果:
CHINA,CH,CHIN,CHI例3.11輸出實(shí)數(shù)時(shí)指定小數(shù)位數(shù)。
#include<stdio.h>
voidmain()
{
floatf=123.456;
printf(“%f%10f%10.2f%.2f%-10.2f\n”
,f,f,f,f,f);
}
運(yùn)行結(jié)果:
123.456001123.456001123.46123.46123.46
3.7較復(fù)雜的格式輸入與輸出
3.7.1輸出數(shù)據(jù)格式控制⑼%m.ne和%-m.ne。m、n和“-”字符的含義與前相同。此處n指擬輸出的數(shù)據(jù)的小數(shù)部分(又稱尾數(shù))的小數(shù)位數(shù)。若f=123.456,則:printf("%e%10e%10.2e%.2e%-10.2e",f,f,f,f,f);輸出如下:1.234560e+002
1.234560e+002
1.23e+002
1.23e+002
13列13列10列9列1.23e+00210列3.7較復(fù)雜的格式輸入與輸出
3.7.1輸出數(shù)據(jù)格式控制(10)%g,用來輸出實(shí)數(shù).它根據(jù)數(shù)值的大小,自動(dòng)選f格式或e格式(選擇輸出時(shí)占寬度較小的一種),且不輸出無意義的零。例:若f=123.468,則printf(″%f%e%g″,f,f,f);輸出如下:123.468000
1.234680e+002
123.46810列13列10列說明:用%f格式輸出占10列,用%e格式輸出占13列,用%g格式時(shí),自動(dòng)從上面兩種格式中選擇短者(今以%f格式為短)故占10列,并按%f格式用小數(shù)形式輸出,最后3個(gè)小數(shù)位為無意義的0,不輸出,因此輸出123.468,然后右補(bǔ)3個(gè)空格。%g格式用得較少。3.7較復(fù)雜的格式輸入與輸出
3.7.2輸入數(shù)據(jù)格式控制說明:除了X,E,G外,其他各式字符必須用小寫??梢栽趐rintf函數(shù)中的“格式控制”字符串中包含轉(zhuǎn)義字符。一個(gè)格式說明必須以“%”開頭,以9個(gè)格式字符之一為結(jié)束,中間可以插入附加格式字符。想輸出%,則應(yīng)該在格式控制字符串中用連續(xù)兩個(gè)%表示3.7較復(fù)雜的格式輸入與輸出
3.7.2輸入數(shù)據(jù)格式控制格式字符說明d,i用來輸入有符號(hào)的十進(jìn)制整數(shù)u用來輸入無符號(hào)的十進(jìn)制整數(shù)o用來輸入無符號(hào)的八進(jìn)制整數(shù)xX用來輸入無符號(hào)的十六進(jìn)制整數(shù)(大小寫作用相同)c用來輸入單個(gè)字符s用來輸入字符串,將字符串送到一個(gè)字符數(shù)組中,在輸入時(shí)以非空白字符開始,以第一個(gè)空白字符結(jié)束。字符串以串結(jié)束標(biāo)志′\0′作為其最后一個(gè)字符f用來輸入實(shí)數(shù),可以用小數(shù)形式或指數(shù)形式輸入eEgG與f作用相同,e與f、g可以互相替換(大小寫作用相同)
表3.3scanf格式字符3.7較復(fù)雜的格式輸入與輸出
3.7.2輸入數(shù)據(jù)格式控制字符說明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的附加格式說明字符3.7較復(fù)雜的格式輸入與輸出
3.7.2輸入數(shù)據(jù)格式控制說明:對(duì)unsigned型變量所需要的數(shù)據(jù),可以用%u,%d或%o,%x格式輸入??梢愿鶕?jù)格式字符的含義分隔字符??梢灾付ㄝ斎霐?shù)據(jù)所占的列數(shù),系統(tǒng)自動(dòng)按它截取所需數(shù)據(jù)。如果在%后有一個(gè)“*”附加說明符,表示跳過它指定的列數(shù)。輸入數(shù)據(jù)時(shí)不能規(guī)定精度。根據(jù)格式字符的含義分隔字符scanf(“%d%c%f”,&a,&b,&c);若輸入20a36.8則a=20,b=a,c=36.8系統(tǒng)按格式說明指定的長(zhǎng)度截取所需的數(shù)據(jù)scanf(“%3d%2d”,&a,&b);
若輸入12345└┘└┘
則a=123,b=45scanf(“%3c%2c”,&c1,&c2);
若輸入abcde
則c1=‘a(chǎn)’,c2=‘d’%后的*修飾符,是抑制符表示本輸入項(xiàng)在讀入后不賦給相應(yīng)的變量scanf(“%3d%*4d%f”,&k,&f);若輸入12345678765.43則123k,8765.43f#include<stdio.h>voidmain(){intx;char
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2022幼兒園元旦活動(dòng)總結(jié)范文5篇
- 2022年建筑施工工作總結(jié)三篇
- 豫滿全球電商培訓(xùn)
- 石河子大學(xué)《足球》2022-2023學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《食品工藝學(xué)實(shí)驗(yàn)》2022-2023學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《心理測(cè)量學(xué)》2022-2023學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《家畜環(huán)境衛(wèi)生學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《法律文書》2023-2024學(xué)年期末試卷
- 沈陽理工大學(xué)《商務(wù)俄語翻譯》2023-2024學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《建筑設(shè)計(jì)》2021-2022學(xué)年第一學(xué)期期末試卷
- 期末模擬練習(xí)(試題)-2024-2025學(xué)年蘇教版二年級(jí)上冊(cè)數(shù)學(xué)
- 2023阿里云ACA大數(shù)據(jù)復(fù)習(xí)題題庫及答案
- 基于PLC的物料分揀系統(tǒng)設(shè)計(jì)
- 國開(內(nèi)蒙古)2024年《創(chuàng)新創(chuàng)業(yè)教育基礎(chǔ)》形考任務(wù)1-3終考任務(wù)答案
- 文旅深度融合績(jī)效評(píng)估與反饋機(jī)制
- 手工木工(技師)技能認(rèn)定理論考試題庫大全-上(單選題)
- 2024-2030年國內(nèi)水產(chǎn)飼料行業(yè)市場(chǎng)發(fā)展分析及競(jìng)爭(zhēng)格局與發(fā)展策略研究報(bào)告
- 滬科版七年級(jí)上冊(cè)數(shù)學(xué)期中考試試卷附答案
- 2023年中國鐵路國際有限公司招聘筆試真題
- 《護(hù)理管理學(xué)》期末考試復(fù)習(xí)題庫(含答案)
- 學(xué)習(xí)通尊重學(xué)術(shù)道德遵守學(xué)術(shù)規(guī)范課后習(xí)題答案
評(píng)論
0/150
提交評(píng)論