第1講-程序設(shè)計和C語言課件_第1頁
第1講-程序設(shè)計和C語言課件_第2頁
第1講-程序設(shè)計和C語言課件_第3頁
第1講-程序設(shè)計和C語言課件_第4頁
第1講-程序設(shè)計和C語言課件_第5頁
已閱讀5頁,還剩147頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

課程主要內(nèi)容概念數(shù)據(jù)類型、運(yùn)算符與表達(dá)式三種控制結(jié)構(gòu)數(shù)組函數(shù)指針(一門外語)(單詞、短語)(語法,做事情的順序)(詞組)(做事情的某個環(huán)節(jié)的方法)(遙控)課程主要內(nèi)容概念(一門外語)(單詞、短語)(語法,做事情的順1第1講程序設(shè)計和C語言1.1什么是計算機(jī)程序1.2什么是計算機(jī)語言1.3C語言的發(fā)展及其特點(diǎn)1.4最簡單的C語言程序1.5運(yùn)行C程序的步驟與方法1.6程序設(shè)計的任務(wù)第1講程序設(shè)計和C語言1.1什么是計算機(jī)程序21.1什么是計算機(jī)程序程序:一組計算機(jī)能識別和執(zhí)行的指令只要讓計算機(jī)執(zhí)行這個程序,計算機(jī)就會自動地、有條不紊地進(jìn)行工作計算機(jī)的一切操作都是由程序控制的,離開程序,計算機(jī)將一事無成1.1什么是計算機(jī)程序程序:一組計算機(jī)能識別和執(zhí)行的指令3計算機(jī)能做些什么?計算機(jī)能做些什么?4計算機(jī)計算

如:求解

ax2+bx+c=0(設(shè)a≠0)若d=b2-4ac<0,則沒有實(shí)數(shù)根;否則,若d=b2-4ac≥0,則計算機(jī)計算5計算機(jī)分析例如:判斷1600年是否為閏年只需滿足以下條件之一即為閏年:可以被4整除但不可以被100整除;可以被400整除。

計算機(jī)分析6計算機(jī)游戲計算機(jī)游戲7計算機(jī)操作系統(tǒng)計算機(jī)操作系統(tǒng)8計算機(jī)媒體播放計算機(jī)媒體播放9計算機(jī)能做的,都可用C語言實(shí)現(xiàn)!計算機(jī)能做的,101.2什么是計算機(jī)語言計算機(jī)語言:

人和計算機(jī)交流信息的、計算機(jī)和人都能識別的語言。1.2什么是計算機(jī)語言計算機(jī)語言:11C語言是什么?漢語英語法語英語就相當(dāng)于連接法語和漢語的中間語言。C語言是什么?漢語英語法語英語就相當(dāng)于連接法語和漢語的12人類語言機(jī)器語言C語言C語言就相當(dāng)于連接人類和計算機(jī)的中間語言。人類機(jī)器C語言C語言就相當(dāng)于連接人類和計算機(jī)的中間語言。13C語言是一門計算機(jī)外語類比人類的自然語言類比類比C語言英語法語計算機(jī)的二進(jìn)制漢語C語言是一門計算機(jī)外語類比人類的自然語言類比類比C語言14機(jī)器語言匯編語言高級語言面向過程,如:C面向?qū)ο?如:C++計算機(jī)能夠直接識別和處理的二進(jìn)制機(jī)器指令如:“01110110”用助記符號描述的指令系統(tǒng)如:“MOVEAX,BX”面向機(jī)器的語言程序設(shè)計是數(shù)據(jù)被加工的過程將客觀世界中的事物看成處理的對象更符合人類思維特性的抽象語言

如:“y=x*x;”程序設(shè)計語言發(fā)展史機(jī)器語言匯編語言高級語言面向過程,如:C面向?qū)ο?如:C151.2什么是計算機(jī)語言計算機(jī)語言發(fā)展階段:機(jī)器語言(由0和1組成的指令)符號語言(用英文字母和數(shù)字表示指令)高級語言(接近于人的自然語言和數(shù)學(xué)語言)面向過程的語言

(非結(jié)構(gòu)化的語言、結(jié)構(gòu)化語言)面向?qū)ο蟮恼Z言1.2什么是計算機(jī)語言計算機(jī)語言發(fā)展階段:161.3C語言的發(fā)展及其特點(diǎn)C語言是國際上廣泛流行的計算機(jī)高級語言。C語言的發(fā)展:BCPL語言B語言C語言精練、接近硬件,但過于簡單,無數(shù)據(jù)類型具有多種數(shù)據(jù)類型1.3C語言的發(fā)展及其特點(diǎn)C語言是國際上廣泛流行的計算機(jī)高171.3C語言的發(fā)展及其特點(diǎn)最初的C語言只是為描述和實(shí)現(xiàn)UNIX操作系統(tǒng)提供一種工作語言而設(shè)計的。1.3C語言的發(fā)展及其特點(diǎn)最初的C語言只是為描述和實(shí)現(xiàn)UN18產(chǎn)生背景

