《C語言程序設(shè)計 》課件-第1章_第1頁
《C語言程序設(shè)計 》課件-第1章_第2頁
《C語言程序設(shè)計 》課件-第1章_第3頁
《C語言程序設(shè)計 》課件-第1章_第4頁
《C語言程序設(shè)計 》課件-第1章_第5頁
已閱讀5頁,還剩103頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

項目一初識C語言任務一了解Dev-C++集成開發(fā)環(huán)境任務二了解C語言程序中的基本結(jié)構(gòu)任務三認識C語言程序的框架結(jié)構(gòu)任務四了解C語言的字符和詞匯任務五了解C語言中的基本運算任務六C語言中的基本數(shù)據(jù)類型任務七養(yǎng)成好的編程習慣——注釋思考與練習

C語言的主要特點如下:

(1)C語言是一款模塊化的程序設(shè)計語言。模塊化的基本思想是將一個大的程序按功能分割成一些模塊,使每一個模塊都成為功能單一、結(jié)構(gòu)清晰、容易理解的小

程序。

(2)C語言簡潔,結(jié)構(gòu)緊湊,使用方便、靈活。C語言總共只有32個關(guān)鍵字,9條控制語句,源程序書寫格式自由。

(3)C語言的運算功能極其豐富,數(shù)據(jù)處理能力強。C語言總共有34種運算符,如算術(shù)運算符,關(guān)系運算符,自增(++)、自減(--)運算符,復合賦值運算符,位運算符及條件運算符等。同時,C語言還可以實現(xiàn)其他高級語言較難實現(xiàn)的功能。

任務一了解Dev-C++集成開發(fā)環(huán)境

一般教材中,都選用Turbo

C2.0作為C語言的集成開發(fā)環(huán)境,該系統(tǒng)是DOS操作系統(tǒng)下支持的軟件,不支持鼠標操作。綜合考慮之后,我們以Dev-C++

5.11作為本書程序的集成開發(fā)環(huán)境,Dev-C++是一個Windows下的C和C++程序的集成開發(fā)環(huán)境。

它使用mingw32/gcc編譯器,遵循C/C++標準。開發(fā)環(huán)境包括多頁面窗口、工程編輯器以及調(diào)試器等,在工程編輯器中集合了編輯器、編譯器、連接程序和執(zhí)行程序,提供高亮度語法顯示,以減少編輯錯誤,還有完善的調(diào)試功能,能夠適合初學者與編程高手的不同需求,是學習C或C++的首選開發(fā)工具。下面我們先介紹一下Dev-C++的安裝。

(1)選擇運行Dev-C++的語言環(huán)境,如圖1.1所示。圖1.1選擇語言

(2)進入Dev-C++的安裝向?qū)В鐖D1.2所示。

圖1.2安裝向?qū)?/p>

(3)進入【自定義】界面,單擊“Next”按鈕,如圖1.3所示。

圖1.3自定義安裝

(4)進入【安裝路徑】界面,選擇相應的路徑,如圖1.4所示。

圖1.4選擇路徑

(5)進入【開始安裝】界面,開始安裝程序,如圖1.5所示。

圖1.5開始安裝

(6)安裝完成后,單擊“Finish”按鈕,如圖1.6所示。

圖1.6完成安裝

任務二了解C語言程序中的基本結(jié)構(gòu)

程序設(shè)計語言的根本用途是解決現(xiàn)實世界的問題。解決任何問題都有一定的步驟。為解決一個問題而采取的方法和步驟,就稱為算法。

表示算法,可以用自然語言、偽碼或流程圖。流程圖是算法的一種直觀表示方式,簡單易懂,其基本符號如圖1.7所示。在進行實際的軟件開發(fā)時,一般是先分析問題,設(shè)計算法,畫出算法流程圖,然后根據(jù)流程圖寫出源程序,本書中圖示依此寫法,如圖1.8所示。圖1.7流程圖的基本符號圖1.8現(xiàn)實世界的問題到程序的轉(zhuǎn)換圖

與現(xiàn)實世界類似,常見的算法結(jié)構(gòu)可以分為三類:順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。其中,分支結(jié)構(gòu)有時也被稱為選擇結(jié)構(gòu)。下面分別對這些結(jié)構(gòu)進行介紹,并給出每種結(jié)構(gòu)的流程圖。

