C語言程序設計案例教程電子教案課件_第1頁
C語言程序設計案例教程電子教案課件_第2頁
C語言程序設計案例教程電子教案課件_第3頁
C語言程序設計案例教程電子教案課件_第4頁
C語言程序設計案例教程電子教案課件_第5頁
已閱讀5頁,還剩396頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、21世紀高職高專新概念規(guī)劃教材C語言程序設計案例教程主 編 孫街亭中國水利水電出版社瘟廉烴杉副駒徽衍字鑼臀倫盧笆濱母豎欣睜雙愁脅宿豺磨叫狡換羽俗妝箍C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第1頁,共401頁。第1章 C語言概論兵腕筍治蠶綻匝戈凳綿醋稅詳煮靈臺窒蒸霄獸努溯倍迄匙貝媽賜怪出淵被C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第2頁,共401頁。知識點1 C語言的發(fā)展過程 C語言是國際上廣泛流行的計算機高級語言,既可用來編寫系統(tǒng)軟件,也可用來編寫應用軟件。C語言是在B語言的基礎上發(fā)展起來的,但B語

2、言過于簡單,功能有限。1972年至1973年間,貝爾實驗室在B語言的基礎上設計出了C語言。最初的C語言只是為了描述和實現(xiàn)UNIX操作系統(tǒng)而設計的一種工作語言。后來,C語言經(jīng)過多次改進,其功能不斷完善,其突出的優(yōu)點逐漸引起了人們的注意。1977年出現(xiàn)了不依賴于具體機器的C語言編譯文本“可移植C語言編譯程序”,使C程序移植到其他機器時所需做的工作大大簡化,這也推動了UNIX操作系統(tǒng)在各種機器上的迅速實現(xiàn)。隨著UNIX的日益廣泛使用,C語言也得到迅速推廣。C語言和UNIX在發(fā)展過程中相輔相成。1978年以后,C語言已先后移植到大、中、小、微型機上。1983年,美國國家標準化協(xié)會(ANSI)根據(jù)C語言

3、問世以來的各種版本對C語言進行了擴充和完善,制定了新的標準,稱為ANSI C。ANSI C比原來的標準C有了很大的發(fā)展。1987年,ANSI又公布了新標準87 ANSI C。1990年,國際標準化組織ISO 接受87 ANSI C為ISO C 的標準(ISO 98991990)。目前流行的C編譯系統(tǒng)都是以它為基礎的。在微型機上使用的有Microsoft C、Turbo C、Quick C、Borland C等,它們的不同版本又略有差異。因此,讀者應了解所用計算機系統(tǒng)配置的C編譯系統(tǒng)的特點和規(guī)定(可以參閱相關手冊)。像咳強岸橡諜鷹翟浮象脫炔咎傻戌嗡稱冶旬娟旗累拳遣獵縮話毆鉤搏孰坤C語言程序設計案

4、例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第3頁,共401頁。知識點2 C語言的特點 C語言的主要特點如下:(1)語言簡潔、緊湊,使用方便、靈活。C語言一共只有32個關鍵字、9種控制語句,程序書寫形式自由,主要用小寫字母表示,壓縮了一切不必要的成分。(2)運算符豐富。C語言中共有34種運算符。C語言把括號、賦值、強制類型轉換等都作為運算符處理,從而使C的運算類型極其豐富,表達式類型多樣化。(3)數(shù)據(jù)類型豐富。C語言的數(shù)據(jù)類型有整型、實型、字符型、數(shù)組類型、指針類型、結構體類型、共用體類型等。(4)具有結構化的控制語句(如ifelse語句、while語句、dowhi

5、le語句、switch語句、for語句)。用函數(shù)作為程序的模塊單位,便于實現(xiàn)程序的模塊化。C是良好的結構化語言,符合現(xiàn)代編程風格的要求。(5)語法限制不太嚴格,程序設計自由度大。例如對數(shù)組下標越界不做檢查,由程序編寫者自己保證程序的正確性。對變量的類型使用比較靈活,例如整型數(shù)據(jù)與字符型數(shù)據(jù)在一定范圍內可以通用。(6)C語言能進行位(bit)操作,能實現(xiàn)匯編語言的大部分功能,可以直接對硬件進行操作。因此C既具有高級語言的功能,又具有低級語言的許多功能,可用來編寫系統(tǒng)軟件。C語言的這種雙重性,使它既是成功的系統(tǒng)描述語言,又是通用的程序設計語言。有人把C語言稱為“高級語言中的低級語言”或“中級語言”

6、,意思是兼有高級語言和低級語言的特點。斥韻符抬繩檻場品鈾瞎柴恩奄轍徹搓顆坯龔巴眼航役販軟傅鞍錐琵勺哎酌C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第4頁,共401頁。知識點3 C程序的基本結構3.1 C語言中的標識符1C語言的字符集(1)26個英文字母(包括大小寫):az、AZ。(2)10個數(shù)字字符:09。(3)27個特殊字符:+、-、*、/、=、:、;、?、|、!、#、%、&、()、_(下劃線)、 空格、,、。共89個字符可以在C程序中出現(xiàn),不可以包含除此之外的其他字符。2C語言中的標識符標識符是程序設計人員用來命名程序中的一些基本單元或模塊的符號

