c語(yǔ)言第1講講義課件_第1頁(yè)
c語(yǔ)言第1講講義課件_第2頁(yè)
c語(yǔ)言第1講講義課件_第3頁(yè)
c語(yǔ)言第1講講義課件_第4頁(yè)
c語(yǔ)言第1講講義課件_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

C語(yǔ)言實(shí)現(xiàn)

C語(yǔ)言實(shí)現(xiàn)1第一章:C語(yǔ)言概論課程目標(biāo):程序與程序語(yǔ)言C語(yǔ)言的組成C語(yǔ)言的上機(jī)過(guò)程第一章:C語(yǔ)言概論課程目標(biāo):2第一節(jié)程序與程序語(yǔ)言

程序的概念

程序是計(jì)算機(jī)的指令序列,編制程序的工作就是為計(jì)算機(jī)安排指令序列。程序語(yǔ)言的發(fā)展對(duì)程序設(shè)計(jì)語(yǔ)言的分類(lèi)可以從不同的角度進(jìn)行,如面向機(jī)器程序的設(shè)計(jì)語(yǔ)言,面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。其中最常見(jiàn)的方式是按使用方式和功能可分為低級(jí)語(yǔ)言和高級(jí)語(yǔ)言。第一節(jié)程序與程序語(yǔ)言程序的概念程3

高級(jí)語(yǔ)言只是要求人們向計(jì)算機(jī)描述問(wèn)題的求解過(guò)程,而不關(guān)心計(jì)算機(jī)的內(nèi)部結(jié)構(gòu),所以把高級(jí)語(yǔ)言稱為“面向過(guò)程語(yǔ)言”,它易于被人們理解和接受,典型的面向過(guò)程語(yǔ)言有BASIC,FORTRAN,COBOL,C,Pascal等等。

低級(jí)語(yǔ)言包括機(jī)器語(yǔ)言和匯編語(yǔ)言。機(jī)器語(yǔ)言就是計(jì)算機(jī)指令的集合,它與計(jì)算機(jī)同時(shí)誕生,是第一代的計(jì)算機(jī)語(yǔ)言;匯編語(yǔ)言是用符號(hào)來(lái)表示計(jì)算機(jī)指令,被稱為第二代語(yǔ)言。機(jī)器語(yǔ)言和匯編語(yǔ)言都是圍繞特定的計(jì)算機(jī)或計(jì)算機(jī)族而設(shè)計(jì)的。是面向計(jì)算機(jī)的語(yǔ)言。要使用這種語(yǔ)言必須了解計(jì)算機(jī)的內(nèi)部結(jié)構(gòu),而且難學(xué),難寫(xiě),難記憶,把這種語(yǔ)言稱為低級(jí)語(yǔ)言。

“面向過(guò)程”是程序設(shè)計(jì)的基礎(chǔ),尤其對(duì)于程序設(shè)計(jì)的初學(xué)者。所以,我們將以面向過(guò)程的C程序設(shè)計(jì)語(yǔ)言為背景,主要介紹程序設(shè)計(jì)的基本概念和方法。高級(jí)語(yǔ)言只是要求人們向計(jì)算機(jī)描述問(wèn)題的4第二節(jié)C語(yǔ)言組成與上機(jī)過(guò)程

C語(yǔ)言是國(guó)際上廣泛流行的計(jì)算機(jī)高級(jí)程序設(shè)計(jì)語(yǔ)言,它是1973年由美國(guó)貝爾實(shí)驗(yàn)室設(shè)計(jì)發(fā)布的。由于C語(yǔ)言既是一個(gè)非常成功的系統(tǒng)描述語(yǔ)言,又是一個(gè)相當(dāng)有效的通用程序設(shè)計(jì)語(yǔ)言,所以,從C語(yǔ)言誕生至今雖然只有近三十年的歷史,但其發(fā)展速度和應(yīng)用范圍卻是任何一種程序設(shè)計(jì)語(yǔ)言所無(wú)法比擬的。作為現(xiàn)代計(jì)算機(jī)語(yǔ)言的代表之一,C語(yǔ)言展現(xiàn)出強(qiáng)大的生命力。

