C語言程序設計 課件全套 原莉 0開篇、1創建第一個C程序-10利用文件完善項目_第1頁
C語言程序設計 課件全套 原莉 0開篇、1創建第一個C程序-10利用文件完善項目_第2頁
C語言程序設計 課件全套 原莉 0開篇、1創建第一個C程序-10利用文件完善項目_第3頁
C語言程序設計 課件全套 原莉 0開篇、1創建第一個C程序-10利用文件完善項目_第4頁
C語言程序設計 課件全套 原莉 0開篇、1創建第一個C程序-10利用文件完善項目_第5頁
已閱讀5頁,還剩822頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

C語言程序設計創建第一個C語言程序項目1“學生成績管理系統”中相關數據設計及簡單處理項目2項目中學生成績的等級判定項目3項目中的設計數據處理及封面與菜單的初步項目4學生成績的分組匯總程序項目5利用數組完善項目中數據的處理項目6利用函數進行項目的整體框架設計項目7利用結構體實現項目項目8利用指針優化項目項目9利用文件完善項目項目10開篇--學生成績管理系統開篇--學生成績管理系統

實現在線測試系統主頁面的布局和美化某班級需要一個學生成績管理系統,該系統應具有學生成績的添加、刪除、查詢、修改、插入和排序等處理功能,提供數字按鍵菜單操作方式,如圖0-1所示。任務描述實現在線測試系統主頁面的布局和美化某班級需要一個學生成績管理系統,該系統應具有學生成績的添加、刪除、查詢、修改、插入和排序等處理功能,提供數字按鍵菜單操作方式,如圖0-1所示。開篇--學生成績管理系統

實現在線測試系統主頁面的布局和美化某班級需要一個學生成績管理系統,該系統應具有學生成績的添加、刪除、查詢、修改、插入和排序等處理功能,提供數字按鍵菜單操作方式,如圖0-1所示。任務分析實現根據上面的問題描述,可以得出該學生系統要實現的功能,有以下幾方面:1.錄入學生成績信息。2.實現刪除功能,即輸入學號,刪除相應的記錄。3.實現查找功能,即輸入學號,查詢該學生的相應信息。4.實現修改功能,即輸入學號,修改相應的記錄信息。5.指定位置插入學生的成績信息,即將新的記錄插入到指定位置。6.實現學生的排名,即按照選定的關鍵字段進行排序。7.數據統計,按用戶指定條件進行統計。測試系統主頁面的布局和美化某班級需要一個學生成績管理系統,該系統應具有學生成績的添加、刪除、查詢、修改、插入和排序等處理功能,提供數字按鍵菜單操作方式,如圖0-1所示。開篇--學生成績管理系統

實現在線測試系統主頁面的布局和美化某班級需要一個學生成績管理系統,該系統應具有學生成績的添加、刪除、查詢、修改、插入和排序等處理功能,提供數字按鍵菜單操作方式,如圖0-1所示。任務分析學生成績管理系統錄入數據查詢記錄修改記錄插入記錄刪除記錄成績排序數據統計瀏覽記錄開篇--學生成績管理系統

實現在線測試系統主頁面的布局和美化某班級需要一個學生成績管理系統,該系統應具有學生成績的添加、刪除、查詢、修改、插入和排序等處理功能,提供數字按鍵菜單操作方式,如圖0-1所示。實施方案本案例貫穿整個教材,由系統的初步設計、開發、優化到系統的最后完善。方案設計如下:1.項目1-項目6,各項目設計獨立的案例,重點是學習、掌握C語言程序設計的語法規則。2.項目7,按照模塊化程序設計方法,完成系統的整體結構和系統界面的設計。3.項目8,進行數據結構設計及主要功能函數的實現,從而學習結構體相關內容。4.項目9,利用指針優化各功能模塊。5.項目10,利用文件實現系統的數據存取,完善整個系統。知識儲備要完成學生成績管理系統的開發,必須學完正本教材全部內容,熟悉C語言的語法規則和三大基本結構,掌握C語言程序設計的基本技能和結構化程序設計方法。謝謝多一點努力,多一點實踐,多一點點就能創造奇跡!C語言程序設計創建第一個C語言程序項目1“學生成績管理系統”中相關數據設計及簡單處理項目2項目中學生成績的等級判定項目3項目中的設計數據處理及封面與菜單的初步項目4學生成績的分組匯總程序項目5利用數組完善項目中數據的處理項目6利用函數進行項目的整體框架設計項目7利用結構體實現項目項目8利用指針優化項目項目9利用文件完善項目項目10項目1創建第一個C語言程序目標TARGET知識目標能夠使用了解C語言的產生、發展和特點掌握C程序的實現過程和結構熟悉VisualC++6.0開發環境理解程序設計的思想、方法以及算法了解軟件編程的規范目標TARGET技能目標熟悉VisualC++6.0環境能夠在VisualC++6.0下運行、調試C程序認識C程序任務1.1創建及運行第一個C程序任務1.2運用算法描述問題任務1.3任務1.1認識C程序

任務描述認識第一個C程序,其運行結果是在計算機屏幕上輸出一行文本信息(項目名稱)“學生成績管理系統”。任務分析這是一個簡單的C語言程序,只需要一條格式輸出語句即可實現上述功能。算法設計輸出文本“學生成績管理系統”,可以使用格式輸出函數實現。任務1.1認識C程序

實現在線測試系統主頁面的布局和美化某班級需要一個學生成績管理系統,該系統應具有學生成績的添加、刪除、查詢、修改、插入和排序等處理功能,提供數字按鍵菜單操作方式,如圖0-1所示。程序代碼#include"stdio.h"/*編譯預處理命令*/voidmain(){ printf("學生成績管理系統\n");

/*在屏幕上輸出學生成績管理系統*/}/*main()主函數結束*/執行結果1認識C語言及C程序Part◎C語言的特點◎C程序的實現過程◎C程序的結構◎C語言的產生和發展C語言的產生和發展

1972年美國貝爾實驗室DennisRitchie和BrainKernighan首先推出1983年美國貝爾實驗室DennisRitchie和BrainKernighan改進推出(TheCProgramingLanguage)1983年美國國家標準協會ANSI,制定標準C(ANSIC)20世紀80年代中期美國貝爾實驗室B.Stroustrup博士C++微軟MSC++\VisualC++,BorlandTurboC++\C++Builder面向過程面向對象C語言的特點

簡潔緊湊、靈活方便.語言功能豐富。C是結構式語言。C語言允許直接訪問物理地址,可以直接對硬件進行操作。因此既具有高級語言的功能,又具有低級語言的許多功能。C語言程序生成代碼質量高,程序執行效率高。C語言具備良好的可移植性。C程序的實現過程