匯編語言程序依賴于計算機(jī)硬件,可讀性和可移植 性差;但一般的高級語言又難以實(shí)現(xiàn)對計算機(jī)硬件 的直接操作,盼望有種兼有匯編語言和高級語言特 性的新語言。產(chǎn)生過程時間:1972~1973地點(diǎn):美國貝爾實(shí)驗(yàn)室目的:UNIX操作系統(tǒng)設(shè)計人:Ken.Thompson和Dennis.M.Ritchie產(chǎn)生背景產(chǎn)生過程191.3C語言的發(fā)展及其特點(diǎn)1983年,美國國家標(biāo)準(zhǔn)協(xié)會(ANSI)成立了一個委員會,根據(jù)C語言問世以來各種版本對C語言的發(fā)展和擴(kuò)充,制定了第一個C語言標(biāo)準(zhǔn)草案(’83ANSIC)。1.3C語言的發(fā)展及其特點(diǎn)1983年,美國國家標(biāo)準(zhǔn)協(xié)會(A201.3C語言的發(fā)展及其特點(diǎn)1989年,ANSI公布了一個完整的C語言標(biāo)準(zhǔn)—ANSIX3.159-1989(常稱ANSIC,或C89)。1.3C語言的發(fā)展及其特點(diǎn)1989年,ANSI公布了一個完211.3C語言的發(fā)展及其特點(diǎn)1990年,國際標(biāo)準(zhǔn)化組織ISO(InternationalStandardOrganization)接受C89作為國際標(biāo)準(zhǔn)ISO/IEC9899:1990,它和ANSI的C89基本上是相同的。1.3C語言的發(fā)展及其特點(diǎn)1990年,國際標(biāo)準(zhǔn)化組織ISO221.3C語言的發(fā)展及其特點(diǎn)1995年,ISO對C90作了一些修訂,1999年,ISO又對C語言標(biāo)準(zhǔn)進(jìn)行修訂,在基本保留原來的C語言特征的基礎(chǔ)上,針對應(yīng)用的需要,增加了一些功能,尤其是C++中的一些功能,命名為ISO/IEC9899:1999。1.3C語言的發(fā)展及其特點(diǎn)1995年,ISO對C90作了一231.3C語言的發(fā)展及其特點(diǎn)2001、2004年先后進(jìn)行了兩次技術(shù)修正(TC1和TC2)。

ISO/IEC9899:1999(及其技術(shù)修正)被稱為C99。C99是C89(及1995基準(zhǔn)增補(bǔ)1)的擴(kuò)充。1.3C語言的發(fā)展及其特點(diǎn)2001、2004年先后進(jìn)行了兩241.3C語言的發(fā)展及其特點(diǎn)本書的敘述以C99標(biāo)準(zhǔn)為依據(jù)(對C99新增加的功能作特別的說明)。目前不同軟件公司提供的各C語言編譯系統(tǒng)多數(shù)并未完全實(shí)現(xiàn)C99建議的功能本書中程序基本上都可以在目前所用的編譯系統(tǒng)(如VC++6.0,TurboC++3.0,GCC)上編譯和運(yùn)行。1.3C語言的發(fā)展及其特點(diǎn)本書的敘述以C99標(biāo)準(zhǔn)為依據(jù)(對251.3C語言的發(fā)展及其特點(diǎn)C語言是一種用途廣泛、功能強(qiáng)大、使用靈活的過程性(procedural)編程語言,既可用于編寫應(yīng)用軟件,又能用于編寫系統(tǒng)軟件。因此C語言問世以后得到迅速推廣。1.3C語言的發(fā)展及其特點(diǎn)C語言是一種用途廣泛、功能強(qiáng)大、261.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):語言簡潔、緊湊,使用方便、靈活。只有37個關(guān)鍵字、9種控制語句程序書寫形式自由,源程序短1.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):271.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):運(yùn)算符豐富。有34種運(yùn)算符把括號、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理表達(dá)式類型多樣化1.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):281.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):數(shù)據(jù)類型豐富。包括:整型、浮點(diǎn)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型C99又?jǐn)U充了復(fù)數(shù)浮點(diǎn)類型、超長整型(longlong)、布爾類型(bool)指針類型數(shù)據(jù),能用來實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(如鏈表、樹、棧等)的運(yùn)算。1.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):291.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):具有結(jié)構(gòu)化的控制語句如if…else語句、while語句、do…while語句、switch語句、for語句用函數(shù)作為程序的模塊單位,便于實(shí)現(xiàn)程序的模塊化C語言是完全模塊化和結(jié)構(gòu)化的語言1.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):301.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):語法限制不太嚴(yán)格,程序設(shè)計自由度大。對數(shù)組下標(biāo)越界不做檢查對變量的類型使用比較靈活,例如,整型量與字符型數(shù)據(jù)可以通用C語言允許程序編寫者有較大的自由度,因此放寬了語法檢查1.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):311.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):允許直接訪問物理地址,能進(jìn)行位操作,可以直接對硬件進(jìn)行操作C語言具有高級語言的功能和低級語言的許多功能,可用來編寫系統(tǒng)軟件這種雙重性,使它既是成功的系統(tǒng)描述語言,又是通用的程序設(shè)計語言1.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):321.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):用C語言編寫的程序可移植性好。C的編譯系統(tǒng)簡潔,很容易移植到新系統(tǒng)在新系統(tǒng)上運(yùn)行時,可直接編譯“標(biāo)準(zhǔn)鏈接庫”中的大部分功能,不需要修改源代碼幾乎所有計算機(jī)系統(tǒng)都可以使用C語言1.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):331.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。1.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):341.4最簡單的C語言程序1.4.1最簡單的C語言程序舉例1.4.2C語言程序的結(jié)構(gòu)1.4最簡單的C語言程序1.4.1最簡單的C語言程序舉例351.4.1最簡單的C語言程序舉例例1.1要求在屏幕上輸出以下一行信息。

