第03章_順序程序設(shè)計(jì)_第1頁(yè)
第03章_順序程序設(shè)計(jì)_第2頁(yè)
第03章_順序程序設(shè)計(jì)_第3頁(yè)
第03章_順序程序設(shè)計(jì)_第4頁(yè)
第03章_順序程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩60頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第三章l 主要內(nèi)容主要內(nèi)容3.1 C3.1 C語(yǔ)句概述語(yǔ)句概述3.2 3.2 賦值語(yǔ)句賦值語(yǔ)句3.3 3.3 數(shù)據(jù)輸入輸出的概念及在數(shù)據(jù)輸入輸出的概念及在c c語(yǔ)言中的實(shí)現(xiàn)語(yǔ)言中的實(shí)現(xiàn)3.4 3.4 字符數(shù)據(jù)的輸入輸出字符數(shù)據(jù)的輸入輸出3.5 3.5 格式輸入與輸出格式輸入與輸出3.6 3.6 順序結(jié)構(gòu)程序設(shè)計(jì)舉例順序結(jié)構(gòu)程序設(shè)計(jì)舉例3.1 C語(yǔ)句概述o C語(yǔ)句用來(lái)向計(jì)算機(jī)系統(tǒng)發(fā)出操作指令。o 一個(gè)語(yǔ)句經(jīng)編譯后產(chǎn)生若干條機(jī)器指令,這些指令指揮計(jì)算機(jī)完成相應(yīng)的動(dòng)作,因此C語(yǔ)句用來(lái)完成一定的操作任務(wù)。o 聲明部分的內(nèi)容不應(yīng)稱為語(yǔ)句。例如:int a;o 語(yǔ)句:由分號(hào)結(jié)束,分號(hào)是語(yǔ)句的一部分。o 一

2、個(gè)C程序可以由若干個(gè)源程序文件組成,一個(gè)源文件可以由若干函數(shù)和預(yù)處理命令以及全局變量聲明部分組成。o 函數(shù)聲明部分(數(shù)據(jù)描述)和執(zhí)行部分(數(shù)據(jù)操作)n 聲明部分:數(shù)據(jù)描述(變量的定義、賦初值)n 執(zhí)行部分:數(shù)據(jù)操作,由語(yǔ)句構(gòu)成。C程序源程序文件1源程序文件2源程序文件n預(yù)處理命令函數(shù)n函數(shù)1全局?jǐn)?shù)據(jù)聲明函數(shù)首部函數(shù)體數(shù)據(jù)聲明執(zhí)行語(yǔ)句o C語(yǔ)句分為:5類類控制語(yǔ)句函數(shù)調(diào)用語(yǔ)句表達(dá)式語(yǔ)句空語(yǔ)句復(fù)合語(yǔ)句( (一一) )控制語(yǔ)句。完成一定的控制功能控制語(yǔ)句。完成一定的控制功能 if( ) else 條件語(yǔ)句 for( ) 循環(huán)語(yǔ)句 while( ) 循環(huán)語(yǔ)句 do while( ); 循環(huán)語(yǔ)句 con

3、tinue 結(jié)束本次循環(huán)語(yǔ)句 break 中止執(zhí)行switch或循環(huán)語(yǔ)句 switch( ) 多分支選擇語(yǔ)句 goto 轉(zhuǎn)向語(yǔ)句 return 從函數(shù)返回語(yǔ)句o 上述9種控制語(yǔ)句中的括號(hào)“( )”表示括號(hào)中是一個(gè)“判別條件”,“”表示內(nèi)嵌的語(yǔ)句。 例如:“if( )else”的具體語(yǔ)句可以寫成: if (xy) z=x; else z=y; 其中,xy是一個(gè)“判別條件”,z=x;和z=y;是語(yǔ)句,內(nèi)嵌在ifelse語(yǔ)句中。 這個(gè)ifelse語(yǔ)句的作用是:先判別條件“xy”是否成立,如果成立就執(zhí)行語(yǔ)句“z=x;”;否則執(zhí)行語(yǔ)句“z=y”。( (二二) )函數(shù)調(diào)用語(yǔ)句。由一個(gè)函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成

