第1講 C語言概述課件_第1頁
第1講 C語言概述課件_第2頁
第1講 C語言概述課件_第3頁
第1講 C語言概述課件_第4頁
第1講 C語言概述課件_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1講

C語言概述

計算機工作原理程序和程序語言C程序開發(fā)的循環(huán)流程C程序集成開發(fā)環(huán)境1第1講C語言概述學(xué)習(xí)路線圖2第1講C語言概述準(zhǔn)備知識1.計算機工作原理2.程序和程序設(shè)計語言3.C程序開發(fā)的循環(huán)流程4.C程序集成開發(fā)環(huán)境第1講C語言概述1.計算機及工作原理計算機的基本操作計算機工作原理程序執(zhí)行示例4第1講C語言概述計算機的基本操作(1)數(shù)據(jù)輸入計算機(input)(2)計算機操作數(shù)據(jù)(process)(3)計算機輸出數(shù)據(jù)(output)processinputoutput5第1講C語言概述計算機工作原理存儲程序、程序控制6第1講C語言概述程序執(zhí)行示例--計算所得稅7第1講C語言概述2.程序和程序設(shè)計語言程序和指令程序設(shè)計語言翻譯程序程序設(shè)計方法8第1講C語言概述程序和指令程序等于指令嗎?程序指令程序語言編譯器第1講C語言概述程序設(shè)計語言程序:程序是計算機能夠接受的、指示計算機完成特定功能的一組指令的有序集合。編程(programming):設(shè)計一組控制計算機的指令集的過程程序設(shè)計語言:用于描述程序中操作過程的命令、規(guī)則的符號集合,是進行程序設(shè)計的工具程序設(shè)計過程:分析、設(shè)計、編碼、測試、排錯等階段。10第1講C語言概述程序設(shè)計語言的發(fā)展機器語言匯編語言高級語言例:要使兩個存儲單元中的數(shù)的相加,最后結(jié)果存放在其中一個單元中

MOVSI,0110MOVAL,[SI]INCADD[SI],ALMOV[SI],ALintx=6,y=7;x=x+y;11第1講C語言概述翻譯程序高級語言不能被計算機直接執(zhí)行,必須先由一種翻譯程序?qū)⑦@些程序翻譯成能被計算機識別和執(zhí)行的機器語言翻譯程序的種類編譯程序解釋程序12第1講C語言概述編譯程序-編譯器一個現(xiàn)代編譯器的主要工作流程如下:源代碼(sourcecode)→預(yù)處理器

(preprocessor)→編譯器

(compiler)→目標(biāo)代碼(objectcode)→連接器

(Linker)→可執(zhí)行文件(executables)第1講C語言概述程序設(shè)計方法面向過程程序設(shè)計以函數(shù)為基本程序結(jié)構(gòu)單位,程序的設(shè)計以過程為核心。先用函數(shù)實現(xiàn)解決問題所需要的每個步驟,再根據(jù)既定的功能依次調(diào)用函數(shù)。程序=算法+數(shù)據(jù)結(jié)構(gòu)+程序設(shè)計語言+語言環(huán)境如:C、Pascal等第1講C語言概述程序設(shè)計方法面向?qū)ο蟪绦蛟O(shè)計以對象為基本程序結(jié)構(gòu)單位,程序的設(shè)計以對象為核心,對象的數(shù)據(jù)及操作封裝在類中。程序=對象+對象+…+對象對象=數(shù)據(jù)結(jié)構(gòu)+算法+程序設(shè)計語言+語言環(huán)境如:C++、JAVA、Python等第1講C語言概述163.C程序開發(fā)的循環(huán)流程編輯(EDIT)[‘?d?t]

編譯(COMPILE)[k?m‘pa?l]連接(Link)[l??k]

執(zhí)行(EXECUTE)[‘?ks?,kjut]

