c程序設(shè)計譚浩強(qiáng)第四版課件_第1頁
c程序設(shè)計譚浩強(qiáng)第四版課件_第2頁
c程序設(shè)計譚浩強(qiáng)第四版課件_第3頁
c程序設(shè)計譚浩強(qiáng)第四版課件_第4頁
c程序設(shè)計譚浩強(qiáng)第四版課件_第5頁
已閱讀5頁,還剩531頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

謝晉E-mail:hbhsxiejin@126.com黃石理工學(xué)院C程序設(shè)計教材、參考書與課時安排教材C程序設(shè)計(第四版)譚浩強(qiáng)編著清華大學(xué)出版社參考書C語言程序設(shè)計教程譚浩強(qiáng)高等教育出版社C高級實用程序設(shè)計王士元清華大學(xué)出版社C程序設(shè)計試題匯編譚浩強(qiáng)

清華大學(xué)出版社課時安排理論學(xué)時:36學(xué)時實驗學(xué)時:24熟記C語言的基本概念熟悉TurboC、VisualC++的上機(jī)操作環(huán)境會讀、會編、會調(diào)試C程序

學(xué)習(xí)要點

熟記C語言的語法學(xué)會算法分析與算法設(shè)計課程目的課程要求課前請做好預(yù)習(xí)保持課堂安靜,頭腦清醒,思維活躍認(rèn)真、獨(dú)立、按時完成并提交作業(yè)重視上機(jī)實踐,有效利用寶貴的上機(jī)時間

C語言發(fā)展歷史C語言的特點簡單的C程序介紹C程序的上機(jī)步驟第1章C語言概述

C語言程序設(shè)計

第一章C語言概述1.1C語言發(fā)展歷史程序設(shè)計語言的發(fā)展機(jī)器語言匯編語言高級語言面向過程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加

10010000減用助記符號描述的指令系統(tǒng),可進(jìn)行地址、位操作如ADDA,B編寫系統(tǒng)軟件,直接對硬件操作,可讀性,移植性差面向機(jī)器的語言>

C語言程序設(shè)計

第一章C語言概述可讀性,移植性好,編寫應(yīng)用程序一般較難實現(xiàn)匯編語言的某些功能如:地址和位的操作C語言兼有高級和低級語言的功能適合寫系統(tǒng)軟件和應(yīng)用軟件又稱中級語言<C語言發(fā)展過程產(chǎn)生背景1960ALGOL60→1963CPL語言→1967BCPL→1970KenThompsonB語言,寫UNIX系統(tǒng)產(chǎn)生過程時間:1972~1973地點:美國貝爾實驗室目的:UNIX操作系統(tǒng)設(shè)計人:Ken.Thompson和Dennis.M.RitchieC標(biāo)準(zhǔn)標(biāo)準(zhǔn)C:1978年

K&R合著《TheCProgrammingLanguage》ANSIC:1983年87ANSIC:1987年1990年國際標(biāo)準(zhǔn)的ANSIC,1994年再次修訂。C版本MicrosoftC或稱

MS-C

TurboC或稱

TC<>

C語言程序設(shè)計

第一章C語言概述5254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC++JavaLISPCOBOLFORTRAN77FORTRANPL/1Simula67Smalltalk80BASICANSI-BASICQBASICVBFORTRAN901.2C語言的特點語言簡潔、緊湊、靈活運(yùn)算符豐富數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)類型豐富鏈表、樹、棧程序設(shè)計結(jié)構(gòu)化、模塊化結(jié)構(gòu)化控制語句:if…else、while、switch、for函數(shù)作為模塊單位語法不嚴(yán)格、程序設(shè)計自由度大可以訪問內(nèi)存地址、進(jìn)行位運(yùn)算生成目標(biāo)代碼質(zhì)量高可移植性好<>>>>>>

C語言程序設(shè)計

第一章C語言概述32個關(guān)鍵字:(由系統(tǒng)定義,不能重作其它定義)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile

TurboC擴(kuò)充了11個關(guān)鍵字:

asm _cs _ds _es _ss cdecl far huge interrupt near pascal

注意:在C語言中,關(guān)鍵字都是小寫的。

<

C語言程序設(shè)計

第一章C語言概述C語言簡潔、緊湊,使用方便、靈活。ANSIC一共只有32個關(guān)鍵字,見365頁附錄B9種控制語句:if()~else~for()~while()~do~while()continuebreakswitchgotoreturn<

C語言程序設(shè)計

第一章C語言概述C語言有9種控制語句,程序書寫形式自由,主要用小寫字母表示,壓縮了一切不必要的成分。<

C語言程序設(shè)計

第一章C語言概述表1.1C語言與Pascal語言比較通過表1.1我們可以得出結(jié)論:C比

Pascal簡練,因此源程序更短,編程效率高。C語言PASCAL語言含義{}if(e)S;inti;inta[10];intf();int*p;i+=2;i++,++I;BEGINENDIF(e)THENS;VARi:INTEGER;VARa:ARRAY[1..10]OFINTEGER;FUNCTIONf():INTEGER;VARP:INTEGER;i=i+2;i=i+1;函數(shù)體、分程序、復(fù)合語句條件語句