源程序文件(*.C)可執行文件(*.exe)結果目標文件(*.obj)編輯

編譯鏈接運行C程序的實現過程

1.編輯。可以用任何一種編輯軟件將在紙上編寫好的C語言程序輸入計算機,并將C語言源程序文件*.c以純文本文件形式保存在計算機的磁盤上(不能設置字體、字號等)。2.編譯。編譯過程使用C語言編譯程序將編輯好的源程序文件“*.c”,翻譯成二進制目標代碼文件“*.obj”。編譯程序對源程序逐句檢查語法錯誤發現錯誤后,不僅會顯示錯誤的位置(行號),還會告知錯誤類型信息。我們需要再次回到編輯軟件修改源程序的錯誤,然后,再進行編譯,直至排除所有語法和語義錯誤。C程序的實現過程

3.鏈接。程序編譯后產生的目標文件是可重定位的程序模塊,不能直接運行。鏈接將編譯生成的各個目標程序模塊和系統或第三方提供的庫函數“*.lib”鏈接在一起,生成可以脫離開發環境、直接在操作系統下運行的可執行文件“*.exe”。4.運行程序。如果經過測試,運行可執行文件達到預期設計目的,這個C語言程序的開發工作便到此完成了。如果運行出錯,這說明程序處理的邏輯存在問題,需要再次回到編輯環境針對程序出現的邏輯錯誤進一步檢查、修改源程序,重復編輯→編譯→鏈接→運行的過程,直到取得預期結果為止。C程序的結構

#include"stdio.h"/*編譯預處理命令*/voidmain(){intiScore1,iScore2,iScore3;/*定義整型變量iScore1、iScore1、iScore1*/floatfAverage;/*定義單精度浮點型變量fAverage*/iScore1=86;/*給變量iScore1賦值86*/iScore2=79;/*給變量iScore2賦值79*/iScore3=92;/*給變量iScore3賦值92*/fAverage=(iScore1+iScore2+iScore3)/3.0;/*計算平均成績*/printf("Theaverageis%f\n",fAverage);/*輸出平均成績*/}例1-1班級一學習小組有三名同學,C語言程序設計這門課程的成績分別為86、79、92,計算他們的平均成績,并輸出。說明:(1)#include是編譯預處理命令,放在源程序的最前面,編譯預處理命令后面不加分號。(2)main()為主函數,其中main是函數的名字,“()”里是函數的參數,此處為空。void是一種數據類型,空類型。函數是由函數頭和函數體組成的。函數頭包括函數的返回至類型、函數名和函數參數,函數體是由一對“{}”括起來的用于完成某種功能的語句的集合。函數一般包括變量定義語句部分和執行語句部分。(3)程序的變量在使用前需要先進行定義,在同一個函數中變量定義語句放在執行語句的前面。“intiScore1,iScore2,iScore3;”和“floatfAverage;”都是變量定義語句。說明:(4)從“iScore1=86;”語句開始,下面的全部是執行語句部分,其中“iScore1=86;”、“iScore2=79;”、“iScore3=92;”這三條語句都是賦值語句,即分別將整數86、79、92給整型變量iScore1、iScore2和iScore3。(5)“fAverage=(iScore1+iScore2+iScore3)/3.0;”這條語句的作用是將變量iScore1、iScore2和iScore3的值相加,然后除以3,得到的結果賦值給單精度浮點型變量fAverage。(6)“printf("Theaverageis%f",fAverage);”是調用庫函數printf(),輸出相應文本及fAverage的值。(7)“/*……*/”括起來的注釋部分,用來對程序進行說明,向用戶提示或解釋程序的意義。程序編譯時,計算機不會對注釋做任何處理,注釋可以出現在程序的任何位置,它的出現不會對程序的執行有任何影響。注意:(1)在C程序中,每一條語句的最后都有一個分號“;”,表示一條語句的結束。(2)C程序中是區分大小寫的。(3)程序中的許多符號如逗號“,”、分號“;”、雙引號“""”都是英文狀態下的符號,輸入應格外注意。任務1.2創建及運行第一個C程序

任務描述在VisualC++6.0環境下,創建及運行第一個C程序,計算機屏幕上輸出一行文本信息(項目名稱)“學生成績管理系統”。任務分析熟悉VisualC++6.0環境,能夠正確編輯、鏈接、運行C程序。算法設計與程序代碼算法與程序代碼參考任務1-1。2C程序的開發環境Part◎在VisualC++6.0集成開發環境下運行C程序◎C程序的開發環境C程序的開發環境

C語言的運行環境很多,有MicrosoftVisualC++、MicrosoftVisualStudio、DEVC++、BorlandC++、BorlandC++Builder、GNUDJGPPC++、HighC、TurboC、C-Free和Win-TC等等,每一種運行環境都有自身的特點,讀者可以根據自己的特點酌情選用。這里我們主要介紹MicrosoftVisualC++6.0。VisualC++6.0是微軟推出的一款編譯器,是一個功能強大的可視化軟件開發工具,它將程序代碼的編輯、編譯、連接和調試等功能集于一體。C程序的開發環境單擊【開始】按鈕,在打開的【開始】菜單中選擇【所有程序】,單擊【MicrosoftVisualStudio6.0】,選擇【MicrosoftVisualC++6.0】,或者雙擊桌面上的MicrosoftVisualC++6.0圖標,啟動VisualC++6.0,進入MicrosoftVisualC++6.0集成開發環境,如圖1-3所示。在VisualC++6.0集成開發環境下運行C程序

1.創建工程(1)選擇菜單中的【文件】命令,打開菜單,單擊菜單項【新建】,打開【新建】對話框,如圖1-4所示。在VisualC++6.0集成開發環境下運行C程序

1.創建工程(2)選擇菜單中的【文件】命令,打開菜單,單擊菜單項【新建】,打開【新建】對話框,如圖在【新建】對話框中,選擇【工程】選項卡,在左側列表中選擇“Win32ConsoleApplication”類型,VisualC++6.0將創建一個控制臺應用程序。在右側【工程名稱】文本框中輸入工程名稱,如“MyAve”,單擊【位置】文本框右側的小按鈕,在彈出的對話框中選擇存儲位置,如“D:\MYC”,如圖1-5所示。在VisualC++6.0集成開發環境下運行C程序

