《C語言程序設(shè)計》_第1頁
《C語言程序設(shè)計》_第2頁
《C語言程序設(shè)計》_第3頁
《C語言程序設(shè)計》_第4頁
《C語言程序設(shè)計》_第5頁
已閱讀5頁,還剩153頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C語言程序設(shè)計2022/9/222課程內(nèi)容第一章 C語言程序設(shè)計概述 第二章 算法及算法設(shè)計簡介 第三章 數(shù)據(jù)描述與基本操作第四章 選擇結(jié)構(gòu)程序設(shè)計 第五章 循環(huán)結(jié)構(gòu)程序設(shè)計 第六章 數(shù)組與指針第七章 函數(shù)與模塊化程序設(shè)計方法2022/9/223第一章 C語言程序設(shè)計基礎(chǔ)1.1 程序與程序設(shè)計1.2 C語言簡介1.3 簡單的C語言程序1.4 C語言程序的上機(jī)步驟1.5 C語言的基本詞法1.6 C語言程序的基本結(jié)構(gòu)2022/9/224程序與計算機(jī)語言程序是存放在計算機(jī)中的操作指令的集合。用程序設(shè)計語言編制一個能完成某項任務(wù)的計算機(jī)程序的過程叫做計算機(jī)程序設(shè)計。程序設(shè)計=數(shù)據(jù)結(jié)構(gòu)+算法+程序設(shè)計方

2、法+編程語言程序設(shè)計的關(guān)鍵:必須掌握一種程序設(shè)計語言。掌握程序設(shè)計的邏輯思維。2022/9/225 程序設(shè)計過程(1)問題的提出,要達(dá)到的要求;(2)確定數(shù)據(jù)結(jié)構(gòu)和所采用的算法;(3)編制程序;(4)調(diào)試程序;(5)整理并寫出文檔;2022/9/226C語言的特點(1)語言簡潔、緊湊,使用方便、靈活。C語言一共只有 32個關(guān)鍵字,主要用小寫字母表示。 (2) 比其他高級語言更接近硬件,比低級語言更接近算法。 程序易編、易讀、易查錯、易修改,兼有高級語言和 低級語言的優(yōu)點。(3)數(shù)據(jù)類型和運(yùn)算符十分豐富,程序設(shè)計和算法描述更為 簡單和方便。 (4) 語法結(jié)構(gòu)十分簡單,語句數(shù)目少,簡單易學(xué)。 20

3、22/9/227 (6) 它是一種模塊化的程序設(shè)計語言,適合大型軟件的研制 和調(diào)試。 (5) 它是一種結(jié)構(gòu)化程序設(shè)計語言,提供了完整的程序控制 語句(選擇語句和循環(huán)語句),很適合結(jié)構(gòu)化的程序設(shè)計方 法。 (7) 生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。 (8) 用c語言寫的程序可移植性好。 (9) 它提供了大量的庫函數(shù)以供調(diào)用,簡化了程序設(shè)計工作。2022/9/228 C語言程序的結(jié)構(gòu) C語言是結(jié)構(gòu)化的程序設(shè)計語言。C語言是模塊化的程序設(shè)計語言,程序是由函數(shù)構(gòu)成的。一個C源程序至少包含一個main函數(shù),也可以包含一個main函數(shù)和若干個其他函數(shù)。因此,函數(shù)是C程序的基本單位。一個函數(shù)由兩部分組成:

4、 函數(shù)的首部,函數(shù)的第一行。包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函數(shù)參數(shù)(形參)名、參數(shù)類型。 函數(shù)體,即函數(shù)首部下面的大括弧.內(nèi)的部分。如果一個 函數(shù)內(nèi)有多個括弧,則最外層的一對 為函數(shù)的范圍。 函數(shù)體一般包括: 聲明部分:在這部分中定義所用到的變量。 執(zhí)行部分: 由若干個語句組成。2022/9/229(4) 一個C程序總是從main函數(shù)開始的,而不論main函數(shù)在整 個程序中的位置如何(main函數(shù)可以放在程序最前頭,也可 以放在程序最后,或在一些函數(shù)之前,在另一些函數(shù)之后)。(5) C程序書寫格式自由,一行內(nèi)可以寫幾個語句,一個語句 可以分寫在多行上。(6) 每個語句和數(shù)據(jù)定義的最后必須有一

5、個分號。分號是C語 句的必要組成部分。分號不可少。(7) C語言本身沒有輸入輸出語句。輸入輸出的操作是由庫 函數(shù)scanf和printf等函數(shù)來完成的。(8) 可以用/*/對C程序中的任何部分作注釋。2022/9/2210簡單的C語言程序示例例一 main( ) printf (“This is a C program.n”); 本程序的作用是輸出以下一行信息: This is a C program.2022/9/2211例二main( ) int a,b,sum; /*這是定義變量*/ a=123;b=456; /*以下3行為C語句*/ sum=a+b; printf(“sum is %d

6、n”,sum);程序的運(yùn)行結(jié)果: Sum is 5792022/9/2212例三/* example1.3 輸入兩個數(shù),求其中較大的數(shù)*/#include int max(int x,int y) /* 被調(diào)用函數(shù)*/ int z; if (xy) z=x; else z=y; return(z); /* 將z的值返回,通過max帶回調(diào)用處*/main() /* 主函數(shù)*/ int a,b,c; scanf(“%d,%d”,&a,&b); c=max(a,b); printf(“max=%dn”,c);運(yùn)行結(jié)果:4,6max=62022/9/2213C程序的上機(jī)步驟 開始編輯編譯 有錯?執(zhí)行連

7、接結(jié)果正確結(jié)束可執(zhí)行目標(biāo)程序f.exe源程序f.c目標(biāo)程序f.obj庫函數(shù)和其他目標(biāo)程序YesNoYesNo2022/9/2214C語言的基本詞法標(biāo)識符定義:在程序中使用的變量名、函數(shù)名、標(biāo)號等統(tǒng)稱為 標(biāo)識符。除庫函數(shù)的函數(shù)名由系統(tǒng)定義外,其余的都由用戶自己定義。命名規(guī)則:標(biāo)識符只能是字母(AZ,az)、數(shù)字(09)、下劃線(_)組成的字符串,并且其第一個字符必須是字母或下劃線。 例如:以下標(biāo)識符是合法的: a,x,x3,BOOK_1,sum5,_x7。 以下標(biāo)識符是非法的: 3s,s*T,-3x,bowy-1,M.D.John,ab。2022/9/2215(1)標(biāo)準(zhǔn)C不限制標(biāo)識符的長度,但它