4、函數(shù)調(diào)用語(yǔ)句。由一個(gè)函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成 printf(“This is a C statement.”);( (三三) )表達(dá)式語(yǔ)句。由一個(gè)表達(dá)式加一個(gè)分號(hào)構(gòu)成表達(dá)式語(yǔ)句。由一個(gè)表達(dá)式加一個(gè)分號(hào)構(gòu)成 a=3 是一個(gè)賦值表達(dá)式 a=3;分號(hào)分號(hào)賦值表達(dá)式賦值表達(dá)式表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句一個(gè)語(yǔ)句必須在最后出現(xiàn)分號(hào),分號(hào)是語(yǔ)句中不可缺少的一個(gè)語(yǔ)句必須在最后出現(xiàn)分號(hào),分號(hào)是語(yǔ)句中不可缺少的組成部分,而不是兩個(gè)語(yǔ)句間的分隔符號(hào)。組成部分,而不是兩個(gè)語(yǔ)句間的分隔符號(hào)。( (四四) )空語(yǔ)句。即只有一個(gè)分號(hào)的語(yǔ)句,它什么也不做空語(yǔ)句。即只有一個(gè)分號(hào)的語(yǔ)句,它什么也不做 o 用來(lái)做流程的轉(zhuǎn)向點(diǎn)用來(lái)做流程的轉(zhuǎn)

5、向點(diǎn)(流程從程序其他地方轉(zhuǎn)到此語(yǔ)句處流程從程序其他地方轉(zhuǎn)到此語(yǔ)句處)o 用來(lái)作為循環(huán)語(yǔ)句中的循環(huán)體用來(lái)作為循環(huán)語(yǔ)句中的循環(huán)體(循環(huán)體是空語(yǔ)句表示循環(huán)循環(huán)體是空語(yǔ)句表示循環(huán)體什么也不做。體什么也不做。)( (五)復(fù)合語(yǔ)句。用一對(duì)五)復(fù)合語(yǔ)句。用一對(duì)括起來(lái)的語(yǔ)句括起來(lái)的語(yǔ)句 z=x+y; t=z/100; printf(“%f”,t); 注意:復(fù)合語(yǔ)句中最后一個(gè)語(yǔ)句中最后的分號(hào)不能忽略不寫。注意:復(fù)合語(yǔ)句中最后一個(gè)語(yǔ)句中最后的分號(hào)不能忽略不寫。C C語(yǔ)言允許一行寫幾個(gè)語(yǔ)句,也允許一個(gè)語(yǔ)句拆開(kāi)寫在幾行上語(yǔ)言允許一行寫幾個(gè)語(yǔ)句,也允許一個(gè)語(yǔ)句拆開(kāi)寫在幾行上3.2 賦值語(yǔ)句 賦值語(yǔ)句是由賦值表達(dá)式加上一

6、個(gè)分號(hào)構(gòu)成例:例:a=100 賦值表達(dá)式 a=100; ; 賦值語(yǔ)句賦值表達(dá)式可以包含于其他表達(dá)式中例:例: if(a=b)0) t=a; 其作用是:先進(jìn)行賦值運(yùn)算,然后判斷a是否大于0,如大于0執(zhí)行t=a。3.2 賦值語(yǔ)句(續(xù)) 條件中可以包含賦值表達(dá)式,但不能包含賦值語(yǔ)句。例:例: if(a=b)0) t=a; 正確 if(a=b;)0) t=a; 錯(cuò)誤3.3 數(shù)據(jù)輸入輸出的概念及在C語(yǔ)言中的實(shí)現(xiàn)(一) 所謂輸入輸出是以計(jì)算機(jī)主機(jī)為主體而言的。輸出輸出:從計(jì)算機(jī)向外部輸出設(shè)備(顯示器,打印機(jī))輸出數(shù)據(jù)輸入輸入:從輸入設(shè)備(鍵盤,鼠標(biāo),掃描儀)向計(jì)算機(jī)輸入數(shù)據(jù).(二) C語(yǔ)言本身不提供輸入輸

7、出語(yǔ)句,輸入和輸出操作是由C函數(shù)庫(kù)中的函數(shù)來(lái)實(shí)現(xiàn)的。n不把輸入輸出語(yǔ)句作為C語(yǔ)句的目的是避免在編譯階段處理與硬件有關(guān)的問(wèn)題,使編譯系統(tǒng)簡(jiǎn)化。n各種C編譯系統(tǒng)提供的系統(tǒng)函數(shù)庫(kù)系統(tǒng)函數(shù)庫(kù)是各廠商根據(jù)用戶的需要編寫的,并且已編譯成目標(biāo)文件(.obj)。它們?cè)谶B接階段與源程序編譯后得到的目標(biāo)文件相連接,生成一個(gè)可執(zhí)行的目標(biāo)程序(.exe)。n不同的編譯系統(tǒng)所提供的函數(shù)庫(kù)中函數(shù)的數(shù)量、名字和功能是不完全相同的。不過(guò),有些通用的函數(shù)(printf,scanf)各種編譯系統(tǒng)都提供,成為各種系統(tǒng)的標(biāo)準(zhǔn)函數(shù)。nC語(yǔ)言函數(shù)庫(kù)中有一批“標(biāo)準(zhǔn)輸入輸出函數(shù)標(biāo)準(zhǔn)輸入輸出函數(shù)”,例如: 字符輸入函數(shù): getchar 字符

