C語言講義第02章-變量與表達式_第1頁
C語言講義第02章-變量與表達式_第2頁
C語言講義第02章-變量與表達式_第3頁
C語言講義第02章-變量與表達式_第4頁
C語言講義第02章-變量與表達式_第5頁
已閱讀5頁,還剩52頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第二章變量與表達式第二章變量與表達式C語言程序設計關鍵內容關鍵內容簡單表達式 變量 信息類型 賦值語句 復雜表達式 根基輸入輸出函數小結 2.1 簡單表達式簡單表達式所謂簡單表達式便是指由算術運算符毗鄰操縱數組成的算術表達式 2.1.1 算術運算符及其表達式在C語言中有以下算術運算符: 算術運算符操縱聯合性+、-取正負右聯合性*乘號左聯合除號左聯合%取余左聯合+加號左聯合-減號左聯合2.1 簡單表達式簡單表達式 2.1.2 C語言表達式書寫法那么 對數學上的表達式和C語言程序中的表達式做了一個對比:數學表達式合法的C語言表達式x * ( - y )x * y ( m * n )sqrt ( f

2、abs ( 5 * x + y ) ) 19(-b + sqrt ( b * b 4 * a * c ) ) ( 2 * a ) aacbb242)(yxmnxy19|5| yxC語言表達式的書寫要遵循必然的法那么,法那么似下: 乘號用*示意,不能省略; 表達式從左到右在同一基準上書寫,無高低、大小之分,都寫在同一行上; 括號必須成對表現,且都用圓括號. 2.2 變量變量2.2.1 變量變量便是指在程序的履行環節中其值能夠改變的量.變量具有三要素:標題、類型和值 變量的命名 C語言規定:標識符只能由字母、數字和下劃線三種字符構成,同時且第一個字符必須是字符和下劃線,不能使用C語言中的關鍵字 C

3、語言大小寫敏感一樣地,變量名使用小寫字母示意,而大寫字母常用來示意符號常量或自定義的類型名.在挑選變量名和其他標識符時,應完量注重做到“見名知意” 2.2 變量變量變量的定義變量定義的作用是:為變量指定一個標題及其信息類型,讓系統給它安排相應的存儲空間.確定相應變量的存儲方式、數值范疇和有效位數. 確定相應變量所許可履行的操縱. 變量定義的一樣標準為:信息類型變量名表;其中:變量名表能夠見諒如果干個變量,兩者之間用逗號分隔,似int ix, iy; 信息類型:能夠是C語言中的根基信息類型,也能夠是用戶自定義的信息類型 2.2 變量變量變量賦值與初始化 定義變量的同時對變量履行了初始化(賦初值)

4、 似果在定義時沒有為變量賦初始值,使用已定義的變量前,要對它履行初始化 2.2.2 常量和符號常量在程序設計語言中,往往在程序運行環節中其值不變的量,都稱為常量.整型常量即整型常數,在C語言中整型常量有十進制、八進制和十六進制三種形式.十進制整型常量.不能以0開頭,由正、負號和09數字組成的常數.八進制整型常量.以0開頭,由07數字組成的常數. 十六進制整型常量.以0 x或0X開頭,由09數字和字母af(或AF)組成的常數. 2.2 變量變量實型常量:又稱為浮點數,只能用十進制來示意,有兩種示意形式:小數形式和指數形式.小數形式:它由正負號、數字和小數點組成的常數(必須有小數點,它前面的零能夠

5、缺省).指數形式(科學計數法):它由數符、尾數(整數或小數)、階碼標記(E或e)、階符和整數階碼組成的常數.注重E或e前面必須有數字,且E背面的指數必須是整數. 2.2 變量變量 字符常量 在C語言中,字符常量是便用單引號括起來的一個字符,其值為ASCII碼值. 在內存中,字符信息是以與其相對應的ASCII碼(即以整數示意)來存儲的,占用一個字節.所以C語言中字符信息和整型信息之間能夠通用 0和0是截然差別的兩個信息,前者是字符常量,后者那么是整型常數. 2.2 變量變量除了使用一樣字符常量外,C語言還許可用一種特別形式的字符常量轉義字符常量,即一個以“”開頭的特定字符序列,用來示意ASCII

6、字符分散操縱代碼及某些用于功能定義的字符.常用的轉義字符似表所示 字符形式含義ASCII碼值0NULL 或0值0a響鈴7b退格鍵(backspace鍵)8 f走紙換頁,將當前位置移到下頁開頭12n回車換行,將當前位置移到下一行開頭10r回車(不換行),將當前位置移到本行開頭13t水平制表(跳到下一個Tab位置)9v垂直制表11反歪杠字符“”92單引號字符39”雙引號字符34?咨詢號63ddd13位8進制數所代表的字符0dddxhh12位16進制數所代表的字符0 xhh2.2 變量變量例2.1轉義字符的使用 字符串常量字符串常量是由雙引號括起來的一串字符序列 字符串常量與字符常量是差別的,字符串

7、常量中的字符序列接連存放,同時在末了加上0字符做為字符串的結束標記 字符常量是用單引號括起來的一個字符 符號常量在程序中常常用到某些常量,為方便閱讀程序,懂得常量的含義,一樣便把常量定義為符號常量.在C語言中符號常量定義的一樣形式為:#define 符號常量名常量表達式 例2.2符號常量的應用,輸出圓的面積2.3 信息類型信息類型 依照信息的取值范疇、運算屬性及存儲方式等,C語言將信息分成差別的信息類型. C語言提供了富厚的信息類型,可分為根基類型、組織類型、指針類型和空類型,似圖2-2所示 信息類型確定了信息在內存中所占用的空間大小,也確定了它所示意的信息范疇 2.3 信息類型信息類型 2.

8、3.1 整型信息 整型信息分為根基整型(int)、短整型(short)和長整型(long)三種類型,其中每一種類型又分為有符號(signed)和無符號(unsigned)兩種類型.差別的整型信息占用的內存空間差別 表列出了TC2.0系統中整型信息的長度、類型標識符和數值范疇 類型標識符長度取值范疇整型signed int16位(2字節)-3276832767 即-215(215-1)短整型signed short int16位(2字節)-3276832767 即-215(215-1)長整型signed long int32位(4字節)-21474836482147483647即-231(231

9、-1)無符號整型unsigned int16位(2字節)065535 即0(216-1)無符號短整型unsigned short int16位(2字節)065535 即0(216-1)無符號長整型unsigned long int32位(4字節)04294967295 即0(232-1)原碼 1111 . 1001 100 000 0001 01 1真值 2n (2n-1) -1 -0 +0 +1 2n-1 補碼 100 1001 1111 000 0001 011 2.3 信息類型信息類型整型變量的定義和應用整型變量的定義和應用C語言規定程序中用到的全部變量必須先定義才能使用語言規定程序中用

10、到的全部變量必須先定義才能使用,即即“強制類型定義強制類型定義”.變量的定義變量的定義,一樣寫在一個函數的開頭的表明位置一樣寫在一個函數的開頭的表明位置例例2.3整型信息的運用整型信息的運用 整型信息的溢出整型信息的溢出例例 2.4整型信息的溢出整型信息的溢出整型常量的類型整型常量的類型 一個整型常量一個整型常量,似果其值在似果其值在-3276832767之間之間,那么信任它是那么信任它是int型型,能夠賦值能夠賦值給給int型、型、short int 型和型和long int型變量型變量.似果超出了那個范疇似果超出了那個范疇,那么信任它是那么信任它是long int型型,能夠將它賦值給一個能

11、夠將它賦值給一個long int型變量型變量.在一個整型常量背面加上后綴在一個整型常量背面加上后綴L或或l示意該常量為長整型示意該常量為長整型(long)常量)常量,似似123l,012L,0 x4FL. 在一個整型常量背面加上后綴在一個整型常量背面加上后綴U或或u示意無符號整型(示意無符號整型(unsigned)常量)常量.2.3 信息類型信息類型 2.3.2 實型信息 實型信息即浮點型信息,C的實型信息有單精度(float)型、雙精度(double)型和長雙精度(long double)型三種類型. 因為差別的實型信息在內存中所占的存儲單元差別,所以所提供的有效位數也差別,似表所示. 類型