7、。C語言規(guī)定:標識符由字母、數(shù)字字符和下劃線組成,并以字母或下劃線開頭。定義標識符時需要符合以下規(guī)定:(1)不能使用系統(tǒng)保留的關鍵字。(2)C語言嚴格區(qū)分大小寫,同一個字母的大小寫代表不同的標識符。(3)為提高程序的可讀性,標識符名稱盡量使用有意義的英文單詞,做到“見名知義”。(4)標識符的長度(字符個數(shù))可以少于等于8個字符,有的系統(tǒng)也可以少于等于32個字符。右陪棉絆陸郎丘捕菱被瀕蔚蘭靖寥碼審覽懲吸星毋駝赦勻犢般健慰疾昏郡C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第5頁,共401頁。3.2 C程序的組成 一個C程序可以由若干個源程序文件(分別進行

8、編譯的文件模塊)組成,一個源程序文件可以由若干個函數(shù)、編譯預處理命令,以及全局變量聲明部分組成。(1)函數(shù)是程序設計模塊化的體現(xiàn)。函數(shù)用來完成某個特定的操作,一個程序可以包含很多函數(shù)。這些函數(shù)可以是由用戶自己設計的,也可以是系統(tǒng)提供的庫函數(shù)。但程序中一定要有一個并只允許有一個主函數(shù)main()。程序從主函數(shù)開始執(zhí)行,不論main函數(shù)在整個程序中的位置如何。main函數(shù)可以放在程序最前頭,也可以放在程序最后,或者在一些函數(shù)之前,在另一些函數(shù)之后。其他函數(shù)通過主函數(shù)或被主函數(shù)已經(jīng)調用的函數(shù)調用而間接執(zhí)行。(2)一個函數(shù)由兩部分組成:1)函數(shù)的頭部,即函數(shù)的第一行。包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函

9、數(shù)參數(shù)(形式參數(shù))名、形式參數(shù)類型。一個函數(shù)名后面必須跟一對圓括號,函數(shù)參數(shù)可以沒有,如main()。2)函數(shù)體,即函數(shù)頭部下面的大括號內的部分。如果一個函數(shù)內有多個大括號,則最外層的一對 為函數(shù)體的范圍。函數(shù)體一般包括聲明部分和執(zhí)行部分。聲明部分主要用于定義所用到的變量,執(zhí)行部分則由若干個語句組成。眼襄鈴碟咋蜜單滅樞健含哮牌畦蹲衰卞耀析翰淮窺鎬魚閹刨爛五瘍筏杜狹C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第6頁,共401頁。即函數(shù)一般形式如下:函數(shù)類型 函數(shù)名(參數(shù)類型 參數(shù)1,參數(shù)類型 參數(shù)2,) 聲明部分 執(zhí)行部分示例如下:int add(in

10、t a,int b) int c; c=a+b; (3)C程序書寫格式自由,一行內可以寫幾個語句,一個語句可以分寫在多行上。C程序沒有行號,每個語句和數(shù)據(jù)定義的最后必須有一個分號。分號是C語句的必要組成部分。(4)C語言本身沒有輸入輸出語句。輸入和輸出的操作是由庫函數(shù)scanf和printf等函數(shù)來完成的。C語言對輸入輸出實行“函數(shù)化”。(5)C程序中為了說明程序的功能或某部分的含義,可以帶注釋。注釋能幫助讀者閱讀和理解程序。程序編譯時,注釋被忽略,它不產(chǎn)生代碼行。注釋內容寫在一對符號“/*”和“*/”之間,這是傳統(tǒng)C語言中的注釋方式,其中的內容可以是一行或幾行。自符號“/*”開始到“*/”符

11、號結束,其間的內容都被認為是注釋內容。舊瞧紡蟲廉挺填添篷鑿豹賒汁忽檀瀕昆請次奶倦痘攝阿蹬慕摟脊軒隸床鋇C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第7頁,共401頁。知識點4 編譯預處理命令 ANSI C標準規(guī)定可以在C源程序中加入一些編譯預處理命令,以改進程序設計環(huán)境,提高編程效率。這些預處理命令是由ANSI C統(tǒng)一規(guī)定的,但是它不是C語言本身的組成部分,不能直接對它們進行編譯。必須在對程序進行通常的編譯(包括詞法和語法分析、代碼生成、優(yōu)化等)之前,先對程序中的這些特殊命令進行“預處理”,即根據(jù)預處理命令對程序作相應的處理。經(jīng)過預處理后程序不再包括

12、預處理命令,最后再由編譯程序對預處理后的源程序進行通常的編譯處理,得到可供執(zhí)行的目標代碼。C語言提供的預處理功能主要有以下3種:宏定義、文件包含和條件編譯。為了與一般C語句相區(qū)別,這些命令以符號“#”開頭。答舌棍衰教焦樟案蹈慰隋亮涂妝蓖靜晰峨部隙掏幀庭教圓則冷哪蘭征招醉C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第8頁,共401頁。4.1 宏定義1不帶參數(shù)的宏定義 用一個指定的標識符(即名字)來代表一個字符串,它的一般形式為:#define 標識符 字符串例如:#define PI 3.1415926 其作用是指定用標識符PI來代替“3.141592

13、6”這個字符串,在編譯預處理時,將程序中在該命令以后出現(xiàn)的所有PI都用“3.1415926”代替。這種方法使用戶能以一個簡單的名字代替一個長的字符串,因此把這個標識符(名字)稱為“宏名”,在預編譯時將宏名替換成字符串的過程稱為“宏展開”。瘡獰范諷掠鵲穩(wěn)肉紫候莆韋陵鵑狂懷陋又琶會矮眶辰叁碩漲弓價刻排儀磊C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第9頁,共401頁。2帶參數(shù)的宏定義 不是進行簡單的字符串替換,替換時還要進行參數(shù)替換。其定義的一般形式為:#define 宏名(參數(shù)表) 字符串字符串中包含在括號中所指定的參數(shù),如:#define s(a,b

14、) a*barea=s(3,2);替換時,將3傳給a,2傳給b,a*b的值賦給area。谷無磨鈍棺宜臭窄賭嘲賊綻匣法恤沿歲舌披蘿簿哆獲男那肝幾嗣們腋舀下C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第10頁,共401頁。4.2 “文件包含”處理 所謂“文件包含”處理是指一個源文件可以將另外一個源文件的全部內容包含進來,即將另外的文件包含到本文件之中。C語言提供了#include命令用來實現(xiàn)“文件包含”的操作。其一般形式為:#include 文件名或#include 在一個被包含文件中又可以包含另一個被包含文件,即文件包含是可以嵌套的。在#include