8、受各種版本的C語言編 譯系統(tǒng)限制,同時也受到具體機(jī)器的限制。Turbo C規(guī)定標(biāo)識符的長度為32。一般情況下,標(biāo)識符的長度不要超過8個字符。(2)在標(biāo)識符中,大小寫是有區(qū)別的。例如SUM和sum是兩個 不同的標(biāo)識符。變量名應(yīng)盡量使用小寫字母,以增加程序的可讀性。(3)標(biāo)識符雖然可由程序員隨意定義,但標(biāo)識符是用于標(biāo)識某個量的符號。因此,命名應(yīng)盡量有相應(yīng)的意義,以便于閱讀理解,做到“顧名思義”。在C語言中,所有的變量都是先定義后應(yīng)用,使用沒有定義的變量名被認(rèn)為是“非法”的。 在使用標(biāo)識符時還必須注意以下幾點:2022/9/2216C語言的基本詞法關(guān)鍵字定義:關(guān)鍵字是由語言規(guī)定的具有特定意義的字符串

9、,通常也稱為保留字。用戶定義的標(biāo)識符不應(yīng)該與關(guān)鍵字相同。分類:語言的關(guān)鍵字分為以下3類:(1)類型說明符 用于定義和說明變量、函數(shù)或其它數(shù)據(jù)結(jié)構(gòu)的類型。如int,double,float,long,short,auto,signed,static,struct,unsigned,char,enum,extern,register和union等。2022/9/2217(2)語句定義符用于表示一個語句的功能。如條件語句的語句定義符if else,循環(huán)語句的語句定義符do,while,for等。(3)預(yù)處理命令字用于表示一個預(yù)處理命令,使用時前面要加“”。如include,define,ifdef,

10、endif等。關(guān)鍵字后必須有空格、圓括號、尖括號、雙引號等分隔符,否則與其它字符一起組成新的標(biāo)識符。2022/9/2218C語言的基本詞法其它運(yùn)算符語言中含有相當(dāng)豐富的運(yùn)算符。運(yùn)算符與變量,函數(shù)一起組成表達(dá)式,表示各種運(yùn)算功能。運(yùn)算符由一個或多個字符組成。分隔符在語言中采用的分隔符有逗號和空格兩種。逗號主要是用在類型說明和函數(shù)參數(shù)表中分隔各個變量??崭穸嘤糜谡Z句各單詞之間作間隔符。常量C語言中使用的常量可分為數(shù)字常量、字符常量、字符串常量、符號常量、轉(zhuǎn)義字符等多種。2022/9/2219語言的字符集(1)字母 小寫字母az共26個,大寫字 母AZ共26個。(2)數(shù)字09共10個。(3)空格符、

11、制表符、換行符等統(tǒng)稱為空白符。(4)標(biāo)點和特殊字符2022/9/2220C語言程序設(shè)計的基本結(jié)構(gòu) (1)順序結(jié)構(gòu) ABa b 2022/9/2221(2)選擇結(jié)構(gòu),或稱分支結(jié)構(gòu) 此結(jié)構(gòu)中必包含一個判斷框。根據(jù)給定的條件P是否成立而選擇執(zhí)行A框或B框abBAp不成立成立2022/9/2222(3) 循環(huán)結(jié)構(gòu),它又稱為重復(fù)結(jié)構(gòu),即反復(fù)執(zhí)行某一部分的操作。又兩類循環(huán)結(jié)構(gòu): (a) 當(dāng)型(while型)循環(huán)結(jié)構(gòu)它的功能是判斷當(dāng)前給定的條件p1成立時,執(zhí)行A框操作,執(zhí)行完A后,再判斷條件p1是否成立,如果仍然成立,再執(zhí)行A框,如此反復(fù)執(zhí)行A框,直到某一次p1條件不成立為止,此時不執(zhí)行A框,而從b點脫離循

12、環(huán)結(jié)構(gòu)。ap1TFAb2022/9/2223(b)直到型(Until型)循環(huán)結(jié)構(gòu) 它的功能是先執(zhí)行A框,然后判斷給定的p2條件是否成立,如果p2條件不成立,則再執(zhí)行A,然后再對p2條件作判斷,如果p2條件仍然不成立,又執(zhí)行A如此反復(fù)執(zhí)行A,直到給定的p2條件成立為止,此時不再執(zhí)行A,從b點脫離本循環(huán)結(jié)構(gòu)。aAFTbp22022/9/2224本章課堂練習(xí) (1) 以下說法中正確的是( ). A) C語言程序總是從第一個函數(shù)開始執(zhí)行 B) 在C語言程序中,要調(diào)用的函數(shù)必須在main()函數(shù) 中定義 C) C語言程序總是從main()函數(shù)開始執(zhí)行 D) C語言程序中的main()函數(shù)必須放在程序的開

13、始 部分2022/9/2225解答:C解釋:C語言程序總是從main()函數(shù)開始執(zhí)行,而不論其在程序中的位置。當(dāng)主函數(shù)執(zhí)行完畢時,亦即程序執(zhí)行完畢。除main函數(shù)外,其它函數(shù)都是在執(zhí)行main函數(shù)時被調(diào)用執(zhí)行的。在C語言中,函數(shù)不允許嵌套定義。習(xí)慣上,將主函數(shù)main()放在最前頭,但并不是必須的。2022/9/2226(2)以下敘述不正確的是A)一個C源程序可由一個或多個函數(shù)組成B) 一個C源程序必須包含一個main函數(shù)C) C程序的基本組成單位是函數(shù) D) 在C程序中,注釋說明只能位于一條語句的后面2022/9/2227解答:D解釋: 凡是用“/*”和“*/”括起來的文字,都是注釋。其出現(xiàn)

14、的位置可以任意。2022/9/2228(3)下列標(biāo)識符中,合法的變量名有:A)a.b B)$888 C)A1 D) 3x56 2022/9/2229解答:C解釋:變量名只能由字母、數(shù)字和下劃線三種字符所組成,且第一個字符必須為字母或下劃線。C語言的關(guān)鍵字不能用作變量名。另外,C語言對英文字母的大小寫敏感,即同一字母的大小寫,被認(rèn)為是兩個不同的字符。習(xí)慣上,變量名和函數(shù)名中的英文字母用小寫,以增加可讀性。2022/9/2230 第二章 算法及算法設(shè)計簡介2.1 算法的概念2.2 算法的設(shè)計與表達(dá)2.3 簡單的算法實例2.4 結(jié)構(gòu)化程序設(shè)計方法簡介2022/9/2231算法的概念任何一個程序應(yīng)包含

15、的如下兩方面的內(nèi)容: (1)對數(shù)據(jù)的描述。在程序中要指定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式,即數(shù)據(jù)結(jié)構(gòu)(data structure). (2)對操作的描述。即操作步驟,也就是算法(algorithm)。著名計算機(jī)科學(xué)家沃思(Nikiklaus Wirth)提出公式 數(shù)據(jù)結(jié)構(gòu)算法程序算法:是對解決某個問題的方法步驟的描述。程序:從計算機(jī)角度來說,程序是用某種計算機(jī)能理解并執(zhí) 行的計算機(jī)語言描述解決問題的方法和步驟。2022/9/2232實際上,一個程序除了以上兩個主要要素之外,還應(yīng)當(dāng)采用結(jié)構(gòu)化程序設(shè)計方法進(jìn)行程序設(shè)計,并且用某一種計算機(jī)語言表示。因此,可以這樣表示: 程序算法數(shù)據(jù)結(jié)構(gòu)程序設(shè)計方法語言工

