版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
武漢理工大學(xué)計算機學(xué)院授課教師:王紅霞C語言程序設(shè)計2025/1/61選用教材與參考書主教科書
顧治華、陳天煌等
《C語言程序設(shè)計》
機械工業(yè)出版社
2007.2參考教材顧治華、陳天煌等《C語言程序設(shè)計實驗指導(dǎo)》
機械工業(yè)出版社2007.2參考書譚浩強《C語言程序設(shè)計》清華大學(xué)出版社2025/1/62課程內(nèi)容第一章C語言程序設(shè)計概述
第二章算法及算法設(shè)計簡介
第三章數(shù)據(jù)描述與基本操作第四章選擇結(jié)構(gòu)程序設(shè)計
第五章循環(huán)結(jié)構(gòu)程序設(shè)計
第六章數(shù)組與指針第七章函數(shù)與模塊化程序設(shè)計方法2025/1/63第一章C語言程序設(shè)計基礎(chǔ)1.1程序與程序設(shè)計1.2C語言簡介1.3簡單的C語言程序1.4C語言程序的上機步驟1.5C語言的基本詞法1.6C語言程序的基本結(jié)構(gòu)2025/1/64程序與計算機語言程序是存放在計算機中的操作指令的集合。用程序設(shè)計語言安排好的處理問題的步驟稱為計算機程序用程序設(shè)計語言編制一個能完成某項任務(wù)的計算機程序的過程叫做計算機程序設(shè)計。程序設(shè)計=數(shù)據(jù)結(jié)構(gòu)+算法+程序設(shè)計方法+編程語言程序設(shè)計的關(guān)鍵:必須掌握一種程序設(shè)計語言。掌握程序設(shè)計的邏輯思維。2025/1/65
程序設(shè)計過程(1)問題的提出,要達到的要求;(2)確定數(shù)據(jù)結(jié)構(gòu)和所采用的算法;(3)編制程序;(4)調(diào)試程序;(5)整理并寫出文檔;2025/1/66C語言的特點(1)語言簡潔、緊湊,使用方便、靈活。C語言一共只有
32個關(guān)鍵字,主要用小寫字母表示。(2)
比其他高級語言更接近硬件,比低級語言更接近算法。程序易編、易讀、易查錯、易修改,兼有高級語言和低級語言的優(yōu)點。(3)
數(shù)據(jù)類型和運算符十分豐富,程序設(shè)計和算法描述更為簡單和方便。(4)語法結(jié)構(gòu)十分簡單,語句數(shù)目少,簡單易學(xué)。2025/1/67
(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è)計工作。2025/1/68C語言程序的結(jié)構(gòu)
C語言是結(jié)構(gòu)化的程序設(shè)計語言。C語言是模塊化的程序設(shè)計語言,程序是由函數(shù)構(gòu)成的。一個C源程序至少包含一個main函數(shù),也可以包含一個main函數(shù)和若干個其他函數(shù)。因此,函數(shù)是C程序的基本單位。一個函數(shù)由兩部分組成:
①函數(shù)的首部,函數(shù)的第一行。包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函數(shù)參數(shù)(形參)名、參數(shù)類型。
②函數(shù)體,即函數(shù)首部下面的大括弧{…..}內(nèi)的部分。如果一個函數(shù)內(nèi)有多個括弧,則最外層的一對{}為函數(shù)的范圍。函數(shù)體一般包括:聲明部分:在這部分中定義所用到的變量。執(zhí)行部分:由若干個語句組成。2025/1/69(4)一個C程序總是從main函數(shù)開始的,而不論main函數(shù)在整個程序中的位置如何(main函數(shù)可以放在程序最前頭,也可以放在程序最后,或在一些函數(shù)之前,在另一些函數(shù)之后)。(5)C程序書寫格式自由,一行內(nèi)可以寫幾個語句,一個語句可以分寫在多行上。(6)每個語句和數(shù)據(jù)定義的最后必須有一個分號。分號是C語句的必要組成部分。分號不可少。(7)C語言本身沒有輸入輸出語句。輸入輸出的操作是由庫函數(shù)scanf和printf等函數(shù)來完成的。(8)可以用/*……*/對C程序中的任何部分作注釋。2025/1/610簡單的C語言程序示例例一
main(){printf(“ThisisaCprogram.\n”);}
本程序的作用是輸出以下一行信息:
ThisisaCprogram.2025/1/611例二main(){inta,b,sum;/*這是定義變量*/a=123;b=456;/*以下3行為C語句*/sum=a+b;printf(“sumis%d\n”,sum);}程序的運行結(jié)果:Sumis5792025/1/612例三/*example1.3輸入兩個數(shù),求其中較大的數(shù)*/#include<stdio.h>intmax(intx,inty)/*被調(diào)用函數(shù)*/{
int
z;if(x>y)z=x;
elsez=y;
return(z);
/*將z的值返回,通過max帶回調(diào)用處*/}main()/*主函數(shù)*/{
int
a,b,c;
scanf(“%d,%d”,&a,&b);
c=max(a,b);printf(“max=%d\n”,c);}運行結(jié)果:4,6↙max=62025/1/613C程序的上機步驟
開始編輯編譯
有錯?執(zhí)行連接結(jié)果正確結(jié)束可執(zhí)行目標(biāo)程序f.exe源程序f.c目標(biāo)程序f.obj庫函數(shù)和其他目標(biāo)程序YesNoYesNo2025/1/614C語言的基本詞法-標(biāo)識符定義:在程序中使用的變量名、函數(shù)名、標(biāo)號等統(tǒng)稱為標(biāo)識符。除庫函數(shù)的函數(shù)名由系統(tǒng)定義外,其余的都由用戶自己定義。命名規(guī)則:標(biāo)識符只能是字母(A~Z,a~z)、數(shù)字(0~9)、下劃線(_)組成的字符串,并且其第一個字符必須是字母或下劃線。例如:以下標(biāo)識符是合法的:
a,x,x3,BOOK_1,sum5,_x7。以下標(biāo)識符是非法的:
3s,s*T,-3x,bowy-1,M.D.John,a>b。2025/1/615(1)標(biāo)準(zhǔn)C不限制標(biāo)識符的長度,但它受各種版本的C語言編譯系統(tǒng)限制,同時也受到具體機器的限制。TurboC規(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)用,使用沒有定義的變量名被認為是“非法”的。
在使用標(biāo)識符時還必須注意以下幾點:2025/1/616C語言的基本詞法-關(guān)鍵字定義:關(guān)鍵字是由C語言規(guī)定的具有特定意義的字符串,通常也稱為保留字。用戶定義的標(biāo)識符不應(yīng)該與關(guān)鍵字相同。分類:C語言的關(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等。2025/1/617(2)語句定義符用于表示一個語句的功能。如條件語句的語句定義符ifelse,循環(huán)語句的語句定義符do,while,for等。(3)預(yù)處理命令字用于表示一個預(yù)處理命令,使用時前面要加“#”。如include,define,ifdef,endif等。關(guān)鍵字后必須有空格、圓括號、尖括號、雙引號等分隔符,否則與其它字符一起組成新的標(biāo)識符。2025/1/618C語言的基本詞法-其它運算符
C語言中含有相當(dāng)豐富的運算符。運算符與變量,函數(shù)一起組成表達式,表示各種運算功能。運算符由一個或多個字符組成。分隔符
在C語言中采用的分隔符有逗號和空格兩種。逗號主要是用在類型說明和函數(shù)參數(shù)表中分隔各個變量??崭穸嘤糜谡Z句各單詞之間作間隔符。常量
C語言中使用的常量可分為數(shù)字常量、字符常量、字符串常量、符號常量、轉(zhuǎn)義字符等多種。2025/1/619C語言的字符集
(1)字母小寫字母a~z共26個,大寫字母A~Z共26個。(2)數(shù)字0~9共10個。(3)空格符、制表符、換行符等統(tǒng)稱為空白符。(4)標(biāo)點和特殊字符2025/1/620C語言程序設(shè)計的基本結(jié)構(gòu)
(1)順序結(jié)構(gòu)
ABab2025/1/621(2)選擇結(jié)構(gòu),或稱分支結(jié)構(gòu)
此結(jié)構(gòu)中必包含一個判斷框。根據(jù)給定的條件P是否成立而選擇執(zhí)行A框或B框abBAp不成立成立2025/1/622
(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點脫離循環(huán)結(jié)構(gòu)。ap1TFAb2025/1/623(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)。aAFTbp22025/1/624本章課堂練習(xí)(1)以下說法中正確的是().A)C語言程序總是從第一個函數(shù)開始執(zhí)行
B)在C語言程序中,要調(diào)用的函數(shù)必須在main()函數(shù)中定義
C)C語言程序總是從main()函數(shù)開始執(zhí)行
D)C語言程序中的main()函數(shù)必須放在程序的開始部分2025/1/625解答:C解釋:C語言程序總是從main()函數(shù)開始執(zhí)行,而不論其在程序中的位置。當(dāng)主函數(shù)執(zhí)行完畢時,亦即程序執(zhí)行完畢。除main函數(shù)外,其它函數(shù)都是在執(zhí)行main函數(shù)時被調(diào)用執(zhí)行的。在C語言中,函數(shù)不允許嵌套定義。習(xí)慣上,將主函數(shù)main()放在最前頭,但并不是必須的。2025/1/626(2).以下敘述不正確的是A)一個C源程序可由一個或多個函數(shù)組成B)一個C源程序必須包含一個main函數(shù)C)C程序的基本組成單位是函數(shù)
D)在C程序中,注釋說明只能位于一條語句的后面2025/1/627解答:D解釋:
凡是用“/*”和“*/”括起來的文字,都是注釋。其出現(xiàn)的位置可以任意。2025/1/628(3).下列標(biāo)識符中,合法的變量名有:A)a.bB)$888C)A1D)
3x562025/1/629解答:C解釋:變量名只能由字母、數(shù)字和下劃線三種字符所組成,且第一個字符必須為字母或下劃線。C語言的關(guān)鍵字不能用作變量名。另外,C語言對英文字母的大小寫敏感,即同一字母的大小寫,被認為是兩個不同的字符。習(xí)慣上,變量名和函數(shù)名中的英文字母用小寫,以增加可讀性。2025/1/630
第二章算法及算法設(shè)計簡介2.1算法的概念2.2算法的設(shè)計與表達2.3簡單的算法實例2.4結(jié)構(gòu)化程序設(shè)計方法簡介2025/1/631算法的概念任何一個程序應(yīng)包含的如下兩方面的內(nèi)容:
(1)對數(shù)據(jù)的描述。在程序中要指定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式,即數(shù)據(jù)結(jié)構(gòu)(datastructure).
(2)對操作的描述。即操作步驟,也就是算法(algorithm)。著名計算機科學(xué)家沃思(NikiklausWirth)提出公式
數(shù)據(jù)結(jié)構(gòu)+算法=程序算法:是對解決某個問題的方法步驟的描述。程序:從計算機角度來說,程序是用某種計算機能理解并執(zhí)行的計算機語言描述解決問題的方法和步驟。2025/1/632實際上,一個程序除了以上兩個主要要素之外,還應(yīng)當(dāng)采用結(jié)構(gòu)化程序設(shè)計方法進行程序設(shè)計,并且用某一種計算機語言表示。因此,可以這樣表示:
程序=算法+數(shù)據(jù)結(jié)構(gòu)+程序設(shè)計方法+語言工具和環(huán)境
在這4個方面中,算法是靈魂,數(shù)據(jù)結(jié)構(gòu)是加工對象,語言是工具,編程需要采用合適的算法。算法是解決“做什么”和“怎么做”的問題。2025/1/633算法的表示
1、用自然語言表示算法
采用漢語、英語或其它語言來描述解決問題的方法和步驟。由于自然語言容易出現(xiàn)“歧義性”,且描述問題的文字冗長,因此一般很少使用自然語言來描述算法。
2025/1/634例1:有50個學(xué)生,要求將他們之中成績在80分以上者打印出來。用n表示學(xué)號,n1代表第一個學(xué)生學(xué)號,ni代表第i個學(xué)生學(xué)號。用g代表學(xué)生成績,gi代表第i個學(xué)生成績,算法可表示如下:S1:1iS2:讀入學(xué)號ni和成績gi
S3:
如果gi80,則打印ni
和gi,否則不打印S4:
i+1iS5:如果i50,返回S2,繼續(xù)執(zhí)行;否則,算法結(jié)束。2025/1/635起止框輸入/輸出框判斷框處理框流程線2、用流程圖表示算法(1)常用的流程圖符號2025/1/636上例用流程圖表示:
(1)
流程圖表示算法的優(yōu)點:①表示算法直觀形象,比較清楚地顯示出各個框之間的邏輯關(guān)系。②簡單,易于掌握。
流程圖2025/1/6373、用N-S圖表示算法
1973年美國學(xué)者I.Nassi和B.Shneiderman提出了一種新的流程圖形式。在這種流程圖中,完全去掉了帶箭頭的流程線。全部算法寫在一個矩形框內(nèi),在該框內(nèi)還可以包含其他的從屬于它的框。
這種流程圖又稱N—S結(jié)構(gòu)化流程圖。N—S流程圖用以下的流程圖符號:(1)順序結(jié)構(gòu):AB2025/1/638(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種N—S流程圖中的基本框,可以組成復(fù)雜的N—S流程圖,以表示算法2025/1/639上例用N-S圖表示:用N—S表示算法如圖1=>i輸入ni,gigi≥80是否輸出ni,gii+1=>i直到i>502025/1/6404、用偽碼表示算法
偽代碼是用介于自然語言和計算機語言之間的文字和符號來描述算法。它不用圖形符號,因此書寫方便,格式緊湊,也比較好懂,便于向計算機語言算法(即程序)過渡。
例有50個學(xué)生,要求將他們之中成績在80分以上者打印出來。用n表示學(xué)生學(xué)號,n1表示第一個學(xué)生學(xué)號,ni表示第i個學(xué)生學(xué)號。用g表示學(xué)生成績,gi表示第i個學(xué)生成績。2025/1/641BEGIN(算法開始)1=>iWhilei<=50{inputniandgiifgi≥80printniandgii+1=>i}END(算法結(jié)束)
用偽代碼表示算法如下:2025/1/6425、用計算機語言表示算法
設(shè)計算法的目的是為了實現(xiàn)算法。因此,不僅要考慮如何設(shè)計一個算法,也要考慮如何實現(xiàn)一個算法。我們的任務(wù)是用計算機解題,也就是要用計算機實現(xiàn)算法。計算機是無法識別流程圖和偽代碼的。只有用計算機語言編寫的程序才能被計算機執(zhí)行(當(dāng)然還要經(jīng)過編譯成目標(biāo)程序才能被計算機識別和執(zhí)行)。因此,在用流程圖或偽代碼描述出一個算法后,還要將它轉(zhuǎn)換成計算機語言程序。2025/1/643例:有50個學(xué)生,要求將他們之中成績在80分以上者打印出來。用n表示學(xué)生學(xué)號,n1表示第一個學(xué)生學(xué)號,ni表示第i個學(xué)生學(xué)號。用g表示學(xué)生成績,gi表示第i個學(xué)生成績。C語言程序如下:main(){intg[50],n[50],i;for(i=0;i<50;i++)scanf(“%d,%d”,&n[i],&g[i]);for(i=0;i<50;i++)if(g[i]>=80)printf(“%6d,%3d\n”,n[i],g[i]);}2025/1/644例2:對一個大于或等于3的正整數(shù),判斷它是不是一個素數(shù)。方法:將n(其中n3)作為被除數(shù),將2到(n-1)各個整數(shù)輪流作為除數(shù),如果都不能被整除,則n為素數(shù)。簡單的算法實例2025/1/645算法表示如下:S1:輸入n的值S2:2i(i作為除數(shù))
S3:n被i除,得余數(shù)rS4:如果r等于0,表示n能被i整除,則打印n“不是素數(shù)”,算法結(jié)束;否則執(zhí)行S5S5:i+1iS6:如果in-1,返回S3;否則,打印n“是素數(shù)”,算法結(jié)束。2025/1/646S1:
1signS2:1sumS3:2denoS4:(-1)*signsignS5:sign*(1/deno)termS6:sum+termsumS7:deno+1denoS8:若deno100返回S4;否則算法結(jié)束。例3:求1-1/2+1/3–1/4+…+1/99–1/100。2025/1/647結(jié)構(gòu)化程序設(shè)計方法簡介
1、三種基本結(jié)構(gòu)回顧
(1)順序結(jié)構(gòu)
ABab2025/1/648(2)選擇結(jié)構(gòu),或稱分支結(jié)構(gòu)
abBAp不成立成立2025/1/649(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)ap1TFAb2025/1/650(b)直到型(Until型)循環(huán)結(jié)構(gòu)
aAFTbp22025/1/6512、結(jié)構(gòu)化程序
所謂結(jié)構(gòu)化程序,就是僅僅使用順序、選擇、循環(huán)等三種基本結(jié)構(gòu)所構(gòu)造的程序。
3、結(jié)構(gòu)化程序設(shè)計方法
結(jié)構(gòu)化程序設(shè)計方法的基本思想是,把一個復(fù)雜問題的求解過程分階段進行。每個階段的問題都控制在人們?nèi)菀桌斫夂吞幚淼姆秶鷥?nèi)。
2025/1/6521=>ii+1=>igi≥80i>50結(jié)束開始打印ni,giYNNY讀入ni和gi2025/1/653
解答:
(?。┯米匀徽Z言表示
(ⅱ)用傳統(tǒng)的流程圖表示
(ⅲ)N—S流程圖
(ⅳ)用偽代碼表示等。
1、算法的表示形式主要有哪些?課堂練習(xí)2025/1/6542、設(shè)計算法:A、B兩人各有一桶油,現(xiàn)兩人要將各自桶
內(nèi)的油互換。
解答:必須借助另外一個空桶,并按如下算法進行:(用Si表示第i步操作,A的桶叫A,B的桶叫B,空桶叫M)開始:
S0:將A桶中的油倒入M桶中;
S1:將B桶中的油倒入A桶中;
S2:將M桶中的油倒入B桶中;
2025/1/6553、設(shè)計算法寫出求n!的算法
解答:S0:給出n的值;S1:1=>p;S2:2=>i;S3:p*i=>p;S4:i+1=>i;S5:若i<=n,返回S3;否則,結(jié)束
2025/1/656第三章數(shù)據(jù)描述與基本操作3.1基本數(shù)據(jù)類型
3.2常用的運算符和表達式3.3表達式及賦值語句3.4基本輸入輸出操作的實現(xiàn)3.5順序結(jié)構(gòu)程序設(shè)計實例概述
使用高級語言編寫程序,必須在程序中做好兩件事:一是描述數(shù)據(jù),二是描述數(shù)據(jù)的加工方法。前者是通過數(shù)據(jù)定義語句實現(xiàn)的,后者是通過若干執(zhí)行語句,包括用各種運算符構(gòu)成的表達式來實現(xiàn)的。本單元主要介紹C語言的基本數(shù)據(jù)類型,為后續(xù)單元的學(xué)習(xí)奠定一個基礎(chǔ)。關(guān)于復(fù)雜的數(shù)據(jù)類型(如數(shù)組、指針、結(jié)構(gòu)型、共用型等)將在以后單元中介紹。3.1C語言的數(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ù)的地址,它可以表示結(jié)構(gòu)類型數(shù)據(jù)的首地址和其中某個具體數(shù)據(jù)的地址。
4.枚舉型:某數(shù)據(jù)在程序運行中,只取固定的幾個值。我們可以把這幾個值列出來,以后這個數(shù)據(jù)只能取這幾個值中的某一個。
5.
空類型:沒有任何具體值的數(shù)據(jù)類型。C語言中的數(shù)據(jù)類型如下圖所示:
數(shù)據(jù)類型基本類型整型字符型實型(浮點型)單精度型雙精度型枚舉類型構(gòu)造類型
數(shù)組類型結(jié)構(gòu)體類型共用體類型指針類型空類型常量和變量2.常量的分類
(1)整型常量(2)實型常量(3)字符常量(4)字符串常量(5)符號常量常量的類型,可通過書寫形式來判別。常量
1.常量的概念
在程序運行過程中,其值不能被改變的量稱為常量。2025/1/662變量1.變量的概念在程序運行過程中,其值可以被改變的量稱為變量。2.變量的兩個要素(1)變量名。每個變量都必須有一個名字──變量名,變量命名遵循標(biāo)識符命名規(guī)則。(2)變量值。在程序運行過程中,變量值存儲在內(nèi)存中。在程序中,通過變量名來引用變量的值。2025/1/663變量有以下幾個特征:變量名、變量值、變量的數(shù)據(jù)類型、變量的地址、變量的存儲類別、變量的作用域及變量的生存期等。變量必須先定義后使用。定義變量格式如下:數(shù)據(jù)類型關(guān)鍵字<變量名表>;如intx,y,z;變量的初始化:變量賦初值的過程就是變量初始化過程。
2025/1/664整型數(shù)據(jù)整型常量:整型常量就是整常數(shù),包括正整數(shù)和負整數(shù)及0。其書寫形式如下:(1)
十進制整數(shù)。如123,-456,0。(2)
八進制整數(shù)。以0開頭的是八進制數(shù)。如0123表示八進制數(shù)123,即(123)8
。(3)
十六進制整數(shù)。以0x開頭的數(shù)是十六進制數(shù)。如0x123,代表十六進制數(shù),
(123)16=1×162+2×161+3×16o=256+32+3=291。①整型常量在一般微型機中占用2個字節(jié),不管是十進制、八進制或十六進制整數(shù),它們的數(shù)值范圍都是十進制的-32768~+32767。注意:②C語言還提供一種“長整型常量”。它們的數(shù)值范圍是十進制的-2147483648~+2147483647,在計算機中占用四個字節(jié),它們的書寫方法是在數(shù)據(jù)的末尾加一個大寫字母“L”或小寫字母“l(fā)”,如0L,038L,0x15L。
整型變量1.分類
根據(jù)占用內(nèi)存字節(jié)數(shù)的不同,整型變量又分為4類:(1)基本整型(類型關(guān)鍵字為int)。(2)短整型(類型關(guān)鍵字為short[int])。(3)長整型(類型關(guān)鍵字為long[int])。(4)無符號整型。無符號型又分為無符號基本整型(unsigned[int])、無符號短整型(unsignedshort)和無符號長整型(unsignedlong)三種,只能用來存儲無符號整數(shù)。2025/1/6672.占用內(nèi)存字節(jié)數(shù)與值域
上述各類型整型變量占用的內(nèi)存字節(jié)數(shù),隨系統(tǒng)而異。在16位操作系統(tǒng)中,一般用2字節(jié)表示一個int型變量,且long型(4字節(jié))≥int型(2字節(jié))≥short型(2字節(jié))。
實型數(shù)據(jù)
實型常量
1.表示形式
實型常量即實數(shù),在C語言中又稱浮點數(shù),其值有兩種表達形式:
(1)一般形式的實數(shù),它是由整數(shù)、小數(shù)點、小數(shù)三部分組成。其中整數(shù)部分或小數(shù)部分可以省略。數(shù)的正負用前面的“+”(可以省略)號或“-”號來區(qū)分。例如,12.345,
-1.2345,47.0,-.234,47.等都是實型常量。2025/1/669(2)指數(shù)形式的實數(shù),它是由尾數(shù)、小寫字母e或大寫字母E、指數(shù)三部分組成,尾數(shù)部分可以是十進制整型常量或一般形式的實數(shù),指數(shù)部分是十進制的短整型常量(可以帶E負號)例如,12.3e2,-1.2e-3,47.0e2,-.234e-3等都是實型常量。
C語言規(guī)定,字母e(或者E)之前必須要有數(shù)字,且e(或者E)后面的指數(shù)必須為整數(shù)。如:e3,5e3.5,.e3都是不合法的指數(shù)形式。注意:
實型常量在一般的微機中是占用4個字節(jié)的,不管是一般形式還是指數(shù)形式,它們的數(shù)值范圍都是-10~10有效數(shù)字7位。例如,1.23456789和1.234567是相同的,因為實型常量的有效數(shù)字是7位,所以1.23456789中的后兩位是無效的。3838實型變量C語言的實型變量,分為兩種:
(1)單精度型。類型關(guān)鍵字為float,一般占4字節(jié)(32位)、提供7位有效數(shù)字。
(2)雙精度型。類型關(guān)鍵字為double,一般占8個字節(jié)、提供15~16位有效數(shù)字。2025/1/672字符型數(shù)據(jù)A、把單個字符用一對單引號括起來表示字符常量。如‘a(chǎn)’,‘d’,‘w’,‘?’等都是字符常量。B、用該字符的ASCII碼值表示字符常量。如65表示‘A’C、轉(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)前位置移到本行開頭
13\f換頁,將當(dāng)前位置移到下頁開頭
12\\反斜杠字符“\”
92\‘單引號(撇號)字符
39\“雙引號字符
34\ddd1到3位8進制數(shù)所代表的字符
\xhh1到2位16進制數(shù)所代表的字符
例1:字符與整數(shù)的轉(zhuǎn)化#include"stdio.h"voidmain(){
inti;charn;n=97;i='b';printf("n=%c\n",n);printf("i=%d\n",i);printf("i=%c\n",i);}程序的輸出為:
n=ai=98i=b2025/1/675例2
字符參與整數(shù)運算
#include"stdio.h"voidmain(){charn;n='a';n=n-65;printf("n=%d\n",n);}程序的輸出結(jié)果為:
n=322025/1/676例3字母的大小寫轉(zhuǎn)換#include"stdio.h"voidmain(){charn,i;n='a';i='B';n=n-32;i=i+32;printf("n=%c\n",n);printf("i=%c\n",i);}
程序的輸出為n=Ai=b
2025/1/677二字符串常量
●
字符串就是用兩個雙引號(“)號后括住的若干個字符,例如,“abc”,“123456”,“aBbB”都是字符串。
●
轉(zhuǎn)義符可以出現(xiàn)在字符串中,例如,“\\ABC\\”,“\101\102\x43\x44”等都是字符串,分別表示“\ABCD\”、“ABCD”兩個字符串?!?/p>
一個字符串中所有的字符的個數(shù)稱為該字符串的長度,其中每個轉(zhuǎn)義字符只當(dāng)做一個字符。例如,“\\ABC\\”的長度為5。注意!‘a(chǎn)’與“a”的區(qū)別?!?/p>
C語言規(guī)定:每個字符串在內(nèi)存中占用的字符數(shù)等于字符串的長度+1。其中最后一個字符存放的字符稱為“空字符”其值為0,書寫時常用轉(zhuǎn)義字符“\0”來表示。在C語言中稱為字符串結(jié)束標(biāo)志。關(guān)于變量的補充內(nèi)容
1.變量:變量是指在程序運行過程中其值可以發(fā)生變化的量。2.變量的取名規(guī)則為:以字母、下劃線“_”開頭,后跟若干個字母、下劃線、數(shù)字。一般約定,用戶使用的變量名采用以字母開頭,C語言內(nèi)部使用的變量名以下劃線開頭。例如,
abc,a_1,age_1等都是合法的變量名,而3a,+age則是非法的變量名。
當(dāng)程序運行時,每個變量都要占用若干個連續(xù)的字節(jié),所占用的字節(jié)數(shù)由變量的數(shù)據(jù)類型確定。其中第1個字節(jié)的地址稱為變量的地址。C語言規(guī)定,程序中變量的地址是用“&變量名”來表示的。3.變量的數(shù)據(jù)類型及其定義
(1)
變量可以是任何一種數(shù)據(jù)類型,具有某種數(shù)據(jù)類型的變量就叫做該類型變量。(2)
每個變量在使用前必須定義,說明其數(shù)據(jù)類型。(3)
定義變量數(shù)據(jù)類型的語句格式如下:
數(shù)據(jù)類型符變量1,變量2…….;
數(shù)據(jù)類型
數(shù)據(jù)類型符占用字節(jié)數(shù)
數(shù)據(jù)范圍
整型int2(或4)同短整型(或長整型)
短整型short2-32768-+32767
長整型long4-2147483648-+2147483647無符號整型unsignedint2(或4)同無符號短整型(或長整型)無符號短整型unsignedshort20-65535無符號長整型unsignedlong40-4294967295單精度實型float4
-10-10雙精度實型double8
-10-10
字符型char1
-128-+127基本數(shù)據(jù)類型符及含義如下表所示:38383083085.變量的初始化
(1)在定義變量的同時給變量賦予初始值就稱為變量的初始化。(2)變量賦初值的語句格式如下:
存儲類型符數(shù)據(jù)類型符變量名1=初值1,變量名2=初值2,…3.2運算符
1概述2算術(shù)運算符3賦值運算符4逗號運算符5條件運算符6長度運算符7位運算符8關(guān)系運算符-下章介紹9邏輯運算符-下章介紹一.概述用來表示各種運算的符號稱為運算符。
運算符必須有運算對象,運算對象是一個的,則稱為
單目運算;運算對象是兩個的,則稱為雙目運算;運算對象是三個的,則稱為三目運算。例如,數(shù)值運算中經(jīng)常用到的+、-、*、/等。
每個運算符都代表對運算對象的某種運算,都有自己特定的運算規(guī)則。每個運算符運算的對象都規(guī)定了數(shù)據(jù)類型,同時運算結(jié)果也有確定的數(shù)據(jù)類型。當(dāng)表達式中出現(xiàn)多個運算符,計算表達式值時,就有誰先算,誰后算的問題,我們把這個問題稱為運算符的優(yōu)先級。計算表達式值時,優(yōu)先級高的運算要先進行運算。同級別的運算符有左結(jié)合和右結(jié)合之分。C的運算符十分豐富,有13類,30多種,其分類如下:C語言運算符基本運算符算術(shù)運算符基本算術(shù)運算符(+、-、*、/、%)增1減1運算符(++、--)關(guān)系運算符(>、<、==、<=、>=、!=)邏輯運算符(!、&&、||)賦值運算符基本賦值運算符(=)算術(shù)自反賦值運算符(+=、-=、*=、/=、%=)逗號運算符(,)條件運算符(?:)數(shù)據(jù)長度運算符(sizeof)位運算符位邏輯運算符(-、&、|、^)位移運算符(>>、<<)位自反賦值運算符(&=,|=,^=,>>=,<<=)專用運算符強制運算符(())下標(biāo)運算符([])成員運算符(->,.)指針運算符(&,*)注意!少數(shù)運算符號有雙重意義,主要有以下幾種:
(1)“+”號,在算術(shù)運算中即表示單目的取正運算,又可表示雙目的加法運算。(2)“-”號,在算術(shù)運算中即表示單目的取負運算,又可表示雙目的減法運算(3)“*”號,在算術(shù)運算中即表示雙目的乘法運算,在指針運算中表示指針變量指向的變量。(4)“&”號,在位邏輯運算中表示雙目“與”運算,在指針運算中表示取地址的運算。二.算術(shù)運算符
1.基本算術(shù)運算符基本算術(shù)運算符的運算對象、運算規(guī)則與結(jié)果、結(jié)合性如表所示:對象數(shù)運算符
名稱運算對象運算結(jié)果結(jié)合性單目雙目+-正負整型或?qū)嵭驼突驅(qū)嵭妥杂蚁蜃笞宰笙蛴遥?
/加減乘除%整除取余整型整數(shù)算術(shù)運算符的優(yōu)先級規(guī)定如下:
●單目基本算術(shù)運算符優(yōu)先于雙目基本算術(shù)運算符
●*、/、%優(yōu)先于+、—
●同級單目基本算術(shù)運算符的結(jié)合性是自右向左
●
同級雙目基本算術(shù)運算符的結(jié)合性是自左向右
例1.基本算術(shù)運算符的使用設(shè)變量定義如下:
intn=10,m=3;floatf=5.0,g=10.0;doubled=5.0,e=10.0;則①-n的結(jié)果是-10②n+m,n-m,n*m,n/m,n%m的結(jié)果分別為13、7、30、3、1③d+e,d-e,d*e,d/e的結(jié)果分別為15.0,-5.0,50.0,0.5④n+m-f*g/d的運算順序相當(dāng)于(n+m-(f*g)/d),結(jié)果是3.0⑤n%m*f*d的運算順序相當(dāng)于((n%m)*f)*d,結(jié)果是25.0如果參加運算的兩個數(shù)中有一個為浮點型,則結(jié)果是double型2.增1減1運算符(1)增1減1運算符的運算對象、運算規(guī)則與結(jié)果、結(jié)合性如下表所示:對象數(shù)單目名稱運算符運算規(guī)則運算對象運算結(jié)果結(jié)合性增1(前綴)++先加1后使用增1(后綴)減1(前綴)減1(后綴)++----先使用后加1先減1后使用先使用后減1整型、字符型、指針型變量或數(shù)組元素同運算對象的類型自右向左(2)增1減1運算符的優(yōu)先級:
●增1減1運算符
優(yōu)先于
雙目基本算術(shù)運算符
●增1減1運算符和單目運算符+、-同級別,結(jié)合性是自右向左
注意:
若出現(xiàn)難以區(qū)分的若干個+或-組成運算符串時,
C語言規(guī)定,自左向右取盡可能多的符號組成運算符。例1:a+++b應(yīng)理解為(a++)+ba―――b應(yīng)理解為
(a――)-b例2:增1減1運算符的使用
設(shè)變量定義如下:charc1=‘b’,c2=‘B’;
(c1,c2可看成整型,其值分別為98,66)
則:①++c1的值是99,運算后c1的值是‘c’
②c1――的值是98,運算后c1的值是‘a(chǎn)’
③c1+++c2的值是164,運算后c1的值是‘c’,c2的值是‘B’
④c1―――c2的值是32,運算后c1的值是‘a(chǎn)’,c2的值是‘B’三.賦值運算符
1.賦值運算符
賦值運算符是雙目運算符,賦值運算符的左邊必須是變量,右邊是表達式。
(1)賦值運算符的運算對象及有關(guān)規(guī)則如下表:
對象數(shù)名稱運算符運算規(guī)則運算結(jié)果結(jié)合性
雙目賦值
=將表達式的值賦予變量
表達式的類型自右向左(2)賦值運算符的優(yōu)先級
●
算術(shù)運算符優(yōu)先于關(guān)系運算符優(yōu)先于雙目邏輯運算符優(yōu)先于賦值運算符●賦值運算符的結(jié)合性是自右向左
(3)賦值運算符的使用設(shè)變量定義如下:charc1=‘a(chǎn)’,c2;
intn1=65,n2,n3,n4,n5,n6;
floatf1=3.0,f2;
則:①c2=n1運算后,c2的值是65,n1的值不變。②n2=!c1運算后,n2的值是0,c1的值不變。③f2=f1+0.001運算后,f2的值是3.001,f1的值不變。④
n3=c1==n1||c1!=n1運算后,n3的值是1,c1和n1
的值不變。注:運算順序相當(dāng)于
n3=((c1==n1)||(c1!=n1))
⑤n4=n5=n6=-(――n1)運算后,n4,n5,n6的值均是-64,n1的值是64。
注意:上述表達式的值就等于賦值表達式中的最左邊的變量值。
2.算術(shù)自反賦值運算符
(1)運算規(guī)則
對象數(shù)名稱運算符運算規(guī)則運算對象運算結(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ōu)先級
●
算術(shù)運算符優(yōu)先于關(guān)系運算符優(yōu)先于雙目邏輯運算符優(yōu)先于算術(shù)自反賦值運算符●算術(shù)自反賦值運算符和賦值運算符是同級別的,結(jié)合性是自右向左
(3)算術(shù)自反賦值運算符的使用
設(shè)變量定義如下
intn1=10,n2=10,m1=10,m2=10,m3=10,m4=10;則:①n1+=n2,n1的值為20,n2的值不變
②n1-=n2,n1的值為0,n2的值不變③n1*=n2,n1的值為100,n2的值不變④n1/=n2,n1的值為1,n2的值不變
⑤m1+=m2-=m3*=m4/=2運算后,
m1,m2,m3,m4的值依次是-30,-40,50,5。
運算順序相當(dāng)于m1+=(m2-=(m3*=(m4/=2)))
四.逗號運算符
逗號運算符是雙目運算符,其運算對象是表達式。
1.逗號運算符
對象數(shù)名稱運算符運算規(guī)則運算對象
結(jié)合性
雙目逗號
,依次計算前、后表達式
表達式自左向右注意:由逗號運算符組成的式子也是表達式,其值等于最右邊的表達式的值
2.逗號運算符的優(yōu)先級
●任何運算符
優(yōu)先于
逗號運算符
●逗號運算符的結(jié)合性是自左向右3.例題。設(shè)整型變量a,b為2,
則:①b=a+3,c=b+4
運算結(jié)果:a不變,b為5,c為9,表達式的值為9
②d=a――,e=d――,f=――e運算結(jié)果:a為1,d為1,e為1,f為1,表達式的值為1五.條件運算符
1.條件運算符
對象數(shù)
名稱運算符
運算規(guī)則運算對象運算結(jié)果結(jié)合性
三目條件
?:對e1?e2:e3e1為真,獲得e2e1為假,獲得e3
表達式e2(e3)的類型
自右向左2.條件運算符的優(yōu)先級●其它運算符
優(yōu)先于
條件運算符
優(yōu)先于
賦值、算術(shù)自反賦值運算符
●條件運算符的結(jié)合性是自右向左
3.例子
(1)
設(shè)整型變量a,b,c,d均為2
則a==b?(c=1):(d=0);
結(jié)果a,b,d不變,c為1,表達式的值為1(2)
a+1==3?(b=a+2):(c=a+3);結(jié)果a,c不變,b為4,表達式值為4(3)
a==b?(c=0):(a>b?(c=1):(c=-1));結(jié)果a,b不變,c為0,表達式的值為01.長度運算符
六.長度運算符
對象數(shù)
名稱運算符
運算規(guī)則運算對象運算結(jié)果結(jié)合性
單目長度sizeof測試數(shù)據(jù)類型所占用的字節(jié)數(shù)類型說明符或變量
整型
無2.長度運算符優(yōu)先級
●和單目算術(shù)運算符、單目邏輯運算符、增1減1運算符同級別3.例子
設(shè)變量定義如下:intn;shorts;unsignedlongu3;floatf;
charc;
則sizeof(n)的值是2sizeof(s)的值是2sizeof(long)的值是4sizeof(unsignedint)的值是2sizeof(u3)的值是4sizeof(f)的值是4sizeof(double)的值是8sizeof(c)的值是1注意:上述結(jié)果是TurboC2.0在微機上運行的結(jié)果。
七位運算C語言中提供的位運算符:~、<<、>>、&、^、︱1.按位取反運算符~形式:~A功能:把A的各位都取反,(即0變1,1變0)例如:intA=179A0000000010110011~A11111111010011002025/1/61072.按位與運算符&形式:A&B功能:對A的各位與B的對應(yīng)位進行比較,如果兩者都為1,
A&B對應(yīng)位上的值為1,否則為0。例如:intA=179(二進制1000000000010011)
intB=169(二進制1000000000001001)A0000000010110011B0000000010101001A&B00000000101000012025/1/61083.按位或運算符|形式:A|B功能:對A的各位與B的對應(yīng)位進行比較,如果兩者中有一個為1,A|B對應(yīng)位上的值為1,否則為0。例如:intA=179(二進制1000000000010011)
intB=169(二進制1000000000001001)A0000000010110011B0000000010101001A|B00000000101110112025/1/61094.按位異或運算符^形式:A^B功能:對A的各位與B的對應(yīng)位進行比較,如果兩者不同,
A^B對應(yīng)位上的值為1,否則為0。例如:intA=179(二進制1000000000010011)
intB=169(二進制1000000000001001)A0000000010110011B0000000010101001A^B00000000000110102025/1/61105.左移運算符<<形式:A<<n(其中n為一個大于0的整型表達式)功能:把A的值向左移動n位,右邊空出的n位用0填補。當(dāng)左移時移走的高位中全都是0時,相當(dāng)于對A作n次乘以2的運算。例如:intA=27(二進制1000000000011011)A0000000000011011A<<300000000110110002025/1/61116.右移運算符>>形式:A>>n(其中n為一個大于0的整型表達式)功能:把A的值向右移動n位,左邊空出的n位用0填補。相當(dāng)于對A作n次除以2的運算。例如:intA=179(二進制1000000000010011)A0000000010110011A>>300000000000101102025/1/61123.3表達式
用運算符將運算對象連接形成的式子就是表達式。1.表達式的定義2.C語言的表達式非常豐富,也有人稱C語言為表達式語言。C語言使用的基本表達式有:⑴賦值表達式,如:a=3⑵算術(shù)表達式,如:3+4*2⑶關(guān)系表達式,如:3>2⑷邏輯表達式,如:3>5&&a>=b⑸條件表達式,如:a>b?a:b⑹逗號表達式,如:a=3,b=4,c=53.4賦值語句1.構(gòu)成規(guī)則:
(1)變量=表達式;
(2)變量賦值運算符表達式分號2.注意區(qū)分賦值語句和賦值表達式的區(qū)別:
例如a=b+2
(這是賦值表達式)
a=b+2;
(這是賦值語句)
a++
(這是表達式)
a++;
(這是賦值語句,等價與a=a+1;)2025/1/61163.5輸入輸出在C語言中的實現(xiàn)1.輸入輸出的概念從計算機向外部輸出設(shè)備(如顯示屏、打印機、磁盤等)輸出數(shù)據(jù)稱為“輸出”,從外部向輸入設(shè)備(如鍵盤、磁盤、光盤、掃描儀等)輸入數(shù)據(jù)稱為“輸入”。2.C語言本身不提供輸入輸出語句,輸入和輸出操作是由函數(shù)來實現(xiàn)的。在C標(biāo)準(zhǔn)函數(shù)庫中提供了一些輸入輸出函數(shù),例如,printf函數(shù)和scanf函數(shù)。2025/1/61173.在使用C語言庫函數(shù)時,要用預(yù)編譯命令“#include”將有關(guān)的“頭文件”包括到用戶源文件中。在調(diào)用標(biāo)準(zhǔn)輸入輸出庫函數(shù)時,文件開頭應(yīng)有以下預(yù)編譯命令:
#include<stdio.h>
或#include“stdio.h”
4.允許在使用printf和scanf兩個函數(shù)時可不加#include命令。2025/1/6118一、字符數(shù)據(jù)的輸入輸出1.putchar函數(shù)(字符輸出函數(shù))
·函數(shù)格式:putchar(C);C可以是字符型變量或整型變量或常量
·函數(shù)的功能:向終端輸出一個字符2025/1/61192.程序?qū)嵗?/p>
#include<stdio.h>main(){chara,b,c;a=‘B’;b=‘O’;c=‘Y’;putchar(a);putchar(b);putchar(c);}
注意:該程序可以輸出控制字符,如putchar(‘\n’)
輸出一個換行符,也可以輸出其他轉(zhuǎn)義字符如putchar(‘\101’)(輸出字符A)
putchar(‘\’’)(輸出單引號字符’)運行結(jié)果:
BOY2025/1/61203.getchar
函數(shù)(字符輸入函數(shù))
函數(shù)格式,getchar()
函數(shù)的功能:從終端輸入一個字符,函數(shù)的值就是從輸入設(shè)備得到的字符。4.程序?qū)嵗?/p>
#include<stdio.h>main(){charc;c=getchar();putchar(c);}在運行時,如果從鍵盤輸入字符‘a(chǎn)’并按回車鍵,就會在屏幕上看到輸出的字符‘a(chǎn)’。a↙(輸入‘a(chǎn)’后,按“回車”鍵,字符才送到內(nèi)存)a(輸出變量c
的值‘a(chǎn)’)2025/1/6121注意:(1)getchar()只能接收一個字符,getchar函數(shù)收到的字符可以賦給一個字符變量或整型變量。(2)若在程序中調(diào)用getchar、putchar函數(shù),則必須在程序的開頭部分加上“包含命令”
#include<stdio.h>
或#include“stdio.h”2025/1/6122二、格式輸入與輸出(一)、printf
函數(shù)(格式輸出函數(shù))1.printf函數(shù)的一般格式為
printf(“格式控制字符串”,輸出表列)括弧內(nèi)包括兩部分:(1)“格式控制字符串”是用雙引號括起來的字符串,也稱“轉(zhuǎn)換控制字符串”,它包括兩種信息:①格式說明,由“%”和格式字符組成,如%d,%f等。它的作用是將輸出的數(shù)據(jù)轉(zhuǎn)換為指定的格式輸出。格式說明總是由“%”字符開始的。②普通字符,即需要原樣輸出的字符。(2)“輸出表列”是需要輸出的一些數(shù)據(jù),可以是表達式。2025/1/6123下面是一個例子:
printf(“%d%d”,a,b);格式說明輸出表列printf(“a=%db=%d”,a,b);
格式說明輸出表列2025/1/61242.格式字符常用的有以下幾種格式字符:(1)d
格式字符。用來輸出十進制整數(shù)。有以下幾種格式字符:①%d,按整型數(shù)據(jù)的實際長度輸出。②%md,m為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)小于m,則左端補以空格,若大于m,則按實際位數(shù)輸出。如
printf(“%4d,%4d”,a,b);
若a=123,b=12345,則輸出結(jié)果為
|__|123,12345③%ld,輸出長整型數(shù)據(jù)。如
longa=135790;printf(“%ld”,a);2025/1/6125對long型數(shù)據(jù)應(yīng)當(dāng)用%ld格式輸出。對長整型數(shù)據(jù)也可以指定字段寬度,如將上面printf函數(shù)中的“%ld”改為“%8ld”則輸出為:
|__|
|__|135790(8列)一個int型數(shù)據(jù)可以用%d或%ld格式輸出。(2)O格式符,以八進制數(shù)形式輸出整數(shù)。由于是將內(nèi)存單元中的各位的值(0或1)按八進制形式輸出,因此輸出的數(shù)值不帶符號,即將符號位也一起作為八進制數(shù)的一部分輸出。例如:
inta=-1;printf(“%d,%o”,a,a);2025/1/6126
1111111111111111輸出為-1,177777對長整型數(shù)(long型)可以用“%lo”格式輸出。同樣可以指定字段寬度,如printf(“%8o”,a)輸出為|__|
|__|
177777-1在內(nèi)存單元中的存放形式(以補碼形式存放)如下:2025/1/6127(3)x格式符,以十六進制數(shù)形式輸出整數(shù)。同樣不會出現(xiàn)負的十六進制數(shù)。例如inta=-1;Printf(“%x,%o,%d”,a,a,a);輸出結(jié)果為:
ffff,177777,-12025/1/6128(4)u格式符,用來輸出unsigned型數(shù)據(jù),即無符號數(shù),以十進制形式輸出。(5)C格式符,用來輸出一個字符。如:
charc=‘a(chǎn)’;printf(“%c”,c);
輸出字符‘a(chǎn)’,請注意:“%c”中的c是格式符,引號右邊的c是變量名,不要搞混。一個整數(shù),只要它的值在0~255范圍內(nèi),也可以用字符形式輸出,在輸出前,系統(tǒng)會將該整數(shù)作為ASCII碼轉(zhuǎn)換成相應(yīng)的字符;反之,一個字符數(shù)據(jù)也可以用整數(shù)形式輸出。2025/1/6129(6)S格式符,用來輸出一個字符串。有幾種用法:①%s,例如:printf(“%s”,“CHINA”);輸出“CHINA”字符串(不包括雙引號)。②%ms,輸出的字符率占m列,如字符串本身長度大于m,則突破m的限制,將字符串全部輸出。若串長小于m,則左補空格。2025/1/6130③%-ms,如果串長小于m,則在m列范圍內(nèi),字符率向左靠,右補空格。④%m.ns,輸出占m列,但只取字符串中左端n個字符。這n個字符輸出在m列的右側(cè),左補空格。⑤%-m.ns,其中m、n含義同上,n個字符輸出在m
列范圍的左側(cè),右補空格。如果n>m,則m自動取n值,即保證n個字符正常輸出。2025/1/6131(7)f格式符,用來輸出實數(shù)(包括單、雙精度),以小數(shù)形式輸出。有以下幾種用法:②%m.nf指定輸出的數(shù)據(jù)共占m列,其中有n位小數(shù)。如果數(shù)值長度小于m,則左端補空格。③%-m.nf與%m.nf基本相同,只是使輸出的數(shù)值向左端靠,右端補空格。①%f,不指定字段寬度,由系統(tǒng)自動指定,使整數(shù)部分全部如數(shù)輸出。并輸出6位小數(shù)。應(yīng)當(dāng)注意,并非全部數(shù)字都是有效數(shù)字。單精度實數(shù)的有效位數(shù)一般為7位。2025/
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧冶金職業(yè)技術(shù)學(xué)院《酒店人力資源管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 江西洪州職業(yè)學(xué)院《教師課堂教學(xué)藝術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 吉林職業(yè)技術(shù)學(xué)院《財經(jīng)法規(guī)與會計職業(yè)道德》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南電子科技職業(yè)學(xué)院《后期合成A》2023-2024學(xué)年第一學(xué)期期末試卷
- 黑龍江司法警官職業(yè)學(xué)院《電路理論A》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶應(yīng)用技術(shù)職業(yè)學(xué)院《當(dāng)代社會思潮評析》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶機電職業(yè)技術(shù)大學(xué)《影像設(shè)備學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江農(nóng)林大學(xué)暨陽學(xué)院《版式設(shè)計與表現(xiàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 中國石油大學(xué)(北京)《畫法幾何與機械制圖I》2023-2024學(xué)年第一學(xué)期期末試卷
- 鄭州升達經(jīng)貿(mào)管理學(xué)院《金融法》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年高標(biāo)準(zhǔn)農(nóng)田建設(shè)土地承包服務(wù)協(xié)議3篇
- 閱讀理解(專項訓(xùn)練)-2024-2025學(xué)年湘少版英語六年級上冊
- 無創(chuàng)通氣基本模式
- 飛行原理(第二版) 課件 第4章 飛機的平衡、穩(wěn)定性和操縱性
- 暨南大學(xué)珠海校區(qū)財務(wù)辦招考財務(wù)工作人員易考易錯模擬試題(共500題)試卷后附參考答案
- 羊水少治療護理查房
- 管道坡口技術(shù)培訓(xùn)
- 2024年全國統(tǒng)一高考英語試卷(新課標(biāo)Ⅰ卷)含答案
- OQC培訓(xùn)資料教學(xué)課件
- 2024年8月CCAA國家注冊審核員OHSMS職業(yè)健康安全管理體系基礎(chǔ)知識考試題目含解析
- 2024年認證行業(yè)法律法規(guī)及認證基礎(chǔ)知識 CCAA年度確認 試題與答案
評論
0/150
提交評論