ThisisaCprogram.解題思路:

在主函數(shù)中用printf函數(shù)原樣輸出以上文字。1.4.1最簡單的C語言程序舉例例1.1要求在屏幕上輸出361.4.1最簡單的C語言程序舉例#include<stdio.h>intmain(){

printf(”ThisisaCprogram.\n”);return0;}函數(shù)的名字,表示主函數(shù)C程序必須有一個main函數(shù)1.4.1最簡單的C語言程序舉例#include<std371.4.1最簡單的C語言程序舉例#include<stdio.h>intmain(){

printf(”ThisisaCprogram.\n”);return0;}

主函數(shù)類型1.4.1最簡單的C語言程序舉例#include<std381.4.1最簡單的C語言程序舉例#include<stdio.h>intmain(){

printf(”ThisisaCprogram.\n”);return0;}

函數(shù)體1.4.1最簡單的C語言程序舉例#include<std391.4.1最簡單的C語言程序舉例#include<stdio.h>intmain(){

printf(”ThisisaCprogram.\n”);return0;}

輸出函數(shù)輸出語句1.4.1最簡單的C語言程序舉例#include<std401.4.1最簡單的C語言程序舉例#include<stdio.h>intmain(){

printf(”ThisisaCprogram.\n”);return0;}

輸出語句1.4.1最簡單的C語言程序舉例#include<std411.4.1最簡單的C語言程序舉例#include<stdio.h>intmain(){

printf(”ThisisaCprogram.\n”);return0;}

換行符1.4.1最簡單的C語言程序舉例#include<std421.4.1最簡單的C語言程序舉例#include<stdio.h>intmain(){

printf(”ThisisaCprogram.\n”);return0;}

當(dāng)main函數(shù)執(zhí)行結(jié)束前將整數(shù)0作為函數(shù)值1.4.1最簡單的C語言程序舉例#include<std431.4.1最簡單的C語言程序舉例#include<stdio.h>intmain(){

printf(”ThisisaCprogram.\n”);return0;}

