![第4章c語言譚浩強版頂級講義PPT學(xué)習(xí)課件.ppt_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/19/69539427-f401-4e22-9b38-6ce980da7806/69539427-f401-4e22-9b38-6ce980da78061.gif)
![第4章c語言譚浩強版頂級講義PPT學(xué)習(xí)課件.ppt_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/19/69539427-f401-4e22-9b38-6ce980da7806/69539427-f401-4e22-9b38-6ce980da78062.gif)
![第4章c語言譚浩強版頂級講義PPT學(xué)習(xí)課件.ppt_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/19/69539427-f401-4e22-9b38-6ce980da7806/69539427-f401-4e22-9b38-6ce980da78063.gif)
![第4章c語言譚浩強版頂級講義PPT學(xué)習(xí)課件.ppt_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/19/69539427-f401-4e22-9b38-6ce980da7806/69539427-f401-4e22-9b38-6ce980da78064.gif)
![第4章c語言譚浩強版頂級講義PPT學(xué)習(xí)課件.ppt_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/19/69539427-f401-4e22-9b38-6ce980da7806/69539427-f401-4e22-9b38-6ce980da78065.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、4.1 C語句概述 4.2 程序的三種基本結(jié)構(gòu) 4.3 賦值語句 4.4 數(shù)據(jù)輸入輸出的概念及在語言中的實現(xiàn) 4.5 字符數(shù)據(jù)的輸入輸出 4.6 格式輸入與輸出 4.7 順序結(jié)構(gòu)程序設(shè)計舉例 習(xí)題,第4章 最簡單的c程序設(shè)計順序程序設(shè)計,在上一章介紹了程序中用到的一些基本要素(常量、變量、運算符、表達式等),它們是構(gòu)成程序的基本成分。在第1章中已經(jīng)介紹了幾個簡單的c程序。本章將介紹為編寫簡單的程序所必需的一些內(nèi)容。,4.1 C語句概述,和其他高級語言一樣,c語言的語句用來向計算機系統(tǒng)發(fā)出操作指令。一個語句經(jīng)編譯后產(chǎn)生若干條機器指令。一個實際的程序應(yīng)當(dāng)包含若干語句。應(yīng)當(dāng)指出,c語句都是用來完成一
2、定操作任務(wù)的。聲明部分的內(nèi)容不應(yīng)稱為語句。如:int a;不是一個c語句,它不產(chǎn)生機器操作,而只是對變量的定義。從第1章已知,一個函數(shù)包含聲明部分和執(zhí)行部分,執(zhí)行部分即由語句組成。c程序結(jié)構(gòu)可以用圖4.1表示。即一個c程序可以由若干個源程序文件(分別進行編譯的文件模塊)組成,一個源文件可以由若干個函數(shù)和預(yù)處理命令以及全局變量聲明部分組成(關(guān)于“全局變量”見第7章,“預(yù)編譯命令”見第8章),一個函數(shù)由數(shù)據(jù)定義部分和執(zhí)行語句組成。,圖4.1,在第2章中已經(jīng)說明,程序應(yīng)該包括數(shù)據(jù)描述(由聲明部分來實現(xiàn))和數(shù)據(jù)操作(由語句來實現(xiàn))。數(shù)據(jù)描述主要定義數(shù)據(jù)結(jié)構(gòu)(用數(shù)據(jù)類型表示)和數(shù)據(jù)初值。數(shù)據(jù)操作的任務(wù)是
3、對已提供的數(shù)據(jù)進行加工。 C語句可以分為以下5類: (1) 控制語句,完成一定的控制功能。c只有9種控制語句,它們是: if()else(條件語句) for() (循環(huán)語句) hile() (循環(huán)語句) dohile() (循環(huán)語句) continue (結(jié)束本次循環(huán)語句), break (中止執(zhí)行switch或循環(huán)語句) sitch (多分支選擇語句) goto (轉(zhuǎn)向語句) return (從函數(shù)返回語句) 上面9種語句中的括號()表示其中是一個條件,表示內(nèi)嵌的語句。例如:“if()else”的具體語句可以寫成: if(xy) z=x;else z=y; (2) 函數(shù)調(diào)用語句。由一次函數(shù)調(diào)
4、用加一個分號構(gòu)成一個語句,例如:printf(this is a c stateent);,(3) 表達式語句。由一個表達式構(gòu)成一個語句,最典型的是,由賦值表達式構(gòu)成一個賦值語句。 a=3 是一個賦值表達式,而 a=3; 是一個賦值語句??梢钥吹揭粋€表達式的最后加一個分號就成了一個語句。一個語句必須在最后出現(xiàn)分號,分號是語句中不可缺少的一部分(而不像pascal語言那樣,分號只是語句間的分隔符號)。例如: i=i+1(是表達式,不是語句) i=i+1;(是語句),任何表達式都可以加上分號而成為語句,例如i+;是一語句,作用是使i值加1。又如x+y;也是一個語句,作用是完成x+y的操作,它是合法
5、的,但是并不把x+y的和賦給另一變量,所以它并無實際意義。 表達式能構(gòu)成語句是c語言的一個重要特色。其實“函數(shù)調(diào)用語句”也是屬于表達式語句,因為函數(shù)調(diào)用(如sin(x)也屬于表達式的一種。只是為了便于理解和使用,我們把“函數(shù)調(diào)用語句”和“表達式語句”分開來說明。由于c程序中大多數(shù)語句是表達式語句(包括函數(shù)調(diào)用語句),所以有人把c語言稱作“表達式語言”。,(4) 空語句。下面是一個空語句: ; 即只有一個分號的語句,它什么也不做。有時用來做被轉(zhuǎn)向點,或循環(huán)語句中的循環(huán)體(循環(huán)體是空語句,表示循環(huán)體什么也不做)。 (5) 可以用 把一些語句括起來成為復(fù)合語句,又稱分程序。如下面是一個復(fù)合語句。 z
6、=x+y; t=z/100; printf(%f,t); ,注意:復(fù)合語句中最后一個語句中最后的分號不能忽略不寫(這是和pascal不同的)。 C語言允許一行寫幾個語句,也允許一個語句拆開寫在幾行上,書寫格式無固定要求(fortran、cobol有嚴(yán)格要求)。 4.2 程序的三種基本結(jié)構(gòu) 為了提高程序設(shè)計的質(zhì)量和效率,現(xiàn)在普遍采用結(jié)構(gòu)化程序設(shè)計方法。結(jié)構(gòu)化程序由若干個基本結(jié)構(gòu)組成。每一個基本結(jié)構(gòu)可以包含 一個或若干個語句。有三種基本結(jié)構(gòu): (1) 順序結(jié)構(gòu),見圖4.2。先執(zhí)行a操作,再執(zhí)行b操作,兩者是順序執(zhí)行的關(guān)系。圖中(b)是ns結(jié)構(gòu)化流程圖(下同)。,圖4.2,圖4.3,(2) 選擇結(jié)構(gòu)
7、,見圖4.3。p代表一個條件,當(dāng)p條件成立(或稱為“真”)時執(zhí)行a,否則執(zhí)行b。注意,只能執(zhí)行a或b之一。兩條路徑匯合在一起然后出口。 (3) 循環(huán)結(jié)構(gòu),有兩種循環(huán)結(jié)構(gòu): 當(dāng)型循環(huán)結(jié)構(gòu),見圖4.4。當(dāng)p條件成立(“真”)時,反復(fù)執(zhí)行a操作。直到p為“假”時才停止循環(huán)。 直到型循環(huán)結(jié)構(gòu),見圖4.5。先執(zhí)行a操作,再判斷p是否為“假”,若p為“假”,再執(zhí)行a,如此反復(fù),直到p為“真”為止。,圖4.4,圖4.5,由選擇結(jié)構(gòu)可以派生出另一種基本結(jié)構(gòu): 多分支選擇結(jié)構(gòu),見圖4.6。 根據(jù)k的值(k1,k2,kn)不同而決定執(zhí)行a1,a2,an之一。 已經(jīng)證明,由以上基本結(jié)構(gòu)組成的程序能處理任何復(fù)雜的問題
8、。上面圖4.2圖4.7中方框中的a,b,a1,an等可以是一個簡單的語句,也可以又是一個基本結(jié)構(gòu)。例如,圖4.7是一個順序結(jié)構(gòu),它由兩個操作順序組成。虛線框內(nèi)是一個當(dāng)型循環(huán)結(jié)構(gòu),可以用“b”表示,因此圖4.7就可以理解為圖4.2(a)所示的順序結(jié)構(gòu)。,圖4.6,圖4.7,關(guān)于三種基本結(jié)構(gòu)的特征以及結(jié)構(gòu)化程序設(shè)計方法,讀者可能已在學(xué)習(xí)其他高級語言程序設(shè)計時學(xué)習(xí)過,在此不再重復(fù)。只是應(yīng)當(dāng)強調(diào)說明,在今后的程序設(shè)計中應(yīng)當(dāng)采用結(jié)構(gòu)化程序設(shè)計方法。在本章中,我們將介紹幾種最基本的語句,以及用它們構(gòu)成順序結(jié)構(gòu)的程序。在第4、第5章介紹選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的程序設(shè)計。,4.3 賦值語句 前已介紹,賦值語句是由
9、賦值表達式加上一個分號構(gòu)成。由于賦值語句應(yīng)用十分普遍,所以專門再討論一下。 C語言的賦值語句具有其他高級語言的賦值語句的一切特點和功能。但也應(yīng)當(dāng)注意到它們的不同: (1) C語言中的賦值號“=”是一個運算符,在其他大多數(shù)語言中賦值號不是運算符。 (2) 關(guān)于賦值表達式與賦值語句的概念,其他多數(shù)高級語言沒有“賦值表達式”一概念。作為賦值表達式可以包括在其他表達式之中,例如: if(a=b)0)t=a;,按語法規(guī)定if后面的()內(nèi)是一個條件,例如可以是:“if(x0)”。現(xiàn)在在x的位置上換上一個賦值表達式“a=b”,其作用是:先進行賦值運算(將b的值賦給a),然后判斷a是否大于0,如大于0,執(zhí)行t
10、=a。在if語句中的“a=b”不是賦值語句而是賦值表達式,這樣寫是合法的。如果寫成if(a=b;)0)t=a;就錯了。在if的條件中不能包含賦值語句。由此可以看到,c把賦值語句和賦值表達式區(qū)別開來,增加了表達式的種類,使表達式的應(yīng)用幾乎“無孔不入”,能實現(xiàn)其他語言中難以實現(xiàn)的功能.,4.4 數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn) (1) 所謂輸入輸出是以計算機主機為主體而言的。從計算機向外部輸出設(shè)備(如顯示屏、打印機、磁盤等)輸出數(shù)據(jù)稱為“輸出” ,從外部向輸入設(shè)備(如鍵盤、磁盤、光盤、掃描儀等)輸入數(shù)據(jù)稱為“輸入”。 (2) C語言本身不提供輸入輸出語句,輸入和輸出操作是由函數(shù)來實現(xiàn)的。在c標(biāo)
11、準(zhǔn)函數(shù)庫中提供了一些輸入輸出函數(shù),例如,printf函數(shù)和scanf函數(shù)。讀者在使用它們時,千萬不要誤認(rèn)為它們是C語言提供的“輸入輸出語句”。printf和scanf不是C語言的關(guān)鍵字,而只是函數(shù)的名字。實際上完全可以不用printf和scanf這兩個名字,而另外編兩個,輸入輸出函數(shù), 用其他的函數(shù)名。C提供的函數(shù)以庫的形式存放在系統(tǒng)中,它們不是c語言文本中的組成部分。 在第1章中曾介紹,不把輸入輸出作為C語言提供的語句的目的是使C語言編譯系統(tǒng)簡單,因為將語句翻譯成二進制的指令是在編譯階段完成的,沒有輸入輸出語句就可以避免在編譯階段處理與硬件有關(guān)的問題,可以使編譯系統(tǒng)簡化,而且通用性強,可移植
12、性好,對各種型號的計算機都適用,便于在各種計算機上實現(xiàn)。各種版本的C語言函數(shù)庫是各計算機廠商(或軟件開發(fā)公司)針對某一類型計算機的情況編寫的,并且已編譯成目標(biāo)文件(.obj文件)。它們在連接階段與由源程序經(jīng)編譯而得到的目標(biāo)文件相連接,生成一個可執(zhí)行的目標(biāo)程序。如果在源程序中有printf函,數(shù),在編譯時并不把它翻譯成目標(biāo)指令,而是在執(zhí)行階段中調(diào)用已被連接的函數(shù)庫中的printf函數(shù)。由于c編譯系統(tǒng)與c函數(shù)庫是分別進行設(shè)計的,因此不同的計算機系統(tǒng)所提供函數(shù)的數(shù)量、名字和功能是不完全相同的。不過,有些通用的函數(shù)(如printf和scanf等),各種計算機系統(tǒng)都提供,成為各種計算機系統(tǒng)的標(biāo)準(zhǔn)函數(shù)。c
13、語言函數(shù)庫中有一批“標(biāo)準(zhǔn)輸入輸出函數(shù)” ,它是以標(biāo)準(zhǔn)的輸入輸出設(shè)備(一般為終端設(shè)備)為輸入輸出對象的。其中有:putchar(輸出字符),getchar(輸入字符),printf(格式輸出),scanf(格式輸入), puts(輸出字符串),gets(輸入字符串)。在本章中介紹前面4個最基本的輸入輸出函數(shù)。,(3) 在使用c語言庫函數(shù)時,要用預(yù)編譯命令“include”將有關(guān)的“頭文件” 包括到用戶源文件中。在頭文件中包含了與用到的函數(shù)有關(guān)的信息。例如使用標(biāo)準(zhǔn)輸入輸出庫函數(shù)時,要用到“stdio.h”文件。文件后綴“h” 是head的縮寫,#include命令都是放在程序的開頭,因此這類文件被
14、稱為“頭文件” 。在調(diào)用標(biāo)準(zhǔn)輸入輸出庫函數(shù)時,文件開頭應(yīng)有以下預(yù)編譯命令: #include 或 #include studio.h studioh是standard input putchar(n);putchar(b);putchar(n);putchar(c); putchar(n); 則輸出結(jié)果為: b o y 也可以輸出其他轉(zhuǎn)義字符,如: putchar(101)(輸出字符a) putchar() (輸出單引號字符) putchar(015) (輸出回車,不換行,使輸出的當(dāng)前位置移到本行開頭),4.5.2 getchar函數(shù)(字符輸入函數(shù)) 此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入
15、設(shè)備)輸入一個字符。getchar函數(shù)沒有參數(shù),其一般形式為getchar() 函數(shù)的值就是從輸入設(shè)備得到的字符。例如: 例4.2輸入單個字符 #include main() charc; c=getchar(); putchar(c); ,在運行時,如果從鍵盤輸入字符a并按回車鍵,就會在屏幕上看到輸出的字符a。a(輸入a后,按“回車”鍵,字符才送到內(nèi)存) a (輸出變量c的值a) 請注意,getchar()只能接收一個字符。getchar函數(shù)得到的字符可以賦給一個字符變量或整型變量,也可以不賦給任何變量,作為表達式的一部分。例如,例4.2第4、5行可以用下面一行代替: putchar(get
16、char(); 因為getchar()的值為a,因此putchar函數(shù)輸出a。也可以用printf函數(shù)輸出: printf(”%c,getchar();請不要忘記,如果在一個函數(shù)中(今為main函數(shù))要調(diào)用getchar函數(shù),應(yīng)該在該函數(shù)的前面(或本文件開頭)加上“包含命令” #include,4.6.1 printf函數(shù)(格式輸出函數(shù)) 在前面各章節(jié)中已用到printf函數(shù),它的作用是向終端(或系統(tǒng)隱含指定的輸出設(shè)備)輸出若干個任意類型的數(shù)據(jù)(putchar只能輸出字符,而且只能是一個字符,而printf可以輸出多個數(shù)據(jù),且為任意類型)。 1. printf函數(shù)的一般格式為printf(格式
17、控制,輸出表列) 如:printf(%d, %cn,i,c) 括弧內(nèi)包括兩部分:,4.6 格式輸入與輸出,(1) “格式控制”是用雙引號括起來的字符串,也稱“轉(zhuǎn)換控制字符串”,它包括兩種信息: 格式說明,由“%”和格式字符組成,如%d,%f等。它的作用是將輸出的數(shù)據(jù)轉(zhuǎn)換為指定的格式輸出。格式說明總是由“%”字符開始的。 普通字符,即需要原樣輸出的字符。例如上面printf函數(shù)中雙引號內(nèi)的逗號、空格和換行符。 (2) “輸出表列”是需要輸出的一些數(shù)據(jù),可以是表達式。 2. 格式字符 對不同類型的數(shù)據(jù)用不同的格式字符。常用的有以下幾種格式字符:,(1) d格式符。用來輸出十進制整數(shù)。有以下幾種用法
18、: %d,按整型數(shù)據(jù)的實際長度輸出。 %md, m為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)小于m,則左端補以空格,若大于,則按實際位數(shù)輸出。如 printf(%4d,%4d,a,b); 若a=123,b=12345,則輸出結(jié)果為 123,12345 %ld,輸出長整型數(shù)據(jù)。如 longa=135790; printf(%ld,a);,如果用%d輸出,就會發(fā)生錯誤,因為整型數(shù)據(jù)的范圍為-3276832767。對long型數(shù)據(jù)應(yīng)當(dāng)用%ld格式輸出。對長整型數(shù)據(jù)也可以指定字段寬度,如將上面printf函數(shù)中的“%ld”改為“%8ld”,則輸出為: 135790 8列 一個int型數(shù)據(jù)可以用%d或%ld
19、格式輸出。 (2) o格式符,以八進制數(shù)形式輸出整數(shù)。由于是將內(nèi)存單元中的各位的值(0或1)按八進制形式輸出,因此輸出的數(shù)值不帶符號,即將符號位也一起作為八進制數(shù)的一部分輸出。例如: int a=-1; printf(%d,%o,a,a); -1在內(nèi)存單元中的存放形式(以補碼形式存放)如下:,1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 輸出為 -1,177777 不會輸出帶負(fù)號的八進制整數(shù)。對長整數(shù)(long型)可以用“%lo”格式輸出。同樣可以指定字段寬度,如printf(“%8o”,a)輸出為177777。 (3) x格式符,以十六進制數(shù)形式輸出整數(shù)。同樣不會出現(xiàn)負(fù)的十
20、六進制數(shù)。例如: int a=-1; printf(%x,%o,%d,a,a,a);,輸出結(jié)果為 ffff,177777,-1 同樣可以用“%lx”輸出長整型數(shù),也可以指定輸出字段的寬度,如“%12x”。 (4) u格式符,用來輸出unsigned型數(shù)據(jù),即無符號數(shù),以十進制形式輸出。 一個有符號整數(shù)(int型)也可以用%u格式輸出;反之,一個unsigned型數(shù)據(jù)也可以用%d格式輸出。按相互賦值的規(guī)則處理(見第2章2.9節(jié))。unsigned型數(shù)據(jù)也可用%o或%x格式輸出。 例4.3無符號數(shù)據(jù)的輸出。,main() unsigned int a=65535; int b=-2; printf
21、(a=%d,%o,%x,%un,a,a,a,a); printf(b=%d,%o,%x,%un,b,b,b,b); 運行結(jié)果為: a=-1,177777,ffff,65535 b=-2,177776,fffe,65534 請讀者自己分析。,(5) c格式符,用來輸出一個字符。如: charc=a; printf(%c,c); 輸出字符a,請注意:“%c”中的c是格式符,逗號右邊的c是變量名,不要搞混。 一個整數(shù),只要它的值在0255范圍內(nèi),也可以用字符形式輸出,在輸出前,系統(tǒng)會將該整數(shù)作為ascii碼轉(zhuǎn)換成相應(yīng)的字符;反之,一個字符數(shù)據(jù)也可以用整數(shù)形式輸出。例4.4字符數(shù)據(jù)的輸出。 main(
22、) char c=a; int i=97;,printf(%c,%dn,c,c); printf(%c,%dn,i,i); 運行結(jié)果為: a,97 a,97 也可以指定輸出字?jǐn)?shù)寬度,如果有 printf(%3c,c) 則輸出:“ a”,即c變量輸出占3列,前2列補空格。 (6) s格式符,用來輸出一個字符串。有幾種用法:,%s,例如:printf(%s,china) 輸出“china”字符串(不包括雙引號)。 %ms,輸出的字符串占列,如字符串本身長度大于m,則突破的限制,將字符串全部輸出。若串長小于m,則左補空格。 %-ms,如果串長小于,則在列范圍內(nèi),字符串向左靠,右補空格。 %mns,輸
23、出占列,但只取字符串中左端n個字符。這n個字符輸出在列的右側(cè),左補空格。 %-mns,其中、n含義同上,n個字符輸出在列范圍的左側(cè),右補空格。如果n,則自動取n值,即保證n個字符正常輸出。,例4.5字符串的輸出。 main() printf(%3s,%7.2s,%.4s,%-5.3sn,china,china, china, china) 輸出如下: china, ch,chin,chi 其中第3個輸出項,格式說明為“%.4s”,即只指定了n,沒指定,自動使=n=4,故占4列。,(7) f格式符,用來輸出實數(shù)(包括單、雙精度),以小數(shù)形式輸出。有以下幾種用法: %f,不指定字段寬度,由系統(tǒng)自動
24、指定,使整數(shù)部分全部如數(shù)輸出,并輸出6位小數(shù)。應(yīng)當(dāng)注意,并非全部數(shù)字都是有效數(shù)字。單精度實數(shù)的有效位數(shù)一般為7位。 例4.6輸出實數(shù)時的有效位數(shù)。 main() float x,y; x=111111111;y=222222222; printf(%f,x+y); ,運行結(jié)果為 333333328125 顯然,只有前7位數(shù)字是有效數(shù)字。千萬不要以為凡是打印出來的數(shù)字都是準(zhǔn)確的。 雙精度數(shù)也可用%f格式輸出,它的有效位數(shù)一般為16位,給出小數(shù)6位。 例4.7輸出雙精度數(shù)時的有效位數(shù)。 main() double x,y; x=1111111111111.111111111; y=22222222
25、22222.222222222; printf(%f,x+y); ,輸出結(jié)果為 3333333333333.333010 可以看到最后3位小數(shù)(超過16位)是無意義的。 %nf指定輸出的數(shù)據(jù)共占列,其中有n位小數(shù)。如果數(shù)值長度小于,則左端補空格。 %-nf與%nf基本相同,只是使輸出的數(shù)值向左端靠,右端補空格。 例4.8輸出實數(shù)時指定小數(shù)位數(shù)。 main() float f=123.456;,printf(%f %10f %10.2f %.2f %-10.2fn,f,f,f,f,f); 輸出結(jié)果如下: 123.456001 123.456001 123.46 123.46 123.46 f的值
26、應(yīng)為123.456,但輸出為123.455994, 這是由于實數(shù)在內(nèi)存中的存儲誤差引起的。 (8) e格式符,以指數(shù)形式輸出實數(shù)。可用以下形式: %e不指定輸出數(shù)據(jù)所占的寬度和數(shù)字部分的小數(shù)位數(shù),有的c編譯系統(tǒng)自動指定給出6位小數(shù),指數(shù)部分占5位(如e+002),其中“e”占1位,指數(shù)符號,占1位,指數(shù)占3位。數(shù)值按規(guī)范化指數(shù)形式輸出(即小數(shù)點前必須有而且只有1位非零數(shù)字)。例如 printf(%e,123456); 輸出:1234560e+002。 6列 5列 輸出的實數(shù)共占13列寬度。(注: 不同系統(tǒng)的規(guī)定略有不同) %m.ne和%-m.ne。、n和“-”字符含義與前相同。此處n指擬輸出的
27、數(shù)據(jù)的小數(shù)部分(又稱尾數(shù))的小數(shù)位數(shù)。若f=123456,則: 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 1.23e+002 13列 13列 10列 9列 10列 第2個輸出項按%10e輸出,即只指定了=10,未指定n,凡未指定n,自動使n=6,整個數(shù)據(jù)長13列,超過給定的10列,乃突破10列的限制,按實際長度輸出。第3個數(shù)據(jù)共占10列,小數(shù)部分占2列。第4個數(shù)據(jù)按“%2e”格式輸出,只指定n=2,未指定,自動使等于數(shù)據(jù)應(yīng)占的長度,今為
28、9列。第5個數(shù)據(jù)應(yīng)占10列,數(shù)值只有9列,由于是“%-102e”,數(shù)值向左靠,右補一個空格。(注: 有的c系統(tǒng)的輸出格式與此略有不同),(9) g格式符,用來輸出實數(shù),它根據(jù)數(shù)值的大小,自動選f格式或e格式(選擇輸出時占寬度較小的一種),且不輸出無意義的零。例如,若f=123468,則printf(“%f %e %g”,f,f,f); 輸出如下: 123.468000 1.234680e+002 123.468 10列 13列 10列 用%f格式輸出占10列,用%e格式輸出占13列,用%g格式時,自動從上面兩種格式中選擇短者(今以%f格式為短),故占10列,且按%f格式用小數(shù)形式輸出,最后3個
29、小數(shù)位“0”為無意義的0,不輸出,因此輸出123.468,然后右補3個空格。%g格式用得較少。,在使用printf函數(shù)時,還有幾點要說明: (1) 除了x,e,g外,其他格式字符必須用小寫字母,如%d不能寫成%d。 (2) 可以在printf函數(shù)中的“格式控制”字符串內(nèi)包含第2章2.5節(jié)2.5.1段中的“轉(zhuǎn)義字符”,如“n”、“t”、“b”、“r”、“f”、“377”等。 (3) 上面介紹的d、o、x、u、c、s、f、e、g等字符,如用在“%”后面就作為格式符號。一個格式說明以“%”開頭,以上述9個格式字符之一為結(jié)束,中間可以插入附加格式字符(也稱修飾符)。例如:,第一個格式說明為“%c”而不
30、包括其后的f,第二個格式說明為“%f”,不包括其后的s,第三個格式說明為%s。其他的字符為原樣輸出的普通字符。 (4) 如果想輸出字符“%”,則應(yīng)該在“格式控制”字符串中用連續(xù)兩個%表示,如:,printf(%f%,10/3); 輸出: 0333333% 4.6.2 scanf函數(shù)(格式輸入函數(shù)) 在第1章中已初步接觸到了scanf函數(shù),在本節(jié)中再作詳細(xì)介紹。 1. 一般形式 scanf(格式控制,地址表列) “格式控制”的含義同printf函數(shù);“地址表列”是由若干個地址組成的表列,可以是變量的地址,或字符串的首地址。,例4.9用scanf函數(shù)輸入數(shù)據(jù)。 ain() int a,b,c; scanf(“%d%d%d”, 運行情況如下: a=1,b=3,c=2 x1=-100 x2=-200 注意程序中用了預(yù)處理命令include 。,4.8習(xí)題 4
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技驅(qū)動的崇明產(chǎn)業(yè)升級與轉(zhuǎn)型
- 科技領(lǐng)域科研誠信的實踐與挑戰(zhàn)
- 職場演講中如何保持聽眾的注意力
- 短視頻在社交媒體中的創(chuàng)新思維運用
- 2025年湖北國土資源職業(yè)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 綜合評價體系在學(xué)術(shù)研究中的價值體現(xiàn)報告
- 2025年超級VCD項目可行性研究報告
- 2025年自動快速鍋爐項目可行性研究報告
- 2025年紅木餐桌椅項目可行性研究報告
- 2025年無感電容項目可行性研究報告
- 美容美發(fā)場所衛(wèi)生規(guī)范
- 《隧道工程》(第二版)課件 第1、2章 緒論、隧道工程勘測
- 設(shè)計師績效考核
- 西方政治思想史(全)
- 寒假計劃表作息時間安排表
- 四年級上冊簡便計算專項練習(xí)(已排版可直接下載打?。?/a>
- 高考日語基礎(chǔ)歸納總結(jié)與練習(xí)(一輪復(fù)習(xí))
- 煤場用車輛倒運煤的方案
- 《預(yù)防犯罪》課件
- 【企業(yè)作業(yè)成本在上海汽車集團中的應(yīng)用研究案例7300字(論文)】
- 《民航服務(wù)溝通技巧》教案第6課巧妙化解沖突
評論
0/150
提交評論