定義i為整形變量定義a為一維數(shù)組定義f為返回整形值函數(shù);p為指向整形變量的指針變量;賦值語句,使i+2賦給Ii自增值1,i加1賦給I34種運(yùn)算符:算術(shù)運(yùn)算符:+-*/%++--關(guān)系運(yùn)算符:<<===>>=!=邏輯運(yùn)算符:!&&||位運(yùn)算符:<<>>~|^&賦值運(yùn)算符:=及其擴(kuò)展條件運(yùn)算符:?:逗號運(yùn)算符:,指針運(yùn)算符:*&求字節(jié)數(shù):sizeof強(qiáng)制類型轉(zhuǎn)換:(類型)分量運(yùn)算符:.->下標(biāo)運(yùn)算符:[]其它:()-注意:各種運(yùn)算符混合使用,其優(yōu)先級與結(jié)合方法是難點,可先預(yù)習(xí)。

<

C語言程序設(shè)計

第一章C語言概述C語言運(yùn)算符豐富(附錄C)C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void定義類型typedef數(shù)值類型字符類型char枚舉類型enum整型浮點型單精度型float雙精度型double短整型short長整型long整型int數(shù)組結(jié)構(gòu)體struct共用體union<

C語言程序設(shè)計

第一章C語言概述C語言數(shù)據(jù)結(jié)構(gòu)豐富1.3

簡單的C程序介紹/*example1.1ThefirstCProgram*/#include<stdio.h>voidmain(){printf(“HelloWord!.\n”);}

C語言程序設(shè)計

第一章C語言概述>注釋編譯預(yù)處理主函數(shù)語句輸出:Thisisacprogram.例1.1第一個程序HelloWord!.

<printf語句中的“\n”是換行符

例1.2求倆個數(shù)的和/*example1.1calculatethesumofaandb*/#include<stdio.h>/*Thisisthemainprogram*/voidmain(){inta,b,sum;/*定義變量*/a=10;b=24;sum=add(a,b);printf(”sum=%d\n",sum);}/*Thisfunctioncalculatesthesumofxandy*/intadd(intx,inty){intz;z=x+y;return(z);}運(yùn)行結(jié)果:sum=34函數(shù)語句預(yù)處理命令注釋

C語言程序設(shè)計

第一章C語言概述><printf語句中的“

%d”是表示“十進(jìn)制整數(shù)類型”

C語言程序設(shè)計

第一章C語言概述><例1.3從鍵盤輸入兩個整數(shù),輸出其中較大的數(shù)#include<stdio.h>voidmain(){intmax(intx,inty)inta,b,c;

scanf(“%d,%d”,&a,&b);c=max(a,b);printf("max=%d",c);}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}scanf語句中“&a”的含義是“取地址”輸入:10,20輸出:max=20聲明部分,定義變量調(diào)用max函數(shù),返回值賦給c定義max子函數(shù),函數(shù)值、形參x、y為整型通過max函數(shù)將z值帶回調(diào)用處C語言格式特點習(xí)慣用小寫字母,大小寫敏感不使用行號,無程序行概念可使用空行和空格常用鋸齒形書寫格式<>

C語言程序設(shè)計

第一章C語言概述main(){

……………….………………

…………..…………..

……………….

………………………….

……………….………………..}main(){

inti,j,sum;sum=0;for(i=1;i<10;i++){for(j=1;j<10;j++){sum+=i*j;}}printf(“%d\n”,sum);}優(yōu)秀程序員的素質(zhì)之一:使用TAB縮進(jìn){}對齊有足夠的注釋有合適的空行C語言結(jié)構(gòu)特點函數(shù)與主函數(shù)程序由一個或多個函數(shù)組成必須有且只能有一個主函數(shù)main(),可以放在程序中任一位置程序執(zhí)行從main開始,在main中結(jié)束,其它函數(shù)通過嵌套調(diào)用得以執(zhí)行。程序語句C程序由語句組成用“;”作為語句終止符注釋/**/為注釋,不能嵌套不產(chǎn)生編譯代碼<>例:/*Thisisthemain/*ofexample1.1*/*/非法編譯預(yù)處理命令

C語言程序設(shè)計

第一章C語言概述編輯鏈接編譯執(zhí)行1.4C程序的上機(jī)步驟C程序開發(fā)步驟<>file.exe

C語言程序設(shè)計

第一章C語言概述程序代碼的錄入,生成源程序*.c語法分析查錯,翻譯生成目標(biāo)程序*.obj與其它目標(biāo)程序或庫鏈接裝配,生成可執(zhí)行程序*.exeTurboC集成開發(fā)環(huán)境配置要求UNIX,PC-DOS,MS-DOS,UCDOS操作系統(tǒng)硬盤容量約2M,448KRAM運(yùn)行空間安裝TurboC創(chuàng)建子目錄Install若不是可安裝盤,將文件拷貝到對應(yīng)的目錄下TC*.*INCLUDELIB*.*SYS*.*<>

C語言程序設(shè)計

第一章C語言概述進(jìn)入TurboCD:\TC>TC.exe主控菜單文件操作FILE:New

Load

Save

Writeto編輯操作EDIT:插入/修改

查找/替換編譯鏈接COMPILE

LINK

MAKE執(zhí)行RUN退出TurboCAlt+xAlt+F,Q幫助HelpF1Ctrl+F1<>

C語言程序設(shè)計

第一章C語言概述基本操作:F10-----調(diào)用主菜單F2------存盤F3------打開F1------幫助信息Alt+F9------CompileCtrl+F9------RunAlt+F5------UserScreenAlt+X------退出Tc常用熱鍵文本編輯:-------移動光標(biāo)PgUp,PgDn------上下翻頁Ctrl+PgUp,Ctrl+PgDn------文件首尾Home行首