表示語句結(jié)束用到函數(shù)庫中的輸入輸出函數(shù)時1.4.1最簡單的C語言程序舉例#include<std441.4.1最簡單的C語言程序舉例C語言允許用兩種注釋方式://:單行注釋可單獨(dú)占一行可出現(xiàn)在一行中其他內(nèi)容的右側(cè)/*……*/:塊式注釋可包含多行1.4.1最簡單的C語言程序舉例C語言允許用兩種注釋方式:45例1.2求兩個整數(shù)之和。解題思路:設(shè)置3個變量a和b用來存放兩個整數(shù)sum用來存放和數(shù)用賦值運(yùn)算符“=”把結(jié)果傳送給sum例1.2求兩個整數(shù)之和。解題思路:46#include<stdio.h>intmain(){inta,b,sum;a=123;b=456;sum=a+b;printf(”sumis%d\n”,sum);return0;}定義整型變量a,b,sum對變量a,b賦值將a與b的和賦給sum#include<stdio.h>定義整型變量a,b,su47#include<stdio.h>intmain(){inta,b,sum;a=123;b=456;sum=a+b;printf(”sumis%d\n”,sum);return0;}用sum的值替代希望輸出的字符#include<stdio.h>用sum的值替代希望輸出48例1.3求兩個整數(shù)中的較大者。解題思路:用一個函數(shù)實(shí)現(xiàn)求兩個整數(shù)中的較大者在主函數(shù)中調(diào)用此函數(shù)并輸出結(jié)果例1.3求兩個整數(shù)中的較大者。解題思路:49#include<stdio.h>intmain(){intmax(intx,inty);inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}主函數(shù)max函數(shù)#include<stdio.h>intmax(int50#include<stdio.h>intmain(){intmax(intx,inty);inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}將x和y中較大者值返回給主函數(shù)#include<stdio.h>intmax(int51#include<stdio.h>intmain(){intmax(intx,inty);inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}#include<stdio.h>intmax(int52#include<stdio.h>intmain(){intmax(intx,inty);inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}因max函數(shù)的定義在main函數(shù)之后,需聲明#include<stdio.h>intmax(int53#include<stdio.h>intmain(){intmax(intx,inty);inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}輸入函數(shù)#include<stdio.h>intmax(int54#include<stdio.h>intmain(){intmax(intx,inty);inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}輸入語句#include<stdio.h>intmax(int55#include<stdio.h>intmain(){intmax(intx,inty);inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}輸入的數(shù)據(jù)放到a,b中輸入格式a的地址#include<stdio.h>intmax(int56#include<stdio.h>intmain(){intmax(intx,inty);inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}調(diào)用max函數(shù)#include<stdio.h>intmax(int57#include<stdio.h>intmain(){intmax(intx,inty);inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}8588#include<stdio.h>intmax(int58#include<stdio.h>intmain(){intmax(intx,inty);inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}8588#include<stdio.h>intmax(int59#include<stdio.h>intmain(){intmax(intx,inty);inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}實(shí)際參數(shù)形式參數(shù)#include<stdio.h>intmax(int601.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):1.一個程序由一個或多個源程序文件組成小程序往往只包括一個源程序文件例1.1,例1.2只有一個函數(shù)例1.3有兩個函數(shù)只包括一個源程序文件1.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):只包括一611.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):一個源程序文件中可以包括三個部分:預(yù)處理指令全局聲明函數(shù)定義#include<stdio.h>等在函數(shù)之外進(jìn)行的數(shù)據(jù)聲明每個函數(shù)用來實(shí)現(xiàn)一定的功能1.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):#inc621.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):2.函數(shù)是C程序的主要組成部分一個C程序是由一個或多個函數(shù)組成的必須包含一個main函數(shù)(只能有一個)每個函數(shù)都用來實(shí)現(xiàn)一個或幾個特定功能被調(diào)用的函數(shù)可以是庫函數(shù),也可以是自己編制設(shè)計的函數(shù)1.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):631.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):3.一個函數(shù)包括兩個部分:函數(shù)首部intmax(intx,inty)函數(shù)的第1行函數(shù)類型函數(shù)名參數(shù)類型參數(shù)名1.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):函數(shù)的第641.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):3.一個函數(shù)包括兩個部分:函數(shù)首部intmax(intx,inty)若函數(shù)無參,在括弧中寫void或空括弧intmain(void)或intmain()1.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):int651.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):3.一個函數(shù)包括兩個部分:函數(shù)體聲明部分定義在本函數(shù)中所用到的變量對本函數(shù)所調(diào)用函數(shù)進(jìn)行聲明執(zhí)行部分:由若干個語句組成,指定在函數(shù)中所進(jìn)行的操作可以沒有聲明部分1.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):可以沒有661.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):3.一個函數(shù)包括兩個部分:函數(shù)體voiddump(){}可以是空函數(shù)1.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):可以是空671.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):4.程序總是從main函數(shù)開始執(zhí)行5.C程序?qū)τ嬎銠C(jī)的操作由C語句完成C程序書寫格式是比較自由的一行內(nèi)可以寫幾個語句一個語句可以分寫在多行上為清晰起見,習(xí)慣上每行只寫一個語句1.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):681.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):4.程序總是從main函數(shù)開始執(zhí)行5.C程序?qū)τ嬎銠C(jī)的操作由C語句完成6.數(shù)據(jù)聲明和語句最后必須有分號7.C語言本身不提供輸入輸出語句8.程序應(yīng)當(dāng)包含注釋,增加可讀性1.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):691.5運(yùn)行C程序的步驟與方法1.上機(jī)輸入和編輯源程序(.c文件)2.對源程序進(jìn)行編譯(.obj文件)3.進(jìn)行連接處理(.exe文件)4.運(yùn)行可執(zhí)行程序,得到運(yùn)行結(jié)果說明:以上過程參見教材中圖1.1

