第1章-C語(yǔ)言概述教材_第1頁(yè)
第1章-C語(yǔ)言概述教材_第2頁(yè)
第1章-C語(yǔ)言概述教材_第3頁(yè)
第1章-C語(yǔ)言概述教材_第4頁(yè)
第1章-C語(yǔ)言概述教材_第5頁(yè)
已閱讀5頁(yè),還剩40頁(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)介

任課教師:陳玉哲E-mail:hebtu_cyz@第一章

主要內(nèi)容1.1計(jì)算機(jī)與程序、程序設(shè)計(jì)語(yǔ)言1.2C語(yǔ)言出現(xiàn)的歷史背景1.3C語(yǔ)言的特點(diǎn)1.4簡(jiǎn)單的C語(yǔ)言程序1.5運(yùn)行C程序的步驟和方法

本章要點(diǎn)

C語(yǔ)言的特點(diǎn)

C程序的結(jié)構(gòu)在計(jì)算機(jī)上運(yùn)行C程序的方法

1.1計(jì)算機(jī)與程序、程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序/軟件(一般為.exe)計(jì)算機(jī)編制運(yùn)行C語(yǔ)言是一種程序設(shè)計(jì)語(yǔ)言

1.1計(jì)算機(jī)與程序、程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言的發(fā)展和分類:機(jī)器語(yǔ)言匯編語(yǔ)言FORTRQAN等缺點(diǎn):不通用使用二進(jìn)制例如:

ADDA,B例如,高級(jí)語(yǔ)言中:

C=(A+B)*2低級(jí)語(yǔ)言高級(jí)語(yǔ)言

1.1計(jì)算機(jī)與程序、程序設(shè)計(jì)語(yǔ)言高級(jí)語(yǔ)言的現(xiàn)狀:影響最大的包括:FORTRAN和ALGOL(適合數(shù)值計(jì)算)BASIC和QBASIC(適合初學(xué)者的小型會(huì)話語(yǔ)言)COBOL(適合商業(yè)管理)Pascal(適合教學(xué))PL/1(大型通用語(yǔ)言)LISP和PROLOG(人工智能語(yǔ)言)C(系統(tǒng)描述語(yǔ)言)C++(大型語(yǔ)言,支持面向?qū)ο?Java(適于開發(fā)網(wǎng)絡(luò)應(yīng)用)

1.1計(jì)算機(jī)與程序、程序設(shè)計(jì)語(yǔ)言編譯系統(tǒng):用高級(jí)語(yǔ)言編寫的程序,計(jì)算機(jī)是不能直接識(shí)別和執(zhí)行的(計(jì)算機(jī)只能直接識(shí)別二進(jìn)制的指令),必須事先把用高級(jí)語(yǔ)言編寫的程序翻譯成機(jī)器語(yǔ)言程序,這個(gè)“翻譯”工作是由稱為“編譯系統(tǒng)”的軟件來(lái)實(shí)現(xiàn)的。

1.2C語(yǔ)言出現(xiàn)的歷史背景C語(yǔ)言是國(guó)際上廣泛流行的高級(jí)語(yǔ)言。C語(yǔ)言是在B語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的。B(BCPL)語(yǔ)言是1970年由美國(guó)貝爾實(shí)驗(yàn)室設(shè)計(jì)的,并用于編寫了第一個(gè)UNIX操作系統(tǒng)。優(yōu)點(diǎn):簡(jiǎn)單,接近硬件,缺點(diǎn):過(guò)于簡(jiǎn)單,功能有限。

1972年至1973年貝爾實(shí)驗(yàn)室的D.M.Ritchie

在B語(yǔ)言的基礎(chǔ)上設(shè)計(jì)出了C語(yǔ)言,并用之改寫了原來(lái)用匯編編寫的UNIX。后來(lái),C語(yǔ)言多次做了改進(jìn),但主要還是在貝爾實(shí)驗(yàn)室使用。

1.2C語(yǔ)言出現(xiàn)的歷史背景1977年出現(xiàn)了《可移植C語(yǔ)言編譯程序》,推動(dòng)了UNIX在各種機(jī)器上實(shí)現(xiàn),C語(yǔ)言也迅速得到推廣,其發(fā)展相輔相成。1978年在BrianW.Kernighan和DennisM.Ritchie

合著的影響深遠(yuǎn)的名著《TheCProgrammingLanguage》中介紹的C語(yǔ)言成為后來(lái)廣泛使用的C語(yǔ)言版本的基礎(chǔ)

