C語言全國計算機二級等級考試教程第一二章(章節(jié)帶習(xí)題)_第1頁
C語言全國計算機二級等級考試教程第一二章(章節(jié)帶習(xí)題)_第2頁
C語言全國計算機二級等級考試教程第一二章(章節(jié)帶習(xí)題)_第3頁
C語言全國計算機二級等級考試教程第一二章(章節(jié)帶習(xí)題)_第4頁
C語言全國計算機二級等級考試教程第一二章(章節(jié)帶習(xí)題)_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 全國計算機等級考試全國計算機等級考試 (NCRE)二級教程二級教程CC語言程序設(shè)計語言程序設(shè)計目錄第1章 程序設(shè)計基本概念第2章 C程序設(shè)計的初步知識第3章 順序結(jié)構(gòu)第4章 選擇結(jié)構(gòu)第5章 循環(huán)結(jié)構(gòu)第6章 字符型數(shù)據(jù)第7章 函數(shù)第8章 地址和指針第9章 數(shù)組第10章 字符串第11章 對函數(shù)的進一步討論第12章 C語言中用戶標(biāo)識符 的作用域和存儲類第13章 編譯預(yù)處理和動態(tài)存 儲分配第14章 結(jié)構(gòu)體、共用體和用 戶定義類型第15章 位運算第16章 文件第17章 上機指導(dǎo)1.1 程序和程序設(shè)計程序和程序設(shè)計C語言語言源程序源程序C語言語言編譯程序編譯程序二進制機器指令二進制機器指令(目標(biāo)程序目標(biāo)

2、程序).C.OBJ高級語言高級語言機器語言機器語言C語言語言連接程序連接程序可執(zhí)行文件可執(zhí)行文件.EXE考點考點算法的基本特征算法的基本特征有窮性、確定性、可行性有窮性、確定性、可行性有零個或多個輸入有零個或多個輸入有一個或多個輸出有一個或多個輸出結(jié)構(gòu)化程序設(shè)計的結(jié)構(gòu)化程序設(shè)計的三種三種基本結(jié)構(gòu)基本結(jié)構(gòu)順序結(jié)構(gòu)順序結(jié)構(gòu)選擇結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)考點總結(jié)考點總結(jié):由以上由以上3種基本結(jié)構(gòu)組成的算法種基本結(jié)構(gòu)組成的算法 可以完成任何復(fù)雜的問題可以完成任何復(fù)雜的問題.考點總結(jié)考點總結(jié):用用C程序?qū)崿F(xiàn)的算法可以程序?qū)崿F(xiàn)的算法可以 沒有輸入沒有輸入,但必須要有輸出但必須要有輸出.習(xí)題1.1 在VC

3、6.0環(huán)境中用RUN命令運行一個C程序時,這時所運行的程序的后綴是_。1.2 C語言源程序文件名的后綴是_;經(jīng)過編譯后,生成文件的后綴是_;經(jīng)過連接后,生成文件的后綴是_。1.3 結(jié)構(gòu)化程序由_、 _、 _三種基本結(jié)構(gòu)組成。.exe.c.obj.exe順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)第2章 C程序設(shè)計的初步知識v2.1 簡單C語言程序的構(gòu)成和格式v2.2 標(biāo)識符、常量和變量v2.3 整型數(shù)據(jù)v2.4 實型數(shù)據(jù)v2.5 算術(shù)表達式v2.6 賦值表達式v2.7 自加、自減運算符和逗號運算符2.1 簡單簡單C語言程序的構(gòu)成和格式語言程序的構(gòu)成和格式本節(jié)將通過一個簡單的程序例子,介紹本節(jié)將通過一個簡單的程序例

4、子,介紹C程序的一些基本構(gòu)成和格式,使程序的一些基本構(gòu)成和格式,使大家對大家對C語言程序有一個初步的了解。語言程序有一個初步的了解。 例例2.1 已知矩形的兩條邊長已知矩形的兩條邊長(用用a表示寬表示寬,b表示長表示長),求矩形的面積,求矩形的面積(area)。 #include main() double a,b,area; a=1.2; b=3.6; area=a*b; printf(“a=%f,b=%f,area=%fn”,a,b,area); a=1.200000,b=3.600000,area=4.320000注意:注意:1. C程序由函數(shù)組成,一個程序必須有一個且只能有一個程序由函

