![c語言程序設計第三譚浩強完美_第1頁](http://file4.renrendoc.com/view/35568a53a2ee0d8b140ae00eac76b1ee/35568a53a2ee0d8b140ae00eac76b1ee1.gif)
![c語言程序設計第三譚浩強完美_第2頁](http://file4.renrendoc.com/view/35568a53a2ee0d8b140ae00eac76b1ee/35568a53a2ee0d8b140ae00eac76b1ee2.gif)
![c語言程序設計第三譚浩強完美_第3頁](http://file4.renrendoc.com/view/35568a53a2ee0d8b140ae00eac76b1ee/35568a53a2ee0d8b140ae00eac76b1ee3.gif)
![c語言程序設計第三譚浩強完美_第4頁](http://file4.renrendoc.com/view/35568a53a2ee0d8b140ae00eac76b1ee/35568a53a2ee0d8b140ae00eac76b1ee4.gif)
![c語言程序設計第三譚浩強完美_第5頁](http://file4.renrendoc.com/view/35568a53a2ee0d8b140ae00eac76b1ee/35568a53a2ee0d8b140ae00eac76b1ee5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
教材、參考書與課時安排教材C程序設計(第二版)譚浩強編著清華大學出版社參考書C語言程序設計教程譚浩強高等教育出版社C高級實用程序設計王士元清華大學出版社C程序設計試題匯編譚浩強清華大學出版社課時安排64學時(理解熟悉)目前一頁\總數(shù)五百三十三頁\編于十二點熟記C語言的基本概念熟悉TurboC的上機操作環(huán)境會讀、會編、會調試C程序
學習要點
熟記C語言的語法學會算法分析與算法設計課程目的目前二頁\總數(shù)五百三十三頁\編于十二點課程要求課前請做好預習保持課堂安靜,頭腦清醒,思維活躍認真、獨立、按時完成并提交作業(yè)重視上機實踐,有效利用寶貴的上機時間
目前三頁\總數(shù)五百三十三頁\編于十二點第1章C語言概述第2章程序的靈魂—算法第3章數(shù)據(jù)類型、運算符與表達式第4章最簡單的C程序設計—順序程序設計第5章選擇結構程序設計第6章循環(huán)控制第7章數(shù)組第8章函數(shù)第9章預處理命令第10章指針第11章結構體與共用體第12章位運算第13章文件目錄目前四頁\總數(shù)五百三十三頁\編于十二點C語言發(fā)展歷史C語言的特點簡單的C程序介紹C程序的上機步驟第1章C語言概述
C語言程序設計
第一章C語言概述目前五頁\總數(shù)五百三十三頁\編于十二點1.1C語言發(fā)展歷史程序設計語言的發(fā)展機器語言匯編語言高級語言面向過程面向對象CPU指令系統(tǒng),由0、1序列構成的指令碼組成如:10000000加
10010000減用助記符號描述的指令系統(tǒng),可進行地址、位操作如ADDA,B編寫系統(tǒng)軟件,直接對硬件操作,可讀性,移植性差面向機器的語言>
C語言程序設計
第一章C語言概述可讀性,移植性好,編寫應用程序一般較難實現(xiàn)匯編語言的某些功能如:地址和位的操作C語言兼有高級和低級語言的功能適合寫系統(tǒng)軟件和應用軟件又稱中級語言<目前六頁\總數(shù)五百三十三頁\編于十二點C語言發(fā)展過程產生背景ALGOL60→CPL語言→BCPL→B語言,寫UNIX系統(tǒng)產生過程時間:1972~1973地點:美國貝爾實驗室目的:UNIX操作系統(tǒng)設計人:Ken.Thompson和Dennis.M.RitchieC標準標準C:1978年K&R合著《TheCProgrammingLanguage》ANSIC:1983年87ANSIC:1987年1990年國際標準的ANSIC,1994年再次修訂。C版本MicrosoftC或稱
MS-C
TurboC或稱
TC<>
C語言程序設計
第一章C語言概述目前七頁\總數(shù)五百三十三頁\編于十二點1.2C語言的特點語言簡潔、緊湊、靈活運算符豐富數(shù)據(jù)結構、數(shù)據(jù)類型豐富鏈表、樹、棧程序設計結構化、模塊化結構化控制語句:if…else、while、switch、for函數(shù)作為模塊單位語法不嚴格、程序設計自由度大可以訪問內存地址、進行位運算生成目標代碼質量高可移植性好<>>>>>>
C語言程序設計
第一章C語言概述目前八頁\總數(shù)五百三十三頁\編于十二點32個關鍵字:(由系統(tǒng)定義,不能重作其它定義)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile TurboC擴充了11個關鍵字:
asm _cs _ds _es _ss cdecl far huge interrupt near pascal
注意:在C語言中,關鍵字都是小寫的。
<
C語言程序設計
第一章C語言概述C語言簡潔、緊湊,使用方便、靈活。ANSIC一共只有32個關鍵字,見365頁附錄B目前九頁\總數(shù)五百三十三頁\編于十二點9種控制語句:if()~else~for()~while()~do~while()continuebreakswitchgotoreturn<
C語言程序設計
第一章C語言概述C語言有9種控制語句,程序書寫形式自由,主要用小寫字母表示,壓縮了一切不必要的成分。目前十頁\總數(shù)五百三十三頁\編于十二點<
C語言程序設計
第一章C語言概述表1.1C語言與Pascal語言比較通過表1.1我們可以得出結論: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ù)體、分程序、復合語句條件語句
定義i為整形變量定義a為一維數(shù)組定義f為返回整形值函數(shù);p為指向整形變量的指針變量;賦值語句,使i+2賦給Ii自增值1,i加1賦給I目前十一頁\總數(shù)五百三十三頁\編于十二點34種運算符:算術運算符:+-*/%++--關系運算符:<<===>>=!=邏輯運算符:!&&||位運算符:<<>>~|^&賦值運算符:=及其擴展條件運算符:?:逗號運算符:,指針運算符:*&求字節(jié)數(shù):sizeof強制類型轉換:(類型)分量運算符:.->下標運算符:[]其它:()-注意:各種運算符混合使用,其優(yōu)先級與結合方法是難點,可先預習。
<
C語言程序設計
第一章C語言概述C語言運算符豐富(附錄C)目前十二頁\總數(shù)五百三十三頁\編于十二點C數(shù)據(jù)類型基本類型構造類型指針類型空類型void定義類型typedef數(shù)值類型字符類型char枚舉類型enum整型浮點型單精度型float雙精度型double短整型short長整型long整型int數(shù)組結構體struct共用體union<
C語言程序設計
第一章C語言概述C語言數(shù)據(jù)結構豐富目前十三頁\總數(shù)五百三十三頁\編于十二點1.3簡單的C程序介紹/*example1.1ThefirstCProgram*/#include<stdio.h>voidmain(){printf(“Thisisacprogram.\n”);}
C語言程序設計
第一章C語言概述>注釋編譯預處理主函數(shù)語句輸出:Thisisacprogram.例1.1第一個程序Thisisacprogram.<printf語句中的“\n”是換行符目前十四頁\總數(shù)五百三十三頁\編于十二點例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);}運行結果:sum=34函數(shù)語句預處理命令注釋
C語言程序設計
第一章C語言概述><printf語句中的“
%d”是表示“十進制整數(shù)類型”目前十五頁\總數(shù)五百三十三頁\編于十二點
C語言程序設計
第一章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聲明部分,定義變量調用max函數(shù),返回值賦給c定義max子函數(shù),函數(shù)值、形參x、y為整型通過max函數(shù)將z值帶回調用處目前十六頁\總數(shù)五百三十三頁\編于十二點C語言格式特點習慣用小寫字母,大小寫敏感不使用行號,無程序行概念可使用空行和空格常用鋸齒形書寫格式<>
C語言程序設計
第一章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)秀程序員的素質之一:使用TAB縮進{}對齊有足夠的注釋有合適的空行目前十七頁\總數(shù)五百三十三頁\編于十二點C語言結構特點函數(shù)與主函數(shù)程序由一個或多個函數(shù)組成必須有且只能有一個主函數(shù)main(),可以放在程序中任一位置程序執(zhí)行從main開始,在main中結束,其它函數(shù)通過嵌套調用得以執(zhí)行。程序語句C程序由語句組成用“;”作為語句終止符注釋/**/為注釋,不能嵌套不產生編譯代碼<>例:/*Thisisthemain/*ofexample1.1*/*/非法編譯預處理命令
C語言程序設計
第一章C語言概述目前十八頁\總數(shù)五百三十三頁\編于十二點編輯鏈接編譯執(zhí)行1.4C程序的上機步驟C程序開發(fā)步驟<>file.exe
C語言程序設計
第一章C語言概述程序代碼的錄入,生成源程序*.c語法分析查錯,翻譯生成目標程序*.obj與其它目標程序或庫鏈接裝配,生成可執(zhí)行程序*.exe目前十九頁\總數(shù)五百三十三頁\編于十二點TurboC集成開發(fā)環(huán)境配置要求UNIX,PC-DOS,MS-DOS,UCDOS操作系統(tǒng)硬盤容量約2M,448KRAM運行空間安裝TurboC創(chuàng)建子目錄Install若不是可安裝盤,將文件拷貝到對應的目錄下TC*.*INCLUDELIB*.*SYS*.*<>
C語言程序設計
第一章C語言概述目前二十頁\總數(shù)五百三十三頁\編于十二點進入TurboCD:\TC>TC.exe主控菜單文件操作FILE:NewLoadSaveWriteto編輯操作EDIT:插入/修改塊查找/替換編譯鏈接COMPILELINKMAKE執(zhí)行RUN退出TurboCAlt+xAlt+F,Q幫助HelpF1Ctrl+F1<>
C語言程序設計
第一章C語言概述目前二十一頁\總數(shù)五百三十三頁\編于十二點目前二十二頁\總數(shù)五百三十三頁\編于十二點基本操作:F10-----調用主菜單F2------存盤F3------打開F1------幫助信息Alt+F9------CompileCtrl+F9------RunAlt+F5------UserScreenAlt+X------退出Tc常用熱鍵文本編輯:-------移動光標PgUp,PgDn------上下翻頁Ctrl+PgUp,Ctrl+PgDn------文件首尾Home行首End行尾DdeleteInsertBkspace塊操作:Ctrl+KB-------塊開始標記Ctrl+KK--------塊結束標記Ctrl+KC-------塊拷貝Ctrl+KV--------塊移動Ctrl+KY-------塊刪除Ctrl+KH--------塊隱藏程序調試:F8-----StepoverF7-------TraceintoF4-----GotoCursorCtrl+F7--------AddWatchCtrl+F8------ToggleBreakpointCtrl+F2--------ProgramReset窗口操作:F5-----窗口縮放F6-----窗口切換
C語言程序設計
第一章C語言概述<>目前二十三頁\總數(shù)五百三十三頁\編于十二點課后作業(yè)預習“題解與上機指導”一書中P181~199頁的14.3~14.10節(jié)P236頁實驗1教材P12:1.5、1.6、1.7、1.8題。
注意:有關設計程序的作業(yè),必須經過上機調試!
C語言程序設計
第一章C語言概述<>目前二十四頁\總數(shù)五百三十三頁\編于十二點算法的概念簡單算法舉例算法的特性怎樣表示一個算法第2章程序的靈魂——算法
C語言程序設計
第二章程序的靈魂——算法結構化程序設計方法目前二十五頁\總數(shù)五百三十三頁\編于十二點<>
C語言程序設計
第二章程序的靈魂——算法程序包括的內容:數(shù)據(jù)結構:數(shù)據(jù)的類型和組織形式算法:操作步驟的描述NikiklausWirth提出:
程序=數(shù)據(jù)結構+算法教材認為:
程序=算法+數(shù)據(jù)結構+程序設計方法+語言工具和環(huán)境
靈魂加工對象工具目前二十六頁\總數(shù)五百三十三頁\編于十二點<>
C語言程序設計
第二章程序的靈魂——算法2.1算法的概念為解決一個問題而采取的方法和步驟,就成為算法。例如:歌曲的樂譜,建造房子等。算法核心是解決“做什么”和“怎么做”的問題。P15頁的例2.1,求1……5之積??梢杂卸喾N方法,一般采用簡單和運算步驟少的。準確、高效計算機算法類別數(shù)值運算算法非數(shù)值運算算法目前二十七頁\總數(shù)五百三十三頁\編于十二點<>
C語言程序設計
第二章程序的靈魂——算法2.2簡單算法舉例例2.1方法1:累乘方法2:用循環(huán)結構解決,靈活、通用。例2.2通過循環(huán)選擇打印例2.3判斷閏年例2.4累加求級數(shù)的和,循環(huán)改變正負號和分母加1。例2.5判斷素數(shù)課后認真思考,加深什么是算法的概念目前二十八頁\總數(shù)五百三十三頁\編于十二點<>
C語言程序設計
第二章程序的靈魂——算法2.3算法的特性有窮性—在合理范圍內可完成確定性—無歧義性有零個或多個輸入—從外界得到信息有一個或多個輸出—問題的答案有效性—每步有確定的結果目前二十九頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第二章程序的靈魂——算法2.4怎樣表示一個算法自然語言表示2.2節(jié)例。易懂,文字冗長,易歧義性流程圖表示用流程圖符號構成,直觀,易懂
N-S流程圖表示偽代碼表示計算機語言表示
順序結構選擇結構循環(huán)結構<目前三十頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第二章程序的靈魂——算法
傳統(tǒng)流程圖流向混亂、可讀性差,所以應該采用結構化流程圖。結構化程序設計基本思想:任何程序都可以用三種基本結構表示,限制使用無條件轉移語句(goto)結構化程序:由三種基本結構反復嵌套構成的程序優(yōu)點:結構清晰,易讀,提高程序設計質量和效率三種基本結構順序結構ABAB流程圖N-S圖<目前三十一頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第二章程序的靈魂——算法PAB真假PBA真假選擇結構A1A2AiAnk=k2k=k1k=knk=ki......二分支選擇結構多分支選擇結構<目前三十二頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第二章程序的靈魂——算法循環(huán)結構當型循環(huán)結構直到型循環(huán)結構PA假真當P為真AAP真假A直到P為真注:A,B,A1….An可以是一個簡單語句,也可以是一個基本結構<目前三十三頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第二章程序的靈魂——算法
三種基本結構的共同特點:只有一個入口;只有一個出口;結構內的每一部分都有機會被執(zhí)行到;結構內不存在“死循環(huán)”。<目前三十四頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第二章程序的靈魂——算法2.5結構化程序設計方法結構化程序:用三種基本結構組成的程序基本設計思路:復雜問題分解成幾個最基本問題,再分別處理。采用的方法:自頂向下;逐步細化;模塊化設計:復雜問題按功能分成多個子模塊結構化編碼:正確采用三種基本結構實現(xiàn)<目前三十五頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第二章程序的靈魂——算法課后作業(yè)P36頁習題:2.4、2.8(結合實驗指導讀懂答案)用N-S圖表示2.4題中⑴⑵⑹用傳統(tǒng)流程圖求解以下問題:將一個16進制數(shù)轉化為10進制數(shù)復習二進制的基本概念“計算機文化基礎”一書中P27~33頁<目前三十六頁\總數(shù)五百三十三頁\編于十二點第3章數(shù)據(jù)類型、運算符與表達式
C語言程序設計
第三章程序的靈魂——算法C的數(shù)據(jù)類型常量與變量整型數(shù)據(jù)實型數(shù)據(jù)字符型數(shù)據(jù)變量賦初值各種數(shù)值型數(shù)據(jù)間的混合運算算術運算符和算術表達式賦值運算符和賦值表達式逗號運算符和逗號表達式目前三十七頁\總數(shù)五百三十三頁\編于十二點<>
C語言程序設計
第三章程序的靈魂——算法3.1C的數(shù)據(jù)類型C數(shù)據(jù)類型基本類型構造類型指針類型空類型void字符型char整型實型(浮點型)單精度型float雙精度型double數(shù)組類型結構體類型共用體類型短整型short長整型long整型int枚舉類型enum數(shù)據(jù)類型決定:1.數(shù)據(jù)占內存字節(jié)數(shù)2.數(shù)據(jù)取值范圍3.可以進行的操作目前三十八頁\總數(shù)五百三十三頁\編于十二點<>
C語言程序設計
第三章程序的靈魂——算法常量和符號常量定義:程序運行過程中,其值不能被改變的量(常數(shù))分類:直接常量、符號常量3.2常量與變量類型示例整型常量12、0、-3實型常量4.6、-1.23字符常量‘a’、‘b’符號常量PRICE、PAI目前三十九頁\總數(shù)五百三十三頁\編于十二點<>
C語言程序設計
第三章程序的靈魂——算法符號常量:用標識符代表常量一般用大寫字母:
PRICE、PI定義格式:
#define
符號常量常量其值在作用域內不能改變和再賦值。例3.1符號常量舉例#definePRICE30#include<stdio.h>voidmain(){intnum,total;num=10;total=num*PRICE;printf("total=%d\n",total);}total=300運行結果:符號常量的優(yōu)點是:見名知意、一改全改目前四十頁\總數(shù)五百三十三頁\編于十二點<>
C語言程序設計
第三章程序的靈魂——算法變量定義:其值可以改變的量。定義格式:數(shù)據(jù)類型變量名;變量應該有名字,并在內存中占據(jù)一定的存儲單元。變量名和變量值有不同的含義變量名實為一個符號地址
a3例變量的使用main(){inta;a=3;printf(“a=%d",a);}變量名變量值存儲單元目前四十一頁\總數(shù)五百三十三頁\編于十二點<>
C語言程序設計
第三章程序的靈魂——算法標識符定義:標識變量名、符號常量名、函數(shù)名、數(shù)組名、文件名的字符串序列——名字。命名規(guī)則:只能由字母、數(shù)字、下劃線組成,且第一個字符必須是字母或下劃線大小寫字母含義不同,一般用小寫不能使用關鍵字TC允許最長32個字符,建議長度不超過8個字符使用:先定義、后使用標識符應該“見名知意”,如total,max標識符應該“不宜混淆”,如l與1,O與0這些標識符合法嗎?1A、M.D.John、¥123、#33、Tatol、int、max目前四十二頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法3.3整型數(shù)據(jù)整型常量(整常數(shù))的三種表示方法十進制整數(shù):由數(shù)字0~9和正負號表示.
如123,-456,0八進制整數(shù):由數(shù)字0開頭,后跟數(shù)字0~7表示.
如0123,011十六進制整數(shù):由0x開頭,后跟0~9,a~f,A~F表示.
如0x123,0xff<目前四十三頁\總數(shù)五百三十三頁\編于十二點<>
C語言程序設計
第三章程序的靈魂——算法
補充知識:字節(jié)和位內存以字節(jié)為單元組成每個字節(jié)有一個地址一個字節(jié)一般由8個二進制位組成每個二進位的值是0或101234567012345678910……...7643251目前四十四頁\總數(shù)五百三十三頁\編于十二點<>
C語言程序設計
第三章程序的靈魂——算法數(shù)值的表示方法——原碼、反碼和補碼原碼:最高位為符號位,其余各位為數(shù)值本身的絕對值反碼:正數(shù):反碼與原碼相同負數(shù):符號位為1,其余位對原碼取反補碼:正數(shù):原碼、反碼、補碼相同負數(shù):最高位為1,其余位為原碼取反,再對整個數(shù)加13126912457810119-5=49+7=16=(14)12目前四十五頁\總數(shù)五百三十三頁\編于十二點<>
C語言程序設計
第三章程序的靈魂——算法原碼反碼補碼+7000001110000011100000111-7100001111111100011111001+0000000000000000000000000-0100000001111111100000000數(shù)的范圍01111111~11111111(-127~+127)01111111~10000000(-127~+127)01111111~10000000(-128~+127)(用一字節(jié)表示數(shù))負數(shù)補碼轉換成十進制數(shù):最高位不動,其余位取反加1例補碼:11111001
取反:10000110
加1:10000111=-7目前四十六頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法整型變量整型數(shù)據(jù)在內存中的存放形式數(shù)據(jù)在內存中以二進制補碼形式存放每一個整型變量在內存中占2個字節(jié)
10的原碼反碼補碼-10的原碼取絕對值反碼補碼0000000000001010000000000000101000000000000010101000000000001010000000000000101011111111111101011111111111110110整數(shù)的最左二進制位是符號位,0正、1負<目前四十七頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法整型變量的分類三類整型變量
有符號無符號基本型(簡稱整型)intunsignedint短整型short或shortintunsignedshort長整型long或longintunsignedlong整數(shù)類型和取值范圍TURBOC所占位數(shù)最小取值范圍int16-32768~+32767short16-32768~+32767long32-2147483648~+2147483647unsignedint160~65535unsignedshort160~65535unsignedlong320~4294967295<目前四十八頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法整型變量的定義先定義后使用——強制類型定義inta,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ù)開頭的聲明部分作用域不同類型混合運算,類型自動轉換結果:a+u=22,b+u=-14定義與賦值同時進行:inta=12;<目前四十九頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法整型數(shù)據(jù)的溢出此情況稱為“溢出”,運行時不報錯,編程時要注意0111111111111111整型變量最大值327671000000000000000加1后是–32768的補碼形式例3.3整型數(shù)據(jù)的溢出
#include<stdio.h>voidmain(){inta,b;a=32767;b=a+1;printf("%d,%d\n",a,b);}32767,-32768
運行結果:改為:longb;結果是什么?<目前五十頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法整型常量的類型整型常量的值在-32768~+32767范圍內,編譯器認為是int類型整型常量的值超過上述范圍,而在-2147483648~+2147483647范圍內,編譯器認為是long類型當系統(tǒng)定義shortint與int占內存長度相同,則兩種類型常量均可以賦給int和shortint型變量在整型常量后面加大寫L或小寫l,則告訴編譯器,把該整型常量作為long類型處理。例:123L、0L在整型常量后面加u,則按無符號整型方式存放,負數(shù)轉換成補碼再按無符號整型方式存放。<目前五十一頁\總數(shù)五百三十三頁\編于十二點<>
C語言程序設計
第三章程序的靈魂——算法3.4浮點型數(shù)據(jù)浮點型常量的表示方法浮點數(shù)(float)又稱為實數(shù)(real)兩種表示方法:十進制小數(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目前五十二頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法浮點型變量浮點型數(shù)據(jù)在內存中的存放形式浮點型數(shù)據(jù)在內存中占4個字節(jié)(32位)在內存中分成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為長雙精度浮點型變量)<目前五十三頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法浮點型數(shù)據(jù)的舍入誤差數(shù)據(jù)超過有效位數(shù),則產生誤差要避免一個很大的數(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的結果并不等于1!12345678848.000000
運行結果:浮點型常量的類型浮點型常量一般按雙精度64位處理,數(shù)后加F或f按單精度浮點型常量不分float和double<目前五十四頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法3.5字符型數(shù)據(jù)字符常量定義:用單引號括起來的單個字符或轉義字符字符常量的值:該字符的ASCII碼值定義格式:char變量名=值轉義字符:反斜線后面跟一個字符或一個代碼值表示如‘a’‘A’‘\n’‘\t’如‘a’——97,‘A’——65
‘\n’——10,‘\t’——9charch=65與charch=‘A’與char=‘\101’是等效的<目前五十五頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法<表3.3轉義字符及其含義轉義字符含義\n\v\r\a\‘\ddd\t\b\f\\\“\xhh轉義字符含義換行垂直制表回車(不換行)響鈴單引號3位8進制數(shù)代表的字符水平制表(右移8格)退格換頁反斜線雙引號2位16進制數(shù)代表的字符例3.5轉義字符的使用#include<stdio.h>voidmain(){printf(“abc\tde\rf\tg\n”);printf(“h\ti\b\bjk”);}fgdehjk顯示結果:
打印結果:fabgdehjik<目前五十六頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法字符變量存放字符常量,占用一個字節(jié),存放一個字符定義形式:賦值:charc1,c2;c1=‘a’;c2=‘b’;字符數(shù)據(jù)在內存中的存儲形式及其使用方法以二進制存放字符的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運行結果:輸出形式取決于printf函數(shù)中的格式符格式符為“%c”時輸出的變量值為字符格式符為“%d"時輸出的變量值為整數(shù)<目前五十七頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法對字符數(shù)據(jù)進行算術運算實質是對其ASCII值進行算術運算例3.7大小寫字母的轉換#include<stdio.h>voidmain(){charc1,c2;c1=‘a’;c2=‘b’;c1=c1-32;c2=c2-32;printf(“%c%c",c1,c2);}AB運行結果:字符型與整型間互相賦值例:互相賦值#include<stdio.h>voidmain(){intc1;charc2;c1=‘a’;c2=98;c1=c1-32;c2=c2-32;printf(“%c%c",c1,c2);}小寫字母比大寫字母的ASCII碼大(32)10<目前五十八頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法字符串常量定義:用雙引號(“”)括起來的字符序列“Howdoyoudo”,“CHINA”,“a”,“$123.45”存儲:每個字符串尾自動加一個‘\0’作為字符串結束標志hello\0例字符串“hello”在內存中例空串“”\0字符常量與字符串常量不同aa\0例‘a’“a”例:charch;ch=“A”;例:charch;ch=‘A’;沒有字符串變量,只能用字符數(shù)組存放<目前五十九頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法3.6
變量賦初值變量的使用:先定義,后使用變量定義位置:一般放在函數(shù)開頭變量初始化:可以在定義時賦初值例:inta=1,b=-3,c;floatdata=3.67;charch=‘A’;intx=1,y=1,z=1;intx=y=1;(×
)編譯程序根據(jù)變量定義為其分配指定字節(jié)的內存單元…...地址inta=1,b=-3,c;abc2字節(jié)2字節(jié)2字節(jié)地址地址…...內存1-3隨機數(shù)錯!inta=b=c=3<目前六十頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法3.7
各類數(shù)值型數(shù)據(jù)間的混合運算整型、實型、字符型數(shù)據(jù)間可以混合運算自動轉換什么情況下發(fā)生運算轉換------不同類型數(shù)據(jù)混合運算時賦值轉換------把一個值賦給與其類型不同的變量時輸出轉換------輸出時轉換成指定的輸出格式函數(shù)調用轉換------實參與形參類型不一致時轉換運算轉換規(guī)則:不同類型數(shù)據(jù)運算時先自動轉換成同一類型<目前六十一頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法doublefloatlongunsignedintchar,short低高說明:必定的轉換運算對象類型不同時轉換例charch;inti;floatf;doubled;ch/i+f*d-(f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+‘a’+i*f-d/l例inti;floatf;doubled;longl;<目前六十二頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法強制轉換(見P56強制類型轉換運算符部分)一般形式:(類型名)(表達式)例:(int)(x+y)(int)x+y(double)(3/2)(int)3.6說明:強制轉換得到所需類型的中間變量,原變量類型不變例3.8#include<stdio>main(){floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);}結果:x=3.600000,i=3精度損失問題較高類型向較低類型轉換時可能發(fā)生強制類型轉換運算符表達式僅一個變量時,括號可以省略
<目前六十三頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法3.8算術運算符和算術表達式C運算符算術運算符:(+-*/%++--)關系運算符:(<<===>>=!=)邏輯運算符:((!&&||)位運算符:(<<>>~|^&)賦值運算符:(=及其擴展)條件運算符:(?:)逗號運算符:(,)指針運算符:(*&)求字節(jié)數(shù):(sizeof)強制類型轉換:(類型)分量運算符:(.->)下標運算符:([])其它:(()-)學習運算符應注意:運算符功能與運算量關系要求運算量個數(shù)要求運算量類型運算符優(yōu)先級別結合方向結果的類型<目前六十四頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法算術運算符和算術表達式基本算術運算符:+-*/%結合方向:從左向右優(yōu)先級:----->*/%----->+-(2)(3)(4)說明:“-”可為單目運算符時,右結合性兩整數(shù)相除,結果為整數(shù)%要求兩側均為整型數(shù)據(jù)+-*/運算的兩個數(shù)中有一個數(shù)為實數(shù),結果是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=15%1=05.5%2()<目前六十五頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法自增、自減運算符++--作用:使變量值加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<目前六十六頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法幾點說明:例-i++i=3;printf(“%d”,-i++);-(i++)//-3++--不能用于常量和表達式,如5++,(a+b)++++--結合方向:自右向左優(yōu)先級:-++-------->*/%----->+-(2)(3)(4)該運算符常用于循環(huán)語句中,使循環(huán)變量加減1有關表達式使用中的問題說明不同系統(tǒng)對運算符和表達式的處理次序不同,盡可能寫通用性強的語句不要寫有歧義和不知系統(tǒng)如何執(zhí)行的程序<目前六十七頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法3.9
賦值運算符和賦值表達式簡單賦值運算符符號:=格式:變量標識符=表達式作用:將一個數(shù)據(jù)(常量或表達式)賦給一個變量左側必須是變量,不能是常量或表達式例a=3;d=func();c=d+2;例3=x-2*y; a+b=3;(×)<類型轉換賦值轉換規(guī)則:使賦值號右邊表達式值自動轉換成其左邊變量的類型例
floatf;inti=10;f=i;則
f=10.0例inti;i=2.56;//結果i=2;目前六十八頁\總數(shù)五百三十三頁\編于十二點復合賦值運算符種類:+=-=*=/=%=《=》=&=^=|=含義:exp1op=exp2exp1=exp1opexp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3目前六十九頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法賦值表達式形式:<變量><賦值運算符><表達式>賦值表達式的值與變量值相等,且可嵌套例:a=b=c=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)//表達式值為5,a,b,c值為5//b=5;a=5//表達式值11,c=6,a=11//表達式值10,a=10,b=4,c=6//表達式值5,a=5,b=10,c=2<目前七十頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法3.10
逗號運算符和逗號表達式形式:表達式1,表達式2,……表達式n結合性:從左向右優(yōu)先級:15,級別最低逗號表達式的值:等于表達式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,表達式值60//a=15,表達式值20//賦值表達式,表達式值18,x=18//逗號表達式,表達式值18,x=3//1,2,3//3,2,3<目前七十一頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法例:逗號表達式使用main(){intx,y=7;floatz=4;x=(y=y+6,y/z);printf("x=%d\n",x);}X=3
運行結果:
本章的內容散亂而復雜,但卻是程序設計的基礎,要認真看書,通過編程序才可以深入理解。<目前七十二頁\總數(shù)五百三十三頁\編于十二點>
C語言程序設計
第三章程序的靈魂——算法課后作業(yè)P66~68頁習題:3.2,3.5(思考)3.3,3.4,3.9,3.12(寫出答案)3.6,3.10(上機驗證)上機:實驗教材:實驗2(做好上機準備)預習第四、第五章<目前七十三頁\總數(shù)五百三十三頁\編于十二點第4章最簡單的C程序設計——
順序程序設計
C語言程序設計
第四章順序程序設計C語言概述賦值語句數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)字符數(shù)據(jù)的輸入輸出格式輸入與輸出順序結構程序設計舉例目前七十四頁\總數(shù)五百三十三頁\編于十二點<>4.1
C語句概述C程序結構:一個C程序可以由多個源程序文件構成
一個源程序文件由若干函數(shù)、預編譯命令及全局變量聲明部分構成函數(shù)包括數(shù)據(jù)定義部分和執(zhí)行部分,執(zhí)行部分是C語言語句,完成對數(shù)據(jù)的操作
C語言程序設計
第四章順序程序設計目前七十五頁\總數(shù)五百三十三頁\編于十二點<>C語句分為5類控制語句:共9種完成一定的控制功能,這些語句能夠根據(jù)一定的測試條件決定某些語句是否被執(zhí)行,如分支、循環(huán)、跳轉等語句。
C語言程序設計
第四章順序程序設計if()~else~(條件語句)for()~while()~(循環(huán)語句)do~while()continue(結束本次循環(huán)語句)switch(多分支選擇語句)break(終止switch或循環(huán)語句)goto(轉向語句)return(從函數(shù)返回語句)
目前七十六頁\總數(shù)五百三十三頁\編于十二點<>
C語言程序設計
第四章順序程序設計
空語句:只有一個“;”,什么也不做
表達式語句:由表達式加“;”組成典型的是賦值語句,由賦值表達式加分號構成,如:y=x+1是表達式,而y=x+1;則是賦值語句。實際上函數(shù)調用語句也屬于表達式語句。
函數(shù)調用語句:由函數(shù)加“
;”組成printf(“ThisisaCprogram”);
a=3;i++;for(i=0;i<100;i++){;}目前七十七頁\總數(shù)五百三十三頁\編于十二點<>復合語句:用{…}括起來的一組語句,也稱作程序塊。一般形式:
C語言程序設計
第四章順序程序設計inti=0,sum=0;while(i<=100){ sum=sum+i; i=i+1;}說明復合語句“}”后不加分號語法上和其它語句相同復合語句可嵌套目前七十八頁\總數(shù)五百三十三頁\編于十二點<>4.2
賦值語句基本格式:
賦值表達式+;賦值表達式可以包含在其它表達式中,而賦值語句不可以。
C語言程序設計
第四章順序程序設計例:if((a=b)>0)t=a;不可寫為:if((a=b;)>0)t=a;目前七十九頁\總數(shù)五百三十三頁\編于十二點<>
C語言程序設計
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子圖書出版與運營手冊
- 房屋租賃三方合同格式
- 焊接工藝與材料選擇作業(yè)指導書
- 成本合同管理大全
- 生物科技居間合同協(xié)議書
- 有關事業(yè)單位合同
- 2025年呼和浩特貨運從業(yè)資格證模擬考試題下載
- 2025年南昌從業(yè)資格貨運資格考試題庫答案解析
- 2025年龍巖a2駕駛證貨運從業(yè)資格證模擬考試
- 電力市場策略合同(2篇)
- 賞析小說語言(二)
- 【立高食品公司的償債能力現(xiàn)狀及問題分析(論文9000字)】
- 銷量返點合同范本
- 裝飾施工圖審查要點
- 家庭生活中的安全隱患及預防方法
- 食堂炊事員聘用合同
- 信用信息平臺建設方案
- 10.《運動技能學習與控制》李強
- 大地保險理賠標準
- 車險經營情況分析報告模板
- 農業(yè)一張圖建設方案
評論
0/150
提交評論