,被稱為標(biāo)準(zhǔn)C。1978年以后,C語(yǔ)言先后移植到大、中、小、微型計(jì)算機(jī)上,風(fēng)靡世界,成為最廣泛的幾種計(jì)算機(jī)語(yǔ)言之一。

1.2C語(yǔ)言出現(xiàn)的歷史背景1983年,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI)根據(jù)C語(yǔ)言各種版本對(duì)C的發(fā)展和擴(kuò)充,制定了新的標(biāo)準(zhǔn)ANSIC

,比標(biāo)準(zhǔn)C有了很大的發(fā)展。1987年,ANSI公布了新標(biāo)準(zhǔn)——87ANSIC。1989年,ANSI又公布了一個(gè)新的C語(yǔ)言標(biāo)準(zhǔn)—C891990年,ISO接受C89作為國(guó)際標(biāo)準(zhǔn)通常稱為C901999年,ISO對(duì)C語(yǔ)言標(biāo)準(zhǔn)進(jìn)行修訂,在基本保留原來(lái)的C語(yǔ)言特征的基礎(chǔ)上,增加了一些面向?qū)ο蟮奶卣?,?jiǎn)稱為C99。

目前流行的C語(yǔ)言編譯系統(tǒng)大多是以C89為基礎(chǔ)進(jìn)行開發(fā)的。

1.2C語(yǔ)言出現(xiàn)的歷史背景說(shuō)明:不同版本的C編譯系統(tǒng)所實(shí)現(xiàn)的語(yǔ)言功能和語(yǔ)法規(guī)則又略有差別。因此讀者應(yīng)了解所用的C語(yǔ)言編譯系統(tǒng)的特點(diǎn)。本書的敘述基本上以C89為基礎(chǔ)的。

1.3C語(yǔ)言的特點(diǎn)(1)語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活:

32個(gè)關(guān)鍵字、9種控制語(yǔ)句,程序形式自由(2)運(yùn)算符豐富。34種運(yùn)算符

(3)數(shù)據(jù)類型豐富:提供整型、浮點(diǎn)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等,能用來(lái)實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(如鏈表、樹、棧等)的運(yùn)算。(4)C語(yǔ)言是完全模塊化和結(jié)構(gòu)化的語(yǔ)言。

(5)語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。

1.3C語(yǔ)言的特點(diǎn)(6)允許直接訪問(wèn)物理地址,可直接對(duì)硬件進(jìn)行操作。兼有高級(jí)和低級(jí)語(yǔ)言的功能。(7)目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高:只比匯編程序生成的目標(biāo)代碼效率低10%-20%。(8)用C語(yǔ)言編寫的程序可移植性好:基本上不做修改就能用于各種型號(hào)的計(jì)算機(jī)和各種操作系統(tǒng)。

1.3C語(yǔ)言的特點(diǎn)解釋1:C++是由于開發(fā)大型應(yīng)用軟件的需要而產(chǎn)生的,并不是所有的人都要去編寫大型軟件;解釋2:面向?qū)ο蟮幕A(chǔ)是面向過(guò)程。C++是面向?qū)ο蟮恼Z(yǔ)言,C是面向過(guò)程的,學(xué)起來(lái)比C語(yǔ)言困難得多,所以不太適合程序設(shè)計(jì)的初學(xué)者。問(wèn)題:既然有了面向?qū)ο蟮腃++語(yǔ)言,為什么還要學(xué)習(xí)C語(yǔ)言?

1.3C語(yǔ)言的特點(diǎn)

1:多讀例題,照葫蘆畫瓢;

2:積累經(jīng)驗(yàn),提高編程技能;

3:一定要上機(jī)實(shí)踐。如何學(xué)習(xí)該課程?

1.3C語(yǔ)言的特點(diǎn)

1:機(jī)試,20%;

2:筆試,80%;如何考核?

1.4簡(jiǎn)單的C語(yǔ)言程序例1.1本程序的作用是輸出一行信息:ThisisaCprogram.#include<stdio.h>void

main(){

printf("ThisisaCprogram.\n");}說(shuō)明:(1)C程序由函數(shù)組成,且必須有一個(gè)名為main的函數(shù),這是程序的入口。

1.4簡(jiǎn)單的C語(yǔ)言程序例1.1本程序的作用是輸出一行信息:ThisisaCprogram.#include<stdio.h>void

main(){

printf("ThisisaCprogram.\n");}說(shuō)明:(2)函數(shù)的組成

1.4簡(jiǎn)單的C語(yǔ)言程序例1.1本程序的作用是輸出一行信息:ThisisaCprogram.#include<stdio.h>void

