C語言入門2014_第1頁
C語言入門2014_第2頁
C語言入門2014_第3頁
C語言入門2014_第4頁
C語言入門2014_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Ch2 C語言入門語言入門2.1 常量、變量和數(shù)據(jù)類型常量、變量和數(shù)據(jù)類型2.2 變量聲明與初始化變量聲明與初始化2.3 運算符與表達式運算符與表達式2.4 簡單輸入輸出簡單輸入輸出 返回返回 一、關(guān)鍵字(附錄一、關(guān)鍵字(附錄B) 二、預(yù)定義標識符二、預(yù)定義標識符 三、用戶標識符三、用戶標識符2.1.1 標識符標識符2.1 常量、變量與數(shù)據(jù)類型常量、變量與數(shù)據(jù)類型命名規(guī)則: 以字母或下劃線開始,后跟字符、數(shù)字或下劃線。 變量名不能是關(guān)鍵字判斷以下變量名是否合法 x1, sum, $456, while,average,int, #abc, day, 1fs, month, M.D.Jhon,

2、lotus_1_2_3 一、常量和符號常量1. 常量:常量:在程序運行過程中,其值不能被改變的量。整型常量:如12、0、-3等實型常量:如4.5、-1.234等字符常量:如a、d等2. 符號常量:符號常量:符號常量借助于預(yù)處理命令define來實現(xiàn);define命令格式是: #define 標識符 字符串如:#define STRING “ABCD”#define PI 3.14159#define PRICE 30main() int num,total; num=10; total=numPRICEPI; printf(“total=%d”,total); total=942n習(xí)慣上,符號

3、常量用大寫字母表示;n定義符號常量時,不能以“;”結(jié)束;n一個#define占一行;n一個源程序文件中可含有若干個define命令,不同的define命令中指定的“標識符”不能相同;n符號常量的值在其作用域內(nèi)不能改變,也不能再被賦值。 二、變量在程序執(zhí)行過程中,其值可以改變的量注意:注意:l變量必須先定義,后使用;l遵循見名思意的原則;l習(xí)慣上用小寫字母;l變量中的大、小寫形式是有區(qū)別的。變量名先定義后使用的目的:F編譯時檢查是否正確使用;F分配合適的存儲單元;F檢查所進行的運算是否合法。如對a%b,要求a、b 均為int型數(shù)據(jù)。#define PI 3.14void main( ) int

4、r1=5, r2 =6; float c1,c2,s1,s2 ; c1=2*PI*r1; s1=PI*r1*r1; c2=2*PI*r2; s2=PI*r2*r2; printf(c1 is %fn, c1); printf(c2 is %fn, c2); printf(s1 is %fn, s1); printf(“PI is %fn, PI);2.1.3 數(shù)據(jù)類型數(shù)據(jù)類型 整型數(shù)據(jù) 一、整型常量的表示方法1. 十進制數(shù)如:123,-456,02. 八進制數(shù)如:0123,-011 (以0開頭的數(shù))3. 十六進制數(shù)如:0 x123,-0 x12,0 xABC (以0 x開頭的)下面四個選項中,

5、均是合法整型常量的選項是。A) 160 B)- 0 xcdf C)- 01 D)- 0 x48a - 0 xffff 0la 986,012 2e5 011 oxe 0668 oA 二、整型變量1、整型數(shù)據(jù)在內(nèi)存中的存放形式數(shù)據(jù)在內(nèi)存中以二進制形式存放的。每一個整型變量在內(nèi)存中占2個字節(jié)。例:定義整型變量i=10,j=-11 的存放形式。int j=-11;1 1 1 1 0 1 0 11 1 1 1 1 1 1 1int i=10;0 0 0 0 1 0 1 00 0 0 0 0 0 0 0 二、整型變量整型變量基本型基本型短整型短整型長整型長整型無符號型無符號型intshort intlo