12、標識符信息長度取值范疇有效數字單精度實型float32位(4字節)-3.410-383.4103867雙精度實型double64位(8字節)-1.710-3081.7103081516長雙精度實型long double128位(18字節)-1.210-49321.210493218192.3 信息類型信息類型例 2.5 實型信息的精度誤差.2.3.3 字符型信息字符型信息類型標識符是用char示意,在內存中占一個字節(8位).在內存中字符型信息是以所存字符的相應ASCII碼存儲.字符ASCII碼值為0255 字符信息的存儲形式與整型信息的存儲形式類似,所以,字符型信息和整型信息之間能夠通用,但

13、是字符型信息只占一個字節(8位),所以字符信息只能存放0255范疇內的整數.一個字符型信息既能夠以字符形式輸出,也能夠以整數形式輸出.以字符形式輸出時,先將存儲單元中的ASCII碼值變形成相應字符,接著再輸出.以整數形式輸出時,直截了當將ASCII碼做為整數輸出.字符型信息還可履行算術運算,相當于它們的ASCII碼值介入運算. 例 2.6字符變量作算術運算 2.3 信息類型信息類型2.3.4 類型變形在C語言中,差別類型的信息之間能夠履行混合運算 C語言中有兩種類型變形方式:自動類型變形和強制類型變形.自動類型變形自動類型變形是指在差別類型的信息履行混合運算時,系統會自動履行信息類型的變形.但