main(){

printf("ThisisaCprogram.\n");}說(shuō)明:(3)輸出要調(diào)用標(biāo)準(zhǔn)函數(shù)庫(kù)中的printf函數(shù)。“\n”是換行符。(4)要使用系統(tǒng)提供的標(biāo)準(zhǔn)函數(shù)庫(kù)中的輸入輸出函數(shù),應(yīng)在程序的開頭寫這樣一行:

#include<stdio.h>(5)語(yǔ)句以分號(hào)結(jié)束

1.5運(yùn)行C程序的步驟和方法1.5.1運(yùn)行C程序的步驟

1.5運(yùn)行C程序的步驟和方法

1.5運(yùn)行C程序的步驟和方法

1.5.2上機(jī)運(yùn)行C程序的方法目前使用的大多數(shù)C編譯系統(tǒng)都是集成環(huán)境(IDE)的??梢杂貌煌木幾g系統(tǒng)對(duì)C程序進(jìn)行操作常用的有TurboC2.0、TurboC++3.0、VisualC++6.0等前些年,TurboC2.0用得比較多,但TurboC2.0是用于DOS環(huán)境的,不能用鼠標(biāo)進(jìn)行操作,很不方便,所以近年來(lái)不少人改為用TurboC++3.0或VisualC++6.0對(duì)C程序進(jìn)行編譯

例:VC++6.0的使用1.安裝VC++6.0和進(jìn)入VC++6.0集成環(huán)境

(1)VisualC++6.0適用于Windows環(huán)境。首先在所用的計(jì)算機(jī)上安裝VisualC++6.0系統(tǒng)。安裝完后,雙擊VisualC++6.0圖標(biāo),就能進(jìn)入VC++6.0集成環(huán)境。(2)在VC++主窗口的頂部是VC++的主菜單欄。其中包含9個(gè)項(xiàng)∶FileEditViewInsertProjectBuildToolswindowsHelp;主窗口的左側(cè)是項(xiàng)目工作區(qū)窗口(用來(lái)顯示所設(shè)定的工作區(qū)的信息),右側(cè)是程序編輯窗口(用來(lái)輸入和編輯源程序)。2.輸入和編輯源程序新建一個(gè)源程序

①在VC++主窗口的主菜單欄中選擇“File”,然后選擇“New”單擊屏幕上出現(xiàn)的“New”對(duì)話框上方的“Files”,在其下拉菜單中選擇“C++SourceFile”項(xiàng);然后在對(duì)話框右半“Location”文本框中輸入準(zhǔn)備編輯的源程序文件的存儲(chǔ)路徑(假定為D:\cc,注意,應(yīng)該為每個(gè)程序創(chuàng)建一個(gè)文件夾);在其上方的File(文件)文本框中輸入準(zhǔn)備編輯的源程序文件的名字(輸入c1-1.c)。②輸入和編輯源程序單擊“OK”按鈕后,回到VC++主窗口程序,編輯窗口已激活,即可輸入和編輯源程序。在輸入過(guò)程中如發(fā)現(xiàn)有錯(cuò)誤,可以利用全屏幕編輯方法進(jìn)行修改編輯。

③源程序的保存檢查無(wú)誤后,在主菜單欄中選擇“File”(文件),并在其下拉菜單中選擇“Save”(保存)項(xiàng)

說(shuō)明:

VC++6.0可以編譯后綴為.c的C源程序,也可以編譯后綴為.cpp的C++源程序。

3.程序的編譯單擊主菜單欄中的“Build”,在其下拉菜單中選擇“Compliec1-1.c”項(xiàng)。在單擊編譯命令后,屏幕上出現(xiàn)一個(gè)是否同意建立一個(gè)默認(rèn)的項(xiàng)目工作區(qū)的對(duì)話框單擊“Yes”(是)按鈕后開始編譯。也可以不用選擇菜單的方法,而用“Ctrl+F7”來(lái)完成編譯。編譯完成后,調(diào)試窗口出現(xiàn)編譯信息,如果無(wú)錯(cuò)生成目標(biāo)文件c1-1.obj,否則指出錯(cuò)誤位置和性質(zhì)。4.程序的連接

生成目標(biāo)文件后,把程序和系統(tǒng)提供的資源(如函數(shù)據(jù)庫(kù)、頭文件)建立連接。選擇“Build”→“Build

test.exe”。