1.創建工程(3)單擊【確定】按鈕,彈出【Win32ConsoleApplication-步驟】對話框,選擇默認單選項【一個空工程】,即創建一個空的工程,不包含任何的源文件,如圖1-6所示。在VisualC++6.0集成開發環境下運行C程序2.創建文件(1)單擊【確定】按鈕,彈出【Win32ConsoleApplication-步驟】對話框,選擇默認單選項【一個空工程】,即創建一個空的工程,不包含任何的源文件,如圖選擇菜單中的【文件】命令,打開菜單,單擊菜單項【新建】,打開【新建】對話框,如圖1-7所示。在VisualC++6.0集成開發環境下運行C程序2.創建文件(2)單擊【確定】按鈕,彈出【Win32ConsoleApplication-步驟】對話框,選擇默認單選項【一個空工程】,即創建一個空的工程,不包含任何的源文件,如圖(2)在【新建】對話框中,選擇【文件】選項卡,在左側列表中選擇“C++SourceFile”類型,在右側【文件】文本框中輸入文件名稱,如“LT1-1.c”,這里文件名必須以.c結尾,因為C程序源程序的擴展名為.c,如圖1-5所示,其他選項默認即可。其中默認將該文件添加到剛剛所建的工程MyAve中,位置是“D:\MYC\LT1-1.c”,如圖1-7所示。菜單中的【文件】命令,打開菜單,單擊菜單項【新建】,打開【新建】對話框,如圖1-7所示。在VisualC++6.0集成開發環境下運行C程序2.創建文件(3)單擊【確定】按鈕,則回到VisualC++6.0界面,同時打開代碼編輯窗口。打開【工作空間】窗口,在其下方選擇【FileView】選項卡,可以看到在SourceFiles文件夾中多了一個文件LT1-1.c,如圖1-8所示。在VisualC++6.0集成開發環境下運行C程序3.編輯C程序源文件在打開的代碼編輯窗口例1-1的程序代碼,如圖1-9所示。在VisualC++6.0集成開發環境下運行C程序4.編譯選擇菜單中的【組建】命令,打開菜單,單擊菜單項【編譯】,對C源程序進行編譯,同時在VisualC++6.0下部輸出窗口中顯示調試信息,如圖1-10所示。如果程序存在語法錯誤,那么讀者需要根據輸出窗口中的錯誤提示,返回代碼編輯窗口修改程序,然后再次進行編譯,直到提示無錯誤為止,如圖1-9所示。在VisualC++6.0集成開發環境下運行C程序5.鏈接選擇菜單中的【組建】命令,打開菜單,單擊菜單項【組建】,在VisualC++6.0下部輸出窗口中顯示調試信息,與編譯過程類似。如果程序存在錯誤,那么讀者需要根據輸出窗口中的錯誤提示,返回代碼編輯窗口修改程序,然后再次進行編譯、連接,直到提示無錯誤為止。在VisualC++6.0集成開發環境下運行C程序6.運行選擇菜單中的【組建】命令,打開菜單,單擊菜單項【!執行LT1-1.exe】,可以看到屏幕中彈出一DOS輸出窗口,如圖1-11所示。注意:在VisualC++6.0環境下,編譯、鏈接和運行不僅可以用菜單命令進行操作還可以使用快捷鍵進行操作,編譯、鏈接和運行分別對應的快捷鍵是Ctrl+F7、F7和Ctrl+F5。也可以使用命令按鈕進行操作,對應的命令按鈕分別是、、。任務1.3運用算法描述問題

任務描述班級一學習小組有三名同學,C語言程序設計這門課程的成績分別為86、79、92,計算他們的平均成績,并輸出。請利用流程圖描述法給出其算法。任務分析用流程圖或者NS流程圖圖描述算法。任務1.3運用算法描述問題

算法設計3程序算法基礎Part◎程序設計語言◎程序◎程序設計方法◎程序設計的一般步驟◎算法◎軟件編程規范程序

程序是程序設計中最為基本的概念,由有限的指令序列構成,它的作用是告訴計算機當前的處理對象與處理步驟,使計算機完成相應的任務。VisualC++6.0是微軟推出的一款編譯器,是一個功能強大的可視化軟件開發工具,它將程序代碼的編輯、編譯、連接和調試等功能集于這里的處理對象即數據,包括數據的類型、數據的組織形式和數據之間的相互關系,可以被稱為“數據結構”;而處理步驟指的是“操作”,也就是算法。換言之算法和數據結構是程序的兩個重要方面。因此,著名的科學家沃思(NiklausWirth)提出過一個經典的公式:

算法+數據結構=程序程序設計語言程序設計語言是建立在一定語法規則之上、用于向計算機傳遞程序設計人員思想的一批特殊符號的集合。它能夠使程序設計人員準確地定義計算機所需要使用的數據,并精確地定義在不同情況下所應當采取的行動。自20世紀60年代以來,世界上公布的程序設計語言已有上千種之多,但是只有很小一部分得到了廣泛的應用。從發展歷程來看,程序設計語言可以分為機器語言、匯編語言、高級語言、非過程化語言4代。C語言就是高級語言中的代表之一。程序設計方法

1.程序設計程序設計(Programming)是人們借助程序設計語言,將某一任務的處理對象、處理方法及處理步驟轉化為計算機能夠處理的符號序列(語句、命令、指令),以及指揮計算機完成相應任務的過程。它是軟件構造活動中的重要組成部分。程序設計方法

2.結構化程序設計方法結構化程序設計思想源于20世紀60年代,是至今仍被廣泛應用的一種計算機軟件開發技術。所謂的結構化程序設計方法指的是“按照一組能夠提高程序易讀性和易維護性的規則進行程序設計的方法”。其要點如下:原則:(1)程序的質量標準是“清晰第一,效率第二”。(2)遵循自頂向下、逐步求精、模塊化設計的原則。自頂向下:指從問題的全局下手,把一個復雜的任務分解成許多易于控制和處理的子任務,子任務還可能做進一步分解,如此重復,直到每個子任務都容易解決為止。逐步求精:指在將抽象問題分解成若干個相對獨立的小問題時,要逐級地由抽象到具體、又粗到細、由表及里進行細化,直到將問題細化到可以用程序的3種結構來實現為止。模塊化:指解決一個復雜問題是自頂向下逐層把軟件系統劃分成一個個較小的、相對獨立但又相互關聯的模塊的過程。程序設計方法

2.結構化程序設計方法(3)使用順序、選擇、循環這三種基本結構表示程序邏輯,即由這三種結構組合或者嵌套而成,并且要滿足下面的條件。每個程序模塊只準許有一個入口和一個出口。沒有死語句(永遠執行不到的語句)。沒有死循環(永遠不能終止的循環)。程序設計方法

2.結構化程序設計方法(4)程序的書寫必須,按照一定的規范和格式進行。不能隨便拼湊。(5)程序的設計風格要以好的可讀性為標準,以使用程序的用戶為核心,外觀美觀,結構流暢、語句簡潔。程序設計的一般步驟

(1)分析問題對于接受的任務要進行認真的分析,研究所給定的條件,分析最后應達到的目標,找出解決問題的規律,選擇解題的方法,完成實際問題。(2)設計算法即設計出解題的方法和具體步驟。(3)編寫程序將算法翻譯成計算機程序設計語言,對源程序進行編輯、編譯和連接。程序設計的一般步驟