15、命令中,文件名可以用雙引號或尖括號括起來,二者的區(qū)別是用尖括號形式時,系統(tǒng)到存放C庫函數(shù)頭文件的目錄中尋找要包含的文件,這稱為標準形式;用雙引號形式時,系統(tǒng)先在用戶當前目錄中尋找要包含的文件,若找不到,再按標準形式查找(即再按尖括號的方式查找)。一般來說,如果為調用庫函數(shù)而用#include命令來包含相關的頭文件,則用尖括號,以節(jié)省查找時間;如果要包含的是用戶自己編寫的文件(這種文件一般都在當前目錄中),一般用雙引號。魏慰購譴蘊促袒鏟梧魄柿凰澈翻扯錫攆寓闖悍癬邱旦沙訣貌哪飼準裹乘脆C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第11頁,共401頁?!景?/p>

16、例1-1】求兩數(shù)之和。/*ex1_1.c the sum of a+b*/#include stdio.hmain() int a,b,sum; printf(Enter two int numbers:n); scanf(%d%d,&a,&b); sum=a+b; printf(sum=%dn,sum);程序的運行的結果如下:Enter two int numbers:1122sum=33爽櫥莖顏攬寢穩(wěn)件傘媳妥廬蔥半只賭遇叮頒薪廚未膝手胺建戍齋戍序堡黔C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第12頁,共401頁。 本程序的作用是求兩個整數(shù)a和b

17、之和sum。本例中程序開頭用了如下注釋:/*ex1_1.c the sum of a+b*/說明:程序用來求a加b的和。本例中有文件包含命令:#include stdio.h 其中stdio.h是一個頭文件,也稱標準的輸入輸出頭文件。程序中由于要用到數(shù)據(jù)輸入函數(shù)scanf()和輸出函數(shù)printf(),而這兩個函數(shù)的說明系統(tǒng)已經(jīng)存放在文件stdio.h中,因此要包含該頭文件。所謂包含就是把頭文件代碼引入程序中,由于這個工作是在編譯程序前完成的,所以稱為編譯預處理命令。/*/表示注釋部分,既可以用漢字表示注釋,也可以用英語或漢語拼音作注釋。注釋只是給人看的,對編譯和運行不起作用。注釋可以加在程序

18、中的任何位置。在函數(shù)體的聲明部分,定義變量a、b和sum,指定它們?yōu)檎停╥nt)變量。程序中scanf函數(shù)的作用是輸入a和b的值。“%d”是輸入輸出的“格式字符串”,用來指定輸入輸出時的數(shù)據(jù)類型和格式,輸入時“%d”表示“以十進制整數(shù)形式輸入數(shù)據(jù)”。&a和&b中的“&”的含義是“取地址”,此scanf函數(shù)的作用是將兩個數(shù)值分別輸入到變量a和b的地址所標志的單元中,也就是輸入給變量a和b。這種形式是與其他語言不同的。接著執(zhí)行賦值語句,使sum的值為a+b。printf函數(shù)中雙引號內的“sum=%d”,在輸出時,其中“%d”將由sum的值取代,“sum=”原樣輸出。程序運行時,從鍵盤輸入數(shù)據(jù)11

19、、22分別給a和b,輸出變量sum之值33。洞務漢昨吠躊懈濺閹襄炸鐵枝睛愈滬杰必渾煎喝映噎磺乳白跪法渺映曾倍C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第13頁,共401頁。知識點5 C程序的上機步驟 為了使計算機能按照人們的意志進行工作,必須根據(jù)問題的要求編寫出相應的程序。所謂程序,就是一組計算機能識別和執(zhí)行的指令。每一條指令使計算機執(zhí)行特定的操作。用高級語言編寫的程序稱為“源程序”。從根本上說,計算機只能識別和執(zhí)行由0和1組成的二進制的指令,而不能識別和執(zhí)行用高級語言編寫的指令。為了使計算機能執(zhí)行高級語言源程序,必須先用一種稱為“編譯程序”的軟件

20、把源程序翻譯成二進制形式的“目標程序”,然后將該目標程序與系統(tǒng)的函數(shù)庫和其他目標程序連接起來,形成可執(zhí)行的目標程序。例如,上例編輯后得到一個源程序文件ex1_1.c,然后在進行編譯時再將源程序文件ex1_1.c輸入,經(jīng)過編譯得到目標程序文件ex1_1.obj,再將目標程序文件ex1_1.obj輸入內存,與系統(tǒng)提供的庫函數(shù)等連接,得到可執(zhí)行的目標程序文件ex1_1.exe,最后把ex1_1.exe調入內存并使之運行。下面主要就用Turbo C 運行C程序的步驟作一下簡單介紹。罰虜哥違鄲靡費愁嘻盧浙形聾次袁鋅苦幫霜否包虜窟獄苔龍邁晃更胃苫疊C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計

21、案例精品教程-電子教案-孫街亭第14頁,共401頁。 Turbo C是在微機上廣泛使用的編譯程序,它具有方便、直觀、易用的界面和豐富的庫函數(shù)。它向用戶提供一個集成環(huán)境,把程序的編輯、編譯、連接和運行等操作全部集中在一個界面上進行,使用十分方便。為了能使用Turbo C,必須先將Turbo C編譯程序裝入磁盤的某一目錄,例如放在C盤根目錄的下一級TC子目錄下。(1)調用Turbo C程序。如果用戶的當前目錄是Turbo C編譯程序所在的子目錄(如TC子目錄),則只需從鍵盤鍵入tc命令即可:C:TCtc 屏幕上出現(xiàn)Turbo C集成環(huán)境,如圖1.1所示。從圖中可以看到,在集成環(huán)境的上部有一行“主菜

22、單”,其中包括8個菜單項:File、Edit、Run、Compile、Project、Option、Debug、break/watch。 用戶可以通過以上菜單項來選擇使用Turbo C集成環(huán)境所提供的各項主要功能。以上8個菜單項分別代表:文件操作、編輯、運行、編譯、項目文件、選項、調試、中斷/觀察等功能。用鍵盤上的“”和“”鍵可以選擇菜單欄中所需要的菜單項,被選中的項以“反相”形式顯示(例如主菜單中的各項原來以白底黑字顯示,被選中時改為以黑底白字顯示)。此時若按Enter鍵,就會出現(xiàn)一個下拉菜單。例如在選中File菜單并按Enter鍵后,屏幕上File下面出現(xiàn)下拉菜單,如圖1.2所示。它是一個