16、具和環(huán)境 在這4個方面中,算法是靈魂,數(shù)據(jù)結(jié)構(gòu)是加工對象,語言是工具,編程需要采用合適的算法。算法是解決“做什么”和“怎么做”的問題。2022/9/2233算法的表示 1、用自然語言表示算法 采用漢語、英語或其它語言來描述解決問題的方法和步驟。由于自然語言容易出現(xiàn)“歧義性”,且描述問題的文字冗長,因此一般很少使用自然語言來描述算法。 2022/9/2234例1: 有50個學(xué)生 ,要求將他們之中成績在80分以上者打印出來。用n表示學(xué)號,n1代表第一個學(xué)生學(xué)號,ni代表第i個學(xué)生學(xué)號。用g代表學(xué)生成績, gi 代表第i個學(xué)生成績,算法可表示如下:S1:1i S2:讀入學(xué)號ni和成績gi S3: 如

17、果gi 80 ,則打印 ni 和gi ,否則不打印S4: i+1 i S5: 如果 i 50, 返回S2, 繼續(xù)執(zhí)行; 否則,算法結(jié)束。 2022/9/2235起止框輸入/輸出框判斷框處理框流程線2、用流程圖表示算法(1)常用的流程圖符號2022/9/2236上例用流程圖表示: (1) 流程圖表示算法的優(yōu)點: 表示算法直觀形象,比較清楚地顯示出各個框之間 的邏輯關(guān)系。 簡單,易于掌握。 流程圖2022/9/22373、用NS圖表示算法 1973年美國學(xué)者I.Nassi和B.Shneiderman提出了一種新的流程圖形式。在這種流程圖中,完全去掉了帶箭頭的流程線。全部算法寫在一個矩形框內(nèi),在該框

18、內(nèi)還可以包含其他的從屬于它的框。 這種流程圖又稱NS結(jié)構(gòu)化流程圖。NS流程圖用以下的流程圖符號:(1)順序結(jié)構(gòu):AB2022/9/2238(2)選擇結(jié)構(gòu):P成立不成立AB(3)循環(huán)結(jié)構(gòu):當(dāng)p1成立A當(dāng)型循環(huán)結(jié)構(gòu)直到p1成立A直到型循環(huán)結(jié)構(gòu)用以上3種NS流程圖中的基本框,可以組成復(fù)雜的NS流程圖,以表示算法2022/9/2239上例用NS圖表示:用NS表示算法如圖 1=i輸入ni,gigi80是否輸出ni,gii+1=i直到i502022/9/22404、用偽碼表示算法 偽代碼是用介于自然語言和計算機(jī)語言之間的文字和符號來描述算法。它不用圖形符號,因此書寫方便,格式緊湊,也比較好懂,便于向計算機(jī)

19、語言算法(即程序)過渡。 例 有50個學(xué)生,要求將他們之中成績在80分以上者打印出來。用n表示學(xué)生學(xué)號,n1表示第一個學(xué)生學(xué)號,ni表示第i個學(xué)生學(xué)號。用g表示學(xué)生成績,gi表示第i個學(xué)生成績。2022/9/2241BEGIN(算法開始)1=iWhile ii END(算法結(jié)束) 用偽代碼表示算法如下:2022/9/22425、用計算機(jī)語言表示算法 設(shè)計算法的目的是為了實現(xiàn)算法。因此,不僅要考慮如何設(shè)計一個算法,也要考慮如何實現(xiàn)一個算法。我們的任務(wù)是用計算機(jī)解題,也就是要用計算機(jī)實現(xiàn)算法。計算機(jī)是無法識別流程圖和偽代碼的。只有用計算機(jī)語言編寫的程序才能被計算機(jī)執(zhí)行(當(dāng)然還要經(jīng)過編譯成目標(biāo)程序才

20、能被計算機(jī)識別和執(zhí)行)。因此,在用流程圖或偽代碼描述出一個算法后,還要將它轉(zhuǎn)換成計算機(jī)語言程序。2022/9/2243例: 有50個學(xué)生,要求將他們之中成績在80分以上者打印出來。用n表示學(xué)生學(xué)號,n1表示第一個學(xué)生學(xué)號,ni表示第i個學(xué)生學(xué)號。用g表示學(xué)生成績,gi表示第i個學(xué)生成績。C語言程序如下:main( ) int g50,n50,i; for(i=0;i50;i+) scanf(“%d,%d”,&ni,&gi); for(i=0;i=80) printf(“%6d,%3dn”,ni,gi);2022/9/2244例2:對一個大于或等于3的正整數(shù),判斷它是不是一個素數(shù)。方法:將 n

21、(其中n 3) 作為被除數(shù), 將2 到(n-1) 各個整數(shù)輪流作為除數(shù),如果都不能被整除,則n為素數(shù)。簡單的算法實例2022/9/2245算法表示如下:S1:輸入n的值S2:2 i ( i 作為除數(shù)) S3: n 被 i 除,得余數(shù) rS4: 如果 r 等于 0 , 表示 n 能 被 i 整除,則打印 n “不是素數(shù)”,算法結(jié)束;否則執(zhí)行S5S5:i+1 i S6: 如果 i n-1, 返回S3;否則,打印 n “是素數(shù)”,算法結(jié)束。2022/9/2246S1: 1 signS2: 1 sumS3: 2 denoS4: (-1)*sign signS5: sign*(1/deno) termS

22、6: sum+term sumS7: deno+1 denoS8: 若deno 100 返回S4;否則算法結(jié)束。例3:求 1-1/2 + 1/3 1/4 + 1/99 1/100。2022/9/2247結(jié)構(gòu)化程序設(shè)計方法簡介 1、三種基本結(jié)構(gòu)回顧 (1)順序結(jié)構(gòu) ABa b 2022/9/2248(2)選擇結(jié)構(gòu),或稱分支結(jié)構(gòu) abBAp不成立成立2022/9/2249(3) 循環(huán)結(jié)構(gòu),它又稱為重復(fù)結(jié)構(gòu),即反復(fù)執(zhí)行某一部分的操作。又兩類循環(huán)結(jié)構(gòu): (a) 當(dāng)型(while型)循環(huán)結(jié)構(gòu)ap1TFAb2022/9/2250(b)直到型(Until型)循環(huán)結(jié)構(gòu) aAFTbp22022/9/22512、