(4)運行程序,分析結果運行可執行程序,得到運行結果。能得到運行結果并不意味著程序正確,要對結果進行分析,看它是否合理。不合理要對程序進行調試,即通過上機發現和排除程序中的故障的過程。(5)編寫程序文檔許多程序是提供給別人使用的,如同正式的產品應當提供產品說明書一樣,正式提供給用戶使用的程序,必須向用戶提供程序說明書。內容應包括:程序名稱、程序功能、運行環境、程序的裝入和啟動、需要輸入的數據,以及使用注意事項等。算法算法(Algorithm)是對特定問題求解方法與步驟的描述,是程序求解問題的核心內容。1.算法的特征(1)有窮性:一個算法應包含有限的操作步驟,而不能是無限的。(2)確定性:算法中的每一個步驟都應當是確定的,而不應當是含糊的、摸棱兩可的。即必須有明確的含義,不能存在二義性。(3)可行性(有效性):算法中的每一個步驟都應當能有效地執行,并得到確定的結果。(4)有零個或多個輸入。算法1.算法的特征(5)有一個或多個輸出。一個好的算法不僅要滿足上述特征,還應當達到以下要求:正確性:運行該算法,能獲得正確的結果??勺x性:易于理解和交流健壯性:具有很好的適應能力,具有很好的容錯能力。高效性:盡可能追求較少的時間與空間占用(越簡單越好)。算法1.算法描述(1)自然語言描述法自然語言即人類日常使用的語言,可以是中文、英文等。用自然語言描述的算法通俗易懂,不用專門的訓練,較為靈活。但是,自然語言也有一些缺點。首先自然語言具有歧義性,容易導致算法執行的不確定性;其次自然語言的語句一般較長,導致描述的算法太長;再者自然語言表示的算法不便翻譯成計算機程序設計語言。上面例1-2使用的即是自然語言描述法。算法1.算法描述(2)流程圖描述法流程圖是使用一組規定的符號、流程線和文字說明來表示各種操作、算法的方法。其優點是清晰簡潔,直觀形象,容易表達選擇結構,不依賴于任何具體的計算機和計算機程序設計語言,從而有利于不同環境的程序設計。其缺點是占用篇幅較長,畫起來比較麻煩,而且使用流程線可以使流程任意轉向,不能保證算法的結構化。會造成閱讀和修改上的困難,可以借助于專用的流程圖制作軟件來提升繪制和修改。ANSI規定了一些常用的流程圖符號,見表1-1所示。連接點算法

常用的流程圖符號符號符號名稱含義起止框算法的開始和結束輸入/輸出框輸入/輸出操作處理框對框內的內容進行處理判斷框對框內的條件進行判斷流程線流程線的方向連接點常用于換頁處,表示兩個具有同一標記的“連接點”應連接成一個點預先定義的進程預先定義的函數、子例程等算法

流程圖表示3中基本結構圖1-13(a)順序結構圖1-13(b)選擇結構算法

流程圖表示3中基本結構算法例1-2比較兩個人的身高,將個子較高的那個人的身高輸出到屏幕上。要想解決上面的問題,需要定義變量fTall1和fTall2分別存儲兩個人的身高,fMax存放身高的最大值,計算最大值即比較兩個數的大小。具體的步驟如下:(1)輸入2個人的身高分別存入變量fTall1和fTall2中。(2)比較2個人的身高,如果fTall1較大,則把第一個人的身高值賦值給fMax。否則,將第二個人的身高賦值給fMax。(3)輸出fMax的值,即個子較高的人的身高。

問題分析算法例1-3用流程圖描述法描述例1-2的算法如圖1-14所示。算法1.算法描述(3)N-S流程圖描述法N-S流程圖類似流程圖,也被稱為盒圖或NS圖(NassiShneiderman圖)。1972年,N-S流程圖由美國學者I.Nassi和B.Shneiderman提出(以兩個人的名字的頭一個字母組成)。它是一種在流程圖中完全去掉流程線,將全部算法寫在一個矩形陣內,在框內還可以包含其他框的流程圖形式。即由一些基本的框組成一個大的框,N-S圖包括順序、選擇和循環三種基本結構。其優點是形象直觀,功能域明確,具有良好的可見度,很容易確定局部和全局數據的作用域,很容易表示嵌套關系及模塊的層次關系。其缺點是不可能任意轉移控制,修改需要重畫整個圖。算法N_S流程圖表示3中基本結構圖1-15(a)順序結構圖1-15(b)選擇結構算法

流程圖表示3中基本結構圖1-15(c)當型循環結構

圖1-15(d)直到型循環結構算法例1-4用N-S流程圖描述法描述例1-2的算法如圖1-16所示。算法1.算法描述(4)偽代碼描述法偽代碼描述法是使用介于自然語言與編程語言之間的文字和符號描述算法的方法。其優點是回避了程序設計語言的嚴格、煩瑣的書寫格式,書寫方便,同時具備格式緊湊,易于理解,便于向計算機程序設計語言過渡。其缺點是偽代碼的種類繁多,語句不容易規范,有時會產生誤讀。算法例1-5用N-S流程圖描述法描述例1-2的算法如圖1-16所示。INPUTftall1,ftall2IFftall1>ftall2THENftall1-〉fmaxELSEftall2-〉fmaxPRINTfmax算法1.算法描述(5)程序設計語言描述法計算機是無法識別自然語言、流程圖和為代碼的。只有使用程序設計語言編寫的程序,經過編譯、連接成可執行程序后,才能被計算機執行。因此,使用任何方法描述的算法,最終都要將其轉化成程序。其優點是可被計算機識別并執行。其缺點是必須嚴格遵循所使用的語言的語法規則。算法例1-6用程序設計語言描述法描述例1-2的算法如下所示。#include"stdio.h"voidmain(){floatftall1,ftall2,fmax;scanf("%f%f",&ftall1,&ftall2);if(ftall1>ftall2)fmax=ftall1;elsefmax=ftall2;printf("%f",fmax)