End行尾DdeleteInsertBkspace塊操作:Ctrl+KB-------塊開始標(biāo)記Ctrl+KK--------塊結(jié)束標(biāo)記Ctrl+KC-------塊拷貝Ctrl+KV--------塊移動Ctrl+KY-------塊刪除Ctrl+KH--------塊隱藏程序調(diào)試:F8-----StepoverF7-------TraceintoF4-----GotoCursorCtrl+F7--------AddWatchCtrl+F8------ToggleBreakpointCtrl+F2--------ProgramReset窗口操作:F5-----窗口縮放F6-----窗口切換

C語言程序設(shè)計

第一章C語言概述<><>

C程序設(shè)計

第一章C語言概述VisualC++實現(xiàn)C程序

1)啟動<>

C程序設(shè)計

第一章C語言概述2)文件編輯與保存<>

C程序設(shè)計

第一章C語言概述3)編譯與鏈接<>

C程序設(shè)計

第一章C語言概述4)運(yùn)行

C語言程序設(shè)計

第一章C語言概述<><>

C程序設(shè)計

第一章C語言概述本章小結(jié)

通過本章的學(xué)習(xí),應(yīng)對計算機(jī)語言及程序設(shè)計的概念,C程序的組成特點,C程序的運(yùn)行過程有一個初步了解。學(xué)習(xí)C語言程序設(shè)計,掌握C語言語法規(guī)則和程序設(shè)計方法,培養(yǎng)編程技能是很重要的。C語言相對其它高級語言來說要相對難一些,但只要認(rèn)真對待,學(xué)習(xí)程序設(shè)計好的方法就是在掌握語法規(guī)則的基礎(chǔ)上,多分析閱讀別人寫的程序,多自己動手編寫一些小程序,多上機(jī)調(diào)試運(yùn)行程序,做到這3個“多”字,學(xué)習(xí)好C程序設(shè)計就不難了。

算法的概念簡單算法舉例算法的特性怎樣表示一個算法第2章程序的靈魂——算法

C語言程序設(shè)計

第二章程序的靈魂——算法結(jié)構(gòu)化程序設(shè)計方法<>

C語言程序設(shè)計

第二章程序的靈魂——算法程序包括的內(nèi)容:數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)的類型和組織形式算法:操作步驟的描述NikiklausWirth提出:

程序=數(shù)據(jù)結(jié)構(gòu)+算法教材認(rèn)為:

程序=算法+數(shù)據(jù)結(jié)構(gòu)+程序設(shè)計方法+語言工具和環(huán)境

靈魂加工對象工具<>

C語言程序設(shè)計

第二章程序的靈魂——算法2.1

算法的概念為解決一個問題而采取的方法和步驟,就成為算法。例如:歌曲的樂譜,建造房子等。算法核心是解決“做什么”和“怎么做”的問題。1+2+…+100可以有多種方法,一般采用簡單和運(yùn)算步驟少的。準(zhǔn)確、高效計算機(jī)算法類別數(shù)值運(yùn)算算法非數(shù)值運(yùn)算算法<>

C語言程序設(shè)計

第二章程序的靈魂——算法2.2

簡單算法舉例例2.1方法1:累乘方法2:用循環(huán)結(jié)構(gòu)解決,靈活、通用。例2.2通過循環(huán)選擇打印例2.3判斷閏年例2.4累加求級數(shù)的和,循環(huán)改變正負(fù)號和分母加1。例2.5判斷素數(shù)課后認(rèn)真思考,加深什么是算法的概念<>

C語言程序設(shè)計

第二章程序的靈魂——算法2.3

算法的特性有窮性—在合理范圍內(nèi)可完成確定性—無歧義性有零個或多個輸入—從外界得到信息有一個或多個輸出—問題的答案有效性—每步有確定的結(jié)果>

C語言程序設(shè)計

第二章程序的靈魂——算法2.4

怎樣表示一個算法自然語言表示2.2節(jié)例。易懂,文字冗長,易歧義性流程圖表示用流程圖符號構(gòu)成,直觀,易懂

N-S流程圖表示偽代碼表示計算機(jī)語言表示

順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)<>

C語言程序設(shè)計

第二章程序的靈魂——算法

傳統(tǒng)流程圖流向混亂、可讀性差,所以應(yīng)該采用結(jié)構(gòu)化流程圖。結(jié)構(gòu)化程序設(shè)計基本思想:任何程序都可以用三種基本結(jié)構(gòu)表示,限制使用無條件轉(zhuǎn)移語句(goto)

結(jié)構(gòu)化程序:由三種基本結(jié)構(gòu)反復(fù)嵌套構(gòu)成的程序優(yōu)點:結(jié)構(gòu)清晰,易讀,提高程序設(shè)計質(zhì)量和效率三種基本結(jié)構(gòu)順序結(jié)構(gòu)ABAB流程圖N-S圖<>

C語言程序設(shè)計

第二章程序的靈魂——算法PAB真假PBA真假選擇結(jié)構(gòu)A1A2AiAnk=k2k=k1k=knk=ki......二分支選擇結(jié)構(gòu)多分支選擇結(jié)構(gòu)<>

C語言程序設(shè)計

第二章程序的靈魂——算法循環(huán)結(jié)構(gòu)當(dāng)型循環(huán)結(jié)構(gòu)直到型循環(huán)結(jié)構(gòu)PA假真當(dāng)P為真AAP真假A直到P為真注:A,B,A1….An可以是一個簡單語句,也可以是一個基本結(jié)構(gòu)<>

C語言程序設(shè)計

第二章程序的靈魂——算法

三種基本結(jié)構(gòu)的共同特點:只有一個入口;只有一個出口;結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會被執(zhí)行到;結(jié)構(gòu)內(nèi)不存在“死循環(huán)”。<>

C語言程序設(shè)計