5、數(shù)組成,一個程序必須有一個且只能有一個主函數(shù)主函數(shù)(main),),C程程序總是從主函數(shù)開始執(zhí)行,并且也是從它結(jié)束的。序總是從主函數(shù)開始執(zhí)行,并且也是從它結(jié)束的。2. 函數(shù)體必須放在一對花括號函數(shù)體必須放在一對花括號“”內(nèi),在函數(shù)體中,通常有內(nèi),在函數(shù)體中,通常有定義(說明)語句定義(說明)語句和和執(zhí)行語句執(zhí)行語句,定義語句應(yīng)出現(xiàn)在執(zhí)行語句之前,每條語句后面的分號不可少。多條,定義語句應(yīng)出現(xiàn)在執(zhí)行語句之前,每條語句后面的分號不可少。多條語句可以寫在同一行上,并且一條語句也可以寫在多行上。語句可以寫在同一行上,并且一條語句也可以寫在多行上。3. C程序中的注釋必須放在程序中的注釋必須放在/*和和

6、*/之間,之間,/和和*之間不允許有空格。之間不允許有空格。/*和和*/之間不允許再插入之間不允許再插入/*或或*/。注釋可以出現(xiàn)在程序中任意位置。注釋可以出現(xiàn)在程序中任意位置。 /*包含頭文件包含頭文件*/*主函數(shù)主函數(shù),程序的入口程序的入口*/*聲明部分聲明部分,定義了定義了3實型個變量實型個變量*/*給變量給變量a賦值賦值*/*給變量給變量b賦值賦值*/*將將a*b的結(jié)果賦值給變量的結(jié)果賦值給變量area*/ /*分別輸出矩形的兩條邊長和面積分別輸出矩形的兩條邊長和面積*/abarea函數(shù)體函數(shù)體2.2 標(biāo)識符、常量和變量標(biāo)識符、常量和變量2.2.1 標(biāo)識符標(biāo)識符在在C語言中,有許多東西

7、都需要命名,如變量名、函數(shù)名、數(shù)組名等,在命語言中,有許多東西都需要命名,如變量名、函數(shù)名、數(shù)組名等,在命名的時候都必須遵守一定的規(guī)則,按此規(guī)則命名的符號稱為名的時候都必須遵守一定的規(guī)則,按此規(guī)則命名的符號稱為標(biāo)識符標(biāo)識符。在在C語言中,合法的標(biāo)識符由語言中,合法的標(biāo)識符由字母字母、數(shù)字數(shù)字和和下劃線下劃線組成組成 。遵守以下規(guī)則命名:遵守以下規(guī)則命名:v必須以字母(大小寫皆可)或下劃線開頭。必須以字母(大小寫皆可)或下劃線開頭。v隨后可跟若干個(包括隨后可跟若干個(包括0個)字母、數(shù)字、下劃線。個)字母、數(shù)字、下劃線。v標(biāo)識符的長度各個系統(tǒng)不同,最好不要超過標(biāo)識符的長度各個系統(tǒng)不同,最好不要

8、超過8個字符。個字符。如:如:area PI _ini a_array s1234 P101p (合法合法) 456P cade-y w.w a&b (不合法不合法)注意注意C語言區(qū)分大小寫,如語言區(qū)分大小寫,如page、Page是兩個不同的標(biāo)識符。是兩個不同的標(biāo)識符。2.2 標(biāo)識符、常量和變量標(biāo)識符、常量和變量2.2.1 標(biāo)識符標(biāo)識符C語言的標(biāo)識符可以分為以下三類語言的標(biāo)識符可以分為以下三類 :a) 關(guān)鍵字關(guān)鍵字 b) 預(yù)定義標(biāo)識符預(yù)定義標(biāo)識符 c) 用戶標(biāo)識符用戶標(biāo)識符關(guān)鍵字:關(guān)鍵字: C語言規(guī)定了一批標(biāo)識符,它們在程序中都代表著固定的含義,語言規(guī)定了一批標(biāo)識符,它們在程序中都代表

