




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C語言程序設(shè)計任課教師:許美慧信息學(xué)院公共教學(xué)部C語言程序設(shè)計任課教師:許美慧信息學(xué)院公共教學(xué)部1現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展,改變了世界,也改變了人類的生活。作為新世紀(jì)的大學(xué)生,應(yīng)當(dāng)站在時代發(fā)展的前列,掌握現(xiàn)代科學(xué)技術(shù)知識,調(diào)整自己的知識結(jié)構(gòu)和能力結(jié)構(gòu),以適應(yīng)社會發(fā)展的要求。新世紀(jì)需要具有豐富的現(xiàn)代科學(xué)知識、能夠獨立解決面臨任務(wù)、充滿活力、有創(chuàng)新意識的新型人才?,F(xiàn)代科學(xué)技術(shù)的飛速發(fā)展,改變了世界,也改變了人2掌握計算機知識和應(yīng)用,無疑是培養(yǎng)新型人才的一個重要環(huán)節(jié)。計算機既是現(xiàn)代科學(xué)技術(shù)的結(jié)晶,又是大眾化的工具。學(xué)習(xí)計算機技術(shù)不僅是為了掌握一種技能,更重要的是:它能啟發(fā)人們對先進科技的向往,激發(fā)創(chuàng)新意識,推動對新知識的學(xué)習(xí),培養(yǎng)自學(xué)能力,鍛煉動手實踐的本領(lǐng)。掌握計算機知識和應(yīng)用,無疑是培養(yǎng)新型人才的一個3引論我們用計算機解決問題,都是利用某種軟件。如我們使用Word編輯文件,用Excel處理電子表格,用IE瀏覽網(wǎng)絡(luò)資源,用QQ上網(wǎng)聊天等。這些軟件都是按照一定算法編制的計算機程序及其相關(guān)文檔。算法:為解決一個問題而采取的方法和步驟稱為“算法”。
從廣義的角度說,算法早就融入我們的生活中。比如,早上上學(xué),就開始了上學(xué)的算法:走哪條路,坐什么車,如果堵車怎么辦等等,一直到到達學(xué)校,這個算法就完成了。用計算機解決問題也是按照相應(yīng)的步驟(算法)一步一步完成。這些步驟地實現(xiàn)用的是計算機語言,也就是編寫計算機程序。C語言就是一種計算機語言。現(xiàn)在我們要學(xué)習(xí)的就是如何用C語言設(shè)計計算機程序。
引論我們用計算機解決問題,都是利用某種軟件。如4為什么要學(xué)C?如何學(xué)好C?為了自己的理想而努力吧為什么要學(xué)C?如何學(xué)好C?為了自己的理想而努力吧5課堂紀(jì)律常用FTP54課堂紀(jì)律常用FTP546程序設(shè)計語言一、程序設(shè)計語言的發(fā)展㈠、面向機器的語言1、機器語言:CPU可以識別的一組由0和1序列構(gòu)成的指令碼機器可直接執(zhí)行程序,難掌握2、匯編語言:用助記符號描述的指令系統(tǒng)如:ADDa,b機器不能直接執(zhí)行,需要將其翻譯為機器語言程序設(shè)計語言一、程序設(shè)計語言的發(fā)展7㈡、面向過程的程序設(shè)計語言認為每個程序都要完成一些規(guī)定的功能,每個功能的實現(xiàn)是通過對數(shù)據(jù)進行一系列的加工過程而實現(xiàn)的。又稱為結(jié)構(gòu)化程序設(shè)計語言或高級語言,它以更接近于人們的自然語言和數(shù)學(xué)公式編寫程序。如Fortran、Basic、Cobol、Pascal、C。(不再面向機器,而是面向解題過程)將高級語言源程序翻譯為機器語言目標(biāo)程序的兩種方式:①編譯:先翻譯為目標(biāo)程序,再執(zhí)行。編譯程序②解釋:翻譯一句執(zhí)行一句……;不產(chǎn)生目標(biāo)程序。解釋程序㈢、面向?qū)ο蟮某绦蛟O(shè)計語言把現(xiàn)實世界看成是由許多對象所組成的,對象之間通過互相發(fā)送和接收消息進行聯(lián)系。如VB、Delphi、VC等。㈡、面向過程的程序設(shè)計語言又稱為結(jié)構(gòu)化程序設(shè)計語言或高級8二、程序設(shè)計語言的支持環(huán)境裸機操作系統(tǒng)高級語言編譯系統(tǒng)用戶源程序操作系統(tǒng):是各種軟件的核心與基礎(chǔ)作用:有效地組織和利用計算機軟硬件資源,使各種程序能在操作系統(tǒng)的管理下協(xié)調(diào)工作。應(yīng)用較廣泛的操作系統(tǒng):
MS-DOS、Windows、Unix、LinuxC語言:WindowsTurboCV2.0VC6.0VisualC++6.0二、程序設(shè)計語言的支持環(huán)境裸機操作系統(tǒng)高級語言編譯系統(tǒng)用戶源9C語言的產(chǎn)生及特點一、C語言的產(chǎn)生C語言的產(chǎn)生和發(fā)展與UNIX操作系統(tǒng)分不開。1960Algol60國際委員會1963CPL(CombinedProgrammingLanguage)倫敦大學(xué)、劍橋大學(xué)1967BCPL(BasicCPL)劍橋大學(xué)MatinRichads1970B貝爾實驗室KenThompson1972C貝爾實驗室D.M.Ritchie1978-《TheCProgrammingLanguage》→ANSICC語言的產(chǎn)生及特點一、C語言的產(chǎn)生1960Algol6010二、C語言的特點語言簡潔、緊湊,使用方便靈活運算符豐富數(shù)據(jù)結(jié)構(gòu)豐富結(jié)構(gòu)化控制結(jié)構(gòu)語法限制不太嚴(yán)格,程序設(shè)計自由度大既有高級語言的優(yōu)點、又有低級語言的特點目標(biāo)代碼質(zhì)量高可移植性強二、C語言的特點11第1章(1)C語言概述本次課主要介紹C語言程序的結(jié)構(gòu)和書寫規(guī)則,以及VC6.0的基本操作。C語言的引出C語言程序的結(jié)構(gòu)與書寫規(guī)則C語言的語句和關(guān)鍵字VC6.0的基本操作第1章(1)C語言概述本次課主要介紹C語言程序的結(jié)構(gòu)12C語言的引出用計算機解決實際問題——軟件算法:為解決一個問題而采取的方法和步驟稱為“算法”。問題——算法——計算機語言(C語言)——C語言程序C語言的引出用計算機解決實際問題——軟件問題——算法——計算13C語言程序的結(jié)構(gòu)與書寫規(guī)則說明:⑴、main表示主函數(shù),每個程序必須有一個main函數(shù)。程序總是從main函數(shù)開始執(zhí)行。void是main函數(shù)的返回類型,void表示空類型,即main函數(shù)沒有返回值。⑵、函數(shù)體由一對大括號括起來;范圍以“{”開始,“}”結(jié)束。⑶、printf是C語言的標(biāo)準(zhǔn)輸出函數(shù),“""”內(nèi)的字符串按原樣輸出,“\n”是換行符,即輸出完后回車換行。⑷、每個語句必須以分號“;”結(jié)束。問題1:在屏幕上輸出一行信息:ThisisaCprogram!#include<stdio.h>voidmain(){
printf("ThisisaCprogram!\n");}[程序演示][VC6.0]C語言程序的結(jié)構(gòu)與書寫規(guī)則說明:問題1:在屏幕上輸出一行信息14#include<stdio.h>voidmain(){printf("*****\n");printf("***\n");printf("*\n");}*********[程序演示]#include<stdio.h>*****[程序演示]15#include<stdio.h>voidmain()
/*主函數(shù)*/{
int
a,b,sum;/*定義變量*/a=123;b=456;sum=a+b;printf("sumis
%d\n",
sum);}說明:⑴、“%d”用來規(guī)定輸入輸出時的數(shù)據(jù)類型和格式;%d表示“十進制整數(shù)類型”,輸出時代以一個十進制整數(shù)值,該值由“,”后邊的內(nèi)容提供。
⑵、“/*…*/”表示注釋部分,以“/*”開始,以“*/”結(jié)束;注釋部分可以加在程序的任意位置,僅起幫助閱讀程序的作用,對編譯和運行程序不產(chǎn)生任何影響;sumis579問題2:計算兩整數(shù)之和,并輸出結(jié)果。[程序演示]#include<stdio.h>說明:sumis5716#include<stdio.h>voidmain(){floata,b,c,aver;printf("pleaseinputthreenumbers:\n");scanf("%f%f%f",&a,&b,&c);aver=(a+b+c)/3;printf("averis%f\n",aver);}說明:⑴、float用于聲明實型變量⑵、scanf是C語言的標(biāo)準(zhǔn)輸入函數(shù),“&”的含義是得到后面變量的地址。即將輸入的數(shù)按前面指定的格式給后面指定的變量⑶、“%f”表示輸出一個實數(shù),默認6位小數(shù)pleaseinputthreenumbers:345averis4.000000問題3:計算三個數(shù)的平均數(shù),并輸出結(jié)果。[程序演示]#include<stdio.h>說明:pleaseinp17問題4:求任意2個整數(shù)中的較大數(shù)voidmain(){inta,b,c;
scanf("%d%d",&a,&b);if(a>b)c=a;elsec=b;printf("max=%d\n",c);}用函數(shù)實現(xiàn)比較大小voidmain(){inta,b,c;scanf("%d%d",&a,&b);
c=max(a,b);printf("max=%d\n",c);}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;
return(z);}1234max=34問題4:求任意2個整數(shù)中的較大數(shù)voidmain()用函18floataverage(floata1,floatb1,floatc1){floataver1;aver1=(a1+b1+c1)/3;return(aver1);}voidmain(){floata,b,c,aver;printf("pleaseinputa,b,c:");scanf("%f%f%f",&a,&b,&c);
aver=average(a,b,c);printf("theaverageis%4.1f\n",aver);}floataverage(floata1,float19C語言程序的基本結(jié)構(gòu)主函數(shù)main(){聲明部分執(zhí)行部分}其它函數(shù){聲明部分執(zhí)行部分}C語言程序的基本結(jié)構(gòu)主函數(shù)main()20floataverage(floata1,floatb1,floatc1){floataver1;aver1=(a1+b1+c1)/3;return(aver1);}voidmain(){floata,b,c,aver;printf("pleaseinputa,b,c:");scanf("%f%f%f",&a,&b,&c);
aver=average(a,b,c);printf("theaverageis%4.1f\n",aver);}主函數(shù)聲明部分執(zhí)行部分其它函數(shù)聲明部分執(zhí)行部分floataverage(floata1,float211、一個C程序由一個或多個函數(shù)構(gòu)成。程序中應(yīng)至少包含一個main函數(shù)。函數(shù)是C語言的基本單位(函數(shù)式語言)。2、一個C程序總是從main函數(shù)開始執(zhí)行,而不論main函數(shù)在整個程序中的位置如何;一般說來,又隨著main函數(shù)的結(jié)束而整個程序結(jié)束。3、被調(diào)用的函數(shù)可以是系統(tǒng)提供的庫函數(shù),也可以是用戶根據(jù)需要自己編寫的函數(shù)。4、C語言本身沒有輸入輸出語句,輸入和輸出操作由庫函數(shù)scanf和printf等函數(shù)來完成,C對輸入輸出實行函數(shù)化。5、每個語句和數(shù)據(jù)定義的最后必須有一個分號;分號是C語句的必要組成部分。幾點說明:1、一個C程序由一個或多個函數(shù)構(gòu)成。程序中應(yīng)至少包含一個ma22函數(shù)的構(gòu)成:一個函數(shù)由兩部分構(gòu)成:1、函數(shù)首部:即函數(shù)的第一行。包括函數(shù)名、函數(shù)類型、函數(shù)參數(shù)(形參)名、參數(shù)類型。
floataverage(floata1,floatb1,floatc1)注意:一個函數(shù)名后面必須跟“()”作為函數(shù)的標(biāo)志:main()2、函數(shù)體:即函數(shù)首部下面“{}”內(nèi)的部分函數(shù)體內(nèi)一般又分為兩部分:⑴、變量定義(數(shù)據(jù)聲明)部分:定義在本函數(shù)中用到的變量或數(shù)組的數(shù)據(jù)類型;⑵、執(zhí)行部分:由若干語句組成,完成函數(shù)所規(guī)定的功能。intmax(intx,inty){
intz;if(x>y)z=x;elsez=y;return(z);}函數(shù)的構(gòu)成:一個函數(shù)由兩部分構(gòu)成:2、函數(shù)體:即函數(shù)首部下面23源程序書寫格式1.所有語句和數(shù)據(jù)定義都必須以分號“;”結(jié)束,函數(shù)的最后一個語句也不例外。說明:在以下三種情況下不允許有分號:
a.函數(shù)名稱后面不使用分號;b.在右花括號“}”后面不使用分號;c.預(yù)處理語句后面不使用分號。sum();{……}while(total<=2000){limit++;total=total+limit;};#include“stdio.h”;源程序書寫格式sum();while(total<=20242.程序行的書寫格式自由,既允許1行內(nèi)寫幾條語句,也允許1條語句分寫在幾行上。如果某條語句很長,一般需要將其分寫在幾行上。3.允許使用注釋。C語言的注釋格式為:/*……*/例如,在前面例子中,凡是用“/*”和“*/”括起來的文字,都是注釋。2.程序行的書寫格式自由,既允許1行內(nèi)寫幾條語句,也允許1條25C語言的語句和關(guān)鍵字
一、C語言的語句
與其它高級語言一樣,C語言也是利用函數(shù)體中的可執(zhí)行語句,向計算機系統(tǒng)發(fā)出操作命令。按照語句功能或構(gòu)成的不同,可將C語言的語句分為五類。1.控制語句控制語句完成一定的控制功能。C語言只有9條控制語句,又可細分為三種:(1)選擇(分支)結(jié)構(gòu)控制語句if()~else~,switch()~(2)循環(huán)結(jié)構(gòu)控制語句do~while(),for()~,while()~,break,continueC語言的語句和關(guān)鍵字一、C語言的語句26(3)其它控制語句goto,return
2.函數(shù)調(diào)用語句函數(shù)調(diào)用語句由一次函數(shù)調(diào)用加一個分號(語句結(jié)束標(biāo)志)構(gòu)成。例如,printf("ThisisaCfunctionstatement.");3.表達式語句表達式語句由表達式后加一個分號構(gòu)成。最典型的表達式語句是,在賦值表達式后加一個分號構(gòu)成的賦值語句。例如,“num=5”是一個賦值表達式,而“num=5;”卻是一個賦值語句。4.空語句空語句僅由一個分號構(gòu)成。顯然,空語句什么操作也不執(zhí)行。
(3)其它控制語句27例如,下面就是一個空語句:;5.復(fù)合語句復(fù)合語句是由大括號括起來的一組(也可以是1條)語句構(gòu)成。例如:
main(){……{……}/*復(fù)合語句。注意:右括號后不需要分號。*/……}復(fù)合語句的性質(zhì):(1)在語法上和單一語句相同,即單一語句可以出現(xiàn)的地方,也可以使用復(fù)合語句。(2)復(fù)合語句可以嵌套,即復(fù)合語句中也可出現(xiàn)復(fù)合語句。例如,下面就是一個空語句:28二、關(guān)鍵字C語言的關(guān)鍵字共有32個,根據(jù)關(guān)鍵字的作用,可分其為數(shù)據(jù)類型關(guān)鍵字、控制語句關(guān)鍵字、存儲類型關(guān)鍵字和其它關(guān)鍵字四類。
(1)數(shù)據(jù)類型關(guān)鍵字(12個):char,double,enum,float,int,long,short,signed,struct,union,unsigned,void(2)控制語句關(guān)鍵字(12個):break,case,continue,default,do,else,for,goto,if,return,switch,while(3)存儲類型關(guān)鍵字(4個):auto,extern,register,static(4)其它關(guān)鍵字(4個):const,sizeof,typedef,volatile二、關(guān)鍵字29VC6.0的基本操作1.運行一個C語言程序的一般過程2.VC6.0的啟動、退出與命令菜單3.編輯并保存一個C語言源程序4.編譯、連接──單個源程序文件5.運行與查看結(jié)果6.編輯下一個新的源程序VC6.0的基本操作1.運行一個C語言程序的一般過程30源程序、目標(biāo)程序、可執(zhí)行程序的概念1.程序:程序是一組計算機可以識別和執(zhí)行的指令,每一條指令使計算機執(zhí)行特定的操作。2.源程序:程序可以用高級語言或匯編語言編寫,用高級語言或匯編語言編寫的程序稱為源程序。C源程序的擴展名為“.C”。源程序不能直接在計算機上執(zhí)行,需要用“編譯程序”將源程序翻譯為二進制形式的代碼。3.目標(biāo)程序:源程序經(jīng)過“編譯程序”翻譯所得到的二進制代碼稱為目標(biāo)程序。目標(biāo)程序的擴展名為“.OBJ”。目標(biāo)代碼盡管已經(jīng)是機器指令,但是還不能運行,因為目標(biāo)程序還沒有解決函數(shù)調(diào)用問題,因此需要將各個目標(biāo)程序與庫函數(shù)連接起來,才能形成完整的可執(zhí)行程序。4.可執(zhí)行程序:目標(biāo)程序與庫函數(shù)連接,形成完整的可在操作系統(tǒng)下獨立執(zhí)行的程序稱為可執(zhí)行程序??蓤?zhí)行程序的擴展名為“.EXE”(在DOS/Windows環(huán)境下)。源程序、目標(biāo)程序、可執(zhí)行程序的概念1.程序:程序是一組計算機31編輯鏈接編譯執(zhí)行C程序開發(fā)步驟<>file.exe程序代碼的錄入,生成源程序*.c語法分析查錯,翻譯生成目標(biāo)程序*.obj與其它目標(biāo)程序或庫鏈接裝配,生成可執(zhí)行程序*.exeC程序的上機步驟編輯鏈接編譯執(zhí)行<>file.exe程序代碼的錄入,語法分析321.運行一個C語言程序的一般過程
VC6.0是一個集源程序編輯、編譯、連接、運行與調(diào)試于一體、的集成軟件環(huán)境。運行一個C語言程序的一般過程:(1)啟動VC,進入VC集成環(huán)境。(2)編輯(或修改)源程序。(3)編譯。如果編譯成功,則可進行下一步操作;否則,返回(2)修改源程序,再重新編譯,直至編譯成功。(4)連接。如果連接成功,則可進行下一步操作;否則,根據(jù)系統(tǒng)的錯誤提示,進行相應(yīng)修改,再重新連接,直至連接成功。(5)運行。通過觀察程序運行結(jié)果,驗證程序的正確性。如果出現(xiàn)邏輯錯誤,則必須返回(2)修改源程序,再重新編譯、連接和運行,直至程序正確。(6)退出VC集成環(huán)境,結(jié)束本次程序運行。1.運行一個C語言程序的一般過程33算術(shù)運算符:+-*/%++--關(guān)系運算符:<<===>>=!=邏輯運算符:!&&||位運算符:<<>>~|^&賦值運算符:=及其擴展條件運算符:?:逗號運算符:,指針運算符:*&求字節(jié)數(shù):sizeof強制類型轉(zhuǎn)換:(類型)分量運算符:.->下標(biāo)運算符:[]其它:()-<34種運算符:<34種運算符:34基本類型構(gòu)造類型指針類型空類型void定義類型typedef數(shù)值類型字符類型char枚舉類型enum整型浮點型單精度型float雙精度型double短整型short長整型long整型int數(shù)組結(jié)構(gòu)體struct共用體union<C數(shù)據(jù)類型:基本類型構(gòu)造類型指針類型空類型void定義類型typedef35作業(yè)1、編寫一個程序,能顯示下面兩行文字:Iamastudent.IloveChina.2、編寫程序,能顯示如下圖形:**********3、編寫程序,從鍵盤輸入兩個整數(shù),輸出此二數(shù)之和。作業(yè)1、編寫一個程序,能顯示下面兩行文字:Iamast36C語言程序設(shè)計任課教師:許美慧信息學(xué)院公共教學(xué)部C語言程序設(shè)計任課教師:許美慧信息學(xué)院公共教學(xué)部37現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展,改變了世界,也改變了人類的生活。作為新世紀(jì)的大學(xué)生,應(yīng)當(dāng)站在時代發(fā)展的前列,掌握現(xiàn)代科學(xué)技術(shù)知識,調(diào)整自己的知識結(jié)構(gòu)和能力結(jié)構(gòu),以適應(yīng)社會發(fā)展的要求。新世紀(jì)需要具有豐富的現(xiàn)代科學(xué)知識、能夠獨立解決面臨任務(wù)、充滿活力、有創(chuàng)新意識的新型人才?,F(xiàn)代科學(xué)技術(shù)的飛速發(fā)展,改變了世界,也改變了人38掌握計算機知識和應(yīng)用,無疑是培養(yǎng)新型人才的一個重要環(huán)節(jié)。計算機既是現(xiàn)代科學(xué)技術(shù)的結(jié)晶,又是大眾化的工具。學(xué)習(xí)計算機技術(shù)不僅是為了掌握一種技能,更重要的是:它能啟發(fā)人們對先進科技的向往,激發(fā)創(chuàng)新意識,推動對新知識的學(xué)習(xí),培養(yǎng)自學(xué)能力,鍛煉動手實踐的本領(lǐng)。掌握計算機知識和應(yīng)用,無疑是培養(yǎng)新型人才的一個39引論我們用計算機解決問題,都是利用某種軟件。如我們使用Word編輯文件,用Excel處理電子表格,用IE瀏覽網(wǎng)絡(luò)資源,用QQ上網(wǎng)聊天等。這些軟件都是按照一定算法編制的計算機程序及其相關(guān)文檔。算法:為解決一個問題而采取的方法和步驟稱為“算法”。
從廣義的角度說,算法早就融入我們的生活中。比如,早上上學(xué),就開始了上學(xué)的算法:走哪條路,坐什么車,如果堵車怎么辦等等,一直到到達學(xué)校,這個算法就完成了。用計算機解決問題也是按照相應(yīng)的步驟(算法)一步一步完成。這些步驟地實現(xiàn)用的是計算機語言,也就是編寫計算機程序。C語言就是一種計算機語言?,F(xiàn)在我們要學(xué)習(xí)的就是如何用C語言設(shè)計計算機程序。
引論我們用計算機解決問題,都是利用某種軟件。如40為什么要學(xué)C?如何學(xué)好C?為了自己的理想而努力吧為什么要學(xué)C?如何學(xué)好C?為了自己的理想而努力吧41課堂紀(jì)律常用FTP54課堂紀(jì)律常用FTP5442程序設(shè)計語言一、程序設(shè)計語言的發(fā)展㈠、面向機器的語言1、機器語言:CPU可以識別的一組由0和1序列構(gòu)成的指令碼機器可直接執(zhí)行程序,難掌握2、匯編語言:用助記符號描述的指令系統(tǒng)如:ADDa,b機器不能直接執(zhí)行,需要將其翻譯為機器語言程序設(shè)計語言一、程序設(shè)計語言的發(fā)展43㈡、面向過程的程序設(shè)計語言認為每個程序都要完成一些規(guī)定的功能,每個功能的實現(xiàn)是通過對數(shù)據(jù)進行一系列的加工過程而實現(xiàn)的。又稱為結(jié)構(gòu)化程序設(shè)計語言或高級語言,它以更接近于人們的自然語言和數(shù)學(xué)公式編寫程序。如Fortran、Basic、Cobol、Pascal、C。(不再面向機器,而是面向解題過程)將高級語言源程序翻譯為機器語言目標(biāo)程序的兩種方式:①編譯:先翻譯為目標(biāo)程序,再執(zhí)行。編譯程序②解釋:翻譯一句執(zhí)行一句……;不產(chǎn)生目標(biāo)程序。解釋程序㈢、面向?qū)ο蟮某绦蛟O(shè)計語言把現(xiàn)實世界看成是由許多對象所組成的,對象之間通過互相發(fā)送和接收消息進行聯(lián)系。如VB、Delphi、VC等。㈡、面向過程的程序設(shè)計語言又稱為結(jié)構(gòu)化程序設(shè)計語言或高級44二、程序設(shè)計語言的支持環(huán)境裸機操作系統(tǒng)高級語言編譯系統(tǒng)用戶源程序操作系統(tǒng):是各種軟件的核心與基礎(chǔ)作用:有效地組織和利用計算機軟硬件資源,使各種程序能在操作系統(tǒng)的管理下協(xié)調(diào)工作。應(yīng)用較廣泛的操作系統(tǒng):
MS-DOS、Windows、Unix、LinuxC語言:WindowsTurboCV2.0VC6.0VisualC++6.0二、程序設(shè)計語言的支持環(huán)境裸機操作系統(tǒng)高級語言編譯系統(tǒng)用戶源45C語言的產(chǎn)生及特點一、C語言的產(chǎn)生C語言的產(chǎn)生和發(fā)展與UNIX操作系統(tǒng)分不開。1960Algol60國際委員會1963CPL(CombinedProgrammingLanguage)倫敦大學(xué)、劍橋大學(xué)1967BCPL(BasicCPL)劍橋大學(xué)MatinRichads1970B貝爾實驗室KenThompson1972C貝爾實驗室D.M.Ritchie1978-《TheCProgrammingLanguage》→ANSICC語言的產(chǎn)生及特點一、C語言的產(chǎn)生1960Algol6046二、C語言的特點語言簡潔、緊湊,使用方便靈活運算符豐富數(shù)據(jù)結(jié)構(gòu)豐富結(jié)構(gòu)化控制結(jié)構(gòu)語法限制不太嚴(yán)格,程序設(shè)計自由度大既有高級語言的優(yōu)點、又有低級語言的特點目標(biāo)代碼質(zhì)量高可移植性強二、C語言的特點47第1章(1)C語言概述本次課主要介紹C語言程序的結(jié)構(gòu)和書寫規(guī)則,以及VC6.0的基本操作。C語言的引出C語言程序的結(jié)構(gòu)與書寫規(guī)則C語言的語句和關(guān)鍵字VC6.0的基本操作第1章(1)C語言概述本次課主要介紹C語言程序的結(jié)構(gòu)48C語言的引出用計算機解決實際問題——軟件算法:為解決一個問題而采取的方法和步驟稱為“算法”。問題——算法——計算機語言(C語言)——C語言程序C語言的引出用計算機解決實際問題——軟件問題——算法——計算49C語言程序的結(jié)構(gòu)與書寫規(guī)則說明:⑴、main表示主函數(shù),每個程序必須有一個main函數(shù)。程序總是從main函數(shù)開始執(zhí)行。void是main函數(shù)的返回類型,void表示空類型,即main函數(shù)沒有返回值。⑵、函數(shù)體由一對大括號括起來;范圍以“{”開始,“}”結(jié)束。⑶、printf是C語言的標(biāo)準(zhǔn)輸出函數(shù),“""”內(nèi)的字符串按原樣輸出,“\n”是換行符,即輸出完后回車換行。⑷、每個語句必須以分號“;”結(jié)束。問題1:在屏幕上輸出一行信息:ThisisaCprogram!#include<stdio.h>voidmain(){
printf("ThisisaCprogram!\n");}[程序演示][VC6.0]C語言程序的結(jié)構(gòu)與書寫規(guī)則說明:問題1:在屏幕上輸出一行信息50#include<stdio.h>voidmain(){printf("*****\n");printf("***\n");printf("*\n");}*********[程序演示]#include<stdio.h>*****[程序演示]51#include<stdio.h>voidmain()
/*主函數(shù)*/{
int
a,b,sum;/*定義變量*/a=123;b=456;sum=a+b;printf("sumis
%d\n",
sum);}說明:⑴、“%d”用來規(guī)定輸入輸出時的數(shù)據(jù)類型和格式;%d表示“十進制整數(shù)類型”,輸出時代以一個十進制整數(shù)值,該值由“,”后邊的內(nèi)容提供。
⑵、“/*…*/”表示注釋部分,以“/*”開始,以“*/”結(jié)束;注釋部分可以加在程序的任意位置,僅起幫助閱讀程序的作用,對編譯和運行程序不產(chǎn)生任何影響;sumis579問題2:計算兩整數(shù)之和,并輸出結(jié)果。[程序演示]#include<stdio.h>說明:sumis5752#include<stdio.h>voidmain(){floata,b,c,aver;printf("pleaseinputthreenumbers:\n");scanf("%f%f%f",&a,&b,&c);aver=(a+b+c)/3;printf("averis%f\n",aver);}說明:⑴、float用于聲明實型變量⑵、scanf是C語言的標(biāo)準(zhǔn)輸入函數(shù),“&”的含義是得到后面變量的地址。即將輸入的數(shù)按前面指定的格式給后面指定的變量⑶、“%f”表示輸出一個實數(shù),默認6位小數(shù)pleaseinputthreenumbers:345averis4.000000問題3:計算三個數(shù)的平均數(shù),并輸出結(jié)果。[程序演示]#include<stdio.h>說明:pleaseinp53問題4:求任意2個整數(shù)中的較大數(shù)voidmain(){inta,b,c;
scanf("%d%d",&a,&b);if(a>b)c=a;elsec=b;printf("max=%d\n",c);}用函數(shù)實現(xiàn)比較大小voidmain(){inta,b,c;scanf("%d%d",&a,&b);
c=max(a,b);printf("max=%d\n",c);}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;
return(z);}1234max=34問題4:求任意2個整數(shù)中的較大數(shù)voidmain()用函54floataverage(floata1,floatb1,floatc1){floataver1;aver1=(a1+b1+c1)/3;return(aver1);}voidmain(){floata,b,c,aver;printf("pleaseinputa,b,c:");scanf("%f%f%f",&a,&b,&c);
aver=average(a,b,c);printf("theaverageis%4.1f\n",aver);}floataverage(floata1,float55C語言程序的基本結(jié)構(gòu)主函數(shù)main(){聲明部分執(zhí)行部分}其它函數(shù){聲明部分執(zhí)行部分}C語言程序的基本結(jié)構(gòu)主函數(shù)main()56floataverage(floata1,floatb1,floatc1){floataver1;aver1=(a1+b1+c1)/3;return(aver1);}voidmain(){floata,b,c,aver;printf("pleaseinputa,b,c:");scanf("%f%f%f",&a,&b,&c);
aver=average(a,b,c);printf("theaverageis%4.1f\n",aver);}主函數(shù)聲明部分執(zhí)行部分其它函數(shù)聲明部分執(zhí)行部分floataverage(floata1,float571、一個C程序由一個或多個函數(shù)構(gòu)成。程序中應(yīng)至少包含一個main函數(shù)。函數(shù)是C語言的基本單位(函數(shù)式語言)。2、一個C程序總是從main函數(shù)開始執(zhí)行,而不論main函數(shù)在整個程序中的位置如何;一般說來,又隨著main函數(shù)的結(jié)束而整個程序結(jié)束。3、被調(diào)用的函數(shù)可以是系統(tǒng)提供的庫函數(shù),也可以是用戶根據(jù)需要自己編寫的函數(shù)。4、C語言本身沒有輸入輸出語句,輸入和輸出操作由庫函數(shù)scanf和printf等函數(shù)來完成,C對輸入輸出實行函數(shù)化。5、每個語句和數(shù)據(jù)定義的最后必須有一個分號;分號是C語句的必要組成部分。幾點說明:1、一個C程序由一個或多個函數(shù)構(gòu)成。程序中應(yīng)至少包含一個ma58函數(shù)的構(gòu)成:一個函數(shù)由兩部分構(gòu)成:1、函數(shù)首部:即函數(shù)的第一行。包括函數(shù)名、函數(shù)類型、函數(shù)參數(shù)(形參)名、參數(shù)類型。
floataverage(floata1,floatb1,floatc1)注意:一個函數(shù)名后面必須跟“()”作為函數(shù)的標(biāo)志:main()2、函數(shù)體:即函數(shù)首部下面“{}”內(nèi)的部分函數(shù)體內(nèi)一般又分為兩部分:⑴、變量定義(數(shù)據(jù)聲明)部分:定義在本函數(shù)中用到的變量或數(shù)組的數(shù)據(jù)類型;⑵、執(zhí)行部分:由若干語句組成,完成函數(shù)所規(guī)定的功能。intmax(intx,inty){
intz;if(x>y)z=x;elsez=y;return(z);}函數(shù)的構(gòu)成:一個函數(shù)由兩部分構(gòu)成:2、函數(shù)體:即函數(shù)首部下面59源程序書寫格式1.所有語句和數(shù)據(jù)定義都必須以分號“;”結(jié)束,函數(shù)的最后一個語句也不例外。說明:在以下三種情況下不允許有分號:
a.函數(shù)名稱后面不使用分號;b.在右花括號“}”后面不使用分號;c.預(yù)處理語句后面不使用分號。sum();{……}while(total<=2000){limit++;total=total+limit;};#include“stdio.h”;源程序書寫格式sum();while(total<=20602.程序行的書寫格式自由,既允許1行內(nèi)寫幾條語句,也允許1條語句分寫在幾行上。如果某條語句很長,一般需要將其分寫在幾行上。3.允許使用注釋。C語言的注釋格式為:/*……*/例如,在前面例子中,凡是用“/*”和“*/”括起來的文字,都是注釋。2.程序行的書寫格式自由,既允許1行內(nèi)寫幾條語句,也允許1條61C語言的語句和關(guān)鍵字
一、C語言的語句
與其它高級語言一樣,C語言也是利用函數(shù)體中的可執(zhí)行語句,向計算機系統(tǒng)發(fā)出操作命令。按照語句功能或構(gòu)成的不同,可將C語言的語句分為五類。1.控制語句控制語句完成一定的控制功能。C語言只有9條控制語句,又可細分為三種:(1)選擇(分支)結(jié)構(gòu)控制語句if()~else~,switch()~(2)循環(huán)結(jié)構(gòu)控制語句do~while(),for()~,while()~,break,continueC語言的語句和關(guān)鍵字一、C語言的語句62(3)其它控制語句goto,return
2.函數(shù)調(diào)用語句函數(shù)調(diào)用語句由一次函數(shù)調(diào)用加一個分號(語句結(jié)束標(biāo)志)構(gòu)成。例如,printf("ThisisaCfunctionstatement.");3.表達式語句表達式語句由表達式后加一個分號構(gòu)成。最典型的表達式語句是,在賦值表達式后加一個分號構(gòu)成的賦值語句。例如,“num=5”是一個賦值表達式,而“num=5;”卻是一個賦值語句。4.空語句空語句僅由一個分號構(gòu)成。顯然,空語句什么操作也不執(zhí)行。
(3)其它控制語句63例如,下面就是一個空語句:;5.復(fù)合語句復(fù)合語句是由大括號括起來的一組(也可以是1條)語句構(gòu)成。例如:
main(){……{……}/*復(fù)合語句。注意:右括號后不需要分號。*/……}復(fù)合語句的性質(zhì):(1)在語法上和單一語句相同,即單一語句可以出現(xiàn)的地方,也可以使用復(fù)合語句。(2)復(fù)合語句可以嵌套,即復(fù)合語句中也可出現(xiàn)復(fù)合語句。例如,下面就是一個空語句:64二、關(guān)鍵字C語言的關(guān)鍵字共有32個,根據(jù)關(guān)鍵字的作用,可分其為數(shù)據(jù)類型關(guān)鍵字、控制語句關(guān)鍵字、存儲類型關(guān)鍵字和其它關(guān)鍵字四類。
(1)數(shù)據(jù)類型關(guān)鍵字(12個):char,double,enum,float,int,long,short,signed,struct,union,unsigned,void(2)控制語句關(guān)鍵字(12個):break,case,continue,default,do,else,for,goto,if,return,switch,while(3)存儲類型關(guān)鍵字(4個
溫馨提示
- 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產(chǎn)轉(zhuǎn)讓合同示范文本(正式版)
- 公寓電梯維修保養(yǎng)合同范文
- 8《天氣與生活》教學(xué)設(shè)計-2023-2024學(xué)年科學(xué)二年級下冊青島版
- 食品代理購銷合同范本
- 15 快樂過新年 第1課時 教學(xué)設(shè)計-2023-2024學(xué)年道德與法治一年級上冊統(tǒng)編版
- 抵押合同和保證合同范本
- 2 這些事我來做 教學(xué)設(shè)計-2023-2024學(xué)年道德與法治四年級上冊統(tǒng)編版五四制
- 4 我們是怎樣聽到聲音的(教學(xué)設(shè)計)-2024-2025學(xué)年科學(xué)四年級上冊教科版
- 2023-2024學(xué)年粵教版(2019)高中信息技術(shù)必修一《數(shù)據(jù)與計算》第四章第一節(jié)《程序設(shè)計語言的基礎(chǔ)知識》教學(xué)設(shè)計
- 紙箱購銷合同范本
- DB37-T 4384-2021 混凝土橋梁有效預(yù)應(yīng)力無損檢測技術(shù)規(guī)程
- 大學(xué)物理英語詞匯
- 汽車懸掛系統(tǒng)結(jié)構(gòu)原理詳細圖解
- GB/T 13305-2024不銹鋼中α-相含量測定法
- 2024年高中英語衡水體書法練字字帖
- 垃圾清運管理制度12篇
- 人教版二年級下冊口算題天天練1000道可打印帶答案
- 【跨境電商零售進口稅收征管對策及建議16000字(論文)】
- DZ∕T 0332-2020 碳酸鹽巖油氣藏縫洞體雕刻法資源儲量估算規(guī)范(正式版)
- 心血管介入護士進修匯報
- 施工組織設(shè)計內(nèi)部審批表
評論
0/150
提交評論