23、結(jié)構(gòu)化程序 所謂結(jié)構(gòu)化程序,就是僅僅使用順序、選擇、循環(huán)等三種基本結(jié)構(gòu)所構(gòu)造的程序。 3、結(jié)構(gòu)化程序設(shè)計方法 結(jié)構(gòu)化程序設(shè)計方法的基本思想是,把一個復(fù)雜問題的求解過程分階段進(jìn)行。每個階段的問題都控制在人們?nèi)菀桌斫夂吞幚淼姆秶鷥?nèi)。 2022/9/22521 = ii+1 =igi80i50結(jié)束開始打印ni,giYNNY讀入ni和gi2022/9/2253解答:()用自然語言表示()用傳統(tǒng)的流程圖表示()NS流程圖()用偽代碼表示等。1、算法的表示形式主要有哪些?課堂練習(xí)2022/9/22542、設(shè)計算法:A、B兩人各有一桶油,現(xiàn)兩人要將各自桶 內(nèi)的油互換。解答:必須借助另外一個空桶,并按如下算法

24、進(jìn)行:(用Si表示第i步操作,A的桶叫A,B的桶叫B,空桶叫M)開始: S1:將A桶中的油倒入M桶中; S2:將B桶中的油倒入A桶中; S3:將M桶中的油倒入B桶中; 2022/9/22553、設(shè)計算法寫出求n!的算法解答:S1:給出n的值;S2: 1=p;S3: 2=i;S4: p*i=p;S5: i+1=i;S6: 若i=n,返回S4;否則,結(jié)束 第三章 數(shù)據(jù)描述與基本操作3.1 基本數(shù)據(jù)類型 3.2 常用的運(yùn)算符和表達(dá)式3.3 表達(dá)式及賦值語句3.4 基本輸入輸出操作的實現(xiàn)3.5 順序結(jié)構(gòu)程序設(shè)計實例概 述 使用高級語言編寫程序,必須在程序中做好兩件事:一是描述數(shù)據(jù),二是描述數(shù)據(jù)的加工方

25、法。前者是通過數(shù)據(jù)定義語句實現(xiàn)的,后者是通過若干執(zhí)行語句,包括用各種運(yùn)算符構(gòu)成的表達(dá)式來實現(xiàn)的。本單元主要介紹C語言的基本數(shù)據(jù)類型,為后續(xù)單元的學(xué)習(xí)奠定一個基礎(chǔ)。關(guān)于復(fù)雜的數(shù)據(jù)類型(如數(shù)組、指針、結(jié)構(gòu)型、共用型等)將在以后單元中介紹。3.1 C語言的數(shù)據(jù)類型 C語言具有十分豐富的數(shù)據(jù)類型。所謂數(shù)據(jù)類型是指數(shù)據(jù)的內(nèi)在表現(xiàn)形式。具體的數(shù)據(jù)類型有以下若干種: 1.基本數(shù)據(jù)類型:整型、實型和字符型。 2.構(gòu)造類型: 由若干個相關(guān)的基本數(shù)據(jù)類型數(shù)據(jù)組合在一起形 成的一種復(fù)雜的數(shù)據(jù)類型,如數(shù)組型、結(jié)構(gòu)型和共用型。 3.指針型:一種簡單的數(shù)據(jù)類型,它是用來表示內(nèi)存地址的。 指針類型的數(shù)據(jù)可以表示基本類型數(shù)據(jù)

26、的地址,它可以表 示結(jié)構(gòu)類型數(shù)據(jù)的首地址和其中某個具體數(shù)據(jù)的地址。 4.枚舉型:某數(shù)據(jù)在程序運(yùn)行中,只取固定的幾個值。我們可 以把這幾個值列出來,以后這個數(shù)據(jù)只能取這幾個值中的 某一個。 5. 空類型:沒有任何具體值的數(shù)據(jù)類型。 C語言中的數(shù)據(jù)類型如下圖所示: 數(shù)據(jù)類型基本類型整型字符型實型(浮點型)單精度型 雙精度型 枚舉類型 構(gòu)造類型 數(shù)組類型 結(jié)構(gòu)體類型 共用體類型 指針類型 空類型 2022/9/2261常量和變量2.常量的分類 (1)整型常量 (2)實型常量 (3)字符常量 (4)字符串常量 (5)符號常量 常量的類型,可通過書寫形式來判別。常量 1.常量的概念 在程序運(yùn)行過程中,其

27、值不能被改變的量稱為常量。2022/9/2262變量1.變量的概念在程序運(yùn)行過程中,其值可以被改變的量稱為變量。2.變量的兩個要素(1)變量名。每個變量都必須有一個名字變量名,變量命名遵循標(biāo)識符命名規(guī)則。(2)變量值。在程序運(yùn)行過程中,變量值存儲在內(nèi)存中。在程序中,通過變量名來引用變量的值。2022/9/2263變量有以下幾個特征:變量名、變量值、變量的數(shù)據(jù)類型、變量的地址、變量的存儲類別、變量的作用域及變量的生存期等。變量必須先定義后使用。定義變量格式如下:數(shù)據(jù)類型關(guān)鍵字 ;如int x,y,z;變量的初始化:變量賦初值的過程就是變量初始化過程。 整型數(shù)據(jù)整型常量:整型常量就是整常數(shù),包括正

28、整數(shù)和負(fù)整數(shù)及 0。其書寫形式如下:(1)十進(jìn)制整數(shù)。如 123,456,0。(2)八進(jìn)制整數(shù)。以0開頭的是八進(jìn)制數(shù)。如0123表示八進(jìn)制 數(shù)123,即(123)8 。(3)十六進(jìn)制整數(shù)。以0 x開頭的數(shù)是十六進(jìn)制數(shù)。如0 x123, 代表十六進(jìn)制數(shù), (123)16116216316256323291。 整型常量在一般微型機(jī)中占用2個字節(jié),不管是 十進(jìn)制、八進(jìn)制或十六進(jìn)制整數(shù),它們的數(shù)值范 圍都是十進(jìn)制的3276832767。注意: C語言還提供一種“長整型常量”。它們的數(shù)值范圍 是十進(jìn)制的21474836482147483647,在計算 機(jī)中占用四個字節(jié),它們的書寫方法是在數(shù)據(jù)的末 尾加一

29、個大寫字母“L”或小寫字母“l(fā)”,如0L,038L,0 x15L。2022/9/2266 整型變量1.分類 根據(jù)占用內(nèi)存字節(jié)數(shù)的不同,整型變量又分為類:(1)基本整型(類型關(guān)鍵字為int)。(2)短整型(類型關(guān)鍵字為short int)。(3)長整型(類型關(guān)鍵字為long int)。(4)無符號整型。無符號型又分為無符號基本整型(unsigned int)、無符號短整型(unsigned short)和無符號長整型(unsigned long)三種,只能用來存儲無符號整數(shù)。2.占用內(nèi)存字節(jié)數(shù)與值域 上述各類型整型變量占用的內(nèi)存字節(jié)數(shù),隨系統(tǒng)而異。在16位操作系統(tǒng)中,一般用字節(jié)表示一個int型變

