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

下載本文檔

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

文檔簡介

1、要編寫要編寫C程序,需要兩個方面的知識:程序,需要兩個方面的知識:u一是根據(jù)所解問題的要求,設計出解題的一是根據(jù)所解問題的要求,設計出解題的具體步驟,這一步驟稱為具體步驟,這一步驟稱為設計算法設計算法u二是用二是用C語言語言寫出程序?qū)懗龀绦?,以便計算機能正,以便計算機能正確地執(zhí)行確地執(zhí)行 3.1 算法是程序的靈魂算法是程序的靈魂3.2 程序的三種基本結構程序的三種基本結構3.3 語句綜述語句綜述3.4 賦值表達式和賦值語句賦值表達式和賦值語句3.5 數(shù)據(jù)輸入輸出的概念數(shù)據(jù)輸入輸出的概念3.6 字符數(shù)據(jù)的輸入輸出字符數(shù)據(jù)的輸入輸出3.7 簡單的格式輸入與輸出簡單的格式輸入與輸出3.8 順序結構程

2、序設計舉例順序結構程序設計舉例3.9 提高部分提高部分3.1 算法是程序的靈魂算法是程序的靈魂3.1.1 算法的概念算法的概念3.1.2 怎樣表示算法怎樣表示算法P483.1.1 算法的概念算法的概念一個程序包括以下兩個方面的內(nèi)容:一個程序包括以下兩個方面的內(nèi)容:u對數(shù)據(jù)的描述。在程序中要指定數(shù)據(jù)的類型對數(shù)據(jù)的描述。在程序中要指定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式,即數(shù)據(jù)結構和數(shù)據(jù)的組織形式,即數(shù)據(jù)結構u對操作的描述。即操作步驟對操作的描述。即操作步驟,也就是算法也就是算法P48數(shù)據(jù)是操作的對象數(shù)據(jù)是操作的對象操作的目的是對數(shù)據(jù)進行加工處理,以操作的目的是對數(shù)據(jù)進行加工處理,以得到期望的結果得到期望的

3、結果著名計算機科學家沃思著名計算機科學家沃思(Nikiklaus Wirth)提出一個公式:提出一個公式: 算法算法 + 數(shù)據(jù)結構數(shù)據(jù)結構 = 程序程序3.1.1 算法的概念算法的概念P48一個程序除了一個程序除了算法和數(shù)據(jù)結構這算法和數(shù)據(jù)結構這主要要主要要素外,還應當采用結構化程序設計方法素外,還應當采用結構化程序設計方法進行程序設計,并且用某一種計算機語進行程序設計,并且用某一種計算機語言表示言表示算法算法、數(shù)據(jù)結構數(shù)據(jù)結構、程序設計方法程序設計方法和和語言語言工具工具是一個程序設計人員應具備的知識是一個程序設計人員應具備的知識3.1.1 算法的概念算法的概念P48算法是解決算法是解決“做

4、什么做什么”和和“怎么做怎么做”的的問題問題程序中的操作語句,是算法的體現(xiàn)程序中的操作語句,是算法的體現(xiàn)不了解算法就談不上程序設計不了解算法就談不上程序設計3.1.1 算法的概念算法的概念P483.1.2 怎樣表示算法怎樣表示算法用自然語言表示算法用自然語言表示算法用流程圖表示算法用流程圖表示算法用用N-S流程圖表示算法流程圖表示算法用偽代碼表示算法用偽代碼表示算法P50用自然語言表示算法用自然語言表示算法自然語言就是人們?nèi)粘J褂玫恼Z言,可以自然語言就是人們?nèi)粘J褂玫恼Z言,可以是漢語、英語,或其他語言是漢語、英語,或其他語言用自然語言表示通俗易懂,但文字冗長,用自然語言表示通俗易懂,但文字冗長

5、,容易出現(xiàn)歧義性容易出現(xiàn)歧義性用自然語言描述包含分支和循環(huán)的算法,用自然語言描述包含分支和循環(huán)的算法,不很方便不很方便除了很簡單的問題外,一般不用自然語言除了很簡單的問題外,一般不用自然語言用流程圖表示算法用流程圖表示算法流程圖流程圖是用一些圖框來表示各種操作是用一些圖框來表示各種操作用圖形表示算法,直觀形象,易于理解用圖形表示算法,直觀形象,易于理解起止框起止框輸入輸出框輸入輸出框處理框處理框判斷框判斷框流程線流程線連接點連接點注釋框注釋框m被被2整除整除是是否否開始開始判斷一個數(shù)是否偶數(shù)的算法判斷一個數(shù)是否偶數(shù)的算法輸入輸入m的值的值輸出輸出m是偶數(shù)是偶數(shù)輸出輸出m不是偶數(shù)不是偶數(shù)結束結束

