第四章最簡單的C程序設計――順序程序設計_第1頁
第四章最簡單的C程序設計――順序程序設計_第2頁
第四章最簡單的C程序設計――順序程序設計_第3頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第四章 最簡單的 C 程序設計順序程序設計§4.1 C 語句概述一個 C 程序應由兩部分組成,即數(shù)據(jù)描述和數(shù)據(jù)操作。數(shù)據(jù)描述:用來定義數(shù)據(jù)結構和預置數(shù)據(jù)初值,由聲明部分實現(xiàn)。如: int a=3 ; 數(shù)據(jù)操作:對已提供的數(shù)據(jù)進行加工,由語句來實現(xiàn)。所以,語句是C 程序的主體。C語句可以分為 5 大類。4 1 1 程序控制語句if() else while() continueswitch 其中:()表示一個條件。 表示內(nèi)嵌的語句。如:4 1 2 函數(shù)調(diào)用語句for() do while() breakgoto returnif(x>y) z=x ; else z=y ;由函數(shù)加

2、上一個分號構成。如: printf( “hellow ”) ;4 1 3 表達式語句 表達式加上一個分號即可組成一個表達式語句。如: i=1 ; x=sin(y) ;等。4 1 4 空語句一個分號就是一個空語句,表示什么都不做。4 1 5 復合語句用 括起的一個語句序列。 如: z=x+y ; t=z/100 ; printf( “%f”,t) ; 4 1 6 賦值語句a=b;。1、構成:賦值語句由賦值表達式加上一個分號構成。如2、說明1) C 語言中的賦值號是一個運算符,這是與其它高級語言相區(qū)別的。2)賦值表達式作為表達式可以出現(xiàn)在其它任何表達式中,而作為語句則不能。如: if ( a=b)

3、 >0) t=a ;,表示先將 b 賦給 a,且如果 a>0 則將 a 賦給 t。但: if(a=b;) >0) t=a;,則是錯誤的。§4.2 數(shù)據(jù)輸入輸出的概念及在 C中的應用4 2 1 數(shù)據(jù)輸入輸出的概念1、輸入:相對于計算機主機而言,從外設讀入數(shù)據(jù)。如:鍵盤、磁盤、光盤等。2、輸出:相對于計算機主機而言,向外設輸出數(shù)據(jù)。如:顯示器、磁盤、打印機。4 2 2 數(shù)據(jù)輸入輸出的實現(xiàn)1、C 本身并不提供輸入輸出語句,輸入輸出操作是由函數(shù)來實現(xiàn)的。函數(shù)已編譯成 OBJ文件以庫的形式存放在系統(tǒng)中,在源程序編譯后由連接程序?qū)⑺蛶爝M行連 接生成可執(zhí)行文件。2、在使用輸入輸

4、出函數(shù)之前, 在程序的開頭應加上包含了與標準 I/O 庫有關的變量 定義和宏定義的頭文件。格式為:#include“stdio.h ”或 #include <stdio.h>但標準的輸入輸出操作 scanf 和 printf 由于使用頻繁, 可以不加 #include 命令。§ 4.3 字符數(shù)據(jù)的輸入輸出4 3 1 單個字符的輸出1、格式 putchar(字符型數(shù)據(jù)) ;2、功能 向標準輸出設備輸出一個字符。3、說明1)也可以輸出整型數(shù)據(jù),此時,該數(shù)據(jù)作為字符的ASCII 碼值。2)該函數(shù)使用前需用#include“stdio.h ”或 #include <stdi

5、o.h>例 1:#include<stdio.h>main()char c ;/*定義字符變量 */c='B' ;/*給字符變量賦值 */putchar(c) ; /* putchar('x42') ; /* putchar(0x42) ; /* 4 3 2 單個字符的輸入輸出該字符 */輸出字母 B*/ 直接用 ASCII 碼值輸出字母 B*/1、格式 getchar();2、功能 等待從鍵盤上讀入字符 , 直到按回車結束 , 回車前的所有輸入字符都會逐個顯示 在屏幕上,但只有第一個字符作為函數(shù)的返回值。3、說明1)該函數(shù)的返回值可以賦給整型

6、或字符型變量,也可作為表達式的一部分。 如: putchar( getchar();2)該函數(shù)使用前需用 #include例 2:stdio.h ”或 #include <stdio.h>#include<stdio.h>main()從鍵盤讀入字符直到回車結束 */ 顯示輸入的第一個字符 */char c ; c=getchar() ; /* putchar(c) ; /* § 4.4 格式輸入與輸出Turbo C2.0 標準庫提供了兩個控制臺格式化輸入、 輸出函數(shù) printf() 和 scanf(), 這 兩個函數(shù)可以在標準輸入輸出設備上以各種不同的格式讀

