記憶語法思考算法讀懂程序循序漸進記好筆記上機課件_第1頁
記憶語法思考算法讀懂程序循序漸進記好筆記上機課件_第2頁
記憶語法思考算法讀懂程序循序漸進記好筆記上機課件_第3頁
記憶語法思考算法讀懂程序循序漸進記好筆記上機課件_第4頁
記憶語法思考算法讀懂程序循序漸進記好筆記上機課件_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

記憶語法、思考算法。讀懂程序、循序漸進。記好筆記、上機調(diào)試。學習方法記憶語法、思考算法。學習方法1程序設(shè)計語言計算機語言的種類機器語言匯編語言高級語言面向機器面向過程面向?qū)ο蠓g程序設(shè)計語言計算機語言的種類機器語言匯編語言高級語言面向機器2程序翻譯方式解

釋編

譯邊翻譯邊執(zhí)行不產(chǎn)生目標代碼先翻譯后執(zhí)行產(chǎn)生目標代碼BasicC、C++程序翻譯方式解釋編譯邊翻譯邊執(zhí)行先翻譯后執(zhí)行Basi3例如:X=1Y=2PrintX+Ymain(){intx,y;x=1;y=2;printf(“%d,%d\n”,x,y);}Basic源程序C源程序01代碼01代碼01代碼01代碼執(zhí)行執(zhí)行執(zhí)行解

釋…01代碼執(zhí)行編

譯目標程序例如:X=1main()Basic源程序C源程序01代碼04常用的C語言編譯系統(tǒng)TurboC2.0DOS環(huán)境英文界面編譯C程序機房選用TurboC++3.0DOS界面支持鼠標編譯C++程序.CPP兼容C程序.C第三版選用VisualC++6.0可視化開發(fā)環(huán)境Windows界面編譯C++程序?qū)嶋H開發(fā)復賽上機環(huán)境:Dev-C++4.9.9.2

常用的C語言編譯系統(tǒng)TurboC2.0DOS環(huán)境機房選用5C語言概述

C語言–––既可作為系統(tǒng)軟件的程序設(shè)計語言,又可作為應用軟件的程序設(shè)計語言。尤其是當今計算機應用極為廣泛,軟件的設(shè)計、編寫質(zhì)量要求高,經(jīng)常與硬件部分打交道,如:界面設(shè)計等,所以用C語言編寫是最理想的。因而C語言也是當前計算機語言中用得最廣泛的語言之一。C語言概述

C語言–––既可作為系統(tǒng)軟件的程61.1C語言出現(xiàn)的歷史背景一、操作系統(tǒng)的設(shè)計語言O(shè).S.–––操作系統(tǒng),為用戶使用計算機提供一個操作環(huán)境:系統(tǒng)命令、語言編程等。如:DOS.UNIX以前:O.S.軟件用匯編指令編寫。匯編語言:一種二進制指令代碼的符號表示,既煩鎖,又易出錯,可讀性差。改進:用C語言編寫,既提高了程序的可讀性,又可與硬件打交道。1.1C語言出現(xiàn)的歷史背景一、操作系統(tǒng)的設(shè)計語言O(shè).S.7二、發(fā)展過程

1960年出現(xiàn)了Algol60語言,但該語言主要面向問題,與硬件較遠,故英國劍橋大學推出了CPL(CombinedProgrammingLanguage)

1967年,MatinRichards對CPL進行改進、簡化、推出了BCPL(BasicCombinedProgrammingLanguage)

1970年,美國貝爾實驗室KenThomson以BCPL為基礎(chǔ),再次簡化推出了B語言,并寫了第一個UNIX系統(tǒng)。二、發(fā)展過程1960年出現(xiàn)了Algol60語言,但該語言8

美國貝爾實驗室D.M.Ritchie在B語言基礎(chǔ)上設(shè)計出了C語言,并用其將UNIX系統(tǒng)全部改寫并實現(xiàn)。

經(jīng)進一步改進,至1977年出現(xiàn)了與具體機器無關(guān)的C編譯文本,從而使C語言廣泛應用,各種機器皆可使用。

1978年,美國BrainW.Kernighan與Dennis.M.Ritchie聯(lián)合出版一書《TheCProgrammingLanguage》成為ANSIC之基礎(chǔ)。美國貝爾實驗室D.M.Ritchie在B語言基礎(chǔ)上設(shè)9

