版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第3章順序結構程序設計
結構化程序有3種基本結構。本章我們學習3種基本結構中的順序結構的程序設計。在開始學習程序設計之前,還需要先學習一些關于運算符和表達式方面的知識,再學習一些常用的、最基本的語句。本章是后續(xù)各章的基礎。
算術運算符和賦值運算符3.1賦值語句和注釋語句3.2輸入輸出語句3.3小結3.43.1算術運算符和賦值運算符
3.1.1算術運算符與算術表達式表3-1列出了C語言中算術運算符及其運算功能和運算規(guī)則。
上述運算符中模運算的運算對象(操作數)和運算結果是整型,其他運算符的運算對象和運算結果都是整型或實型的。用算術運算符將操作數連接起來組成的式子就是算術表達式。
加減運算符號與數學上符號和作用是一樣的,不需要多作說明。乘法運算符在C語言中是星號“*”,這與數學中的乘號是不同的。
模運算符“%”是計算兩個整數進行整除后的余數。運算結果的符號與被除數相同。模運算不能用于float和double數據類型。
對于除法運算,需要強調的是,兩個整型數相除時,結果為整數,小數部分丟失。
加1運算和減1運算是對變量進行算術運算的。變量可以是整型、字符型、指針型和數組元素。運算結果仍為原數據類型,并存回原運算對象(變量)。
在使用加1和減1運算符時,運算符可以放在運算對象的前面,稱為前綴,也可以放在運算對象的后面,稱為后綴。
當加1運算和減1運算出現在表達式中時,前綴和后綴的功能是不同的。
在前綴的情況下,其運算規(guī)則是:先對運算對象(變量)進行加1運算或減1運算;然后,使用加1或減1后的運算值參加表達式的運算。這個運算規(guī)則可簡稱為“先加1(或減1),后使用”。
在后綴的情況下,其運算規(guī)則是:先取運算對象(變量)的值參加表達式的運算,然后進行加1運算或減1運算并存入變量。這個運算規(guī)則可簡稱為“先使用,后加1(或減1)”。
算術運算符的優(yōu)先級和結合性如表3-1所示。
3.1.2賦值運算符與賦值表達式
C語言中的賦值運算符可分為兩類:賦值運算符和自反賦值運算符(或稱為復合賦值運算符)。詳見第2章表2-4。
賦值運算符為“=”。但它的意義不是數學中的相等的意思。賦值運算符號的作用是:將賦值運算符右邊表達式的值賦予賦值運算符左邊的變量。
用賦值運算符組成的表達式叫做賦值表達式。賦值表達式的一般形式為:變量=表達式
提醒初學者注意,下面的表達式是錯誤的賦值表達式:
(a+b)=x+55=x+y
因為賦值運算符的左邊不是變量。
任何表達式都是有值的,賦值表達式也不例外。賦值表達式的值等于賦值運算符左邊變量的值,也就是右邊表達式的值。執(zhí)行賦值運算時,如果運算符“=”右邊表達式值的數據類型與“=”左邊的變量的數據類型不同,則系統(tǒng)會自動將其轉換為左邊變量的數據類型。
賦值運算符的結合性是自右向左的。賦值運算符的優(yōu)先級低于算術運算。
3.1.3自反賦值運算符自反賦值運算符也稱為復合賦值運算符,它是在賦值運算符前加上某個其他運算符構成的運算符。自反賦值運算賦共有10個:與算術運算符有關的有5個,與位運算符有關的有5個。
與位運算符有關的自反賦值算術自反賦值運算符,它們是:
+=?=*=/=%=
上述運算符的運算可寫成如下的一般形式:變量OP=表達式并稱為自反賦值表達式,其中OP代表某個自反運算符。
自反賦值運算符的運算規(guī)則是:先計算“=”右邊的表達式的值,然后,將這個表達式的值與“=”左邊的變量進行OP規(guī)定的運算,最后將運算結果賦給“=”左邊的變量。
所有自反賦值運算符的運算優(yōu)先級是一樣的,與它們具體做何種運算沒有關系。自反賦值運算符的優(yōu)先級與賦值運算符相同。3.2賦值語句和注釋語句
3.2.1賦值語句計算機程序實質上是由語句的序列構成的,賦值語句是程序中使用頻率最高的語句之一,所以,要從學習賦值語句開始。
賦值語句主要用來完成數據的加工處理任務。賦值語句有如下兩種格式:變量=表達式;
變量OP=表達式;
所有C語句都是以分號結束的,因此,在賦值表達式后加上分號,即構成賦值語句。
對于第一種格式的賦值語句,其功能是:計算表達式的值,然后賦予變量。對于第二種格式的賦值語句,其功能是:將變量和表達式進行指定的運算后,將獲得的值賦予變量。
3.2.2注釋語句為了方便對源程序的閱讀和理解,C語言提供了一種注釋語句,專門用來對程序或某些語句做些文字說明。注釋語句只是為程序加的注解或說明文字,對程序的編譯和執(zhí)行不產生任何影響。
注釋語句的格式是:
/*注釋字符集合 */或
/*注釋字符集合注釋字符集合 */
注釋語句可以寫成一行,也可以寫成多行。但一定是以字符“/*”開始,以字符“*/”結束,沒有分號。注釋語句可以寫在程序的任何位置,程序的開頭或程序中間任何需要加注解的語句前后。3.3輸入輸出語句
數據的輸入和輸出是計算機程序中最常用的操作,原始數據需要輸入給程序,程序的運行結果需要輸出給用戶。
因此,輸入輸出操作幾乎是每個程序都需要的。輸入和輸出是相對于計算機而言的,輸入是指將數據從計算機的外部設備送入計算機內存;輸出是指將數據從計算機內存送到外部設備。
C語言沒有提供專門的輸入輸出語句,輸入輸出操作是由系統(tǒng)函數實現的。系統(tǒng)函數是系統(tǒng)事先編好的函數,用戶在程序中只要調用相應的函數就可以完成數據的輸入和輸出。
系統(tǒng)函數很多,也稱為系統(tǒng)庫函數。這些庫函數分別定義在擴展名為“h”的各個系統(tǒng)文件中,這些文件稱為頭文件。
要在程序中使用某個系統(tǒng)函數,用戶必須在程序的開頭寫出如下的包含命令:
#include"頭文件名.h"或
#include"<頭文件名.h>"
兩種不同形式的包含命令的區(qū)別將在以后介紹。
程序的開頭有了如上的包含命令后,用戶就可以通過函數調用語句來實現系統(tǒng)函數的功能。
調用函數的表達式的一般格式為:函數()
本節(jié)介紹4個用于輸入和輸出的系統(tǒng)庫函數,它們是:putchar(),getchar(),printf()和scanf()。
這些函數的定義包含在頭文件“stdio.h”中。如果編程時要使用上述的輸入輸出函數,應先將該頭文件,用包含命令寫在程序的開頭:
#include"stdio.h"
3.3.1字符輸出函數putchar()
字符輸出函數的調用格式為:
putchar(ch);其中的ch是一整型或字符型函數參數,它可以是變量,也可以是常量。
函數的功能,是將參數ch的值,按ASCII所對應的字符輸出到標準輸出設備(顯示器)當前光標位置。函數的返回值是對應ch的字符。
3.3.2字符輸入函數getchar()
字符輸入函數的調用格式為:
getchanr();
它的功能是從標準輸入設備(鍵盤)上接收一個字符。此函數沒有參數。它的返回值就是讀取的字符,因此,可以用一個整型或字符型變量來接收函數的返回值。
用戶從鍵盤輸入數據時,數據被送入內存中專門開辟的緩沖區(qū)。當程序執(zhí)行上面的輸入語句時,輸入函數從緩沖區(qū)讀區(qū)數據。當緩沖區(qū)空時,等待用戶輸入。用戶輸入數據并按“回車”鍵后,數據被送入緩沖區(qū)。
程序的第一行,是包含命令,它包含了為使用輸入輸出函數所需要的頭文件。程序只由一個函數組成,這個函數就是main()函數。函數體由若干語句組成。第一部分是兩個變量定義語句,接下來是兩個輸入語句,接收鍵盤的輸入。最后是4個輸出語句。
語句“putchar('\n');”是輸出一個回車換行,這里使用了轉義字符'\n'。使后面的輸出從下一行開始。
語句
putchar(getchar());
中字符輸出函數的參數是字符輸入函數,也就是以從鍵盤接收的字符作為字符輸出函數的參數。因此,此語句的作用是輸出接收到的字符。
3.3.3格式輸出函數printf()
格式輸出函數printf()的調用格式為:
printf(輸出格式字符串,輸出表達式列表);其中,輸出格式字符串是由函數定義的格式字符和非格式字符組成。
格式字符指明數據輸出的格式;非格式字符是用戶給定的,用于執(zhí)行輸出函數時,原樣輸出非格式字符。輸出表達式列表是函數輸出的數據,是用逗號分開的若干表達式。
格式輸出函數printf()的功能是,以自右向左的順序,依次計算輸出列表中各表達式的值,并按格式字符規(guī)定的輸出格式,將數據按輸出表達式列表自左到右的順序,輸出到標準設備(顯示器)上。
輸出格式字符串中的非格式字符,則按它在輸出格式字符串中的位置與數據一起順序輸出。
格式字符如表3-2所示。所有的格式字符都是以字符“%”開始,其中字符d,o,x,u,f,e,g,c,s是基本格式控制字符。其余格式字符是選用的。
在可選用的格式字符中:?表示數據輸出時是左對齊,省略時,為右對齊;m,n是正整數,m表示數據輸出的寬度,n表示小數點的位數。m和n省略時,數據按實際寬度輸出。對于字符串數據,n用來控制實際輸出字符數。
如果指定的寬度大于數據所需的最小寬度,則用空格來填充。如果給定的寬度小于數據的長度,則數據全部輸出。如果在數m前加一個數字0,則在數據的左邊空位上補0。
還要強調一點:輸出格式字符串所說明的數據個數、數據類型和順序,必須與輸出表達式列表中數據的個數、類型和順序相一致。
3.3.4格式輸入函數scanf()
格式輸入函數scanf()的一般格式為:
Scanf(輸入格式字符串,輸入變量地址表);
其中“輸入格式字符串”是由控制輸入格式的字符和非格式字符組成的字符串。輸入變量地址表是用逗號分開的一些接受輸入數據的變量地址。
函數的功能是接受從鍵盤按輸入格式字符串規(guī)定的格式輸入的若干數據,并按輸入變量地址表中變量地址的順序,依次存入對應的變量。
實際的輸入輸出過程都是通過內存的一個專門緩沖區(qū)實現的。以輸入來說,當從鍵盤輸入數據時,數據先進入緩沖區(qū)。讀取數據時,是按照輸入格式字符的規(guī)定從緩沖區(qū)讀取數據。
函數返回的是讀取數據的個數。輸入數據時,必須按照格式字符規(guī)定的格式輸入數據。非格式字符則要按原樣輸入,主要是作為輸入數據之間的間隔。變量的(存儲)地址,在C語言中,是用變量名前加一符號“&”來表示的。
輸入格式字符,與printf()函數類似,也是以“%”開頭,后跟一個字符組成,其間也可以插入一些附加字符。scanf()函數格式字符和附加字符如表3-3所示。
當一條輸入語句中全部數據輸入完畢后,可用“回車”鍵作為輸入的結束。用格式字符%mc讀取字符型數據時,輸入單個字符后應跟一回車,作為輸入數據的結束。小結
本章主要講述了算術運算符和賦值運算符,算術表達式和賦值表達式,注釋語句和賦值語句,4個輸入輸出函數構成的4個輸入輸出語句。在此基礎上我們學習了順序結構的程序設計。
(1)對于運算符,要求記住和正確運用這
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年湖南工藝美術職業(yè)學院單招綜合素質考試備考題庫帶答案解析
- 貨代公司安全培訓內容課件
- 急診護理質量控制與持續(xù)改進
- 2026年黑龍江民族職業(yè)學院單招綜合素質筆試備考題庫帶答案解析
- 急診開放性傷口沖洗專家共識總結2026
- 醫(yī)院文化建設與員工滿意度分析
- 醫(yī)院臨床影像科禮儀與診斷
- 檢驗科實驗室質量把控匯報
- 2026年廣西電力職業(yè)技術學院高職單招職業(yè)適應性考試備考題庫有答案解析
- 醫(yī)療物聯網技術在醫(yī)院物流中的應用
- 產品折扣管理辦法
- 預激綜合征麻醉管理要點
- 2025公需課《人工智能賦能制造業(yè)高質量發(fā)展》試題及答案
- 升降柱的施工方案
- 天津市和平區(qū)天津益中學校2021-2022學年七年級上學期期末數學試題【帶答案】
- TCALC 003-2023 手術室患者人文關懷管理規(guī)范
- 關鍵對話-如何高效能溝通
- 村級組織工作制度
- 安全文明施工措施費用支付計劃三篇
- 人教版九年級化學導學案全冊
- 國開電大商業(yè)銀行經營管理形考作業(yè)3參考答案
評論
0/150
提交評論