8、輸出函數(shù):putchar 格式輸入函數(shù): scanf 格式輸出函數(shù): printf 字符串輸入函數(shù): gets 字符串輸出函數(shù):puts(三) 在使用系統(tǒng)庫(kù)函數(shù)時(shí),要用預(yù)編譯命令“#include”將有關(guān)的“頭文件”包括到用戶源文件中。例如:在調(diào)用標(biāo)準(zhǔn)輸入輸出庫(kù)函數(shù)時(shí),文件開(kāi)頭應(yīng)該有: #include “stdio.h” 或: #include 頭文件3.4 字符數(shù)據(jù)的輸入輸出(一) 字符輸出函數(shù) putchar( )p 函數(shù)作用:向終端輸出一個(gè)字符p 一般形式:putchar(c) 輸出變量c的值 C可以是字符型變量或整型變量例例3.1 輸出單個(gè)字符。輸出單個(gè)字符。#includevoid

9、 main() char a,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é)果:BOYo 也可以輸出其他轉(zhuǎn)義字符,例如: putchar(101); (輸出字符A) putchar(); (輸出單引號(hào)字符) putchar(015) (輸出回車,不換行,使輸出的當(dāng)前位置移到本行開(kāi)頭) 3.4 字符數(shù)據(jù)的輸入輸出(續(xù))(二) 字符輸入函數(shù)p函數(shù)作用:從終端(或系統(tǒng)隱

10、含指定的輸入設(shè)備)輸入一個(gè)字符。p沒(méi)有輸入?yún)?shù),一般形式:getchar()p函數(shù)值:從輸入設(shè)備得到的字符。例例4.2 輸入單個(gè)字符。輸入單個(gè)字符。#includevoid main() char c; c=getchar(); putchar(c); putchar(n);運(yùn)行程序:運(yùn)行程序:從鍵盤輸入字符從鍵盤輸入字符aa按按EnterEnter鍵鍵屏幕上將顯示輸出的字符屏幕上將顯示輸出的字符aaa aa a注意注意:getchar函數(shù)只能接收一個(gè)字符。getchar函數(shù)得到 的字符可以賦給一個(gè)字符變量或整型變量,也可 以不賦給任何變量,作為表達(dá)式的一部分。 例如: 例4.2第4、5行可以

11、用下面一行代替 putchar(getchar();3.5 格式輸入與輸出(一) 格式輸出函數(shù) printfprintf( )( )o 函數(shù)作用:向終端(或系統(tǒng)隱含指定的輸出設(shè)備)輸出函數(shù)作用:向終端(或系統(tǒng)隱含指定的輸出設(shè)備)輸出若干個(gè)任意類型若干個(gè)任意類型的數(shù)據(jù)。的數(shù)據(jù)。o 一般格式:一般格式:printfprintf(格式控制,輸出表列)(格式控制,輸出表列)格式控制是用雙引號(hào)括起來(lái)的字符串,它包括兩種信息:格式控制是用雙引號(hào)括起來(lái)的字符串,它包括兩種信息:l 格式說(shuō)明:由格式說(shuō)明:由“”和格式字符組成,例如和格式字符組成,例如d d、f f等,等, 作用是將輸出的數(shù)據(jù)轉(zhuǎn)換為指定的格式輸

12、出。作用是將輸出的數(shù)據(jù)轉(zhuǎn)換為指定的格式輸出。l 普通字符:按原樣輸出。普通字符:按原樣輸出?!拜敵霰砹休敵霰砹小笔切枰敵龅囊恍?shù)據(jù),可以是表達(dá)式。是需要輸出的一些數(shù)據(jù),可以是表達(dá)式。例如: printf(“a=%d b=%d”,a,b); 如果a、b的值分別為3、4,則輸出為:a=3 b=4格式說(shuō)明格式說(shuō)明輸出表列輸出表列普通字符普通字符格式字符:(1)格式符格式符。用來(lái)輸出十進(jìn)制整數(shù)。幾種用法: %d:按十進(jìn)制整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出。 %md: m為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)小于,則左端補(bǔ)以空格,若大于,則按實(shí)際位數(shù)輸出。 例: printf(“%4d,%4d”,a,b); 若a