6、輸出輸出110的算法的算法結束結束n1開始開始n 10輸出輸出n的值的值nn+1是是否否用用N-S流程圖表示算法流程圖表示算法N-S流程圖用以下的流程圖符號:流程圖用以下的流程圖符號:ABAB成立成立不成立不成立pA當當p1成立成立順序結構順序結構選擇結構選擇結構循環(huán)結構循環(huán)結構判斷一個數(shù)是否偶數(shù)的算法判斷一個數(shù)是否偶數(shù)的算法輸出輸出m是偶數(shù)是偶數(shù)輸出輸出m不是偶數(shù)不是偶數(shù)是是否否m能被能被2整除整除輸入輸入m輸出輸出1100的算法的算法輸出輸出n的值的值n的值的值 10n=1n=n+1用偽代碼表示算法用偽代碼表示算法偽代碼是用介于自然語言和計算機語言之偽代碼是用介于自然語言和計算機語言之間的

7、文字和符號來描述算法間的文字和符號來描述算法用偽代碼寫算法并無固定的、嚴格的語法用偽代碼寫算法并無固定的、嚴格的語法規(guī)則,可以用英文,也可以中英文混用規(guī)則,可以用英文,也可以中英文混用用偽代碼表示算法用偽代碼表示算法“輸出輸出x的絕對值的絕對值”的算法的算法if x is positive then print xelse print -x若若x為正為正 輸出輸出x否則否則 輸出輸出-xif x為正為正 print xelse print -x3.2 程序的三種基本結構程序的三種基本結構順序結構順序結構。各操作步驟是順序執(zhí)行的。各操作步驟是順序執(zhí)行的順序結構是最簡單的一種基本結構順序結構是最簡

8、單的一種基本結構P53AB3.2 程序的三種基本結構程序的三種基本結構選擇結構選擇結構又稱判斷結構或分支結構又稱判斷結構或分支結構根據(jù)是否滿足給定的條件而從兩組操根據(jù)是否滿足給定的條件而從兩組操作中選擇一種操作作中選擇一種操作P53AB成立成立p不成立不成立A成立成立p不成立不成立3.2 程序的三種基本結構程序的三種基本結構循環(huán)結構循環(huán)結構。它又稱重復結構。它又稱重復結構在一定條件下反復執(zhí)行某一部分的操作在一定條件下反復執(zhí)行某一部分的操作P53A成立成立p1不成立不成立A成立成立p2不成立不成立3.2 程序的三種基本結構程序的三種基本結構一個良好的程序,無論多么復雜,都可一個良好的程序,無論多

9、么復雜,都可以由這以由這3種基本結構組成種基本結構組成用這三種基本結構構成的程序稱為用這三種基本結構構成的程序稱為“結結構化程序構化程序”P533.3 語句綜述語句綜述P54C程序程序源程序文件源程序文件1源程序文件源程序文件2源程序文件源程序文件n預處理命令預處理命令數(shù)據(jù)聲明數(shù)據(jù)聲明函數(shù)函數(shù)1函數(shù)函數(shù)n函數(shù)首部函數(shù)首部函數(shù)體函數(shù)體數(shù)據(jù)聲明數(shù)據(jù)聲明執(zhí)行語句執(zhí)行語句3.3 語句綜述語句綜述P54語句分為以下語句分為以下5類:類:(1) 控制語句:控制語句: if、switch、for、while、dowhile、continue、break、return、goto等等(2) 函數(shù)調(diào)用語句函數(shù)調(diào)用

10、語句(3) 表達式語句表達式語句(4) 空語句空語句(5) 復合語句復合語句3.4 賦值表達式和賦值語句賦值表達式和賦值語句3.4.1 賦值表達式賦值表達式3.4.2 賦值過程中的類型轉(zhuǎn)換賦值過程中的類型轉(zhuǎn)換3.4.3 賦值語句賦值語句3.4.4 變量賦初值變量賦初值P563.4.1 賦值表達式賦值表達式賦值運算符賦值運算符u“”是賦值運算符是賦值運算符u作用是將一個數(shù)據(jù)賦給一個變量作用是將一個數(shù)據(jù)賦給一個變量u也可以將一個表達式的值賦給一個變量也可以將一個表達式的值賦給一個變量P563.4.1 賦值表達式賦值表達式復合的賦值運算符復合的賦值運算符u在賦值符在賦值符“”之前加上其他運算符,可以

