版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
C語言程序設計活頁式教程全套可編輯PPT課件
項目一創(chuàng)建C語言程序全套可編輯PPT課件
項目任務知識目標學習目標任務1初識C語言任務2創(chuàng)建HelloWorld程序(1)了解程序語言的發(fā)展歷程。(2)了解C語言的發(fā)展和特點。(3)了解應用程序的分類。(4)掌握C語言開發(fā)環(huán)境的搭建。(5)能夠創(chuàng)建最簡單的C語言程序,并編譯運行。本課件是可編輯的正常PPT課件任務準備任務實施任務描述任務1初識C語言任務描述本任務主要介紹程序語言的發(fā)展、C語言的發(fā)展和特點、各種類型的應用程序等,重點講解用C語言開發(fā)項目的過程,讓學生對C語言有一個全面的認識。本課件是可編輯的正常PPT課件任務準備任務實施Part
1Part
2Part
3任務描述任務準備1.程序語言的發(fā)展程序設計語言的發(fā)展經歷了以下幾個階段:(1)機器語言(2)匯編語言(3)高級語言高級語言的發(fā)展經歷了約三個階段:(1)非結構化的語言階段(2)結構化的語言階段(3)面向對象的語言階段本課件是可編輯的正常PPT課件任務準備2.C語言的發(fā)展和特點美國貝爾實驗室的丹尼斯·M·里奇在B語言的基礎上設計出了一種新的語言,取名為C語言,并試著以C語言編寫UNIX操作系統(tǒng)。1972年,丹尼斯·M·里奇完成了C語言的設計,并成功地利用C語言編寫出了操作系統(tǒng),從而降低了操作系統(tǒng)的修改難度。本課件是可編輯的正常PPT課件任務準備C語言具有如下特點:(1)語法簡單,使用方便、靈活。C語言有31個常用關鍵字,9種控制語句,程序書寫形式自由靈活。(2)數(shù)據(jù)類型豐富。C語言的數(shù)據(jù)類型有整型、實型、字符型、枚舉型和各種構造類型,還允許用戶自定義類型。利用這些數(shù)據(jù)類型可以實現(xiàn)復雜的數(shù)據(jù)結構。(3)運算符豐富。C語言共有44種運算符,運算類型極其豐富,表達式類型多樣。(4)語言處理能力強。由于C語言中引入了指針、地址、結構、位運算等功能,與匯編語言十分接近,大大提高了語言的處理能力。(5)生成的目標代碼質量高,運行效率高。(6)C語言程序可移植性好。C語言程序中,沒有直接依賴于硬件的語句。與硬件有關的操作,如數(shù)據(jù)的輸入、輸出都是通過調用系統(tǒng)提供的庫函數(shù)來實現(xiàn)的,而這些庫函數(shù)本身并不是C語言的組成部分。因此編寫的程序很容易由一個系統(tǒng)移植到另一個系統(tǒng)中。(7)C語言是一種結構化語言。用C語言開發(fā)軟件時,可以軟件功能進行模塊劃分,將大的功能模塊劃分成一些單一的功能模塊,再用函數(shù)實現(xiàn)模塊的功能。當然,C語言也有很多不足之處。例如,C語言對數(shù)據(jù)類型的檢查不嚴格,不檢查數(shù)組下標越界,運算符較多且優(yōu)先級與結合性難掌握等等。本課件是可編輯的正常PPT課件任務準備3.各種類型的應用程序(1)控制臺應用程序控制臺應用程序是為了兼容DOS程序而設立的,這種程序運行時會出現(xiàn)一個DOS窗口,沒有可視化的界面,只是通過字符串來顯示或者監(jiān)控程序。像Windows系統(tǒng)自帶的“ping.exe”、“shutdown.exe”、“ipconfig.exe”等文件都是控制臺應用程序,它們通常位于“C:\Windows\System32”路徑下。在Windows自帶的命令提示符中運行“ipconfig.exe”程序,會出現(xiàn)如圖1-1所示的界面。圖1-1程序ipconfig.exe的運行結果本課件是可編輯的正常PPT課件任務準備3.各種類型的應用程序(2)Windows應用程序Windows應用程序是Windows環(huán)境下的窗口程序,運行時一般會啟動一個窗口界面。界面呈矩形,界面是可以顯示一些信息,也可以有能與用戶交互的菜單、按鈕、文本框、圖表等。例如Windows自帶的計算器程序就是一個Windows應用程序,它的界面如圖1-2所示,用戶可以使用它進行復雜的數(shù)學運算。本書所使用的開發(fā)工具Dev-C++也是一個Windows應用程序,包括標題欄、菜單欄、工具欄、可編輯區(qū)域和狀態(tài)欄等,可以用來編寫、編譯和運行C程序。圖1-2計算器程序界面本課件是可編輯的正常PPT課件任務準備3.各種類型的應用程序(3)Web應用程序Web應用程序是一種可以通過瀏覽器訪問的軟件,而瀏覽器是用于瀏覽互聯(lián)網的應用程序。Web應用程序使用服務器端腳本和客戶端腳本的組合來呈現(xiàn)信息,通常需要身份驗證。此外,Web應用程序還需要服務器來管理來自用戶的請求。常見Web應用程序的示例包括在線表單、購物車、視頻流、社交媒體、游戲和電子郵件等。用于開發(fā)Web應用程序的語言或技術有ASP、PHP、HTML和JAVA等。圖1-4智慧校園登錄界面本課件是可編輯的正常PPT課件任務準備3.各種類型的應用程序(4)手機應用程序手機應用程序又稱手機APP,主要指安裝在智能手機上的軟件。手機APP拓展了手機的功能,為用戶提供更豐富的使用體驗。手機APP的運行需要有相應的手機系統(tǒng),市場常用的手機系統(tǒng)有蘋果公司的iOS、谷歌公司的Android系統(tǒng)、華為公司的鴻蒙系統(tǒng)等。以阿里巴巴集團旗下的手機APP淘寶為例,用戶可以在手機上通過淘寶APP購買心儀的商品,完成瀏覽商品、添加到購物車、下訂單、支付、物流查看、確認收貨、評價商品、退貨等行為,它的界面如1-6所示。圖1-6淘寶APP界面本課件是可編輯的正常PPT課件任務準備任務實施Part
1Part
2Part
3任務描述任務實施【任務1】如何用C語言開發(fā)一個軟件項目?1.任務分析C語言是一個被廣泛使用的、功能強大的編程語言,它主要應用于系統(tǒng)軟件編程、嵌入式系統(tǒng)開發(fā)和應用程序開發(fā)。在用C語言開發(fā)一個軟件項目時,必須有一套規(guī)范的開發(fā)流程,它能確保軟件項目的順利進行、高質量交付以及后續(xù)可行的維護。本任務將詳細介紹C語言項目的開發(fā)流程,包括需求分析、設計、編碼、測試和維護。本課件是可編輯的正常PPT課件任務實施【任務1】如何用C語言開發(fā)一個軟件項目?2.任務實現(xiàn)C語言采用結構化程序設計思想,它的基本原理是將程序劃分為多個模塊,每個模塊負責完成一個特定的任務,并通過適當?shù)目刂平Y構(分為順序、選擇和循環(huán)結構)將這些模塊組織起來。結構化程序設計強調程序的模塊化、可讀性和可維護性,使得程序更易于理解和修改。模塊一般指完成特定功能的一段代碼,它可以接受數(shù)據(jù)的輸入、處理數(shù)據(jù)、產生輸出。模塊化設計將程序劃分為多個模塊,每個模塊負責完成一個特定的功能,提高了程序的可讀性和可維護性。在C語言中,一個實現(xiàn)特定功能的模塊對應一個函數(shù)。模塊之間也可以相互調用,通過函數(shù)來實現(xiàn)。一個模塊可以調用其他模塊的函數(shù),以實現(xiàn)功能的組合和重用。可以根據(jù)功能、數(shù)據(jù)流、控制流等原則來劃分模塊。合理的模塊劃分可以提高程序的可讀性、可維護性和重用性。從軟件工程的角度,開發(fā)一個軟件項目一般要經過需求分析、設計、編碼、測試和維護這五個過程。本課件是可編輯的正常PPT課件任務實施【任務1】如何用C語言開發(fā)一個軟件項目?3.任務總結一個科學的開發(fā)流程是確保軟件項目成功的關鍵。通過明確的需求分析、詳盡的設計、規(guī)范的編碼、全面的測試和持續(xù)的維護,開發(fā)團隊可以創(chuàng)建高質量、可維護的C語言項目。不管在何種開發(fā)領域,良好的開發(fā)流程都是取得成功的關鍵。本課件是可編輯的正常PPT課件任務準備任務實施任務描述任務2創(chuàng)建HelloWorld程序任務描述本任務主要介紹C語言程序的開發(fā)過程和開發(fā)工具,重點講解C語言項目的創(chuàng)建、程序的結構等,讓學生能用Dev-cpp工具創(chuàng)建并運行最簡單的HelloWorld程序。本課件是可編輯的正常PPT課件任務準備任務實施Part
1Part
2Part
3任務描述任務準備1.C語言程序的開發(fā)過程用C語言開發(fā)程序一般會經歷編寫、編譯、鏈接和運行共四個階段。(1)編寫源程序(2)編譯(3)鏈接(4)運行本課件是可編輯的正常PPT課件任務準備2.C語言程序的開發(fā)工具可以用來開發(fā)C語言程序的工具有很多,如Turboc、Dev-Cpp、MicrosoftVisualC++等,開發(fā)人員使用這些工具可以方便地編寫、編譯、鏈接和運行C語言程序。本書使用Dev-cpp作為開發(fā)工具,所有項目的源代碼都在Dev-cpp中編譯通過。本課件是可編輯的正常PPT課件任務準備(1)Dev-cpp的下載和安裝下載文件“Dev-cpp5.4.0.zip”后解壓出來,文件目錄如圖1-7所示:第一次雙擊運行“devcpp.exe”程序,會彈出如圖1-8所示的對話框,用來對開發(fā)工具做初始配置。用戶可以設置開發(fā)工具的默認語言,然后點擊“Next”去到下一步。圖1-7Dev-cpp5.4.0文件目錄圖1-8設置工具默認的語言本課件是可編輯的正常PPT課件任務準備來到第二個對話框,選擇“Onlycachethesefilesandtheirincludes:”,默認將當前文件以及它所使用的頭文件緩存,然后點擊“Next”去到下一個對話框,點擊“OK”后結束配置。配置結束后會彈出“每日提示”對話框,一般會勾選“啟動時不顯示提示”,然后關閉對話框。對話框關閉后,默認顯示Dev-cpp的界面,如圖1-10所示。圖1-9緩存設置圖1-10Dev-cpp默認界面本課件是可編輯的正常PPT課件任務準備(2)在Dev-cpp中創(chuàng)建C語言項目用Dev-cpp開發(fā)軟件,一般從創(chuàng)建項目開始。一個C語言項目一般包含多個C語言文件,但只有一個文件中包含名為main的函數(shù),將該項目編譯后運行,程序將從main函數(shù)開始執(zhí)行。在開發(fā)工具Dev-cpp中依次選擇菜單“文件”→“新建”→“項目”,在彈出的對話框的Basic選項卡中,選擇代表控制臺程序類型的“ConsoleApplication”,勾選“C項目”,輸入項目名稱后確定,將所有項目文件保存在某個文件夾下。彈出的對話框如圖1-11所示。圖1-11創(chuàng)建C語言項目對話框本課件是可編輯的正常PPT課件任務準備C語言項目創(chuàng)建好后,會默認打開一個名為main.c的C語言文件,如圖1-12所示。開發(fā)人員需要將該文件保存到項目文件夾中,保存的同時還可以重命名該文件。
開發(fā)人員還可以在界面左側的項目名稱上右鍵,選擇“新建單元”來創(chuàng)建文件,并將文件保存為擴展名為.c的C語言文件。圖1-12項目默認打開界面本課件是可編輯的正常PPT課件任務準備(3)編譯運行C語言項目C語言項目必須編譯成功后能才運行。將main.c文件的源代碼修改成如下代碼,該代碼的功能是輸出1~10的十個整數(shù),并以逗號隔開。#include<stdio.h>intmain(intargc,char*argv[]){ inti; for(i=1;i<=10;i++) printf("%d,",i); return0;}本課件是可編輯的正常PPT課件任務準備將修改后的main.c文件保存后,可以通過菜單“運行”→“編譯”來編譯文件,也可以通過工具欄按鈕來編譯文件,生成目標文件main.o和可執(zhí)行文件Pro01.exe,其中main是C語言文件名,Pro01是項目名。項目經過編譯,項目中的C語言文件如果沒有詞法或語法錯誤,即編譯通過,則會彈出如圖1-13所示的對話框。編譯通過后,再通過菜單“運行”→“運行”或工具欄按鈕來運行程序,得到項目的運行結果如圖1-13所示。圖1-13編譯通過對話框圖1-14項目運行結果本課件是可編輯的正常PPT課件任務準備也可以將編譯、運行合并成一個步驟,如通過菜單“運行”→“編譯運行”或工具欄按鈕來同時編譯和運行程序。如果項目中某個C語言文件有詞法或語法錯誤,Dev-cpp就會在源代碼窗口顯示哪一行報錯,在底部窗口顯示錯誤信息,如“[Error]'x'undeclared”,編譯不通過的情況如圖1-15所示。開發(fā)人員可以根據(jù)錯誤信息來定位和修改源代碼。如果整個項目編譯通過,Dev-cpp就會彈出窗口顯示程序的運行結果。圖1-15編譯不通過本課件是可編輯的正常PPT課件任務準備3.C語言程序的結構以輸出1~10的十個整數(shù)的C語言代碼為例。#include<stdio.h>intmain(intargc,char*argv[]){ inti; for(i=1;i<=10;i++) /*從1循環(huán)到10*/ printf("%d,",i); /*輸出*/ return0;}一個簡單的C語言代碼由預編譯命令、函數(shù)、變量和常量、語句和表達式、注釋等組成。本課件是可編輯的正常PPT課件任務準備#include<>是一條預編譯命令,聲明該程序使用了頭文件stdio.h中的內容,因為程序中使用了標準庫函數(shù)printf(),而它就是在頭文件stdio.h中定義的。C程序由函數(shù)構成,函數(shù)是C程序的基本單位。整個C語言項目中有且只能有一個main()函數(shù)。main()函數(shù)也稱主函數(shù),不管它在程序文件中的哪個位置,C程序都從main()函數(shù)處開始執(zhí)行。用{}括起來的是main()函數(shù)的函數(shù)體,所有的語句都放在{}中,每條語句以分號結束。變量和常量用于記錄數(shù)據(jù),變量的值可以不斷修改,常量不能修改。上述代碼中的i就是一個變量,通過for循環(huán)來修改它的值,讓變量i的取值從1遞增到10。上述代碼中的“inti;”、“for(){…}”和“return0;”都是語句,它們以分號線束。而表達式是語句的一部分,如“i++”。注釋是一種編寫代碼時用來解釋程序的作用和用途的特殊語句,可以提高代碼的可讀性和可維護性,讓代碼更易于理解和修改。在C語言中,注釋有兩種基本類型,分別為單行注釋和多行注釋。單行注釋是一行以//開頭的注釋語句。在單行注釋中,從//開始到行末的所有內容都被視為注釋,不會被編譯器編譯。多行注釋是一對以/*和*/包圍的注釋語句,中間的內容都被視為注釋,不會被編譯器編譯。本課件是可編輯的正常PPT課件任務準備任務實施Part
1Part
2Part
3任務描述任務實施【任務1】創(chuàng)建HelloWorld程序。1.任務分析本任務將詳細介紹用Dev-cpp開發(fā)最簡單的HelloWorld程序的過程,包括項目創(chuàng)建、代碼編寫、項目編譯和運行。2.任務實現(xiàn)在開發(fā)工具Dev-cpp中依次選擇菜單“文件”→“新建”→“項目”,在彈出的對話框的Basic選項卡中,選擇代表控制臺程序類型的“ConsoleApplication”,勾選“C項目”,輸入項目名稱Pro02后確定,將所有項目文件保存在D:\Pro02文件夾下。在默認打開main.c文件中輸入如下代碼,并將文件保存在D:\Pro02文件夾下,保存時將文件名main.c修改成t01.c。#include<stdio.h>intmain(intargc,char*argv[]){ printf("HelloWorld"); return0;}本課件是可編輯的正常PPT課件任務實施點擊工具欄上的按鈕編譯文件t01.c,生成目標文件t01.o和可執(zhí)行文件Pro02.exe。編譯成功后,目錄D:\Pro02下的文件列表如圖1-16所示。編譯通過后,再通過菜單“運行”→“運行”或工具欄按鈕來運行程序,得到項目的運行結果如圖1-17所示。圖1-16編譯成功后的文件列表圖1-17程序運行結果本課件是可編輯的正常PPT課件任務實施3.任務總結一個C語言項目中可以有多個C語言文件,但只能有一個C語言文件中有main()函數(shù),運行項目時只會執(zhí)行main()函數(shù)中的代碼。在后續(xù)的項目中,為每一個任務創(chuàng)建一個C語言項目,將“任務準備”中的實例代碼、“任務實施”中的任務實現(xiàn)代碼都保存在該C語言項目中,每個實例和任務代碼中都有一個main()函數(shù)。由于C語言項目中有多個main()函數(shù)時無法編譯通過,為了C語言項目能編譯運行,必須確保項目中只有一個main()函數(shù)。因此,在編寫某個實例或任務的代碼時,會將其它C語言文件中的main()函數(shù)重命名為“mainsl01()”或“mainrw01()”等形式。本課件是可編輯的正常PPT課件謝謝!本課件是可編輯的正常PPT課件C語言程序設計活頁式教程項目二:存儲不同類型的數(shù)據(jù)項目任務知識目標學習目標任務1:用5個變量存儲學生信息任務2:用運算符統(tǒng)計成績任務3:輸入和輸出任務4:用結構體變量存儲學生信息任務5:認識指針、枚舉、共用體和空類型(1)了解信息在計算機內的存儲形式。(2)了解標識符的意義和命名規(guī)則。(3)掌握常見的數(shù)據(jù)類型。(4)掌握常量和變量的定義和使用。(5)能夠選擇合適的數(shù)據(jù)類型變量,來存儲相關數(shù)據(jù)。本課件是可編輯的正常PPT課件任務準備任務實施任務描述任務1用5個變量存儲學生信息任務描述本任務要求定義5個變量存儲學生的學號、姓名、性別、年齡、身高信息。要完成本任務,必須了解C語言中的變量、常量、數(shù)據(jù)類型等概念,因此,本任務將花大量篇幅講解標識符、變量、常量、數(shù)據(jù)類型、運算符等基礎知識,讓學生初步具備用C語言操作常見數(shù)據(jù)的能力。本課件是可編輯的正常PPT課件任務準備任務實施Part
1Part
2Part
3任務描述任務準備1.標識符標識符是指用來標識某個實體(如變量名、常量名、函數(shù)名、數(shù)組名、數(shù)據(jù)類型名等)的一個符號。標識符的命名規(guī)則如下:(1)標識符只能由英文字母、數(shù)字和下劃線組成,并且不能以數(shù)字開頭。(2)標識符是區(qū)分大小寫的,如XYZ與xyz、Xyz、xYZ是不同標識符。(3)自定義標識符不能使用系統(tǒng)的關鍵字。(4)標識符的長度是任意的,不同編譯器要求不同。(5)標識符命名應該做到“見名知意”,最好用英文字母命名,切忌用中文命名。書寫有大小寫混排(如getAge)、小寫加下劃線(如get_age)等風格。本課件是可編輯的正常PPT課件任務準備關鍵字又稱保留字,是指被C語言編譯器所預定義的、具有特殊含義的標識符。這些關鍵字不能用作變量名、函數(shù)名或其他標識符的名稱。下表是C語言中的全部32個關鍵字:autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile表2-1C語言的關鍵字本課件是可編輯的正常PPT課件任務準備2.數(shù)據(jù)類型C語言程序中的變量、常量、函數(shù)都需要指定數(shù)據(jù)類型。不同類型的數(shù)據(jù)在數(shù)據(jù)的存儲形式、取值范圍、占用內存大小及可參與的運算種類等方面都有所不同。C語言提供的數(shù)據(jù)類型分類如圖2-1所示,主要有四種數(shù)據(jù)類型:基本類型、構造類型、指針類型和空類型。本課件是可編輯的正常PPT課件任務準備基本類型是不可再分的數(shù)據(jù)類型,包括整型、浮點型、字符型?;绢愋偷某A炕蜃兞客ǔ4韱蝹€數(shù)據(jù)。構造類型是由已知的基本類型通過一定的構造方法構造出來的類型,包括數(shù)組類型、結構體類型、枚舉類型、共用體類型等。構造類型的常量或變量通常代表一批數(shù)據(jù)。指針類型實際上是地址類型,指針類型的數(shù)據(jù)就是內存中某個存儲單元的地址。指針類型用于構造更復雜的數(shù)據(jù)結構,如鏈表、樹等??疹愋痛頍o類型,意味著該數(shù)據(jù)類型不包含任何可用值。它通常用于表示不返回值的函數(shù)、不指向任何地址的指針變量以及一些特殊的應用場景。本課件是可編輯的正常PPT課件任務準備(1)字符型字符型數(shù)據(jù)描述單個字符,它的類型名是char。字符型常量是用一對單引號括起來的字符,如'a'、'A'、'+'、'$'、'?'、'\n'都是合法的字符常量。在C語言中,字符型數(shù)據(jù)有以下特點:①字符常量是用單引號括起來的單個字符或轉義字符,用雙引號括起來的零個或多個字符是字符串常量。②每個字符數(shù)據(jù)在內存中占用1個字節(jié),用于存儲它的ASCII碼值。③字符數(shù)據(jù)具有數(shù)值特征,可以像整數(shù)一樣參加運算,此時相當于對它的ASCII碼值進行運算。④字符'9'與整數(shù)9是不同的,字符'9'的ASCII碼值是57。'9'-9的值是48,'9'-'0'的值是9。⑤小寫字母的ASCII碼值比大寫字母的ASCII碼值大32,字符'a'的ASCII碼值是97,字符'A'的ASCII碼值是65,'a'-'A'的值是32,'z'-'a'的值是25。⑥轉義字符用于表示控制符(如回車、換行等)和不可見字符,以'\'開頭,后面跟一個字符或用八進制數(shù)、十六進制數(shù)表示的ASCII碼值。'\'的作用是改變后面的字符或ASCII碼值的原有意義,轉義為另外的含義。本課件是可編輯的正常PPT課件任務準備常用轉義字符及其含義如表2-2所示。字符含義字符含義'\n'換行'\a'響鈴報警'\r'回車(指來到行首位置)'\"'一個雙引號'\0'空字符,用作字符串結束標志'\''單引號'\t'水平制表符'\\'一個反斜杠'\v'垂直制表符'\?'問號'\b'退格'\f'走紙換頁'\ddd'1~3位八進制ASCII碼值所代表的字符'\xhh'1~2位十六進制ASCII碼值所代表的字符表2-2常見轉義字符本課件是可編輯的正常PPT課件任務準備(2)整型整型類型用于描述整數(shù)。在C語言中,整型又可分為短整型、整型、長整型、無符號短整型、無符號整型和無符號長整型六種,其中整型最常用。C語言標準沒有規(guī)定各類整型數(shù)據(jù)所占內存的字節(jié)數(shù),各種類型的數(shù)據(jù)所占內存的大小隨編譯系統(tǒng)的不同而有差異,可以使用sizeof運算符計算某種數(shù)據(jù)類型占用內存的大小。在devcpp環(huán)境下,各種整型的關鍵字、占用內存字節(jié)數(shù)和取值范圍如表2-3所示。整型常量即整數(shù),包括正整數(shù)、零和負整數(shù)。在C語言中,整型常量可以用十進制、八進制和十六進制數(shù)表示。十進制數(shù)由數(shù)字0~9和正負號組成,如255、-864等。十進制數(shù)的特點是“逢十進一”。八進制數(shù)以數(shù)字0為前綴,由數(shù)字0~7組成,如0173、045等。八進制數(shù)的特點是“逢八進一”。十六進制數(shù)以0X或0x為前綴,由數(shù)字0~9、A、B、C、D、E、F(字母大小寫均可,其中A~F分別代表10~15)組成,如0x45DE、0XA8C等。十六進制數(shù)的特點是“逢十六進一”。本課件是可編輯的正常PPT課件任務準備各種整型類型及其特點如表2-3所示。表2-3各種整型類型關鍵字類型占字節(jié)數(shù)取值范圍shortint短整型2-32768~32767(-215~215-1)int整型4-2147483648~2147483647(-231~231-1)long長整型4-2147483648~2147483647(-231~231-1)unsignedshort無符號短整型20~65535(0~216-1)unsignedint無符號整型40~4294967295(0~232-1)unsignedlong無符號長整型40~4294967295(0~232-1)本課件是可編輯的正常PPT課件任務準備(3)浮點型浮點型也稱為實型,是一種用于表示帶有小數(shù)部分數(shù)值的數(shù)據(jù)類型,它可以存儲非整數(shù)的數(shù)值,包括小數(shù)形式、指數(shù)形式的數(shù)值等。小數(shù)形式的浮點型數(shù)據(jù)由整數(shù)部分、小數(shù)點和小數(shù)部分組成,如12.345、-0.23等。指數(shù)形式的浮點型數(shù)據(jù)由尾數(shù)部分、字母e或E、指數(shù)部分組成,如5.79e-4、3.14E+5分別表示5.79×10-4、3.14×105。常見的浮點型數(shù)據(jù)類型有單精度浮點型(float)和雙精度浮點型(double)。單精度浮點型使用4個字節(jié)共32位存儲,可以表示約7位有效數(shù)字的數(shù)值,取值范圍是-3.4e-38~3.4e+38。雙精度浮點型使用8個字節(jié)共64位存儲,可以表示約16位有效數(shù)字的數(shù)值,取值范圍是-1.7e-308~1.7e+308。在C語言中,浮點型常量默認是double型,如果要使用float型常量,請在數(shù)值后面加字母f或F,如12.345f、-0.23F等。與整型表示一個準確的數(shù)值不同,浮點型數(shù)值在計算機上是近似表示的,單精度浮點型的近似程度比較低,而雙精度型的近似得度比較高。本課件是可編輯的正常PPT課件任務準備浮點型數(shù)據(jù)在計算機編程中廣泛應用于需要處理小數(shù)的場景,例如科學計算、金融計算、圖形處理等。由于浮點數(shù)的存儲方式和精度限制,它們可能存在一些精度損失和舍入誤差的問題。在進行浮點數(shù)計算時,需要注意避免由于精度問題導致的計算錯誤。單精度浮點型與雙精度浮點型的區(qū)別如表2-4所示。表2-4常見浮點型關鍵字類型占字節(jié)數(shù)取值范圍常量舉例float單精度浮點型4-3.4×10-38~3.4×103812.345f-1.7e4Fdouble雙精度浮點型8-1.7×10-308~1.7×1030812.3455.79e-4本課件是可編輯的正常PPT課件任務準備(4)數(shù)組類型數(shù)組類型是一種構造類型,數(shù)組是相同類型數(shù)據(jù)的有序集合,數(shù)據(jù)類型可以是整型、浮點型、字符型這樣的基礎類型,也可以是結構體、指針等復雜類型。數(shù)組中的每個數(shù)據(jù)我們稱之為“元素”,數(shù)組元素在內存中是連續(xù)存儲的。一維數(shù)組的定義形式為:
數(shù)據(jù)類型數(shù)組名[數(shù)組長度];在定義數(shù)組時給數(shù)組元素集體賦值,稱為數(shù)組的初始化。數(shù)組的初始化只能在定義數(shù)組時進行,之后只能給單個元素賦值。一維數(shù)組初始化的形式如下:
數(shù)據(jù)類型數(shù)組名[數(shù)組長度]={初值表};本課件是可編輯的正常PPT課件任務準備常見類型的數(shù)組定義和初始化如下:inta[10];intb[10]={0,1,2,3,4,5,6,7,8,9};doublec[6]={1.23,0.5,-4.3,5.55,3.14,6.3};charch1[5]={'a','b','c','d','e'};charch2[10]="abcde";/*直接用字符串常量給字符數(shù)組賦初值*/charch3[]="abcde";上述數(shù)組代碼中,int、double、char都是基礎類型,[]是數(shù)組的標志,a、b、c、ch1、ch2、ch3都是數(shù)組的名稱。數(shù)組a是能存儲10個整型數(shù)據(jù)的數(shù)組,但這10個整型數(shù)據(jù)是隨機值;數(shù)組b能存儲10個整型數(shù)據(jù),它們分別是0~9;數(shù)組c能存儲6個雙精度浮點型數(shù)據(jù),它們分別是1.23、0.5、-4.3、5.55、3.14、6.3;數(shù)組ch1能存儲5個字符,它們分別是a、b、c、d、e;數(shù)組ch2能存儲10個字符,它可以在定義時用字符串常量"abcde"賦初值,并自動在末尾添加'\0'作為字符串的結束標志,因此ch2還有4個元素沒有賦值;數(shù)組ch3沒有給出能存儲的字符個數(shù),它的存儲空間大小由初始值"abcde"來決定。一般用字符數(shù)組來存儲字符串,而且要求該字符數(shù)組的空間足夠大。本任務中學生的學號、姓名就是字符串,用字符數(shù)組來存儲。本課件是可編輯的正常PPT課件任務準備3.常量在C語言中有三種形式的常量,它們分別是直接常量、符號常量和const常量。(1)直接常量直接常量又分字符型常量、整型常量、浮點型常量和字符串常量。字符型常量是用單引號括起來的單個字符或轉義字符,可以是'a'、'A'、'+'、'$'、'?'、'\n'等。整型常量可以是十進制整數(shù)255、-864,也可以是八進制整數(shù)0173、045,還可以是十六進制整數(shù)0x45DE、0XA8C。浮點型常量可以是單精度浮點數(shù)12.345f、-0.23f、-1.7e4F,也可以是雙精度浮點數(shù)12.345、-3.14、5.79e-4。因為浮點數(shù)默認是雙精度浮點型,所以單精度浮點數(shù)后面要加f或F來區(qū)分。字符串常量是用雙引號括起來在的零個或多個字符,如""、"abcde"都是字符串常量,它們存儲在內存中時會自動在末尾添加'\0'作為結束標志。通常用字符數(shù)組來存儲字符串常量,因此,可以像訪問數(shù)組元素一樣訪問字符串中的每一個字符。需要注意的是,在C語言中只有字符串常量,沒有字符串變量。本課件是可編輯的正常PPT課件任務準備(2)符號常量符號常量也稱宏常量,是指用一個標識符代表一個常量,這時該標識符與常量等價。符號常量在使用之前必須先定義,一般形式為:#define標識符常量值其中,“#define”是C語言的一個預處理指令,“define”為宏定義命令,“標識符”為所定義的宏名,三個組成部分均用空格隔開。#define的作用類似于替換,用“標識符”替換“常量值”。例如:#definePRICE20#definePI3.14159#definePI23.14159;上述代碼中,符號常量PRICE的值是20,程序中該命令之后出現(xiàn)的所有標識符PRICE均用20代替。符號常量PI的值是“3.14159”,而符號常量PI2的值卻是“3.14159;”,因此,除非特殊需要,符號常量的值一般不出現(xiàn)分號。本課件是可編輯的正常PPT課件任務準備(3)const常量const是C語言的關鍵字,用const修飾的標識符為常量。const常量只能在定義時賦初值,在程序中只能讀取它的值,不能修改。const常量的定義形式為:
const數(shù)據(jù)類型常量名=常量值;例如:constdoublePI=3.14159;constintLEN=25;在之后的程序代碼中,無法修改常量PI和LEN的值,只能讀取。當程序中多次用到某個常量值,后續(xù)修改時需要修改很多處代碼,這時就可以考慮將該常量值定義成const常量或符號常量。const常量與#define定義的符號常量也有區(qū)別:const常量有數(shù)據(jù)類型,會對常量值的類型進行檢查,還可以對const常量進行調試;而符號常量只進行字符串替換,不進行類型檢查,且不能對符號常量進行調試。本課件是可編輯的正常PPT課件任務準備3.變量變量是指在程序運行期間其值可以發(fā)生變化的量。變量用于從外部接數(shù)據(jù)、保存一些不斷變化的值、保存中間結果及最終結果,而這些都無法用常量來實現(xiàn)。一個變量應該有一個名字即變量名,在內存中占據(jù)一定的存儲單元,在該存儲單元中存放變量的值。程序在編譯時由系統(tǒng)給變量分配一定的內存空間,程序中對變量進行處理時,實際上是通過變量名找到相應的內存空間,讀取或修改其中的數(shù)據(jù),也就是變量的值。在C語言中,變量必須遵循“先定義后使用”的原則,即每個變量在使用之前都要先定義,在定義時指明該變量的數(shù)據(jù)類型。變量定義語句有如下幾種形式:數(shù)據(jù)類型變量名;數(shù)據(jù)類型變量名=初始值;數(shù)據(jù)類型變量名1,變量名2,…,變量名n;數(shù)據(jù)類型變量名1,變量名2=初始值2,…,變量名n;定義單個變量時,要給出數(shù)據(jù)類型和變量名,中間用逗號隔開;在定義變量時可以賦初值,在變量名后面用等號連接初始值;多個同類型的變量可以一起定義,變量名中間用逗號隔開;多個同類型的變量一起定義時,也可以給部分變量名賦初值。本課件是可編輯的正常PPT課件任務準備【實例1】定義一個char變量、int變量、float變量、double變量和char數(shù)組并賦初值,然后輸出到屏幕。#include<stdio.h>intmain(){ charch1='\n',ch2='A'; intx=100; floatf=1.78F; doubled=3.14; charname[20]="zhangsan"; printf("ch1=%c,ch2=%c,x=%d,f=%f,d=%lf,name=%s",ch1,ch2,x,f,d,name); return1;}編譯運行結果如圖2-2所示:圖2-2實例1運行結果本課件是可編輯的正常PPT課件任務準備任務實施Part
1Part
2Part
3任務描述任務實施【任務1】用5個變量存儲學生信息:學號10001、姓名zhangsan、性別m或f、年齡19、身高1.75,然后輸出學生信息。1.任務分析本任務考查不同類型數(shù)據(jù)的存儲、變量的定義和輸出。學生的學號、姓名、性別、年齡和身高數(shù)據(jù),分別對應C語言中不同數(shù)據(jù)類型,因此本任務首先要確定學生信息所對應的類型。本課件是可編輯的正常PPT課件任務實施學生的學號、姓名的值是字符串常量,用字符數(shù)組存儲,并且要求字符數(shù)組的容量足夠大。初學者很容易將由數(shù)字組成的數(shù)據(jù)都歸為整數(shù)類型或浮點數(shù)類型,而實際上學號、身份證號、電話號碼、準考證號等都由數(shù)字組成,但它們并不代表大小,也不參與算術運算,這些數(shù)字只是組成一定意義的字符串。因此,在編程中常用字符數(shù)組來存儲表示學號、身份證號、電話號碼、準考證號的字符串常量。一些號碼如果用整型變量存儲會引起歧義甚至導致編譯錯誤,如果準考證號“0004321”被賦值給整型變量,它會被編譯系統(tǒng)認為是一個八進制整數(shù),與字符串“0004321”完全不同。學生的性別用char類型變量來存儲,值只能是字符“M”或“F”,分別表示Male(男性的)和Female(女性的)。在C語言中,char類型數(shù)據(jù)占1個字節(jié),而漢字“男”占2個字節(jié),因此性別的值不能是漢字“男”或“女”。但在Java語言中,char類型占2個字節(jié),可以存儲一個漢字。學生的年齡用int型變量存儲,身高用浮點型變量存儲,單精度或雙精度均可。本課件是可編輯的正常PPT課件任務實施2.任務實現(xiàn)本任務的實現(xiàn)代碼如下,請將代碼中定義變量的類型補充完整。#include<stdio.h>intmain(){
xh[20]="10001"; /*學號不超過20個字符*/
xm[50]="zhangsan"; /*姓名不超過50個字符*/
xb='m'; /*性別是一個字符,用單引號*/
nl=19; /*年齡*/
sg=1.75f; /*身高*/ printf("學號:%s,姓名:%s,性別:%c,年齡:%d,身高:%.2f\n",xh,xm,xb,nl,sg); return100;}編譯運行的結果如圖2-3所示:圖2-3輸出學生信息本課件是可編輯的正常PPT課件任務實施3.任務總結本任務要求學號不超過20個字符,姓名不起過50個字符。用庫函數(shù)printf()輸出時,格式字符串(即第1個參數(shù))中的%s、%s、%c、%d、%.2f分別對應字符數(shù)組xh、字符數(shù)組xm、字符變量xb、整型變量nl、單精度浮點型變量sg的值,其中%.2f表示輸出的浮點型數(shù)據(jù)精確到小數(shù)點后兩位。本課件是可編輯的正常PPT課件任務準備任務實施任務描述任務2:用運算符統(tǒng)計成績任務描述本任務要求用數(shù)組存儲某學生的語文、數(shù)學、英語、物理、化學課程的成績,統(tǒng)計五門課程的平均分,并判斷平均分是否及格。完成本任務需要定義數(shù)組,掌握下標運算符、算術運算符、強制轉換運算符、條件運算符的使用。因此,本任務將講解算術運算符、關系運算符、邏輯運算符、賦值運算符、位運算符、條件運算符、逗號運算符、指針運算符、求字節(jié)數(shù)運算符、強制類型轉換運算符、分量運算符、下標運算符的基礎知識,讓學生初步具備用使用運算符操作數(shù)據(jù)的能力。本課件是可編輯的正常PPT課件任務準備任務實施Part
1Part
2Part
3任務描述任務準備1.算術運算符算術運算符有+、-、*、/、%,它們分別對應數(shù)學運算的加、減(或取反)、乘、除、取余,其中“-”即是減法運算符(雙目),也是取反運算符(單目)。兩個整數(shù)進行算術運算的結果仍是整數(shù),例如7+3得10,7-3得4,7*3得21,7/3得2,7%3得1。用算術運算符將操作數(shù)連接起來的式子,稱為算術表達式。在C語言中兩個整數(shù)相除的結果仍然是整數(shù),沒有小數(shù)部分。只有將某個操作數(shù)先變成小數(shù)再參與除法運算,才能得到小數(shù)的結果。因此,欲得到7/3的小數(shù)結果,可以采用7.0/3、1.0*7/3或(double)7/3運算,其中(double)7是將整數(shù)7強制轉換成雙精度浮點數(shù)7.0。參與取余運算(%)的兩個操作數(shù)必須是整數(shù),運算的結果是整除后所得的余數(shù)。例如7%3的結果是1,12%7的結果是5。本課件是可編輯的正常PPT課件任務準備各算術運算符中,-(取反)的優(yōu)先級最高,其次是*、/、%,最后是+、-(減法)。在同優(yōu)先級的算術運算符中,運算順序是從左向右。詳細說明如表2-5所示。表2-5算術運算符的優(yōu)先級和結合性運算符類型優(yōu)先級結合性備注-單目高
低從右向左計算取反*/%雙目從左向右計算乘除取余+-雙目從左向右計算加減本課件是可編輯的正常PPT課件任務準備【實例1】給定一個圓的半徑,求出該圓的面積,然后輸出到屏幕。#include<stdio.h>#definePI3.14159intmain(){ doubler=5,s; s=PI*r*r; printf("半徑為%lf的圓面積是:%lf\n",r,s); return1;}編譯運行結果如圖2-4所示:圖2-4求圓的面積本課件是可編輯的正常PPT課件任務準備2.關系運算符C語言提供了<、<=、>、>=、==、!=共6種關系運算符,它們分別對應小于、小于等于、大于、大于等于、等于、不等于共6種關系。用關系運算符將操作數(shù)連接起來的式子,稱為關系表達式。例如a>b、m==0、x!=5、y<=10等都是關系表達式,它們大多用作判斷條件。關系表達式的結果是“真”或“假”,代表條件成立或不成立。在C語言中,用0表示“假”,用1表示“真”,任何非零值都能夠被系統(tǒng)解釋為“真”。關系表達式大多用在if語句、for語句和while語句中,例如:if(x>0){……} /*如果x>0成立,則執(zhí)行{}中的代碼*/for(i=0;i<10;i++){……} /*重復執(zhí)行{}中代碼的條件是i<10成立*/while(i<10){……} /*重復執(zhí)行{}中代碼的條件是i<10成立*/本課件是可編輯的正常PPT課件任務準備3.邏輯運算符邏輯運算也稱布爾運算,C語言提供了&&、||、!三種邏輯運算符,它們分別是邏輯與、邏輯或、邏輯非。用邏輯運算符將操作數(shù)連接起來的式子,稱為邏輯表達式。邏輯與運算連接兩個條件表達式,表達“并且”的含義。當兩個條件表達式都成立時,邏輯與表達式的結果為真(即成立);只要有一個條件表達式不成立,邏輯與表達式的結果為假(即不成立)。例如,數(shù)學式子0<x<100對應的邏輯表達式是:(x>0)&&(x<100)由于>、<運算符的優(yōu)先級比&&運算符高,因此該邏輯表達式也可以寫成這樣:x>0&&x<100又如,判斷字符變量ch的值是不是小寫字母的邏輯表達式是:ch>='a'&&ch<='z'本課件是可編輯的正常PPT課件任務準備邏輯或運算連接兩個條件表達式,表達“或者”的含義。只要有一個條件表達式成立,邏輯或表達式的結果為真(即成立);當兩個條件表達式都不成立時,邏輯或表達式的結果為假(即不成立)。例如,表達x<0或者y>100的邏輯表達式是: x<0||y>100又如,判斷字符變量ch的值是不是字母(包含大寫字母和小寫字母)的邏輯表達式是: (ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')上述式子表達的是“ch是小寫字母或者ch是大寫字母”,因此||運算符兩側的小括號不能省略。再如判斷某一年year是否是閏年,必須滿足下列兩個條件之一:①年份能被4整除,但不能被100整除。②年份能被400整除。由于==、!=運算符的優(yōu)先級比&&、||運算符高,因此證明year是閏年的邏輯表達式可以寫成: (year%4==0&&year%100!=0)||year%400==0本課件是可編輯的正常PPT課件任務準備邏輯非運算是單目運算符,只需要一個操作數(shù)。所有單目運算符的優(yōu)先級都比其他運算符的優(yōu)先級高,因此,運算符!的優(yōu)先級最高,其次是&&,再次是||。例如,假設整型變量x=5,則!x得到0;假設整型變量y=0,則!y得到1。即對非零值進行邏輯非運算會得到0,對0進行邏輯非運算會得到1。邏輯非表達式常用在if語句中作條件,如if(!x)表達的是“如果x等于0”,與if(x==0)是同樣的意思;而if(x)表達的是“如果x不等于0”,與if(x!=0)是同樣的意思。本課件是可編輯的正常PPT課件任務準備4.賦值運算符賦值運算是指將一個數(shù)據(jù)賦給一個變量,賦值運算符用“=”表示。賦值運算的操作是有方向性的,它將等號右側表達式的值賦給左側的變量,等號左側不允許是表達式。由賦值運算符和操作數(shù)組成的表達式稱為賦值表達式,其一般形式為:變量名=表達式;例如,x=25是將常量25賦值給變量x;y=y+1是將變量y的值加1后,再賦值給變量y;而x+y=z則是錯誤的賦值表達式,因為等號左側不能是x+y這樣的表達式。由于賦值運算符比算術、關系、邏輯等運算符的優(yōu)先級都要低,所以賦值表達式會先執(zhí)行等號右側的運算,再將運算結果賦值給等號左側的變量。因此,x=y=z=a+25也是正確的賦值表達式的寫法。但在C語言中,“=”代表賦值,“==”代表比較是否相等,使用時要注意區(qū)分。本課件是可編輯的正常PPT課件任務準備C語言中還有一種特殊形式的賦值運算符,稱為復合賦值運算符。常見的復合賦值運算符有+=、-=、*=、/=和%=,它們表示將左側變量的值與右側表達式的值進行相應的運算后,再賦值給左側的變量。例如,x+=5表示x=x+5;y/=a+3表示y=y/(a+3)。此外,增1運算符++和減1運算符--也暗含賦值操作。例如,x++和++x等價于賦值表達式x=x+1,x--和--x等價于賦值表達式x=x-1。但++x表示先將x加1,再進行其它操作,如y=++x表示先執(zhí)行x=x+1,再執(zhí)行y=x。而x++表示先執(zhí)行其它操作,再將x加1,如y=x++表示先執(zhí)行y=x,再執(zhí)行x=x+1。減1運算也是同樣的流程。本課件是可編輯的正常PPT課件假設有int型變量x的值為3,對它分別執(zhí)行增1運算和減1運算后賦值給int型變量y,x與y之間的關系如表2-6所示。關于增1和減1運算符,有些教材上會出現(xiàn)一些令人費解的寫法,如y=-x++、y=a+++b等。建議初學者不要寫類似的代碼,可以考慮將y=-x++寫成:y=-x;x++; /*或者x=x+1*/可以將y=a+++b寫成:y=a+b;a++;任務準備語句等價的語句執(zhí)行語句后的y值執(zhí)行語句后的x值y=x++;y=x;x=x+1;34y=++x;x=x+1;y=x;44y=x--;y=x;x=x-1;32y=--x;x=x-1;y=x;22表2-6增1和減1運算本課件是可編輯的正常PPT課件任務準備5.位運算符位運算是一種對二進制數(shù)進行操作的運算方法。C語言提供了豐富的位運算符號,可用于對二進制數(shù)進行各種運算。位運算只能用于整型變量和字符型變量,不能用于浮點型變量。C語言提供了六個位運算符號,分別是按位取反~、按位與&、按位或|、按位異或^、左移位<<、右移位>>。按位取反運算符“~”是單目運算符,其功能是對操作數(shù)的每個二進制位取反,即1變?yōu)?,0變?yōu)?。按位與運算符“&”是雙目運算符,其功能是參與運算的兩數(shù)各對應的二進制位相與。對應的兩個二進制位只要有一個為0時,結果位就會為0;只有對應的兩個二進制位都為1時,結果位才為1。參與運算的兩個數(shù)均以補碼出現(xiàn)。按位或運算符“|”是雙目運算符,其功能是參與運算的兩數(shù)各對應的二進制位相或。只要對應的兩個二進制位有一個為1時,結果位就為1,其它情況結果位為0。當參與運算的是負數(shù)時,參與兩個數(shù)均以補碼出現(xiàn)。本課件是可編輯的正常PPT課件任務準備按位異或運算符“^”是雙目運算符,其功能是將參與運算的兩數(shù)各對應的二進制位相異或。只要對應的兩個二進制位不同,結果位就為1,相同則結果位為0。當參與運算的是負數(shù)時,參與兩個數(shù)均以補碼出現(xiàn)。按位左移運算符“<<”是雙目運算符,其功能將一個運算對象的各二進制位全部左移若干位,左邊的二進制位丟棄,右邊補0。每左移一位,相當于該數(shù)乘以2。例如,x<<n表示把x的每一位向左平移n位,右邊空位補0。按位右移運算符“>>”是雙目運算符,其功能將一個運算對象的各二進制位全部右移若干位,右邊的二進制位丟棄,正數(shù)左邊空位補0,負數(shù)左邊空位補1。每右移一位,相當于該數(shù)除以2。例如,x>>n表示把x的每一位向右平移n位,正數(shù)左邊補0,負數(shù)左邊補1。本課件是可編輯的正常PPT課件任務準備【實例2】給定兩個char類型的數(shù)據(jù),對它們進行六種位運算并輸出結果。intmain(){ unsignedchara=60; /*二進制:00111100*/ unsignedcharb=9; /*二進制:00001001*/ unsignedcharc=~a; /*二進制:11000011*/ unsignedchard=a<<1; /*二進制:01111000*/ unsignedchare=a>>1; /*二進制:00011110*/ unsignedcharf=a&b; /*二進制:00001000*/ unsignedcharg=a|b; /*二進制:00111101*/ unsignedcharh=a^b; /*二進制:00110101*/ printf("60按位取反:%d\n",c); printf("60左移1位:%d\n",d); printf("60右移1位:%d\n",e);圖2-5各種位運算的結果 printf("60與9按位與:%d\n",f); printf("60與9按位或:%d\n",g); printf("60與9按位異或:%d\n",h); return1;}本課件是可編輯的正常PPT課件任務準備6.條件運算符條件運算符是C語言中唯一的一個三目運算符,它用?和:將三個操作數(shù)分開。條件運算符的語法格式為:
表達式1?表達式2:表達式3表達式1為關系表達式,結果為真或假。如果表達式1為真,則返回表達式2的值,否則返回表達式3的值。在條件運算符中,表達式2和表達式3必須是同種數(shù)據(jù)類型,否則編譯器將會自動進行類型轉換。條件運算符通常用在賦值語句中,可以根據(jù)條件進行不同的賦值操作。條件運算符經常作為if語句的簡捷形式來使用。例如,求兩個整數(shù)中的最大值,可以使用以下代碼:intx=32;inty=17;intz=(x>y)?x:y;如果x大于y,條件表達式“(x>y)?x:y”返回x的值,否則返回y的值。不管x與y的是怎樣的大小關系,該條件表達式都返回它們中的最大值。本課件是可編輯的正常PPT課件任務準備7.逗號運算符逗號運算符是指逗號“,”,它將多個表達式連接起來構成逗號表達式,它的作用是實現(xiàn)對各個表達式的順序求值。逗號表達式的一般形式為:
表達式1,表達式2,…,表達式n逗號表達式先從左到右依次計算每個表達式的值,并把最后一個表達式的值作為整個逗號表達式的值。例如逗號表達式“x=2,y=3,z=x+y”,先計算x=2的值,再計算y=3的值,最后計算z=x+y的值,結果為5,則整個逗號表達式的值為5。再如表達式“y=(x=2,3*x)”中,括號內的“x=2,3*x”就是一個逗號表達式,它先計算x=2的值,再計算3*x的值,得結果6,最后將6賦值給變量y。逗號表達式還用于for語句,用于同時對多個循環(huán)變量賦初值和修改多個循環(huán)變量。例如“for(i=0,j=10;i<j;i++,j--){}”中的“i=0,j=10”和“i++,j--”就是逗號表達式。但定義多個同類型變量的語句“intx,y,z”就不是逗號表達式。本課件是可編輯的正常PPT課件任務準備8.指針運算符指針就是地址,在C語言中有兩個關于指針的運算符:取地址運算符&和指針運算符*。&是取地址運算符,&x即是變量x在內存中的實際地址。*是指針運算符,它返回其操作數(shù)(即一個指針)所指向的對象的值,*tp即是地址變量tp所指向的存儲單元中的數(shù)值。本課件是可編輯的正常PPT課件任務準備9.求字節(jié)數(shù)運算符sizeof是C語言的一種單目運算符,它返回操作數(shù)所占內存的字節(jié)數(shù)。操作數(shù)可以是一個常量、變量、類型名、數(shù)組名等,操作數(shù)的存儲大小由操作數(shù)的類型決定。例如,如果x是int型變量,則sizeof(x)和sizeof(int)都返回4;sizeof(3.14)返回double類型數(shù)據(jù)所占的字節(jié)數(shù)8;如果有數(shù)組inta[10],則sizeof(a)返回40,因為數(shù)組a占據(jù)10個int型數(shù)據(jù)的空間。sizeof運算符多用在申請內存空間時,計算存儲某類型數(shù)據(jù)所需要的字節(jié)數(shù)。本課件是可編輯的正常PPT課件任務準備10.強制類型轉換運算符類型轉換是指將一種數(shù)據(jù)類型的值轉換為另一種數(shù)據(jù)類型的過程。在C語言中,不同類型的數(shù)據(jù)在一起運算時,要先將這些數(shù)據(jù)轉換成相同的類型,再進行運算。通常類型轉換發(fā)生在字符型、整型和浮點型之間,分自動類型轉換和強制類型轉換。將不同類型的數(shù)據(jù)一起運算時,編譯系統(tǒng)會自動進行類型轉換,會把占用內存空間少的類型向占用空間多的類型轉換,以保證運算結果的精度。當不同類型的數(shù)據(jù)在一起運算時,自動轉換的規(guī)則為:①float型數(shù)據(jù)自動轉換成double型;②char與short型數(shù)據(jù)自動轉換成int型;③int型數(shù)據(jù)自動轉換成double型;④int型數(shù)據(jù)自動轉換成unsigned型;⑤int型數(shù)據(jù)自動轉換成long型。本課件是可編輯的正常PPT課件任務準備強制類型轉換是將某種類型的數(shù)據(jù)強制轉換成指定的數(shù)據(jù)類型,強制類型轉換表達式的一般形式為:
(類型名)(表達式)強制類型轉換運算符形如“(類型名)”,其后跟一個表達式,作用是將該表達式的結果轉換成指定的數(shù)據(jù)類型。當表達式是一個變量或常量時,表達式不需要加小括號。將整型數(shù)據(jù)強制轉換為浮點型,數(shù)據(jù)的大小不變。如“(double)5”將得到double型數(shù)據(jù)5.000000,原先占4個字節(jié)的整數(shù)5變成了占8個字節(jié)的雙精度浮點型數(shù)5.000000。因此,當想讓兩個整數(shù)相除后得到小數(shù)結果時,可以考慮將其中一個整數(shù)強制轉換成浮點型,如“(double)5/3”或“5/(double)3”都能得出結果為1.666667。將浮點型數(shù)據(jù)強制轉換為整型,會損失數(shù)據(jù)的精度。如“(int)3.14”將得到int型數(shù)據(jù)3,原先占8個字節(jié)的雙精度浮點型數(shù)3.14變成了占4個字節(jié)的整型數(shù)3。C語言還提供了幾個類型轉換的庫函數(shù),如函數(shù)atof()的功能是把字符串轉換成浮點數(shù),函數(shù)atoi()的功能是把字符串轉換成整型數(shù),函數(shù)atol()的功能是把字符串轉換成長整型數(shù),函數(shù)gcvt()的功能是把浮點數(shù)轉換成字符串,函數(shù)strtod()的功能是把字符串轉換為double型值,函數(shù)strtol()的功能是把字符串轉換為長整型數(shù)。本課件是可編輯的正常PPT課件任務準備11.分量運算符分量運算符包括“.”和“->”,它們用于訪問結構體變量中的成員。引用結構體變量的成員用“.”運算符,引用結構體指針的成員用“->”運算符。假如一個指針變量p指向結構體變量,則“結構體變量.成員名”、“(*p).成員名”、“p->成員名”這三種訪問形式是等價的。關于結構體類型將在后續(xù)章節(jié)講解。本課件是可編輯的正常PPT課件任務準備12.下標運算符下標運算符由一對中括號[]組成,它有兩個操作數(shù),一個是數(shù)組名,另一個是下標。它與數(shù)組名和下標一起使用,作用是獲取數(shù)組的某個元素。下標運算符的語法格式如下:數(shù)組名[下標]下標是數(shù)組元素的編號,在C語言中下標是從0開始計數(shù)的。例如,用“inta[10]”定義一個能存儲10個整數(shù)的數(shù)組,它的10個元素的下標是0~9,這10個元素分別是a[0]、a[1]、a[2]、a[3]、a[4]、a[5]、a[6]、a[7]、a[8]、a[9]。可以通過“a[i]”形式讀取或修改下標為i的元素的值。本課件是可編輯的正常PPT課件任務準備13.運算符優(yōu)先級和結合性只有掌握了運算符的優(yōu)先級和結合性,才能正確地使用運算符。當一個表達式中出現(xiàn)不同類型的運算符時,先對優(yōu)先級高的運算符進行運算,再對優(yōu)先級低的運算符進行運算。當幾個運算符的優(yōu)先級相同時,則根據(jù)運算符的結合性確定運算順序。運算符的結合性規(guī)定了運算時的結合方向:左結合和右結合。左結合規(guī)定從左向右計算,右結合規(guī)定從右向左計算。本課件是可編輯的正常PPT課件任務準備表2-7運算符的優(yōu)先級和結合性優(yōu)先級運算符含義運算類型結合方向1()[]->.圓括號數(shù)組下標指向結構體成員引用結構體成員初等運算符自左向右2!~-++--*&(類型名)sizeof邏輯非按位取反求負自增自減取指針內容取地址強制類型轉換長度運算單目運算符從右向左優(yōu)先級運算符含義運算類型結合方向3*/%相乘相除取余算術運算符自左向右4+-相加相減5<<
>>
左移右移位運算符6>
<
>=<=大于小于大于等于小于等于關系運算符7==!=等于不等于8&按位與位運算符9^按位異或10|按位或11&&邏輯與邏輯運算符12||邏輯或13?:條件運算三目運算符自右向左14=+=-=*=/=%=&=^=|=>>=<<=賦值運算復合賦值運算賦值運算符15,逗號運算逗號運算符從左到右本課件是可編輯的正常PPT課件任務準備任務實施Part
1Part
2Part
3任務描述任務實施【任務1】用數(shù)組存儲某學生的語文、數(shù)學、英語、物理、化學課程的成績(整數(shù)),統(tǒng)計這五門課程的平均分,并判斷平均分是否及格。1.任務分析本任務考查數(shù)組的定義和初始化,以及下標運算符、算術運算符、強制轉換運算符、條件運算符的使用。任務要求五門課程的成績必須是整數(shù),所以可以用整型數(shù)組存儲。這五門課程的平均分可能是小數(shù),所以可以用浮點型變量存儲,單精度和雙精度均可。求五門課的總成績,要用下標運算符訪問每一個數(shù)組元素,用算術運算符將五個成績相加。由于兩個整數(shù)相除只能得到整數(shù)結果,所以需要先將總成績強制轉換成小數(shù),再除以5,才能得到保留小數(shù)部分的平均分。最后在條件運算表達式中比較平均分與60的大小,判斷平均分是否及格。本課件是可編輯的正常PPT課件任務實施2.任務實現(xiàn)本任務的實現(xiàn)代碼如下,請將代碼中空白處補充完整。#include<stdio.h>intmain(){ /*語文數(shù)學英語物理化學*/ intcj[5]={75,48,92,78,80}; /*定義數(shù)組并初始化*/ intzf; doublepjf; zf=
; /*求總分*/ pjf=
; /*求平均分*/ printf("平均分:%.2lf\n",pjf); printf("%s\n",
?"及格":"不及格");/*條件表達式*/ return0;}編譯運行的結果如圖2-6:圖2-6求平均分本課件是可編輯的正常PPT課件任務實施3.任務總結第二個輸出語句中的條件表達式的結果是"及格"或"不及格",是字符串常量,因此用printf()函數(shù)輸出該結果時用“%s”格式。本課件是可編輯的正常PPT課件任務準備任務實施任務描述任務3輸入和輸出任務描述本任務要求輸入學生的學號、姓名、性別、年齡、身高,用5個變量存儲,然后輸出學生信息。要完成本任務,必須熟練掌握輸入函數(shù)scanf()和輸出函數(shù)printf()的用法。因此,本任務將講解C語言常見的輸入輸出函數(shù)的用法,讓學生具備輸入和輸出常見數(shù)據(jù)的能力。本任務主要涉及字符串型、字符型、整型、浮點型數(shù)據(jù)的輸入、存儲和輸出。本課件是可編輯的正常PPT課件任務準備任務實施Part
1Part
2Part
3任務描述任務準備1.getchar()和putchar()函數(shù)getchar()函數(shù)用于從鍵盤緩沖區(qū)讀取一個字符并返回該字符,它沒有參數(shù),一般將返回的字符存入字符變量或輸出。輸入內容以回車鍵作為結束標志。putchar()函數(shù)用于將參數(shù)中的字符數(shù)據(jù)輸出到屏幕。它們在頭文件stdio.h中定義,常見用法如下:charch=getchar();putchar(ch);本課件是可編輯的正常PPT課件任務準備【實例1】輸入兩個字符并存儲,再輸出這兩個字符。#include<stdio.h>intmain(){ charch1,ch2; printf("請輸入兩個字符:");/*原樣輸出字符串內容*/ ch1=getchar(); /*讀取輸入的一個字符*/ ch2=getchar(); printf("它們是:"); putchar(ch1); /*輸出一個字符*/ printf("%c",ch2); /*putchar(ch2);*/ return1;}編譯運行結果如圖2-7所示:圖2-7字符的輸入和輸出本課件是可編輯的正常PPT課件任務準備實例代碼中,putchar(ch)與printf("%c",ch)的功能相同,都能輸出一個字符。用戶的輸入以回車鍵表示結束,getchar()會依次讀取輸入內容中的一個字符。當需要讀取兩個輸入字符時,可以連續(xù)輸入兩個字符再回車,如輸入“AD”后回車,字符A和D就會分別被兩個getchar()函數(shù)讀取到。如果輸入“A”后回車,再輸入“D”后回車,則不會得到想要的結果,因為第一個getchar()函數(shù)會讀取到字符A,第二個getchar()函數(shù)會把第一個回車符當作字符讀入,而不是字符D。因此,在連續(xù)輸入多個數(shù)據(jù)時,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年核工業(yè)301大隊職工醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 2024年05月新疆2024屆中國民生銀行烏魯木齊分行暑期校園招考筆試歷年參考題庫附帶答案詳解
- 《礦山安全培訓講義》課件
- 2024年木里縣人民醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 2025年華東師大版九年級生物下冊階段測試試卷
- 2025年滬科版高二物理下冊階段測試試卷含答案
- 2024年人民版七年級地理上冊月考試卷含答案
- 2024年魯教版七年級科學下冊月考試卷
- 2025年蘇教版九年級科學下冊月考試卷
- 石油化工招投標代理協(xié)議范本
- 湖南省岳陽市2023-2024學年高一上學期1月期末質量監(jiān)測試題+物理 含答案
- 圓柱的表面積課件
- 2024年高等教育法學類自考-00226知識產權法考試近5年真題附答案
- 金匱要略2022-2023-2學期學習通超星期末考試答案章節(jié)答案2024年
- DB31-T 1502-2024 工貿行業(yè)有限空間作業(yè)安全管理規(guī)范
- 2025屆成都市青羊區(qū)數(shù)學六上期末檢測試題含解析
- 【課件】Unit+5+Fun+Clubs-+Section+B+(1a-2b)課件人教版(2024)七年級英語上冊++
- 蘇軾向南(2023年四川廣元中考語文試卷散文閱讀題及答案)
- 2024-2030年中國大棚果蔬種植產業(yè)經營管理策略與投資前景展望報告
- 2025年日歷A4紙打印
- 儲能投資方案計劃書
評論
0/150
提交評論