13、=123,b=12345,則輸出結(jié)果為?123,12345 %ld: 輸出長(zhǎng)整型數(shù)據(jù)。 例: long a=135790;/* 定義a為長(zhǎng)整型變量*/ printf(“%ld%ld”,a); 如果用%d輸出會(huì)發(fā)生錯(cuò)誤,因?yàn)榛菊蛿?shù)據(jù)的表數(shù)范圍為-3276832767。長(zhǎng)整型數(shù)據(jù)應(yīng)當(dāng)用%ld格式輸出。 long a=135790; printf(“%8ld%8ld”,a);則輸出為:?135790 一個(gè)int型數(shù)據(jù)可以用%d或%ld格式輸出。(2)格式符格式符。 %o以八進(jìn)制整數(shù)形式輸出。輸出的數(shù)值不帶符號(hào),即符號(hào)位也一起作為八進(jìn)制數(shù)的一部分輸出。例:int a=-1; printf(%d,%

14、o,a,a); 在內(nèi)存單元中的存放形式(以補(bǔ)碼形式存放)如下: 輸出為:-1,177777 對(duì)長(zhǎng)整數(shù)(long型)可以用“%lo”格式輸出。還可以指定字段寬度,例: printf(“%8o,);輸出為:?177777。 (數(shù)字前有2個(gè)空格)1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1(3)格式符格式符。%x以十六進(jìn)制數(shù)形式輸出整數(shù)。同樣不會(huì)出現(xiàn)負(fù)的十六進(jìn)制數(shù)。例: int a=-1; printf(“%x,%o,%d”,,); 輸出結(jié)果為:ffff,177777, 可以用“%lx”輸出長(zhǎng)整型數(shù),也可以指定輸出字段的寬度例如: “%12x”(4)格式符。格式符。%u用來(lái)輸出un

15、signed型數(shù)據(jù)。n 一個(gè)有符號(hào)整數(shù)(int型)也可以用%u格式輸出;n 一個(gè)unsigned型數(shù)據(jù)可以用%d格式輸出。 (按互相賦值的規(guī)則處理)n unsigned型數(shù)據(jù)也可用%o或%x格式輸出。例例3.3 無(wú)符號(hào)數(shù)據(jù)的輸出。無(wú)符號(hào)數(shù)據(jù)的輸出。#includevoid main() unsigned int a=65535; int b=-2; printf(“a=%d,%o,%x,%un”,a, a, a, a); printf(“b=%d,%o,%x,%un”,b, b, b, b);運(yùn)行結(jié)果:a=-1,177777,ffff,65535b=-2,177776,fffe,655341