第二節(jié)C語(yǔ)言組成與上機(jī)過(guò)程C語(yǔ)言是國(guó)5一、C語(yǔ)言的結(jié)構(gòu)

(一)兩個(gè)簡(jiǎn)單的C程序?qū)嵗齟g1-1:/*ThisisaHELLOCprogram.*/Voidmain(){Printf(“================\n”);Printf(“Howareyou!\n”);Printf(“================\n”);}這個(gè)程序的功能是輸出三行信息:================Howareyou!================一、C語(yǔ)言的結(jié)構(gòu)(一)兩個(gè)簡(jiǎn)單的C程序?qū)嵗齟g16eg1-2:計(jì)算函數(shù)M(x)是值。函數(shù)M(x)為:M(x)=bx+a2x<=aa(c-x)+c2x>a其中,a,b,c為常數(shù)實(shí)現(xiàn)此算法的C程序如下:eg1-2:計(jì)算函數(shù)M(x)是值。函數(shù)M(x)為:bx+7#include<stdio.h>main(){intx,m;scanf(“%d”,&x);m=sub(x);printf(“m=%d\n”,m);}intsub(intx1){inta,b,c,n;a=6;b=30;c=15;if(x1<a||x1==a)n=b*x1+a*a;elsen=a*(c-x1)+c*c;return(n);}這個(gè)程序的執(zhí)行結(jié)果如下:3(輸入3給x,其中表示回車(chē)符)126(輸出m的值)#include<stdio.h>8二、C語(yǔ)言的組成

一個(gè)C程序是C語(yǔ)言基本字符構(gòu)成的一個(gè)序列。C語(yǔ)言的基本字符集包括:數(shù)字字符:0,1,2,3,4,5,6,7,8,9拉丁字母:A,B,C……,Z,a,b,c……,z(注意:字母的大小是可區(qū)分的。如:abc與ABC是不同的)運(yùn)算符:+、-、*、/、%、=、<、>、

<=、>=、!=、==、<<、>>、&、|、&&、||、^、~、(、)、[、]、->、.、!、?、:、,、;特殊符號(hào)和不可顯示字符:_(連字符或下劃線),空格,換行,制表符對(duì)初學(xué)者來(lái)說(shuō):書(shū)寫(xiě)程序要從一開(kāi)始就養(yǎng)成良好的習(xí)慣,力求字符準(zhǔn)確,工整,清晰,尤其要注意區(qū)分一些字形上容易混淆的字符,避免給程序的閱讀,錄入和調(diào)試工作帶來(lái)不必要的麻煩。(一)基本字符集二、C語(yǔ)言的組成一個(gè)C程序是C語(yǔ)言基本字符構(gòu)成的一9在程序中有許多需要命名的對(duì)象,以便在程序是其他地方使用。這些名字包括:變量名、常數(shù)名、函數(shù)名、文件名、類(lèi)型名等,通常被統(tǒng)稱為“標(biāo)識(shí)符”。(二)標(biāo)識(shí)符C語(yǔ)言規(guī)定,標(biāo)識(shí)符由字母、數(shù)字或下劃線(_)組成,它的第一個(gè)字符必須是字母或下劃線。這里要說(shuō)明的是,為了標(biāo)識(shí)符構(gòu)造和閱讀的方便,C語(yǔ)言把下劃線作為一個(gè)特殊使用,它可以出現(xiàn)在標(biāo)識(shí)符字符序列的任何地方,特別是它可以作為標(biāo)識(shí)符的第一個(gè)字符出現(xiàn)。C語(yǔ)言還規(guī)定,標(biāo)識(shí)符中同一個(gè)字母的大寫(xiě)與小寫(xiě)被看作是不同的字符。這樣,a和A,AB、Ab是互不相同的標(biāo)識(shí)符。在程序中有許多需要命名的對(duì)象,以便在程10C語(yǔ)言有一些具有特定含義的關(guān)鍵字,用作專用的定義符。這些特定的關(guān)鍵字不允許用戶作為自定義的標(biāo)識(shí)符使用。C語(yǔ)言關(guān)鍵字絕大多數(shù)是由小寫(xiě)字母的字符序列,它們是:(按字母次序排列)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile

(三)關(guān)鍵字C語(yǔ)言有一些具有特定含義的關(guān)鍵字,用作專用的定義符11語(yǔ)句是組成的基本單位,它能完成特定操作,語(yǔ)句的有機(jī)組合能實(shí)現(xiàn)指定的計(jì)算機(jī)處理功能。C語(yǔ)言中的語(yǔ)句有以下幾類(lèi):(四)語(yǔ)句選擇語(yǔ)句if,switch流程控制語(yǔ)句循環(huán)語(yǔ)句for,while,do_while轉(zhuǎn)移語(yǔ)句break,continue,return,gotoC語(yǔ)句表達(dá)式語(yǔ)句復(fù)合語(yǔ)句空語(yǔ)句這些語(yǔ)句的形式和使用見(jiàn)后續(xù)相關(guān)章節(jié)。語(yǔ)句是組成的基本單位,它能完成特定操作,語(yǔ)句的有12(五)標(biāo)準(zhǔn)庫(kù)函數(shù)標(biāo)準(zhǔn)庫(kù)函數(shù)不是C語(yǔ)言本身的組成部分,它是由C編譯系統(tǒng)提供的一些非常有用的功能函數(shù)。例如,C語(yǔ)言沒(méi)有輸入/輸出語(yǔ)句,也沒(méi)有直接處理字符串的語(yǔ)句,而一般的C編譯系統(tǒng)都提供了完成這些功能的函數(shù),稱為標(biāo)準(zhǔn)庫(kù)函數(shù)。MicrosoftVisualC++6.0編譯系統(tǒng)提供了四百多個(gè)庫(kù)函數(shù),常用的有數(shù)學(xué)函數(shù),字符函數(shù)和字符串函數(shù),輸入輸出函數(shù),動(dòng)態(tài)分配函數(shù)和隨機(jī)函數(shù)等幾個(gè)大類(lèi)。(五)標(biāo)準(zhǔn)庫(kù)函數(shù)標(biāo)準(zhǔn)庫(kù)函數(shù)不是C語(yǔ)言本身的組13三、C程序的上機(jī)執(zhí)行過(guò)程

編寫(xiě)出C程序僅僅是程序設(shè)計(jì)工作中是一個(gè)環(huán)節(jié),寫(xiě)出來(lái)的程序需要在計(jì)算機(jī)上進(jìn)行調(diào)式運(yùn)行,直到得到正確的運(yùn)行結(jié)果為止。C語(yǔ)言的上機(jī)過(guò)程C語(yǔ)言處理系統(tǒng)提供的開(kāi)發(fā)環(huán)境是編譯系統(tǒng),所以,C程序的上機(jī)執(zhí)行過(guò)程一般要經(jīng)過(guò)如圖1-1所示的四個(gè)步驟,即:編輯,編譯,連接和運(yùn)行。圖中虛線框內(nèi)是C編譯系統(tǒng)提供是語(yǔ)言處理程序和C標(biāo)準(zhǔn)庫(kù)函數(shù),單線框內(nèi)是用戶程序。下面分別說(shuō)明上機(jī)執(zhí)行過(guò)程。三、C程序的上機(jī)執(zhí)行過(guò)程編寫(xiě)出C程序僅僅14C庫(kù)函數(shù)連接程序C編譯系統(tǒng)編輯程序編譯程序用戶編輯C源程序.文件編譯目標(biāo)程序.obj文件可執(zhí)行程序.exe文件連接其它目標(biāo)文件結(jié)果執(zhí)行圖1-1程序的上機(jī)執(zhí)行過(guò)程C庫(kù)函數(shù)連接程序C編譯系統(tǒng)編輯程序編譯程序編輯C源程序編譯目15(一)編輯C源程序編輯是用戶把編寫(xiě)好的C語(yǔ)言源程序輸入計(jì)算機(jī),并以文本文件的形式存放在磁盤(pán)上。其標(biāo)識(shí)為:“文件名.C”其中文件名是由用戶指定的符合C標(biāo)識(shí)符規(guī)定的任意字符組合,擴(kuò)展名要求為“.C”,表示是C源程序。例如File1.c,t.c等。(二)編譯C源程序編譯是把C語(yǔ)言源程序翻譯成用二進(jìn)制指令表示的目標(biāo)文件。編譯過(guò)程由C編譯系統(tǒng)提供的編譯程序完成。(一)編輯C源程序編輯是用戶把編寫(xiě)好的C語(yǔ)言16(三)程序連接目標(biāo)程序計(jì)算機(jī)還是不能執(zhí)行的。程序連接過(guò)程是用系統(tǒng)提供的連接程序(也稱鏈接程序或裝配置程序)將目標(biāo)程序,庫(kù)函數(shù)或其它目標(biāo)程序連接裝配成可執(zhí)行的目標(biāo)程序。可執(zhí)行程序的文件名為:“文件名.exe”,擴(kuò)展名:“.exe”是可執(zhí)行程序的文件類(lèi)型標(biāo)識(shí)。絕大部分系統(tǒng)生成的可執(zhí)行文件的擴(kuò)展名是“.exe”,但UNIX系統(tǒng)中,生成的可執(zhí)行文件自動(dòng)確定為“a.out”,除非在編譯時(shí)用戶特別規(guī)定自己的文件名。