附錄A中有VisualC++6.0中編輯、

編譯、連接和運(yùn)行C程序的方法1.5運(yùn)行C程序的步驟與方法1.上機(jī)輸入和編輯源程序(.c701.6程序設(shè)計的任務(wù)1.問題分析對于接手的任務(wù)要進(jìn)行認(rèn)真的分析研究所給定的條件分析最后應(yīng)達(dá)到的目標(biāo)找出解決問題的規(guī)律選擇解題的方法1.6程序設(shè)計的任務(wù)1.問題分析711.6程序設(shè)計的任務(wù)1.問題分析2.設(shè)計算法設(shè)計出解題的方法和具體步驟1.6程序設(shè)計的任務(wù)1.問題分析721.6程序設(shè)計的任務(wù)1.問題分析2.設(shè)計算法3.編寫程序4.對源程序進(jìn)行編輯、編譯和連接5.運(yùn)行程序,分析結(jié)果結(jié)果錯了,程序肯定錯結(jié)果對了,程序未必對1.6程序設(shè)計的任務(wù)1.問題分析731.6程序設(shè)計的任務(wù)1.問題分析2.設(shè)計算法3.編寫程序4.對源程序進(jìn)行編輯、編譯和連接5.運(yùn)行程序,分析結(jié)果6.編寫程序文檔1.6程序設(shè)計的任務(wù)1.問題分析74C程序的上機(jī)步驟編輯編譯連接執(zhí)行

有錯?

正確?無是開始結(jié)束源程序*.c目標(biāo)程序*.obj庫函數(shù)和其它目標(biāo)程序稱為語法錯誤有否可執(zhí)行目標(biāo)程序*.EXEC程序的上機(jī)步驟編輯編譯連接執(zhí)行751.啟動VisualC++6.0環(huán)境2.編輯源程序文件3.編譯和連接4.執(zhí)行利用VisualC++6.0集成環(huán)境開發(fā)C程序的過程如下:1.啟動VisualC++6.0環(huán)境2.編輯源程序文件76課程主要內(nèi)容概念數(shù)據(jù)類型、運(yùn)算符與表達(dá)式三種控制結(jié)構(gòu)數(shù)組函數(shù)指針(一門外語)(單詞、短語)(語法,做事情的順序)(詞組)(做事情的某個環(huán)節(jié)的方法)(遙控)課程主要內(nèi)容概念(一門外語)(單詞、短語)(語法,做事情的順77第1講程序設(shè)計和C語言1.1什么是計算機(jī)程序1.2什么是計算機(jī)語言1.3C語言的發(fā)展及其特點(diǎn)1.4最簡單的C語言程序1.5運(yùn)行C程序的步驟與方法1.6程序設(shè)計的任務(wù)第1講程序設(shè)計和C語言1.1什么是計算機(jī)程序781.1什么是計算機(jī)程序程序:一組計算機(jī)能識別和執(zhí)行的指令只要讓計算機(jī)執(zhí)行這個程序,計算機(jī)就會自動地、有條不紊地進(jìn)行工作計算機(jī)的一切操作都是由程序控制的,離開程序,計算機(jī)將一事無成1.1什么是計算機(jī)程序程序:一組計算機(jī)能識別和執(zhí)行的指令79計算機(jī)能做些什么?計算機(jī)能做些什么?80計算機(jī)計算

如:求解

ax2+bx+c=0(設(shè)a≠0)若d=b2-4ac<0,則沒有實(shí)數(shù)根;否則,若d=b2-4ac≥0,則計算機(jī)計算81計算機(jī)分析例如:判斷1600年是否為閏年只需滿足以下條件之一即為閏年:可以被4整除但不可以被100整除;可以被400整除。

計算機(jī)分析82計算機(jī)游戲計算機(jī)游戲83計算機(jī)操作系統(tǒng)計算機(jī)操作系統(tǒng)84計算機(jī)媒體播放計算機(jī)媒體播放85計算機(jī)能做的,都可用C語言實(shí)現(xiàn)!計算機(jī)能做的,861.2什么是計算機(jī)語言計算機(jī)語言:

人和計算機(jī)交流信息的、計算機(jī)和人都能識別的語言。1.2什么是計算機(jī)語言計算機(jī)語言:87C語言是什么?漢語英語法語英語就相當(dāng)于連接法語和漢語的中間語言。C語言是什么?漢語英語法語英語就相當(dāng)于連接法語和漢語的88人類語言機(jī)器語言C語言C語言就相當(dāng)于連接人類和計算機(jī)的中間語言。人類機(jī)器C語言C語言就相當(dāng)于連接人類和計算機(jī)的中間語言。89C語言是一門計算機(jī)外語類比人類的自然語言類比類比C語言英語法語計算機(jī)的二進(jìn)制漢語C語言是一門計算機(jī)外語類比人類的自然語言類比類比C語言90機(jī)器語言匯編語言高級語言面向過程,如:C面向?qū)ο?如:C++計算機(jī)能夠直接識別和處理的二進(jìn)制機(jī)器指令如:“01110110”用助記符號描述的指令系統(tǒng)如:“MOVEAX,BX”面向機(jī)器的語言程序設(shè)計是數(shù)據(jù)被加工的過程將客觀世界中的事物看成處理的對象更符合人類思維特性的抽象語言

如:“y=x*x;”程序設(shè)計語言發(fā)展史機(jī)器語言匯編語言高級語言面向過程,如:C面向?qū)ο?如:C911.2什么是計算機(jī)語言計算機(jī)語言發(fā)展階段:機(jī)器語言(由0和1組成的指令)符號語言(用英文字母和數(shù)字表示指令)高級語言(接近于人的自然語言和數(shù)學(xué)語言)面向過程的語言

