第1章-進(jìn)入C語言的世界_第1頁
第1章-進(jìn)入C語言的世界_第2頁
第1章-進(jìn)入C語言的世界_第3頁
第1章-進(jìn)入C語言的世界_第4頁
第1章-進(jìn)入C語言的世界_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1解釋1:C++是由于開發(fā)大型應(yīng)用軟件的需要而產(chǎn)生的,并不是所有的人都要去編寫大型軟件;解釋2:C是C++的基礎(chǔ),C++學(xué)起來比C語言困難,所以不太適合程序設(shè)計(jì)的初學(xué)者。而且C是C++/C#/Java等高級語言程序設(shè)計(jì)的基礎(chǔ)。問題:既然有了面向?qū)ο蟮腃++語言,為什么還要學(xué)習(xí)C語言?2第一章進(jìn)入C語言世界本章主要內(nèi)容:

了解C語言程序的結(jié)構(gòu)設(shè)計(jì)簡單的C語言

C程序的調(diào)試和運(yùn)行計(jì)算機(jī)語言的發(fā)展

C語言程序設(shè)計(jì)3例1.1僅由main()函數(shù)構(gòu)成的C語言程序

#include<stdio.h>main()/*主函數(shù)*/{inta,b;/*聲明定義兩個(gè)整型變量*/

a=1;b=a+1;/*給兩個(gè)變量賦初值*/

printf("%d",b);/*輸出b的值*/}第一節(jié)、了解C語言程序的結(jié)構(gòu)說明:main-主函數(shù)名,void-函數(shù)類型每個(gè)C程序必須有且只有一個(gè)主函數(shù)main(

){}是函數(shù)開始和結(jié)束的標(biāo)志,不可省每個(gè)C語句以分號結(jié)束使用標(biāo)準(zhǔn)庫函數(shù)時(shí)應(yīng)在程序開頭一行寫:

#include<stdio.h>4“”表示在當(dāng)前目錄和系統(tǒng)目錄里查找,<>表示只在系統(tǒng)目錄里查找。

一般自己編寫頭文件用“”,系統(tǒng)自帶的用<>

但是如果都用“”也是可以的,只是編譯時(shí)稍微慢點(diǎn)。現(xiàn)在的電腦基本感覺不出來。

包含頭文件的寫法是:#include<stdio.h>還是#include“stdio.h”呢?來自“百度”5例1.1僅由main()函數(shù)構(gòu)成的C語言程序

#include<stdio.h>main()/*主函數(shù)*/{inta,b;/*聲明定義兩個(gè)整型變量*/

a=1;b=a+1;/*給兩個(gè)變量賦初值*/

printf("%d",b);/*輸出b的值*/}說明:/*……*/只是表示注釋,計(jì)算機(jī)不執(zhí)行注釋語句,注釋語句只是給人看的。注釋也可以用//來表示。6例1.2由main()函數(shù)和其他函數(shù)構(gòu)成的C語言程序

#include<stdio.h>myoutput()

/*自定義函數(shù)*/{

printf("\n**Hello!Howdoyoudo?**\n");

/*輸出字符串*/}main()

/*主函數(shù)*/{myoutput();/*調(diào)用自定義函數(shù)*/

printf("*************************\n");}7總結(jié):C語言的程序結(jié)構(gòu)

C程序是由函數(shù)構(gòu)成的。這使得程序容易實(shí)現(xiàn)模塊化。函數(shù)是c語言的最小模塊。一個(gè)函數(shù)由函數(shù)頭和函數(shù)體組成。

一個(gè)C程序有且僅有一個(gè)主(main)函數(shù)。一個(gè)C程序總是從main函數(shù)開始執(zhí)行,不管main函數(shù)出現(xiàn)在任何位置。8總結(jié):C語言的程序結(jié)構(gòu)

C程序使用“;”作為語句的終止符或分隔符。C程序中用“{}”表示程序的結(jié)構(gòu)層次范圍??梢詫程序作注釋,主要是對程序功能的必要說明和解釋。一個(gè)獨(dú)立執(zhí)行的c程序稱做一個(gè)c文件。所有的c程序都是由一個(gè)或多個(gè)文件組成的。一個(gè)文件又可以由一個(gè)或多個(gè)函數(shù)組成。93、C程序的書寫格式