有的C編譯系統(tǒng)把編譯和連接放在一個(gè)命令文件中,用一條命令即可完成編譯和連接任務(wù),減少了操作過(guò)程。(三)程序連接目標(biāo)程序計(jì)算機(jī)還是不能執(zhí)行的17(四)運(yùn)行程序運(yùn)行程序是指將可執(zhí)行的目標(biāo)投入運(yùn)行。以獲取程序處理的結(jié)果。如果程序運(yùn)行結(jié)果不正確,可重新回到第一步,重新對(duì)程序進(jìn)行編輯修改,編譯和運(yùn)行。與編譯,連接不同的是,運(yùn)行程序可以脫離語(yǔ)言處理環(huán)境。因?yàn)樗菍?duì)一個(gè)可執(zhí)行程序進(jìn)行操作,與C語(yǔ)言本身已經(jīng)沒(méi)有聯(lián)系,所以可以在語(yǔ)言開(kāi)發(fā)環(huán)境下運(yùn)行,也可直接在操作系統(tǒng)下運(yùn)行。必須指出,對(duì)不同型號(hào)計(jì)算機(jī)上的C語(yǔ)言版本,上機(jī)環(huán)境各不同,編譯系統(tǒng)支持性能各異,上述步驟有些可再分解,有些也可集成進(jìn)行批處理,但邏輯上是基本相同的。目前在微機(jī)上常用的C語(yǔ)言編譯系統(tǒng)中,BorlandInternational公司的TurboC和Microsoft公司的MicrosoftVisualC++,GNUCcompiler等都被廣泛使用。以下簡(jiǎn)單介紹MicrosoftVisualC++6.0集成開(kāi)發(fā)的使用。(四)運(yùn)行程序運(yùn)行程序是指將可執(zhí)行的目標(biāo)投入18切換tc編譯器的窗口大小的快捷方式是alt+enter。F9編譯,ctrl+F9運(yùn)行,alt+F5屏幕顯示!F1

獲得TurboC2.0編輯命令的幫助信息;F5

擴(kuò)大編輯窗口到整個(gè)屏幕;F6

在編輯窗口與信息窗口之間進(jìn)行切換;F10

從編輯窗口轉(zhuǎn)到主菜單。切換tc編譯器的窗口大小的快捷方式是alt+enter。F9191、新建VC工具啟動(dòng)VC后上圖,選擇菜單[File/New]將看到新建工程向?qū)АD1-2VC的界面1、新建VC工具啟動(dòng)VC后上圖,選擇菜單[File/New]20選擇Win32ConsoleApplication項(xiàng)目,并在Projectname下面的編輯框里輸入一個(gè)工程名,Location標(biāo)簽下面選擇工程存放的路徑,然后選擇OK。圖1-3VC工程向?qū)?選擇Win32ConsoleApplica21圖1-4VC工程向?qū)?選擇Asimpleapplication然后點(diǎn)擊Finish。就回到

下面這個(gè)界面:圖1-4VC工程向?qū)?選擇Asimpleapplic22圖1-5VC工程編輯器VC工程編輯器主要分成三個(gè)部分:工作區(qū),