1.順序結(jié)構(gòu)

順序結(jié)構(gòu)的程序比較簡單,如圖1.9所示,就是按照語句的排列順序依次執(zhí)行的機制。順序結(jié)構(gòu)的執(zhí)行順序是自上而下、依次執(zhí)行的,因此編寫程序也必須遵守這一規(guī)定,否則程序的執(zhí)行結(jié)果就會出錯。

圖1.9順序結(jié)構(gòu)流程圖

順序結(jié)構(gòu)程序舉例如下:

(1)

main是主函數(shù)的函數(shù)名,表示這是一個主函數(shù)。

(2)每一個C源程序都必須有且只能有一個主函數(shù)(main函數(shù))。

(3)函數(shù)調(diào)用語句,printf函數(shù)的功能是把要輸出的內(nèi)容送到顯示器去顯示。

(4)

printf函數(shù)是一個由系統(tǒng)定義的標準函數(shù),可在程序中直接調(diào)用。

2.分支結(jié)構(gòu)

分支結(jié)構(gòu)與順序結(jié)構(gòu)不同,其執(zhí)行是依據(jù)一定的條件選擇執(zhí)行路徑,而不是嚴格按照語句出現(xiàn)的先后順序。分支結(jié)構(gòu)程序設(shè)計方法的關(guān)鍵在于構(gòu)造合適的分支條件和分析程序流程,根據(jù)不同的程序流程選擇適當?shù)姆种дZ句。

分支結(jié)構(gòu)適合于帶有邏輯條件判斷的計算,設(shè)計這類程序時往往都要先繪制其程序流程圖。程序流程圖是根據(jù)解題分析過程所繪制的程序執(zhí)行流程圖,如圖1.10所示。

圖1.10分支結(jié)構(gòu)程序流程圖

分支結(jié)構(gòu)程序舉例如下:

3.循環(huán)結(jié)構(gòu)

循環(huán)結(jié)構(gòu)可以減少源程序重復書寫的工作量,用來描述重復執(zhí)行某段算法的問題,如圖1.11所示。循環(huán)結(jié)構(gòu)是程序設(shè)計中最能發(fā)揮計算機特長的程序結(jié)構(gòu)。C語言中常用的循環(huán)有三種,即while循環(huán)、do...while循環(huán)和for循環(huán)。

圖1.11循環(huán)結(jié)構(gòu)流程圖

循環(huán)結(jié)構(gòu)程序舉例如下:

三種基本結(jié)構(gòu)的共同特點如下:

(1)只有一個入口。

(2)只有一個出口。

(3)結(jié)構(gòu)內(nèi)的每一部分都有機會被執(zhí)行到。

(4)結(jié)構(gòu)內(nèi)不存在“死循環(huán)”。

C語言有一個重要特點,即結(jié)構(gòu)化。C語言是結(jié)構(gòu)化程序設(shè)計語言的典型代表。

任務三認識C語言程序的框架結(jié)構(gòu)

我們知道,常用的計算機是由輸入設(shè)備、輸出設(shè)備、控制器、運算器、存儲器五大部分組成的,與此類似,我們把C語言程序的框架結(jié)構(gòu)分為四個部分:定義變量、輸入數(shù)據(jù)、核心處理、輸出結(jié)果。按照這樣的分解,一款程序的框架如下:

我們會指出每一個項目代碼的這四個部分。程序員在編寫程序時,基本上也是按照這四個部分各個擊破,最后形成完整的程序。

其中,輸入和輸出部分要借助C語言中的庫函數(shù),核心處理部分就是每個項目的主要功能。下面詳細介紹一下數(shù)據(jù)輸入/輸出的概念及在C語言中的實現(xiàn),這些內(nèi)容在以后的每款程序中都會用到。

首先注意以下幾點:

(1)所謂輸入/輸出,是以計算機為主體而言的。

(2)本項目介紹的是向標準輸出設(shè)備——顯示器輸出數(shù)據(jù)的語句。

(3)在C語言中,所有的數(shù)據(jù)輸入/輸出都是由庫函數(shù)完成的,因此都是直接調(diào)用相應的函數(shù)語句。