11、之前加上其他運算符,可以構成復合的運算符構成復合的運算符u 等價于等價于 P563.4.1 賦值表達式賦值表達式賦值表達式賦值表達式u一般形式為:一般形式為: 變量變量 賦值運算符賦值運算符 表達式表達式u對賦值表達式求解的過程:對賦值表達式求解的過程:l求賦值運算符右側(cè)的求賦值運算符右側(cè)的“表達式表達式”的值的值l賦給賦值運算符左側(cè)的變量賦給賦值運算符左側(cè)的變量P563.4.1 賦值表達式賦值表達式賦值表達式賦值表達式u賦值表達式賦值表達式“a=3*5”的值為的值為15,對表達,對表達式求解后,變量式求解后,變量a的值和表達式的值都是的值和表達式的值都是15u“a=(b=5)”和和“a=b=

12、5”等價等價u“a=b”和和“b=a”含義不同含義不同P563.4.2 賦值過程中的類型轉(zhuǎn)換賦值過程中的類型轉(zhuǎn)換兩側(cè)類型一致時,直接賦值兩側(cè)類型一致時,直接賦值兩側(cè)類型不一致,但都是兩側(cè)類型不一致,但都是數(shù)值型或字符數(shù)值型或字符型型,自動將右側(cè)的類型轉(zhuǎn)換為左側(cè)類型,自動將右側(cè)的類型轉(zhuǎn)換為左側(cè)類型后賦值后賦值定義變量時要防止數(shù)據(jù)溢出定義變量時要防止數(shù)據(jù)溢出P593.4.3 賦值語句賦值語句賦值語句是由賦值表達式加上一個分號賦值語句是由賦值表達式加上一個分號構成構成賦值表達式的末尾沒有分號,而賦值語賦值表達式的末尾沒有分號,而賦值語句有分號句有分號一個表達式可以包含賦值表達式,但決一個表達式可以包

13、含賦值表達式,但決不能包含賦值語句不能包含賦值語句P603.4.4 變量賦初值變量賦初值程序中常需要對一些變量預先設置一個程序中常需要對一些變量預先設置一個初值初值設置初值既可以用賦值語句去實現(xiàn),也設置初值既可以用賦值語句去實現(xiàn),也可以在定義變量的同時使變量初始化,可以在定義變量的同時使變量初始化,后者更為方便后者更為方便 int a,b,c=5; 相當于:相當于: int a,b,c; c5;P603.5 數(shù)據(jù)輸入輸出的概念數(shù)據(jù)輸入輸出的概念幾乎每一個幾乎每一個C程序都包含輸入輸出程序都包含輸入輸出輸入輸出是程序中最基本的操作之一輸入輸出是程序中最基本的操作之一所謂輸入輸出是以計算機主機為主

14、體而所謂輸入輸出是以計算機主機為主體而言的言的從計算機向輸出設備輸出數(shù)據(jù)稱為從計算機向輸出設備輸出數(shù)據(jù)稱為輸出輸出,從輸入設備向計算機輸入數(shù)據(jù)稱為從輸入設備向計算機輸入數(shù)據(jù)稱為輸入輸入P613.5 數(shù)據(jù)輸入輸出的概念數(shù)據(jù)輸入輸出的概念語言本身不提供輸入輸出語句語言本身不提供輸入輸出語句輸入和輸出操作是由輸入和輸出操作是由C函數(shù)庫中的函數(shù)函數(shù)庫中的函數(shù)來實現(xiàn)的來實現(xiàn)的printf、scanf、putchar、getchar、puts、gets不是關鍵字不是關鍵字在使用系統(tǒng)庫函數(shù)時,要在程序中使用在使用系統(tǒng)庫函數(shù)時,要在程序中使用預編譯命令預編譯命令“#include”P613.6 字符數(shù)據(jù)的輸入