7、寫數(shù)據(jù)。 printf() 函數(shù)用來向 標準輸出設備 (屏幕)寫數(shù)據(jù); scanf() 函數(shù)用來從標準輸入設備 (鍵盤)上讀數(shù)據(jù)。下面詳 細介紹這兩個函數(shù)的用法。4 4 1 格式輸出函數(shù)1、格式printf("< 格式控制 >", < 輸出表列 >) ;其中:格式控制包括兩部分內(nèi)容 : 一部分是正常字符 , 這些字符將按原樣輸出;另 一部分是格式化控制字符 , 以 "%"開始 , 后跟一個或幾個規(guī)定字符,用來確 定輸出內(nèi)容格式。輸出表列是需要輸出的一系列參數(shù) , 其參數(shù)必須與格式化字符串所說明的輸 出參數(shù)個數(shù)一樣多 , 各參數(shù)之間

8、用 "," 分開 , 且順序一一對應 , 否則將會出 現(xiàn)錯誤。2、功能以指定的格式向顯示器輸出“輸出表列”的內(nèi)容, “輸出表列”可以是任意類型的 數(shù)據(jù)。3、討論1)格式化控制符Turbo C2.0 提供的格式化規(guī)定符如下 :作用%d , %i帶符號十進制形式輸出整數(shù)(正號不輸出)%u無符號十進制形式輸出整數(shù)%f小數(shù)形式輸出單、雙精度數(shù),隱含 6 位小數(shù)%s輸出字符串%c輸出單個字符%e , %E指數(shù)形式輸出單、雙精度數(shù),隱含 6 位小數(shù)%x, %X無符號十六進制形式輸出整數(shù)(不輸出前導符“0”)%x :小寫輸出 a f ;%X:大寫輸出 A F%o無符號八進制形式輸出整數(shù)(

9、不輸出前導符“0”)%g,%G選擇 %f、%e中輸出寬度較短的格式,不輸出無意義的“0”用%G時,若以指數(shù)形式輸出,則指數(shù)大寫表示2)特殊規(guī)定字符字符作用n換行f清屏并換頁r回車tTab符ddd八進制表示的 ASCII 碼xhh十六進制表示的 ASCII 碼3)說明在"%"和字母之間可以插進數(shù)字表示最大場寬。例如: %3d 表示輸出 3 位整型數(shù) , 不夠 3 位右對齊。%9.2f 表示輸出 9 位實數(shù) , 其中小數(shù) 2 位,整數(shù) 6 位,小數(shù)點 1 位, 不夠 9 位右對齊。%8s 表示輸出 8 個字符的字符串 , 不夠 8 個字符右對齊。 如果字符串的長度、或整型數(shù)位數(shù)

10、超過說明的場寬 , 將按其實際長度輸出。但對實 數(shù) , 若整數(shù)部分位數(shù)超過了說明的整數(shù)位寬度, 將按實際整數(shù)位輸出;若小數(shù)部分位數(shù)超過了說明的小數(shù)位寬度 , 則按說明的寬度以四舍五入輸出。另外 , 若想在輸出值前加一些 0, 就應在場寬項前加一個 0。例如 : %04d 表示在輸出一個小于 4 位的數(shù)值時 , 將在前面補 0 使其總寬度為 4 位。 如果用實數(shù)表示字符或整型量的輸出格式 , 小數(shù)點后的數(shù)字代表最大寬度 , 小數(shù)點 前的數(shù)字代表最小寬度。例如: %6.9s 表示顯示一個長度不小于 6 且不大于 9 的字符串。若大于 9, 則第 9 個字符以后的內(nèi)容將被刪除??梢栽?"%

11、" 和字母之間加小寫字母 l, 表示輸出的是長型數(shù)。例如 : %ld 表示輸出 long 整數(shù)%lf 表示輸出 double 實數(shù) 輸出默認為右對齊,但如果在 "%" 和字母之間加入一個 "-" 號則輸出為左對齊。 例如 : %-7d 表示輸出 7 位整數(shù)左對齊%-10s 表示輸出 10 個字符左對齊4、例子#include<stdio.h>#include<string.h> "Hello, Comrade"int main()char c, s int a=1234 ; float f=3.141