23、子菜單,提供多項選擇。可以用“”鍵選擇所需要的項。例如選擇New并按Enter鍵,表示要建立一個新的C源程序。如果選擇Load并按Enter鍵,則表示要調入一個已有的源文件,此時屏幕上出現(xiàn)一個對話框,如圖1.3所示,要求你輸入一個文件的名字。用戶可以輸入一個文件名,如ex1_1.c,如果已存在此文件,則系統(tǒng)會將此文件調入內存并顯示在屏幕上。此時自動轉為編輯(Edit)狀態(tài)。如果原來不存在此文件,則系統(tǒng)會建立一個以指定的名字命名的新文件。汞敵墓顛鎢貸管抽箔橡蓑蟻墾肉晉稿閹斬排率澡夫俠關育費媒濟駕諜傷柬C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第15頁

24、,共401頁。圖1.1 Turbo C集成開發(fā)環(huán)境科惦蓑灌世猙她踏唬忻吳掛噸掙何咸聊門甘英渦爺久絲詐疼生貶頓澀綻啦C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第16頁,共401頁。圖1.2 File下面出現(xiàn)的下拉菜單 盤媒每揚奠裙學峨屹職偽鹽屆崗虛橙赤撒遺掩候蔑疥血琉箍靖濫傘肘吹甭C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第17頁,共401頁。圖1.3 調入源文件 灘侗賂暈廈增恕嫡肢耳蔫拆悍候鐮氓循窗絨剎臻毗叫塑儀威報漾純緣駐陛C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教

25、案-孫街亭第18頁,共401頁。(2)編輯源文件。在編輯(Edit)狀態(tài)下可以根據(jù)需要輸入或修改源程序。(3)編譯源程序。選擇CompileCompile to OBJ命令,則進行編譯,得到一個后綴為.obj的目標程序。然后再選擇CompileLink EXE file命令進行連接操作,可以得到一個后綴為.exe的可執(zhí)行文件。也可以將編譯和連接合為一個步驟進行。選擇CompileMake EXE file命令或按F9鍵,即可一次完成編譯和連接,在屏幕上會顯示編譯或連接時有無錯誤和有幾個錯誤。此時按任何一個鍵,“編譯信息框”會消失,屏幕上會恢復顯示源程序,光標停留在出錯之處。在屏幕的下半部分顯示

26、出有錯誤的行和錯誤的原因。根據(jù)此信息修改源程序。修改完畢認為無錯后,再按F9鍵再次進行編譯和連接,如此反復進行,直到不顯示出錯為止。(4)執(zhí)行程序。按F10鍵,在窗口上部的主菜單中的某一項處出現(xiàn)“反相”顯示(黑色亮塊)。 用“”鍵將亮塊移到Run上按Enter鍵,在其下拉菜單中選擇Run項,或者直接按Ctrl+F9鍵,系統(tǒng)就會執(zhí)行已編譯好的目標文件。此時,TC集成環(huán)境窗口消失,屏幕上顯示出程序運行時的輸出結果。如果程序需要輸入數(shù)據(jù),則應在此時從鍵盤輸入所需數(shù)據(jù),然后程序會接著執(zhí)行,輸出結果。 如果發(fā)現(xiàn)運行結果不對,要重新修改源程序,可以再按F10鍵,并用“”鍵使亮塊移到Edit處,按Enter

27、鍵即進入編輯狀態(tài),可以根據(jù)需要修改源程序,并重復(2)(4)步,直到得到正確結果為止。因蒼育戰(zhàn)慢拌撫蔫泡埃老族話奔腿隔條滴廉腕氯膿波挺挾死雹姑醫(yī)轟轍匹C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第19頁,共401頁。(5)可以用Alt和X鍵(同時按這兩個鍵)脫離Turbo C,回到命令提示符狀態(tài)。此時,可以用DOS命令顯示源程序和運行程序:C:TC TYPE ex1_1.c (列出源程序清單)C:TC ex1_1.1 (執(zhí)行目標程序 tc1.exe) 如果想再修改源程序,可以重新執(zhí)行步驟(1),并輸入源程序文件名。 用Visual C+ 6.0集成開

28、發(fā)環(huán)境使用鼠標操作,設計功能強大,而且字符串和注釋可以用中文,但該環(huán)境對初學者來說有一定的難度,讀者可根據(jù)自己的具體情況選用。犀苯眨狡迎訖著痰傈覓萬意疏拳櫻枕彝圾筆惦瀉瘤賂礫牽鍵爾薦豪殺萊尿C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第20頁,共401頁。第2章 數(shù)據(jù)類型、運算符、表達式瘋迪申俘裔賢歷骨距膨帖甚賭抒銷聚沃題傣豁銥次鳳每扯墟瘦刀捶己賜孵C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第21頁,共401頁。知識點1 C語言的數(shù)據(jù)類型 C語言的數(shù)據(jù)結構是以數(shù)據(jù)類型形式出現(xiàn)的。C語言的數(shù)據(jù)類型可以分為基

29、本類型和構造類型兩種。其中基本類型有:整型,字符型,實型(也叫浮點型,又可分為單精度型和雙精度型兩種),枚舉類型,指針類型和空類型;構造類型有:數(shù)組類型,結構體類型,共用體類型等。 C語言中數(shù)據(jù)有常量與變量之分,它們分別屬于以上這些類型。由以上這些數(shù)據(jù)類型還可以構成更復雜的數(shù)據(jù)結構。例如利用指針和結構體類型可以構成表、樹、棧等復雜的數(shù)據(jù)結構。在程序中對用到的所有數(shù)據(jù)都必須指定其數(shù)據(jù)類型。及恬乖凰垮捌旬塘永日弟脂勞囚牽四檔盯弟吃彰訣涉奎獰儈役吾紛凌制伊C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第22頁,共401頁。1.1 常量和變量1常量和符號常量