;}軟件編程規范1.程序的可讀性原則(1)編程規范概要①程序結構清晰,簡單易懂,單個函數的程序行數不得超過100行。②打算干什么,要簡單,直截了當,代碼精簡,避免垃圾程序。③盡量使用標準庫函數和公共函數。④不要隨意定義全局變量,盡量使用局部變量。⑤使用括號以避免二義性。軟件編程規范1.程序的可讀性原則(2)可讀性要求①可讀性第一,效率第二。②主要變量(結構、聯合、類或對象)定義或引用時,注釋能反映其含義。③常量定義(define)有相應說明。④處理過程的每個階段都有相關注釋說明。⑤利用縮進來顯示程序的邏輯結構,縮進量一致,可以以Tab鍵為單位。⑥循環、分支層次不要超過五層。⑦適當的使用注釋,注釋可以與語句在同一行,也可以在上行。⑧保持各種運算的標準形式,通過括號避免運算符的二義性。軟件編程規范2.匈牙利命名法匈牙利命名法是一種編程時的命名規范,以一個或者多個小寫字母開頭作為前綴,表示類型;前綴之后的是首字母大寫的一個單詞或多個單詞組合,該單詞要指明變量的用途。要基于容易記憶容易理解的原則。保證名字的連貫性是非常重要的。匈牙利命名法非常便于記憶,而且使變量名非常清晰易懂,這樣,增強了代碼的可讀性,方便各程序員之間相互交流代碼。其缺點是在使用匈牙利命名法時會產生冗余。匈牙利命名法有其優點但也有缺點,這就需要在使用中揚長避短,合理應用它。拓展案例案例1-1寫出下面問題的算法。問題描述比較三個人的身高,將個子較高的那個人的身高輸出到屏幕上。拓展案例

算法設計拓展案例案例1-2寫出下面問題的算法。問題描述本題是一個經典的數學問題。對于一個大于2的正整數,判斷它是不是一個素數。。拓展案例

算法設計拓展活動查資料對比國內外軟件行業發展現狀,體會軟件發展對國力的重要性,認識“中國芯”,作為新時代的大學生,要認真學習計算機程序設計,奮發圖強,為祖國的騰飛,為實現中國夢而努力學習!

制造中國芯,實現中國夢項目小結本項目主要介紹了C語言的產生、發展和特點,C程序的實現過程和結構,VisualC++6.0開發環境,程序設計的思想、方法以及算法以及軟件編程的規范等。重點掌握在VisualC++6.0開發環境下,編輯、編譯、連接、運行C程序的過程,認識C程序的基本結構,能夠正確的寫出算法。實踐訓練實踐1安裝MicrosoftVisualC++6.0。1下載MicrosoftVisualC++6.0直接在網絡中下載MicrosoftVisualC++6.0即可??梢缘玫綁嚎s文件,例如。VisualC++6.0的功能特色:(1)可以進行便捷靈活的類管理。(2)可自動生成程序框架,免去自己敲大量代碼的煩惱!(3)界面交互性很強,具有集成交互操作性。(4)提供多種運行組件,不再有程序缺少組件而無法運行的煩惱!(5)具有強大的代碼自動編寫功能,讓你省心省力!實踐訓練2安裝MicrosoftVisualC++6.0(1)解壓縮之后雙擊SETUP.exe,進入安裝向導,點擊下一步繼續,如圖1-19所示。實踐訓練2安裝MicrosoftVisualC++6.0(3)此處的姓名和公司名字可以隨意填寫,點擊下一步即可,如圖1-21所示。實踐訓練2安裝MicrosoftVisualC++6.0(4)選擇安裝VisualC++6.0中文企業版,點擊下一步,如圖1-22所示。實踐訓練2安裝MicrosoftVisualC++6.0(5)可能出現兼容性問題,點擊運行程序,如圖1-23所示。實踐訓練2安裝MicrosoftVisualC++6.0(6)接下里連續的三個窗口點擊【繼續】→【確定】→【是】,如圖1-24所示。實踐訓練2安裝MicrosoftVisualC++6.0(7)點擊“Typical”繼續安裝,表示安裝同時還有其他相關軟件給你安裝進去,能夠使電腦更加融洽,如圖1-25所示。實踐訓練2安裝MicrosoftVisualC++6.0(8)勾選之后點擊ok即可,如圖1-26所示。實踐訓練2安裝MicrosoftVisualC++6.0(9)等待安裝當中,過程緩慢,請稍候,如圖1-27所示。實踐訓練2安裝MicrosoftVisualC++6.0(10)點擊確定則VC++6.0成功安裝,如圖1-28所示。實踐訓練2安裝MicrosoftVisualC++6.0(11)菜單中找到此軟件,運行程序即可,如圖1-29所示。實踐訓練實踐2參照本章例題,編寫一個C程序,輸出以下內容。******#include“stdio.h”voidmain(){printf("*\n");printf("**\n");printf("***\n");}參考代碼實踐訓練執行結果謝謝多一點努力,多一點實踐,多一點點就能創造奇跡!C語言程序設計創建第一個C語言程序項目1“學生成績管理系統”中相關數據設計及簡單處理項目2項目中學生成績的等級判定項目3項目中的設計數據處理及封面與菜單的初步項目4學生成績的分組匯總程序項目5利用數組完善項目中數據的處理項目6利用函數進行項目的整體框架設計項目7利用結構體實現項目項目8利用指針優化項目項目9利用文件完善項目項目10項目2“學生成績管理系統”中相關數據設計及簡單處理目標TARGET知識目標了解C語言的基本字符掌握C語言的標識符、關鍵字理解和掌握數據類型、常量和變量掌握運算符與表達式目標TARGET技能目標學會正確的定義變量、使用變量和常量能夠正確的運用各種運算符和表達式“學生成績管理系統”中的相關數據設計任務2.1學生成績總分及平均分的計算任務2.2任務2.1“學生成績管理系統”中的相關數據設計

任務描述完成“學生成績管理系統”,需要不同數據類型的數據。假設該系統需要完成學生三門課程的總分及平均分,確定該系統中所需數據。任務分析假設三門課程分別為數學、英語、語文,可以將定義為整型數據,三門課程的總分也為整型數據,而三門課程的平均分應該為實型。任務2.1“學生成績管理系統”中的相關數據設計

算法設計(1)定義iMath、iEnglish、iChinese為int型,分別存儲數學、英語、語文成績。(2)定義iSum為int型,存儲三門課程的總分。(3)定義fAverage為float型,存儲三門課程的平均分。任務2.1“學生成績管理系統”中的相關數據設計

實現在線測試系統主頁面的布局和美化某班級需要一個學生成績管理系統,該系統應具有學生成績的添加、刪除、查詢、修改、插入和排序等處理功能,提供數字按鍵菜單操作方式,如圖0-1所示。程序代碼#include"stdio.h"/*編譯預處理命令*/voidmain(){intiMath,iEnglish,iChinise;/*定義整型變量iMath、iEnglish、iChinese*/intiSum;/*定義整型變量iSum*/floatfAverage;/*定義單精度實型變量fAverage*/……}/*main()主函數結束*/1基本數據及其運算Part◎C語言的數據類型◎常量和變量◎基本字符、標識符和關鍵字基本字符、標識符和關鍵字