6、ng intunsigned int、 unsigned short、unsigned long 2、整型變量的分類整型比較3、整型變量的定義例:int a,b; unsigned short c,d; long e,f;4、整型變量的定義和使用#include main() int a, b, c, d; unsigned u; a=12; b=-24; u=10; c=a+u; d=b+u; printf(“a+u=%d, b+u=%dn”,c,d);a+u=22,b+u=-14000000000000101 0101000000000011000-24原1111111111100111-

7、24反1111111111101000-24補1111111111110010+5、整型數(shù)據(jù)的溢出 main() int a,b; a=32767; b=a+1; printf(“%d,%d”a,b); 32767,-32768011111111111111132767100000000000000011111111111111111000000000000000-327686、整型常量的類型 一個整數(shù),如果其值在-3276832767范圍內(nèi),認為它是int型,可以賦值給int,long int,short int型變量一個整數(shù),如果其值在-2147483648+2147483647范圍內(nèi),認

8、為它是long int型,可以賦值long int型變量常量無unsigned型??梢詫⒁粋€非負值的整數(shù)賦值給unsigned型整變量,50000? 70000?在一個整常量后面加一個字母l或L,則認為是long int型常量。 實型數(shù)據(jù)實型數(shù)據(jù) 一、實型常量的表示方法1. 十進制浮點數(shù)如:如:0.123,.456,0.0, 123. ,123.02. 指數(shù)形式如:如:123e3,123E3是合法的浮點數(shù)是合法的浮點數(shù)E10, 100.e15.2, .e5均為不合法的浮點數(shù)。均為不合法的浮點數(shù)。規(guī)范化的指數(shù)形式:在字母e(或E)之前的小數(shù)部分中,小數(shù)點左邊應(yīng)有一位(且只能有一位)非零的數(shù)字。整

9、數(shù)部分和小數(shù)部分都可省,但不能同時省字母E可大寫,也可小寫;E之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù)尾數(shù)部分和整數(shù)部分均不可省。下面四個選項中,均是不合法浮點數(shù)的選項是。 A)l60. B)123 C)-.18 D)- e3 0.12 2e4.2 123e 4 .234 e3 .e5 0.0 1e3 二、實型變量1、實型數(shù)據(jù)在內(nèi)存中的存放形式一個實型數(shù)據(jù)一般在內(nèi)存中占4個字節(jié)(32位)。實型數(shù)據(jù)是按照指數(shù)形式存儲的。 數(shù)符 小數(shù)部分 指數(shù)符號 指數(shù) 2、實型變量的分類 實型變量的定義如下: float x, y; double z; long double t;類型 比特數(shù) 有效數(shù)字 數(shù)值范

10、圍float 單精度 32 67 10-371038double 雙精度 64 1516 10-30710308long double 長雙精度 128 1819 10-49311049323、實型數(shù)據(jù)的舍入誤差 例如:1.0/3*3的結(jié)果并不等于1 Main()float a,b; a=123456.789e5; b=a+20; printf(“%f”,b);在C語言中,所有的float型數(shù)據(jù)在運算中都自動轉(zhuǎn)換成double型數(shù)據(jù)三、三、 字符型數(shù)據(jù)字符型數(shù)據(jù) 字符常量字符常量a 、X為字符常量;為字符常量;一個字符常量占一個字符常量占1B,存放的是字符的編碼值。,存放的是字符的編碼值。轉(zhuǎn)義

11、字符轉(zhuǎn)義字符以以 開頭,后跟一個約定的字符或所要表示字符開頭,后跟一個約定的字符或所要表示字符的十六進制(或者八進制)的編碼;的十六進制(或者八進制)的編碼;0表示編碼值為表示編碼值為0的字符,即的字符,即NULL;101表示表示A;下表列出了常用的轉(zhuǎn)義字符:下表列出了常用的轉(zhuǎn)義字符:字符形式字符形式 含含 義義 ASCII代碼代碼n 換行,將當前位置移到下一行開頭換行,將當前位置移到下一行開頭 10t 水平制表水平制表(跳到下一個跳到下一個tab位置位置) 9b 退格,將當前位置移到前一列退格,將當前位置移到前一列 8r 回車,將當前位置移到本行開頭回車,將當前位置移到本行開頭 13f 換頁