第1講C語言概述17編輯(EDIT)源文件用高級語言編寫的程序文件編輯器生成源文件的軟件C語言程序文件,例:范例\hello.cpp文本文件,可用記事本編輯后綴名:c/cpp語法一種編程語言的規(guī)則第1講C語言概述18編譯(COMPILE)編譯器將高級語言翻譯成機器語言的軟件編譯的任務(wù)(詞法分析->語法分析->機器指令)編譯器翻譯源文件時會檢查是否符合高級語言的語法規(guī)則生成機器語言指令構(gòu)成的目標(biāo)文件如源程序包含語法錯誤,列出錯誤,不產(chǎn)生目標(biāo)文件c目標(biāo)文件,例:hello.obj二進制文件后綴名:obj第1講C語言概述19連接Link連接的任務(wù)將預(yù)先開發(fā)好的程序模塊(例如系統(tǒng)函數(shù)或其他程序員開發(fā)的共同模塊)連接到當(dāng)前程序代碼中去生成可執(zhí)行文件:exe,例:hello.exe連接器完成連接的軟件第1講C語言概述執(zhí)行(EXECUTE)C語言生成的可執(zhí)行文件(exe文件)是一個DOS程序——控制臺程序;可以通過開始菜單“運行”→“cmd”命令打開命令窗口,直接執(zhí)行文件名。20第1講C語言概述C語言程序的編輯、調(diào)試、運行步驟開始結(jié)果語法錯誤源程序.c/.cpp目標(biāo)程序.obj可執(zhí)行程序.exe編輯編譯運行連接錯誤運行錯誤運行文字編輯器編譯器連接器結(jié)果第1講C語言概述224.C程序集成開發(fā)環(huán)境集編輯(EDIT)、編譯(COMPILE)、連接(Link)、執(zhí)行(EXECUTE)與一體,并提供調(diào)試(debug)手段和幫助(help)的開發(fā)軟件。第1講C語言概述幾種常用的C語言集成開發(fā)工具:開發(fā)工具運行環(huán)境各工具的差異基本特點TurboCDOS不能開發(fā)C++語言程序(1)符合標(biāo)準(zhǔn)C(2)各系統(tǒng)具有一些擴充內(nèi)容(3)能開發(fā)C語言程序(集程序編輯、編譯、鏈接、調(diào)試、運行于一體)BorlandCDOSMicrsoftCDOSVisualC++Windows能開發(fā)C++語言程序(集程序編輯、編譯、鏈接、調(diào)試、運行于一體)DevC++WindowsBorlandC++DOS、WindowsC++BuilderWindowsCodeBlocksWindows、Mac第1講C語言概述24VC++6.0創(chuàng)天中文版第1講C語言概述實踐1:C程序開發(fā)環(huán)境練習(xí)任務(wù)一創(chuàng)建第一個C程序任務(wù)二

解讀第一個C程序任務(wù)三認識程序錯誤第1講C語言概述VC++操作新建編譯執(zhí)行語法錯誤關(guān)閉工作空間26任務(wù)一

創(chuàng)建程序sample01_01.cpp/*print“HelloWorld!”*/#include<stdio.h>intmain(void){printf("HelloWorld!\n");return0;}可省去!第1講C語言概述27任務(wù)二

解讀第一個C程序--程序語法(1)C程序必須由一個main函數(shù)構(gòu)成,系統(tǒng)自動執(zhí)行main函數(shù)。(2)程序的執(zhí)行從main函數(shù)的左{括號開始,順序執(zhí)行每一條語句,直到main函數(shù)的右}括號結(jié)束。{函數(shù)體}(3)printf是標(biāo)準(zhǔn)輸出函數(shù),輸出的字符串在一對半角雙引號之間,例如"HelloCWorld\n"。(4)C語句以分號結(jié)束。第1講C語言概述解讀第一個C程序--程序語法(5)控制臺輸出時,系統(tǒng)會緊跟著自動輸出“pressanykeytocontinue”,等待按任意鍵關(guān)閉控制臺窗口。(6)’\n’是一個轉(zhuǎn)義字符--換行。轉(zhuǎn)義字符是一些鍵盤不能輸入的控制字符,具有特殊功能。(7)#include<stdio.h>是一個預(yù)編譯命令,表示要加入stdio.h文件(標(biāo)準(zhǔn)輸入輸出函數(shù)頭文件),若要在程序中使用printf函數(shù)必須使用該命令。(8)main函數(shù)執(zhí)行到“}”或“return0;”結(jié)束。return0;向系統(tǒng)返回整數(shù)0,表示程序運行正常。28Include[?n’klud]包含standard[‘st?nd?d]標(biāo)準(zhǔn)head[h?d]頭部第1講C語言概述解讀第一個C程序——相關(guān)文件29后綴名解釋cpp源程序文件dsw項目工作區(qū)dsp項目文件ncb無編譯瀏覽文件plg編譯信息文件opt關(guān)于開發(fā)環(huán)境的參數(shù)文件,如工具條位置等信息debug文件夾中存放著生成的obj文件,exe文件及其它一些中間文件。第1講C語言概述討論輸出兩行問候語句HelloCWorld!HelloCWorld!30第1講C語言概述可能出現(xiàn)的答案printf(“HelloCWorld”);printf(“HelloCWorld”);printf(“HelloCWorld\n”);printf(“HelloCWorld”);printf(“HelloCWorld\nHelloCWorld”);31第1講C語言概述任務(wù)三認識程序錯誤語法錯誤連接錯誤邏輯錯誤運行錯誤第1講C語言概述語法錯誤