9、著固定的含義,不能另作它用。例如,用來說明變量類型的標(biāo)識符不能另作它用。例如,用來說明變量類型的標(biāo)識符int、float、double以及以及if語句中的語句中的if、else等都已有專門的用途,它們不能再用等都已有專門的用途,它們不能再用作變量名或函數(shù)名。注意,所有的關(guān)鍵字都必須小寫。作變量名或函數(shù)名。注意,所有的關(guān)鍵字都必須小寫。C語言中的關(guān)語言中的關(guān)鍵字請參考附錄鍵字請參考附錄4。預(yù)定義標(biāo)識符:預(yù)定義標(biāo)識符:這些標(biāo)識符在這些標(biāo)識符在C語言中也都有特定的含義,如語言中也都有特定的含義,如C語言提供的語言提供的庫函數(shù)的名字庫函數(shù)的名字(如如include)和預(yù)編譯處理命令和預(yù)編譯處理命令(如

10、如define)等。等。 用戶標(biāo)識符:用戶標(biāo)識符:由用戶根據(jù)需要定義的標(biāo)識符稱為用戶標(biāo)識符。一般用來給由用戶根據(jù)需要定義的標(biāo)識符稱為用戶標(biāo)識符。一般用來給變量、函數(shù)、數(shù)組或文件等命名。變量、函數(shù)、數(shù)組或文件等命名。 如例如例2.1中的中的a,b,area三個變量三個變量2.2 標(biāo)識符、常量和變量標(biāo)識符、常量和變量2.2.2 常量常量在程序運行過程中,其值不能被改變的量,稱為在程序運行過程中,其值不能被改變的量,稱為常量常量。 常量常量整型常量:整型常量:實型常量(符點型)實型常量(符點型)字符常量:字符常量:字符串常量:字符串常量:單精度型:單精度型:雙精度型:雙精度型:由上述可見,常量的類型

