




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第2章 基本程序設(shè)計主 要 內(nèi) 容 數(shù)據(jù)及其表示方法; 數(shù)據(jù)的基本運算; 基本輸入輸出。 程序是對數(shù)據(jù)按照算法處理,并輸出結(jié)果的過程,因此,以上三個問題是程序設(shè)計的基本問題。2.1 數(shù)據(jù)類型1/2 ? 數(shù)據(jù)是對客觀事物特征抽象的符號化表示,客觀事物不同,表示的方法也不同(人數(shù)以整數(shù)表示,圓面積用小數(shù)表示,燈的狀態(tài)用開關(guān)表示,信件要用文字表示),計算機的處理方法也不同,因此根據(jù)程序處理的數(shù)據(jù)對象,應(yīng)規(guī)定數(shù)據(jù)的類型。 計算機由于工程的限制,只能在有限精度和有限范圍內(nèi)在工程上近似地描述操作的對象數(shù)據(jù)。 數(shù)據(jù)類型決定了數(shù)據(jù)的如下特征:數(shù)據(jù)的外部表示方式和內(nèi)部存儲方式不同;表示的范圍和精度不同;對數(shù)據(jù)的
2、處理方式不同。C語言的數(shù)據(jù)類型C語言的數(shù)據(jù)類型基本類型字符型 char浮點型 float double構(gòu)造類型數(shù)組、結(jié)構(gòu)、聯(lián)合、枚舉型 enum指針類型空類型 void整 型 int2.2 常量(Constant)及其類型 常量的概念 在程序中不能改變的量稱為常量。常量的類型由數(shù)據(jù)的外部表現(xiàn)形式確定。常量的外部形式及其確定的類型整型常量的表示 整型常量根據(jù)表示的范圍可以有一般整型和長整型,還可以表示為十進制、八進制、十六進制形式。一般整型常量的表示進 制表示舉例范 圍 字節(jié)數(shù)十 進 制2304 -32768 2八 進 制 04400 0 0177777 2十六進制 0 xaa00 0 x000
3、0 0 xffff2長整型常量的表示進 制表示舉例范 圍 字節(jié)數(shù)十 進 制-21234l -231 +231-14八 進 制 04400l 0 4十六進制 0XAA00L 0 x0000-0 xffffffff 4浮點型常量的表示(只有十進制表示) 浮點型常量有兩種表示方式:小數(shù)表示方法,指數(shù)表示方法。不區(qū)分單、雙精度。小數(shù)表示方式規(guī)則:一個小數(shù)點、符號和至少一位數(shù)字。-2.0 1. 0.11113 -15.指數(shù)表示方式規(guī)則:規(guī)則:nem 表示 n10mn小數(shù)部分,整型常量或小數(shù)形式表示的實型常量。指數(shù)部分,兩位整數(shù)。 n決定精度,一般精度為7位;m決定范圍,范圍10-38到10+38,當超過
4、范圍時稱為“溢出”,小于10-38稱為下溢,當0處理,大于10+38,稱為上溢,系統(tǒng)出錯!123.456 表示為 0.123456E 表示為 -1e70.0000123 表示為 0.123e-4字符常量的表示 表示ASCII字符集中的一個字符。字符有一個整型值,即該字符的ASCII碼值。表示方法:a 、 ! 。撇號定界的一個字符。值為:97字符串常量的表示 雙引號“定界的字符序列。系統(tǒng)會在最后一個字符后加NULL(ASCII碼值為0),標志字符串的結(jié)束。 如:”HEFEI ” ”Hello!” a 和 ”a”的區(qū)別?內(nèi)部 a :97 ”a”: 97NULL72101108108111330He
5、llo!0”Hello!” 在內(nèi)存中的存儲結(jié)構(gòu):符號常量格式: # define 符號常量名 常量好處:(1)以簡代繁; (2)一改全改。注意:常量符號名習(xí)慣用大寫字母。例如: # define PI 3.14159說明:必須先說明,后使用。2.3 變量(Variable)及其類型 變量的概念 變量是在程序中可以改變的量,變量具有三個特征: 變量有名,用標識符命名; 變量有類型; 在程序中可以改變。 變量對應(yīng)于內(nèi)存中某一地址下的幾個單元,變量名作為程序引用變量的標志。變量的類型確定了變量在內(nèi)存中所占單元的數(shù)量及其表示的方式。變量的地址可以通過&運算獲得。內(nèi)存int a; a變量的引用標志&a對
6、應(yīng)a的地址。 整型變量占兩個內(nèi)存單元。變量必須先說明后使用!說明的目的是確定變量的名字和類型。變量的說明形式: type 變量名表;/*以,分隔的標識符表*/ int a,b,c;type是類型說明詞,對于整型和字符型可加修飾說明?;绢愋驼f明符:int、char、float、double修飾說明和基本說明的對應(yīng)關(guān)系修飾說明詞可用于修飾的基本類型singed/unsignedint、charshort/longintlong int a,b,c; 整型變量說明說明詞及性質(zhì)如下:說明詞含義范圍Byteshort int有符號短整型-32768327672int有符號一般整型-2147483648
7、4long int有符號長整型21474836474unsigned short無符號短整型0655352unsigned無符號一般整型0 4unsigned long無符號長整型0 4short a,b,c;int e,f,g;long _qs,num;unsigned d,e,f;字符型變量的說明說明符 所占字節(jié)數(shù) 范圍 char 1 -128 +127unsigned char 1 0 255浮點型變量的說明說明符 所占字節(jié)數(shù) 范圍 精度float 4 10-38 10+38 7位double 8 10-308 10+308 16位浮點型變量包含精度和范圍兩個概念。 超過精度位數(shù)后的位數(shù)
8、值不確定。float a;a=1.1111111111;超過范圍溢出(Overflow)。超出精度部分,不準確。float a,b,c;a=1.234e+20 ; b=2.345e+21;c=a*b ;超出1038,溢出。 當運算結(jié)果大于10+38稱為上溢,系統(tǒng)出錯。 當運算結(jié)果小于10-38稱為下溢,當0處理。2.4 運算符與表達式 程序的核心是對數(shù)據(jù)按照算法進行處理(運算)。C 語言提供了強大的數(shù)據(jù)運算功能。數(shù)據(jù)通過運算符連接的式子稱為表達式,表達式根據(jù)運算關(guān)系對數(shù)據(jù)運算,并得到一個值。變量賦值(Assignment)運算格式: V=expression;/* 將expression的值賦
9、給變量V*/int a=2; /*說明賦值,編譯時賦值。*/int b;b=3+2; /*說明后賦值,執(zhí)行時賦值。*/說明: =是賦值號(動詞); 賦值運算的左值只能是變量。a=a+2;iCount=iCount+10;a+2=12; /*Error!*/ 賦值號兩邊類型應(yīng)該一致,如不一致,以變量類型轉(zhuǎn)換。 int a=2.5 ; /* 2a */算術(shù)運算(Arithmetic operators) 功能:完成各種類型數(shù)據(jù)的加、減、乘、除及求余數(shù)運算。雙目算術(shù)運算(兩個運算對象參加的運算)運算運算規(guī)則示例+加2+3-減a-b*乘2*(-a)/除12/3.0%求余數(shù)15%4 只能對整型或字符型數(shù)
10、據(jù)運算。余數(shù)符號與被除數(shù)相同。注意:乘號不能省略!-12%5-2-12%(-5)1%2自加、自減運算(單目運算)運算符前置后置運算關(guān)系+aa+a=a+1 -aa-a=a-1說明:運算對象只能是一個變量。前置是先運算,后引用,而后置則是先引用,后運算。2+; /* Error !*/int i, x;i=5;x=i+;/* x=i;i=i+1;*/i=5;x=+i;/* i=i+1;x=i;*/#include void main(void) int a=2,b=3,c; c=a+b; printf(“%d”,c);C語言盡可能多的從左向右結(jié)合符號形成運算符。想一想:int i=3;printf
11、(“%d,%d”,-i+,i); printf(“%dn”,i); 輸出:printf(“%d,%d”,4-i+,i); printf(“%dn”,i); 輸出: printf(“%d,%d”,-+i,i); printf(“%dn”,i); 輸出:printf(“%d,%d”,4-+i,i); printf(“%dn”,i); 輸出:-3,340,45-6,56-3,67算術(shù)運算賦值運算符表達式示例運算關(guān)系+=a+=3 a=a+3-=b -= c b=b-c* =a* =2 a=a*2 /=s/=t s=s/t%=a%=5 a=a%5 說明:運算對象的左值只能是一個變量。(a+2)+=5;
12、/*Error !*/%=運算的對象,必須是整型或字符型。例: a=12; a+=a-=a*a;/等價于a=a+(a=a-(a*a)a=-264例: int m=5,y=2; y+=y-=m*=y;/等價于y=y+(y=y-(m=m*y)y=-16賦值表達式的值與變量值相等,且可嵌套。 算術(shù)運算的說明運算中的類型問題運算對象的類型相同,運算結(jié)果取運算對象相同的類型。int a;float b;b=2/3; /* 0b 0.0*/a=5.0/2.0; /*2.5a 2 */ 運算對象的類型不同,先將低等類型轉(zhuǎn)換為高等類型后再進行運算,運算結(jié)果取高等類型。等級原則如下:charintlongdou
13、blefloat2*16.0+15.0doubledoubledouble運算時可以實行類型的強制轉(zhuǎn)換,格式如下:(type)expression 只對當前表達式起作用。(float)a/(int)c+(float)(a+10)2int(fSum)類型轉(zhuǎn)換舉例int a;float b;int c;c=a * 1.0 + b * 5 + (float) A;idfic d f ff d dc int注意:賦值運算右值表達式的類型轉(zhuǎn)換以左值變量的類型為準。運算的優(yōu)先級 表達式的運算是分步驟進行的。因此當一個表達式中出現(xiàn)多種運算時,存在優(yōu)先級的問題。算術(shù)運算的優(yōu)先級如下:+、- -、(type)
14、單目運算*、/、%+、-=、op=相同優(yōu)先級,結(jié)合順序從左到右!3*4+6/a- 6%3;相同優(yōu)先級,結(jié)合順序從右到左!可以用( )調(diào)整優(yōu)先級。條件運算運算格式: e1 ? e2 : e3 e1、e2、e3為表達式,當e1非0時,運算結(jié)果取e2的值;當e1為0時,取e3的值。int a=2,b=3,c=-1,d;d=a?b:c; /*d為3*/a=0;d=a?b:c; /*d為-1*/逗號表達式格式: e1, e2, e3,en 用,分隔的表達式,計算順序從左到右,表達式取值為en;sizeof 運算形式: sizeof 數(shù)據(jù)對象; sizeof (類型說明符);int a,b,c;b=siz
15、eof a; /*b的值為4 */c=sizeof(float); /* c的值為4*/x=(a=5,a+6)*10;例:a=3*5,a*4; a=3*5,a*4,a+5; /* a=15 */例:x=(a=3,6*3); /* x=18 */ 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); 例: #include main() int x,y=7; float z=4; x=(y=y+6,y/z); printf(x=%dn,x); C語言常用數(shù)學(xué)函數(shù) 為方便用戶使用,C語言
16、系統(tǒng)定義了大量函數(shù)。數(shù)學(xué)函數(shù)主 要目的是求解常用數(shù)學(xué)函數(shù),如sinX等。數(shù)學(xué)函數(shù)的原型定義在 系統(tǒng)的math.h頭文件中。在使用此類函數(shù)時,應(yīng)在程序的開始出 加如下語句: #include 使用方法:作為一個運算項參加表達式運算。 函數(shù)的參數(shù)(自變量)、函數(shù)的值都是double類型。y=sqrt(sin(x)*sin(x)+cos(x)*cos(x)log10 xlog10(x)lnxlog(x)sqrt(x)xypow(x,y)| x |fabs(x)tanX tan(x) cosXcos(x)sinXsin(x)數(shù)學(xué)含義函數(shù)2.5 數(shù)據(jù)的輸入輸出Input &Output C 語言沒有輸入
17、輸出語句,輸入輸出是通過系統(tǒng)定義的標準函數(shù)來實現(xiàn)的。 I/O函數(shù)的原型定義在stdio.h頭文件中,在引用I/O函數(shù)時,應(yīng)應(yīng)在程序開始處加預(yù)處理語句包含頭文件。#include 輸入輸出的概念輸入輸出指的是內(nèi)存變量或程序和外部設(shè)備間的數(shù)據(jù)交換。內(nèi)存外設(shè)輸入 輸出輸入輸出函數(shù)要描述:輸入輸出的量;輸入輸出的格式;輸入輸出的設(shè)備。2. 字符輸入輸出函數(shù)(1)輸入:getchar( ) 從標準輸入設(shè)備(鍵盤)讀入一個字符。 調(diào)用格式: c=getchar( ); c 為一字符型或整型變量。例: #include main( ) int a1,a2;char c1,c2; a1=97;a2=65;c1
18、=a;c2=A; putchar(a1);putchar(a2); putchar(c1);putchar(c2);putchar(n); a1=getchar( ); c1=getchar( ); putchar(a1);putchar(t);putchar(c1); (2)輸出:putchar( ) 向標準輸出設(shè)備(顯示器)輸出一個字符。 調(diào)用格式: putchar( c ); c 為一字符型或整型變量和常量。如:putchar(A); putchar(65); 均輸出字母A 。 程序運行結(jié)果:aAaA 輸入:97 9 7格式輸入輸出函數(shù)輸出函數(shù)printf( )格式:printf(“輸出
19、格式字符串”,輸出項列表);格式描述。用,分隔的常量、變量、表達式表。輸出格式字符串可包含以下內(nèi)容:普通字符 ,如:a=轉(zhuǎn)義字符,如:n 對于普通字符和轉(zhuǎn)義字符在相應(yīng)位置原樣輸出,其中%用%。 printf(“nabcd%”); 輸出結(jié)果: abcd% 格式說明符組,說明輸出項列表中的各項的輸出格式。格式說名符組用%為開始標志。內(nèi)容包含對一項輸出對象的格式說明。%-7.5f格式說明類型表格式說明符說明量的類型%d、%o、%x、%u整型%c字符型%s字符串%f、%e浮點型 格式說明符應(yīng)和輸出的列表項對應(yīng),產(chǎn)生相應(yīng)的輸出。其中輸出的表項應(yīng)與格式說明符類型一致。printf(“a=%5dnb=%f”
20、, 2+3, 5.34);輸出結(jié)果:a=5 b=5.340000格式說明串的一般形式和意義% - m.n l 格式類型字符(一個字母)格式說明標志對齊方式:缺省為右對齊,-為左對齊。 寬度.精度(位數(shù)),寬度:輸出總列數(shù),精度:小數(shù)位數(shù)(或字符位數(shù))。整型長度,缺省短整型,l長整型。#include void main(void) float a; a=1.232326 ; printf(“a=%10.4f”,a);各種類型數(shù)據(jù)輸出舉例 字符型輸出char ch=b;printf(“%5c, %-5c, %c” ,ch ,ch-32,s+1);輸出結(jié)果:b,B,t字符串輸出#include v
21、oid main(void) char chString =China; printf(%s,%6s,%-6sn,chString,chString,chString); printf(“%4s%6.2s%-6.2s,Hefei,Hefei,Hefei);China, China, China Hefei HeHe寬度不夠,原樣輸出。m.n,m為總輸出列數(shù), n 截取輸出字符數(shù)。整型輸出#include void main(void) unsigned int a=65535; int b=-2; printf(a=%d,%o,%x,%u, a, a, a, a); printf(nb=%6d
22、%8o%5X%6u,b, b, b, b);a=-1,177777,ffff,65535b=-2177776FFFE65534浮點數(shù)輸出include void main(void) float f=123.456; printf(%f,%10f,%10.2f,%-10.2fn,f ,-f ,f ,-f);123.456001,-123.45600,123.46,-123.46 小數(shù)保留兩位,四舍五入截斷。符號占一位!輸入函數(shù)scanf()格式: scanf(“格式說明字符串”,輸入變量地址列表); 說明: m域?qū)捒勺詣咏厝。崭褡鳛楦鲾?shù)據(jù)項的分隔符。 void main(void) int
23、i,j; scanf(%3d%3d,&i,&j); printf(%dn%d,i,j);123456實型變量輸入時不能規(guī)定精度;scanf(“%7.2f”,&a); ERROR! 數(shù)據(jù)輸入用SPACE分隔,當格式字符用其他字符隔離,輸入時也應(yīng)在對應(yīng)位置上輸入相同的字符;void main(void) int i,j; scanf(i=%d,j=%d,&i,&j); printf(n%dn%d,i,j);輸入項只能是變量,且必須用地址形式。程序設(shè)計舉例 已知:有一圓柱體,底半徑為r,圓柱高為h。 求: 底面積、表面積,底周長、體積。定義變量 fAread、 fAreas, fLen, fV 輸出; r 、h輸入。rh建立模型fLen=2rfAread=r2,fAreas=2r2+2rh=2fAread+fLenhfV=fAreadh程序如下:#include void main(void) float fAread,fAreas,fLen,fV,r,h; /*說明變量*/ scanf(“%f,%f”,&r,&h); /*輸入原始數(shù)據(jù)*/ fLen=2.*3.1415926*r; fAread
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 通信概預(yù)算試題及答案
- 2025年策劃簽署中學(xué)教育合作交流協(xié)議范本
- 2025年房屋裝修協(xié)議書樣例
- 2025年領(lǐng)養(yǎng)手續(xù)協(xié)議書模板
- 2025年官方居間協(xié)同協(xié)議
- 2025年特殊教育學(xué)校聘請臨時教師協(xié)議
- 2025年單位二手物品策劃調(diào)配協(xié)議書
- 2025年建筑器材租賃協(xié)議模板
- 企業(yè)法律權(quán)益保護的面臨的問題、機遇與挑戰(zhàn)
- 二甲基亞砜在綠色化學(xué)中的角色與挑戰(zhàn)
- 三基三嚴測試題(附參考答案)
- 2025年油田數(shù)字化運維(初級工)職業(yè)技能等級認定理論考試題庫(含答案)
- 軍隊食堂管理員崗位職責(zé)
- 25學(xué)年四年級數(shù)學(xué)下期末復(fù)習(xí)每日一練
- 2024年江蘇省無錫市中考歷史真題(原卷版)
- 金礦合作協(xié)議書
- 人教版三年級數(shù)學(xué)下冊100道口算題大全(全冊)
- 2025年中國電瓷器材市場調(diào)查研究報告
- 2025年中國茴香市場現(xiàn)狀分析及前景預(yù)測報告
- 電商直播對消費者購買行為影響的實證研究
- 學(xué)校病媒生物防制培訓(xùn)
評論
0/150
提交評論