(4)在使用C語言庫函數(shù)時,要用預編譯命令#include將有關(guān)“頭文件”包括到源文件中。

使用標準輸入/輸出庫函數(shù)時要用到“stdio.h”文件,因此源文件開頭應有以下預編譯命令:

#include<stdio.h>

#include"stdio.h"

stdio是standardinput&output的意思。

考慮到printf和scanf函數(shù)使用頻繁,系統(tǒng)允許在使用這兩個函數(shù)時可以不加編譯命令。

(5)

printf和scanf函數(shù)的用法如下:

①printf函數(shù)(格式輸出函數(shù))。printf函數(shù)稱為格式輸出函數(shù),其關(guān)鍵字最末一個字母f即為“格式”(format)之意。其功能是按用戶指定的格式,把指定的數(shù)據(jù)顯示到顯示器屏幕上。在前面的例題中我們已多次使用過這個函數(shù)。

printf函數(shù)是一個標準庫函數(shù),它的函數(shù)原型在頭文件“stdio.h”中。但作為一個特例,不要求在使用printf函數(shù)之前必須包含stdio.h文件。

printf函數(shù)調(diào)用的一般形式為

printf(“格式控制字符串”,輸出表列);

其中格式控制字符串用于指定輸出格式。格式控制字符串可由格式字符串和非格式字符串兩種字符組成。格式字符串是以%開頭的字符串,在%后面跟有各種格式字符,以說明輸出數(shù)據(jù)的類型、形式、長度、小數(shù)位數(shù)等。

②scanf函數(shù)(格式輸入函數(shù))。scanf函數(shù)稱為格式輸入函數(shù),即按用戶指定的格式從鍵盤上把數(shù)據(jù)輸入到指定的變量之中。

scanf函數(shù)是一個標準庫函數(shù),它的函數(shù)原型在頭文件“stdio.h”中。與printf函數(shù)相同,C語言也允許在使用scanf函數(shù)之前不必包含stdio.h文件。

scanf函數(shù)的一般形式為

scanf("格式控制字符串",地址表列);

例如,

scanf("%d",&a1);/*從鍵盤讀取一個整數(shù)值到變量a1中*/

其中,格式控制字符串的作用與printf函數(shù)相同,但不能顯示非格式字符串,也就是不能顯示提示字符串。地址表列中給出各變量的地址。地址是由地址運算符“&”后跟變量名組成的。

例如,

&a,&b

分別表示變量a和變量b的地址。這個地址就是編譯系統(tǒng)在內(nèi)存中給a、b變量分配的地址。在C語言中,使用了地址這個概念,這是與其他語言不同的。應該把變量的值和變量的地址這兩個不同的概念區(qū)分開來。變量的地址是C編譯系統(tǒng)分配的,用戶不必關(guān)心具體的地址是多少。

變量的地址和變量值的關(guān)系,就像杯子和飲料的關(guān)系一樣。

在賦值表達式中給變量賦值,例如,

a=567

式中,a為變量名,567是變量的值,&a是變量a的地址。但在賦值號左邊是變量名,不能寫地址,而scanf函數(shù)在本質(zhì)上也是給變量賦值,但要求寫變量的地址,如&a。這兩者在形式上是不同的。&是一個取地址運算符,&a是一個表達式,其功能是求變量的地址。

任務四了解C語言的字符和詞匯

1.C語言字符字符是組成語言的最基本的元素。C語言字符集由字母、數(shù)字、空格、標點和特殊字符組成。在字符常量、字符串常量和注釋中還可以使用漢字或其他可表示的圖形符號。

(1)字母。小寫字母a~z共26個;大寫字母A~Z共26個。

(2)數(shù)字。0~9共10個。

(3)空白符。空格符、制表符、換行符等統(tǒng)稱為空白符??瞻追辉谧址A亢妥址A恐衅鹱饔谩T谄渌胤匠霈F(xiàn)時,只起間隔作用,編譯程序?qū)λ鼈兒雎圆挥?。因此在程序中使用空白符與否,對程序的編譯不發(fā)生影響,但在程序中適當?shù)牡胤绞褂每瞻追麑⒃黾映绦虻那逦院涂勺x性。

(4)標點和特殊字符。