11、從字面形式上就可以區(qū)分開來,我們稱此常量為由上述可見,常量的類型從字面形式上就可以區(qū)分開來,我們稱此常量為字字面常量。面常量。12、-1、0A、d”NCRE”、“Beijing”3.14159、-2.71828、0.012.5678、-12.56782.2 標(biāo)識符、常量和變量標(biāo)識符、常量和變量2.2.3 符號常量符號常量在在C語言中,可以用一個語言中,可以用一個符號名符號名來代表一個常量,稱為來代表一個常量,稱為符號常符號常量。量。但是這個符號名必須在程序中用(但是這個符號名必須在程序中用(#define)進行特別的)進行特別的“指定指定。例例2.2 計算圓面積和周長,此程序中將如何教大家使用

12、符號常量。計算圓面積和周長,此程序中將如何教大家使用符號常量。#include “stdio.h”#define PI 3.14159main()double r,s,l; r=5.0; s=PI*r*r; l=2*PI*r; printf(“s=%f,l=%fn”,s,l); S=78.539750,l=31.415900/*包含頭文件包含頭文件*/*定義符號常量定義符號常量,符號常量名為符號常量名為PI,用用PI來代表來代表3.14159*/*主函數(shù)主函數(shù),程序的入口程序的入口*/*聲明部分聲明部分,定義了定義了3實型個變量實型個變量*/*給變量給變量r賦值賦值*/*計算圓的面積計算圓的面

13、積*/*計算圓的周長計算圓的周長*/*分別圓的面積和周長分別圓的面積和周長*/注意注意習(xí)慣上,符號常量名用大寫,變量名用小寫,以示區(qū)別習(xí)慣上,符號常量名用大寫,變量名用小寫,以示區(qū)別函數(shù)體函數(shù)體rsl2.2 標(biāo)識符、常量和變量標(biāo)識符、常量和變量2.2.4 變量變量1.所謂所謂變量變量是指在程序運行過程中可以改變的量。是指在程序運行過程中可以改變的量。如下程序:如下程序:#include main()double a,b; a=1.5; b=2.5; printf(“%f%fn”,a,b); a=a+1; b=b+1; printf(“%f%fn”,a,b);ab1.5000002.500000

14、2.在程序中,聲明變量就是在計算機內(nèi)存中申請了某個在程序中,聲明變量就是在計算機內(nèi)存中申請了某個內(nèi)存單元內(nèi)存單元。對變量。對變量進行賦值,實質(zhì)上就是把數(shù)據(jù)存入該變量所代表的存儲單元中。進行賦值,實質(zhì)上就是把數(shù)據(jù)存入該變量所代表的存儲單元中。3.C語言規(guī)定,程序中所有變量都必須語言規(guī)定,程序中所有變量都必須先定義后使用先定義后使用。如程序例。如程序例2.1、例、例2.2。內(nèi)存空間內(nèi)存空間ab2.5000003.5000002.3 整型數(shù)據(jù)整型數(shù)據(jù)2.3.1 整型常量整型常量在在C語言中,按整型常量的語言中,按整型常量的表示形式表示形式可以有三種形式??梢杂腥N形式。整型常量整型常量由由09十個數(shù)

15、字組成,如十個數(shù)字組成,如32767、-32768、0等。等。由由07八個數(shù)字組成,如八個數(shù)字組成,如010、011、016等。等。注意,最高位必須用注意,最高位必須用0作引導(dǎo)符,與十進制和十六進制區(qū)分。作引導(dǎo)符,與十進制和十六進制區(qū)分。如:如:018,為不合法的八進制常量。,為不合法的八進制常量。由由09十個數(shù)字和十個數(shù)字和af(AF)六個字母組成,如六個字母組成,如0 x10、0Xde、0 xf注意,最高位必須用注意,最高位必須用0 x( 0X)作引導(dǎo)符,與十進制和八進制區(qū)分。作引導(dǎo)符,與十進制和八進制區(qū)分。如:如:oxff、0X12H,都為不合法的十六進制常量。,都為不合法的十六進制常量

16、。在在C語言中,按整型常量的語言中,按整型常量的表示范圍表示范圍可以分為四種。可以分為四種。在在C語言中,八進制數(shù)和十六進制數(shù)只能是正整數(shù)。語言中,八進制數(shù)和十六進制數(shù)只能是正整數(shù)。注意注意如:如:-077、-0X11、01.0等,(不合法)等,(不合法)短整型短整型基本整型基本整型長整型長整型無符號整型無符號整型三種進制之間的轉(zhuǎn)換三種進制之間的轉(zhuǎn)換十六進制常量:十六進制常量:八進制常量:八進制常量:十進制常量:十進制常量:2.3 整型數(shù)據(jù)整型數(shù)據(jù)2.2.2 整型變量整型變量整型變量整型變量是用來存放整型常量的工具??梢园颜妥兞砍橄鬄橐粋€盒子。是用來存放整型常量的工具??梢园颜妥兞砍橄鬄橐?/p>

17、個盒子。由于整型常量有短整型、基本整型、長整型和無符號整型四種類型,既然整型變量由于整型常量有短整型、基本整型、長整型和無符號整型四種類型,既然整型變量是用來存放整型數(shù)據(jù)的,那整型變量也要分為四種對應(yīng)類型的整型變量,以方便存是用來存放整型數(shù)據(jù)的,那整型變量也要分為四種對應(yīng)類型的整型變量,以方便存放不同類型的整型常量。在此我們只介紹基本整型變量。也叫放不同類型的整型常量。在此我們只介紹基本整型變量。也叫整型變量整型變量。在在C語言中,整型變量我們需要用一個符號來表示它,即整型變量名。語言中,整型變量我們需要用一個符號來表示它,即整型變量名。例如:例如:int k; /*定義定義k為整型變量為整型

18、變量,k為變量名為變量名*/關(guān)鍵字關(guān)鍵字int是用來說明變量是用來說明變量k的類型為整型。的類型為整型。又如:又如:int i,j,k; /*定義定義i、j、k為整型變量為整型變量*/int i;int j;int k;相同相同注意注意在同一行上使用關(guān)鍵字定義多個變量時,變量之間用逗號隔開。在同一行上使用關(guān)鍵字定義多個變量時,變量之間用逗號隔開。所有定義語句后必須以一個所有定義語句后必須以一個“;”號結(jié)束,表示它是一條語句。號結(jié)束,表示它是一條語句。2.3 整型數(shù)據(jù)整型數(shù)據(jù)2.2.2 整型變量整型變量在前面已經(jīng)講過,聲明變量就是在計算機內(nèi)存中申請某個在前面已經(jīng)講過,聲明變量就是在計算機內(nèi)存中申

19、請某個內(nèi)存單元內(nèi)存單元。在在VC6.0環(huán)境中,用關(guān)鍵字環(huán)境中,用關(guān)鍵字int聲明變量時,計算機將會為每個變量開辟聲明變量時,計算機將會為每個變量開辟4字節(jié)(字節(jié)(32個二進制位)的內(nèi)存單元。個二進制位)的內(nèi)存單元。例如例如,當(dāng)前的某段內(nèi)存空間如右圖所示。有如下程序段。,當(dāng)前的某段內(nèi)存空間如右圖所示。有如下程序段。內(nèi)存空內(nèi)存空間間地址地址2000200120022003200420052006200720112010200920082012int i;int j;i=100;j=200;C語言規(guī)定,可以在定義變量的同時給變量賦初值,該過程語言規(guī)定,可以在定義變量的同時給變量賦初值,該過程稱為變量

20、的稱為變量的初始化初始化。例如:。例如:#include main()int i=1,j=0,k=2; : :ij/*在聲明變量的同時,為三個變量賦值在聲明變量的同時,為三個變量賦值*/2.3 整型數(shù)據(jù)整型數(shù)據(jù)2.3.3 整型數(shù)據(jù)的分類整型數(shù)據(jù)的分類不同的計算機系統(tǒng)對整型數(shù)所占用的字節(jié)數(shù)和數(shù)值范圍有不同規(guī)定,下表列出了不同的計算機系統(tǒng)對整型數(shù)所占用的字節(jié)數(shù)和數(shù)值范圍有不同規(guī)定,下表列出了在在VC6.0VC6.0中定義的整型數(shù)所占用的字節(jié)數(shù)和數(shù)值范圍。中定義的整型數(shù)所占用的字節(jié)數(shù)和數(shù)值范圍。 類型名稱類型名稱通常使用簡寫通常使用簡寫字節(jié)數(shù)字節(jié)數(shù)數(shù)值范圍數(shù)值范圍signed intint4-214

21、7483648 2147483647signed short intshort2-3276832767signed long intlong4-2147483648 2147483647unsigned intunsigned404294967295unsigned short intunsigned short2065535unsigned long intunsigned long404294967295由于整型數(shù)據(jù)在由于整型數(shù)據(jù)在C語言中分為上述幾類,比如語言中分為上述幾類,比如123。它是屬于哪一類型的?。它是屬于哪一類型的?int123L、345l、0L、123456L123U、34

22、5u、0U、123456U123LU、345lu、0LU、123456LUlongunsignedunsigned long2.3 整型數(shù)據(jù)整型數(shù)據(jù)2.3.4 整數(shù)在內(nèi)存中的存儲形式整數(shù)在內(nèi)存中的存儲形式計算機中,內(nèi)存儲器的最小的存儲單位稱為計算機中,內(nèi)存儲器的最小的存儲單位稱為“位位(bit)”,每一位中只能存放,每一位中只能存放0或或1,因,因此稱為此稱為二進制位二進制位。8個二進制位組成一個個二進制位組成一個“字節(jié)字節(jié)”,并給每一個字節(jié)分配一個地址。,并給每一個字節(jié)分配一個地址。數(shù)據(jù)在內(nèi)存中是以數(shù)據(jù)在內(nèi)存中是以二進制形式二進制形式進行存放的。進行存放的。一、正整數(shù)一、正整數(shù)正整數(shù)在內(nèi)存中

23、是以正整數(shù)在內(nèi)存中是以“原碼原碼”形式存放的。如果定義了一個形式存放的。如果定義了一個short類型變量類型變量i:short i;i=5;/*聲明聲明i為短整型變量為短整型變量*/*給給i賦以整數(shù)賦以整數(shù)5*/十進制數(shù)十進制數(shù)5的二進制形式為的二進制形式為101,在,在VC6.0中,由于短整型變量在內(nèi)存中占中,由于短整型變量在內(nèi)存中占2個字節(jié),個字節(jié),i0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1i符號位符號位:0代表正整數(shù),代表正整數(shù),1代表負整數(shù)代表負整數(shù)二、負整數(shù)二、負整數(shù)負整數(shù)在內(nèi)存中是以負整數(shù)在內(nèi)存中是以“補碼補碼”形式存放的。形式存放的。2.4 實型數(shù)據(jù)實型數(shù)據(jù)

24、2.4.1 實型常量實型常量在在C語言中,實型常量的表示形式有兩種。語言中,實型常量的表示形式有兩種。實型常量實型常量由數(shù)字和小數(shù)點組成,如由數(shù)字和小數(shù)點組成,如0.123、.123、123.、0.0指數(shù)形式:指數(shù)形式: 如:如:0.23026x101 2.3026x100 23.026x10-10.23026E12.3026e023.026e-1注意注意E(e)前后必須有數(shù)字,并且后面的必須為整型數(shù)。前后必須有數(shù)字,并且后面的必須為整型數(shù)。.3e3 3.0e3 3.e3 (合法合法)3e e3 55e0.3 (不合法不合法)小數(shù)形式:小數(shù)形式:2.4 實型數(shù)據(jù)實型數(shù)據(jù)2.4.2 實型變量實型

25、變量分類分類類型名稱類型名稱字節(jié)數(shù)字節(jié)數(shù)數(shù)值范圍數(shù)值范圍有效數(shù)字位有效數(shù)字位單精度型單精度型float4-103810387位位雙精度行雙精度行double8-10308103081516位位單精度型變量定義的形式如下:單精度型變量定義的形式如下:float a,b,c;雙精度型變量定義的形式如下:雙精度型變量定義的形式如下:double x,y,z;實數(shù)在內(nèi)存中是以實數(shù)在內(nèi)存中是以“指數(shù)指數(shù)”形式存放的。形式存放的。也可以在定義實型變量的同時,對變量進行初始化。例如:也可以在定義實型變量的同時,對變量進行初始化。例如:#include main()float a=1.5,b=.5,c=0.0

26、; double x=1.5,y=.5,z=0.0; :/*在聲明變量的同時,為三個變量賦值在聲明變量的同時,為三個變量賦值*/*在聲明變量的同時,為三個變量賦值在聲明變量的同時,為三個變量賦值*/2.5 算術(shù)表達式算術(shù)表達式2.5.1 基本的算術(shù)運算符基本的算術(shù)運算符+ (加法運算符,或正值運算符加法運算符,或正值運算符) 如:如:1+2、+3.9- (減法運算符,或負值運算符減法運算符,或負值運算符) 如:如:3-4、-54* (乘法運算符乘法運算符) 如:如:1.2*3.2、3*4、2*x/ (除法運算符除法運算符) 如:如:5/3、(a+b)/(x+y)單目運算符單目運算符雙目運算符雙

27、目運算符兩個整數(shù)相除,其值仍然為整數(shù)。如:兩個整數(shù)相除,其值仍然為整數(shù)。如:5/3值為值為1、1/2值為值為0。兩個實數(shù)相除,其值仍然為實數(shù)。如:兩個實數(shù)相除,其值仍然為實數(shù)。如:1.0/2.0值為值為0.5。除數(shù)、被除數(shù)只要有一個為實數(shù)時,系統(tǒng)將自動進行類型轉(zhuǎn)換,轉(zhuǎn)換為除數(shù)、被除數(shù)只要有一個為實數(shù)時,系統(tǒng)將自動進行類型轉(zhuǎn)換,轉(zhuǎn)換為double型。型。 如:如:1/2.0=0.5、 1.0/2.0=0.5 最后結(jié)果的類型為最后結(jié)果的類型為double型。型。% (求余運算符求余運算符) 注意:注意:%運算符的兩側(cè)必須為整型數(shù)據(jù)。運算符的兩側(cè)必須為整型數(shù)據(jù)。 如:如:7%4的結(jié)果為的結(jié)果為3。-

28、7%4、 7%-4、 -7%-4的結(jié)果為多少?的結(jié)果為多少?-3 3 -3結(jié)果的符號和被除數(shù)相結(jié)果的符號和被除數(shù)相同同2.5 算術(shù)表達式算術(shù)表達式2.5.2 運算符的優(yōu)先級、結(jié)合性和算術(shù)表達式運算符的優(yōu)先級、結(jié)合性和算術(shù)表達式一、優(yōu)先級一、優(yōu)先級( ) + - * / % + -單目單目雙目雙目同級同級同級同級同級同級高高低低二、結(jié)合性二、結(jié)合性單目運算符的結(jié)合性是從右往左的,即表達式從右往左進行計算,稱為單目運算符的結(jié)合性是從右往左的,即表達式從右往左進行計算,稱為右結(jié)合右結(jié)合。其余運算符的結(jié)合性是從左往右的。即表達式從左往右進行計算,稱為其余運算符的結(jié)合性是從左往右的。即表達式從左往右進行

29、計算,稱為左結(jié)合左結(jié)合。例如例如:(5+1)/2 5+1/2 5*-25*(-2)三、算術(shù)表達式三、算術(shù)表達式用算術(shù)運算符和一對圓括號將運算量用算術(shù)運算符和一對圓括號將運算量(或稱操作數(shù)或稱操作數(shù))連接起來的、符合連接起來的、符合C語法的語法的表達式稱為表達式稱為算術(shù)表達式算術(shù)表達式。算術(shù)表達式中,運算對象可以是常量、變量和函數(shù)等。例如:算術(shù)表達式中,運算對象可以是常量、變量和函數(shù)等。例如:2+sqrt(c)*b。 5 -103 2.5 算術(shù)表達式算術(shù)表達式2.5.3 強制類型轉(zhuǎn)換表達式強制類型轉(zhuǎn)換表達式表達式的形式如下:表達式的形式如下:(類型名類型名)(表達式表達式)強制類型轉(zhuǎn)換運算符強制

30、類型轉(zhuǎn)換運算符作用:可以利用強制類型轉(zhuǎn)換運算符將一個表達式轉(zhuǎn)換成想要的類型。作用:可以利用強制類型轉(zhuǎn)換運算符將一個表達式轉(zhuǎn)換成想要的類型。例如例如:(int)3.234 (double)(10%3)3注意注意int3.234 (錯誤)(錯誤)(double)10%3 (錯誤)(錯誤)例:閱讀如下程序,關(guān)于強制類型轉(zhuǎn)換。例:閱讀如下程序,關(guān)于強制類型轉(zhuǎn)換。#include main()double a; int b; a=3.6; b=(int)a; printf(“a=%f,b=%dn”,a,b);a=3.600000,b=31.0ab2.6 賦值表達式賦值表達式2.6.1 賦值運算符和賦值表

31、達式賦值運算符和賦值表達式賦值運算符:賦值運算符: =賦值表達式:由賦值運算符組成的表達式稱為賦值表達式,它的形式如下:賦值表達式:由賦值運算符組成的表達式稱為賦值表達式,它的形式如下: 變量名變量名=表達式表達式 賦值號的左邊必須是一個代表某一存儲單元的變量名。賦值號的左邊必須是一個代表某一存儲單元的變量名。賦值運算的功能是先求出右邊表達式的值,然后把此值賦給左邊的變量。賦值運算的功能是先求出右邊表達式的值,然后把此值賦給左邊的變量。 例如,若例如,若a和和b都被定義成都被定義成int類型變量類型變量a=10; /*把常量把常量10賦給變量賦給變量a*/b=a; /*把把a中的值賦給變量中的

32、值賦給變量b,a中的值不變中的值不變*/注意注意1. 賦值運算符的優(yōu)先級別只高于逗號運算符,比其它任何運算符的優(yōu)先賦值運算符的優(yōu)先級別只高于逗號運算符,比其它任何運算符的優(yōu)先級都低,且具有自右向左的結(jié)合性。例如:級都低,且具有自右向左的結(jié)合性。例如:a=2+7/3 2. 賦值運算符的左側(cè)只能是變量不能是常量或表達式。如賦值運算符的左側(cè)只能是變量不能是常量或表達式。如a+b=c是不合是不合法的賦值表達式。法的賦值表達式。 3. 賦值號右邊的表達式也可以是一個賦值表達式,如賦值號右邊的表達式也可以是一個賦值表達式,如a=b=7+1。4. 作為一個表達式,它自己也應(yīng)該有一個值,作為一個表達式,它自己

33、也應(yīng)該有一個值,C語言規(guī)定最左邊變量中語言規(guī)定最左邊變量中所得到的新值就是賦值表達式的值。所得到的新值就是賦值表達式的值。 2.6 賦值表達式賦值表達式2.6.2 復(fù)合賦值表達式復(fù)合賦值表達式在賦值運算符在賦值運算符”=”之前加上其它運算符可以構(gòu)成復(fù)合賦值運算符。之前加上其它運算符可以構(gòu)成復(fù)合賦值運算符。 += -= *= /= %= &= = |= 等價于等價于 n=n+1 等價于等價于 a=a+3 等價于等價于 n=n*(m+3) 注意:有括號注意:有括號例例2.3 已有變量已有變量a,初始值為,初始值為9,計算表達式,計算表達式a+=a-=a+a的值。的值。a表達式表達式如:如:

34、n+=1 a+=3 n*=m+3a+=a-=a+a9a+=a-=18a=a-18a+=-9a=a+-9a=a+(-9)a+=a-=a+a的值是:的值是:-182.6 賦值表達式賦值表達式2.6.3 賦值運算中的類型轉(zhuǎn)換賦值運算中的類型轉(zhuǎn)換在賦值運算中,只有在賦值號右側(cè)表達式的類型在賦值運算中,只有在賦值號右側(cè)表達式的類型 與左側(cè)變量類型完全一致時,賦值操作才能進行。與左側(cè)變量類型完全一致時,賦值操作才能進行。 如:如:int a; double b; a=10; b=3.5;如果賦值運算符兩側(cè)的數(shù)據(jù)類型不一致,在賦值前,如果賦值運算符兩側(cè)的數(shù)據(jù)類型不一致,在賦值前, 系統(tǒng)將自動先把右側(cè)表達式求

35、得的數(shù)值,按賦值號系統(tǒng)將自動先把右側(cè)表達式求得的數(shù)值,按賦值號 左邊變量的類型進行轉(zhuǎn)換,也可以用強制類型轉(zhuǎn)換左邊變量的類型進行轉(zhuǎn)換,也可以用強制類型轉(zhuǎn)換 的方式,人為地進行轉(zhuǎn)換后賦給賦值號左邊的變量。的方式,人為地進行轉(zhuǎn)換后賦給賦值號左邊的變量。 a10b3.5如:如:int a; double b; a=20.5; b=15;a20b15.03. 在在C語言的表達式中語言的表達式中(不包括賦值表達式不包括賦值表達式),如果運算,如果運算 符兩邊的數(shù)據(jù)類型不相同,將進行類型之間的轉(zhuǎn)換。符兩邊的數(shù)據(jù)類型不相同,將進行類型之間的轉(zhuǎn)換。 轉(zhuǎn)換規(guī)則如下:轉(zhuǎn)換規(guī)則如下: doublelongunsign

36、edintfloatchar,short低低高高如:如:10+97+1.5-8765.1234*988765.1234*98.0double2.7 自加、自減運算符和逗號運算符自加、自減運算符和逗號運算符2.7.1 自加運算符自加運算符“+”和自減運算符和自減運算符“-”+ (自加運算符自加運算符)- (自減運算符自減運算符)1. +、-運算符是單目運算符,運算對象只能變量,不能是常量和表達式。運算符是單目運算符,運算對象只能變量,不能是常量和表達式。 2. +和和-運算符的結(jié)合方向是運算符的結(jié)合方向是自右至左自右至左。 i+、+i i-、 -ii=i+1i=i-1例如:例如:int i=5;

37、i+;int i=5;+i;int i=5;i-;int i=5;-i;i:表達式:表達式:運算規(guī)則運算規(guī)則運算符在前,先計算,后賦值運算符在前,先計算,后賦值運算符在后,先賦值,后計算運算符在后,先賦值,后計算例如:例如:int i=3; -i+; int i=3;-(i+);i:表達式:表達式:思考:程序示例,自增自減運算思考:程序示例,自增自減運算#include main()int i=0,j; j=i+; printf(“%d,%dn”,i,j); i=0; j=+i; printf(“%d,%dn”,i,j);上機練習(xí)上機練習(xí)656645444-32.7 自加、自減運算符和逗號運算

38、符自加、自減運算符和逗號運算符2.7.2 逗號運算符和逗號表達式逗號運算符和逗號表達式, (逗號運算符逗號運算符)用逗號將表達式連接起來的式子稱為用逗號將表達式連接起來的式子稱為逗號表達式逗號表達式。逗號表達式的一般形式為:。逗號表達式的一般形式為: 表達式表達式1,表達式,表達式2,表達式,表達式n 表達式之間用表達式之間用逗號逗號進行連接進行連接1. 逗號運算符的結(jié)合性為從左到右,因此逗號表達式將從左到右進行運算。逗號運算符的結(jié)合性為從左到右,因此逗號表達式將從左到右進行運算。 如:如:i=3,i+,+i,i+5 i表達式表達式33i表達式表達式43i表達式表達式55i表達式表達式510逗

39、號表達式的值為逗號表達式的值為2. 在所有運算符中,逗號運算符的優(yōu)先級別最低。在所有運算符中,逗號運算符的優(yōu)先級別最低。 習(xí)題一、選擇題2.1 以下選項中正確的整型常量是 A 12. B -20 C 1,000 D 4 5 62.2 以下選項中正確的實型常量是A 0 B 3. 1415 C 0.329X102 D .871 2.3 以下選項中不正確的實型常量是A 2.607E-1 B 0.8103e 2 C -77.77 D 456e-22.4 以下選項中不合法的用戶標(biāo)識符是 A abc.c B file C Main D PRINTF2.5 以下選項中不合法的用戶標(biāo)識符是 A _123 B printf C A $ D Dim2.6 C語言中運算對象必須是整型的運算符是 A % B / C ! D * *2.7 可在C程序中用作用戶標(biāo)識符的一組標(biāo)識符是 A void

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論