每行通常寫一條語句每條語句結(jié)束時(shí)加分號“;”作為語句結(jié)束符花括號內(nèi)的語句通常向右縮進(jìn)兩個(gè)字符或一個(gè)水平制表符適當(dāng)采取縮進(jìn)格式很有必要,會(huì)使程序更加清晰易懂。在程序中可以使用注釋信息,增強(qiáng)程序的可讀性。初學(xué)者一定要重視程序的書寫格式,按照人們的約定和習(xí)慣來書寫c語言程序。10第二節(jié)設(shè)計(jì)簡單的C程序例1.3設(shè)計(jì)程序:已知a=3,b=5;

求sum=2a+b;#include<stdio.h>main(){inta,b,sum;//定義三個(gè)變量整型變量a,b,suma=3;//將a賦值為3b=5;

//b賦值為5sum=2*a+b;//將2*a+b的結(jié)果賦值給sumprintf(“sum=%d”,sum);

//在顯示屏上顯示出sum的值。}一、編程示例11main(){inta,b,sum;定義變量a=3;b=5;sum=2*a+bprintf("sum=%d,sum;C語言編程的常犯錯(cuò)誤:1、main()經(jīng)常出現(xiàn)拼寫錯(cuò)誤,如寫成mian()或Main()。2、忘記花括號{}、圓括號()、雙引號“”是成對出現(xiàn)的。3、語句終止沒有使用“;”。4、定義類型和變量名之間沒用空格分隔。5、注釋語句的錯(cuò)誤使用。某學(xué)生寫的有錯(cuò)誤的程序!!12習(xí)題:閱讀程序?qū)懗鼋Y(jié)果main(){printf("**************\n");printf("\n");printf("Verygood!\n");printf("\n");printf("**************\n");}二、算法及算法表示一個(gè)程序應(yīng)包括兩個(gè)方面的內(nèi)容:對數(shù)據(jù)的描述:數(shù)據(jù)結(jié)構(gòu)(datastructure)對操作的描述:算法(algorithm)著名計(jì)算機(jī)科學(xué)家沃思提出一個(gè)公式:數(shù)據(jù)結(jié)構(gòu)+算法=程序14

廣義地說,為解決一個(gè)問題而采取的方法和步驟,就稱為“算法”。方法1:1+2,+3,+4,一直加到100加99次方法2:100+(1+99)+(2+98)+…+(49+51)+50=100+49×100+50加51次對同一個(gè)問題,可有不同的解題方法和步驟例:求15有窮性:包含有限的操作步驟確定性:算法中的每一個(gè)步驟都應(yīng)當(dāng)是確定的有零個(gè)或多個(gè)輸入:輸入是指在執(zhí)行算法時(shí)需要從外界取得必要的信息有一個(gè)或多個(gè)輸出:算法的目的是為了求解,“解”就是輸出有效性:算法中的每一個(gè)步驟都應(yīng)當(dāng)能有效地執(zhí)行,并得到確定的結(jié)果。一個(gè)算法應(yīng)該具有以下特點(diǎn):例如:求出兩個(gè)整數(shù)的和的算法描述如下:

(1)定義3個(gè)變量如:a,b,c,并給3個(gè)變量分別分配內(nèi)存空間,用于存放整數(shù)值;(2)給2個(gè)變量分別賦給26、16兩個(gè)整數(shù),a=26,b=16;(3)求出兩個(gè)整數(shù)和的數(shù)值,賦給第三個(gè)變量:c=a+b;(4)輸出第三個(gè)變量c的值;(5)運(yùn)行結(jié)束。(1)自然語言表示法

結(jié)構(gòu)化程序算法描述

自然語言表示法是用自然語言敘述一個(gè)問題的求解過程。自然語言描述的算法明確、詳細(xì),是人們常用的描述解決問題的步驟的一般方法。前面的例題在描述其算法結(jié)構(gòu)的時(shí)候,用到了自然語言的描述方法。(2)程序流程圖

程序流程圖是用規(guī)定的圖形、指向線和文字說明來表示算法的一種圖形。程序流程圖的基本符號:

1)橢圓形圖框:終端框表示算法的開始與結(jié)束2)矩型圖框:處理框表示算法的各種處理功能3)菱形圖框:判斷框表示算法的條件轉(zhuǎn)移操作4)平形四邊形:表示算法的輸入/輸出操作5)圓點(diǎn)圖框:引入引出連接符表示流程圖的延續(xù)6)指向線:指向線指引流程圖中的方向19算法的表示--流程圖起止框輸入/出框判斷框處理框流程線連接點(diǎn)20“兩數(shù)中取大數(shù)”的流程圖21傳統(tǒng)流程圖的弊端傳統(tǒng)流程圖用流程線指出各框的執(zhí)行順序,對流程線的使用沒有嚴(yán)格限制。因此,使用者可以毫不受限制地使流程隨意地轉(zhuǎn)向,使流程圖變得毫無規(guī)律,閱讀者要花很大精力去追蹤流程,使人難以理解算法的邏輯。如圖:22傳統(tǒng)流程圖的流程可以是:

這種如同亂麻一樣的算法稱為BS型算法,意為一碗面條(ABowlofSpaghetti),亂無頭緒。缺點(diǎn):難以閱讀、修改,使算法的可靠性和可維護(hù)性難以保證。解決辦法:必須限制箭頭的濫用,即不允許無規(guī)律地使流程隨意轉(zhuǎn)向,只能順序地進(jìn)行下去。

(3)、N-S圖

N-S圖用層層嵌套的方框圖形來描述程序算法,避免了流程圖中出現(xiàn)的流程線,有效控制了無條件轉(zhuǎn)移,體現(xiàn)了結(jié)構(gòu)化描述方法。N-S圖的基本結(jié)構(gòu)框圖

條件P

T

F

A

B選擇結(jié)構(gòu)流程圖(4)偽代碼表示算法

偽代碼表示算法是用介于自然語言和計(jì)算機(jī)語言之間的文字和符號表示算法。偽碼表示的拼詞檢查程序如下:PROCEDUREspellcheckISBEGINsplitdocumentintosinglewordslookupwordsindictionarydisplaywordswhicharenotindictionarycreateanewdictionaryENDspellcheck25第三節(jié)C程序的調(diào)試與運(yùn)行一、C語言程序的實(shí)現(xiàn)編寫好一個(gè)C程序到完成運(yùn)行一般經(jīng)過以下幾個(gè)步驟:編輯編譯連(鏈)接執(zhí)(運(yùn))行2627C語言上機(jī)源程序test.ctest.obj可執(zhí)行代碼test.exe

運(yùn)行編譯連接1、將源程序逐個(gè)字符輸入到計(jì)算機(jī)內(nèi)存;2、修改源程序;3、將修改好的源程序保存在磁盤文件中,其文件擴(kuò)展名為.c。將編輯好的源程序翻譯成二進(jìn)制的目標(biāo)代碼。編譯時(shí),系統(tǒng)對源程序進(jìn)行語法檢查,如發(fā)現(xiàn)錯(cuò)誤,顯示出錯(cuò)信息,此時(shí)要對源程序進(jìn)行修改后重新編譯,直到通過編譯為止,生成擴(kuò)展名為.obj的同名文件。將各個(gè)模塊的二進(jìn)制目標(biāo)代碼與系統(tǒng)標(biāo)準(zhǔn)模塊經(jīng)過連接處理后,得到可執(zhí)行的文件,其擴(kuò)展名為.exe。28C語言上機(jī)上機(jī)環(huán)境:TurboC

這是一個(gè)集編輯,編譯,連接,執(zhí)行和調(diào)試為一體的全屏幕語言工具。優(yōu)點(diǎn):系統(tǒng)小 缺點(diǎn):不支持鼠標(biāo)(MS-dos方式)啟動(dòng)TurboC:

MS-dos方式TC

Windows98/2000雙擊相應(yīng)文件夾下tc 應(yīng)用程序。如:c:\turboc2\tc29在VC++6.0中編譯C程序(1)創(chuàng)建文件(2)編輯代碼并保存(3)編譯、連接、運(yùn)行源程序(4)關(guān)閉工作區(qū)30在VC++6.0中編譯C程序(1)創(chuàng)建文件方法一:在任意位置處創(chuàng)建一個(gè)記事本文件,保存格式由.txt修改為.c,如exam.c。啟動(dòng)VC++環(huán)境,選擇菜單欄中的File->Open命令,在彈出的“打開”對話框中選擇創(chuàng)建exam.c文件。31在VC++6.0中編譯C程序(1)創(chuàng)建文件方法二:啟動(dòng)VC++,選擇菜單欄中的File->New命令,在New對話框中選擇File選項(xiàng)卡。在左邊列出的選項(xiàng)中,選擇C++Source