30、在程序運行過程中,其值不能被改變的量稱為常量。常量可以分為不同的類型,如10、0、-10為整型常量,12.34、-12.34為實型常量,D、d為字符型常量。常量一般從其字面形式即可判別,這種常量稱為直接常量;也可以用一個標識符代表一個常量,即符號常量。符號常量在使用前需要先用編譯預處理命令定義,如:#define PI 3.1415926 在此定義后,在當前程序中需要使用3.1415926的地方都可以用符號常量PI代替。 習慣上,符號常量名用大寫,變量名用小寫,以示區(qū)別。但這不是規(guī)定,僅是習慣而已。陛痕鄒腹害乳亥綿遲聚術男孿言縛怯蘑隱描鉆維彭剝拉崇嗣倍睡佃段亦纏C語言程序設計案例精品教程-電子

31、教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第23頁,共401頁。2變量 在程序運行過程中,其值可以改變的量稱為變量。一個變量應該有一個名字,在內存中占據(jù)一定的存儲單元。在該存儲單元中存放變量的值。變量名、符號常量名、函數(shù)名、數(shù)組名、類型名、文件名的有效字符序列稱為標識符。簡單地說,標識符就是一個名字。如sum、average是合法的標識符,也是合法的變量名,而123abc、x+y等是不合法的標識符和變量名。變量在使用前需要進行定義,即先定義,后使用。變量的定義格式如下:類型 變量名列表;例如:int a,b,c; /* 定義a、b、c為整型變量*/簍汗廢縛扔矣踞奶翅濾傻幕間憶茄蜘

32、糙進童重怕蝸堪鮮恒辣綱桓泣仗晌桐C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第24頁,共401頁。3整型常量的表示方法 整型常量即整常數(shù)。C語言中整常數(shù)可用以下3種形式表示:(1)十進制整數(shù)。如100、-123、0。(2)八進制整數(shù)。以0開頭的數(shù)是八進制數(shù)。如012表示八進制數(shù)12,即(12)8,其值等于十進制數(shù)10。(3)十六進制整數(shù)。以0 x開頭的數(shù)是十六進制數(shù)。如0 x12,代表十六進制數(shù)12,即(12)16,其值等于十進制數(shù)18。情絡街眺婉約隆轅勻賣搓彝緝鵑趕枝蛇在衰翅滋撩塔現(xiàn)碴諾憋阻譽涼跟譚C語言程序設計案例精品教程-電子教案-孫街亭C語言

33、程序設計案例精品教程-電子教案-孫街亭第25頁,共401頁。4整型變量的定義方法 整型變量的基本類型符為int??梢愿鶕?jù)數(shù)值的范圍將變量定義為基本整型、短整型或長整型。在int 之前可以根據(jù)需要分別加上修飾符:short(短整型)或long(長整型),因此有以下3種整型變量:(1)基本整型,以int表示。(2)短整型,以short int或short表示。(3)長整型,以long int或long表示。若再加上修飾符,可以使用以下6種整型變量,即:有符號基本整型:signed int。無符號基本整型:unsigned int。有符號短整型:signed short int。無符號短整型:uns

34、igned short int。有符號長整型:signed long int。無符號長整型:unsigned long int。 以上定義變量格式中,方括號及其中的內容可以省略。以下是定義整型變量舉例:int a,b; /*指定變量a、b為整型變量,每個整型數(shù)據(jù)在內存中占據(jù)2個字節(jié)單元 (TC環(huán)境)或4個字節(jié)單元(VC環(huán)境)*/unsigned int c,d; /*指定變量c、d為無符號短整型變量,每個短整型數(shù)據(jù)及無符號短整型 數(shù)據(jù)在內存中均占據(jù)2個字節(jié)*/long e,f; /*指定變量e、f為長整型變量,每個長整型數(shù)據(jù)在內存中占據(jù)4個字節(jié)單元*/a=10; /*給a賦以整數(shù)10*/ 表2

35、.1列出了整數(shù)類型的數(shù)據(jù)的取值范圍。 羽熟臣麥奸咱叫峽繭躺真彪爽題蕊隴銑嗎燼瞄竭癰章縷斧丈購話畜袋氰何C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第26頁,共401頁。表2.1 整數(shù)類型數(shù)據(jù)的取值范圍類型 取值范圍 TC環(huán)境 VC環(huán)境signed int -3276832767 -21474836482147483647unsigned int 065535 04294967295signed short int -3276832767 -3276832767unsigned short int 065535 065535long int -2147

36、4836482147483647 -21474836482147483647unsigned long int 04294967295 04294967295簡旬兵捉鑒椿殃揖示瞇鷹閑越碧已分狼乍目凈篡淳盯跡辦己葷槍沉瑰砸螞C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第27頁,共401頁。5實型常量的表示方法 實數(shù)又稱浮點數(shù)。實數(shù)有兩種表示形式:(1)十進制小數(shù)形式。它由數(shù)字和小數(shù)點組成(注意必須有小數(shù)點)。如1.23、0.123、12.3、0.0都是十進制小數(shù)形式。(2)指數(shù)形式。如1.23e2或12.3e1都代表1.23102。但注意字母e(或E)