1.基本字符C程序可以看作是由C語言的基本字符按一定的規則組成的一個序列。C程序中使用的基本字符包括:(1)大小寫英文字母ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz(2)十進制阿拉伯數字0123456789(3)下面29個符號!"#%&'()*+,-./:;<=>?[\]^_{|}~(4)5種空白符空格、水平制表符、垂直制表符、換行、換頁基本字符、標識符和關鍵字

1.基本字符(5)基本運行字符集還包括四個不可打印的字符:null字符(用做字符串終止符)、警報(alert)、退格(backspace)、回車(carriagereturn)為了在字母和字符串中表示這些字符,輸入反斜杠\加對應的轉義序列(escapesequence)即可,例如,\0表示null字符(空字符),\a表示警報,\b表示退格,而\r表示回車。不同的C實現版本中,字符實際對應的數值(字符碼)可能不同。C語言本身僅規定了以下規則:基本字符集中的每個字符必須用一個字節(byte)表示??兆址且粋€字節,其所有的位(bit)都是0。0之后的每個十進制數字,編碼都要依次比前者大1?;咀址?、標識符和關鍵字

2.標識符和其他高級語言一樣,我們把用來標識變量名、函數名、符號常量名、數組名、結構體名等的有效字符序列稱為“標識符”(Identifier),簡單的講,標識符就是一個名字。比如,我們在程序中使用了諸如a、abc、mn123這樣的名字,它們都是程序員自己起的,一般能夠表達出變量的作用,這就是標識符。不過,名字也不能隨便起,要遵守規范。C語言規定,標識符的命名規則為:(1)只能由字母(A~Z,a~z)、數字(0~9)和下劃線(_)組成;(2)只能以字母或下劃線開頭;(3)不能使用C語言中的關鍵字;(4)標識符的有效長度隨系統而異,但至少前8個字符有效;如果超長,則超長部分被舍棄?;咀址?、標識符和關鍵字

根據C語言中標識符的命名規則可以做出如下判斷:(1)合法的標識符有:a,x,x3,BOOK_1,sum5,_f23,file_name(2)非法的標識符有:3s,s*T,-3x,bowy-1,int例2-1判斷下面標識符哪些是合法的,哪些是非法的。a,3s,x,x3,BOOK_1,s*T,-3x,sum5,_f23,bowy-1,int,file_name。說明:題目中3s以數字開頭,-3x出現非法字符*,-3x不能以減號(-)開頭,bowy-1出現非法字符減號(-),int是關鍵字。注意:(1)C語言雖然不限制標識符的長度,但是它受到不同編譯器的限制,同時也受到操作系統的限制。例如在某個編譯器中規定標識符前128位有效,當兩個標識符前128位相同時,則被認為是同一個標識符。(2)在標識符中,大小寫是有區別的,例如BOOK和book是兩個不同的標識符。(3)標識符雖然可由程序員隨意定義,但標識符是用于標識某個量的符號,因此,命名應盡量有相應的意義,以便于閱讀和理解,作到“見名知義”。(4)函數名、變量名一般用小寫,而符號常量一般為大寫。(5)不要使用函數中的庫函數名、預處理名等作為自定義的標識符?;咀址?、標識符和關鍵字

3.關鍵字關鍵字(Keywords)是由C語言規定的具有特定意義的字符串,通常也稱為保留字,例如int、char、long、float、unsigned等。我們定義的標識符不能與關鍵字相同,否則會出現錯誤。你也可以將關鍵字理解為具有特殊含義的標識符,它們已經被系統使用,我們不能再使用了?;咀址?、標識符和關鍵字

C語言關鍵字autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile說明:根據關鍵字的作用可以將關鍵字分為數據類型關鍵字、控制語句關鍵字、存儲類型關鍵字和其它關鍵字四類。(1)數據類型關鍵字(11.5個)基本類型:char,int,float,double修飾類型:short,long,signed,unsigned構造類型:enum,union,struct其他類型:void(2)控制語句關鍵字(12個):循環語句:for,do,while,break,continue條件語句:if,else,goto開關語句:switch,case,default返回語句:return說明:(3)存儲類型關鍵字(6個):auto,extern,register,static,const,volatile(4)其它關鍵字(2.5個):void,sizeof,typedef減號(-),int是關鍵字。C語言的數據類型

數據類型決定數據的存儲空間的大小及表現形式、數據的取值范圍和運算方式。C語言提供的數據類型非常豐富,包括基本數據類型、構造數據類型、指針類型和空類型四大類,具體如圖2-1所示。1.

C語言的數據類型分類C語言的數據類型

基本數據類型是C語言系統本身提供的,結構比較簡單。構造類型是由基本數據類型構造而成的。指針類型是一種重要的數據類型,可以表示復雜的數據類型,使用起來非常靈活。本節只介紹基本數據類型,其余的數據類型在后面的章節中介紹。short、int、long、char、float、double這六個關鍵字代表C語言里的六種基本數據類型。在不同的系統上,這些類型占據的字節長度是不同的。在32位的系統上,這六種基本數據類型的所占字節長度和取值范圍如表2-2所示,具體可以用sizeof測試一下。1.

C語言的數據類型分類C語言的數據類型

C語言的數據類型的取值范圍名稱標識符占用內存取值范圍字符型char1字節-128~127短整型short2字節-32768~32767整型int4字節-2-31~231-1長整型long4字節-2-31~231-1單精度型float4字節3.4*10-38~3.4*1038或者-3.4*1038~-3.4*10-38雙精度型double8字節1.7*10-308~1.7*10308或者-1.7*10308~-1.7*10-308C語言的數據類型

整型數據分為整型、短整型和長整型3大類,其中每一類又分為無符號(unsigned)和有符號(signed)兩種情況。整型數據是以二進制補碼的形式存儲的。對有符號數據,則存儲單元的最高位為符號位,1表示負數,0表示正數。對無符號數,則沒有符號位,所有的存儲單元均為數據位。2.整型數據說明:整數有原碼、反碼和補碼3種表示方法。一個正數的原碼、反碼和補碼與原碼相同。負數的原碼就是把符號位數值化。負數的補碼就是在反碼的末位(最右端)加1。C語言的數據類型

實型數據也稱浮點數,指帶有小數部分的非整數數值,在C語言中,實型數據分為單精度和雙精度。實型數據都是有符號數據,沒有無符號實型數據。實型數據在計算機中是以指數形式存儲的,把它分為小數和指數兩個部分,其中小數部分的位數越多,數的有效位就越多,數的精度就越高,指數部分的位數越多,數的表示范圍就越大。實型數據通常在程序中用小數形式書寫,只是在數值很大或者很小時,才會使用指數形式。在用指數形式表示時,E前必須要有數字,E后是整數。3.實型數據C語言的數據類型