15、輸出字符數(shù)據(jù)的輸入輸出3.6.1 用用putchar函數(shù)輸出一個字符函數(shù)輸出一個字符3.6.2 用用getchar函數(shù)輸入一個字符函數(shù)輸入一個字符P633.6.1 用用putchar函數(shù)輸出一個字符函數(shù)輸出一個字符從計算機向顯示器輸出一個字符從計算機向顯示器輸出一個字符 putchar函數(shù)的一般形式為:函數(shù)的一般形式為: putchar(c) 例例3.1 先后輸出幾個字符。先后輸出幾個字符。P63#include void main ( ) char a,b,c; a=B,b=O,c=Y; putchar(a); putchar(b); putchar(c); putchar (n); 向顯示

16、器輸出字符向顯示器輸出字符B向顯示器輸出換行符向顯示器輸出換行符BOY#include void main ( ) char a,b,c; a=B,b=O,c=Y; putchar(a); putchar(b); putchar(c); putchar (n); 改為改為int a=66,b=79,c=89;BOYputchar(101) (輸出字符輸出字符)putchar() (輸出單撇號字符輸出單撇號字符)3.6.2 用用getchar函數(shù)輸入一個字符函數(shù)輸入一個字符向計算機輸入一個字符向計算機輸入一個字符getchar函數(shù)的一般形式為:函數(shù)的一般形式為: getchar( )例例3.2

17、輸入多個字符。輸入多個字符。P64#include void main ( ) char a,b,c; a=getchar(); b=getchar(); c=getchar(); putchar(a); putchar(b); putchar(c); putchar(n); 輸入一個字符,送給輸入一個字符,送給變量變量aBOY BOY B O BO #include void main ( ) char a,b,c; a=getchar(); b=getchar(); c=getchar(); putchar(a); putchar(b); putchar(c); putchar(n); p