30、量,且long型(字節(jié))int型(字節(jié))short型(字節(jié))。2022/9/2268 實型數(shù)據(jù) 實型常量 .表示形式實型常量即實數(shù),在語言中又稱浮點數(shù),其值有兩種表達(dá)形式: (1)一般形式的實數(shù),它是由整數(shù)、小數(shù)點、小數(shù)三部分組 成。 其中整數(shù)部分或小數(shù)部分可以省略。數(shù)的正負(fù)用前 面的“”(可以省略)號或“”號來區(qū)分。例如, 12.345,1.2345,47.0,.234,47.等都是實型常量。(2)指數(shù)形式的實數(shù),它是由尾數(shù)、小寫字母e或大寫字母E、 指數(shù)三部分組成,尾數(shù)部分可以是十進(jìn)制整型常量或一般 形式的實數(shù),指數(shù)部分是十進(jìn)制的短整型常量(可以帶E負(fù) 號)例如, 12.3e2,1.2e-

31、3,47.0e2,.234e-3 等都是實 型常量。 C語言規(guī)定,字母e(或者E)之前必須要有數(shù)字,且e(或者E)后面的指數(shù)必須為整數(shù)。 如:e3,5e3.5,.e3都是不合法的指數(shù)形式。注意: 實型常量在一般的微機(jī)中是占用4個字節(jié)的,不管是一般形式還是指數(shù)形式,它們的數(shù)值范圍都是10 10 有效數(shù)字7位。例如,1.23456789和1.234567是相同的,因為實型常量的有效數(shù)字是7位,所以1.23456789中的后兩位是無效的。38382022/9/2271實型變量語言的實型變量,分為兩種: (1)單精度型。類型關(guān)鍵字為float,一般占字節(jié) (位)、提供位有效數(shù)字。 (2)雙精度型。類型

32、關(guān)鍵字為double,一般占個字節(jié)、提供1516位有效數(shù)字。字符型數(shù)據(jù)A、把單個字符用一對單引號括起來表示字符常量。 如a,d,w,?等都是字符常量。B、用該字符的ASCII碼值表示字符常量。如65表示AC、轉(zhuǎn)義字符:反斜杠開頭后跟規(guī)定的單個字符或數(shù)字,并用一對單引號括起來表示字符常量。如下:一 字符常量1.字符常量是ASCII碼字符集里的一個字符,包括字母(大、小寫有區(qū)別)、數(shù)字和標(biāo)點符號以及特殊字符等,均為半角字符。2.字符常量表示形式: 字符形式 含 義 ASC n換行,將當(dāng)前位置移到下一行開頭 10 t水平制表(跳到下一個tab位置) 9 b退格,將當(dāng)前位置移到前一列 8 r回車,將當(dāng)

33、前位置移到本行開頭 13 f換頁, 將當(dāng)前位置移到下頁開頭 12 反斜杠字符“” 92 單引號(撇號)字符 39 “雙引號字符 34 ddd1到3位8進(jìn)制數(shù)所代表的字符 xhh1到2位16進(jìn)制數(shù)所代表的字符 2022/9/2274 字符變量字符變量的定義形式如下: char c1, c2; 它表示c1和c2為字符型變量,各可以放一個字符,注意只能放一個字符,不要以為在一個字符變量中可以放一個字符串。 一般一個字符變量在內(nèi)存中占一個字節(jié)。2022/9/2275例1:字符與整數(shù)的轉(zhuǎn)化#include stdio.hvoid main() int i; char n; n=97; i=b; prin

34、tf(n=%cn,n); printf(i=%dn,i); printf(i=%cn,i);程序的輸出為: n=a i=98 i=b2022/9/2276例2 字符參與整數(shù)運(yùn)算#include stdio.hvoid main() char n; n=a; n=n-65; printf(n=%dn,n);程序的輸出結(jié)果為: n=322022/9/2277例3 字母的大小寫轉(zhuǎn)換#include stdio.hvoid main() char n,i; n=a; i=B; n=n-32; i=i+32; printf(n=%cn,n); printf(i=%cn,i); 程序的輸出為n=Ai=b

35、二 字符串常量 字符串就是用兩個雙引號(“)號后括住的若干個字符, 例如,“abc”,“123 456”,“aBbB”都是字符串。 轉(zhuǎn)義符可以出現(xiàn)在字符串中,例如,“ABC”, “101102x43x44”等都是字符串,分別表示“ABCD”、 “ABCD”兩個字符串。 一個字符串中所有的字符的個數(shù)稱為該字符串的長度, 其中每個轉(zhuǎn)義字符只當(dāng)做一個字符。例如,“ABC”的長 度為5。注意!a與“a”的區(qū)別。 C語言規(guī)定:每個字符串在內(nèi)存中占用的字符數(shù)等于字符 串的長度1。其中最后一個字符存放的字符稱為“空字符” 其值為0,書寫時常用轉(zhuǎn)義字符“0”來表示。在C語言中稱 為字符串結(jié)束標(biāo)志。關(guān)于變量的補(bǔ)

36、充內(nèi)容 1. 變量: 變量是指在程序運(yùn)行過程中其值可以發(fā)生變化的量。 2. 變量的取名規(guī)則為:以字母、下劃線“_”開頭,后跟若干 個字母、下劃線、數(shù)字。一般約定,用戶使用的變量名采用 以字母開頭,C語言內(nèi)部使用的變量名以下劃線開頭。例如, abc,a_1,age_1等都是合法的變量名,而3a,age則是非 法的變量名。 當(dāng)程序運(yùn)行時,每個變量都要占用若干個連續(xù)的字節(jié),所占用的字節(jié)數(shù)由變量的數(shù)據(jù)類型確定。其中第1個字節(jié)的地址稱為變量的地址。C語言規(guī)定,程序中變量的地址是用 “&變量名”來表示的。 3.變量的數(shù)據(jù)類型及其定義 (1) 變量可以是任何一種數(shù)據(jù)類型,具有某種數(shù)據(jù)類型的 變量就叫做該類型

37、變量。(2) 每個變量在使用前必須定義,說明其數(shù)據(jù)類型。(3) 定義變量數(shù)據(jù)類型的語句格式如下: 數(shù)據(jù)類型符 變量1,變量2.; 數(shù)據(jù)類型 數(shù)據(jù)類型符占用字節(jié)數(shù) 數(shù)據(jù)范圍 整型 int 2(或4)同短整型(或長整型) 短整型 short 23276832767 長整型 long 4-21474836482147483647無符號整型unsigned int 2(或4)同無符號短整型(或長整型)無符號短整型unsigned short 2 065535無符號長整型unsigned long 4 04294967295單精度實型 float 4 10 10雙精度實型 double 8 10 10

38、字符型 char 1 128127基本數(shù)據(jù)類型符及含義如下表所示:38383083085.變量的初始化 (1)在定義變量的同時給變量賦予初始值就稱為變量的初始化。(2)變量賦初值的語句格式如下: 存儲類型符 數(shù)據(jù)類型符 變量名1初值1,變量名2初值2, 3.2 運(yùn)算符 1 概述 2 算術(shù)運(yùn)算符 3 賦值運(yùn)算符4 逗號運(yùn)算符5條件運(yùn)算符6長度運(yùn)算符7位運(yùn)算符8 關(guān)系運(yùn)算符-下章介紹9邏輯運(yùn)算符 下章介紹一. 概述用來表示各種運(yùn)算的符號稱為運(yùn)算符。 運(yùn)算符必須有運(yùn)算對象,運(yùn)算對象是一個的,則稱為 單目運(yùn)算;運(yùn)算對象是兩個的,則稱為雙目運(yùn)算;運(yùn)算對 象是三個的,則稱為三目運(yùn)算。例如,數(shù)值運(yùn)算中經(jīng)常用

