第3章__順序結構_第1頁
第3章__順序結構_第2頁
第3章__順序結構_第3頁
第3章__順序結構_第4頁
第3章__順序結構_第5頁
已閱讀5頁,還剩26頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第3章 順序結構本章要點本章要點:3.1 賦值語句3.2 數據輸出3.3 數據輸入 3.4 復合語句和空語句 3.1 賦值語句在賦值表達式的尾部加上一個“;”號,就構成了賦值語句也稱表達式語句。以下是幾點說明:1賦值語句必須在最后出現分號,分號是語句中必不可少的部分,如“x+=10”是表達式,“x+=10;”是賦值語句。2任何賦值表達式都可以加上分號而稱為賦值語句。3賦值語句是一種可執行語句,應當出現在函數的可執行部分。重點提示重點提示:分號是賦值語句中必不可少的部分,若沒有分號,則只是一個賦值表達式而已。3.2 數據輸出3.2.1 printf函數的一般調用形式printf函數是標準輸出函數

2、,功能是在終端設備上按指定格式進行輸出。printf()函數的一般形式為: printf(“格式控制”,輸出項序列)例如:printf(”a=%d,b=%c”,a,b)中,”a=%d,b=%c”稱為格式控制字符串,a,b是輸出項序列中的輸出項,都是printf函數的參數。格式控制符的作用有:1為各輸出項提供格式轉換說明。它總是由“%”符號開始,緊跟其后的是格式描述符。2提供需要原樣輸出的文字或字符。輸出項表中的各輸出項要用逗號隔開,輸出項可以是合法的常量、變量或表達式。格式轉換說明的個數要與輸出項的個數相同,使用的格式描述符也要與它們一一對應且類型匹配。3.2.2 printf函數中常用的格式

3、說明“格式控制”部分是用雙引號括起來的字符串,也稱“轉換控制字符串”,它包括三種信息:格式說明符、轉義字符和普通字符。1格式字符格式說明符由%和格式字符組成,如%d、%f等。作用是轉換輸出數據的格式。對于不同類型的數據用不同的格式字符。下面詳細介紹幾種常用的格式字符。 d格式字符。用來輸出十進制整數。其用法如下:(a)%d,整型數據的實際長度輸出。例如:printf(%d,n,x);如果x=789,則輸出結果為:789(b)%ld,輸出長整型數據。例如:printf(%ld,n,a);如果a被定義為:long int a=56789;則輸出結果為:56789如果用%d格式輸出,就會出錯,因為整

4、型數據的范圍是-3276832767。對超出此范圍的long型數據應當用%ld格式輸出。(c)%-md,m是指定的輸出字符寬度。如是指定的輸出字符寬度。如果數據的位數小于果數據的位數小于m,則輸出共占,則輸出共占m位,數位,數據左靠齊,右邊補空格,若省略據左靠齊,右邊補空格,若省略“-”號,則號,則右靠齊,左邊補空格;如果數據的位數大右靠齊,左邊補空格;如果數據的位數大于于m,則按實際位數輸出。,則按實際位數輸出。例如:printf(%5d,%5dn,a,b);如果a=7788,b=56789,則輸出結果為: 7788,56789 f格式字符。用來輸出實數(包括單精度、雙精度),以小數形式輸出

5、。其用法如下:(a)%f,實數的整數部分全部輸出,小數部分保留六位。需要指出的是,并非全部數字都是有效數字。單精度實數的有效位數一般是7位,雙精度實數的有效位數一般是16位。(b)%mf,輸出的實數共占m位,小數部分保留六位。(c)%.nf,輸出的實數,總寬度按實際寬度,小數部分占n位。(d)%-m.nf,輸出的實數包括小數點在內共占,輸出的實數包括小數點在內共占m位,位,其中小數部分占其中小數部分占n位。如果數據的實際寬度小于位。如果數據的實際寬度小于m,則左靠齊,右邊補空格,省略則左靠齊,右邊補空格,省略“-”時,右靠齊,左時,右靠齊,左邊補空格。邊補空格。如:main()float a=

6、123.45; printf(“%f,%11f,%.2f,%-10.3fn”,a,a,a,a);程序運行結果為:123.449997, 123.449997,123.45,123.450說明:a的值應該是123.45,但輸出的結果卻是123.449997,這是由于實數在內存中的存儲誤差引起的。 c格式字符。用來輸出一個字符。例如:char ch= a;printf(%c,ch);則輸出一個字符a。也可以指定輸出字符的寬度,如:printf(%2c,ch);則輸出a,即ch變量輸出占2列,第一列補空格。 s格式字符。用來輸出一個字符串。其用法如下:格式字符。用來輸出一個字符串。其用法如下:(a)

7、%s,按原樣輸出一個字符串。,按原樣輸出一個字符串。例如:printf(%s, Happy New Year!);則輸出字符串:Happy New Year!(b)%-ms,與整數輸出格式“%-md”類似。c)%m.ns,輸出占m列,但只取字符串中左邊n個字符。這n個字符輸出在m列的右邊,左邊補空格。(d)%-m.ns,n個字符輸出在m列范圍的左邊,右邊補空格。若nm,則m自動取n值,即保證n個字符正常輸出。如:字符串輸出示例main() printf(“%3s,%6.3s,%.2s,%-5.4sn”,“Hello”,“Hello”,“Hello”,“Hello”); 程序運行結果為:Hell