1983年,美國標準化協(xié)會(ANSI)制定了ANSIC。

ANSIC為基礎(chǔ):不同機器有不同版本,尤其是函數(shù)均應參考相應的機器。1983年,美國標準化協(xié)會(ANSI)制定了ANSI101.2C語言的特點只有通過學習,方可理解C之特點,先簡敘之:1.簡潔、緊湊、方便、靈活32個關(guān)鍵字,9種控制語句,主要用小寫字母,壓縮一切不必要成分2.運算符豐富除了最基本的+、-、×、÷、%等運算外,還將括號、賦值、類型強制轉(zhuǎn)換等均作為運算符,共有34種運算符。1.2C語言的特點只有通過學習,方可理解113.數(shù)據(jù)結(jié)構(gòu)豐富除基本類型外,有指針,結(jié)構(gòu)體、共同體等類型。4.具有結(jié)構(gòu)化的控制語句模塊完整,控制中的語句可完整化。5.語法嚴格,但有靈活性如:數(shù)據(jù)類型可相互通用:整型、字符型通用。3.數(shù)據(jù)結(jié)構(gòu)豐富4.具有結(jié)構(gòu)化的控制語句5.語法嚴格,126.可與機器硬件打交道,直接訪問內(nèi)存地址,具有“高”、“低”級語言之功能。7.生成目標代碼質(zhì)量高,執(zhí)行效率高。8.可移植性優(yōu)于匯編語言。6.可與機器硬件打交道,直接訪問內(nèi)存地址,具有“高131.3簡單的C程序介紹例1.1:顯示一行信息。main為函數(shù)名,表示主函數(shù),()內(nèi)為函數(shù)參數(shù),無參時()不能省。每個函數(shù)完成獨立的功能。一個程序必須有一個主函數(shù),程序從主函數(shù)開始執(zhí)行。一、C語言程序是由函數(shù)組成的。main(){printf(“ThisisaCprogram\n”);}{}內(nèi)為函數(shù)體printf是標準函數(shù)庫中的輸出函數(shù),在屏幕上顯示指定內(nèi)容。“”表示字符串,按原樣輸出。\n為轉(zhuǎn)義字符(換行符)。說明部分執(zhí)行部分由若干語句組成,語句以;號結(jié)束定義函數(shù)用到的數(shù)據(jù)類型(可以沒有說明部分)運行結(jié)果:ThisisaCprogram1.3簡單的C程序介紹例1.1:顯示一行信息。main為14例1.2main()/*求兩數(shù)之和*/{inta,b,sum;/*這是定義變量*/a=123;b=456;/*以下3行為C語句*/sum=a+b;printf("sumis%d/n",sum);}本程序的作用是求兩個整數(shù)a和b之和sum。/*……*/表示注釋部分,為便于理解,我們用漢字表示注釋,當然也可以用英語或漢字拼音作注釋。注釋只是給人看的,對編譯和運行不起作用。注釋可以加在程序中任何位置。第2行是聲明部分,定義變量a和b,指定a和b為整型(int)變量。第3行是兩個賦值語句,使a和b的值分別為123和例1.215456。第4行使sum的值為a+b,第5行中“%d”是輸入輸出的“格式字符串”,用來指定輸入輸出時的數(shù)據(jù)類型和格式(詳見第4章),“%d”表示“以十進制整數(shù)形式輸出”。在執(zhí)行輸出時,此位置上代以一個十進制整數(shù)值。printf函數(shù)中括弧內(nèi)最右端sum是要輸出的變量,現(xiàn)在它的值為579(即123+456之值)。因此輸出一行信息為sumis579456。第4行使sum的值為a+b,第5行中“%d”是輸入16main()/*主函數(shù)*/{inta,b,c;/*定義變量*/scanf("%d,%d",&a,&b);/*輸入變量a和b的值*/c=max(a,b);/*調(diào)用max函數(shù),將得到的值賦給c*/printf("max=%d",c);

/*輸出c的值*/}例1.3main()17intmax(intx,inty)/*對形參x、y作類型定義*/{intz;/*max函用到的變量z,也要加以定義*/z=y;if(x>y)z=x;return(z);/*將z的值返回,通過max帶回調(diào)用處*/}intmax(intx,inty)/*對18本程序包括兩個函數(shù):主函數(shù)main和被調(diào)用的函數(shù)max。max函數(shù)的作用是將x和y中較大者的值賦給變量z。return語句將z的值返回給主調(diào)函數(shù)main。返回值是通過函數(shù)名max帶回到main函數(shù)的調(diào)用處。main函數(shù)中的scanf是“輸入函數(shù)”的名字(scanf和printf都是C系統(tǒng)提供的標準輸入輸出函數(shù))。程序中scanf函數(shù)的作用是輸入a和b的值。&a和&b中的“&”的含義是“取地址”,此scanf函數(shù)的作用是將兩個數(shù)值分別輸入到變量a和b的地址所標志的單元中,也就是輸入給變量a和b。本程序包括兩個函數(shù):主函數(shù)main和被調(diào)用的19main函數(shù)中第4行為調(diào)用max函數(shù),在調(diào)用時將實際參數(shù)a和b的值分別傳送給max函數(shù)中的形式參數(shù)x和y。經(jīng)過執(zhí)行max函數(shù)得到一個返回值(即max函數(shù)中變量z的值),把這個值賦給變量c。然后輸出c的值。printf函數(shù)中雙引號內(nèi)的“max=%d”,在輸出時,其中“%d”將由c的值取代之,“max=”原樣輸出。程序運行情況如下:8,5(輸入8和5給a和b)max=8(輸出c的值)main函數(shù)中第4行為調(diào)用max函數(shù),在調(diào)用時將實際參數(shù)a和20本例用到了函數(shù)調(diào)用、實際參數(shù)和形式參數(shù)等概念,我們只做了很簡單的解釋。讀者如對此不大理解,可以先不予以深究,在學到以后有關(guān)章節(jié)時,問題自然迎刃而解。在此介紹此例子,無非是使讀者對C程序的組成和形式有一個初步的了解。本例用到了函數(shù)調(diào)用、實際參數(shù)和形式參數(shù)等概念,我們只做了很簡21通過以上幾個例子,可以看到:1、C程序是由函數(shù)構(gòu)成的。一個C源程序至少包含一個main函數(shù),也可以包含一個main函數(shù)和若干個其他函數(shù)。因此,函數(shù)是C程序的基本單位。被調(diào)用的函數(shù)可以是系統(tǒng)提供的庫函數(shù)(例如printf和scanf函數(shù)),也可以是用戶根據(jù)需要自己編制設(shè)計的函數(shù)(例如,例1.3中的max函數(shù))。C的函數(shù)相當于其他語言中的子程序,用函數(shù)來實現(xiàn)特定的功能。程序中的全部工作都是由各個函數(shù)分別完成的。編寫C程序就是編寫一個個函數(shù)。通過以上幾個例子,可以看到:1、C程序是由函數(shù)構(gòu)成的。一個C222、一個函數(shù)由兩部分組成:①函數(shù)的首部,即函數(shù)的第一行。包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函數(shù)參數(shù)(形參)名、參數(shù)類型。例如,例1.3中的max函數(shù)的首部為intmax(intx,inty)↓↓↓↓↓↓

函數(shù)類型函數(shù)名函數(shù)參數(shù)類型函數(shù)參數(shù)名函數(shù)參數(shù)類型函數(shù)參數(shù)名一個函數(shù)名后面必須跟一對圓括弧,函數(shù)參數(shù)可以沒有,如main()。2、一個函數(shù)由兩部分組成:①函數(shù)的首部,即函數(shù)的第一行。包23②函數(shù)體即函數(shù)首部下面的大括弧{……}內(nèi)的部分。如果一個函數(shù)內(nèi)有多個大括弧,則最外層的一對{}為函數(shù)體的范圍。函數(shù)體一般包括:聲明部分:在這部分中定義所用到的變量,如例1.3中main函數(shù)中的“inta,b,c;”。在第8章中還將會看到,在聲明部分中要對所調(diào)用的函數(shù)進行聲明。執(zhí)行部分:由若干個語句組成。②函數(shù)體即函數(shù)首部下面的大括弧{……}內(nèi)的部分。如果一個函24當然,在某些情況下也可以沒有聲明部分(例如,例1.1)。甚至可以既無聲明部分,也無執(zhí)行部分。如:dump(){}它是一個空函數(shù),什么也不干,但這是合法的。當然,在某些情況下也可以沒有聲明部分(例如,例1.1)。甚至253、一個C程序總是從main函數(shù)開始執(zhí)行的,而不論main函數(shù)在整個程序中的位置如何(main函數(shù)可以放在程序最前頭,也可以放在程序最后,或在一些函數(shù)之前,在另一些函數(shù)之后)。3、一個C程序總是從main函數(shù)開始執(zhí)行的,而不論main264、C程序書寫格式自由,一行內(nèi)可以寫幾個語句,一個語句可以分寫在多行上。C程序沒有行號,也不像FORTRAN或COBOL那樣嚴格規(guī)定書寫格式(語句必須從某一列開始書寫)。4、C程序書寫格式自由,一行內(nèi)可以寫幾個語句,一個語句可以275、每個語句和數(shù)據(jù)定義的最后必須有一個分號。分號是C語句的必要組成部分。例如:c=a+b;分號不可少。即使是程序中最后一個語句也應包含分號。5、每個語句和數(shù)據(jù)定義的最后必須有一個分號。分號是C語句的必286、C語言本身沒有輸入輸出語句。輸入和輸出的操作是由庫函數(shù)scanf和printf等函數(shù)來完成的。C對輸入輸出實行“函數(shù)化”。由于輸入輸出操作牽涉到具體的計算機設(shè)備,把輸入輸出操作放在函數(shù)中處理,就可以使C語言本身的規(guī)模較小,編譯程序簡單,很容易在各種機器上實現(xiàn),程序具有可移植性。6、C語言本身沒有輸入輸出語句。輸入和輸出的操作是由庫函數(shù)s297、可以用/*……*/對C程序中的任何部分作注釋。一個好的、有使用價值的源程序都應當加上必要的注釋,以增加程序的可讀性。7、可以用/*……*/對C程序中的任何部分作注釋。一個好的、30標準庫函數(shù)用戶自定義函數(shù)用預處理命令:#include“頭文件名”聲明后便可使用需用戶自己定義函數(shù)后才能使用函