39、到的、*、/等。 每個運(yùn)算符都代表對運(yùn)算對象的某種運(yùn)算,都有自己 特定的運(yùn)算規(guī)則。每個運(yùn)算符運(yùn)算的對象都規(guī)定了數(shù)據(jù)類型, 同時運(yùn)算結(jié)果也有確定的數(shù)據(jù)類型。 當(dāng)表達(dá)式中出現(xiàn)多個運(yùn)算符,計算表達(dá)式值時,就有誰 先算,誰后算的問題,我們把這個問題稱為運(yùn)算符的優(yōu)先級。 計算表達(dá)式值時,優(yōu)先級高的運(yùn)算要先進(jìn)行運(yùn)算。 同級別的運(yùn)算符有左結(jié)合和右結(jié)合之分。C的運(yùn)算符十分豐富,有13類,30多種,其分類如下: C語言運(yùn)算符基本運(yùn)算符算術(shù)運(yùn)算符基本算術(shù)運(yùn)算符(、*、/、)增1減1運(yùn)算符 (、)關(guān)系運(yùn)算符(、=、!)邏輯運(yùn)算符(!、&、|)賦值運(yùn)算符基本賦值運(yùn)算符()算術(shù)自反賦值運(yùn)算符(、*、/、)逗號運(yùn)算符(,

40、)條件運(yùn)算符(?:)數(shù)據(jù)長度運(yùn)算符(sizeof)位運(yùn)算符位邏輯運(yùn)算符(、&、|、)位移運(yùn)算符(、,.)指針運(yùn)算符(&,*)注意!少數(shù)運(yùn)算符號有雙重意義,主要有以下幾種: (1)“”號,在算術(shù)運(yùn)算中即表示單目的取正運(yùn)算, 又可表示雙目的加法運(yùn)算。(2)“”號,在算術(shù)運(yùn)算中即表示單目的取負(fù)運(yùn)算, 又可表示雙目的減法運(yùn)算(3)“*”號,在算術(shù)運(yùn)算中即表示雙目的乘法運(yùn)算, 在指針運(yùn)算中表示指針變量指向的變量。(4)“&”號,在位邏輯運(yùn)算中表示雙目“與”運(yùn)算, 在指針運(yùn)算中表示取地址的運(yùn)算。二.算術(shù)運(yùn)算符 1.基本算術(shù)運(yùn)算符 基本算術(shù)運(yùn)算符的運(yùn)算對象、運(yùn)算規(guī)則與結(jié)果、結(jié)合性如表所示 :對象數(shù)運(yùn)算符 名

41、稱運(yùn)算對象運(yùn)算結(jié)果結(jié)合性單 目雙 目正負(fù)整 型 或?qū)?型整 型 或?qū)?型自右向左自左向右 * /加減乘除整除取余整型整數(shù)算術(shù)運(yùn)算符的優(yōu)先級規(guī)定如下: 單目基本算術(shù)運(yùn)算符 優(yōu)先于 雙目基本算術(shù)運(yùn)算符 *、/、 優(yōu)先于 、 同級單目基本算術(shù)運(yùn)算符的結(jié)合性是自右向左 同級雙目基本算術(shù)運(yùn)算符的結(jié)合性是自左向右 例1.基本算術(shù)運(yùn)算符的使用 設(shè)變量定義如下: int n=10, m=3; float f=5.0,g=10.0; double d=5.0,e=10.0;則 n的結(jié)果是10 nm,nm,n*m,n/m,n%m的結(jié)果 分別為13、7、30、3、1 de,de,d*e,d/e的結(jié)果 分別為15.0

42、,5.0,50.0,0.5 nmf*g/d的運(yùn)算順序相當(dāng)于 (nm(f*g)/d),結(jié)果是3.0 nm*f*d的運(yùn)算順序相當(dāng)于 (nm)*f)*d,結(jié)果是25.0 如果參加運(yùn)算的兩個數(shù)中有一個為浮點型,則結(jié)果是double型2 增1減1運(yùn)算符(1)增1減1運(yùn)算符的運(yùn)算對象、運(yùn)算規(guī)則與結(jié)果、 結(jié)合性如下表所示: 對象數(shù)單目名稱運(yùn)算符運(yùn)算規(guī)則運(yùn)算對象運(yùn)算結(jié)果結(jié)合性增1(前綴)先加1后使用增1(后綴)減1(前綴)減1(后綴)先使用后加1先減1后使用先使用后減1整型、字符型、指針型變量或數(shù)組元素同運(yùn)算對象的類型自右向左(2)增1減1運(yùn)算符的優(yōu)先級: 增1減1運(yùn)算符 優(yōu)先于 雙目基本算術(shù)運(yùn)算符 增1減1

43、運(yùn)算符和單目運(yùn)算符、同級別,結(jié)合性 是自右向左 注意: 若出現(xiàn)難以區(qū)分的若干個或組成運(yùn)算符串時, C語言規(guī)定,自左向右取盡可能多的符號組成運(yùn)算符。例1:ab 應(yīng)理解為(a)b ab應(yīng)理解為 (a)b 例2:增1減1運(yùn)算符的使用 設(shè)變量定義如下:char c1b,c2B; (c1,c2可看成整型,其值分別為98,66) 則: c1 的值是99,運(yùn)算后c1的值是c c1 的值是98,運(yùn)算后c1的值是a c1c2的值是164,運(yùn)算后c1的值是c,c2的值是B c1c2的值是32,運(yùn)算后c1的值是a,c2的值是B 三.賦值運(yùn)算符 1.賦值運(yùn)算符 賦值運(yùn)算符是雙目運(yùn)算符,賦值運(yùn)算符的左邊必須是變量,右邊

44、是表達(dá)式。 (1) 賦值運(yùn)算符的運(yùn)算對象及有關(guān)規(guī)則如下表: 對象數(shù)名稱運(yùn)算符運(yùn)算規(guī)則運(yùn)算結(jié)果結(jié)合性 雙目賦值 將表達(dá)式的值賦予變量 表達(dá)式的 類型自右向左(2) 賦值運(yùn)算符的優(yōu)先級 算術(shù)運(yùn)算符 優(yōu)先于 關(guān)系運(yùn)算符 優(yōu)先于 雙目邏輯運(yùn)算符 優(yōu)先于 賦值運(yùn)算符 賦值運(yùn)算符的結(jié)合性是自右向左 (3) 賦值運(yùn)算符的使用 設(shè)變量定義如下: char c1a,c2; int n165,n2,n3,n4,n5,n6; float f13.0,f2; 則: c2n1運(yùn)算后,c2的值是65,n1的值不變。 n2!c1運(yùn)算后,n2的值是0,c1的值不變。 f2f10.001運(yùn)算后,f2的值是3.001,f1的值不