18、utchar(getchar();#include void main ( ) char a,b,c; a=getchar(); b=getchar(); c=getchar(); putchar(a); putchar(b); putchar(c); putchar(n); putchar(getchar();putchar(getchar();#include void main ( ) char a,b,c; a=getchar(); b=getchar(); c=getchar(); putchar(a); putchar(b); putchar(c); putchar(n); put

19、char(getchar();putchar(getchar();putchar(getchar();#include void main ( ) char a,b,c; a=getchar(); b=getchar(); c=getchar(); putchar(a); putchar(b); putchar(c); putchar(n); putchar(getchar();putchar(getchar();putchar(getchar();3.7 簡單的格式輸入與輸出簡單的格式輸入與輸出3.7.1 用簡單的用簡單的printf函數(shù)輸出數(shù)據(jù)函數(shù)輸出數(shù)據(jù)3.7.2 用簡單的用簡單的sca

20、nf函數(shù)輸入數(shù)據(jù)函數(shù)輸入數(shù)據(jù)P663.7.1 用簡單的用簡單的printf函數(shù)輸出數(shù)據(jù)函數(shù)輸出數(shù)據(jù)在在C程序中用來實現(xiàn)輸出和輸入的,主要程序中用來實現(xiàn)輸出和輸入的,主要是是printf函數(shù)和函數(shù)和scanf函數(shù)函數(shù)這兩個函數(shù)是格式輸入輸出函數(shù)這兩個函數(shù)是格式輸入輸出函數(shù)用這兩個函數(shù)時,必須指定格式用這兩個函數(shù)時,必須指定格式P661.printf函數(shù)的一般格式函數(shù)的一般格式printf(格式控制,輸出表列)(格式控制,輸出表列)例如:例如:printf(”i=%d,c=%cn”,i,c);格式聲明格式聲明1.printf函數(shù)的一般格式函數(shù)的一般格式printf(格式控制,輸出表列)(格式控制,

21、輸出表列)例如:例如:printf(”i=%d,c=%cn”,i,c);普通字符普通字符1.printf函數(shù)的一般格式函數(shù)的一般格式printf(格式控制,輸出表列)(格式控制,輸出表列)例如:例如:printf(”i=%d,c=%cn”,i,c);可以是常量、變量或表達式可以是常量、變量或表達式2. 基本的基本的格式字符格式字符ud格式符。按十進制整型數(shù)據(jù)的實際長度輸出格式符。按十進制整型數(shù)據(jù)的實際長度輸出ui格式符。作用與格式符。作用與d格式符相同格式符相同2. 基本的基本的格式字符格式字符uc格式符。用來輸出一個字符格式符。用來輸出一個字符 char ch=a; printf(”%c”,

22、ch);輸出字符輸出字符:a2. 基本的基本的格式字符格式字符uc格式符。用來輸出一個字符格式符。用來輸出一個字符例例3.3 用用printf函數(shù)輸出字符數(shù)據(jù)。函數(shù)輸出字符數(shù)據(jù)。 #include void main() char c=a; int i =97; printf(c=%c,c=%dn,c,c); printf(i=%c, i=%dn,i,i); c=a,c=97i=a,i=972. 基本的基本的格式字符格式字符us格式符。用來輸出一個字符串格式符。用來輸出一個字符串 printf(”%s”,”CHINA”); 輸出字符串輸出字符串:CHINA2. 基本的基本的格式字符格式字符uf

23、格式符。用來輸出實數(shù),以小數(shù)形式輸出格式符。用來輸出實數(shù),以小數(shù)形式輸出例例3.4 輸出實數(shù)時的有效位數(shù)。輸出實數(shù)時的有效位數(shù)。 #include void main() float a,b; a=111111.111;b=222222.222; printf(%fn,a+b); 333333.3281252. 基本的基本的格式字符格式字符uf格式符。用來輸出實數(shù),以小數(shù)形式輸出格式符。用來輸出實數(shù),以小數(shù)形式輸出例例3.5 輸出輸出雙精度數(shù)雙精度數(shù)時的有效位數(shù)。時的有效位數(shù)。 #include void main() double a,b; a=11111111.11111111; b=22

24、222222.22222222; printf(%fn,a+b); 33333333.3333332. 基本的基本的格式字符格式字符uf格式符。用來輸出實數(shù),以小數(shù)形式輸出格式符。用來輸出實數(shù),以小數(shù)形式輸出lfloat型數(shù)據(jù)只能保證型數(shù)據(jù)只能保證67位有效數(shù)字位有效數(shù)字ldouble型數(shù)據(jù)能保證型數(shù)據(jù)能保證1516位有效數(shù)字位有效數(shù)字l計算機輸出的數(shù)字計算機輸出的數(shù)字不都不都是絕對精確有效的是絕對精確有效的2. 基本的基本的格式字符格式字符ue格式符。指定以指數(shù)形式輸出實數(shù)格式符。指定以指數(shù)形式輸出實數(shù)lVC+給出小數(shù)位數(shù)為位給出小數(shù)位數(shù)為位l指數(shù)部分占指數(shù)部分占5列列l(wèi)小數(shù)點前必須有而且只

25、有小數(shù)點前必須有而且只有1位非零數(shù)字位非零數(shù)字 printf(”%e”,123.456); 輸出:輸出:1.234560 e+0021. scanf 函數(shù)的一般形式函數(shù)的一般形式 scanf(格式控制,地址表列)(格式控制,地址表列)含義同含義同printf函數(shù)函數(shù)3.7.2 用簡單的用簡單的scanf函數(shù)輸入數(shù)據(jù)函數(shù)輸入數(shù)據(jù)P701. scanf 函數(shù)的一般形式函數(shù)的一般形式 scanf(格式控制,地址表列)(格式控制,地址表列)可以是變量的地址,或字可以是變量的地址,或字符串的首地址符串的首地址3.7.2 用簡單的用簡單的scanf函數(shù)輸入數(shù)據(jù)函數(shù)輸入數(shù)據(jù)P70例例3.6 用用scanf函

26、數(shù)輸入數(shù)據(jù)。函數(shù)輸入數(shù)據(jù)。#include void main( ) int a,b,c; scanf(“%d%d%d”,&a,&b,&c); printf(a=%d,b=%d,c=%dn,a,b,c); 3.7.2 用簡單的用簡單的scanf函數(shù)輸入數(shù)據(jù)函數(shù)輸入數(shù)據(jù)P703 4 5 a=3,b=4,c=52. scanf函數(shù)中的格式聲明函數(shù)中的格式聲明與與printf函數(shù)中的格式聲明相似函數(shù)中的格式聲明相似以開始以開始,以一個格式字符結束,中間可以以一個格式字符結束,中間可以插入附加的字符插入附加的字符scanf(a=%db=%dc=%d,&a,&b,&c);3.7.2 用簡單的用簡單的sc

27、anf函數(shù)輸入數(shù)據(jù)函數(shù)輸入數(shù)據(jù)P70說明說明scanf(”%d,%d”,a,b); 錯錯scanf(”%d,%d”,&a,&b); 對對對于對于scanf(a=%d,b=%d,c=%d,&a,&b,&c); 12 24 36 錯錯 a=12,b=24,c=36 對對 a=12 b=24 c=36 錯錯3.7.2 用簡單的用簡單的scanf函數(shù)輸入數(shù)據(jù)函數(shù)輸入數(shù)據(jù)P70說明說明對于對于scanf(”%c%c%c”,&c1,&c2,&c3); abc 對對 a b c 錯錯對于對于scanf(”%d%c%f”,&a,&b,&c);若輸入若輸入 1234a123o.26 3.7.2 用簡單的用簡單的

28、scanf函數(shù)輸入數(shù)據(jù)函數(shù)輸入數(shù)據(jù)P70說明說明對于對于scanf(”%c%c%c”,&c1,&c2,&c3); abc 對對 a b c 錯錯對于對于scanf(”%d%c%f”,&a,&b,&c);若輸入若輸入 1234a123o.26 3.7.2 用簡單的用簡單的scanf函數(shù)輸入數(shù)據(jù)函數(shù)輸入數(shù)據(jù)P70說明說明對于對于scanf(”%c%c%c”,&c1,&c2,&c3); abc 對對 a b c 錯錯對于對于scanf(”%d%c%f”,&a,&b,&c);若輸入若輸入 1234a123o.26 3.7.2 用簡單的用簡單的scanf函數(shù)輸入數(shù)據(jù)函數(shù)輸入數(shù)據(jù)P703.8 順序結構程序

29、設計舉例順序結構程序設計舉例P73 例例3.7 輸入三角形的三邊長,求三輸入三角形的三邊長,求三角形面積。角形面積。解題思路:假設給定的三個邊符合構成解題思路:假設給定的三個邊符合構成三角形的條件三角形的條件找到求三角形面積的公式:找到求三角形面積的公式: 其中其中s=(a+b+c)/2)()(csbsassarea3.8 順序結構程序設計舉例順序結構程序設計舉例P73#include #include void main ( ) double a,b,c,s,area; scanf(%lf,%lf,%lf,&a,&b,&c); s=(a+b+c)/2.0; area=sqrt(s*(s-a)

30、*(s-b)*(s-c); printf(a=%fnb=%fn%fn,a,b,c); printf(area=%fn,area); 計算計算s計算計算area輸入輸入a、b、c的值的值#include #include void main ( ) double a,b,c,s,area; scanf(%lf,%lf,%lf,&a,&b,&c); s=(a+b+c)/2.0; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(a=%fnb=%fn%fn,a,b,c); printf(area=%fn,area); 數(shù)學函數(shù),數(shù)學函數(shù),計算計算平方根平方根調(diào)用數(shù)學函數(shù)調(diào)用

31、數(shù)學函數(shù)加此行加此行9.89,12.65,8.76 a=9.890000b=12.65000c=8.760000area=43.165683 例例3.8 從鍵盤輸入一個大寫字母,要求從鍵盤輸入一個大寫字母,要求改用小寫字母輸出。改用小寫字母輸出。解題思路:解題思路:u關鍵是關鍵是找到大找到大、小寫字母間小寫字母間的的內(nèi)在聯(lián)系內(nèi)在聯(lián)系u小寫字小寫字母母的的ASCII碼碼=大寫字大寫字母母的的ASCII碼碼+32#include void main ( ) char c1,c2; c1=getchar(); printf(%c,%dn,c1,c1); c2=c1+32; printf(%c,%dn

32、,c2,c2); 將將大寫轉(zhuǎn)小寫大寫轉(zhuǎn)小寫A A,65a,97#include void main ( ) printf(“%c”,getchar()+32); printf(“%c”,getchar()+32); printf(%cn,getchar()+32); 例例:輸入輸入3個大寫字母,輸出相應的個大寫字母,輸出相應的3個小寫字母。個小寫字母。#include void main ( ) putchar(getchar()+32); putchar(getchar()+32); putchar(getchar()+32); putchar(n); 例例:輸入輸入3個大寫字母,輸出相應的

33、個大寫字母,輸出相應的3個小寫字母。個小寫字母。例例3.9 求求 方程的根。方程的根。a、b、c由鍵盤輸入由鍵盤輸入 設設 02cbxaxacb42解題思路:首先要知道求方程式的根解題思路:首先要知道求方程式的根的方法。的方法。由數(shù)學知識已知:如果由數(shù)學知識已知:如果 0,則一元二次方程有兩個實根,則一元二次方程有兩個實根:acb42aacbbx2421aacbbx2422abp2aacbq242若記若記qpx1qpx2#include #include void main ( ) double a,b,c,disc,x1,x2,p,q; scanf(“a=%lf,b=%lf,c=%lf,&a

34、,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf(x1=%.2fnx2=%.2fn,x1,x2);程序中程序中調(diào)用數(shù)學函數(shù)調(diào)用數(shù)學函數(shù)sqrt輸入輸入a,b,c的值的值#include #include void main ( ) double a,b,c,disc,x1,x2,p,q; scanf(“a=%lf,b=%lf,c=%lf,&a,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a); x1=p+q; x2=p-q;

35、printf(x1=%.2fnx2=%.2fn,x1,x2);輸入的是雙輸入的是雙精度型實數(shù)精度型實數(shù)#include #include void main ( ) double a,b,c,disc,x1,x2,p,q; scanf(“a=%lf,b=%lf,c=%lf,&a,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf(x1=%.2fnx2=%.2fn,x1,x2);a=1,b=3,c=2 x1=-1.00 x2=-2.00要求輸入要求輸入3個實數(shù)個實數(shù)自動自動轉(zhuǎn)成實數(shù)轉(zhuǎn)成實數(shù)后

36、賦給后賦給a,b,c#include #include void main ( ) double a,b,c,disc,x1,x2,p,q; scanf(“a=%lf,b=%lf,c=%lf,&a,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf(x1=%.2fnx2=%.2fn,x1,x2);小數(shù)小數(shù)點后輸出點后輸出2列列a=1,b=3,c=2 x1=-1.00 x2=-2.003.9 提高部分提高部分3.9.1 無符號數(shù)據(jù)與有符號數(shù)據(jù)之間的賦值無符號數(shù)據(jù)與有符號數(shù)據(jù)之間的賦值3.9.

37、2 較復雜的輸入輸出格式控制較復雜的輸入輸出格式控制3.9.3 簡單易用的簡單易用的C+的輸入輸出的輸入輸出3.9.4 C+用用“/”作為注釋的標識作為注釋的標識P763.9.1 無符號數(shù)據(jù)與有符號無符號數(shù)據(jù)與有符號數(shù)據(jù)之間的賦值數(shù)據(jù)之間的賦值將有符號整數(shù)賦值給長度相同的無符號將有符號整數(shù)賦值給長度相同的無符號整型變量整型變量:u按字節(jié)原樣賦值(連原有的符號位也作為數(shù)按字節(jié)原樣賦值(連原有的符號位也作為數(shù)值一起傳送)值一起傳送)P76例例3.10 有符號整數(shù)賦值給無符號整型變量有符號整數(shù)賦值給無符號整型變量,數(shù)據(jù)會失真。,數(shù)據(jù)會失真。#include void main ( ) unsigne

38、d a; int b; b=-1; a=b; printf(%un,a);1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1ba1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1輸出無符號整數(shù)輸出無符號整數(shù)假設占假設占2字節(jié)字節(jié)65535將無符號整數(shù)賦值給長度相同的有符號將無符號整數(shù)賦值給長度相同的有符號整型變量整型變量:u不要超出有符號整型變量的數(shù)值范圍,否則不要超出有符號整型變量的數(shù)值范圍,否則會出錯會出錯例例3.11 無符號整數(shù)賦值給有符號整型變量無符號整數(shù)賦值給有符號整型變量,注意數(shù)值范圍。,注意數(shù)值范圍。 #include void main ( ) unsi

39、gned a; int b; a=65535; b=a; printf(%dn,b);1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1ba1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1補碼形式補碼形式假設占假設占2字節(jié)字節(jié)-13.9.2 較復雜的輸入輸出格式控制較復雜的輸入輸出格式控制1.輸出數(shù)據(jù)時的格式控制輸出數(shù)據(jù)時的格式控制umd。用來指定輸出數(shù)據(jù)的寬度,。用來指定輸出數(shù)據(jù)的寬度,m是指是指定的寬度,如果數(shù)據(jù)實際的位數(shù)小于,則定的寬度,如果數(shù)據(jù)實際的位數(shù)小于,則左端補以空格,若大于,按實際位數(shù)輸出左端補以空格,若大于,按實際位數(shù)輸出printf(%4d,%4d

40、,123,12345);P78123,123453.9.2 較復雜的輸入輸出格式控制較復雜的輸入輸出格式控制1.輸出數(shù)據(jù)時的格式控制輸出數(shù)據(jù)時的格式控制u%ld。對于。對于int型數(shù)據(jù)占型數(shù)據(jù)占2字節(jié)的系統(tǒng),在字節(jié)的系統(tǒng),在輸出長整型數(shù)據(jù)時要在格式字符輸出長整型數(shù)據(jù)時要在格式字符d前面加一前面加一個英文字個英文字母母llong a=135790;printf(“%ld,a);printf(“%8ld,a);P781357901357903.9.2 較復雜的輸入輸出格式控制較復雜的輸入輸出格式控制1.輸出數(shù)據(jù)時的格式控制輸出數(shù)據(jù)時的格式控制u%o。以。以八八進制整數(shù)形式輸出。由于是將內(nèi)進制整數(shù)形

41、式輸出。由于是將內(nèi)存單元中的各位的值(或)按八進制形存單元中的各位的值(或)按八進制形式輸出,因此輸出的數(shù)值不帶符號,即將符式輸出,因此輸出的數(shù)值不帶符號,即將符號位也一起作為八進制數(shù)的一部分輸出號位也一起作為八進制數(shù)的一部分輸出int a=-1;printf(%d,%o,a,a);P78-1,1777771 1 1 1 1 1 1 1 1 1 1 1 1 1 1 13.9.2 較復雜的輸入輸出格式控制較復雜的輸入輸出格式控制1.輸出數(shù)據(jù)時的格式控制輸出數(shù)據(jù)時的格式控制u%x。以。以十六十六進制數(shù)形式輸出整數(shù)。同樣不進制數(shù)形式輸出整數(shù)。同樣不會出現(xiàn)負的十六進制數(shù)會出現(xiàn)負的十六進制數(shù)int a=

42、-1;printf(%d,%x,a,a);P78-1,ffff1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 13.9.2 較復雜的輸入輸出格式控制較復雜的輸入輸出格式控制1.輸出數(shù)據(jù)時的格式控制輸出數(shù)據(jù)時的格式控制u%u。用來輸出無符號型數(shù)據(jù),以十進制整。用來輸出無符號型數(shù)據(jù),以十進制整數(shù)形式輸出數(shù)形式輸出u一個有符號整數(shù)也可用一個有符號整數(shù)也可用u格式輸出;反之格式輸出;反之,一個無符號型數(shù)據(jù)也可用,一個無符號型數(shù)據(jù)也可用d格式輸出格式輸出u按相互賦值的規(guī)則處理按相互賦值的規(guī)則處理u無符號型數(shù)據(jù)也可用無符號型數(shù)據(jù)也可用o或或x格式輸出格式輸出P78例例3.12 無符號數(shù)據(jù)的輸出

43、。無符號數(shù)據(jù)的輸出。#include void main()unsigned 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);3.9.2 較復雜的輸入輸出格式控制較復雜的輸入輸出格式控制P78在在TC2.0下下(占占2字節(jié)字節(jié))的運行結果為:的運行結果為:a=-1,177777,ffff,65535b=-2,177776,fffe,65534 在在VC+6.0下下(占占4字節(jié)字節(jié))的運行結果為:的運行結果為:a=65535,177777,ffff,65535b=-2,377777

44、77776,fffffffe,42949672943.9.2 較復雜的輸入輸出格式控制較復雜的輸入輸出格式控制mc。用來指定輸出字符數(shù)據(jù)的寬度。用來指定輸出字符數(shù)據(jù)的寬度char c=a;printf(“%3c”,c);P78a3.9.2 較復雜的輸入輸出格式控制較復雜的輸入輸出格式控制ms。指定輸出的字符串占列指定輸出的字符串占列u若若串長大于,則將串全部輸出串長大于,則將串全部輸出u若串長小于,則若串長小于,則左補左補空格空格-ms。如果串長小于,則在列范如果串長小于,則在列范圍內(nèi),字符串向左靠,右補空格。圍內(nèi),字符串向左靠,右補空格。P78例例3.13 字符串的輸出。字符串的輸出。#include void main ( ) printf(%3s,%7.2s,%.4s,%-5.3sn, CHINA,CHINA, CHINA, CHINA);3.9.2 較復雜的輸入輸出格式控制較復雜的輸入輸出格式控制P78CHINA,CH,CHIN,CHIm.nf。指定輸出的實數(shù)共占列,其中指定輸出的實數(shù)共占列,其中有有n位小數(shù)位小

溫馨提示

  • 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

提交評論