14、要遵循必然的法那么,似圖所示.2.3 信息類型信息類型講明:橫向箭頭示意必作的變形,即往往介入運算的char型和short型信息一律自動變形成int型,float型信息一律自動變形成double型,變形后似果兩個操縱數類型一樣,作算術運算,運算結論與變形后的類型一樣.一樣類型(除char、short和float型外)操縱數作算術運算的結論為同一類型.差別類型的信息或通過(1)變形后類型仍不一樣,那么依照圖中縱向的箭頭履行變形,介入運算中的低級不類型直截了當變形為介入運算中的高級不的信息類型.即似果一個int型信息和一個double型信息履行運算,int型信息那么直截了當變形為double型信息

15、,而不通過中間的變形.2.3 信息類型信息類型2.強制類型變形強制類型變形自動類型變形是由編譯系統自動履行的自動類型變形是由編譯系統自動履行的.除此之外除此之外,C語言語言還提供了在程序中履行強制類型變形的方式還提供了在程序中履行強制類型變形的方式,即在運算即在運算環節中將表達式依照需要變形成另一個信息類型環節中將表達式依照需要變形成另一個信息類型.一樣一樣形式為形式為:(信息類型信息類型) 表達式表達式例似例似:( int ) x % 2當操縱數為表達式時當操縱數為表達式時,那么表達式應用括號括起來那么表達式應用括號括起來.例似例似:int ix = 7, iy = 2;似果將似果將ix i

16、y的值變形為的值變形為double型型,應寫為應寫為:( double ) ( ix iy ),那么先統計那么先統計ix iy的值的值,再將此值變形為再將此值變形為double型型,結論為結論為3;似果寫為;似果寫為:(double) ix iy,那么是先將那么是先將ix變形變形成成double型型,接著再履行除法運算接著再履行除法運算,其結論為其結論為3.5. 2.4 賦值語句賦值語句1.賦值運算符:根基賦值運算符為“=”,其作用是先統計右側表達式的值,再將統計結論賦給左側的變量 賦值表達式賦值表達式是指用賦值運算符將變量和表達式毗鄰起來的式子.一樣形式為:變量名 = 表達式講明:賦值運算符

17、“=”是將右側表達式的值賦給左側的變量,賦值運算符左側必須是變量,右側是表達式 賦值運算符“=”左右兩側的信息類型應一致.似果表達式的類型與左側變量的類型不一致時,那么先把右側表達式的值變形為與左側變量一樣的信息類型,接著再賦值 賦值表達式自已也是表達式,能夠做為右側的表達式表現 2.4 賦值語句賦值語句3. 賦值語句賦值表達式的背面加分號便是賦值語句,賦值語句履行賦值操縱,一樣形式為:變量名 = 表達式; 4. 復合賦值運算符根基賦值運算符與算術運算符或位運算符組合在共同構成復合賦值運算符,似:+=、-=、=、*=、%=(復合算術運算符)=、&=、=、|= 例 2.7 賦值運算的使用

