版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第1章C語言概述1.1C語言的發(fā)展及特點1.2初步認(rèn)識C語言程序1.3軟件開發(fā)方法1.4C語言程序上機調(diào)試步驟和方法1.5小結(jié)1.1C語言的發(fā)展及特點1.1.1C語言的發(fā)展
C語言的發(fā)展頗為有趣。它的原型是ALGOL60語言。1963年,劍橋大學(xué)將ALGOL60語言發(fā)展成為CPL(CombinedProgrammingLanguage)語言。1967年,劍橋大學(xué)的MatinRichards對CPL語言進(jìn)行了簡化,于是產(chǎn)生了BCPL語言。1970年,美國貝爾實驗室的KenThompson將BCPL進(jìn)行了修改,并為它起了一個有趣的名字“B語言”。意思是將CPL語言煮干,提煉出它的精華。并且他用B語言寫了第一個UNIX操作系統(tǒng)。1973年,B語言也給人“煮”了一下,美國貝爾實驗室的D.M.RITCHIE在B語言的基礎(chǔ)上最終設(shè)計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。為了使UNIX操作系統(tǒng)推廣,1977年DennisM.Ritchie發(fā)表了不依賴于具體機器系統(tǒng)的C語言編譯文本《可移植的C語言編譯程序》。1978年BrianW.Kernighian和DennisM.Ritchie出版了名著《TheCProgrammingLanguage》,從而使C語言成為目前世界上流行最廣泛的高級程序設(shè)計語言。1988年,隨著微型計算機的日益普及,出現(xiàn)了許多C語言版本。由于沒有統(tǒng)一的標(biāo)準(zhǔn),使得這些C語言之間出現(xiàn)了一些不一致的地方。為了改變這種情況,美國國家標(biāo)準(zhǔn)研究所(ANSI)為C語言制定了一套ANSI標(biāo)準(zhǔn),成為現(xiàn)行的C語言標(biāo)準(zhǔn)3。C語言發(fā)展迅速,而且成為最受歡迎的語言之一,主要因為它具有強大的功能。許多著名的系統(tǒng)軟件如DBASEⅢPLUS、DBASEⅣ都是由C語言編寫的。用C語言加上一些匯編語言子程序,就更能顯示C語言的優(yōu)勢了,如PC-DOS、WORDSTAR等就是用這種方法編寫的。1.1C語言的發(fā)展及特點1.1.2C語言的特點1.簡潔緊湊、靈活方便2.運算符豐富3.數(shù)據(jù)結(jié)構(gòu)豐富4.C語言是結(jié)構(gòu)式語言5.C語言語法限制不太嚴(yán)格、程序設(shè)計自由度大6.C語言允許直接訪問物理地址,可以直接對硬件進(jìn)行操作7.C語言程序生成代碼質(zhì)量高,程序執(zhí)行效率高8.C語言適用范圍大,可移植性好1.2初步認(rèn)識C語言程序編寫程序,用來從文件中讀取所有的數(shù)據(jù),并輸出所讀取的數(shù)的平方。/*
程序執(zhí)行時在d盤的根目錄下創(chuàng)建一個文件取名為a.dat,
文件中輸入10個數(shù)
程序運行時輸入:Demo01.exed:\\a.dat*/#include<stdio.h>/*包含stdio.h,malloc.h,stdlib.h三個頭文件*/#include<malloc.h>#include<stdlib.h>#defineN10/*定義一個不帶參數(shù)的宏N*/#definef(x)x*x/*定義一個帶參數(shù)的宏f(x)*/inta[N],*b;/*定義全局變量:數(shù)組a和指針變量b*/intinput();/*對函數(shù)input做聲明*/voidmain(intargc,char*argv[])/*主函數(shù)*/{/*下面是主函數(shù)的函數(shù)體*/ voidoutput();/*聲明output函數(shù)*/ intn,i;/*定義局部變量n,i*/if(argc!=2)/*如果程序運行攜帶了參數(shù),不攜帶參數(shù)時只有文件名demo01.exe*/ { printf("語法:Demo01<>\n");/*輸出提示信息*/ return;/*程序運行錯誤,直接退出程序*/ }n=input(argv[1],a);/*調(diào)用函數(shù)input*/
b=(int*)malloc((sizeof(int)*n));/*為指針變量b申請內(nèi)存空間*/for(i=0;i<n;i++)/*循環(huán)n-1次*/{ b[i]=f(a[i]);/*把數(shù)組a中每個元素都求出平方值,送到數(shù)組b中對應(yīng)位置*/}output(b,n);/*調(diào)用函數(shù)output,輸出所有b中元素*/}/*下面函數(shù)的功能是把文件中的數(shù)據(jù)逐個讀出,存放到數(shù)組a中*/intinput(char*a[])/*input函數(shù)的首部*/{ FILE*fp;/*定義指向文件的指針fp*/ inti=0;/*定義整型變量i,用來存放讀取出來的整數(shù)的個數(shù)*/ fp=fopen(,"r");/*調(diào)用系統(tǒng)函數(shù)fopen打開文件*/ if(fp==NULL)/*如果打開文件失敗,提示出錯并退出程序*/ { printf("\n無法打開文件%s",);/*提示錯誤信息*/ exit(0);/*調(diào)用系統(tǒng)函數(shù)exit,退出程序*/ } while(!feof(fp)&&i<N)/*當(dāng)文件讀取未結(jié)束時繼續(xù)讀取*/ { fscanf(fp,"%d",&a[i++]);/*讀取文件fp中的一個整數(shù)放入數(shù)組*/ } fclose(fp);/*關(guān)閉文件*/ return(i);/*返回讀取到得數(shù)據(jù)的個數(shù)*/}/*下面函數(shù)的功能是輸出數(shù)組c中的n個元素*/voidoutput(intc[],intn)/*函數(shù)output的首部*/{ inti;/*定義循環(huán)用的整型變量i*/ for(i=0;i<n;i++)/*循環(huán)n次*/ { printf("%8d",c[i]);/*輸出數(shù)組元素c[i]的值,保留8位寬度*/ if(i%10==0)/*每輸出10個數(shù)據(jù)換一行*/ printf("\n"); }}程序輸出結(jié)果為:Demo01.exed:\\a.dat<回車>1941625364964811001.2.1C語言程序的格式C語言中格式書寫比較自由,一行可以寫多條語句,一條語句也可以書寫在多行上。C語言識別大小寫字母,如’A’和’a’是兩個不同的字母。C語言語句后必須有分號,只有分號的語句為空語句。為了增強程序的可讀性,應(yīng)該避免在一行中書寫多條語句,并使用鋸齒形書寫程序代碼,還可以通過空行來增強可讀性。1.2.2C語言程序的構(gòu)成C程序的基本結(jié)構(gòu)是函數(shù),一個或多個C函數(shù)組成一個C程序,若干個C語句構(gòu)成C語言函數(shù),若干基本單詞形成C語句。C語言中使用的函數(shù)有兩類,一類是系統(tǒng)定義的函數(shù),如printf和fclose等,稱為標(biāo)準(zhǔn)庫函數(shù),可以直接在程序中使用。另一類是用戶自己定義的函數(shù),如demo01.c中的output()函數(shù),必須由用戶自己編寫源程序代碼。函數(shù)的基本格式如下:[函數(shù)類型]函數(shù)名([函數(shù)形參表])/*函數(shù)首部*/{/*函數(shù)體*/[變量定義和聲明語句;]
可執(zhí)行語句部分;}1.2.3C語言程序的基本要求1)在整個程序文件中函數(shù)可以出現(xiàn)在任意位置。主函數(shù)不一定出現(xiàn)在程序的開始處,但不管主函數(shù)位于程序何處,程序總是在主函數(shù)中開始,也在主函數(shù)中結(jié)束。2)每個程序行中的語句數(shù)量任意,既語序一行內(nèi)寫多條語句,也允許多條語句寫在同一行上。3)為了對程序進(jìn)行必要的描述,可以給程序進(jìn)行說明,說明必須寫在/*和*/之內(nèi)。1.3軟件開發(fā)方法20世紀(jì)60年代出現(xiàn)了軟件危機,其現(xiàn)象表現(xiàn)為軟件開發(fā)費用和精度失控,軟件的可靠性差,生產(chǎn)出來的軟件難以維護。為了解決軟件危機,在60年代末期提出了軟件工程的概念,并在以后不斷發(fā)展、完善。與此同時,軟件研究人員也在不斷探索新的軟件開發(fā)方法。至今已形成八類軟件開發(fā)方法。主要有Parnas方法、SASA方法、面向數(shù)據(jù)結(jié)構(gòu)的軟件開發(fā)方法、問題分析法、面向?qū)ο蟮能浖_發(fā)方法、可視化開發(fā)方法等等。1.3.2算法算法定義:算法是規(guī)則的有限集合,是為解決特定問題而規(guī)定的一系列操作。算法的特性:算法必須具備5個基本的特性。1)有限性:有限步驟之內(nèi)正常結(jié)束,不能形成無限循環(huán)。2)確定性:算法中間的每個代碼行必須有確定含義。3)輸入:可以有0個或者多個輸入。4)輸出:至少有一個輸出。5)可行性:原則上能夠精確運行,操作可以經(jīng)過已經(jīng)實現(xiàn)的基本運算通過有限次執(zhí)行完成。算法的表示方法開始或結(jié)束處理框輸入輸出框判斷框流程線連接點1.3.3結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu)化程序設(shè)計由三種基本結(jié)構(gòu)組成,分別是:1.順序結(jié)構(gòu)順序結(jié)構(gòu)是最簡單的一種結(jié)構(gòu),可以由賦值語句,輸入、輸出語句構(gòu)成,當(dāng)執(zhí)行由這些語句構(gòu)成的程序時,將按照這些語句在程序中的先后順序逐條執(zhí)行。流程圖如圖2(a)所示。2.選擇結(jié)構(gòu)選擇結(jié)構(gòu)也稱分支結(jié)構(gòu),當(dāng)執(zhí)行該結(jié)構(gòu)中的語句時,程序根據(jù)不同的條件執(zhí)行不同分支中的語句。如圖2中的(b)所示。3.循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)是指根據(jù)各自的條件,使同一組語句重復(fù)執(zhí)行多次或者一次也不執(zhí)行。循環(huán)結(jié)構(gòu)有兩種形式:當(dāng)型循環(huán)和直到型循環(huán)。當(dāng)型循環(huán)中的循環(huán)體可能一次都不執(zhí)行,而直到型循環(huán)中的循環(huán)體至少執(zhí)行一次。程序的基本結(jié)構(gòu)框圖ABABC成立成立不成立ABBA不成立(a)順序結(jié)構(gòu)(b)選擇結(jié)構(gòu)(d)直到型循環(huán)(c)當(dāng)型循環(huán)1.4C語言程序上機調(diào)試步驟和方法啟動MicrosoftVisualC++6.0。點菜單上的【File】、【New】出現(xiàn)圖3新建對話框,選擇【Projects】下的Win32ConsoleApplication選項,在Projectname中輸入項目名稱,這里輸入Demo001,點Location右邊的瀏覽按鈕選擇文件存放的位置。然后選擇Ok按鈕。3.接下來點Finish按鈕,在接著出現(xiàn)的對話框上點OK按鈕。就創(chuàng)建好了一個空項目4.然后添加源代碼文件。打開New對話框,在Files選項卡下選擇C++SourceFile選項,在File下面的文本框中輸入源文件的名稱,這里輸入Code01.c,然后點OK按鈕。切記,這里輸入Code01.c文件名時必須輸入文件擴展名。如圖1-5。5.在右邊的空白區(qū)輸入下面的源程序代碼。#include"stdio.h"intmax(intx,inty){ returnx>y?x:y;}main(){ inta,b; intmaxVal
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 動態(tài)心電圖目前最需要解決的問題教學(xué)課件
- 【大學(xué)課件】國際新興服務(wù)貿(mào)易產(chǎn)業(yè)
- 【物理課件】運動快慢的描述 速度課件
- DB32T-長江河道疏浚采砂項目施工質(zhì)量驗收規(guī)范編制說明
- 信息與通信射頻電路與天線課件
- 《電梯安全經(jīng)驗分享》課件
- 現(xiàn)在完成時復(fù)習(xí)課件
- 單位人力資源管理制度集粹選集十篇
- 固收定期報告:資金面均衡偏松年末票據(jù)利率上行
- 單位管理制度品讀選集【人力資源管理】
- 初三語文總復(fù)習(xí)全程計劃表
- 電子技術(shù)基礎(chǔ)與技能-機工教案第九章教案555集成定時器介紹
- 污水處理運行質(zhì)量保證措施
- 國家食源性疾病監(jiān)測工作標(biāo)準(zhǔn)手冊
- 食材供貨及質(zhì)量保障措施方案
- 混凝土攪拌車課件
- 基于單片機的智能充電器設(shè)計
- 關(guān)于新中國史簡介 新中國史簡介 最好
- 營養(yǎng)學(xué)概論演示
- 統(tǒng)編版語文四年級上冊期末總復(fù)習(xí)課件
- 2023年四川省鄉(xiāng)村醫(yī)生招聘筆試題庫及答案解析
評論
0/150
提交評論