File或TextFile選項(xiàng),在右邊File文本框中輸入exam.c,單出Location按鈕修改保存的位置。32在VC++6.0中編譯C程序(2)編輯代碼并保存33在VC++6.0中編譯C程序(3)編譯、連接、運(yùn)行源程序編譯(compile)當(dāng)輸出窗口中的信息提示為Text1.obj

–0error(s),0warning(s)時(shí),則表示編譯正確。34在VC++6.0中編譯C程序(3)編譯、連接、運(yùn)行源程序連接(build)35在VC++6.0中編譯C程序(3)編譯、連接、運(yùn)行源程序運(yùn)行課堂要求每個(gè)同學(xué)在自己電腦里面(非c盤)新建一個(gè)以“學(xué)號+姓名”的文件夾,比如“20090000079游錦儀”,課堂所做的習(xí)題都放里面,每道習(xí)題都必須在此文件夾里再新建一個(gè)文件夾。因此最好不要換座位。另:最好帶u盤上課,以便于保存,因?yàn)闄C(jī)房電腦會(huì)定時(shí)清盤。養(yǎng)成良好的文件整理習(xí)慣

課堂練習(xí)

p23項(xiàng)目實(shí)訓(xùn)1和238第四節(jié)

計(jì)算機(jī)語言的發(fā)展過程(課后自習(xí))1、第一代語言——機(jī)器語言(低級語言):面向機(jī)器由0,1組成的機(jī)器指令的集合如:1011011000000000讓計(jì)算機(jī)進(jìn)行一次加法1011010100000000讓計(jì)算機(jī)進(jìn)行一次減法機(jī)器只認(rèn)這些0,1組成的二進(jìn)制代碼。優(yōu)點(diǎn):缺點(diǎn):2、第二代語言——匯編語言(仍為低級語言),也叫符號語言:面向機(jī)器用符號代替機(jī)器語言中的二進(jìn)制代碼。39例如:

LDA A 取出A(LDA=LoadAccumulate) ADDB 加B STA C 存入C (STA=StoreAccumulate) PRINTC 打印C STOP 停止優(yōu)點(diǎn):缺點(diǎn):

匯編語言匯編程序機(jī)器語言執(zhí)行結(jié)果源程序系統(tǒng)軟件目標(biāo)程序匯編

C程序設(shè)計(jì)403、第三代語言——算法語言(高級語言)按照算法書寫的,符合人們的習(xí)慣,表達(dá)式接近人們的會(huì)話(英語)和數(shù)學(xué)表達(dá)式。易于掌握書寫,且不依賴于具體機(jī)器。故稱為高級語言。常用的有BASIC、FORTRAN、COBOL、PASCAL、C語言等。需要翻譯系統(tǒng),執(zhí)行過程如下:高級語言高級語言機(jī)器語言執(zhí)行結(jié)果源程序系統(tǒng)軟件目標(biāo)程序編譯兩大特點(diǎn):簡單、易于書寫、掌握;通用性。414、第四代語言:非過程化語言(高生產(chǎn)率語言):面向?qū)ο蟮恼Z言只需對問題進(jìn)行描述即可,即面向?qū)ο蟮恼Z言O(shè)OL:Object-OrientedLanguageOOP:Object-OrientedProgramming5、第五代語言:智能化語言主要為AI而設(shè)計(jì)的。如:KBS、ES、推理工程、自然語言處理等。典型的人工智能語言主要有:LISP、Prolog、Smalltalk、C++等比較有代表性的有:LISP、PROLOG語言等。

42C語言發(fā)展簡況一C語言起源

在C之前,包括操作系統(tǒng)在內(nèi)的一些系統(tǒng)軟件,主要用匯編語言編寫,匯編語言是一種低級語言,所謂“低級”,是從計(jì)算機(jī)系統(tǒng)的層次觀點(diǎn)角度而言的。在計(jì)算機(jī)系統(tǒng)中,硬件是最低層,而匯編語言最接近硬件,可以對硬件施加控制和操作,能充分發(fā)揮機(jī)器的潛能,并且,匯編語言程序執(zhí)行速度最快,這些特點(diǎn)都是開發(fā)系統(tǒng)軟件不可缺少的,但是匯編語言43編程難,調(diào)試也難,可讀性和移植性都很差,與

溫馨提示

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

最新文檔

評論

0/150

提交評論