8、o, Hel, He, Hell表3.1 輸出格式字符及其功能說明2附加格式字符在%和上述格式字符之間可以插入以下幾種附加符號,如下所示。表3.2 輸出常用附加格式字符3長度修飾符長度修飾符加在%和格式字符之間,對于長整型一定要加l(long),h可用于短整型(short)或無符號短整形數的輸出。如printf(“%ld,n”,a);4轉義字符可以在printf函數中的“格式控制”部分使用“轉義字符”,如“n”、“b”、“f”、“t”、“r”、“344”等。重點提示重點提示:如果想輸出字符如果想輸出字符“%”,則應該在,則應該在“格式控制格式控制”字符串中用連續兩個字符串中用連續兩個%表示。表

9、示。3.2.3 調用printf函數時的注意事項1在格式控制字符串中,格式說明與輸出項從左到右在類型上必須一一對應匹配。例如:printf(x=%f,c=%d,x,c);中的x與%f對應,c與%d對應。2在格式控制串中,格式說明與輸出項的個數應相同,若格式說明少于輸出項,則多余的輸出項不格式說明少于輸出項,則多余的輸出項不輸出,相反,對于多余的格式將輸出不定值輸出,相反,對于多余的格式將輸出不定值。3在格式控制串中,可以包含任意的合法字符(包括轉義字符)。4輸出項序列中可以是變量、常量或表達式。如果輸出項是表達式時,則如果輸出項是表達式時,則printf函數將先函數將先對其進行運算,然后輸出它

10、的運算結果。對其進行運算,然后輸出它的運算結果。如:main() printf(x=%f,3*4.8+9/4-sqrt(2.0); 輸出結果為:x=32784.4000005printf函數允許沒有輸出項序列部分。它表示輸出一個字符串。此時printf函數成為如下格式:printf(輸出字符串);例如:printf(Please input a number:);則輸出:Please input a number:6printf函數的返回值通常是本次調用中輸出字符的個數。重點提示重點提示:格式說明與輸出項從左到右在類型上、個數上都必須一一對應匹配。3.3 數據輸入3.3.1 scanf函數的一

11、般調用格式scanf()函數的一般形式為: scanf(“格式控制”,輸入項表)“格式控制”的含義同printf函數;“輸入項地址序列”是由若干個變量地址(變量前加號)組成的序列,各地址按排次序依次接收轉換格式后的讀入數據。例如: main() int a,b; scanf(%d%d,&a,&b); printf(%d,%dn,a,b);程序運行結果為:123 456123,456重點提示重點提示:輸入項地址序列中的變量前需要加取地址符號”&”。 3.3.2 scanf函數中常用的格式說明在格式控制部分一般只包含“格式說明符”這一項內容。和printf函數中的格式說明符相似,以%開始,以一個格

12、式字符結束,中間可以插入附加的字符。1scanf常用的格式字符。表3.3列出scanf函數常用的格式字符及其功能說明。表3.3 scanf格式字符2附加格式字符。表3.3列出scanf函數的附加格式字符及其功能說明。表3.4 scanf常用附加字符3幾點說明(1)可以指定輸入數據所占列數,系統自動按它截取所需數據。(2)標準C在scanf()函數中不使用u說明符,對unsigned型數據,以%d,%o,%x輸入。(3)在輸入時若想跳過某個數據,可在%后加一個相應的“*”。 (4)輸入數據時不能規定精度,如scanf(“%5.2d”,&x)是不合法的。重點提示:重點提示:scanf函數輸入的數據

13、不能規定精度。3.3.3 通過scanf函數從鍵盤輸入數據通過scanf函數從鍵盤輸入數據時,需要注意以下幾點:1scanf函數中的輸入項必須是“地址量”,它可以是一個變量的地址,也可以是數組的首地址,但不能是變量名。例如,如果定義了a,b為整型變量,則scanf(“%d,%d”,a,b);是不合法的,應將“a,b”改為“&a,&b”。請讀者予以注意,這是初學者易出錯的地方。2輸入數據時,各個數據之間可以用空格“”或Tab鍵或回車鍵作為間隔符。3除了空格、Tab鍵和回車鍵外,用戶還可以自己指定其他字符作為輸入間隔。需要注意的是,如果在“格式控制”字符串中除了格式說明以外還有其他字符,則在輸入數

14、據時應輸入與這些字符相同的字符。例如,對應語句:scanf(“%d,%d,%d”,&a,&b);輸入方式應為:1,3注意1后面是逗號,它與scanf函數中的“格式控制”中的逗號對應,若輸入時不用逗號,而用空格或回車鍵等字符就不對。4特別需要注意的是,在使用格式說明符%c輸入一個字符時,凡是從鍵盤輸入的字符,包括空格、回車等均被作為有效字符接收。例如對語句:scanf(“%c%c”,&c1,&c2);若輸入:a b原意圖是把字符a賦給c1,b賦給c2,而結果卻是把賦給了c2。因為%c只要求讀入一個字符,后面不需要用空格作為兩個字符間隔,因此作為下一個字符賦給c2。5在輸入數據時,遇以下情況時該數據認為結束: 遇空格、Tab鍵,或回車鍵。 按指定的寬度結束,如“%4d”,只取4列。 遇非法輸入。重點提示重點提示:scanf函數中的輸入項必須是“地址量”,它可以是一個變量的地址,也可以是數組的首地址,但不能是變量名。3.4 復合語句和空語句3.4.1 復合語句在C語言中,可以用一對大括號“”把一些語句括起來構成復合語句,又稱分程序。復合語句的形式如下: 語句1;語句2;語句n;1在復合語句內,不僅

溫馨提示

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

評論

0/150

提交評論