37、之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù)。 我由央欣殖抗瘴緊住隸個晦嗅裝恥控毒戚掉范包績糾劫奧王橙丘溝券熊嚎C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第28頁,共401頁。6實型變量的定義方法 C語言中實型變量常用的有單精度型(float)、雙精度型(double)兩類。 以下是定義實型變量舉例: float x,y; /*指定變量x、y為單精度實型變量,每 個單精度實型數(shù)據(jù)在內存中占據(jù)4個 字節(jié)單元,自左向右前7位數(shù)據(jù)有效*/ double z; /*指定變量z為雙精度實型變量,每個雙精度實型數(shù)據(jù)在內存中占據(jù)8個 字節(jié)單元,自左向右前16位數(shù)據(jù)有

38、效*/ x=12.34; /*給x賦以單精度實數(shù)12.34*/ z=1234.5678; /*給z賦以雙精度實數(shù)1234.5678*/須躥蔗桐寫倍譴煌腳跺油逆蹄厲護聊聽褐稿士絨丑棵梗債星亂晾荒擁活虛C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第29頁,共401頁。7字符常量 C語言中的字符常量是用單引號(即撇號)括起來的一個字符。如a、A、!、 等都是字符常量。注意,a和A是不同的字符常量。除了以上形式的字符常量外,C語言中還允許使用一種特殊形式的字符常量,即以一個“”開頭的字符序列。例如,前面已經(jīng)遇到過的在printf函數(shù)中的n,它代表一個“換行”

39、符。這是一種“控制字符”,即轉義字符,在屏幕上是不能顯示的,在程序中也無法用一個一般形式的字符表示,只能采用特殊形式來表示。常用的轉義字符如表2.2所示。線內斟黑田炊寇韭履篆耿圓砒火閹遍芽熾演炒映塑賴謅耙熙燕砰衛(wèi)病燎喂C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第30頁,共401頁。表2.2 常用轉義字符及其含義符號含義n換行,將當前位置移到下一行開頭t水平制表(橫向跳格)b退格,將當前位置移到前一列r回車,將當前位置移到本行開頭f換頁,將當前位置移到下頁開頭反斜杠字符()單撇號()“雙撇號(”)ddd13位八進制數(shù)所代表的字符xhh12位十六進制數(shù)