16、1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0ab3.5 格式輸入與輸出(續(xù))(5)格式符格式符。%c用來(lái)輸出一個(gè)字符。如:charda; printf(“c”,d); /*它的輸出結(jié)果為 一個(gè)整數(shù),只要它的值在0255范圍內(nèi),可以用“%c”使之按字符形式輸出,在輸出前,系統(tǒng)會(huì)將該整數(shù)作為ASCII碼轉(zhuǎn)換成相應(yīng)的字符; 一個(gè)字符數(shù)據(jù)也可以用整數(shù)形式輸出。 例例3.4 字符數(shù)據(jù)的輸出。字符數(shù)據(jù)的輸出。#includevoid main() char c=a; int i=97; printf(“%c,%dn”,c,c);

17、printf(“%c,%dn”,i,i);運(yùn)行結(jié)果:a,97a,97指定輸出字?jǐn)?shù)的寬度,指定輸出字?jǐn)?shù)的寬度,printf(“%3c”,c);printf(“%3c”,c);則輸出:則輸出:a a(6)s s格式符。格式符。輸出字符串 %s%s。例如: printf(“s”,“CHINA”); 則輸出字符串:CHINA(不包括雙引號(hào))。 %ms%ms,輸出的字符串占m列,若串長(zhǎng)大于m,則全部輸出,若串長(zhǎng) 小于m,則左補(bǔ)空格。 %-ms%-ms,若串長(zhǎng)小于m,字符串向左靠,右補(bǔ)空格。 %m.ns%m.ns,輸出占m列,只取字符串中左端n個(gè)字符,輸出在m列的 右側(cè),左補(bǔ)空格。 %-m.ns%-m.n

18、s,n個(gè)字符輸出在m列的左側(cè),右補(bǔ)空格,若nm,m自 動(dòng)取n值。例3.5字符串的輸出。字符串的輸出。#includevoid main()printf(“%3s,%7.2s,%.4s,%-5.3sn”, “CHINA”, “CHINA”, “CHINA”, “CHINA”); 運(yùn)行結(jié)果:CHINA, CH,CHIN,CHI (7)格式符。格式符。用來(lái)以小數(shù)形式輸出實(shí)數(shù)(包括單雙精度)有以下幾種用法: %f%f。不指定字段寬度,由系統(tǒng)自動(dòng)指定字段寬度,使整數(shù)部分使整數(shù)部分全部輸出,并輸出位小數(shù)全部輸出,并輸出位小數(shù)。應(yīng)當(dāng)注意,在輸出的數(shù)字中并非全部數(shù)字都是有效數(shù)字。單精度單精度實(shí)數(shù)的有效位數(shù)一般

19、為位實(shí)數(shù)的有效位數(shù)一般為位, ,雙精度的有效位數(shù)一般為雙精度的有效位數(shù)一般為1616位。位。%m.nf%m.nf。指定輸出的數(shù)據(jù)共占列,其中有位小數(shù)。如果數(shù)值長(zhǎng)度小于,則左端補(bǔ)空格。%-m.nf%-m.nf與%m.nf基本相同,只是使輸出的數(shù)值向左端靠,右端補(bǔ)空格。 例3.6 輸出實(shí)數(shù)時(shí)的有效位數(shù)。輸出實(shí)數(shù)時(shí)的有效位數(shù)。#include void main( ) float x,y;x=111111.111; y=222222.222;printf(“%f”,); 運(yùn)行結(jié)果:運(yùn)行結(jié)果:. . 可以看到,可以看到,%f%f由系統(tǒng)自動(dòng)指定字段寬度,使整數(shù)部分全部輸由系統(tǒng)自動(dòng)指定字段寬度,使整數(shù)部分

20、全部輸出,并輸出位小數(shù)。出,并輸出位小數(shù)。顯然,只有前顯然,只有前7 7位數(shù)字是有效數(shù)字。位數(shù)字是有效數(shù)字。例3.7 輸出雙精度數(shù)時(shí)的有效位數(shù)。輸出雙精度數(shù)時(shí)的有效位數(shù)。#include void main() double ,; x=1111111111111.111111111; y=2222222222222.222222222; printf(“%f”,x+y);運(yùn)行運(yùn)行結(jié)果:結(jié)果:3333333333333.3330103333333333333.333010 可以看到只有前可以看到只有前1616位數(shù)字是有效數(shù)字。最后位數(shù)字是有效數(shù)字。最后3 3位小數(shù)位小數(shù)( (超過(guò)超過(guò)1616位位

21、) )是無(wú)意義的。是無(wú)意義的。例例3.8 輸出實(shí)數(shù)時(shí)指定小數(shù)位數(shù)。輸出實(shí)數(shù)時(shí)指定小數(shù)位數(shù)。#include void main( ) float f=123.456; printf(“%f?%10f?%10.2f?%.2f?%-10.2fn”,f,f,f,f,f);運(yùn)行結(jié)果:123.456001?123.456001?_123.46?123.46?123.46_3.5 格式輸入與輸出(續(xù))(8)格式符格式符,以指數(shù)形式輸出實(shí)數(shù)。 %e%e。數(shù)值按規(guī)范化指數(shù)形式輸出(即小數(shù)點(diǎn)前必須有而且只有1位非零數(shù)字)。不指定輸出數(shù)據(jù)所占的寬度和數(shù)字部分的小數(shù)位數(shù),有的C編譯系統(tǒng)自動(dòng)指定小數(shù)位數(shù)為6位,指數(shù)部

22、分占5位,其中“e”占1位,指數(shù)符占1位,指數(shù)占3位。例: printf(“%e”,123.456);輸出: 6列 5列所輸出的實(shí)數(shù)共占列寬度。(注:不同系統(tǒng)的規(guī)定略有不同) m.ne和-m.ne。、和“”字符的含義與前相同。 此處指擬輸出的數(shù)據(jù)的小數(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+002? 10列說(shuō)明:第1個(gè)數(shù)據(jù)未指定,自動(dòng)使。第2個(gè)數(shù)據(jù)因?yàn)槌?/p>

23、過(guò)了給定的10列,則按實(shí)際長(zhǎng)度輸出。第3個(gè)數(shù)據(jù)共占10列,小數(shù)部分占列。第4個(gè)數(shù)據(jù)只指定n=2,未指定,自動(dòng)使等于數(shù)據(jù)應(yīng)占的長(zhǎng)度。第5個(gè)數(shù)據(jù)應(yīng)占10列,數(shù)值只有列,由于是“%-10.2e”,數(shù)值向左靠,右補(bǔ)一個(gè)空格。(注:有的C系統(tǒng)的輸出格式與此略有不同) (9) )格式符格式符,用來(lái)輸出實(shí)數(shù)。 它根據(jù)數(shù)值的大小,自動(dòng)選格式或格式(選擇輸出時(shí)占寬度較小的一種),且不輸出無(wú)意義的零。例:若f=123.468,則 printf(“%f %e %g”,);輸出如下:123.468000 1.234680e+002 123.468 10列 13列 7列說(shuō)明:用f格式輸出占10列,用%e格式輸出占13列

24、,用%g格式時(shí),自動(dòng)從上面兩種格式中選擇短者,故占列,并按%f格式用小數(shù)形式輸出,最后3個(gè)小數(shù)位為無(wú)意義的,不輸出,因此輸出123.468。3.5 格式輸入與輸出(續(xù))格式字符:格式字符:%d%d: : 以帶符號(hào)的十進(jìn)制形式輸出整數(shù)以帶符號(hào)的十進(jìn)制形式輸出整數(shù)( (正數(shù)不輸出符號(hào)正數(shù)不輸出符號(hào)) )%o%o: : 以八進(jìn)制無(wú)符號(hào)形式輸出整數(shù)以八進(jìn)制無(wú)符號(hào)形式輸出整數(shù)( (不輸出前導(dǎo)字符不輸出前導(dǎo)字符0)0)%x%x: : 以十六進(jìn)制無(wú)符號(hào)形式輸出整數(shù)以十六進(jìn)制無(wú)符號(hào)形式輸出整數(shù)( (不輸出前導(dǎo)字符不輸出前導(dǎo)字符0 x)0 x) 用用x x則輸出十六進(jìn)制數(shù)的則輸出十六進(jìn)制數(shù)的a af f時(shí)以小寫

25、形式輸出。用時(shí)以小寫形式輸出。用X X 時(shí),則以大寫字母輸出。時(shí),則以大寫字母輸出。%u%u: : 以無(wú)符號(hào)十進(jìn)制形式輸出整數(shù)以無(wú)符號(hào)十進(jìn)制形式輸出整數(shù)%c%c: : 以字符形式輸出,只輸出一個(gè)字符以字符形式輸出,只輸出一個(gè)字符%s%s: : 輸出字符串輸出字符串格式字符:格式字符:%f%f: : 以小數(shù)形式輸出單、雙精度數(shù),隱含輸出六位小數(shù)以小數(shù)形式輸出單、雙精度數(shù),隱含輸出六位小數(shù)%e%e: : 以指數(shù)形式輸出實(shí)數(shù),用以指數(shù)形式輸出實(shí)數(shù),用e e時(shí)指數(shù)以時(shí)指數(shù)以“e”e”表示表示( (如如 1.2e+02)1.2e+02),用,用E E時(shí)指數(shù)以時(shí)指數(shù)以”E”E”表示表示( (如如1.2E+

26、02)1.2E+02)%g%g: : 選用選用%f%f或或%e%e格式中輸出寬度較短的一種格式,不輸格式中輸出寬度較短的一種格式,不輸 出無(wú)意義的出無(wú)意義的0 0。用。用G G時(shí),若以指數(shù)形式輸出,則指數(shù)時(shí),若以指數(shù)形式輸出,則指數(shù) 以大寫表示。以大寫表示。 附加格式說(shuō)明符(修飾符).n對(duì)實(shí)數(shù),指定小數(shù)點(diǎn)后位數(shù)(四舍五入)對(duì)字符串,指定截取的字符個(gè)數(shù)修飾符功 能m輸出數(shù)據(jù)域?qū)?數(shù)據(jù)長(zhǎng)度m,左補(bǔ)空格;否則按實(shí)際輸出輸出數(shù)據(jù)在域內(nèi)左對(duì)齊(缺省右對(duì)齊)-在d, o, x, u前,指定輸出精度為long型在e, f, g前,指定輸出精度為double型l說(shuō)明:說(shuō)明:o 除了X,E,G外,其他格式字符必

27、須用小寫。o 可以在printf函數(shù)中的“格式控制”字符串中包含轉(zhuǎn)義字符,例如:“n”、“t”、“b”、“r”、“f”、“377”等。o 一個(gè)格式說(shuō)明必須以“%”開(kāi)頭,以9個(gè)格式字符之一為結(jié)束,中間可以插入附加格式字符。o 想輸出%,則應(yīng)該在格式控制字符串中用連續(xù)兩個(gè)%表示 例如:printf(“%f%”,1.0/3); 輸出:0.333333%3.5 格式輸入與輸出(續(xù))(二)格式輸入函數(shù) scanf( )o 函數(shù)作用:按照變量在內(nèi)存的地址將變量值存進(jìn)去。o 一般格式: scanf(格式控制,地址表列)同同printfprintf函數(shù)函數(shù)由若干個(gè)地址組成的表列,可以是變量的地址由若干個(gè)地址組

28、成的表列,可以是變量的地址(&變量名變量名),或字符串的首地址或字符串的首地址例例3.9 3.9 用用scanfscanf函數(shù)輸入數(shù)據(jù)。函數(shù)輸入數(shù)據(jù)。#includevoid main() int a,b,c; scanf(“%d%d%d”, &a, &b, &c); printf(“%d,%d,%dn”, a, b, c); 運(yùn)行情況:運(yùn)行情況:3 4 5 (3 4 5 (輸入輸入a,b,ca,b,c的值的值) )3 3,4 4,5 5 (輸出(輸出a,b,ca,b,c的值的值)& &是地址運(yùn)算符是地址運(yùn)算符,scanf,scanf函數(shù)的作用函

29、數(shù)的作用是:按照是:按照a a、b b、c c在內(nèi)存的地址將在內(nèi)存的地址將a a、b b、c c的值存進(jìn)去。的值存進(jìn)去。 “ “%d%d%d%d%d%d”表示按十進(jìn)制整數(shù)形式輸入表示按十進(jìn)制整數(shù)形式輸入3 3個(gè)數(shù)據(jù)。輸入數(shù)據(jù)個(gè)數(shù)據(jù)。輸入數(shù)據(jù)時(shí),在兩個(gè)數(shù)據(jù)之間以一個(gè)或多個(gè)空格間隔,也可以用時(shí),在兩個(gè)數(shù)據(jù)之間以一個(gè)或多個(gè)空格間隔,也可以用EnterEnter鍵鍵 、TabTab鍵。下面輸入均為合法:鍵。下面輸入均為合法:3 4 53 4 53 3 4 5 4 53(3(按下按下TabTab鍵鍵)4)4 5 5 用用“%d%d%d%d%d%d”格式輸入數(shù)據(jù)時(shí),不能用逗號(hào)作兩個(gè)數(shù)據(jù)間的格式輸入數(shù)據(jù)時(shí),

30、不能用逗號(hào)作兩個(gè)數(shù)據(jù)間的分隔符。如下輸入不合法:分隔符。如下輸入不合法:3,4,53,4,5scanfscanf格式字符:格式字符:%d%d: : 用來(lái)輸入帶符號(hào)的十進(jìn)制整數(shù)用來(lái)輸入帶符號(hào)的十進(jìn)制整數(shù)%o%o: : 用來(lái)輸入無(wú)符號(hào)的八進(jìn)制整數(shù)用來(lái)輸入無(wú)符號(hào)的八進(jìn)制整數(shù)%x%x: : 用來(lái)輸入無(wú)符號(hào)的十六進(jìn)制整數(shù)用來(lái)輸入無(wú)符號(hào)的十六進(jìn)制整數(shù)( (大小寫作用相同大小寫作用相同) )%u%u: : 用來(lái)輸入無(wú)符號(hào)的十進(jìn)制整數(shù)用來(lái)輸入無(wú)符號(hào)的十進(jìn)制整數(shù)%c%c: : 用來(lái)輸入單個(gè)字符用來(lái)輸入單個(gè)字符%s%s: : 用來(lái)輸入字符串,將字符串放入一個(gè)字符數(shù)組中用來(lái)輸入字符串,將字符串放入一個(gè)字符數(shù)組中%f

31、%f 用來(lái)輸入實(shí)數(shù),可以用小數(shù)形式或指數(shù)形式輸入用來(lái)輸入實(shí)數(shù),可以用小數(shù)形式或指數(shù)形式輸入e,E,g,Ge,E,g,G 與與f f作用相同。作用相同。scanfscanf的附加格式說(shuō)明字符:的附加格式說(shuō)明字符:l l 用于輸入長(zhǎng)整型數(shù)據(jù)用于輸入長(zhǎng)整型數(shù)據(jù)( (可用可用%ld,%lo,%lx,%lu%ld,%lo,%lx,%lu) ) 以及以及doubledouble型數(shù)據(jù)型數(shù)據(jù)( (用用%lf%lf或或%le)%le)h h 用戶輸入短整型數(shù)據(jù)用戶輸入短整型數(shù)據(jù)( (可用可用%hd,%ho,%hx%hd,%ho,%hx) )域?qū)捰驅(qū)?指定輸入數(shù)據(jù)所占列數(shù)指定輸入數(shù)據(jù)所占列數(shù), ,域?qū)拺?yīng)為正整數(shù)

32、域?qū)拺?yīng)為正整數(shù)* * 表示本輸入項(xiàng)在讀入后不賦給相應(yīng)的變量表示本輸入項(xiàng)在讀入后不賦給相應(yīng)的變量說(shuō)明:說(shuō)明:o 對(duì)unsigned型變量所需要的數(shù)據(jù),可以用%u,%d或%o,%x格式輸入。o 可以指定輸入數(shù)據(jù)所占的列數(shù),系統(tǒng)自動(dòng)按它截取所需數(shù)據(jù)。例如: scanf(“%3d%3d”,&a,&b); 輸入: 123456 系統(tǒng)自動(dòng)將123賦給變量a,456賦給變量。說(shuō)明:說(shuō)明:o 如果在%后有一個(gè)“*”附加說(shuō)明符,表示跳過(guò)它指定的列數(shù)。例如: scanf(“%2d %*3d %2d”,&a,&b); 如果輸入如下信息: 12 345 67 系統(tǒng)會(huì)將12賦給整型變量a

33、,%*3d表示讀入3位整數(shù)但不賦給任何變量。然后再讀入2位整數(shù)67賦給整型變量b。說(shuō)明:o 輸入數(shù)據(jù)時(shí)不能規(guī)定精度。例如: scanf(“%7.2f”,&a); 是不合法的,不能企圖用這樣的scanf函數(shù)輸入數(shù)據(jù)1234567 ,而使a的值為12345.67。使用使用scanf函數(shù)時(shí)應(yīng)注意的問(wèn)題函數(shù)時(shí)應(yīng)注意的問(wèn)題 :(1)scanf函數(shù)中的“格式控制”后面應(yīng)當(dāng)是變量地址,而不應(yīng)是變量名。 scanf(“%d,%d”,a,b); 錯(cuò)誤 scanf(“%d,%d”,&a,&b); 正確(2) 如果在“格式控制”字符串中除了格式說(shuō)明以外還有其他字符,則在輸入數(shù)據(jù)時(shí)在對(duì)應(yīng)位置應(yīng)

34、輸入與這些字符相同的字符。 例如:scanf(“%d,%d”,&a,&b);輸入時(shí)應(yīng)用如下形式:3,4 注意:3后面是逗號(hào),它與scanf函數(shù)中的“格式控制”中的逗號(hào)對(duì)應(yīng)。如果輸入時(shí)不用逗號(hào)而用空格或其他字符是不對(duì)的: 3 4 (錯(cuò)誤,用空格分隔數(shù)據(jù),與要求不符) 3:4 (錯(cuò)誤,用冒號(hào)分隔數(shù)據(jù),與要求不符) 如果是:scanf(“%d %d”,&a,&b);由于在兩個(gè)%d之間有2個(gè)空格,因此輸入時(shí)數(shù)據(jù)間也應(yīng)有2個(gè)空格。如果是: scanf(“%d:%d:%d”,&h,&m,&s); 輸入應(yīng)該用以下形式: 12:23:36如果是: sca

35、nf(“a=%d,b=%d,c=%d”,&a,&b,&c); 輸入應(yīng)該用以下形式: a=12,b=23,c=36 (3) 在用“”格式輸入字符時(shí),空格字符和“轉(zhuǎn)義字符”都作為有效字符輸入。例如: scanf(“%c%c%c”,&c1,&c2,&c3); 若輸入: a b c 則將字符a送給c1,空格字符 送給c2,字符b送給c3。 如果想將字符a、b、c分別賦給字符變量c1,c2,c3, 正確的輸入方法是: abc (字符間沒(méi)有空格) (4) 在輸入數(shù)據(jù)時(shí),遇以下情況時(shí)認(rèn)為該數(shù)據(jù)結(jié)束。 遇空格,或按“回車”或“跳格”(Tab)鍵; 按指定的寬度結(jié)束,如“%3d”,只取列; 遇非法輸入。例如:scanf(“%d%c%f”,&a,&b,&c);若輸入123 a 123o.26 a b c由于疏忽將1230.26打成123o.26

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論