18、2.4 賦值語句賦值語句 5. 類型變形 似果賦值運算符兩側的類型不一致,但根基上數值型或字符型時,在賦值時要履行類型變形. 將實型信息賦值給整型變量時,舍舍小數部分.似:int i; i=3.12; i的值為3. 將整型信息賦給單、雙精度變量時,數值不變,但以浮點數形式存儲到變量中.似:float f; f=23; 23.00000存儲到f中. 將一個 double型信息賦給float變量中,截取前面7位有效數字,放到float變量的存儲單元中. 將一個float型信息賦給double型變量時,數值不變,有效位擴展到16位,在內存中以64位存儲.2.4 賦值語句賦值語句 5. 類型變形 字符

19、型信息賦給整型變量時,將字符信息(8位)放到整型變量低8位 如果為unsigned char,那么高8位補0. 如果為有符號 char ,字符的最高位為0,那么高8位補0,字符的最高位為1,那么高8位補1.(符號擴展)111111101111111111111110111111100000000011111110C=376C=376C=376C=3762.4 賦值語句賦值語句5. 類型變形將一個int、short、long型信息賦給一個char型變量時,只將其低8位送到char型變量(即截斷),似:int i=300;char c;c=i;001011000000000100101100i=3

20、00i=300c c2.4 賦值語句賦值語句 5. 類型變形 將unsigned int型信息賦給long int型變量時,不存在符號擴展咨詢題,只需將高位補0即可. 將unsigned int型信息賦給int型變量時,將其內容直截了當送到int 型變量中,但似信息范疇超過32767,那么會表現信息錯誤.1111111111111111unsigned int i=65535unsigned int i=655351111111111111111按按intint型輸出型輸出, ,結論為結論為 -1 -12.5 復雜表達式復雜表達式2.5.1 自增、自減運算符自增、自減運算符自增、自減運算符為自