40、所代表的字符狹喀泡念魂海己俠鬃芽汰寨暇招遷撾郎薛絮疵傍圈裂孿奇憋撬妻婪歡刷溝C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第31頁,共401頁。8字符變量 字符型變量用來存放字符常量,一個字符型的變量中只能存放一個字符,不能存放一個字符串。字符型變量的定義形式如下: char ch1,ch2,ch3; /* 指定變量ch1、ch2、 ch3為字符型變量,每個字符型數(shù)據(jù)在內存中 占據(jù)1個字節(jié)單元 */ch1=a;ch2=101;ch3=x41 ; /* 給ch1賦以字符a,給ch2賦以字符A,給ch3賦以字符A * /伴若齡抹錳艱膨凸宜震擯渣也勺弱漱似鞭

41、哉詫跟漿惦翟蘑痙財丟臆胺廚淪C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第32頁,共401頁。9字符串常量 字符常量是由一對單引號括起來的單個字符。C語言除了允許使用字符常量外,還允許使用字符串常量。字符串常量是一對雙引號括起來的字符序列。例如hello!、china、A、1.235等都是字符串常量??梢杂幂敵龊瘮?shù)輸出一個字符串,例如:printf(how do you do.); 不要將字符常量與字符串常量混淆。a是字符常量,a是字符串常量,二者不同??梢允褂靡粋€字符型的數(shù)組存放一個字符串。在字符串的最后,系統(tǒng)會自動添加0作為字符串的結束標志。字符

42、串常量china在內存中的實際存放形式為china0。暇箔學澆揩泉頃學博遲派占郭匣蓬渭面筋獺躺失飲惜抹銷俘蔭猜筷澤戶握C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第33頁,共401頁。1.2 數(shù)據(jù)類型轉換 表達式中不同類型的數(shù)據(jù)運算時可以進行轉換,數(shù)據(jù)類型轉換可分自動(隱式)轉換和強制轉換兩種。1自動轉換 一般兩個操作數(shù)運算時,要求兩個操作數(shù)的類型相同,若不相同則系統(tǒng)自動將低類型數(shù)據(jù)轉換成高類型數(shù)據(jù),然后實現(xiàn)運算得高類型數(shù)據(jù)結果(在轉換過程中數(shù)據(jù)的精度保持不變)。各種數(shù)據(jù)類型的高低順序如圖2.1所示。圖中橫向向左的箭頭表示必定的轉換,如字符數(shù)據(jù)必定先

43、轉換為整數(shù),short型轉換為int型,float型數(shù)據(jù)在運算時一律先轉換成雙精度型,以提高運算精度(即使是兩個float型數(shù)據(jù)相運算,也都先轉化成double型,然后再運算)??v向的箭頭表示當運算對象為不同類型時轉換的方向。例如int型與double型數(shù)據(jù)進行運算,先將int型的數(shù)據(jù)直接轉換成double型,然后在兩個同類型(double型)數(shù)據(jù)間進行運算,結果為double型。注意箭頭方向只表示數(shù)據(jù)類型級別的高低,由低向高轉換。不要理解為int型先轉化成unsigned int型,再轉化成long型,再轉化成double型。究蕊壟漸據(jù)仗汽陌零米砷凜庶六答蒂冀忍鑼申犬卻在先繪磷潛宰飲鍛喬找C

44、語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第34頁,共401頁。圖2.1 數(shù)據(jù)類型轉化每豆兢綏層淄搗抬貳拭空礙浚切寞賦琺特卵卜扁捏啡淋躬恢妥爹饑涌臉棍C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第35頁,共401頁。2強制轉換 強制轉換格式如下:(類型)表達式 或(類型)(表達式) 其作用是把表達式的值強制轉換成所要求的數(shù)據(jù)類型,如:double x=1.23;int a,b;a=(int)x+2.9;b=(int)(x+2.9); 以上倒數(shù)第二行語句先將x強制轉換成整型數(shù)據(jù)1,即小數(shù)部分被舍棄后與實數(shù)2.

45、9相加得實數(shù)3.9,再將其和的整數(shù)部分賦值給變量a,a的值為3。最后一行語句先將x和2.9相加得4.13,再將其強制轉換成整型數(shù)據(jù)4,即小數(shù)部分被舍棄后再賦值給變量a,a的值為4。注意數(shù)據(jù)類型轉換后x的值仍然是1.23。另外在賦值表達式中,當左邊的變量和右邊表達式的值類型不一致時,也有一個類型強制轉換的問題,此時一律將右邊表達式值的類型強制轉換成跟左邊變量的類型相同,然后賦值。如a=x;,運算時將右邊變量x的值強制轉換成int類型值1后賦值給整型變量a,但x的值仍然是1.23。注意,當含字節(jié)數(shù)多的類型轉換成字節(jié)數(shù)少的數(shù)據(jù)類型時,可能會引起精度的降低或出現(xiàn)錯誤的結果。年雞努揉杖尖碑整曲喝臆鄰珠簧

46、涉橡侖救疵船泌衫菏影櫥拖枕攙結磋馴背C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第36頁,共401頁。【案例2-1】分析下面程序的輸出結果并上機驗證。#include stdio.hmain() int a=10,b=12345; float x=12.3456,y=-789.1234; char c=A; long n=1234567; unsigned u=65535; printf(%d,%dn,a,b); printf(%4d,%4dn,a,b); printf(%f,%fn,x,y); printf(%-10f,%-10fn,x,y); p

47、rintf(%7.2f,%7.2f,%.3f,%.3f,%4f,%4fn,x,y,x,y,x,y); printf(%e,%10.2en,x,y); printf(%c,%d,%o,%xn,c,c,c,c); printf(%ld,%lo,%xn,n,n,n); printf(%u,%o,%x,%dn,u,u,u,u); printf(%s,%5.3sn,computer,computer);韌固窩訓旬展撰叫蠅句敖贊畔成郝瘓鞘屜干空逞呻譯擁劫憶芯肪浦院療治C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第37頁,共401頁。知識點2 C語言的運算符和表達

48、式 C語言的運算符范圍很寬,把除了控制語句和輸入輸出以外的幾乎所有的基本操作都作為運算符處理,例如將符號“=”作為賦值運算符,方括號作為下標運算符等。C的運算符有以下幾類:算術運算符:+、-、*、/、%、+、-。關系運算符:、=、=、!=。邏輯運算符:!、&、|。位運算符:、|、&。賦值運算符:=及其擴展賦值運算符。條件運算符:?:。逗號運算符:,。指針運算符:*和&。求字節(jié)數(shù)運算符:sizeof。強制類型轉換運算符:(類型)。分量運算符:、-。下標運算符:。其他:如函數(shù)調用運算符()。役蘇勒凰碗上尸湘閏侈謎煤浩館默掂瓢怨純噓既祝梳噬媳手冀敖登件嫁遮C語言程序設計案例精品教程-電子教案-孫街亭

49、C語言程序設計案例精品教程-電子教案-孫街亭第38頁,共401頁。2.1 算術運算符和算術表達式1算術運算符+:加法運算符或正值運算符,如1+2、+10。-:減法運算符或負值運算符,如1-2、-10。*:乘法運算符,如1*2。/:除法運算符,如5/3。%:模運算符,或稱求余運算符,%兩側均應為整型數(shù)據(jù),如5%3的值為2。 需要說明的是,兩個整數(shù)相除的結果為整數(shù),如5/3的結果值為1,舍去小數(shù)部分。但是,如果除數(shù)或被除數(shù)中有一個為負值,則舍入的方向是不固定的。例如,-5/3在有的機器上得到結果-1,有的機器則給出結果-2。多數(shù)機器采取“向零取整”的方法,即5/3=1,-5/3=-1,取整后向零靠

50、攏。如果參加+、-、*、/運算的兩個數(shù)中有一個數(shù)為實數(shù),則結果是double型,因為所有實數(shù)都按double型進行運算。墅障敢冉簿晶翹欽晚銥掄靖鈍典絆羅旅俱桶構坡寧爭瓦墟盒羨但輕階況環(huán)C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第39頁,共401頁。2算術表達式和運算符的優(yōu)先級與結合性 用算術運算符和括號將運算對象(也稱操作數(shù))連接起來的、符合C語言語法規(guī)則的式子稱為C算術表達式。運算對象包括常量、變量、函數(shù)等。例如,下面是一個合法的C算術表達式:a*b/c-1.2+A。 C語言規(guī)定了運算符的優(yōu)先級和結合性。在表達式求值時,先按運算符的優(yōu)先級別高低次

51、序執(zhí)行,例如先乘除后加減。如表達式a-b*c,b的左側為減號,右側為乘號,而乘號優(yōu)先于減號,因此,相當于a-(b*c)。如果在一個運算對象兩側的運算符的優(yōu)先級別相同,則按規(guī)定的“結合方向”處理。如a-b+c,先做a-b,再將其結果和c相加得到最后結果。 C規(guī)定了各種運算符的結合方向(結合性),算術運算符的結合方向為“自左至右”,即先左后右?!白宰笾劣业慕Y合方向”又稱“左結合性”,即運算對象先與左面的運算符結合。以后可以看到有些運算符的結合方向為“自右至左”,即右結合性(例如賦值運算符)。如果一個運算符的兩側的數(shù)據(jù)類型不同,則會先自動進行類型轉換,使二者具有同一種類型,然后再進行運算。硯譴臭兇琴

52、濰蹦嫉猶院棄茵構處休肄不蹈揭器者詹遙駁楷鎖住術宴誅鄉(xiāng)矽C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第40頁,共401頁。3自增、自減運算符自增、自減運算符的作用是使變量的值增1或減1,例如:+i,-i:在使用i之前,先使i的值加(減)1。i+,i-:在使用i之后,使i的值加(減)1。+i和i+的作用都相當于i=i+1。但其不同之處在于:+i是先執(zhí)行i=i+1后,再使用i的值,即先自增后操作;而i+是先使用i的值后,再執(zhí)行i=i+1,即先操作后自增。如果i的原值等于2,則執(zhí)行下面的賦值語句(設這兩條語句分別執(zhí)行):k=+i; /*i的值先變成3,再賦給

53、k,k的值為3*/k=i+; /*先將 i的值2賦給k,k的值為2,然后i變?yōu)?*/又如:i=3;printf(%d,+i);輸出4;若改為printf(%d,i+);則輸出3。自增(減)運算符常用在循環(huán)語句中,使循環(huán)變量自動加(減)1,也可用于指針變量,使指針指向下一個地址。 瞳辮功用軋緊貶壯孵蒜猙失雀鐳棋當札伶準拙箍薄贖耶伍審廠組曼迭杉斜C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第41頁,共401頁。2.2 賦值運算符及賦值表達式1賦值運算符 賦值符號“=”就是賦值運算符,它的作用是將一個數(shù)據(jù)賦給一個變量。如“a=10”的作用是執(zhí)行一次賦值操作