第二章程序的靈魂——算法2.5

結(jié)構(gòu)化程序設(shè)計方法結(jié)構(gòu)化程序:用三種基本結(jié)構(gòu)組成的程序基本設(shè)計思路:復(fù)雜問題分解成幾個最基本問題,再分別處理。采用的方法:自頂向下;逐步細(xì)化;模塊化設(shè)計:復(fù)雜問題按功能分成多個子模塊結(jié)構(gòu)化編碼:正確采用三種基本結(jié)構(gòu)實現(xiàn)<<>

C程序設(shè)計

第二章程序的靈魂:算法本章小結(jié)

本章的內(nèi)容是十分重要的,是學(xué)習(xí)后面各章的基礎(chǔ)。學(xué)習(xí)程序設(shè)計的目的不只是學(xué)習(xí)一門特定的語言,而是學(xué)習(xí)進(jìn)行程序設(shè)計的方法。掌握了算法就是掌握了程序設(shè)計的靈魂,再學(xué)習(xí)有關(guān)的計算機(jī)語言知識,就能夠順利編寫任何一種語言的程序。關(guān)鍵是算法。有了正確的算法,用任何語言進(jìn)行編碼都不應(yīng)該有什么困難。在本章中只是初步介紹了有關(guān)算法的基本知識,并沒有深入介紹如何設(shè)計各種類型的算法。在以后的章節(jié)中將結(jié)合實例陸續(xù)介紹有關(guān)的算法。第3章最簡單的C程序設(shè)計——

順序程序設(shè)計

C語言程序設(shè)計

第三章順序程序設(shè)計C語句數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)字符數(shù)據(jù)的輸入輸出格式輸入與輸出順序結(jié)構(gòu)程序設(shè)計舉例C數(shù)據(jù)類型、表達(dá)式

C語言程序設(shè)計

第三章順序程序設(shè)計C的數(shù)據(jù)類型常量與變量整型數(shù)據(jù)實型數(shù)據(jù)字符型數(shù)據(jù)變量賦初值各種數(shù)值型數(shù)據(jù)間的混合運(yùn)算算術(shù)運(yùn)算符和算術(shù)表達(dá)式賦值運(yùn)算符和賦值表達(dá)式逗號運(yùn)算符和逗號表達(dá)式3.1C數(shù)據(jù)類型、表達(dá)式<>

C語言程序設(shè)計

第三章順序程序設(shè)計3.1.1C的數(shù)據(jù)類型C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void字符型char整型實型(浮點型)單精度型float雙精度型double數(shù)組類型結(jié)構(gòu)體類型共用體類型短整型short長整型long整型int枚舉類型enum數(shù)據(jù)類型決定:1.數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2.數(shù)據(jù)取值范圍3.可以進(jìn)行的操作<>

C語言程序設(shè)計

第三章順序程序設(shè)計常量和符號常量定義:程序運(yùn)行過程中,其值不能被改變的量(常數(shù))分類:直接常量、符號常量3.1.2常量與變量類型示例整型常量12、0、-3實型常量4.6、-1.23字符常量‘a(chǎn)’、‘b’符號常量PRICE、PAI<>

C語言程序設(shè)計

第三章順序程序設(shè)計符號常量:用標(biāo)識符代表常量一般用大寫字母:

PRICE、PI定義格式:

#define

符號常量常量其值在作用域內(nèi)不能改變和再賦值。例3.1符號常量舉例#definePRICE30#include<stdio.h>voidmain(){intnum,total;num=10;total=num*PRICE;printf("total=%d\n",total);}total=300運(yùn)行結(jié)果:符號常量的優(yōu)點是:見名知意、一改全改<>

C語言程序設(shè)計

第三章順序程序設(shè)計變量定義:其值可以改變的量。定義格式:數(shù)據(jù)類型變量名;變量應(yīng)該有名字,并在內(nèi)存中占據(jù)一定的存儲單元。變量名和變量值有不同的含義變量名實為一個符號地址