數(shù)若在函數(shù)庫中找不到所需函數(shù)時,需要自己定義函數(shù)比如:例1.3中的max函數(shù)延伸知識:許多程序設(shè)計語言中,可以將一段經(jīng)常需要使用的代碼封裝起來,在需要使用時可以直接調(diào)用,這就是程序中的函數(shù)。

標準庫函數(shù)用戶自定義函數(shù)用預處理命令:需用戶自己定義函數(shù)31編譯系統(tǒng)的庫文件提供的庫函數(shù)例1.4計算正弦值#include“math.h”main(){floatx;/*說明x為實型變量*/x=sin(0.19199);/*調(diào)用sin函數(shù)*/printf(“%f

\n”,x);}運行結(jié)果:0.190813%f為格式字符

,此處用“”后對應的變量值代替。%f實型、%d十進制整數(shù)、%c字符、%s字符串、%o八進制整數(shù)math.h為數(shù)學庫函數(shù)頭文件。用庫函數(shù)前應用預處理命令聲明(末尾不帶;號)說明部分執(zhí)行部分/*與*/之間為注釋,不編譯不執(zhí)行庫函數(shù)頭文件:數(shù)學:math.h字符:ctype.h字符串:string.h輸入輸出:stdio.h動態(tài)分配:malloc.hmain調(diào)用sin和printf函數(shù)1補充舉例2說明編譯系統(tǒng)的庫文件提供的庫函數(shù)例1.4計算正弦值#inclu32C程序的上機步驟我們已經(jīng)看到了一些用C語言編寫的程序。為了使計算機能按照人們的意志進行工作,必須根據(jù)問題的要求,編寫出相應的程序。所謂程序,就是一組計算機能識別和執(zhí)行的指令。每一條指令使計算機執(zhí)行特定的操作。程序可以用高級語言(例如QBASIC,F(xiàn)ORTRAN,PASCAL,C等)編寫。用高級語言編寫的程序稱為“源程序”(source

溫馨提示

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

評論

0/150

提交評論