12、,將當前位置移到下頁開頭換頁,將當前位置移到下頁開頭 12 反斜杠字符反斜杠字符 92 單引號單引號(撇號撇號)字符字符 39 雙引號字符雙引號字符 34ddd 1到到3位位8進制數(shù)所代表的字符進制數(shù)所代表的字符 xhh 1到到2位位16進制數(shù)所代表的字符進制數(shù)所代表的字符 二、字符變量例:char c1, c2; c1=a, c2=A; 下面四個選項中,均是合法轉(zhuǎn)義字符的選項是下面四個選項中,均是合法轉(zhuǎn)義字符的選項是。a) b) 0 x18 c) 018 d) 0 017 f 101 n x1f 三、字符數(shù)據(jù)的存放形式及使用方法如:a在內(nèi)存存放的是二進制數(shù)01100001; A在內(nèi)存存放的是

13、二進制數(shù)01000001。l例:例:main()main() char c1,c2; c1=97;c2=98; char c1,c2; c1=97;c2=98; printf(“%c %c ”,c1,c2); printf(“%c %c ”,c1,c2); printf (“%d %d ”,c1,c2); printf (“%d %d ”,c1,c2); c1=c1-32; c2=c2-(a- c1=c1-32; c2=c2-(a-A);A); printf(“%c printf(“%c %cn”,c1,c2); %cn”,c1,c2); 運行結(jié)果:a b 97 98 A B字符型數(shù)據(jù)和整型數(shù)

14、據(jù)可以通用,但由于字符數(shù)據(jù)只占一個字節(jié),它只能存放0255之間的整數(shù)。但注意,ASCII碼值在128255之間的字符,以“%d”輸出時會得到一個負數(shù)。 四、字符串常量“C language programming”、“an”、“#123”“Dont move!”“China”在存儲器中實際占用6個字節(jié):Ch in a 0同理,“a”與a是不同的(表示形式不同、存儲方式不同,后者可像整數(shù)那樣參加運算,前者不能);下面不正確的字符串常量是。a) abcb) “1212”c) “0”d)“ ”注意:在寫字符串常量時,沒有必要寫“China0 ”,而只需寫“China”; 雖然C字符串后末尾的NULL

15、字符屬字符串的內(nèi)容,但是NULL字符并不被顯示或輸出; C語言的字符串常量是按數(shù)組處理的。 書寫一個很長的字符串常量時,如果在一個書寫行內(nèi)寫不下,可跨行書寫。如:“A string is a sequence of characterssurrounded by double quotes.” 變量的聲明格式: 類型說明符 變量名1,變量名2,;如: int a, b, c; float x, y; char ch1;2.2 變量聲明與初始化 變量初始化格式: 類型說明符 變量1=值1,變量2=值2,;如: int a=3, b=4, c=5; float x=3.4, y=0.75;注意:注

16、意: (1) int a, b, c=5; 只對c初始化,值為5; (2) int a=b=c=5; 是非法的;是非法的; (3) int a=5, b=5, c=5; 是合法的。2.2 變量定義與初始化一、基本算術(shù)運算符 +、*、/、%2.3 運算符與表達式運算符與表達式2.3.1 算術(shù)運算符與算術(shù)表達式算術(shù)運算符與算術(shù)表達式說明:(1) *和/;(2) /(整除和一般除)(3) %(模運算符兩邊操作數(shù)要求是整數(shù))2.3.1 算術(shù)運算符與算術(shù)表達式算術(shù)運算符與算術(shù)表達式二、自增、自減運算符 、 基本運算有:i、i、i、i運算符運算符含義含義+i在使用在使用i之前,先使之前,先使i的值增加的值