21、增、自減運算符為 + 和和 - ,其作用是使變量的值增其作用是使變量的值增1或減或減1,聯聯合方向是自右到左合方向是自右到左.它們的運算對象只能是變量它們的運算對象只能是變量,不能是常量或表達式不能是常量或表達式.自增、自減運算符使用的標準有兩種自增、自減運算符使用的標準有兩種:前綴標準前綴標準:運算符運算符 變量變量 (似對變量(似對變量i,+ i或或- i)后綴標準后綴標準:變量變量 運算符運算符 (似對變量似對變量i,i +或或 i - )差別之處在于前者是先履行變量加差別之處在于前者是先履行變量加1(或減(或減1)后)后,再使用變量的再使用變量的值;而后者是先使用變量的值后值;而后者是

22、先使用變量的值后,再對變量加再對變量加1(或減(或減1).對變量對變量i,i + 和和 + i均示意均示意“i = i + 1”,兩種標準在使用上沒有任何兩種標準在使用上沒有任何區不區不,i -和和- i也是一樣也是一樣.但是但是,當自增、自減運算符介入運算時當自增、自減運算符介入運算時,兩兩種標準對表達式產生的結論作用是不一樣的種標準對表達式產生的結論作用是不一樣的.例例2.8 自增、自減運算符的應用自增、自減運算符的應用 例例2.9對比下面程序的運行結論對比下面程序的運行結論 2.5 復雜表達式復雜表達式2.5.2 關系運算符與關系表達式1.關系運算符關系運算符主假如對比兩個操縱數的大小,

23、現實上是對比運算.C語言提供了6個關系運算符:(大于)、=(大于或等于)、=、=、=)的優先級一樣,后兩種(= =、!=)一樣.前4種運算符的優先級高于后2種運算符.關系運算符的優先級低于算術運算符,但高于賦值運算符.它們的關系似圖所示 2.5 復雜表達式復雜表達式2.關系表達式關系表達式用關系運算符將兩個表達式毗鄰起來的式子用關系運算符將兩個表達式毗鄰起來的式子,便稱為關便稱為關系表達式系表達式.其一樣標準為其一樣標準為:表達式表達式 關系運算符關系運算符 表達式表達式其中其中:關系運算符兩側的表達式能夠是算術表達式、關系表關系運算符兩側的表達式能夠是算術表達式、關系表達式、邏輯表達式、賦值

24、表達式或字符表達式等達式、邏輯表達式、賦值表達式或字符表達式等.關系表達式的值是一個邏輯值關系表達式的值是一個邏輯值,即即“真真”或或“假假”.當關系表當關系表達式成站時達式成站時,其值為其值為“真真”;當關系表達式不成站時;當關系表達式不成站時,其值其值為為“假假”.C語言規定語言規定:用用1示意示意“真真”,用用0示意示意“假假“.所以所以,關關系表達式的運算結論為系表達式的運算結論為1或或0.字符型信息也能夠對比大小字符型信息也能夠對比大小,是依照是依照ASCII碼值的大小碼值的大小履行對比的履行對比的. 例例 2.10 關系表達式的運算關系表達式的運算 2.5 復雜表達式復雜表達式2.

25、5.3 邏輯運算符與邏輯表達式1.邏輯運算符邏輯運算符示意操縱數之間的邏輯關系,C語言提供了三種邏輯運算符:!(邏輯非)、&(邏輯與)、|(邏輯或)邏輯運算符的優先級為:!(非) &(與) |(或)邏輯運算符中的“&”和“|”低于關系運算符,“!”高于算術運算符.各種運算符之間的優先級似圖所示.2.5 復雜表達式復雜表達式2.2.邏輯表達式邏輯表達式用邏輯運算符將關系表達式或邏輯量毗鄰起來用邏輯運算符將關系表達式或邏輯量毗鄰起來的式子便是邏輯表達式的式子便是邏輯表達式. .用來示意復雜的運用來示意復雜的運算前提算前提. . 邏輯與運算(邏輯與運算(&): :僅當

26、兩個操縱數的值都為僅當兩個操縱數的值都為真(非真(非0 0)時)時, ,邏輯結論才為真(值為邏輯結論才為真(值為1 1), ,否那么為假(值為否那么為假(值為0 0)邏輯或運算(邏輯或運算(|): :兩個操縱數只要有一個為兩個操縱數只要有一個為真(非真(非0 0)時)時, ,其結論便為真(其結論便為真(1 1), ,否那么否那么為假(為假(0 0). .邏輯非運算(邏輯非運算(! !): :單目運算符單目運算符, ,似果操縱數的似果操縱數的值為真(非值為真(非0 0), ,其結論為假(其結論為假(0 0), ,否那么否那么為真(為真(1 1). .例例 2.11 2.11 邏輯表達式的運算邏輯

27、表達式的運算2.5 復雜表達式復雜表達式2.5.4 逗號運算符C語言提供了一種特別運算符即逗號運算符“,”,它的功能是將兩個或兩個以上的表達式毗鄰起來,從左到右求解各個表達式,末了一個表達式的值為整個逗號表達式的值.逗號表達式的一樣形式為:表達式1,表達式2,表達式n逗號表達式的統計環節:先統計表達式1,再統計表達式2末了統計表達式n,逗號表達式的值為表達式n的值.逗號運算符的優先級不是最低的,引入逗號表達式的意圖是為了簡化程序書寫,在C語言中常用逗號表達式代替幾條語句或給某個變量賦值.例 2.12逗號表達式的應用2.6 根基輸入輸出函數根基輸入輸出函數在C語言中沒有提供輸入、輸出語句.信息的

28、輸入、輸出操縱根基上通過調用庫函數實現的,編程者只要調用符合的系統庫函數,便能夠完成各種信息的輸入、輸出.它們的原型都在特定的stdio.h頭文件中,所以,需要通過預操作號令將頭文件stdio.h見諒到用戶的源文件中,即:# incldue 或 # include “stdio.h”2.6 根基輸入輸出函數根基輸入輸出函數2.6.1 字符輸入與輸出函數字符輸出函數putchar()標準: putchar( c )功能:向規格輸出設備(往往是表現器)輸出一個字符.返回值:正常時返回輸出字符的ASCII碼值;犯錯那么返回-1.講明:c能夠是一個字符常量(包羅轉義字符)、變量或表達式,還能夠是整型信

29、息.似果c是整型信息,那么輸出整型信息值做為ASCII碼值對應的字符.使用此函數時,在程序的開頭必須將頭文件stdio.h見諒進來,即#include .例 2.13 輸出字符 2.6 根基輸入輸出函數根基輸入輸出函數字符輸入函數字符輸入函數getchar()標準標準:getchar()功能功能:從規格輸入設備(往往是鍵盤)上讀取一個字符從規格輸入設備(往往是鍵盤)上讀取一個字符.返回值返回值:正常時返回讀取字符的正常時返回讀取字符的ASCII碼值;犯錯那么返碼值;犯錯那么返回回-1.講明講明:該函數沒有指標該函數沒有指標.使用此函數時使用此函數時,屏幕上回顯從鍵盤上鍵入屏幕上回顯從鍵盤上鍵入

30、的字符的字符,同時且需按回車鍵結束同時且需按回車鍵結束.同樣同樣,使用此函數時在使用此函數時在程序的開頭在程序的開頭必須將頭文件程序的開頭在程序的開頭必須將頭文件stdio.h見諒進見諒進來來,即即#include .例例 2.14字符輸入與輸出字符輸入與輸出 注重: 該函數是無參函數.使用此函數時,鍵盤鍵入一個字符,該字符表此刻屏幕上(回顯),必須按回車鍵同意該字符.該函數只能同意一個字符與該函數相關的函數getch(),使用getch()時,鍵盤鍵入一個字符,無須按回車鍵,無回顯,2.6 根基輸入輸出函數根基輸入輸出函數2.6.2 標準化輸入與輸出函數標準化輸出函數printf()標準:p

31、rintf (標準操縱字符串,表達式表)功能:按指定標準向輸出設備(一樣為表現器)輸出信息.返回值:正常時返回現實輸出的字符數;犯錯那么返回-1.與putchar函數相比,printf函數能夠輸出如果干個隨意率性類型的信息,而putchar函數只能輸出一個字符.講明:標準操縱字符串標準操縱字符串是用英文的雙引號括起來的字符串,它的作用是操縱輸出表達式的標準和輸出部分提示信息.標準操縱字符串見諒兩種信息:“一樣字符”:其作用是輸出部分提示信息的字符,它包羅一樣字符和轉義字符,這些字符按原樣輸出,2.6 根基輸入輸出函數根基輸入輸出函數 標準講明:由“%”和標準字符組成,似%d、%f、%c等,它示

32、意按指定的類型輸出信息.對差別類型的信息應采納差別的標準字符,否那么將會表現錯誤.標準字符的種類似表所示 標準字符輸出標準d,i十進制有符號整型數,正數不輸出符號o八進制無符號整型數,不輸出前導符0 x,X十六進制無符號整型數,不輸出前導符0 x,用x那么十六進制數的af以小寫形式輸出,用X那么以大寫字母輸出u十進制無符號整型數c字符形式,只輸出一個字符s字符串形式,直到遇到字符串結束標記0才結束f小數形式的浮點數,隱含輸出6位小數e,E指數形式的浮點數,用e時指數以“e”示意(似2.3e+02)用E時指數以“E”示意(似2.3E+02)g,G選用%f或%e標準中輸出寬度較短的一種標準,不輸出

33、無意義的0,用G時,似果以指數形式輸出,那么指數以大寫示意%輸出百分號2.6 根基輸入輸出函數根基輸入輸出函數表達式表“表達式表”指明了要輸出的信息,要輸出的信息能夠是常量、變量或表達式,能夠指定多個輸出信息,信息之間用逗號分隔,輸出信息的個數要與標準字符的個數一致.例2.15 按相應標準符輸出信息 例 2.16按指定標準輸出信息 2.6 根基輸入輸出函數根基輸入輸出函數修飾符在“標準講明”字符中,“%”和上述標準字符間能夠插入幾種附加標準講明符,又稱為修飾符,它們均為可選項,似表所示.修飾符能夠指定輸出域寬及精度、輸出對齊方式等,并且它們還能夠聯合使用 修飾符功能m輸出信息域寬,信息長度小于

34、m,左補空格,否那么按原樣輸出.n對實數示意輸出n位小數,第n+1位小數四舍五入對字符串,示意原樣輸出的位數-輸出信息在域內左對齊,默信任右對齊+指定在有符號數的正數前表現正號“+”0輸出數值時,指定左面不使用的空位置自動添0#在八進制和十六進制數前表現前導0大概0 xl位于d、o、x、u前,指定輸出精度為long型位于e、f、g前,指定輸出精度為double型2.6 根基輸入輸出函數根基輸入輸出函數 在使用printf函數輸出信息時,常常用到以下幾種標準字符: d標準符.輸出一個十進制有符號整數,有下面幾種用法: %d,依照整型信息的現實長度輸出; %md,m指定了輸出信息的寬度,似果信息的

35、位數小于m,那么左端補空格,否那么按現實位數輸出, %ld,輸出長整型信息. 2.6 根基輸入輸出函數根基輸入輸出函數c標準符,輸出一個字符.例似char c1 = B; printf(“%c”, c1); 那么輸出字符B. s標準符,輸出一個字符串,常有以下幾種用法:%s,例似:printf(%s, how do you do. ); 原樣輸出該字符串(不見諒雙引號).%ms,m示意輸出的字符串占m列,似果字符串自已長度大于m,那么m不起作用將字符串全部輸出.如果字符串的長度小于m,那么在左端補空格;%-ms,似果字符串的長度小于m,那么在m列范疇內,字符串左對齊,右端補空格;%m.ns,輸

36、出占m列,但只取字符串中前n個字符,右對齊,左邊補空格.%-m.ns,m和n的含義同上,但是輸出n個字符左對齊,右邊補空格.似果n大于m,那么m自動取n值,即保證n個字符正常輸出.例 2.17使用修飾符m.n輸出字符串 2.6 根基輸入輸出函數根基輸入輸出函數f標準符,用來輸出實數(包羅單、雙精度數),以小數形式輸出,有以下幾種用法:%f,不指定信息寬度,按默認標準輸出.整數部分全部輸出,同時輸出6位小數.不足6位的背面補0;%m.nf,指定信息寬度占m列,其中有n位小數,似果信息長度小于m,那么左補空格;%-m.nf與%m.nf根基一樣,輸出的信息左對齊,右端補空格.例 2.18使用修飾符m

37、.n輸出實數例 2.19使用修飾符+,0輸出信息(兩者不能聯合使用)例 2.20修飾符#示例例 2.21 使用修飾符l輸出信息 2.6 根基輸入輸出函數根基輸入輸出函數 使用printf函數時應注重: “%d”是標準講明的最先標記符號,它與修飾符、標準字符共同構成了標準講明部分,其中修飾符可省略. 修飾符、標準字符一樣要用小寫(E、X、G除外). 輸出變形:當標準字符與輸出表達式類型不一致時,自動按指定標準輸出 2.6 根基輸入輸出函數根基輸入輸出函數2.標準化輸入函數標準化輸入函數scanf()標準標準:scanf (“標準操縱字符串標準操縱字符串”, 地址列表地址列表)功能功能:依照指定的

38、標準從鍵盤讀入信息依照指定的標準從鍵盤讀入信息,存入地址列表指定的存儲單元存入地址列表指定的存儲單元中中,同時按回車鍵結束同時按回車鍵結束.返回值返回值:正常時返回輸入信息的個數正常時返回輸入信息的個數,遇文件結束返回遇文件結束返回EOF;犯錯返回;犯錯返回0.講明講明:1.標準操縱字符串標準操縱字符串標準操縱字符串見諒兩部分標準操縱字符串見諒兩部分:標準操縱字符和一樣字符標準操縱字符和一樣字符.標準字符標準字符有有d、i、o、x、u、c、s、f、e等幾種等幾種,其作用與其作用與printf函數中的函數中的相近相近,只只是后者是用于輸出只只是后者是用于輸出,前者是用于輸入前者是用于輸入 2.地

39、址列表地址列表地址列表是由如果干個地址組成的列表地址列表是由如果干個地址組成的列表,能夠是變量的地址、字符串能夠是變量的地址、字符串的首地址、指針變量等的首地址、指針變量等,各地址之間用逗號分隔各地址之間用逗號分隔.變量的地址用取地址運算符變量的地址用取地址運算符“&”獲得獲得 2.6 根基輸入輸出函數根基輸入輸出函數3.輸入信息分隔符輸入信息分隔符當輸入多個信息時當輸入多個信息時,信息之間需要用分隔符信息之間需要用分隔符,分為兩種情況分為兩種情況:默認分隔符默認分隔符:以空格、以空格、Tab或回車鍵做為分隔符或回車鍵做為分隔符其它字符做為分隔符其它字符做為分隔符,即標準操縱字符中的一

40、樣字符即標準操縱字符中的一樣字符,需原樣輸入需原樣輸入 4.修飾符修飾符在標準字符與在標準字符與“%”之間之間,C語言也為語言也為scanf函數提供了幾個可選的修飾函數提供了幾個可選的修飾符符.似表所示似表所示 修飾符功能h在d、o、x前,指定輸入為short型實數l在d、o、x前,指定輸入為long型整數在f、e前,指定輸入為double型實數m用十進制正整數指定輸入信息寬度(即字符數),遇空格或不可變形的字符,讀入的字符將削減*賦值抑制字符,指定輸入項讀入后不賦給變量,地址列表中無對應地址項2.6 根基輸入輸出函數根基輸入輸出函數 例 2.22輸入圓柱體的半徑和高,統計同時輸出圓柱體的體積

41、 使用scanf函數時應注重: scanf函數的“地址列表”中,根基上變量地址,而不是變量名. scanf函數中沒有精度操縱 用“%c”標準符時,空格和轉義字符均為有效字符輸入. 輸入信息時,遇到下列情況信任輸入結束: 遇到合法的分隔符似空格、Tab和回車鍵等; 遇到指定寬度; 遇到非法輸入.2.6 根基輸入輸出函數根基輸入輸出函數2.6.3 常用函數使用規格庫函數,讀者需要把握以下兩角度:庫函數所在的頭文件;函數的原型.例 2.23 輸入一個信息,求它的絕對值一、常用數學函數數學函數所在的頭文件為math.h.1.平方根函數sqrt函數原型:double sqrt(double x)功能:統

42、計x的平方根值即.講明:x必須是正數.使用方式:sqrt(x).2.6 根基輸入輸出函數根基輸入輸出函數絕對值函數abs和fabsabs函數:函數原型:int abs(int i)功能:求整數i的絕對值|i|.使用方式:abs(i).例似:abs(-34)返回-34的絕對值34.fabs函數函數原型:double fabs(double x)功能:統計|x|.使用方式:fabs(x).指數函數pow函數原型:double pow(double x,double y)功能:統計xy.使用方式:pow(x,y).2.6 根基輸入輸出函數根基輸入輸出函數e的指數函數exp函數原型:double ex

43、p(double x)功能:統計ex,其中e為自然對數的底2.7182.使用方式:exp(x). 以10為底的對數函數log10函數原型:double log10(double x)功能:統計log10 x.使用方式:log10(x).以e為底的對數函數log函數原型:double log(double x)功能:統計ln(x).使用方式:log(x). 2.6 根基輸入輸出函數根基輸入輸出函數正弦函數sin函數原型:double sin(double x)功能:統計弧度x的正弦值sin(x).使用方式:sin(x).余弦函數cos函數原型:double cos(double x)功能:統計弧

44、度x的余弦值cos(x).使用方式:cos(x).例似:cos(30*2.14159180)返回值為30度的余弦值.2.6 根基輸入輸出函數根基輸入輸出函數二、常用字符函數二、常用字符函數字符函數所在的頭文件為字符函數所在的頭文件為ctype.h.小寫字母轉化為大寫字母函數小寫字母轉化為大寫字母函數toupper函數原型函數原型:char toupper(char c)返回值返回值:似果似果c是小寫字母將其轉化為相應大寫字母是小寫字母將其轉化為相應大寫字母,否那否那么返回么返回c.使用方式使用方式:toupper(c).例似例似:toupper(a)返回值為返回值為A.大寫字母轉化為小寫字母函

45、數大寫字母轉化為小寫字母函數tolower函數原型函數原型:char tolower(char c)返回值返回值:似果似果c是大寫字母將其轉化為相應小寫字母是大寫字母將其轉化為相應小寫字母,否那否那么返回么返回c.使用方式使用方式:tolower(c).例似例似:tolower(A)返回值為返回值為a.2.6 根基輸入輸出函數根基輸入輸出函數查抄是否字母函數isalpha函數原型:int isalpha(char c);返回值:似果c是英文字母,那么返回非零值,否那么返回0.使用方式:isalpha(c).例似:isalpha(A)返回值為非0.isalpha(54)返回值為0,因為字符6的ASCII為56.查抄是否大寫字母函數isupper函數原型:int isupper(char c);返回值:似果c是大寫字母,那么返回非零值,否那么返回0.使用方式:isupper(c).例似:isupper( b )返回值為0.isupper( A )返回值為非0.查

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論