45、變。 n3c1n1|c1!n1運(yùn)算后,n3的值是1,c1和n1 的值不變。注:運(yùn)算順序相當(dāng)于 n3(c1n1)|(c1!n1) n4n5n6(n1)運(yùn)算后,n4,n5,n6的值 均是64,n1的值是64。 注意:上述表達(dá)式的值就等于賦值表達(dá)式中的最左邊的變量值。 2 .算術(shù)自反賦值運(yùn)算符 (1) 運(yùn)算規(guī)則 對象數(shù)名稱運(yùn)算符運(yùn)算規(guī)則運(yùn)算對象運(yùn)算結(jié)果結(jié)合性雙目加賦值減賦值乘賦值除賦值模賦值*/ =%=a+=b相當(dāng)于a=a+(b)a=b相當(dāng)于a=a(b)a*=b相當(dāng)于a=a*(b)a/=b相當(dāng)于a=a/(b)a%=b相當(dāng)于a=a%(b)數(shù)值型數(shù)值型自右向左整型整型(2)算術(shù)自反賦值運(yùn)算符的優(yōu)先級 算

46、術(shù)運(yùn)算符 優(yōu)先于 關(guān)系運(yùn)算符 優(yōu)先于 雙目邏輯運(yùn)算符 優(yōu)先于 算術(shù)自反賦值運(yùn)算符 算術(shù)自反賦值運(yùn)算符和賦值運(yùn)算符是同級別的,結(jié)合性是 自右向左 (3)算術(shù)自反賦值運(yùn)算符的使用 設(shè)變量定義如下 int n1=10, n2=10, m1=10, m2=10, m3=10, m4=10; 則: n1n2,n1的值為20,n2的值不變 n1n2,n1的值為0,n2的值不變 n1*n2,n1的值為100,n2的值不變 n1/n2, n1的值為1,n2的值不變 m1m2m3*m4/2 運(yùn)算后, m1,m2,m3,m4的值依次是30,40,50,5。 運(yùn)算順序相當(dāng)于m1(m2(m3*(m4/2) 四.逗號運(yùn)

47、算符 逗號運(yùn)算符是雙目運(yùn)算符,其運(yùn)算對象是表達(dá)式。 1.逗號運(yùn)算符 對象數(shù)名稱運(yùn)算符運(yùn)算規(guī)則運(yùn)算對象 結(jié)合性 雙目逗號 ,依次計算前、后表達(dá)式 表達(dá)式自左向右注意:由逗號運(yùn)算符組成的式子也是表達(dá)式,其值等于最右邊 的表達(dá)式的值 2.逗號運(yùn)算符的優(yōu)先級 任何運(yùn)算符 優(yōu)先于 逗號運(yùn)算符 逗號運(yùn)算符的結(jié)合性是自左向右3. 例題。設(shè)整型變量a,b為2, 則: ba3,cb4 運(yùn)算結(jié)果:a不變,b為5,c為9,表達(dá)式的值為9 da,ed,fe 運(yùn)算結(jié)果:a為1,d為1,e為1,f為1,表達(dá)式的值為1 五.條件運(yùn)算符 1.條件運(yùn)算符 對象數(shù) 名稱運(yùn)算符 運(yùn)算規(guī)則運(yùn)算對象運(yùn)算結(jié)果結(jié)合性 三目條件 ?:對e1

48、?e2:e3e1為真,獲得e2e1為假,獲得e3 表達(dá)式e2(e3)的類型 自右 向左 2.條件運(yùn)算符的優(yōu)先級 其它運(yùn)算符 優(yōu)先于 條件運(yùn)算符 優(yōu)先于 賦值、算術(shù)自反賦值運(yùn)算符 條件運(yùn)算符的結(jié)合性是自右向左 3.例子 (1) 設(shè)整型變量a,b,c,d均為2 則ab?(c1):(d0); 結(jié)果a,b,d不變,c為1,表達(dá)式的值為1 (2) a13?(ba2):(ca3); 結(jié)果a,c不變,b為4,表達(dá)式值為4 (3) ab?(c0):(ab?(c1):(c1)); 結(jié)果a,b不變,c為0,表達(dá)式的值為0 1.長度運(yùn)算符 六.長度運(yùn)算符 對象數(shù) 名稱運(yùn)算符 運(yùn)算規(guī)則運(yùn)算對象運(yùn)算結(jié)果結(jié)合性 單目長度

49、sizeof測試數(shù)據(jù)類型所占用的字節(jié)數(shù)類型說明符或變量 整型 無2.長度運(yùn)算符優(yōu)先級 和單目算術(shù)運(yùn)算符、單目邏輯運(yùn)算符、增1減1運(yùn)算符同級別3.例子 設(shè)變量定義如下: int n; short s; unsigned long u3;float f; char c; 則 sizeof(n)的值是2 sizeof(s)的值是2 sizeof(long)的值是4 sizeof(unsigned int)的值是2 sizeof(u3)的值是4 sizeof(f)的值是4 sizeof(double)的值是8 sizeof(c)的值是1 注意:上述結(jié)果是Turbo C 2.0在微機(jī)上運(yùn)行的結(jié)果。 20

50、22/9/22107七 位運(yùn)算C語言中提供的位運(yùn)算符: 、 、 & 、 、1.按位取反運(yùn)算符形式: A功能:把A的各位都取反,(即0變1,1變0)例如:int A=179A0000000010110011A11111111010011002022/9/221082. 按位與運(yùn)算符 &形式:A&B功能:對A的各位與B的對應(yīng)位進(jìn)行比較,如果兩者都為1, A&B對應(yīng)位上的值為1,否則為0。例如:int A=179(二進(jìn)制0000000010110011) int B=169(二進(jìn)制0000000010101001)A0000000010110011B0000000010101001A&B000000

51、00101000012022/9/221093. 按位或運(yùn)算符|形式:A | B功能:對A的各位與B的對應(yīng)位進(jìn)行比較,如果兩者中有一個 為1,A|B對應(yīng)位上的值為1,否則為0。例如:int A=179(二進(jìn)制0000000010110011) int B=169(二進(jìn)制0000000010101001)A0000000010110011B0000000010101001A|B00000000101110112022/9/221104. 按位異或運(yùn)算符 形式:AB功能:對A的各位與B的對應(yīng)位進(jìn)行比較,如果兩者不同, AB對應(yīng)位上的值為1,否則為0。例如:int A=179(二進(jìn)制00000000

52、10110011) int B=169(二進(jìn)制0000000010101001)A00000000101 10011B0000000010101001AB00000000000110102022/9/221115. 左移運(yùn)算符 形式:An ( 其中 n為一個大于0的整型表達(dá)式)功能:把A的值向左移動n位,右邊空出的n位用0填補(bǔ)。 當(dāng)左移時移走的高位中全都是0時,相當(dāng)于對A作n 次乘 以2的運(yùn)算。例如:int A=27(二進(jìn)制0000000000011011)A0000000000011011A形式:An ( 其中 n為一個大于0的整型表達(dá)式)功能:把A的值向右移動n位,左邊空出的n位用0填補(bǔ)。

53、 相當(dāng)于對A作n 次除以2的運(yùn)算。例如:int A=179(二進(jìn)制0000000010110011)A0000000010110011A300000000000101103.3 表達(dá)式 用運(yùn)算符將運(yùn)算對象連接形成的式子就是表達(dá)式。 1.表達(dá)式的定義2.C語言的表達(dá)式非常豐富,也有人稱C語言為表達(dá)式語言。C語言使用的基本表達(dá)式有: 賦值表達(dá)式,如:a=3 算術(shù)表達(dá)式,如:3+4*2 關(guān)系表達(dá)式,如:32 邏輯表達(dá)式,如:35&a=b 條件表達(dá)式,如:ab?a:b 逗號表達(dá)式,如:a=3,b=4,c=53.4 賦值語句 1.構(gòu)成規(guī)則: (1) 變量表達(dá)式; (2) 變量 賦值運(yùn)算符 表達(dá)式 分號2

54、022/9/221162.注意區(qū)分賦值語句和賦值表達(dá)式的區(qū)別: 例如 a=b+2 (這是賦值表達(dá)式) a=b+2; (這是賦值語句) a+ + (這是表達(dá)式) a+ +; (這是賦值語句,等價 與 a=a+1;)2022/9/221173.5 輸入輸出在C語言中的實現(xiàn) 1.輸入輸出的概念 從計算機(jī)向外部輸出設(shè)備(如顯示屏、打印機(jī)、磁盤等)輸出數(shù)據(jù)稱為“輸出”,從外部向輸入設(shè)備(如鍵盤、磁盤、光盤、掃描儀等)輸入數(shù)據(jù)稱為“輸入”。2.C語言本身不提供輸入輸出語句,輸入和輸出操作是由函數(shù)來實現(xiàn)的。在C標(biāo)準(zhǔn)函數(shù)庫中提供了一些輸入輸出函數(shù),例如,printf函數(shù)和scanf函數(shù)。2022/9/2211

55、83.在使用C語言庫函數(shù)時,要用預(yù)編譯命令“include”將有關(guān)的“頭文件”包括到用戶源文件中。在調(diào)用標(biāo)準(zhǔn)輸入輸出庫函數(shù)時,文件開頭應(yīng)有以下預(yù)編譯命令: # include 或# include “stdio.h” 4.允許在使用printf和scanf兩個函數(shù)時可不加#include命令。2022/9/22119一、字符數(shù)據(jù)的輸入輸出1.putchar函數(shù)(字符輸出函數(shù)) 函數(shù)格式:putchar( C ) ; C可以是字符型變量或整型變量或常量 函數(shù)的功能:向終端輸出一個字符2022/9/221202.程序?qū)嵗?#include main( ) char a, b, c ; a=B; b

56、=O; c=Y; putchar(a); putchar(b); putchar(c); 注意:該程序可以輸出控制字符,如putchar(n) 輸出一個換行符,也可以輸出其他轉(zhuǎn)義字符 如 putchar(101) (輸出字符A) putchar() (輸出單引號字符)運(yùn)行結(jié)果: BOY2022/9/221213.getchar 函數(shù)(字符輸入函數(shù)) 函數(shù)格式,getchar ( ) 函數(shù)的功能:從終端輸入一個字符,函數(shù)的值就是從輸入設(shè)備得到的字符。4.程序?qū)嵗?#include main ( ) char c; c=getchar( ); putchar(c); 在運(yùn)行時,如果從鍵盤輸入字符a

57、并按回車鍵,就會在屏幕上看到輸出的字符a。a (輸入a后,按“回車”鍵,字符才送到內(nèi)存)a (輸出變量 c 的值a)2022/9/22122注意: (1)getchar( )只能接收一個字符,getchar函數(shù)收到的字符可以賦給一個字符變量或整型變量。 (2)若在程序中調(diào)用getchar、putchar函數(shù),則必須在程序的開頭部分加上“包含命令” #include 或 #include “stdio.h”2022/9/22123二、格式輸入與輸出(一)、printf 函數(shù)(格式輸出函數(shù))1.printf函數(shù)的一般格式為 printf(“格式控制字符串”,輸出表列) 括弧內(nèi)包括兩部分: (1)

58、“格式控制字符串”是用雙引號括起來的字符串,也稱“轉(zhuǎn)換控制字符串”,它包括兩種信息: 格式說明,由“”和格式字符組成,如%d, %f等。它的作用是將輸出的數(shù)據(jù)轉(zhuǎn)換為指定的格式輸出。格式說明總是由“”字符開始的。 普通字符,即需要原樣輸出的字符。 (2)“輸出表列”是需要輸出的一些數(shù)據(jù),可以是表達(dá)式。2022/9/22124下面是一個例子: printf(“%d %d ”, a,b ); 格式說明 輸出表列 printf(“a%d b=%d”,a,b); 格式說明 輸出表列2022/9/221252.格式字符 常用的有以下幾種格式字符:(1)d 格式字符。用來輸出十進(jìn)制整數(shù)。有以下幾種格式字符:

59、 d,按整型數(shù)據(jù)的實際長度輸出。 md,m為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)小于m,則左端補(bǔ)以空格,若大于m,則按實際位數(shù)輸出。如 printf(“%4d,%4d”,a,b); 若a123,b12345,則輸出結(jié)果為 |_| 123,12345 ld,輸出長整型數(shù)據(jù)。如 long a=135790; printf(“%ld”,a);2022/9/22126對long型數(shù)據(jù)應(yīng)當(dāng)用ld格式輸出。對長整型數(shù)據(jù)也可以指定字段寬度,如將上面printf函數(shù)中的“l(fā)d”改為“8ld”則輸出為: |_| |_| 135790 (8列)一個int型數(shù)據(jù)可以用d或ld格式輸出。(2)O格式符,以八進(jìn)制數(shù)形式

60、輸出整數(shù)。由于是將內(nèi)存單元中的各位的值(0或1)按八進(jìn)制形式輸出,因此輸出的數(shù)值不帶符號,即將符號位也一起作為八進(jìn)制數(shù)的一部分輸出。例如: int a= -1; printf(“%d,%o”,a,a);2022/9/22127 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1輸出為 1,177777對長整型數(shù)(long型)可以用“l(fā)o”格式輸出。同樣可以指定字段寬度,如printf(“8o ” ,a)輸出為|_| |_| 1777771在內(nèi)存單元中的存放形式(以補(bǔ)碼形式存放)如下:2022/9/22128(3)x格式符,以十六進(jìn)制數(shù)形式輸出整數(shù)。同樣不會出現(xiàn)負(fù)的十六進(jìn)制數(shù)。例如i

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論