程序編輯區(qū),輸出區(qū)。圖1-5VC工程編輯器VC工程編輯器主要分成三個(gè)部分232、編譯和連接 代碼編輯完成后,就可以選擇菜單項(xiàng)[Build/CompileMyProgram.cpp]來(lái)對(duì)源文件進(jìn)程編譯。如果程序有錯(cuò),編譯系統(tǒng)會(huì)在輸出區(qū)給出編譯結(jié)果報(bào)告,并將警告和錯(cuò)誤信息(包括錯(cuò)誤說(shuō)明及位置)顯示在輸出中,雙擊出錯(cuò)信息的程序行,自動(dòng)進(jìn)入編輯狀態(tài)。全部修改完成后,重心進(jìn)行編譯即可。3、運(yùn)行程序

運(yùn)行編譯連接后的.EXE文件。選擇菜單項(xiàng)[Build/ExecuteMyProgram.exe]。2、編譯和連接 代碼編輯完成后,就可以選擇菜單項(xiàng)[Build24第三節(jié)實(shí)例:使用VisualC++6.6開(kāi)發(fā)環(huán)境

一、VC菜單介紹(一)File菜單:包含對(duì)文件和工作區(qū)的打開(kāi),關(guān)閉,保存的功能項(xiàng)

(二)Edit菜單:包含代碼的定位,編碼功能

(三)View菜單:包含查看類(lèi)對(duì)話框,資源對(duì)話框,和其它幾個(gè)功能窗口的功能(四)Insert菜單:新建類(lèi),資源等

(五)Project菜單:以整個(gè)工程為操作對(duì)象

(六)Build菜單(七)Tools菜單第三節(jié)實(shí)例:使用VisualC++6.6開(kāi)發(fā)環(huán)境一25二、VC工程的創(chuàng)建與執(zhí)行(一)嘗試創(chuàng)建一個(gè)Console工程,輸入如下代碼進(jìn)行編譯連接,查看運(yùn)行結(jié)果/*

*我的第一個(gè)C程序

*/

#include“stdafx.h”

#include<stdio.h>Voidmain()

{

printf(“這是我的第一個(gè)C程序\n”);}運(yùn)行結(jié)果輸出如下,如果達(dá)不到這個(gè)結(jié)果,則應(yīng)檢查編碼過(guò)程有沒(méi)出錯(cuò)。這是我的第一個(gè)C程序二、VC工程的創(chuàng)建與執(zhí)行(一)嘗試創(chuàng)建一個(gè)Console工26第四節(jié)實(shí)例:打印星號(hào)一、程序要求用“*”號(hào)打印一個(gè)“中”字。輸出效果如下圖:***

***

**************

*******

**************

***

***

***第四節(jié)實(shí)例:打印星號(hào)一、程序要求用“*”號(hào)打印一個(gè)27二、編碼提示要使用輸出函數(shù)Printf,必須要在文件開(kāi)頭有#include<satdio.h>輸出時(shí)每行要用空格來(lái)控制字樣輸出時(shí)用\n來(lái)?yè)Q行。若是在VC環(huán)境,則要在文件頭有#include”stdafx.h”語(yǔ)句,否則編譯時(shí)會(huì)報(bào)告錯(cuò)誤:找不到預(yù)編譯頭。如果實(shí)在不想包含這個(gè)文件,也可以用下面這個(gè)辦法,點(diǎn)擊菜單[Project/Settings…]彈出下面這個(gè)對(duì)話框:二、編碼提示要使用輸出函數(shù)Printf,必須要在文件開(kāi)頭有#28圖1-6設(shè)置不使用VC預(yù)編譯頭 在圖1-6中選擇C/C++屬性頁(yè),在Category里選擇PrecompiledHeaders,然后選擇Notusingprecompiledheaders并點(diǎn)擊OK。這樣的設(shè)置下就不會(huì)報(bào)告類(lèi)似的錯(cuò)誤了。頂點(diǎn)位置(290,128)矩形大小(639,465)光標(biāo)坐標(biāo)(710,376)圖1-6設(shè)置不使用VC預(yù)編譯頭 在圖1-6中選擇C/C++屬29三、程序清單#include“stdafx.h”

#include<stdio.h>Voidmain()

{

printf(“***\n”);

printf(“***\n”);

溫馨提示

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

評(píng)論

0/150

提交評(píng)論