指不符合高級語言定義的語法書寫規(guī)則。編譯或解釋程序能自動檢查出語法錯誤,只需根據(jù)錯誤提示進行修改。33第1講C語言概述改錯示例:(error1-1.cpp)#include<stdio.h>intmain(void){printf("HelloCWorld!\n);return0;}#include<stdio.h>intmain(void){printf("WelcometoYou!\n");return0;}34第1講C語言概述C語言的錯誤信息的形式

文件名

行號

錯誤編號

錯誤信息

c:\sample\error1-1.cpp(4):errorC2001:newlineinconstant雙擊上述錯誤信息,修改

35第1講C語言概述編譯錯誤修改提示(1)錯誤信息往往只能起提示作用,不是特別精確反映錯誤產(chǎn)生的原因,更不會告訴你如何修改。根據(jù)提示能快速反應(yīng)錯誤產(chǎn)生的原因需要經(jīng)驗的積累。36第1講C語言概述編譯錯誤修改提示(2)一條語句錯誤可能會產(chǎn)生若干條錯誤信息,只要修改了這條錯誤,其他錯誤會隨之消失。特別提示:一般情況下,第一條錯誤信息最能反映錯誤的位置和類型,所以調(diào)試程序時務(wù)必根據(jù)第一條錯誤信息進行修改,修改后,立即重新編譯程序,如果還有很多錯誤,再一個一個地修改。即每修改一處錯誤要重新編譯一次程序。37第1講C語言概述連接錯誤

連接錯誤,是編譯成功后,連接器連接外部程序的時候產(chǎn)生的錯誤。例

:main函數(shù)名寫錯了38第1講C語言概述連接錯誤修改提示連接錯誤不提示出錯行數(shù),但小程序的定位也比較簡單,一般是函數(shù)和外部變量的名稱出錯,只需根據(jù)錯誤提示的字符串去尋找可能出現(xiàn)的位置。39第1講C語言概述改錯示例:(error1-2.cpp)#include<stdio.h>intmian(void){printf("HelloCWorld!\n");return0;}#include<stdio.h>intmain(void){printf("WelcometoYou!\n");return0;}40第1講C語言概述連接錯誤信息顯示--------------------Configuration:test-Win32Debug--------------------Compiling...:test.cppLinking...LIBCD.lib(crt0.obj):errorLNK2001:unresolvedexternalsymbol_main無法解析的外部符號_main

Debug/test.exe:fatalerrorLNK1120:1unresolvedexternals執(zhí)行l(wèi)ink.exe時出錯.test.exe-1error(s),0warning(s)錯誤警告41第1講C語言概述常見編程錯誤:字符串“”不完整()不匹配缺少;函數(shù)名寫錯……42第1講C語言概述邏輯錯誤

邏輯錯誤則是程序設(shè)計上或邏輯上的錯誤——指程序已生成可執(zhí)行文件,但運行出錯或不能得到正確的結(jié)果,這可能是由于算法中問題說明不足,解法不完整或不正確所造成的。邏輯錯誤的檢查需要事先設(shè)計的測試用例。邏輯錯誤出錯位置需要程序員對程序代碼進行分析,一般會借助一些調(diào)試手段,如單步執(zhí)行,設(shè)斷點,watch窗口觀測等等……43第1講C語言概述改錯示例:(error1-3.cpp)#include<std

溫馨提示

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

評論

0/150

提交評論