(非結(jié)構(gòu)化的語言、結(jié)構(gòu)化語言)面向?qū)ο蟮恼Z言1.2什么是計算機(jī)語言計算機(jī)語言發(fā)展階段:921.3C語言的發(fā)展及其特點(diǎn)C語言是國際上廣泛流行的計算機(jī)高級語言。C語言的發(fā)展:BCPL語言B語言C語言精練、接近硬件,但過于簡單,無數(shù)據(jù)類型具有多種數(shù)據(jù)類型1.3C語言的發(fā)展及其特點(diǎn)C語言是國際上廣泛流行的計算機(jī)高931.3C語言的發(fā)展及其特點(diǎn)最初的C語言只是為描述和實(shí)現(xiàn)UNIX操作系統(tǒng)提供一種工作語言而設(shè)計的。1.3C語言的發(fā)展及其特點(diǎn)最初的C語言只是為描述和實(shí)現(xiàn)UN94產(chǎn)生背景

匯編語言程序依賴于計算機(jī)硬件,可讀性和可移植 性差;但一般的高級語言又難以實(shí)現(xiàn)對計算機(jī)硬件 的直接操作,盼望有種兼有匯編語言和高級語言特 性的新語言。產(chǎn)生過程時間:1972~1973地點(diǎn):美國貝爾實(shí)驗(yàn)室目的:UNIX操作系統(tǒng)設(shè)計人:Ken.Thompson和Dennis.M.Ritchie產(chǎn)生背景產(chǎn)生過程951.3C語言的發(fā)展及其特點(diǎn)1983年,美國國家標(biāo)準(zhǔn)協(xié)會(ANSI)成立了一個委員會,根據(jù)C語言問世以來各種版本對C語言的發(fā)展和擴(kuò)充,制定了第一個C語言標(biāo)準(zhǔn)草案(’83ANSIC)。1.3C語言的發(fā)展及其特點(diǎn)1983年,美國國家標(biāo)準(zhǔn)協(xié)會(A961.3C語言的發(fā)展及其特點(diǎn)1989年,ANSI公布了一個完整的C語言標(biāo)準(zhǔn)—ANSIX3.159-1989(常稱ANSIC,或C89)。1.3C語言的發(fā)展及其特點(diǎn)1989年,ANSI公布了一個完971.3C語言的發(fā)展及其特點(diǎn)1990年,國際標(biāo)準(zhǔn)化組織ISO(InternationalStandardOrganization)接受C89作為國際標(biāo)準(zhǔn)ISO/IEC9899:1990,它和ANSI的C89基本上是相同的。1.3C語言的發(fā)展及其特點(diǎn)1990年,國際標(biāo)準(zhǔn)化組織ISO981.3C語言的發(fā)展及其特點(diǎn)1995年,ISO對C90作了一些修訂,1999年,ISO又對C語言標(biāo)準(zhǔn)進(jìn)行修訂,在基本保留原來的C語言特征的基礎(chǔ)上,針對應(yīng)用的需要,增加了一些功能,尤其是C++中的一些功能,命名為ISO/IEC9899:1999。1.3C語言的發(fā)展及其特點(diǎn)1995年,ISO對C90作了一991.3C語言的發(fā)展及其特點(diǎn)2001、2004年先后進(jìn)行了兩次技術(shù)修正(TC1和TC2)。

ISO/IEC9899:1999(及其技術(shù)修正)被稱為C99。C99是C89(及1995基準(zhǔn)增補(bǔ)1)的擴(kuò)充。1.3C語言的發(fā)展及其特點(diǎn)2001、2004年先后進(jìn)行了兩1001.3C語言的發(fā)展及其特點(diǎn)本書的敘述以C99標(biāo)準(zhǔn)為依據(jù)(對C99新增加的功能作特別的說明)。目前不同軟件公司提供的各C語言編譯系統(tǒng)多數(shù)并未完全實(shí)現(xiàn)C99建議的功能本書中程序基本上都可以在目前所用的編譯系統(tǒng)(如VC++6.0,TurboC++3.0,GCC)上編譯和運(yùn)行。1.3C語言的發(fā)展及其特點(diǎn)本書的敘述以C99標(biāo)準(zhǔn)為依據(jù)(對1011.3C語言的發(fā)展及其特點(diǎn)C語言是一種用途廣泛、功能強(qiáng)大、使用靈活的過程性(procedural)編程語言,既可用于編寫應(yīng)用軟件,又能用于編寫系統(tǒng)軟件。因此C語言問世以后得到迅速推廣。1.3C語言的發(fā)展及其特點(diǎn)C語言是一種用途廣泛、功能強(qiáng)大、1021.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):語言簡潔、緊湊,使用方便、靈活。只有37個關(guān)鍵字、9種控制語句程序書寫形式自由,源程序短1.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):1031.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):運(yùn)算符豐富。有34種運(yùn)算符把括號、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理表達(dá)式類型多樣化1.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):1041.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):數(shù)據(jù)類型豐富。包括:整型、浮點(diǎn)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型C99又?jǐn)U充了復(fù)數(shù)浮點(diǎn)類型、超長整型(longlong)、布爾類型(bool)指針類型數(shù)據(jù),能用來實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(如鏈表、樹、棧等)的運(yùn)算。1.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):1051.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):具有結(jié)構(gòu)化的控制語句如if…else語句、while語句、do…while語句、switch語句、for語句用函數(shù)作為程序的模塊單位,便于實(shí)現(xiàn)程序的模塊化C語言是完全模塊化和結(jié)構(gòu)化的語言1.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):1061.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):語法限制不太嚴(yán)格,程序設(shè)計自由度大。對數(shù)組下標(biāo)越界不做檢查對變量的類型使用比較靈活,例如,整型量與字符型數(shù)據(jù)可以通用C語言允許程序編寫者有較大的自由度,因此放寬了語法檢查1.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):1071.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):允許直接訪問物理地址,能進(jìn)行位操作,可以直接對硬件進(jìn)行操作C語言具有高級語言的功能和低級語言的許多功能,可用來編寫系統(tǒng)軟件這種雙重性,使它既是成功的系統(tǒng)描述語言,又是通用的程序設(shè)計語言1.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):1081.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):用C語言編寫的程序可移植性好。C的編譯系統(tǒng)簡潔,很容易移植到新系統(tǒng)在新系統(tǒng)上運(yùn)行時,可直接編譯“標(biāo)準(zhǔn)鏈接庫”中的大部分功能,不需要修改源代碼幾乎所有計算機(jī)系統(tǒng)都可以使用C語言1.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):1091.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。1.3C語言的發(fā)展及其特點(diǎn)C語言主要特點(diǎn):1101.4最簡單的C語言程序1.4.1最簡單的C語言程序舉例1.4.2C語言程序的結(jié)構(gòu)1.4最簡單的C語言程序1.4.1最簡單的C語言程序舉例1111.4.1最簡單的C語言程序舉例例1.1要求在屏幕上輸出以下一行信息。