在內存中,一個字符型數據占用一個字節(8bite),以ASCII碼的二進制形式存放。比如字符'a'的ASCII碼值是97,則'a'在內存中的存放形式如圖2-2所示。4.字符型數據注意:常用字符數據的ASCII碼值可以參考附錄A“ASCII碼表”,表中列出了標準ASCII字符集128個字符,其編碼為0到127之間。'A'的ASCII碼值是65,'B'的ASCII碼值是66;'a'的ASCII碼值是97,'b'的ASCII碼值是98;其大小寫的ASCII碼相差32。'0'的ASCII碼值是48,'1'的ASCII碼值是49,只要記住'A'、'a'、'0'的ASCII碼值,就可以推算出其他字母和數字的ASCII碼值。字符型數據有時可以和整型數據通用,具體表現在:一個字符型變量可以賦以一個字符常量,也可以賦以一個整數。字符型數據在輸出時可以以字符格式輸出,也可以以整數格式輸出。以整數格式輸出時,ASCII碼值在1-127之間的字符輸出正數,128-255之間的字符輸出負數。字符型數據可以進行算術運算,運算時以它們的ASCII碼值進行運算?;咀址俗R符和關鍵字

#include"stdio.h"voidmain(){

intc1,c2;

//定義整型變量c1,c2

c1='a';//將字符常量附給變量c1

c2=97;//將97("a"的ASCII碼值)附給變量c2

printf("c1=%c,c2=%c\n",c1,c2);//用字符格式輸出變量c1,c2

printf("c1=%d,c2=%d\n",c1,c2);//用整數格式輸出變量c1,c2}例2-2字符型數據和整型數據通用舉例。基本字符、標識符和關鍵字

運行結果注意:變量c1、c2在內存中的值都是97,輸出什么取決于格式說明符是%d還是%c。常量和變量

1.常量在程序的執行過程中,其值不能被改變的量稱為常量。常量一般從其字面形式即可判別,不需要類型說明就可以直接使用,這種常量稱為普通常量或字面常量,其類型是由常量本身隱含決定的;常量也可以用標識符來代表,這種常量稱為符號常量。在C語言中,常量和變量都是可以用來存儲和表示數據的,常量值在程序執行的過程中是不可變的,而變量是可變的。常量和變量

普通常量在程序的執行過程中,其值不能被改變的量稱為常量。常量一般從其字面形式即可判別,不需要類型普通常量有4類:整型數值常量、實型數值常量、字符常量和字符串常量。(1)整型數值常量整型數值常量有三種表示方法:十進制(0-9十個數字構成,逢10進1),如:1,200,3500十六進制(0-9十個數字,A-F六個字符構成,逢16進1),以0x或0X開頭的數字序列,如:0x12,0X706A,0xF2B八進制(0-7八個數字構成,逢8進1),以0開頭的數字序列,如:025,0706常量和變量

普通常量(2)實型數值常量實型數據也稱浮點數,指帶有小數部分的非整數數值,實型數值常量有2種表示方法:小數形式:726.8,97.3,0.529指數形式:3.23E-5,1.5E2常量和變量

普通常量(3)字符型常量字符型常量有2種表示方法:用單引號引起來的單個字符,如'a','A','$'轉義字符表示法,如"\n","\105","\'\n','\105','\X7B'"這里的轉義字符是一種特殊的字符常量,通常用來表示一些比較特殊的字符,比如不可視,或者不能通過鍵盤輸入的都可以用轉義字符表示。轉義字符是以"\"開頭的字符序列,常用的轉義字符如表2-3所示。常量和變量

常用轉義字符轉義字符意義ASCII碼值(十進制)\a響鈴(BEL)007\b退格(BS),將當前位置移到前一列008\f換頁(FF),將當前位置移到下頁開頭012\n換行(LF),將當前位置移到下一行開頭010\r回車(CR),將當前位置移到本行開頭013\t水平制表(HT)(跳到下一個TAB位置)009\v垂直制表(VT)011\\代表一個反斜線字符''\'092\'代表一個單引號(撇號)字符039\"代表一個雙引號字符034\?代表一個問號063\0空字符(NUL)000\ooo1到3位八進制數所代表的任意字符\xhh十六進制所代表的任意字符說明:(1)表2-3中最后2行是用ASCII碼(八進制或是十六進制)表示一個字符。如:\101代表ASCII碼為65(十進制)的字符'A',\012代表ASCII碼為10(十進制)的字符\n,即換行符,字符\000或者\0代表ASCII碼為0(十進制)的控制符,即空字符。(2)轉義字符從書寫上看是一個字符序列,實際上是作為1個字符對待的,存儲時只占1個字節。常量和變量

普通常量(4)字符串常量字符串常量簡稱字符串,是用一對雙引號括起來的字符序列。例如"china","1","A","123"等。這里的雙引號只起定界的作用,它不屬于字符串中的字符。而且C語言會自動在字符串尾部加上一個轉義字符"\0"(空字符,其ASCII碼值為0)作為字符串的結束標記。因此,字符串在內存中占用的存儲字節數要比字符串長度多1,即雙引號之間的字符個數加1,才是字符串存儲時的字節數。同時我們可以通過"\0"來判斷字符串是否結束。以字符串"china"為例,字符串的存儲形式如圖2-3所示。'c''h''i''n''a''\0'常量和變量

符號常量符號常量就是用標識符來表示常量。C語言中,可以用以下兩種方法定義符號常量。(1)使用編譯預處理命令define符號常量可以在文件的開始定義,其定義格式如下:#define常量名常量值如:

#definePI3.1415926#defineN100常量和變量

符號常量2)使用常量說明符constconst是C語言中32個關鍵字之一,可以用來定義符號常量,具體格式如下:const數據類型常量名=常量值如:constfloatpi=3.1415926定義了符號常量后,就可以在程序中用符號代替常量出現,這不僅提高了程序的可讀性,也同時給程序的修改帶來了極大的方便。常量和變量

#definePI3.1415926/*定義符號常量PI代替圓周率*/#include"stdio.h"voidmain(){floatfR,fArea;fR=10;fArea=PI*fR*fR;printf("theareaofthiscircleis%0.2f\n",fArea);}例2-3符號常量的使用。說明:符號常量一般用大寫字母表示,方便與其他標識符區分。常量和變量

2.變量—變量的概念在程序執行過程中,其值可以改變的量稱為變量。在C語言中,變量相當于存儲數據的容器,在內存中占據一定的存儲單元,用于存放數據,即變量值。我們可以使用變量來保存程序執行過程中的輸入數據、中間結果和最終結果。每個變量都要用一個名字表示,即變量名。這個名字是由程序設計者命名,且一定要遵守標識符的命名規則。常量和變量

