版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1解釋1:C++是由于開發(fā)大型應(yīng)用軟件的需要而產(chǎn)生的,并不是所有的人都要去編寫大型軟件;解釋2:C是C++的基礎(chǔ),C++學(xué)起來比C語言困難,所以不太適合程序設(shè)計的初學(xué)者。而且C是C++/C#/Java等高級語言程序設(shè)計的基礎(chǔ)。問題:既然有了面向?qū)ο蟮腃++語言,為什么還要學(xué)習(xí)C語言?2第一章進入C語言世界本章主要內(nèi)容:
了解C語言程序的結(jié)構(gòu)設(shè)計簡單的C語言
C程序的調(diào)試和運行計算機語言的發(fā)展
C語言程序設(shè)計3例1.1僅由main()函數(shù)構(gòu)成的C語言程序
#include<stdio.h>main()/*主函數(shù)*/{inta,b;/*聲明定義兩個整型變量*/
a=1;b=a+1;/*給兩個變量賦初值*/
printf("%d",b);/*輸出b的值*/}第一節(jié)、了解C語言程序的結(jié)構(gòu)說明:main-主函數(shù)名,void-函數(shù)類型每個C程序必須有且只有一個主函數(shù)main(
){}是函數(shù)開始和結(jié)束的標志,不可省每個C語句以分號結(jié)束使用標準庫函數(shù)時應(yīng)在程序開頭一行寫:
#include<stdio.h>4“”表示在當(dāng)前目錄和系統(tǒng)目錄里查找,<>表示只在系統(tǒng)目錄里查找。
一般自己編寫頭文件用“”,系統(tǒng)自帶的用<>
但是如果都用“”也是可以的,只是編譯時稍微慢點?,F(xiàn)在的電腦基本感覺不出來。
包含頭文件的寫法是:#include<stdio.h>還是#include“stdio.h”呢?來自“百度”5例1.1僅由main()函數(shù)構(gòu)成的C語言程序
#include<stdio.h>main()/*主函數(shù)*/{inta,b;/*聲明定義兩個整型變量*/
a=1;b=a+1;/*給兩個變量賦初值*/
printf("%d",b);/*輸出b的值*/}說明:/*……*/只是表示注釋,計算機不執(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)成的。這使得程序容易實現(xiàn)模塊化。函數(shù)是c語言的最小模塊。一個函數(shù)由函數(shù)頭和函數(shù)體組成。
一個C程序有且僅有一個主(main)函數(shù)。一個C程序總是從main函數(shù)開始執(zhí)行,不管main函數(shù)出現(xiàn)在任何位置。8總結(jié):C語言的程序結(jié)構(gòu)
C程序使用“;”作為語句的終止符或分隔符。C程序中用“{}”表示程序的結(jié)構(gòu)層次范圍??梢詫程序作注釋,主要是對程序功能的必要說明和解釋。一個獨立執(zhí)行的c程序稱做一個c文件。所有的c程序都是由一個或多個文件組成的。一個文件又可以由一個或多個函數(shù)組成。93、C程序的書寫格式
每行通常寫一條語句每條語句結(jié)束時加分號“;”作為語句結(jié)束符花括號內(nèi)的語句通常向右縮進兩個字符或一個水平制表符適當(dāng)采取縮進格式很有必要,會使程序更加清晰易懂。在程序中可以使用注釋信息,增強程序的可讀性。初學(xué)者一定要重視程序的書寫格式,按照人們的約定和習(xí)慣來書寫c語言程序。10第二節(jié)設(shè)計簡單的C程序例1.3設(shè)計程序:已知a=3,b=5;
求sum=2a+b;#include<stdio.h>main(){inta,b,sum;//定義三個變量整型變量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語言編程的常犯錯誤:1、main()經(jīng)常出現(xiàn)拼寫錯誤,如寫成mian()或Main()。2、忘記花括號{}、圓括號()、雙引號“”是成對出現(xiàn)的。3、語句終止沒有使用“;”。4、定義類型和變量名之間沒用空格分隔。5、注釋語句的錯誤使用。某學(xué)生寫的有錯誤的程序??!12習(xí)題:閱讀程序?qū)懗鼋Y(jié)果main(){printf("**************\n");printf("\n");printf("Verygood!\n");printf("\n");printf("**************\n");}二、算法及算法表示一個程序應(yīng)包括兩個方面的內(nèi)容:對數(shù)據(jù)的描述:數(shù)據(jù)結(jié)構(gòu)(datastructure)對操作的描述:算法(algorithm)著名計算機科學(xué)家沃思提出一個公式:數(shù)據(jù)結(jié)構(gòu)+算法=程序14
廣義地說,為解決一個問題而采取的方法和步驟,就稱為“算法”。方法1:1+2,+3,+4,一直加到100加99次方法2:100+(1+99)+(2+98)+…+(49+51)+50=100+49×100+50加51次對同一個問題,可有不同的解題方法和步驟例:求15有窮性:包含有限的操作步驟確定性:算法中的每一個步驟都應(yīng)當(dāng)是確定的有零個或多個輸入:輸入是指在執(zhí)行算法時需要從外界取得必要的信息有一個或多個輸出:算法的目的是為了求解,“解”就是輸出有效性:算法中的每一個步驟都應(yīng)當(dāng)能有效地執(zhí)行,并得到確定的結(jié)果。一個算法應(yīng)該具有以下特點:例如:求出兩個整數(shù)的和的算法描述如下:
(1)定義3個變量如:a,b,c,并給3個變量分別分配內(nèi)存空間,用于存放整數(shù)值;(2)給2個變量分別賦給26、16兩個整數(shù),a=26,b=16;(3)求出兩個整數(shù)和的數(shù)值,賦給第三個變量:c=a+b;(4)輸出第三個變量c的值;(5)運行結(jié)束。(1)自然語言表示法
結(jié)構(gòu)化程序算法描述
自然語言表示法是用自然語言敘述一個問題的求解過程。自然語言描述的算法明確、詳細,是人們常用的描述解決問題的步驟的一般方法。前面的例題在描述其算法結(jié)構(gòu)的時候,用到了自然語言的描述方法。(2)程序流程圖
程序流程圖是用規(guī)定的圖形、指向線和文字說明來表示算法的一種圖形。程序流程圖的基本符號:
1)橢圓形圖框:終端框表示算法的開始與結(jié)束2)矩型圖框:處理框表示算法的各種處理功能3)菱形圖框:判斷框表示算法的條件轉(zhuǎn)移操作4)平形四邊形:表示算法的輸入/輸出操作5)圓點圖框:引入引出連接符表示流程圖的延續(xù)6)指向線:指向線指引流程圖中的方向19算法的表示--流程圖起止框輸入/出框判斷框處理框流程線連接點20“兩數(shù)中取大數(shù)”的流程圖21傳統(tǒng)流程圖的弊端傳統(tǒng)流程圖用流程線指出各框的執(zhí)行順序,對流程線的使用沒有嚴格限制。因此,使用者可以毫不受限制地使流程隨意地轉(zhuǎn)向,使流程圖變得毫無規(guī)律,閱讀者要花很大精力去追蹤流程,使人難以理解算法的邏輯。如圖:22傳統(tǒng)流程圖的流程可以是:
這種如同亂麻一樣的算法稱為BS型算法,意為一碗面條(ABowlofSpaghetti),亂無頭緒。缺點:難以閱讀、修改,使算法的可靠性和可維護性難以保證。解決辦法:必須限制箭頭的濫用,即不允許無規(guī)律地使流程隨意轉(zhuǎ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)偽代碼表示算法
偽代碼表示算法是用介于自然語言和計算機語言之間的文字和符號表示算法。偽碼表示的拼詞檢查程序如下:PROCEDUREspellcheckISBEGINsplitdocumentintosinglewordslookupwordsindictionarydisplaywordswhicharenotindictionarycreateanewdictionaryENDspellcheck25第三節(jié)C程序的調(diào)試與運行一、C語言程序的實現(xiàn)編寫好一個C程序到完成運行一般經(jīng)過以下幾個步驟:編輯編譯連(鏈)接執(zhí)(運)行2627C語言上機源程序test.ctest.obj可執(zhí)行代碼test.exe
運行編譯連接1、將源程序逐個字符輸入到計算機內(nèi)存;2、修改源程序;3、將修改好的源程序保存在磁盤文件中,其文件擴展名為.c。將編輯好的源程序翻譯成二進制的目標代碼。編譯時,系統(tǒng)對源程序進行語法檢查,如發(fā)現(xiàn)錯誤,顯示出錯信息,此時要對源程序進行修改后重新編譯,直到通過編譯為止,生成擴展名為.obj的同名文件。將各個模塊的二進制目標代碼與系統(tǒng)標準模塊經(jīng)過連接處理后,得到可執(zhí)行的文件,其擴展名為.exe。28C語言上機上機環(huán)境:TurboC
這是一個集編輯,編譯,連接,執(zhí)行和調(diào)試為一體的全屏幕語言工具。優(yōu)點:系統(tǒng)小 缺點:不支持鼠標(MS-dos方式)啟動TurboC:
MS-dos方式TC
Windows98/2000雙擊相應(yīng)文件夾下tc 應(yīng)用程序。如:c:\turboc2\tc29在VC++6.0中編譯C程序(1)創(chuàng)建文件(2)編輯代碼并保存(3)編譯、連接、運行源程序(4)關(guān)閉工作區(qū)30在VC++6.0中編譯C程序(1)創(chuàng)建文件方法一:在任意位置處創(chuàng)建一個記事本文件,保存格式由.txt修改為.c,如exam.c。啟動VC++環(huán)境,選擇菜單欄中的File->Open命令,在彈出的“打開”對話框中選擇創(chuàng)建exam.c文件。31在VC++6.0中編譯C程序(1)創(chuàng)建文件方法二:啟動VC++,選擇菜單欄中的File->New命令,在New對話框中選擇File選項卡。在左邊列出的選項中,選擇C++Source
File或TextFile選項,在右邊File文本框中輸入exam.c,單出Location按鈕修改保存的位置。32在VC++6.0中編譯C程序(2)編輯代碼并保存33在VC++6.0中編譯C程序(3)編譯、連接、運行源程序編譯(compile)當(dāng)輸出窗口中的信息提示為Text1.obj
–0error(s),0warning(s)時,則表示編譯正確。34在VC++6.0中編譯C程序(3)編譯、連接、運行源程序連接(build)35在VC++6.0中編譯C程序(3)編譯、連接、運行源程序運行課堂要求每個同學(xué)在自己電腦里面(非c盤)新建一個以“學(xué)號+姓名”的文件夾,比如“20090000079游錦儀”,課堂所做的習(xí)題都放里面,每道習(xí)題都必須在此文件夾里再新建一個文件夾。因此最好不要換座位。另:最好帶u盤上課,以便于保存,因為機房電腦會定時清盤。養(yǎng)成良好的文件整理習(xí)慣
課堂練習(xí)
p23項目實訓(xùn)1和238第四節(jié)
計算機語言的發(fā)展過程(課后自習(xí))1、第一代語言——機器語言(低級語言):面向機器由0,1組成的機器指令的集合如:1011011000000000讓計算機進行一次加法1011010100000000讓計算機進行一次減法機器只認這些0,1組成的二進制代碼。優(yōu)點:缺點:2、第二代語言——匯編語言(仍為低級語言),也叫符號語言:面向機器用符號代替機器語言中的二進制代碼。39例如:
LDA A 取出A(LDA=LoadAccumulate) ADDB 加B STA C 存入C (STA=StoreAccumulate) PRINTC 打印C STOP 停止優(yōu)點:缺點:
匯編語言匯編程序機器語言執(zhí)行結(jié)果源程序系統(tǒng)軟件目標程序匯編
C程序設(shè)計403、第三代語言——算法語言(高級語言)按照算法書寫的,符合人們的習(xí)慣,表達式接近人們的會話(英語)和數(shù)學(xué)表達式。易于掌握書寫,且不依賴于具體機器。故稱為高級語言。常用的有BASIC、FORTRAN、COBOL、PASCAL、C語言等。需要翻譯系統(tǒng),執(zhí)行過程如下:高級語言高級語言機器語言執(zhí)行結(jié)果源程序系統(tǒng)軟件目標程序編譯兩大特點:簡單、易于書寫、掌握;通用性。414、第四代語言:非過程化語言(高生產(chǎn)率語言):面向?qū)ο蟮恼Z言只需對問題進行描述即可,即面向?qū)ο蟮恼Z言O(shè)OL:Object-OrientedLanguageOOP:Object-OrientedProgramming5、第五代語言:智能化語言主要為AI而設(shè)計的。如:KBS、ES、推理工程、自然語言處理等。典型的人工智能語言主要有:LISP、Prolog、Smalltalk、C++等比較有代表性的有:LISP、PROLOG語言等。
42C語言發(fā)展簡況一C語言起源
在C之前,包括操作系統(tǒng)在內(nèi)的一些系統(tǒng)軟件,主要用匯編語言編寫,匯編語言是一種低級語言,所謂“低級”,是從計算機系統(tǒng)的層次觀點角度而言的。在計算機系統(tǒng)中,硬件是最低層,而匯編語言最接近硬件,可以對硬件施加控制和操作,能充分發(fā)揮機器的潛能,并且,匯編語言程序執(zhí)行速度最快,這些特點都是開發(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)容里面會有圖紙預(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度苗木種植與水資源保護合同7篇
- 二零二五版農(nóng)機駕駛培訓(xùn)服務(wù)合同模板4篇
- 2025年度外墻仿石裝飾工程承攬合同4篇
- 2025年度農(nóng)業(yè)科技成果轉(zhuǎn)化交易合同3篇
- 2025年度田地流轉(zhuǎn)與農(nóng)業(yè)科技服務(wù)一體化合同
- 2025版美團團購合作合同范本更新版3篇
- 二零二五年度勞動合同追訴期限認定標準與爭議調(diào)解方案3篇
- 2025年度個人獨資企業(yè)整體出售及債務(wù)承接合同
- 二零二五年度總經(jīng)理崗位聘請及考核細則合同3篇
- 2025年度木結(jié)構(gòu)建筑綠色建材認證合同
- 《向心力》 教學(xué)課件
- 結(jié)構(gòu)力學(xué)數(shù)值方法:邊界元法(BEM):邊界元法的基本原理與步驟
- 2024年山東省泰安市高考語文一模試卷
- 工程建設(shè)行業(yè)標準內(nèi)置保溫現(xiàn)澆混凝土復(fù)合剪力墻技術(shù)規(guī)程
- 北師大版物理九年級全一冊課件
- 2024年第三師圖木舒克市市場監(jiān)督管理局招錄2人《行政職業(yè)能力測驗》高頻考點、難點(含詳細答案)
- RFJ 006-2021 RFP型人防過濾吸收器制造與驗收規(guī)范(暫行)
- 盆腔炎教學(xué)查房課件
- 新概念英語課件NCE3-lesson15(共34張)
- GB/T 3683-2023橡膠軟管及軟管組合件油基或水基流體適用的鋼絲編織增強液壓型規(guī)范
- 電視劇《瑯琊榜》特色分析
評論
0/150
提交評論