2.C語言詞匯

在C語言中使用的詞匯分為六類:標識符、關(guān)鍵字、運算符、分隔符、常量和注釋符。

1)標識符。在程序中使用的變量名、函數(shù)名、標號等統(tǒng)稱為標識符。除庫函數(shù)的函數(shù)名由系統(tǒng)定義外,其余都由用戶自定義。C語言規(guī)定,標識符只能是字母(A~Z,a~z)、數(shù)字(0~9)、下劃線(_)組成的字符串,并且其第一個字符必須是字母或下劃線。以下標識符是合法的:

a,x,x3,BOOK_1,sum5

以下標識符是非法的:

3s 以數(shù)字開頭

s*T

出現(xiàn)非法字符*

-3x 以減號開頭

bowy-1

出現(xiàn)非法字符-(減號)

在使用標識符時還必須注意以下幾點:

①標準C語言不限制標識符的長度,但它受各種版本C語言編譯系統(tǒng)的限制,同時也受到具體機器的限制。例如,在某版本C語言編譯系統(tǒng)中規(guī)定標識符前8位有效,當兩個標識符前8位相同時,則被認為是同一個標識符。

②在標識符中,大小寫是有區(qū)別的。例如,BOOK和book是兩個不同的標識符。

③標識符雖然可由程序員隨意定義,但標識符是用于標識某個量的符號,因此,命名應盡量有相應的意義,以便于閱讀理解,做到“顧名思義”。

(2)關(guān)鍵字。關(guān)鍵字是由C語言規(guī)定的具有特定意義的字符串,通常也稱為保留字。用戶定義的標識符不應與關(guān)鍵字相同。C語言的關(guān)鍵字分為以下幾類:

①類型說明符,用于定義和說明變量、函數(shù)或其他數(shù)據(jù)結(jié)構(gòu)的類型,如前面例題中用到的int、double等。

②語句定義符,用于表示一個語句的功能,如例1-3中用到的while就是循環(huán)語句的語句定義符。

③預處理命令字,用于表示一個預處理命令,如前面各例中用到的include。

(3)運算符。C語言中含有相當豐富的運算符。運算符與變量、函數(shù)一起組成表達式,表示各種運算功能。運算符由一個或多個字符組成。

(4)分隔符。在C語言中采用的分隔符有逗號和空格兩種。逗號主要用在類型說明和函數(shù)參數(shù)表中,分隔各個變量??崭穸嘤糜谡Z句各單詞之間,作間隔符。在關(guān)鍵字、標識符之間必須要有一個以上的空格符作間隔,否則將會出現(xiàn)語法錯誤。例如,把inta寫成inta,C編譯器會把inta當成一個標識符處理,其結(jié)果必然出錯。

(5)常量。C語言中使用的常量可分為數(shù)字常量、字符常量、字符串常量、符號常量、轉(zhuǎn)義字符等多種。在后面章節(jié)中將專門給予介紹。

(6)注釋符。C語言的注釋符是以“/*”開頭并以“*/”結(jié)尾的串。在“/*”和“*/”之間的內(nèi)容即為注釋。編譯程序時,不對注釋作任何處理。注釋可出現(xiàn)在程序中的任何位置。注釋用來向用戶提示或解釋程序的意義。在調(diào)試程序中對暫不使用的語句也可用注釋符括起來,使翻譯跳過不作處理,待調(diào)試結(jié)束后再去掉注釋符。

任務五了解C語言中的基本運算

C語言的運算符可分為以下幾類。

(1)算術(shù)運算符:用于各類數(shù)值運算,包括加(+)、減(-)、乘(*)、除(/)、求余(或稱模運算,%)、自增(++)、自減(--)共七種。

(2)關(guān)系運算符:用于比較運算,包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六種。

(3)邏輯運算符:用于邏輯運算,包括與(&&)、或(||)、非(!)三種。

(4)位操作運算符:參與運算的量,按二進制位進行運算,包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。

(5)賦值運算符:用于賦值運算,分為簡單賦值(=)、復合算術(shù)賦值(+=,-=,*=,/=,%=)和復合位運算賦值(&=,|=,^=,>>=,<<=)三類共11種。

(6)條件運算符:這是一個三目運算符,用于條件求值(?:)。