17、增加1i+在使用在使用i之后,再使之后,再使i的值增加的值增加1-i在使用在使用i之前,先使之前,先使i的值減的值減1i-在使用在使用i之后,再使之后,再使i的值減的值減1n如:如:i=時,時,j=+ +i 則則j; j=i+ + 則則j; j=-i 則則j=2; j=i- 則則j=3;2.3.1 算術(shù)運算符與算術(shù)表達式算術(shù)運算符與算術(shù)表達式 說明:說明: + +和-只能用于變量,不能用于表達式或常量; 如:2+或 (i+j)-是非法的; + +、 -運算符的結(jié)合方向是“右結(jié)合”;如: -i+ +不等于(-i) + + ; + +、 -運算常用于循環(huán)控制、數(shù)組的下標處理等場合; i+j應(yīng)理解為

18、(i+)+j;i=3;j=-i+; 2.3.1 算術(shù)運算符與算術(shù)表達式算術(shù)運算符與算術(shù)表達式三、算術(shù)表達式三、算術(shù)表達式用算術(shù)運算符和括號將運算對象(操作數(shù))連接起來用算術(shù)運算符和括號將運算對象(操作數(shù))連接起來的、符合的、符合C語法規(guī)則的式子稱為算術(shù)表達式。如:語法規(guī)則的式子稱為算術(shù)表達式。如: (a- -b*c /(d+e)+sin(3.14/2+f ) - - 3.14*g*g(1)* 不能省,不能省,*、 不能寫成另外的符號;不能寫成另外的符號;(2)數(shù)學(xué)函數(shù)自變量的括號不能??;如:數(shù)學(xué)函數(shù)自變量的括號不能?。蝗纾?sin(x); log10(x), log(x); pow(x,y)(

19、3)角度、特殊的符號要轉(zhuǎn)換。角度、特殊的符號要轉(zhuǎn)換。2.3.1 算術(shù)運算符與算術(shù)表達式算術(shù)運算符與算術(shù)表達式1.2.3.4.5. 2)2/2( xe)4(21axaax 52 exbcae3xx103log C語言規(guī)定了運算符的優(yōu)先級和結(jié)合性。運算時按運算符的優(yōu)先級從高到低運算優(yōu)先級從高到低運算;若優(yōu)先級相同,按規(guī)定的若優(yōu)先級相同,按規(guī)定的“結(jié)合方向結(jié)合方向”處處理理左結(jié)合性左結(jié)合性: 如雙目算術(shù)運算符如雙目算術(shù)運算符右結(jié)合性右結(jié)合性: 如單目運算符如單目運算符、賦值運算符、條件賦值運算符、條件運算符運算符例:例:a-b+c、- -i+運算符及優(yōu)先級和結(jié)合性詳見附錄。運算符及優(yōu)先級和結(jié)合性詳見

20、附錄。2.3.2 運算符的優(yōu)先級和結(jié)合性運算符的優(yōu)先級和結(jié)合性 1. 基本賦值運算符:=基本賦值表達式: 變量=表達式例如: a=2+3 x=i+ n=n+1 a=b=x+y2.3.3 賦值運算符和賦值表達式賦值運算符和賦值表達式 2. 復(fù)合賦值運算符在“=”之前加上其他運算符,可構(gòu)成復(fù)合運算符例如: x+=y 等價于 x=x+y a%=b+c/d 等價于 a=a%(b+c/d) C中10種復(fù)合賦值運算符: +=、-=、*=、/=、 %=、 =、&=、=、|=2.3.3 賦值運算符和賦值表達式賦值運算符和賦值表達式 3. 說明(1) 變量=exp 是表達式,有值,能直接參與運算;如:

21、main() int a,b,c,d; a=(a=100)+(b=30)-b*5; 2.3.3 賦值運算符和賦值表達式賦值運算符和賦值表達式(2) 嵌套賦值表達式:e1=e2=en,如: a=b=c=d=100 等價于 a=(b=(c=(d=100)e1,e2,en不必具有相同的數(shù)據(jù)類型例2-2:當a=12時,a+=a-=a*a 求解結(jié)果?先“a-=a*a”的運算,a=a-a*a=-132;再進行“a+=-132”的運算,a=a+(-132)=-264。2.3.3 賦值運算符和賦值表達式賦值運算符和賦值表達式 一、自動類型轉(zhuǎn)換例2-3 計算表達式 3+a+1.5-5.1*5的值 2.3.4 數(shù)

22、據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換 混合運算需自動轉(zhuǎn)換成同一類型再運算; 轉(zhuǎn)換的規(guī)則如下:doublefloatlongunsignedintchar, short高高低低2.3.4 數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換賦值運算中類型轉(zhuǎn)換規(guī)則:把賦值運算符右邊表達式的數(shù)據(jù)類型轉(zhuǎn)換成左邊對象的類型。(1)實型賦給整型變量時,舍去實數(shù)的小 數(shù)部分。(2)整型賦給實型變量時,數(shù)值不變,以浮點形式存儲。(3)長的賦給短的。2.3.4 數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換例2-4:閱讀程序,寫出結(jié)果。 #include #include main( ) char c; int a=500; c=a+1; printf(c=%dn,c);2

23、.3.4 數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換二、強制類型轉(zhuǎn)換格式:(類型關(guān)鍵字或類型名)表達式格式:(類型關(guān)鍵字或類型名)表達式如:(int)(x+y)%(int)p (double)a (float)(5%3)2.3.4 數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換例例main() float x; int i; x=3.6; i=(int) x; printf(“x=%f, i=%d”,x, i); 運行的結(jié)果是:x=3.600000, i=32.3.4 數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換練習(xí)題1. int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 則以下符合C語言語法

24、的表達式是: A.a+=a-=(b=4)*(a=3) B.a=a*3=2 C.x%(-3) D.y=float (i)2.若以下變量均是整型,且num=sum=7,則計算表達式sUM=num+.sUM+.+num后sum的值為_ 3.若有定義語句int a=7;float x=2.5,y=4.7; 則表達式x+a%3*(int)(x+y)%2/4的值為多少 4.設(shè)變量a是整型,f是實型,i是double型,則表達式10+a+i*f的值的數(shù)據(jù)類型 6.以下能正確的定義整型變量a,b和c并為其賦初值5的語句是 A)int a=5,b=5,c=5; B)int a,b,c=5; C)a=5,b=5,