a3例變量的使用main(){inta;a=3;printf(“a=%d",a);}變量名變量值存儲單元<>

C語言程序設(shè)計

第三章順序程序設(shè)計標(biāo)識符定義:標(biāo)識變量名、符號常量名、函數(shù)名、數(shù)組名、文件名的字符串序列——名字。命名規(guī)則:只能由字母、數(shù)字、下劃線組成,且第一個字符必須是字母或下劃線大小寫字母含義不同,一般用小寫不能使用關(guān)鍵字TC允許最長32個字符,建議長度不超過8個字符使用:先定義、后使用標(biāo)識符應(yīng)該“見名知意”,如total,max標(biāo)識符應(yīng)該“不宜混淆”,如l與1,O與0這些標(biāo)識符合法嗎?1A、M.D.John、¥123、#33、Tatol、int、max>

C語言程序設(shè)計

第三章順序程序設(shè)計3.1.3

整型數(shù)據(jù)整型常量(整常數(shù))的三種表示方法十進(jìn)制整數(shù):由數(shù)字0~9和正負(fù)號表示.

如123,-456,0八進(jìn)制整數(shù):由數(shù)字0開頭,后跟數(shù)字0~7表示.

如0123,011十六進(jìn)制整數(shù):由0x開頭,后跟0~9,a~f,A~F表示.

如0x123,0xff<<>

C語言程序設(shè)計

第三章順序程序設(shè)計

補(bǔ)充知識:字節(jié)和位內(nèi)存以字節(jié)為單元組成每個字節(jié)有一個地址一個字節(jié)一般由8個二進(jìn)制位組成每個二進(jìn)位的值是0或101234567012345678910……...7643251<>

C語言程序設(shè)計

第三章順序程序設(shè)計數(shù)值的表示方法——原碼、反碼和補(bǔ)碼原碼:最高位為符號位,其余各位為數(shù)值本身的絕對值反碼:正數(shù):反碼與原碼相同負(fù)數(shù):符號位為1,其余位對原碼取反補(bǔ)碼:正數(shù):原碼、反碼、補(bǔ)碼相同負(fù)數(shù):最高位為1,其余位為原碼取反,再對整個數(shù)加13126912457810119-5=49+7=16=(14)12<>

C語言程序設(shè)計

第三章順序程序設(shè)計原碼反碼補(bǔ)碼+7000001110000011100000111-7100001111111100011111001+0000000000000000000000000-0100000001111111100000000數(shù)的范圍01111111~11111111(-127~+127)01111111~10000000(-127~+127)01111111~10000000(-128~+127)(用一字節(jié)表示數(shù))負(fù)數(shù)補(bǔ)碼轉(zhuǎn)換成十進(jìn)制數(shù):最高位不動,其余位取反加1例補(bǔ)碼:11111001

取反:10000110

加1:10000111=-7>

C語言程序設(shè)計

第三章順序程序設(shè)計整型變量整型數(shù)據(jù)在內(nèi)存中的存放形式數(shù)據(jù)在內(nèi)存中以二進(jìn)制補(bǔ)碼形式存放每一個整型變量在內(nèi)存中占2個字節(jié)

10的原碼反碼補(bǔ)碼-10的原碼取絕對值反碼補(bǔ)碼0000000000001010000000000000101000000000000010101000000000001010000000000000101011111111111101011111111111110110整數(shù)的最左二進(jìn)制位是符號位,0正、1負(fù)<>

C語言程序設(shè)計

第三章順序程序設(shè)計整型變量的分類三類整型變量

有符號無符號基本型(簡稱整型)intunsignedint短整型short或shortintunsignedshort長整型long或longintunsignedlong整數(shù)類型和取值范圍TURBOC所占位數(shù)最小取值范圍int16-32768~+32767short16-32768~+32767long32-2147483648~+2147483647unsignedint160~65535unsignedshort160~65535unsignedlong320~4294967295<>

C語言程序設(shè)計

第三章順序程序設(shè)計整型變量的定義先定義后使用——強(qiáng)制類型定義int

a,b;(指定變量a、b為整型)unsignedshortc,d;(指定變量c、d為無符號短整型)longe,f;(指定變量e、f為長整型)

00000000000011010000000000000000000000000000110100000000000011010000000000000000000000000000110100000000000011010000000000001101int型short型long型unsignedint型unsignedint型unsignedlong型符號位例3.2整型變量的定義與使用

#include<stdio.h>voidmain(){inta,b,c,d;unsignedu;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%d\n",c,d);}指定abcd為整型變量指定u為無符號整型變量定義放在函數(shù)開頭的聲明部分作用域不同類型混合運(yùn)算,類型自動轉(zhuǎn)換結(jié)果:a+u=22,b+u=-14定義與賦值同時進(jìn)行:inta=12;<>

C語言程序設(shè)計

第三章順序程序設(shè)計整型數(shù)據(jù)的溢出此情況稱為“溢出”,運(yùn)行時不報錯,編程時要注意0111111111111111整型變量最大值327671000000000000000加1后是–32768的補(bǔ)碼形式例3.3整型數(shù)據(jù)的溢出

#include<stdio.h>voidmain(){inta,b;a=32767;b=a+1;printf("%d,%d\n",a,b);}32767,-32768

運(yùn)行結(jié)果:改為:longb;結(jié)果是什么?<>

C語言程序設(shè)計

第三章順序程序設(shè)計整型常量的類型整型常量的值在-32768~+32767范圍內(nèi),編譯器認(rèn)為是int類型整型常量的值超過上述范圍,而在-2147483648~+2147483647范圍內(nèi),編譯器認(rèn)為是long類型當(dāng)系統(tǒng)定義shortint與int占內(nèi)存長度相同,則兩種類型常量均可以賦給int和shortint型變量在整型常量后面加大寫L或小寫l,則告訴編譯器,把該整型常量作為long類型處理。例:123L、0L在整型常量后面加u,則按無符號整型方式存放,負(fù)數(shù)轉(zhuǎn)換成補(bǔ)碼再按無符號整型方式存放。<<>

C語言程序設(shè)計

第三章順序程序設(shè)計3.1.4

浮點型數(shù)據(jù)浮點型常量的表示方法浮點數(shù)(float)又稱為實數(shù)(real)兩種表示方法:十進(jìn)制小數(shù)形式:必須有小數(shù)點

如0.123、.123、123.0、0.0、123.

指數(shù)形式:e或E之前后必須有數(shù)字;指數(shù)必須為整數(shù)

如123.456e0、12.3456e1、1.23456e2、

0.123456e3、0.0123456e4等規(guī)范化指數(shù)形式只有一位非零整數(shù)的指數(shù)形式是指數(shù)的輸出形式6.28e-2

表示6.28×10-2-3.0824e4

表示–3.0824×104>

C語言程序設(shè)計

第三順序程序設(shè)計浮點型變量浮點型數(shù)據(jù)在內(nèi)存中的存放形式浮點型數(shù)據(jù)在內(nèi)存中占4個字節(jié)(32位)在內(nèi)存中分成3部分,指數(shù)為2的冪次+.3141591數(shù)符小數(shù)部分指數(shù)浮點型變量的分類

單精度float

32位6~7雙精度double

型64位15~16長雙精度longdouble型128位18~19類型

位數(shù)有效數(shù)字floatx,y;(指定x、y為單精度浮點型變量)doublez;(指定z為雙精度浮點型變量)longdoublet;

(指定t為長雙精度浮點型變量)<>

C語言程序設(shè)計

第三章順序程序設(shè)計浮點型數(shù)據(jù)的舍入誤差數(shù)據(jù)超過有效位數(shù),則產(chǎn)生誤差要避免一個很大的數(shù)與一個很小的數(shù)加減例3.4浮點型數(shù)據(jù)的舍入誤差#include<stdio.h>voidmain(){floata,b;a=123456.789e5;b=a+20;printf("%f\n",b);}舍入誤差使1.0/3*3的結(jié)果并不等于1!12345678848.000000

運(yùn)行結(jié)果:浮點型常量的類型浮點型常量一般按雙精度64位處理,數(shù)后加F或f按單精度浮點型常量不分float和double<>

C語言程序設(shè)計

第三章順序程序設(shè)計3.1.5字符型數(shù)據(jù)字符常量定義:用單引號括起來的單個字符或轉(zhuǎn)義字符字符常量的值:該字符的ASCII碼值定義格式:char變量名=值轉(zhuǎn)義字符:反斜線后面跟一個字符或一個代碼值表示如‘a(chǎn)’‘A’‘\n’‘\t’如

‘a(chǎn)’——97,‘A’——65

‘\n’——10,‘\t’——9charch=65與charch=‘A’與char=‘\101’是等效的<>

C語言程序設(shè)計

第三章順序程序設(shè)計<表1轉(zhuǎn)義字符及其含義轉(zhuǎn)義字符含義\n\v\r\a\‘\ddd\t\b\f\\\“\xhh轉(zhuǎn)義字符含義換行垂直制表回車(不換行)響鈴單引號3位8進(jìn)制數(shù)代表的字符水平制表(右移8格)退格換頁反斜線雙引號2位16進(jìn)制數(shù)代表的字符例3.5轉(zhuǎn)義字符的使用#include<stdio.h>voidmain(){printf(“abc\tde\rf\tg\n”);printf(“h\ti\b\bjk”);}fgdehjk顯示結(jié)果:

打印結(jié)果:fabgdehjik<>

C語言程序設(shè)計

第三章順序程序設(shè)計字符變量存放字符常量,占用一個字節(jié),存放一個字符定義形式:賦值:charc1,c2;c1=‘a(chǎn)’;c2=‘b’;字符數(shù)據(jù)在內(nèi)存中的存儲形式及其使用方法以二進(jìn)制存放字符的ASCII碼值(0~255整數(shù))與整數(shù)的存儲形式類似以字符或整數(shù)形式輸出例3.6向字符變量賦整數(shù)

#include<stdio.h>voidmain(){charc1,c2;c1=97;c2=98;printf(“%c%c\n",c1,c2);printf(“%d%d\n",c1,c2);}ab9798運(yùn)行結(jié)果:輸出形式取決于printf函數(shù)中的格式符格式符為“%c”時輸出的變量值為字符格式符為“%d"時輸出的變量值為整數(shù)<>

C語言程序設(shè)計

第三章順序程序設(shè)計對字符數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算實質(zhì)是對其ASCII值進(jìn)行算術(shù)運(yùn)算例3.7大小寫字母的轉(zhuǎn)換#include<stdio.h>voidmain(){charc1,c2;c1=‘a(chǎn)’;c2=‘b’;c1=c1-32;c2=c2-32;printf(“%c%c",c1,c2);}AB運(yùn)行結(jié)果:字符型與整型間互相賦值例:互相賦值#include<stdio.h>voidmain(){intc1;charc2;c1=‘a(chǎn)’;c2=98;c1=c1-32;c2=c2-32;printf(“%c%c",c1,c2);}小寫字母比大寫字母的ASCII碼大(32)10<>

C語言程序設(shè)計

第三章順序程序設(shè)計字符串常量定義:用雙引號(“”)括起來的字符序列“Howdoyoudo”,“CHINA”,“a”,“$123.45”存儲:每個字符串尾自動加一個‘\0’作為字符串結(jié)束標(biāo)志hello\0例字符串“hello”在內(nèi)存中例空串“”\0字符常量與字符串常量不同aa\0例‘a(chǎn)’“a”例:charch;ch=“A”;例:charch;ch=‘A’;沒有字符串變量,只能用字符數(shù)組存放<>

C語言程序設(shè)計

第三章順序程序設(shè)計3.1.6

變量賦初值變量的使用:先定義,后使用變量定義位置:一般放在函數(shù)開頭變量初始化:可以在定義時賦初值例:inta=1,b=-3,c;floatdata=3.67;charch=‘A’;intx=1,y=1,z=1;

intx=y=1;(×

)編譯程序根據(jù)變量定義為其分配指定字節(jié)的內(nèi)存單元…...地址inta=1,b=-3,c;abc2字節(jié)2字節(jié)2字節(jié)地址地址…...內(nèi)存1-3隨機(jī)數(shù)錯!inta=b=c=3<>

C語言程序設(shè)計

第三章順序程序設(shè)計3.1.7

各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算整型、實型、字符型數(shù)據(jù)間可以混合運(yùn)算自動轉(zhuǎn)換什么情況下發(fā)生運(yùn)算轉(zhuǎn)換------不同類型數(shù)據(jù)混合運(yùn)算時賦值轉(zhuǎn)換------把一個值賦給與其類型不同的變量時輸出轉(zhuǎn)換------輸出時轉(zhuǎn)換成指定的輸出格式函數(shù)調(diào)用轉(zhuǎn)換------實參與形參類型不一致時轉(zhuǎn)換運(yùn)算轉(zhuǎn)換規(guī)則:不同類型數(shù)據(jù)運(yùn)算時先自動轉(zhuǎn)換成同一類型<>

C語言程序設(shè)計

第三章順序程序設(shè)計doublefloatlongunsignedintchar,short低高說明:必定的轉(zhuǎn)換運(yùn)算對象類型不同時轉(zhuǎn)換例

charch;inti;floatf;doubled;ch/i+f*d-(f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+‘a(chǎn)’+i*f-d/l例

inti;floatf;doubled;longl;<>

C語言程序設(shè)計

第三章順序程序設(shè)計強(qiáng)制轉(zhuǎn)換(見P56強(qiáng)制類型轉(zhuǎn)換運(yùn)算符部分)一般形式:(類型名)(表達(dá)式)例:(int)(x+y)(int)x+y(double)(3/2)(int)3.6說明:強(qiáng)制轉(zhuǎn)換得到

所需類型的中間變量,

原變量類型不變例3.8#include<stdio>main(){floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);}結(jié)果:x=3.600000,i=3精度損失問題較高類型向較低類型轉(zhuǎn)換時可能發(fā)生強(qiáng)制類型轉(zhuǎn)換運(yùn)算符表達(dá)式僅一個變量時,括號可以省略

<>

C語言程序設(shè)計

第三章順序程序設(shè)計3.1.8算術(shù)運(yùn)算符和算術(shù)表達(dá)式C運(yùn)算符算術(shù)運(yùn)算符:(+-*/%++--)關(guān)系運(yùn)算符:(<<===>>=!=)邏輯運(yùn)算符:((!&&||)位運(yùn)算符:(<<>>~|^&)賦值運(yùn)算符:(=及其擴(kuò)展)條件運(yùn)算符:(?:)逗號運(yùn)算符:(,)指針運(yùn)算符:(*&)求字節(jié)數(shù):(sizeof)強(qiáng)制類型轉(zhuǎn)換:(類型)分量運(yùn)算符:(.->)下標(biāo)運(yùn)算符:([])其它:(()-)學(xué)習(xí)運(yùn)算符應(yīng)注意:運(yùn)算符功能與運(yùn)算量關(guān)系要求運(yùn)算量個數(shù)要求運(yùn)算量類型運(yùn)算符優(yōu)先級別結(jié)合方向結(jié)果的類型<>

C語言程序設(shè)計

第三章順序程序設(shè)計算術(shù)運(yùn)算符和算術(shù)表達(dá)式基本算術(shù)運(yùn)算符:+-*/%結(jié)合方向:從左向右優(yōu)先級:----->*/%----->+-

(2)(3)(4)說明:“-”可為單目運(yùn)算符時,右結(jié)合性兩整數(shù)相除,結(jié)果為整數(shù)%要求兩側(cè)均為整型數(shù)據(jù)+-*/運(yùn)算的兩個數(shù)中有一個數(shù)為實數(shù),結(jié)果是double型例5/2=-5/2.0=例5%2=-5%2=1%10=

5%1=5.5%2例5/2=2

-5/2.0=-2.5例5%2=1

-5%2=-11%10=

1

5%1=

05.5%2()<>

C語言程序設(shè)計

第三章順序程序設(shè)計自增、自減運(yùn)算符++--作用:使變量值加1或減1種類:前置++i,--i(先執(zhí)行i+1或i-1,再使用i值)后置i++,i--(先使用i值,再執(zhí)行i+1或i-1)例

j=3;k=++j; j=3;k=j++; j=3;printf(“%d”,++j); j=3;printf(“%d”,j++); a=3;b=5;c=(++a)*b; a=3;b=5;c=(a++)*b;//k=4,j=4//k=3,j=4//4,j=4//3,j=4//c=20,a=4//c=15,a=4<>

C語言程序設(shè)計

第三章順序程序設(shè)計幾點說明:例-i++i=3;printf(“%d”,-i++);

-(i++)//-3

++--不能用于常量和表達(dá)式,如

5++,(a+b)++++--結(jié)合方向:自右向左優(yōu)先級:-++-------->*/%----->+-

(2)(3)(4)該運(yùn)算符常用于循環(huán)語句中,使循環(huán)變量加減1有關(guān)表達(dá)式使用中的問題說明不同系統(tǒng)對運(yùn)算符和表達(dá)式的處理次序不同,盡可能寫通用性強(qiáng)的語句不要寫有歧義和不知系統(tǒng)如何執(zhí)行的程序<>

C語言程序設(shè)計

第三章順序程序設(shè)計3.1.9

賦值運(yùn)算符和賦值表達(dá)式簡單賦值運(yùn)算符符號:=格式:變量標(biāo)識符=表達(dá)式作用:將一個數(shù)據(jù)(常量或表達(dá)式)賦給一個變量左側(cè)必須是變量,不能是常量或表達(dá)式例a=3;d=func();c=d+2;例3=x-2*y; a+b=3;(×)<類型轉(zhuǎn)換賦值轉(zhuǎn)換規(guī)則:使賦值號右邊表達(dá)式值自動轉(zhuǎn)換成其左邊變量的類型例

floatf;inti=10;f=i;則

f=10.0例inti;i=2.56;//結(jié)果i=2;復(fù)合賦值運(yùn)算符種類:+=-=*=/=%=《=》=&=^=|=含義:exp1op=exp2exp1=exp1opexp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3>

C語言程序設(shè)計

第三章順序程序設(shè)計賦值表達(dá)式形式:<變量><賦值運(yùn)算符><表達(dá)式>賦值表達(dá)式的值與變量值相等,且可嵌套例:a=b=c=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)//表達(dá)式值為5,a,b,c值為5//b=5;a=5//表達(dá)式值11,c=6,a=11//表達(dá)式值10,a=10,b=4,c=6//表達(dá)式值5,a=5,b=10,c=2<>

C語言程序設(shè)計

第三章順序程序設(shè)計3.1.10

逗號運(yùn)算符和逗號表達(dá)式形式:表達(dá)式1,表達(dá)式2,……表達(dá)式n結(jié)合性:從左向右優(yōu)先級:15,級別最低逗號表達(dá)式的值:等于表達(dá)式n的值用途:常用于循環(huán)for語句中例a=3*5,a*4a=3*5,a*4,a+5例

x=(a=3,6*3)x=a=3,6*a例a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,%d”,(a,b,c),b,c);//a=15,表達(dá)式值60//a=15,表達(dá)式值20//賦值表達(dá)式,表達(dá)式值18,x=18//逗號表達(dá)式,表達(dá)式值18,x=3//1,2,3//3,2,3<>

C語言程序設(shè)計

第三章順序程序設(shè)計例:逗號表達(dá)式使用main(){intx,y=7;floatz=4;x=(y=y+6,y/z);printf("x=%d\n",x);}

X=3

運(yùn)行結(jié)果:

本章的內(nèi)容散亂而復(fù)雜,但卻是程序設(shè)計的基礎(chǔ),要認(rèn)真看書,通過編程序才可以深入理解。<<>3.2

C語句C程序結(jié)構(gòu):一個C程序可以由多個源程序文件構(gòu)成

一個源程序文件由若干函數(shù)、預(yù)編譯命令及全局變量聲明部分構(gòu)成函數(shù)包括數(shù)據(jù)定義部分和執(zhí)行部分,執(zhí)行部分是C語言語句,完成對數(shù)據(jù)的操作

C語言程序設(shè)計

第三章順序程序設(shè)計<>C語句分為5類控制語句:共9種完成一定的控制功能,這些語句能夠根據(jù)一定的測試條件決定某些語句是否被執(zhí)行,如分支、循環(huán)、跳轉(zhuǎn)等語句。

C語言程序設(shè)計

第三章順序程序設(shè)計if()~else~(條件語句)for()~while()~(循環(huán)語句)

do~while()continue(結(jié)束本次循環(huán)語句)

switch(多分支選擇語句)break(終止switch或循環(huán)語句)goto(轉(zhuǎn)向語句)

return(從函數(shù)返回語句)

3.2.1語句的作用和分類<>

C語言程序設(shè)計

第三章順序程序設(shè)計

空語句:只有一個“;”,什么也不做

表達(dá)式語句:由表達(dá)式加“;”組成典型的是賦值語句,由賦值表達(dá)式加分號構(gòu)成,如:y=x+1是表達(dá)式,而y=x+1;則是賦值語句。實際上函數(shù)調(diào)用語句也屬于表達(dá)式語句。

函數(shù)調(diào)用語句:由函數(shù)加“

;”組成printf(“ThisisaCprogram”);

a=3;i++;for(i=0;i<100;i++){

;

}<>復(fù)合語句:用{…}括起來的一組語句,也稱作程序塊。一般形式:

C語言程序設(shè)計

第三章順序程序設(shè)計inti=0,sum=0;while(i<=100){ sum=sum+i; i=i+1;}說明復(fù)合語句“}”后不加分號語法上和其它語句相同復(fù)合語句可嵌套<>3.2.2

賦值語句基本格式:

賦值表達(dá)式+;賦值表達(dá)式可以包含在其它表達(dá)式中,而賦值語句不可以。

C語言程序設(shè)計

第三章順序程序設(shè)計例:if((a=b)>0)t=a;不可寫為:if((a=b;)>0)t=a;<>

C語言程序設(shè)計

第三章順序程序設(shè)計表達(dá)式中允許出現(xiàn)運(yùn)算符號、變量、數(shù)值、函數(shù)序號語句 含義右側(cè)表達(dá)式包括1a=5常量5i=0x30+255十進(jìn)制、十六進(jìn)制ch=ch-‘A’6變量、字符常量7m=a[1]+a[2]數(shù)組變量8x=*px++指針變量、增1運(yùn)算2S=pi*r*r變量、乘號求圓面積3average=(a+b)/2變量、常數(shù)、括號求平均數(shù)4x=l*cos(q)變量、函數(shù)求橫坐標(biāo)<>另一種形式的賦值語句

<變量><運(yùn)算符>=<表達(dá)式>;

C語言程序設(shè)計

第三章順序程序設(shè)計示例含義a+=表達(dá)式a=a+(表達(dá)式)a%=表達(dá)式a=a%(表達(dá)式)a-=表達(dá)式a=a-(表達(dá)式)a*=表達(dá)式a=a*(表達(dá)式)a/=表達(dá)式a=a/(表達(dá)式)我們可以理解為:<變量>=<變量><運(yùn)算符><表達(dá)式>;只適合于整型變量<>連續(xù)賦值語句

C語言程序設(shè)計

第三章順序程序設(shè)計inta,b,c;a=b=c=1;連續(xù)賦值語句應(yīng)“從右向左”計算

a=b=c=1;等價于:

a=(b=(c=1));把常數(shù)1賦給變量c,表達(dá)式(c=1)的值為1;把表達(dá)式(

溫馨提示

  • 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

提交評論