(7)逗號運算符:用于把若干表達式組合成一個表達式(,)。

(8)指針運算符:用于取內(nèi)容(*)和取地址(&)兩種運算。

(9)求字節(jié)數(shù)運算符:用于計算數(shù)據(jù)類型所占的字節(jié)數(shù)(sizeof)。

(10)特殊運算符:有括號()、下標[]、成員(->,.)等幾種。

以上運算中,算術(shù)運算、關(guān)系運算、邏輯運算、賦值運算是最常用的四種運算,下面著重介紹這四種運算符。

1.算術(shù)運算

(1)加法運算符“+”:加法運算符為雙目運算符,即應有兩個量參與加法運算,如a+b、4+8等,具有左結(jié)合性。

(2)減法運算符“-”:減法運算符為雙目運算符,但“-”也可作為負值運算符,此時為單目運算,如-x、-5等,具有左結(jié)合性。

(3)乘法運算符“*”:雙目運算,具有左結(jié)合性。

(4)除法運算符“/”:雙目運算,具有左結(jié)合性。如果參與運算的量均為整型,結(jié)果也為整型,舍去小數(shù);如果運算量中有一個是實型,則結(jié)果為雙精度實型。

【例1-4】整數(shù)和浮點數(shù)的除法運算。

本例中,20/7和-20/7的結(jié)果均為整型,小數(shù)全部舍去;而20.0/7和-20.0/7由于有實型數(shù)字參與運算,因此結(jié)果也為實型。

(5)求余運算符(模運算符)“%”:雙目運算,具有左結(jié)合性。要求參與運算的量均為整型。求余運算的結(jié)果等于兩數(shù)相除后的余數(shù)。

【例1-5】求余運算。

2.關(guān)系運算

在程序中經(jīng)常需要比較兩個量的大小關(guān)系,以決定程序下一步的工作。比較兩個量的運算符稱為關(guān)系運算符。

在C語言中有以下關(guān)系運算符:

<小于

<=小于或等于

>大于

>=大于或等于

==等于

!=不等于

關(guān)系運算符都是雙目運算符,其結(jié)合性均為左結(jié)合。關(guān)系運算符的優(yōu)先級低于算術(shù)運算符,高于賦值運算符。在六個關(guān)系運算符中,<、<=、>、>=的優(yōu)先級相同,并高于==和!=,==和!=的優(yōu)先級相同。

關(guān)系運算的結(jié)果是“真”和“假”,用“1”和“0”表示。如:5>0的值為“真”,即為1。而對于(a=3)>(b=5),由于3>5不成立,故其值為假,即為0。

3.邏輯運算

C語言中提供了三種邏輯運算符:

&&與運算

||或運算

!非運算

邏輯運算的結(jié)果也為“真”和“假”兩種,用“1”和“0”來表示。其求值規(guī)則

如下:

(1)與運算&&:參與運算的兩個量都為真時,結(jié)果才為真,否則為假。例如,5>0&&4>2

由于5>0為真,4>2也為真,故其相與的結(jié)果也為真。

(2)或運算||:參與運算的兩個量只要有一個為真,結(jié)果就為真。兩個量都為假時,結(jié)果為假。例如,

5>0||5>8

由于5>0為真,因此上式相或的結(jié)果也就為真。

(3)非運算!:參與運算的量為真時,結(jié)果為假;參與運算的量為假時,結(jié)果為真。例如,

!(5>0)

的結(jié)果為假。

雖然C編譯在給出邏輯運算值時以“1”代表“真”,“0”代表“假”,但反過來,在判斷一個量是為“真”還是為“假”時,以“0”代表“假”,以非“0”的數(shù)值作為“真”。例如,

由于5和3均為非“0”,因此5&&3的值為“真”,即為1

又如,

5||0的值為“真”,即為1

4.賦值運算

賦值語句是由賦值表達式再加上分號構(gòu)成的表達式語句,其一般形式為

變量=表達式;

(1)注意在變量說明中給變量賦初值和賦值語句的區(qū)別。

給變量賦初值是變量說明的一部分,賦初值后的變量與其后的其他同類變量之間仍必須用逗號間隔,而賦值語句則必須用分號結(jié)尾。例如,