ThisisaCprogram.解題思路:

在主函數(shù)中用printf函數(shù)原樣輸出以上文字。1.4.1最簡單的C語言程序舉例例1.1要求在屏幕上輸出1121.4.1最簡單的C語言程序舉例#include<stdio.h>intmain(){

printf(”ThisisaCprogram.\n”);return0;}函數(shù)的名字,表示主函數(shù)C程序必須有一個main函數(shù)1.4.1最簡單的C語言程序舉例#include<std1131.4.1最簡單的C語言程序舉例#include<stdio.h>intmain(){

printf(”ThisisaCprogram.\n”);return0;}

主函數(shù)類型1.4.1最簡單的C語言程序舉例#include<std1141.4.1最簡單的C語言程序舉例#include<stdio.h>intmain(){

printf(”ThisisaCprogram.\n”);return0;}

函數(shù)體1.4.1最簡單的C語言程序舉例#include<std1151.4.1最簡單的C語言程序舉例#include<stdio.h>intmain(){

printf(”ThisisaCprogram.\n”);return0;}

輸出函數(shù)輸出語句1.4.1最簡單的C語言程序舉例#include<std1161.4.1最簡單的C語言程序舉例#include<stdio.h>intmain(){

printf(”ThisisaCprogram.\n”);return0;}