25、c=5; D)a=b=c=5;2.3.5 逗號運算符和逗號表達式逗號運算符和逗號表達式 語法:語法:表達式1,表達式2, 語義:語義:依次求各個表達式的值,最后一個表達式的值作為整個逗號表達式的值; 如:如:3+5, 6+8的值為14; a=3*5, a*4的值為60; 逗號表達式常用在for語句中; 逗號表達式的優(yōu)先級別最低; 在C中,逗號有兩種用途(分隔符,運算符)。例.設(shè)以下變量均為int類型,則值不等于7的表達式是_A.(x=y=6,x+y,x+1) B.(x=y=6,x+y,y+1)c.(x=6,x+1,y=6,x+y) D.(y=6,y+1,x=y,x+1) 若a是int型變量,則下面表達式的值為_。 (a=4*5,a*2),a+6 若x和a均是int型變量,則計算表達式(1)后的x值為_,計算表達式(2)后的x 值為_。 (1) x=(a=4,6*2) (2) x=a=4,6*2 2.4 簡單輸入輸出簡單輸入輸出2.4.1 數(shù)據(jù)的輸入輸出及在數(shù)據(jù)的輸入輸出及在C語言中的實現(xiàn)語言中的實現(xiàn)C中不提供輸入輸出語句;調(diào)用庫函數(shù)實現(xiàn)輸入輸出;輸入輸出庫函數(shù)所在頭文件為st

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論