inta=5,b,c;

(2)在變量說明中,不允許連續(xù)給多個變量賦初值。例如,下述說明是錯誤的:

inta=b=c=5;

必須寫為

inta=5,b=5,c=5;

而賦值語句允許連續(xù)賦值。

(3)注意賦值表達式和賦值語句的區(qū)別。

賦值表達式是一種表達式,它可以出現(xiàn)在任何允許表達式出現(xiàn)的地方,而賦值語句則不能。

下述語句是合法的:

if((x=y+5)>0)z=x;

該語句的功能是,若表達式x=y+5大于0則z=x。

下述語句是非法的:

if((x=y+5;)>0)z=x;

因為x=y+5;是語句,不能出現(xiàn)在表達式中。

任務六C語言中的基本數(shù)據(jù)類型

在程序執(zhí)行過程中,其值不發(fā)生改變的量稱為常量,其值可變的量稱為變量。一個變量應該有一個名字,在內(nèi)存中占據(jù)一定的存儲單元,這就像杯子和飲料一樣,一個杯子里可以放不同的飲料,杯子可以看作存儲單元,不同的飲料即可視為變量的值。變量定義必須放在變量使用之前,一般放在函數(shù)體的開頭部分。要區(qū)分變量名和變量值是兩個不同的概念,如圖1.12所示。圖1.12變量名和變量值

1.整型數(shù)據(jù)

整型數(shù)據(jù)分為整型常量和整型變量。

1)整型常量

整型常量就是整常數(shù)。在C語言中使用的整常數(shù)有八進制、十六進制和十進制三種。

①十進制整常數(shù):十進制整常數(shù)沒有前綴。其數(shù)碼為0~9。

以下各數(shù)是合法的十進制整常數(shù):

123、-234、65535、1046;

以下各數(shù)不是合法的十進制整常數(shù):

1a23、213-4、65/35、1b4c。

在程序中是根據(jù)前綴來區(qū)分各種進制數(shù)的,因此在書寫常數(shù)時不要把前綴弄錯,以免造成結(jié)果不正確。

②八進制整常數(shù):八進制整常數(shù)必須以0開頭,即以0作為八進制數(shù)的前綴。數(shù)碼取值為0~7。八進制數(shù)通常是無符號數(shù)。

以下各數(shù)是合法的八進制數(shù):

015(十進制為13)、0101(十進制為65)、0177777(十進制為65535);

以下各數(shù)不是合法的八進制數(shù):

257(無前綴0)、03A5(包含了非八進制數(shù)碼)、-0126(出現(xiàn)了負號)、086(出現(xiàn)了非八進制數(shù)碼8)。

③十六進制整常數(shù):十六進制整常數(shù)的前綴為0X或0x。其數(shù)碼取值為0~9及A~F或a~f。

以下各數(shù)是合法的十六進制整常數(shù):

0X2A(十進制為42)、0XA0(十進制為160)、0XFFFF(十進制為65535);

以下各數(shù)不是合法的十六進制整常數(shù):

3A(無前綴0X)、0X5Y(含有非十六進制數(shù)碼)。

④整型常數(shù)的后綴。

在16位字長的機器上,基本整型常數(shù)的長度也為16位,因此表示的數(shù)的范圍也是有限定的。十進制無符號整常數(shù)的范圍為0~65535,有符號數(shù)為-32768~+32767。八進制無符號數(shù)的表示范圍為0~0177777。十六進制無符號數(shù)的表示范圍為0X0~0XFFFF或0x0~0xFFFF。如果使用的數(shù)超過了上述范圍,就必須用長整型數(shù)來表示。長整型數(shù)是用后綴“L”或“l(fā)”來表示的。

例如,

十進制長整常數(shù):

158L(十進制為158)、358000L(十進制為358000);

八進制長整常數(shù):

012L(十進制為10)、077L(十進制為63)、0200000L(十進制為65536);

十六進制長整常數(shù):

0X15L(十進制為21)、0XA5L(十進制為165)、0X10000L(十進制為65536)。

長整數(shù)158L和基本整常數(shù)158在數(shù)值上并無區(qū)別。但對于158L,因為是長整型量,C編譯系統(tǒng)將為它分配4個字節(jié)的存儲空間。而對158,因為是基本整型,只分配2個字節(jié)的存儲空間。因此在運算和輸出格式上要予以注意,避免出錯。