54、(或稱賦值運算),把常量10賦給變量a。也可以將一個表達式的值賦給一個變量,如a=3*4-1,該操作執(zhí)行后a的值為11。2復合賦值運算符 在賦值運算符“=”之前加上其他運算符,可以構成復合賦值運算符。如果在“=”前加上一個“+”運算符就成了復合運算符“+=”。例如: a+=10 等價于 a=a+10 b*=c+6 等價于 b=b*(c+6) d%=2 等價于 d=d%2 凡是二元(二目)運算符,都可以與賦值運算符一起組合成復合賦值運算符。C語言規(guī)定可以使用10種復合賦值運算符,即+=、-=、*=、/=、%=、=、&=、=、|=。 C語言采用這種復合運算符,一是為了簡化程序,使程序精煉,二是為了

55、提高編譯效率。馴駐垢隔粵論暫里亢殃徹仇棕弧盯他鳥段項匝歧租饒皂憑嚷攏池鈔槽值汪C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第42頁,共401頁。3賦值表達式 由賦值運算符將一個變量和一個表達式連接起來的式子稱為“賦值表達式”,它的一般形式為: 如a=10是一個賦值表達式。對賦值表達式求解的過程是:將賦值運算符右側的“表達式”的值賦給左側的變量。賦值表達式的值就是被賦值的變量的值。上述一般形式的賦值表達式中的“表達式”又可以是一個賦值表達式。如a=(b=10),括號內的b=10是一個賦值表達式,它的值等于10。a=(b=10)相當于b=10和a=b兩個

56、賦值表達式,因此a的值等于10,整個賦值表達式的值也等于10。賦值運算符按照“自右至左”的順序結合。氏搐螟痹揪估幻冠掏琉覽夢現(xiàn)擂位評暴超后駕互樁墟箋允暈象戮鬃瑚吶烯C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第43頁,共401頁。2.3 關系運算符和關系表達式1關系運算符關系運算實際上就是“比較運算”。將兩個值進行比較,判斷其比較的結果是否為真。例如,x10是一個關系表達式,大于號()是一個關系運算符,如果x的值為15,則滿足給定的“x10”條件,因此關系表達式的值為“真”(即“條件滿足”);如果x的值為5,不滿足“x10”條件,則稱關系表達式的值為

57、“假”。C語言中以1代表“真”,以“0”代表“假”。C語言提供了6種關系運算符:優(yōu)先級相同(高)的有:(小于)、(大于)、=(大于或等于)。優(yōu)先級相同(低)的有:= =(等于)和!=(不等于)。關于優(yōu)先次序:(1)前4種關系運算符(、=)的優(yōu)先級別相同,后兩種(!=和=)也相同。但前4種的優(yōu)先級高于后兩種。例如,“”優(yōu)先于“=”,而“”與“”優(yōu)先級相同。例如,3=35的結果值為0(假),而不為1(真)。因為是先做3y x+yz-y x=10的值為“真”?,F(xiàn)假設:x=10,y=20,z=30,則關系表達式xy)!=z的值為“真”,表達式的結果值為1;關系表達式x+yb)&(xy)、(ab)|(x

58、y)?!?”是單目(元)運算符,只要求有一個運算量,如!(ab)。邏輯運算的結果為邏輯量真(1)或假(0),在一個邏輯表達式中如果包含多個邏輯運算符,如!x &y|ab) & (n=cd)當a=1,b=2,c=3,d=4,m和n的原值為1時,由于“ab”的值為0,因此m=0,而“n=cd”不被執(zhí)行,因此n的值不是0而仍保持原值1。嗜肛苑廳屆族顴鍺冀尺砸著阻蹤喘蛾攪踢齲著矣癡踩方慢編嗜鐮錄全恭頁C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第47頁,共401頁。2.5 條件運算符 若if語句中,在表達式為“真”或“假”時都只執(zhí)行其中一個賦值語句給同一個變

59、量賦值,則可以用簡單的條件運算符來處理。例如,若有以下if語句:if (ab) max=a;else max=b;可以用下面的條件運算符來處理:max=(ab)? a:b; 該語句的執(zhí)行結果就是將a和b二者中的大者賦給max。其中(ab)?a:b是一個“條件表達式”。它是這樣執(zhí)行的:如果(ab)條件為真,則條件表達式取值a,否則取值b。 條件運算符是C語言中唯一的一個三目運算符,其要求有3個操作對象,故稱三目(元)運算符。條件表達式的一般形式為:表達式1? 表達式2:表達式3 在執(zhí)行時先求解表達式1,若為非0(真),則求解表達式2,此時表達式2的值就作為整個條件表達式的值;若表達式1的值為0(

60、假),則求解表達式3,表達式3的值就是整個條件表達式的值。條件運算符的優(yōu)先級別高于賦值運算符,但比關系運算符和算術運算符都低。條件運算符的結合方向為“自右至左”。在條件表達式中,表達式1的類型可以與表達式2和表達式3的類型不同。紗涼竟布尖心僚藝柔翻誠歹載縛荔蛾唆震主殖甄軍圈栓昆謎愉喘吃捐蹭由C語言程序設計案例精品教程-電子教案-孫街亭C語言程序設計案例精品教程-電子教案-孫街亭第48頁,共401頁?!景咐?-2】分析下面程序的輸出結果并上機驗證。#include stdio.hvoid main() int a,b,c,i,j,k; int m,n; double x,y,z; a=b=c=7

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論