版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第二章 C程序設(shè)計(jì)的初步知識(shí),/* example 2.1 輸入矩形的兩邊長,求矩形面積*/#include main(){ float a,b ,area; a=1.2; b=3.6; area=a*b; printf(“area=%f”, area);},輸出:area=4.320000,第一節(jié) 簡單C語言程序的構(gòu)成和格式,/*
2、 example1.1 calculate the sum of a and b*/#include /* This is the main program */main(){ int a,b,sum; a=10; b=24; sum=add(a,b); printf(”sum= %d\n",sum);}/* This function calc
3、ulates the sum of x and y */int add(int x,int y){ int z; z=x+y; return(z);},運(yùn)行結(jié)果:sum=34,格式特點(diǎn)習(xí)慣用小寫字母,大小寫敏感不使用行號(hào),無程序行概念可使用空行和空格常用鋸齒形書寫格式書寫格式自由(難讀懂程序),main( ){ ………………. ……………… …
4、……….. ………….. ……… ………. …………… ……………. ………………. ………………..},main( ){ int i , j , sum; sum=0; for(i=1; i<10
5、;i++) { for(j=1;j<10;j++) { sum+=i*j ; } } printf(“%d\n”,sum);},優(yōu)秀程序員的素質(zhì)之一:使用TAB縮進(jìn){ }對(duì)齊有足夠的注釋有合適的空行,結(jié)構(gòu)特點(diǎn)函數(shù)與主函數(shù)程序由一個(gè)或多個(gè)函數(shù)組成必須有且只能有一個(gè)主函數(shù)main()程
6、序執(zhí)行從main開始,在main中結(jié)束,其它函數(shù)通過嵌套調(diào)用得以執(zhí)行。程序語句C程序由語句組成用“;”作為語句終止符注釋/* */為注釋,不能嵌套不產(chǎn)生編譯代碼,,例: /*This is the main /* of example1.1*/ */,,編譯預(yù)處理命令,常用的概念 1. 計(jì)算機(jī)中數(shù)的表示及進(jìn)制轉(zhuǎn)換,(1) 二進(jìn)制、八進(jìn)制、十六進(jìn)制轉(zhuǎn)換成十進(jìn)制方法:按權(quán)相加,(2) 十進(jìn)制轉(zhuǎn)換
7、成 二進(jìn)制、八進(jìn)制、十六進(jìn)制 方法:整數(shù)部分 小數(shù)部分,(3) 二進(jìn)制轉(zhuǎn)化成八進(jìn)制、十六進(jìn)制,(4) 八進(jìn)制轉(zhuǎn)化成十六進(jìn)制,2. 字節(jié)和位內(nèi)存以字節(jié)為單元組成每個(gè)字節(jié)有一個(gè)地址一個(gè)字節(jié)一般由8個(gè)二進(jìn)制位組成每個(gè)二進(jìn)位的值是0或1,3. 數(shù)值的表示方法——原碼、反碼和補(bǔ)碼原碼:最高位為符號(hào)位,其余各位為數(shù)值本身的絕對(duì)值反碼:正數(shù):反碼與原碼相同負(fù)數(shù):符號(hào)位為1,其余位對(duì)原碼取反補(bǔ)碼:
8、正數(shù):原碼、反碼、補(bǔ)碼相同負(fù)數(shù):最高位為1,其余位為原碼取反,再對(duì)整個(gè)數(shù)加1,9-5=49+7=16=(14)12,負(fù)數(shù)補(bǔ)碼轉(zhuǎn)換成十進(jìn)制數(shù):最高位不動(dòng),其余位取反加1,例 原碼:11111001 取反:10000110 加1: 10000111=-7,,數(shù)據(jù)類型總表,數(shù)據(jù)類型決定:1. 數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2. 數(shù)據(jù)取值范圍3. 其上可進(jìn)行的操作,基本數(shù)據(jù)類型,整型,字符型,實(shí)型,有,無,(signe
9、d)int,32,-2147483648~2147483647,說明:數(shù)據(jù)類型所占字節(jié)數(shù)隨機(jī)器硬件不同而不同,上表以IBM PC機(jī)為例:,2.2-2.4 常量與變量、標(biāo)識(shí)符標(biāo)識(shí)符定義:用來標(biāo)識(shí)變量、常量、函數(shù)等的字符序列組成:只能由字母、數(shù)字、下劃線組成,且第一個(gè)字母必須是字母或下劃線大小寫敏感不能使用關(guān)鍵字長度:最長32個(gè)字符命名原則:見名知意不宜混淆 如l與I, o與0,例:判斷下列標(biāo)識(shí)符號(hào)合法性sum
10、 Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char a>b _above $123,M.D.John,3days,#33,char,$123,a>b,(1) 一般用大寫字母(2) 是宏定義預(yù)處理命令,不是C語句,如 #define PRICE 30,
11、常量定義:程序運(yùn)行時(shí)其值不能改變的量(即常數(shù))分類:符號(hào)常量:用標(biāo)識(shí)符代表常量定義格式: #define 符號(hào)常量 常量,#define PRICE 30main(){ int num,total; num=10; total=num*PRICE; printf("total=%d",total);},運(yùn)行結(jié)果:total=300,說明,整型常量
12、 實(shí)型常量 字符常量 字符串常量,,直接常量:,整型常量(整常數(shù))三種形式:十進(jìn)制整數(shù):由數(shù)字0~9和正負(fù)號(hào)表示.如 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,例 12 與 12L,,整型常量的類型根據(jù)其值所在范圍確定其數(shù)據(jù)類型在整常量后加字母l或L,認(rèn)為它是lo
13、ng int 型常量,實(shí)型常量(實(shí)數(shù)或浮點(diǎn)數(shù))表示形式:十進(jìn)制數(shù)形式:(必須有小數(shù)點(diǎn)) 如0.123, .123, 123.0, 0.0, 123.指數(shù)形式:(e或E之前必須有數(shù)字;指數(shù)必須為整數(shù))如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5,實(shí)型常量的類型默認(rèn)double型在實(shí)型常量后加字母f或F,認(rèn)為它是float 型,字符常量定義:用單引號(hào)括起來的單
14、個(gè)普通字符或轉(zhuǎn)義字符.,字符常量的值:該字符的ASCII碼值,如 ‘\101’ -----------‘A’ ‘\012’ -----------’\n’ ‘\376’ -----------’?’ ‘\x61’ -----------’a’ ‘\60’ -----------’0’ ‘\483’ ----------(?),例:‘A’----
15、---’\101’-------’\x41’--------65,如 ‘A’——65, ‘a(chǎn)’——97, ‘0’——48 , ‘\n’——10,如 ‘a(chǎn)’ ‘A’ ‘?’ ‘\n’ ‘\101’,轉(zhuǎn)義字符:反斜線后面跟一個(gè)字符或一個(gè)代碼值表示,main(){ printf("\101 \x42 C\n"); printf("I say:\"How
16、 are you?\"\n"); printf("\\C Program\\\n"); printf("Turbo \'C\'");},運(yùn)行結(jié)果:(屏幕顯示)A B CIsay:”How are you?”\C Program\Turbo ‘C’,例 main() { printf(“Y\b=\n”); },
17、運(yùn)行結(jié)果:屏幕顯示:=打印機(jī)輸出:¥,字符常量與字符串常量不同,字符串常量定義:用雙引號(hào)(“”)括起來的字符序列存儲(chǔ):每個(gè)字符串尾自動(dòng)加一個(gè) ‘\0’ 作為字符串結(jié)束標(biāo)志,變量概念:其值可以改變的量變量名與變量值變量定義的一般格式: 數(shù)據(jù)類型 變量1[,變量2,…,變量n];,變量初始化:定義時(shí)賦初值,例: int a,b,c; float data;,決定分配字節(jié)數(shù)和數(shù)的表
18、示范圍,合法標(biāo)識(shí)符,例: int a=2,b,c=4; float data=3.67; char ch=‘A’; int x=1,y=1,z=1; int x=y=z=1;,變量的使用:先定義,后使用,例1 int student; stadent=19; // error C2065: ' stadent ' : undeclared ide
19、ntifier,變量定義位置:一般放在函數(shù)開頭,整型變量占字節(jié)數(shù)隨機(jī)器不同而不同,一般占一個(gè)機(jī)器字short(2)≤int(4)≤long(4)可用sizeof(類型標(biāo)識(shí)符)測量,實(shí)型變量float:占4字節(jié),提供7位有效數(shù)字double:占8字節(jié),提供15~16位有效數(shù)字,字符型變量字符變量存放字符ASCII碼char與int數(shù)據(jù)間可進(jìn)行算術(shù)運(yùn)算,例 float a;a=111111.111; /*
20、 a=111111.1*/double b;b=111111.111; /* b=111111.111*/,例 a=‘D’; /* a=68; */ x=‘A’+5; /* x=65+5; */ s=‘!’+‘G’ /* s=33+71; */,沒有字符串變量,用字符數(shù)組存放,,例:#define PRICE 12.5
21、main() { int num=3; float total; char ch1,ch2=‘D’; total=num*PRICE; ch1=ch2-‘A’+‘a(chǎn)’; printf(“total=%f,ch1=%c\n”,total,ch1);
22、 },運(yùn)行結(jié)果:total=37.500000, ch1=d,不同類型數(shù)據(jù)間的轉(zhuǎn)換隱式轉(zhuǎn)換不同類型數(shù)據(jù)運(yùn)算時(shí)自動(dòng)轉(zhuǎn)換成同一類型顯式轉(zhuǎn)換(強(qiáng)制類型轉(zhuǎn)換),顯式轉(zhuǎn)換(強(qiáng)制轉(zhuǎn)換)一般形式:(類型名)(表達(dá)式)例 (int)(x+y) (int)x+y (double)(3/2) (int)3.6 說明:強(qiáng)制轉(zhuǎn)換得到所需類型的中間變量,原變量類型不變,例 main() {
23、 float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); }結(jié)果:x=3.600000,i=3,精度損失問題,,2.5-2.7 運(yùn)算符和表達(dá)式,學(xué)習(xí)運(yùn)算符應(yīng)注意:運(yùn)算符功能與運(yùn)算量關(guān)系要求運(yùn)算量個(gè)數(shù)要求運(yùn)算量類型運(yùn)算符優(yōu)先級(jí)別結(jié)合方向結(jié)果的類型,算術(shù)運(yùn)算符和表達(dá)式基本算
24、術(shù)運(yùn)算符: + - * / %結(jié)合方向:從左向右優(yōu)先級(jí):+ - ---->* / % -----> + - (14) (13) (12)說明:“-”可為單目運(yùn)算符時(shí),右結(jié)合性兩整數(shù)相除,結(jié)果為整數(shù)%要求兩側(cè)均為整型數(shù)據(jù)余數(shù)的正負(fù)由被除數(shù)決定,例 5/2 = -5/2.0 =,例 5%2 = -5%2
25、 = 1%10 = 5%1 = 5.5%2,例 5/2 = 2 -5/2.0 = -2.5,例 5%2 = 1 -5%-2 = -1 1%10 = 1 5%1 = 0 5.5%2 (?),自增、自減運(yùn)算符++ --作用:使變量值加1或減1種類:
26、前置 ++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;
27、,//k=4,j=4,//k=3,j=4,//4,//3,//c=20,a=4,//c=15,a=4,說明:++ -- 不能用于常量和表達(dá)式,如5++,(a+b)++++ --結(jié)合方向: 自右向左優(yōu)先級(jí):- ++ -- ------>* / % ----->+ - (14) (13) (12),例 -i++ ? -(i++) i=3; printf(“
28、%d”,-i++); //-3,例 -i++ i=3; printf(“%d”,-i++);,賦值運(yùn)算符和表達(dá)式簡單賦值運(yùn)算符符號(hào): =格式: 變量標(biāo)識(shí)符=表達(dá)式作用:將一個(gè)數(shù)據(jù)(常量或表達(dá)式)賦給一個(gè)變量,復(fù)合賦值運(yùn)算符種類:+= -= *= /= %= 《= 》= &= ^= |=,例 a=3; d=func(); c=d+2;,說明:結(jié)合方向:自右向左優(yōu)先級(jí)
29、: 2左側(cè)必須是變量,不能是常量或表達(dá)式,賦值表達(dá)式的值與變量值相等,且可嵌套,賦值轉(zhuǎn)換規(guī)則:使賦值號(hào)右邊表達(dá)式值自動(dòng)轉(zhuǎn)換成其左邊變量的類型,例: a=12; a+=a-=a*a,例: int a=2; a%=4-1; a+=a*=a-=a*=3;,//a=-264 等價(jià)于a=a+(a=a-(a*a)),//a=0 等價(jià)于a=a+(a=a*(a=a-(a=a*3))),逗號(hào)運(yùn)算符和
30、表達(dá)式形式:表達(dá)式1,表達(dá)式2,……表達(dá)式n結(jié)合性:從左向右優(yōu)先級(jí): 1逗號(hào)表達(dá)式的值:等于表達(dá)式n的值用途:常用于循環(huán)for語句中,例 a=3*5,a*4 a=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),b,c);,//a=15,表達(dá)式值60,//a=15,表達(dá)式值20
31、,//賦值表達(dá)式,表達(dá)式值18,x=18,//逗號(hào)表達(dá)式,表達(dá)式值18,x=3,//3,2,3,關(guān)系運(yùn)算符和表達(dá)式(見第四章)關(guān)系運(yùn)算符種類:= > !=結(jié)合方向:自左向右優(yōu)先級(jí)別:,例 c>a+b //c>(a+b) a>b!=c //(a>b)!=c a==bc //a=(b>c),關(guān)系表達(dá)式的值:是邏輯值“真”或“假”,用1和0表示,例
32、 int a=3,b=2,c=1,d,f; a>b (a>b)==c b+cb f=a>b>c,//表達(dá)式值1,//表達(dá)式值1,//表達(dá)式值0,//d=1,//f=0,關(guān)系運(yùn)算注意:,例 若a=0; b=0.5; x=0.3; 則 a<=x<=b的值為,0,例 5>2>7>8在C中是允許的, 值
33、為,0,例 int i=1, j=7,a; a=i+(j%4!=0); 則a=,2,例 ‘a(chǎn)’>0 結(jié)果為 ‘A’>100 結(jié)果為,1,0,關(guān)系運(yùn)算注意:,例 注意區(qū)分“=”與“==” int a=0,b=1; if(a=b) printf(“a equal
34、 to b”); else printf(“a not equal to b”);,例 應(yīng)避免對(duì)實(shí)數(shù)作相等或不等的判斷如 1.0/3.0*3.0==1.0 結(jié)果為可改寫為:fabs(1.0/3.0*3.0-1.0)<1e-6,0,邏輯運(yùn)算符和表達(dá)式(見第四章)邏輯運(yùn)算符種類: ! && ||邏輯運(yùn)算真值表,C語言中,運(yùn)算量:
35、 0表示“假”, 非0表示“真”, 運(yùn)算結(jié)果: 0表示“假”, 1表示“真”,,例 ab&&x>y a==b||x==y !a||a>b,優(yōu)先級(jí):,// (a<=x) && (x<=b),//(a>b)&&(x>
36、;y),//(a==b)||(x==y),//(!a)||(a>b),例 a=4;b=5; !a a&&b a||b !a||b 4&&0||2 5>3&
37、;&2||8<4-!0 ‘c’&&‘d’,值為1,值為0,值為1,值為1,值為1,值為1,//(5>3)&&2||(8<(4-(!0))) 值為1,! 右結(jié)合&& :左結(jié)合|| :左結(jié)合,結(jié)合方向:,短路特性:邏輯表達(dá)式求解時(shí),并非所有的邏輯運(yùn)算符都被執(zhí)行,只是在必須執(zhí)行下一個(gè)邏輯運(yùn)算符才能求出表達(dá)式的解時(shí),才執(zhí)行該運(yùn)算符,例 a&
38、amp;&b&&c //只在a為真時(shí),才判別b的值; 只在a、b都為真時(shí),才判別 c的值例 a||b||c //只在a為假時(shí),才判別b的值; 只在a、b都為假時(shí),才判別 c的值例 a=1;b=2;c=3;d=4;m=1;n=1;
39、 (m=a>b)&&(n=c>d) (m=a>b)||(n=c>d),//結(jié)果m=0,n=1,//結(jié)果m=0,n=0,條件運(yùn)算符與表達(dá)式一般形式: 表達(dá)式1 ? 表達(dá)式2 : 表達(dá)式3執(zhí)行過程功能:相當(dāng)于條件語句,但不能取代一般if語句,例 求 a+|b| printf(“a+|b|=%d\n”,b>0?a+b:a-b);,例 (a==b)?’Y’:’N
40、’ (x%2==1)?1:0 (x>=0)?x:-x (c>=‘a(chǎn)’ && c<=‘z’)?c-’a’+’A’:c,條件運(yùn)算符可嵌套 如 x>0?1:(x<0?-1:0)優(yōu)先級(jí): 3,結(jié)合方向:自右向左 如 a>b?a:c>d?c:d ? a>b?a:(c>d?c:d)表達(dá)式1、表達(dá)式2、表達(dá)式3類型可不同,表達(dá)式值
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二級(jí)c語言
- (二級(jí))c 語言輔導(dǎo)教材
- 二級(jí)c語言試題與答案
- 二級(jí)c語言上機(jī)編程題庫
- 第2章 腦卒中二級(jí)預(yù)防詳解
- c語言 大學(xué) 第2章習(xí)題答案
- 二級(jí)c語言上機(jī)模擬題
- 二級(jí)c語言程序設(shè)計(jì)題
- 計(jì)算機(jī)二級(jí)c語言題庫
- 二級(jí)c語言基礎(chǔ)知識(shí)要點(diǎn)
- 二級(jí)c語言上機(jī)題庫及答案
- 二級(jí)c語言題庫自己整理的
- 二級(jí)c語言題庫改錯(cuò)題
- 福建省二級(jí)c語言資料
- 二級(jí)c語言上機(jī)題庫預(yù)測信息
- 二級(jí)c語言習(xí)題匯總及答案
- 計(jì)算機(jī)二級(jí)c語言考題
- c語言第3章
- 計(jì)算機(jī)的二級(jí)c語言題庫
- 二級(jí)c語言上機(jī)編程題技巧總結(jié)
評(píng)論
0/150
提交評(píng)論