12、592653589double x=0.12345678987654321c='x41'printf("a=%dn", a) printf("a=%6dn", a) printf("a=%06dn", a) printf("a=%2dn", a) printf("*i=%4dn", *i) printf("f=%fn", f) printf("f=6.4fn", printf("x=%lfn", x) printf(&q

13、uot;x=%18.16lfn", x)f) ;/*/*/*/*a/*/*/*/*結果輸出十進制整數(shù) a=1234*/ 結果輸出 6 位十進制數(shù) a= 1234*/ 結果輸出 6 位十進制數(shù) a=001234*/超過 2 位 , 按實際值輸出 a=1234*/ 輸出 4 位十進制整數(shù) *i=12*/ 輸出浮點數(shù) f=3.141593*/輸出 6 位其中小數(shù)點后 4 位的浮點數(shù) f=3.1416*/ 輸出長浮點數(shù) x=0.123457*/* 輸出 18 位其中小數(shù)點后 16 位的長數(shù)x=0.1234567898765432*/printf("c=%cn", c) ;

14、 /* 輸出字符 c=A*/輸出字符的 ASCII 碼值 c=41*/ 輸出數(shù)組字符串 s=Hello, Comrade*/ 輸出最多 9 個字符的字符串 s=Hello , Co*/printf("c=%xn", c); /*printf("s=%sn", s) ; /* printf("s=%6.9sn", s) ; /* 4 4 2 格式輸入函數(shù)1、格式scanf("<其中:格式控制 >", < 地址表 >) ; 格式控制包括三部分內(nèi)容 : 一部分是格式化控制字符 , 以 "

15、%"開始 , 與 printf() 的用法基本相同;第二部分是“空格” ,其作用是在讀操作時略去 輸入數(shù)據(jù)中的一個或多個空格字符;第三部分是非空格字符,其作用是在讀 操作時剔除與該字符相同的字符。輸出表列是需要輸出的一系列參數(shù) , 其參數(shù)必須與格式化字符串所說明的輸 出參數(shù)個數(shù)一樣多 , 各參數(shù)之間用 "," 分開 , 且順序一一對應 , 否則將會出 現(xiàn)錯誤。地址表是需要讀入的所有變量的地址 , 而不是變量本身。 這與 printf() 函數(shù) 完全不同 , 要特別注意。各個變量的地址之間同 "," 分開。2、功能以指定的格式從鍵盤讀入數(shù)據(jù),并順

16、序存放到“地址表”指定的存儲單元中,并剔 除掉“格式控制”中指定的字符。例: main()int i, j ;printf("i, j=?n") ;scanf("%d, %d", &i, &j);上例中的 scanf() 函數(shù)先讀一個整型數(shù) , 然后把接著輸入的逗號剔除掉 , 最后讀入另 一個整型數(shù)。如果 "," 這一特定字符沒有找到 , scanf() 函數(shù)就終止。若參數(shù)之間的分隔 符為空格 , 則參數(shù)之間必須輸入一個或多個空格。3、討論1)對 于字符串數(shù)組或字符串指針變量 , 由于數(shù)組名和指針變量名本身就是地址 ,

17、 因此使用 scanf()函數(shù)時 , 不需要在它們前面加上"&" 操作符。/*從健盤輸入字符串 */向屏幕輸出字符串 */mian()char *p, str20;scanf("%s", p) ; /* scanf("%s", str);printf("%sn", p);printf("%sn", str) ;2)可 以在格式化控制字符中的 "%"和規(guī)定字符之間加一個整數(shù) , 表示讀操作中數(shù)的最 大位數(shù)。如: scanf("%10s", p) ;,

18、程序運行時一旦輸入字符個數(shù)大于 10, p 就不 再繼續(xù)讀入 , 而后面的一個輸入函數(shù)即 scanf("%s", str) 就會從第 11 個字符開始 讀入。3) 在用“ %c”輸入字符時,空格字符和轉(zhuǎn)義字符都作為有效字符。4) 數(shù)據(jù)輸入的結束標志是回車鍵,但遇到下列符號也視為輸入結束,即該符號后的 數(shù)據(jù)無效,但整個輸入過程仍是按下回車鍵結束??崭矜ITab 鍵 非法輸入 超過指定的數(shù)據(jù)寬度§ 4.5 順序結構程序設計舉例例 1:輸入三角形的條邊長,求三角形的面積。#include“math.h ”main()float a,b,c,s,aera ; scanf( “%f,%f,%f ”,&a,&b,&c) ; s=1.0/2*(a+b+c) ; aera=sprt(s*(s-a)*(s-b)*(s-c) ; printf( “a=%7.2f,b=%7.2f,c=%7.2f

溫馨提示

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

評論

0/150

提交評論