歡迎來到裝配圖網! | 幫助中心 裝配圖網zhuangpeitu.com!
裝配圖網
ImageVerifierCode 換一換
首頁 裝配圖網 > 資源分類 > PPT文檔下載  

C程序基礎與程序結構.ppt

  • 資源ID:11548932       資源大?。?span id="fhvxhfp" class="font-tahoma">872.31KB        全文頁數:51頁
  • 資源格式: PPT        下載積分:14.9積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要14.9積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

C程序基礎與程序結構.ppt

程序設計基礎(C),第2章程序設計基礎與程序結構,C程序基礎,1.C語言的發(fā)展歷程2.C語言程序的基本結構3.C程序運行過程4.C語言基本語法成分5.C語言數據類型6.數據的輸入與輸出7.C語言中的宏定義8.C語言中的文件包含9.C語言中的條件編譯10.位運算及其應用,1.C語言的產生、發(fā)展及特點,C語言的產生及發(fā)展ALGOL60CPLBCPCBC標準CANSICISOC,常見的C語言版本有:Borland公司:TurboC,TurboC+,BorlandC+,C+BuilderMicrosoft公司:MicrosoftC,VisualC+,自學,1.C語言的產生、發(fā)展及特點,C語言的特點1.C語言的語言成分簡潔、緊湊、書寫形式自由。2.C語言擁有豐富的數據類型。3.C語言的運算符豐富、功能更強大。4.C語言是結構化程序設計語言。5.C語言對語法限制不嚴格,程序設計靈活。6.C語言編寫的程序具有良好的可移植性。7.C語言可以實現匯編語言的大部分功能。8.C語言編譯后生成的目標代碼小,質量高,程序的執(zhí)行效率高。,自學,2.C語言程序的基本結構,認識C語言程序,例1-1在屏幕上輸出一行信息,#include/*預處理命令*/voidmain()/*主函數*/printf("ThisisaCprogram!n");,文件包含命令,其功能是將頭文件stdio.h的內容包含到用戶當前的源程序中。,每個C程序必須有主函數main。main是函數名,main后的圓括號不能省略,void是一種數據類型,說明該函數沒有返回值。,printf是標準輸出函數,因為要調用它所以前面必須加#include命令。printf函數的作用是將雙引號中的內容輸出到顯示器屏幕上,其中n是換行符,它使光標跳到下一行行首,2.C語言程序的基本結構,#includevoidmain()intx,y,a,b;x=5;y=3;a=x+y;b=x-y;printf("a=%dn",a);printf("b=%dn",b);,輸出結果:a=8b=2,例1-2求兩數之和與兩數之差,這是4個賦值語句,x=5;的作用是將5賦給變量x,即變量x的值變?yōu)?;a=x+y;的作用是將x,y變量的值相加,再將結果賦值給變量a,/*變量聲明,聲明了4個整數類型的變量,C語言的變量必須先聲明再使用*/,/*雙引號中的a=是原樣輸出的,%d為格式控制符,在這個位置將對應輸出整型變量a的數值*/,2.C語言程序的基本結構,例1-3輸入兩個數,求兩數中較大的數并輸出,#includevoidmain()inta,b,c;scanf("%d%d",scanf是標準輸入函數,%d表示輸入十進制整數,voidmain()inta,b,c;scanf("%d%d",例1-4,/*這個程序由2個函數組成,一個是main函數,一個是用戶自己定義的max函數*/,這是函數聲明,它的作用是告訴編譯系統該程序要使用一個max函數,/*調用max函數,求出a和b中較大的數,然后將結果賦值給變量c*/,/*max函數的定義,max前的int表示該函數最后會返回一個整數值,max后括號中定義了2個整型參數x和y,參數的作用是在函數調用時傳遞數據*/,/將計算結果返回(返回到main中調用max的位置),2.C語言程序的基本結構,C語言程序的基本結構,編譯預處理命令函數聲明部分/聲明用戶自己定義的函數voidmain()/主函數的定義聲明部分/包括變量的聲明和函數的聲明執(zhí)行部分/主要是C語句其他函數定義/可能有多個函數定義聲明部分執(zhí)行部分,思考?,2.C語言程序的基本結構,1、函數是C程序的基本單位一個C源程序一般由一個主函數和若干其他函數構成,注意一個C程序必須包含且只能包含一個main函數。C程序從main函數開始執(zhí)行,調用其他函數后再返回到main函數。main函數可以調用其他函數,其他函數之間也可以互相調用,注意其他函數不能調用main函數C函數分為標準函數和用戶自定義函數兩種形式在調用標準函數時,要注意加文件包含命令用戶自定義函數是用戶根據程序需要,自己編寫的函數,C程序結構的簡要說明:,2.C語言程序的基本結構,C程序結構的簡要說明:2、函數的基本結構intmax(intx,inty)intz;if(x>y)z=x;elsez=y;return(z);,函數首部定義格式:返回值類型函數名(參數列表),函數體函數首部下面用一對括起來的部分。函數體一般包括聲明部分和執(zhí)行部分。聲明部分:定義本函數中所使用的變量。執(zhí)行部分:由若干條語句組成。,2.C語言程序的基本結構,C語言的語句,1.控制語句(9種):完成一定的控制功能if()else條件語句(雙分支選擇語句)switch多分支選擇語句for()while()循環(huán)語句dowhile()continue結束本次循環(huán)語句break中止語句goto轉向語句return從函數返回語句,2.C語言程序的基本結構,2.函數調用語句:由一個函數調用加一個分號構成例:printf("ThisisaCprogram!n");scanf("%d%d",3.表達式語句:由表達式加分號構成例:x=5(賦值表達式)加;x=5;(賦值表達式語句),變量賦值:變量表達式(1)=是賦值運算符(又稱賦值號)(2)表達式包括:常量,變量,函數,其他合法的C語言表達式(3)賦值運算符為右結合性,先計算賦值號右邊的表達式的值,再將值賦給左邊的變量,例:intx,y,z,a,b,c;x=5;y=3;z=x;a=abs(y-x);b=x+y;c=b=a;,先算b=a;再算c=b;,2.C語言程序的基本結構,變量賦值的特點:變量必須先定義,后使用。,變量被賦值前,值是不確定的。,對變量的賦值過程是“覆蓋”過程,即用新值去替換舊值。,例:intx,y;x=6;y=23;z=y-x;,例:inti;while(iy)inttemp;temp=x;x=y;y=temp;,注意:1.復合語句是一個整體,相當于一個語句2.一個復合語句中可以包含其他復合語句3.在復合語句的花括號后不要加分號4.復合語句中可定義變量,但此變量只在該復合語句內有效,3.C程序運行過程,程序的有關概念,程序:程序是一組計算機可以識別和執(zhí)行的指令,每一條指令使計算機執(zhí)行特定的操作。,源程序:用高級語言或匯編語言編寫的程序稱為源程序。源程序不能直接在計算機上執(zhí)行,需要經過“編譯”將其翻譯為二進制形式的代碼。,目標程序:源程序經過“編譯”所得到的二進制代碼為目標程序。其擴展名為“.OBJ”。目標代碼盡管已經是機器指令,但是還不能運行,因為它還沒有解決函數調用問題。,可執(zhí)行程序:目標程序與庫函數進行連接,形成完整的可在操作系統下獨立執(zhí)行的程序稱為可執(zhí)行程序。其擴展名為“.EXE”,3.C程序運行過程,編輯:將源程序輸入到計算機中,并將源程序保存在磁盤文件中(注意BC環(huán)境下的擴展名為.cpp)編譯:將源程序翻譯成二進制的目標代碼,同時對源程序進行語法檢查,如果有錯誤則修改源程序,然后再編譯,反復該過程直到沒有錯誤位置(注意將正確的源程序再保存一遍)連接:將各模塊的二進制目標代碼與系統標準模塊連接處理后,得到一個可執(zhí)行文件(*.exe文件)執(zhí)行:運行可執(zhí)行文件,檢查結果是否正確,如果有錯誤則應修改源程序,再重復以上步驟,直至程序運行正確,編輯,編譯,連接,執(zhí)行,C程序的運行步驟,編寫簡單的C語言程序,例1-5a瓶裝醬油,b瓶裝醋,請將醬油和醋進行交換,即a瓶裝醋,b瓶裝醬油,方法:拿一個空瓶c,先將a瓶中的醬油倒入c瓶,再將b瓶中的醋倒入a瓶,最后將c瓶中的醬油倒入b瓶,編程思路:a、b、c瓶可以認為是3個變量,醬油和醋假設用整數表示,用整數8表示醬油,5表示醋,a瓶的醬油倒入c瓶可以認為是將變量a的值賦給變量c,#includevoidmain()inta=8,b=5,c;c=a;a=b;b=c;printf(“a=%d,b=%dn”,a,b);,編寫簡單的C語言程序,#includevoidmain()inta,b,c;floatave;/變量定義scanf(“%d%d%d”,/輸出平均值,例1-6求任意三個整數的平均值,編程思路:首先要有3個整數,這3個數可以用a、b、c3個整型變量存放其次平均值應該用一個變量保存,該變量應該是實數類型求任意3個整數的平均值,所以這3個數應該從鍵盤輸入計算平均值:(a+b+c)/3.0,因為C語言中兩個整數相除得到的結果也是整數(去掉小數部分),為保證結果正確必須用實數3.0,編寫簡單的C語言程序,例1-7計算圓柱體的表面積,計算公式如下:s=s1+2*s2/s表示圓柱體的表面積s1=2*r*h/s1表示側面積s2=*r*r/s2表示底面積,編程思路:首先要定義幾個變量,應該定義r、h、s(s1和s2可以不定義)其次r和h應該具有數據,才能進行計算,因此先輸入r和h怎么處理?定義一個符號常量,令其值為3.1415926按公式計算:s=2*r*h+2*r*r輸出結果,#include#definePI3.1415926/定義一個符號常量PIvoidmain()floatr,h,s;/定義3個實數類型的變量printf(“inputr,h:n”);/提示用戶輸入r,hscanf(“%f%f”,/輸出表面積,4.C語言基本語法,1、C語言字符集字符是C語言最基本的元素,C語言字符集由字母、數字、空白、標點符號和特殊字符組成,C程序是用下列字符所組成的字符集寫成的:(1)字母:A-Z,a-z(2)數字:0-9(3)標點符號、特殊字符(28個):!#%:?"(),(4)空白符:空格,制表符(Tab跳格健),換行符的總稱??瞻追嗽谧址?、字符串中有意義外,在程序中只起間隔作用,編譯系統會忽略其它位置的空白符。,4.C語言基本語法,2、標識符標識符是給程序中的實體所起的名字,標識符的命名規(guī)則以字母或下劃線開頭,由字母,數字和下劃線組成的字符序列標識符不能與C語言的關鍵字重名建議用戶定義標識符時盡量不用下劃線開頭注意標識符的有效長度在bc31中有效長度為31個字符標識符中區(qū)分大,小寫字母如:sum和SUM是不同的標識符,定義標識符應遵循的原則盡量做到見名知義一般習慣上變量名、函數名用小寫,而符號常量用大寫應盡量避免使用容易認錯的字符如:數字1和小寫字母l,4.C語言基本語法,3、關鍵字關鍵字是C語言預先定義的、具有特定意義的標識符,也稱為保留字。C語言包括32個關鍵字:,注意:C語言的關鍵字都是小寫,不能重新定義關鍵字,4.C語言基本語法,4、運算符運算符是用于描述某種運算功能的符號,如+-*/等,運算符可以由一個或多個字符組成。根據參與運算的操作數個數,可分為:單目(一元)運算符、雙目(二元)運算符和三目(三元)運算符,逗號運算符:,指針和地址運算符:*中的空格和逗號都起著分隔符的作用,如果沒有空格程序就會出錯,少了逗號xy就會被認為是一個變量。,6、其他符號花括號通常用于標識函數體或一個復合語句。/*/構成一組注釋符。編譯時系統將忽略注釋。(1)注釋在程序中起提示、解釋作用。(2)在程序調試過程中使用注釋可以暫時屏蔽一些語句。,5.C語言數據類型,在c語言中,每個數據都屬于一個確定的數據類型。不同的數據類型在數據表示形式、取值范圍、占用內存空間大小、可參與的運算種類等方面都有所不同。,數據類型,5.C語言數據類型,#include#definePI3.14voidmain()intr;floatc,s,v;r=3;c=2*PI*r;s=PI*r*r;printf(“%f,%f”,c,s);,例1-9:計算圓的周長和面積,什么是常量和符號常量?,什么是變量、怎樣進行變量聲明?什么是整型數據、實型數據?,整型常量、變量、實型變量的使用?,如何使用printf輸出函數?,5.C語言數據類型,常量:在程序執(zhí)行期間值不發(fā)生變化的量,1、直接常量:15,2.4,f,“asd”,#include#definePI3.14voidmain()intr;floatc,s,v;r=3;c=2*PI*r;s=PI*r*r;printf(“%f,%f”,c,s);,2、符號常量:在程序中用標識符代表的常數定義符號常量的格式:#define標識符常數,3、使用符號常量的優(yōu)點(1)含義清楚(2)修改方便,3.14159,5.C語言數據類型,1.變量的聲明格式:數據類型變量名列表;,如:intr;floatc,s,v;,變量名,變量值,存儲空間,說明:進行變量聲明后,計算機系統會為聲明的變量分配存儲空間,用以存放數據.變量的存儲空間可能由一個或多個字節(jié)組成,內存中的每個字節(jié)都有自己的地址,變量名實際上是一個符號地址,在程序中對變量的賦值和取值操作實際上是通過變量名找到相應的內存地址,然后從對應的存儲空間中讀取數據,變量:在程序執(zhí)行期間值可以變化的量,5.C語言數據類型,整型數據1、整型常量的表示方法(1)十進制整數56,-23,0(2)八進制整數以零開頭034,012(3)十六進制整數以0 x開頭0 x28,0 x1fa9,5.C語言數據類型,例1-10:#includevoidmain()intx,y,z;x=10;y=010;z=0 x10;printf(“x=%d,y=%d,z=%dn”,x,y,z);printf(“x=%d,y=%o,z=%xn”,x,y,z);y=017;z=0 x2b;printf(“y=%d,z=%dn”,y,z);printf(“y=%o,z=%xn”,y,z);,輸出結果:x=10,y=8,z=16x=10,y=10,z=10y=15,z=43y=17,z=2b,%o按八進制形式輸出數據%x按十六進制形式輸出數據,5.C語言數據類型,2、整型變量在內存的存放形式數據在內存中以二進制形式存放,一個整型變量在內存中占用2個字節(jié),每個字節(jié)有8個比特(比特只能取0或1),例:intx=10;,說明:內存中存放的實際是數據的補碼正數的補碼為其二進制形式;負數的補碼是將該負數絕對值的二進制形式按位取反再加1,例:intx=-10;,x的存放形式:,10的二進制形式:,-10在內存中的存放形式:,取反,+1,5.C語言數據類型,3、整型變量的分類有符號基本整型signedint無符號基本整型unsignedint有符號短整型signedshortint無符號短整型unsignedshortint有符號長整型signedlongint無符號長整型unsignedlongint,說明:括起來的為可選項,說明變量時可以省略不寫,例:intx,y;shorta,b;unsignedlongm;,5.C語言數據類型,(1)帶符號整數:存儲時最高位表示符號,0為正,1為負正數的補碼為其二進制數,(計算214+213+22+21+20=16384+8192+4+2+1=32767),int型的正數最大值為32767,負數的補碼:用二進制表示其絕對值,然后按位取反,再加1,由二進制補碼求十進制負數:補碼先減1,再按位取反,將二進制數化為十進制數,最后加上負號,int型的負數的最小值為32768,5.C語言數據類型,(2)無符號整數:最高位與其他位一起表示數值,只能存放正數它與同樣長度帶符號整數相比,所能表示的正數值擴大一倍范圍是:0000000000000000-1111111111111111即0-65535(215+214+21+20),4、整型數據的溢出例:inta,b,c;a=32767;b=a+1;c=b+3;,-32768,-32765,+1,+11,供參考,5.C語言數據類型,1、實型常量的表示方法小數形式:2.4,-9.6,3.,.75指數形式:3.14e0,31.4E1,2、實型數據在內存中的存放形式一個實型數據(float型)在內存中占4個字節(jié),實型數據按指數形式存儲,系統把實型數據分成小數部分和指數部分。常用的C編譯系統多用1位表示符號,用8位表示指數部分,用23位表示小數部分,實型數據,小數點前后的0可以省略,E前面必須有數,且后面的數必須為整數,5.C語言數據類型,3、實型變量的分類單精度float雙精度double長雙精度longdouble,4、實型數據的舍入誤差由于不同類型的實型數據在計算機中有效數字的位數不同,有時不能精確表示某個實數,只能近似表示,所以應避免將一個很大的數和一個很小的數直接相加減。,例:#includevoidmain()floatx,y;x=123456.789e5;y=x+20;printf("x=%f,y=%fn",x,y);,我們認為x=12345678900.00但因為有效數字位數的原因計算機上輸出的是:x=12345678848.000000y=12345678848.000000,一個實型常數默認為double型;要表示float型數,必須在實數后加字母f或F;要表示longdouble型數,必須在實數后加字母l或L。,5.C語言數據類型,1、字符常量:用單引號括起來的一個字符如:s,*,6,說明:1.a和A是兩個不同的字符2.單引號內不能是單引號或反斜杠3.轉義字符如:n,表示反斜杠,表示單引號,2、字符變量例:chara,b,c;a=g;b=$;c=6;,3、字符數據在內存中的存儲形式及使用方法(1)字符數據在內存中以相應的ASCII碼存放,占1個字節(jié),如:字符A,其ASCII碼為65,內存中存放為,字符型數據,詳見表1.4,5.C語言數據類型,(2)字符數據和整數在一定范圍內互相通用,#includevoidmain()charch;ch=a;printf(“%cn”,ch);printf(“%dn”,ch);,輸出:a97,#includevoidmain()charch;intx;ch=A;x=ch+32;printf(“x=%d,ch=%cn”,x,ch);printf(“%cn”,x);,輸出:x=97,ch=Aa,字符數據與整數進行算術運算,字符數據用整數形式輸出,5.C語言數據類型,4、字符串常量:由一對雙引號括起來的字符序列如:“abcd”,“w123”,“k”,“”,注意:k與“k”是不同的k是字符常量,在內存中占1個字節(jié),“k”是字符串常量,在內存中占2個字節(jié),字符串常數在存儲時計算機系統會自動在字符串末尾加一個結束標志0,因此字符串的實際長度為字符個數加1,6.數據的輸入輸出,一、printf函數格式:printf(格式控制,輸出表列);如:printf(“%f,%f”,c,s);printf(“x=%d,y=%d,z=%dn”,x,y,z);,1、格式控制:用“”括起來的字符串,包括如下兩個部分(1)普通字符(包括轉義字符):需要原樣輸出的字符如:printf(“x=%d,y=%d,z=%dn”,x,y,z);,(2)格式說明:由%和格式字符及附加格式說明字符組成%-0m.nl格式字符其作用是將輸出數據按指定的格式輸出,C語言的輸入/輸出均由函數來實現,在使用輸入輸出函數時,應在程序開頭寫預編譯命令:#include,6.數據的輸入輸出,格式字符:指定輸出項的數據類型和輸出格式長度修正符:輸出長整型和double型必須加l域寬及精度描述符m.n(m控制域寬,n控制小數位數)數0用以在指定數字前的空位是否用0填補(對整型,實型可用)負號用以指定輸出項是否為左對齊方式,%-0m.nl格式字符,例3:floatx=6.85;printf(“x=%fn”,x);printf(“x=%4.2fn”,x);printf(“x=%8.4fn”,x);printf(“x=%08.4fn”,x);printf(“x=%-8.4fn”,x);,輸出結果:x=6.850000 x=6.85x=6.8500 x=006.8500 x=6.8500,6.數據的輸入輸出,例:inta=123,b=-1;floatx=12.34;charch=65;printf(“a=%d,b=%dn”,a,b);printf(“a=%x,b=%xn”,a,b);printf(“a=%o,b=%on”,a,b);printf(“a=%u,b=%un”,a,b);,輸出結果:a=123,b=-1a=7B,b=ffffa=173,b=177777a=123,b=65535,6.數據的輸入輸出,例:inta=123;floatx=12.345;printf(“a=%5dn”,a);printf(“a=%-5dn”,a);printf(“a=%2dn”,a);printf(“a=%-5Xn”,a);printf(“x=%7.2fn”,x);printf(“x=%.2fn”,x);printf(“x=%10.2en”,x);printf(“x=%2en”,x);printf(“%5.3sn”,”computer”);printf(“%3sn”,”computer”);,輸出結果:a=123a=123a=123a=7Bx=12.35x=12.35x=1.23e+001x=1.234500e+001comcomputer,6.數據的輸入輸出,2、輸出表列:輸出項可以是常量,變量,表達式,例:intx=8,y=-2;printf(“%dn”,25);printf(“x=%dn”,x);printf(“x*y=%dn”,x*y);printf(“|y|=%dn”,fabs(y);,輸出結果:25x=8x*y=-12|y|=2,6.數據的輸入輸出,二、scanf函數的格式scanf(格式控制,變量地址表列);,1、格式控制(1)格式說明%*ml格式字符m用以指定輸入數據的寬度*是賦值抑制符:表示相應的輸入數據不賦給對應變量,例:inta,b;scanf(“%d%3d”,若輸入:453896則輸出:a=45,b=389,例:floatx,y;scanf(“%f%4f”,若輸入:3.48.962則輸出:x=3.400000,y=8.960000,6.數據的輸入輸出,例:charm,n;scanf(“%3c%c”,若輸入:abcde則輸出:m=a,n=d,例:inta,b;scanf(“%d%*d%d”,若輸入:453896則輸出:a=45,b=96,(2)格式控制中的其他字符:輸入數據時要輸入與其相同的字符如scanf(“a=%d,b=%d”,則輸入必須是:a=12,b=45,2、變量地址表列:由變量地址組成變量地址是在變量名前加地址運算符“b=O;putchar(a);putchar(b);putchar(Y);,輸出:BOY,注意:putchar函數只能有一個參數,6.數據的輸入輸出,供參考,四、字符輸入函數(getchar函數)格式:getchar()(注意它是無參函數)功能:從鍵盤輸入一個字符,例:#includevoidmain()charch;ch=getchar();putchar(ch);putchar(n);putchar(getchar();printf(“*n”);,輸入:ABC輸出:AB*,注意:一般要連續(xù)輸入可顯示字符若中間有空格、回車等字符在輸出時是不可見的,輸入:ABC輸出:A*,輸出空格符,6.數據的輸入輸出,供參考,Classisover,

注意事項

本文(C程序基礎與程序結構.ppt)為本站會員(max****ui)主動上傳,裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。 若此文所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(點擊聯系客服),我們立即給予刪除!

溫馨提示:如果因為網速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!