執(zhí)行連接后,在調(diào)試輸出窗口中顯示連接時(shí)的信息,生成可執(zhí)行文件c1-1.exe。5程序的執(zhí)行執(zhí)行c1-1.exe文件,選擇“Build”→“!Executec1-1.exe”程序執(zhí)行后,屏幕切換到輸出結(jié)果的窗口,顯示輸出結(jié)果。第1行:程序的輸出第2行:是VC++在輸出完運(yùn)行結(jié)果后由VC++6.0系統(tǒng)自動(dòng)加上的一行信息,通知用戶∶“按任何一鍵以便繼續(xù)”。說(shuō)明:

關(guān)閉程序:File(文件)CloseWorkspace(關(guān)閉工作區(qū))。

打開一個(gè)已有的程序:

①在“我的電腦”中按路徑找到已有的C程序名;

②雙擊此文件名,則進(jìn)入了VC++集成環(huán)境,并打開了該文件,程序已顯示在編輯窗口中;

③修改后選擇“File”(文件)→“Save”(保存),保存在原來(lái)的文件中;

更多的例子例1.2求兩個(gè)整數(shù)之和

#include<stdio.h>

voidmain()/*求兩數(shù)之和*/

{

int

a,b,sum;/*聲明,定義變量為整型*/

a=123;b=456;/*以下3行為C語(yǔ)句*/

sum=a+b;

printf(″sumis%d\n″,sum);

}說(shuō)明:

(1)變量聲明(2)變量賦值(3)算術(shù)運(yùn)算(4)Printf輸出整型變量的值(5)一行可以寫多條語(yǔ)句(6)/*……*/表示注釋說(shuō)明:

輸出一行信息:sumis579思考:修改例題1.2,輸出:a=123,b=456,a+b=579例1.3求2個(gè)整數(shù)中較大者。

#include<stdio.h>

voidmain()

{

int

max(int

x,inty);/*對(duì)被調(diào)用函數(shù)max的聲明*/

inta,b,c;

scanf(″%d,%d″,&a,&b);/*輸入變量a和b的值*/

c=max(a,b);/*調(diào)用max函數(shù),將得到的值賦給c*/

printf(″max=%d\n″,c);

}

intmax(intx,inty)

{

intz;

if(x>y)z=x;

elsez=y;

return(z);

}

程序運(yùn)行情況如下:8,5↙max=8說(shuō)明:(1)在main函數(shù)中聲明max函數(shù)(2)輸入函數(shù)scanf(3)調(diào)用函數(shù)并將返回值賦給變量

總結(jié):簡(jiǎn)單的C語(yǔ)言程序(1)C程序是由函數(shù)構(gòu)成的。這使得程序容易實(shí)現(xiàn)模塊化。

(2)一個(gè)函數(shù)由兩部分組成:

函數(shù)的首部:例1.3中的max函數(shù)首部

int

max(int

x,inty)

函數(shù)體:花括號(hào)內(nèi)的部分??偨Y(jié):簡(jiǎn)單的C語(yǔ)言程序(3)C程序總是從main函數(shù)開始執(zhí)行的,與main函數(shù)的位置無(wú)關(guān)。(4)C程序書寫格式自由,一行內(nèi)可以寫幾個(gè)語(yǔ)句,一個(gè)語(yǔ)句可以分寫在多行上,C程序沒有行號(hào)。(5)每個(gè)語(yǔ)句和數(shù)據(jù)聲明的最后必須有一個(gè)分號(hào)。分號(hào)是C語(yǔ)句的必要組成部分。即使是程序中最后一個(gè)語(yǔ)句也應(yīng)包含分號(hào)。

總結(jié):簡(jiǎn)單的C語(yǔ)言程序(6)C語(yǔ)言本身沒有輸入輸出語(yǔ)句。輸入和輸出的操作是由庫(kù)函數(shù)scanf和printf等函數(shù)來(lái)完成的。C對(duì)輸入輸出實(shí)行“函數(shù)化”。(7)可以用/*……*/對(duì)C程序中的任何一行或數(shù)行做注釋。一個(gè)好的、有使用價(jià)值的源程序都應(yīng)當(dāng)加上必要的注釋,以增加程序的可讀性。照葫蘆畫瓢參照例題1.1,實(shí)現(xiàn)習(xí)題4編寫一個(gè)C程序,輸出以下信息:******************************

Verygood!******************************基于例題1.3,實(shí)現(xiàn)習(xí)題5編寫一個(gè)C程序,輸入a,b,c3個(gè)值,輸出其中最大者。分析下面程序的邏輯錯(cuò)誤#include<stdio.h>voidmain(){

int

max(int

x,int

y,intz);

inta,b,c,m1;

scanf("%d,%d,%d",&a,&b,&c);m1=max(a,b,c);

printf("max=%d\n",m1);

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論