變量的定義變量在程序中負責存儲數據,而數據具有整型、實型、字符型等不同的類型。因此,變量在定義時一定要有相應的類型。變量必須先定義后使用,變量定義時必須提供兩個方面的信息:變量名和變量的類型。變量定義語句的一般形式是:類型標識符變量名列表;例如:inta,b;//定義了2個整型變量a、blongc;//定義了1個長整型變量cfloatr,s;//定義了2個單精度實型變量r、sdoublex;//定義了1個雙精度實型變量xcharch;//定義了1個字符型變量ch常量和變量

變量的初始化在定義變量的同時給變量賦一個初值,稱為變量的初始化。例如:intsum=0;floatf=123.45;charch='A';說明:(1)變量必須先定義再使用,否則程序無法為其分配存儲空間。(2)變量具有三個要素:變量名、類型和當前值。變量的值除了可以通過賦初值的方式獲取,還可以通過賦值的方法獲得和改變。首次使用變量時,變量必須要有確定的值,否則會導致運算錯誤。常量和變量

intiAge=20,iNum=201; charcSex='m';/*f:female(女),m:male(男)*/ floatfScore; fScore=580.5;例2-4按照問題定義適當的變量。新生入學需要保存學生數據,如年齡、學號、性別、入學分數?,F在定義整型變量存放年齡、學號,定義字符變量存放性別,定義浮點型變量存放入學分數。問題分析可以定義整型變量iAge、iNum分別存放年齡、學號,定義字符變量cSex存放性別,定義浮點型變量fScore存放入學分數。程序段任務2.2學生成績總分及平均分的計算

任務描述計算一名學生數學、英語、語文三門課程的總分及平均分。這名學生三門課程的成績分別為89、96、82。。任務分析熟悉VisualC++6.0環境,能夠正確編輯、鏈接、運行C程序已知這名學生的三門課程的成績,成績相加即可獲取該學生的總分,總分除以科目數即為平均分。任務2.2學生成績總分及平均分的計算

算法設計(1)定義iMath、iEnglish、iChinese和iSum為int型,分別存儲數學、英語、語文成績和總分,其中將iMath、iEnglish、iChinese分別賦值為89、96、82;定義fAverage為float型,存儲三門課程的平均分。(2)計算總分。(3)計算平均分。(4)輸出學生的總分和平均分。任務2.2學生成績總分及平均分的計算

程序代碼#include"stdio.h"/*編譯預處理命令*/voidmain(){intiMath=89,iEnglish=96,iChinese=82;/*定義整型變量iMath、iEnglish、iChinese,并分別賦值*/intiSum;/*定義整型變量iSum*/floatfAverage;/*定義單精度實型變量fAverage*/iSum=iMath+iEnglish+iChinese;fAverage=iSum/3.0;printf("該學生的總分為:%d,平均分為:%.2f\n",iSum,fAverage);}。任務2.2學生成績總分及平均分的計算

執行結果2運算符和表達式Part◎賦值運算符和賦值表達式◎算術運算符和算術表達式◎逗號運算符和逗號表達式◎數據間的混合運算與類型轉換運算符和表達式

C語言運算符是說明不同運算的符號,運算符的操作對象稱為操作數或者運算數。運算符根據操作對象的個數可以分為單目運算符、雙目運算符和三目運算符。由運算符把操作數連接起來的一個有意義的式子叫做表達式。每種表達式都按照運算符所規定的運算規則進行運算,最終會得到一個結果,該結果被稱為表達式的值。C語言的運算符異常豐富,除了控制語句和輸入輸出以外的幾乎所有的基本操作都為運算符處理。運算符和表達式

優先級運算符的運算優先級共分為15級。15級最高,1級最低。在表達式中,優先級較高的先于優先級較低的進行運算。而在一個運算量兩側的運算符優先級相同時,則按運算符的結合性所規定的結合方向處理。本書中附錄B“C語言運算符的優先級和結合性”中的運算符表可以看到運算符的優先級從1到15,15級優先級最高,1級優先級最低,(表中從上到下)依次遞減,最上面具有最高的優先級,逗號操作符具有最低的優先級。

結合性各運算符的結合性分為兩種,即左結合性(自左至右)和右結合性(自右至左)。這種自左至右的結合方向就稱為“左結合性”。而自右至左的結合方向稱為“右結合性”。算術運算符和算術表達式

1.基本算術運算符運算符名稱例子運算功能+加法運算x+y求x與y的和-減法運算x-y求x與y的差*乘法運算x*y求x與y的積/除法運算x/y求x除以y的商%模運算x%y求x除以y的余數說明:(1)對于除法運算符(/),如果兩個操作數全是整數,結果為整數;如果其中一個操作數為浮點數,結果為浮點數。如3/5的值為0,5/3的值為1,3/5.0的值為0.6。(2)對于模運算符(%),兩個操作數必須為整數。如8%5的值是3,10%2的值是0,-14%5的值是-4。算術運算符和算術表達式

以上6種基本算術運算符都是雙目運算符,也就是需要2個操作數。其優先級為13級和12級,由高到低為:“*、/、%”高于“+、-”。其結合性為左結合,即從左向右進行計算。用算術運算符將操作數連接起來,構成算術表達式。在算術表達式中應該先計算乘除模運算,再計算加減,若遇到同一級別的,則從左向右依次進行計算。2.算術表達式以上6種基本算術運算符都是雙目運算符,也就是需要2個操作數。其優先級為13級和12級,由高到低為:“*、/、%”高于“+、-”。其結合性為左結合,即從左向右進行計算。用算術運算符將操作數連接起來,構成算術表達式。在算術表達式中應該先計算乘除模運算,再計算加減,若遇到同一級別的,則從左向右依次進行計算。算術運算符和算術表達式

例2-5從鍵盤輸入一個3位數,求該數個位、十位、百位上的數的和。問題分析首先需要有一個變量存儲3位數,在通過算術運算分別計算出這個3位數的個位、十位、百位,最后計算它們的和。算術運算符和算術表達式

算法設計(1)定義1個整型變量iNum存儲從鍵盤輸入的3位數;(2)定義整型變量i1、i2、i3、iSum分別存儲個位、十位、百位上的數字及其和;(3)從鍵盤輸入一個3位整數存入變量iNum中;(4)用iNum%10求得個位上的數存入i1中;(5)用iNum/10%10求得十位上的數存入i2中;(6)用iNum/100求得百位上的數存入i3中;(7)求i1、i2、i3的和存入iSum中;(8)輸出iSum的值。算術運算符和算術表達式

#include"stdio.h" voidmain() { intiNum; inti1,i2,i3,iSum; printf("pleaseinputainteger(100-999):"); scanf("%d",&iNum); i1=iNum%10;/*求個位數*/ i2=iNum/10%10;/*求十位數*/ i3=iNum/100;

溫馨提示

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

評論

0/150

提交評論