無符號數(shù)也可用后綴表示,整型常數(shù)的無符號數(shù)的后綴為“U”或“u”。例如,

358u,0x38Au,235Lu均為無符號數(shù)。

前綴、后綴可同時使用以表示各種類型的數(shù)。例如,0XA5Lu表示十六進制無符號長整數(shù)A5,其十進制為165。

2)整型變量

①整型變量的定義。變量定義的一般形式為

類型說明符變量名標識符,變量名標識符,…;

例如,

inta,b,c;(a,b,c為整型變量)

longx,y;(x,y為長整型變量)

unsignedp,q;(p,q為無符號整型變量)

在書寫變量定義時,應注意以下幾點。

·

允許在一個類型說明符后,定義多個相同類型的變量。各變量名之間用逗號間隔。類型說明符與變量名之間至少用一個空格間隔。

·

最后一個變量名之后必須以“;”結(jié)尾。

·

變量定義必須放在變量使用之前。一般放在函數(shù)體的開頭部分。

②類型。

·

基本型:類型說明符為int,在內(nèi)存中占2個字節(jié)。

·

短整型:類型說明符為shortint或short,所占字節(jié)和取值范圍均與基本型相同。

·

長整型:類型說明符為longint或long,在內(nèi)存中占4個字節(jié)。

3)無符號型

無符號型類型說明符為unsigned。

2.實型數(shù)據(jù)

實型也稱為浮點型。實型數(shù)據(jù)分為實型常量和實型變量。

1)實型常量

實型常量也稱為實數(shù)或者浮點數(shù)。在C語言中,實數(shù)只采用十進制。它有兩種形式:十進制小數(shù)形式和指數(shù)形式。

①十進制小數(shù)形式:由數(shù)碼0~9和小數(shù)點組成。例如,

0.0、25.0、5.789、0.13、5.0、300.、-267.8230

等均為合法的實數(shù)。注意,必須有小數(shù)點。

②指數(shù)形式:由十進制數(shù)加階碼標志“e”或“E”以及階碼(只能為整數(shù),可以帶符號)組成。其一般形式為

aEn(a為十進制數(shù),n為十進制整數(shù))

其值為a*10n。如:

2.1E5(等于2.1*105)

3.7E-2(等于3.7*10-2)

0.5E7(等于0.5*107)

-2.8E-2(等于-2.8*10-2)

以下不是合法的實數(shù):

345(無小數(shù)點)

E7(階碼標志E之前無數(shù)字)

-5(無階碼標志)

53.-E3(負號位置不對)

2.7E(無階碼)

標準C語言允許浮點數(shù)使用后綴。后綴為“f”或“F”,即表示該數(shù)為浮點數(shù),如356f和356是等價的。

2)實型變量

實型變量分為單精度(float型)、雙精度(double型)和長雙精度(longdouble型)三類。

在Dev-C++中,單精度型占4個字節(jié)(32位)內(nèi)存空間,其數(shù)值范圍為3.4E-38~3.4E+38,只能提供7位有效數(shù)字。雙精度型占8個字節(jié)(64位)內(nèi)存空間,其數(shù)值范圍為1.7E-308~1.7E+308,可提供16位有效數(shù)字,如表1.1所示。

實型變量定義的格式和書寫規(guī)則與整型相同。例如,

floatx,y;(x,y為單精度實型量)

doublea,b,c;(a,b,c為雙精度實型量)

3)實型數(shù)據(jù)的舍入誤差

由于實型變量是由有限的存儲單元組成的,因此能提供的有效數(shù)字總是有限的。如下例:

【例1-6】實型數(shù)據(jù)的舍入誤差。

①從本例可以看出,由于a是單精度浮點型,有效位數(shù)只有7位,故7位之后均為無效數(shù)字,即a的整數(shù)部分后4位8848為無效數(shù)據(jù)。

②同樣的,由于a的后4位是無效數(shù)據(jù),因此不能進行有效的運算,所以加上20得到的仍是無效數(shù)據(jù),因此b的整數(shù)部分后4位8848也是無效數(shù)據(jù)。