輸出語句1.4.1最簡單的C語言程序舉例#include<std1171.4.1最簡單的C語言程序舉例#include<stdio.h>intmain(){

printf(”ThisisaCprogram.\n”);return0;}

換行符1.4.1最簡單的C語言程序舉例#include<std1181.4.1最簡單的C語言程序舉例#include<stdio.h>intmain(){

printf(”ThisisaCprogram.\n”);return0;}

當(dāng)main函數(shù)執(zhí)行結(jié)束前將整數(shù)0作為函數(shù)值1.4.1最簡單的C語言程序舉例#include<std1191.4.1最簡單的C語言程序舉例#include<stdio.h>intmain(){

printf(”ThisisaCprogram.\n”);return0;}

表示語句結(jié)束用到函數(shù)庫中的輸入輸出函數(shù)時1.4.1最簡單的C語言程序舉例#include<std1201.4.1最簡單的C語言程序舉例C語言允許用兩種注釋方式://:單行注釋可單獨(dú)占一行可出現(xiàn)在一行中其他內(nèi)容的右側(cè)/*……*/:塊式注釋可包含多行1.4.1最簡單的C語言程序舉例C語言允許用兩種注釋方式:121例1.2求兩個整數(shù)之和。解題思路:設(shè)置3個變量a和b用來存放兩個整數(shù)sum用來存放和數(shù)用賦值運(yùn)算符“=”把結(jié)果傳送給sum例1.2求兩個整數(shù)之和。解題思路:122#include<stdio.h>intmain(){inta,b,sum;a=123;b=456;sum=a+b;printf(”sumis%d\n”,sum);return0;}定義整型變量a,b,sum對變量a,b賦值將a與b的和賦給sum#include<stdio.h>定義整型變量a,b,su123#include<stdio.h>intmain(){inta,b,sum;a=123;b=456;sum=a+b;printf(”sumis%d\n”,sum);return0;}用sum的值替代希望輸出的字符#include<stdio.h>用sum的值替代希望輸出124例1.3求兩個整數(shù)中的較大者。解題思路:用一個函數(shù)實(shí)現(xiàn)求兩個整數(shù)中的較大者在主函數(shù)中調(diào)用此函數(shù)并輸出結(jié)果例1.3求兩個整數(shù)中的較大者。解題思路:125#include<stdio.h>intmain(){intmax(intx,inty);inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}主函數(shù)max函數(shù)#include<stdio.h>intmax(int126#include<stdio.h>intmain(){intmax(intx,inty);inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}將x和y中較大者值返回給主函數(shù)#include<stdio.h>intmax(int127#include<stdio.h>intmain(){intmax(intx,inty);inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}#include<stdio.h>intmax(int128#include<stdio.h>intmain(){intmax(intx,inty);inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}因max函數(shù)的定義在main函數(shù)之后,需聲明#include<stdio.h>intmax(int129#include<stdio.h>intmain(){intmax(intx,inty);inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}輸入函數(shù)#include<stdio.h>intmax(int130#include<stdio.h>intmain(){intmax(intx,inty);inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}輸入語句#include<stdio.h>intmax(int131#include<stdio.h>intmain(){intmax(intx,inty);inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}輸入的數(shù)據(jù)放到a,b中輸入格式a的地址#include<stdio.h>intmax(int132#include<stdio.h>intmain(){intmax(intx,inty);inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}調(diào)用max函數(shù)#include<stdio.h>intmax(int133#include<stdio.h>intmain(){intmax(intx,inty);inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}8588#include<stdio.h>intmax(int134#include<stdio.h>intmain(){intmax(intx,inty);inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論