【例1-7】單精度和雙精度實型數(shù)據(jù)的有效數(shù)字。

①從本例可以看出,由于a是單精度浮點型,有效位數(shù)只有7位,而整數(shù)已占5位,故小數(shù)2位后均為無效數(shù)字,即a的后4位2031為無效數(shù)據(jù)。

②b是雙精度型,有效位為16位。但Dev-C++規(guī)定小數(shù)后最多保留6位,其余部分四舍五入,因此b只有6位小數(shù)。

③實型常數(shù)不分單、雙精度,都按雙精度double型處理。

3.字符型數(shù)據(jù)

字符型數(shù)據(jù)包括字符常量和字符變量。

字符數(shù)據(jù)的輸入/輸出除了標準輸入/輸出語句之外,還有兩個重要的庫函數(shù),即putchar()和getchar()。

1)

putchar函數(shù)(字符輸出函數(shù))

putchar函數(shù)是字符輸出函數(shù),其功能是在顯示器上輸出單個字符。其一般形式為

putchar(字符變量)

例如,

【例1-8】輸出單個字符。

運行結(jié)果如下:

BookBo

ok

2)

getchar函數(shù)(鍵盤輸入函數(shù))

getchar函數(shù)的功能是從鍵盤上輸入一個字符。其一般形式為

getchar();

通常把輸入的字符賦予一個字符變量,構(gòu)成賦值語句,例如,

charc;

c=getchar();

【例1-9】輸入單個字符。

使用getchar函數(shù)還應注意以下幾個問題:

①getchar函數(shù)只能接受單個字符,輸入數(shù)字也按字符處理。輸入多于一個字符時,只接收第一個字符。

②使用本函數(shù)前必須包含文件“stdio.h”。

③程序最后兩行可用下面兩行的任意一行代替:

putchar(getchar());

printf("%c",getchar());

任務七養(yǎng)成好的編程習慣——注釋

從書寫清晰,便于閱讀、理解、維護的角度出發(fā),在書寫程序時應遵循以下規(guī)則:①一個說明或一個語句占一行。②用{}括起來的部分,通常表示程序的某一層次結(jié)構(gòu)。{}一般與該結(jié)構(gòu)語句的第一個字母對齊,并單獨占一行。

③低一層次的語句或說明可比高一層次的語句或說明縮進若干格后書寫,以便看起來更加清晰,增加程序的可讀性。

④多加注釋。

在C語言源程序中,注釋可分為三種情況:第一種是在函數(shù)體內(nèi)對語句的注釋;第二種是在函數(shù)之前對函數(shù)本身的注釋;第三種是在源程序文件開始處,對整個程序的總體說明。

C語言注釋的符號為/*xxxx*/,其中/*和*/之間的內(nèi)容為注釋內(nèi)容。注意,/和*之間不能有間隔。

在編程時應力求遵循這些規(guī)則,以養(yǎng)成良好的編程風格。

思?考?與?練?習

一、選擇題

1.一個C程序的執(zhí)行是從()。

A.程序的main()函數(shù)開始,直到main()函數(shù)結(jié)束

B.程序的第一個函數(shù)開始,直到最后一個函數(shù)結(jié)束

C.程序的第一個語句開始,直到最后一個語句結(jié)束

D.程序的main()函數(shù)開始,直到最后一個函數(shù)結(jié)束

2.C語言源程序的基本單位是()。

A.過程 B.函數(shù)

C.子程序 D.標識符

3.對于C語言中字母大小寫的使用,以下敘述正確的是()。

A.C程序中所有字母都必須大寫

B.C程序中的關(guān)鍵字必須小寫,其他標識符不區(qū)分大小寫

C.C程序中所有關(guān)鍵字必須用小寫

D.C程序中所有字母都不區(qū)分大小寫

4.C語言中的標識符只能由英文字母、數(shù)字和下劃線3種字符組成,其中第一個字符()。

A.必須為英文字母

B.必須為下劃線

C.必須為英文字母或下劃線

D.可以為英文字母、數(shù)字和下劃線中任一種字符

5.下列選項中可以作為C語言用戶標識符的一組是()。

A.void,define,word B.

溫馨提示

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

評論

0/150

提交評論