版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
高級(jí)語(yǔ)言程序設(shè)計(jì)湖南財(cái)政經(jīng)濟(jì)學(xué)院信息管理系張華cszhangh@163.com如何學(xué)好C語(yǔ)言掌握算法是關(guān)鍵。注意編程風(fēng)格。敢于懷疑,課本上有些可能是錯(cuò)誤的,自己在計(jì)算機(jī)上動(dòng)手調(diào)試可以證明一切。多上機(jī),可以加深對(duì)程序的理解。網(wǎng)上的編程網(wǎng)站也比較多。第1章程序設(shè)計(jì)和C語(yǔ)言1.1什么是計(jì)算機(jī)程序1.2什么是計(jì)算機(jī)語(yǔ)言1.3C語(yǔ)言的發(fā)展及其特點(diǎn)1.4最簡(jiǎn)單的C語(yǔ)言程序1.5運(yùn)行C程序的步驟與方法1.6程序設(shè)計(jì)的任務(wù)1.1什么是計(jì)算機(jī)程序程序:一組計(jì)算機(jī)能識(shí)別和執(zhí)行的指令。只要讓計(jì)算機(jī)執(zhí)行這個(gè)程序,計(jì)算機(jī)就會(huì)自動(dòng)地、有條不紊地進(jìn)行工作。計(jì)算機(jī)的一切操作都是由程序控制的,離開(kāi)程序,計(jì)算機(jī)將一事無(wú)成。程序是為解決某一特定問(wèn)題按照既定算法用某種計(jì)算機(jī)語(yǔ)言編寫的一系列有序的指令或語(yǔ)句的集合。1.2什么是計(jì)算機(jī)語(yǔ)言計(jì)算機(jī)語(yǔ)言:人和計(jì)算機(jī)交流信息的、計(jì)算機(jī)和人都能識(shí)別的語(yǔ)言學(xué)習(xí)語(yǔ)言是設(shè)計(jì)程序的基礎(chǔ)1.2什么是計(jì)算機(jī)語(yǔ)言計(jì)算機(jī)語(yǔ)言發(fā)展階段:機(jī)器語(yǔ)言(由0和1組成的指令)符號(hào)語(yǔ)言(用英文字母和數(shù)字表示指令)高級(jí)語(yǔ)言(接近于人的自然語(yǔ)言和數(shù)學(xué)語(yǔ)言)面向過(guò)程的語(yǔ)言
(非結(jié)構(gòu)化的語(yǔ)言、結(jié)構(gòu)化語(yǔ)言)面向?qū)ο蟮恼Z(yǔ)言低級(jí)語(yǔ)言面向過(guò)程與面向?qū)ο蟮膮^(qū)別面向過(guò)程就是分析出解決問(wèn)題所需要的步驟,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn),使用的時(shí)候一個(gè)一個(gè)依次調(diào)用就可以了。面向?qū)ο笫前褬?gòu)成問(wèn)題事務(wù)分解成各個(gè)對(duì)象,建立對(duì)象的目的不是為了完成一個(gè)步驟,而是為了描敘某個(gè)事物在整個(gè)解決問(wèn)題的步驟中的行為。面向過(guò)程的思維方式是分析綜合。面向?qū)ο蟮乃季S方式是構(gòu)造。針對(duì)用C語(yǔ)言過(guò)程式解決問(wèn)題時(shí),一般是將現(xiàn)有的數(shù)據(jù)結(jié)構(gòu)先定義出來(lái),然后想辦法構(gòu)造出算法。而用C++這樣的面向?qū)ο笄蠼鈺r(shí),先是將對(duì)象抽出來(lái),構(gòu)造一個(gè)仿真的環(huán)境,然后在這個(gè)環(huán)境里,把與最終要解決的問(wèn)題間建立一個(gè)方法。面向?qū)ο笫菍?shí)物高度抽象化,是自下先建立抽象模型然后再使用模型。面向過(guò)程是一種自頂向下的編程。
簡(jiǎn)單總結(jié):計(jì)算機(jī)語(yǔ)言的種類
低級(jí)語(yǔ)言機(jī)器語(yǔ)言、匯編語(yǔ)言等
高級(jí)語(yǔ)言BASIC(Truebasic、Qbasic、VirtualBasic)、C、C++、PASCAL、FORTRAN、智能化語(yǔ)言(LISP、Prolog、Fazzy)、動(dòng)態(tài)語(yǔ)言(Python、PHP)等等。專用語(yǔ)言CAD系統(tǒng)中的繪圖語(yǔ)言和DBMS的數(shù)據(jù)庫(kù)查詢語(yǔ)言。腳本語(yǔ)言
腳本語(yǔ)言(Scriptlanguages)是為了縮短傳統(tǒng)的編寫-編譯-鏈接-運(yùn)行過(guò)程而創(chuàng)建的計(jì)算機(jī)編程語(yǔ)言。目的就是希望能讓程序設(shè)計(jì)師快速完成程序的編寫工作。機(jī)器語(yǔ)言是指一臺(tái)計(jì)算機(jī)全部的指令集合。電子計(jì)算機(jī)所使用的是由“0”和“1”組成的二進(jìn)制數(shù),二進(jìn)制是計(jì)算機(jī)的語(yǔ)言的基礎(chǔ)。用計(jì)算機(jī)的語(yǔ)言去命令計(jì)算機(jī)工作,一句話,就是寫出一串串由“0”和“1”組成的指令序列交由計(jì)算機(jī)執(zhí)行,這種計(jì)算機(jī)能夠認(rèn)識(shí)的語(yǔ)言,就是機(jī)器語(yǔ)言。機(jī)器語(yǔ)言,是第一代計(jì)算機(jī)語(yǔ)言。1.2.1機(jī)器語(yǔ)言1.2.1機(jī)器語(yǔ)言機(jī)器語(yǔ)言的特點(diǎn)由二進(jìn)制編碼指令構(gòu)成的語(yǔ)言。是一種依附于機(jī)器硬件的語(yǔ)言。機(jī)器語(yǔ)言程序可以直接執(zhí)行。機(jī)器語(yǔ)言程序片段程序功能:把兩個(gè)內(nèi)存單元中的數(shù)相加,并將結(jié)果存入另外一個(gè)單元。
0001010101101100//把地址為01101100的內(nèi)存單元中的數(shù)裝入0101號(hào)寄存器
0001011001101101//把地址為01101101的內(nèi)存單元中的數(shù)裝入0110號(hào)寄存器
0101000001010110
//把01101100和01101101中的數(shù)相加,結(jié)果存入0000號(hào)寄存器
0011000001101110
//把0000號(hào)寄存器中的數(shù)存入地址為01101110的內(nèi)存單元中穿孔紙帶有孔代表1無(wú)孔代表0人工操作用穿孔機(jī)將編寫好的程序及相應(yīng)的數(shù)據(jù)穿孔在紙帶/卡片上,通過(guò)紙帶/卡片機(jī)輸入計(jì)算機(jī)。啟動(dòng)計(jì)算機(jī)執(zhí)行程序,通過(guò)控制臺(tái)上的開(kāi)關(guān)、按鈕和指示燈來(lái)操作和控制程序的執(zhí)行。程序執(zhí)行完并取走計(jì)算結(jié)果后,下一個(gè)用戶才能使用該計(jì)算機(jī)。高速的CPU絕大部分時(shí)間處于等待慢速的手工操作和外設(shè)運(yùn)行,計(jì)算機(jī)資源得不到有效利用。為了減輕使用機(jī)器語(yǔ)言編程的痛苦,人們進(jìn)行了一種有益的改進(jìn):用一些簡(jiǎn)潔的英文字母、符號(hào)串來(lái)替代一個(gè)特定的指令的二進(jìn)制串,比如,用“ADD”代表加法,“MOV”代表數(shù)據(jù)傳遞等等,這樣一來(lái),人們很容易讀懂并理解程序在干什么,糾錯(cuò)及維護(hù)都變得方便了,這種程序設(shè)計(jì)語(yǔ)言就稱為匯編語(yǔ)言,即第二代計(jì)算機(jī)語(yǔ)言。
1.2.2匯編語(yǔ)言1.2.2匯編語(yǔ)言匯編語(yǔ)言的特點(diǎn)
由助記符指令構(gòu)成的語(yǔ)言。也是一種依附于機(jī)器硬件的語(yǔ)言。匯編語(yǔ)言源程序需要匯編后才能執(zhí)行。匯編語(yǔ)言程序片段程序功能:把兩個(gè)內(nèi)存單元中的數(shù)相加,并將結(jié)果存入另外一個(gè)單元。MOVR5,X//把內(nèi)存單元X中的數(shù)裝入R5寄存器ADDR5,Y//把R5中的數(shù)與Y單元中的數(shù)相加,結(jié)果存入R5
MOVZ,R5//把R5中的數(shù)存入Z單元中從最初與計(jì)算機(jī)交流的痛苦經(jīng)歷中,人們意識(shí)到應(yīng)該設(shè)計(jì)一種這樣的語(yǔ)言,這種語(yǔ)言接近于數(shù)學(xué)語(yǔ)言或人的自然語(yǔ)言,同時(shí)又不依賴于計(jì)算機(jī)硬件,編出的程序能在所有機(jī)器上通用。影響較大、使用較普遍的有FORTRAN、ALGOL、COBOL、BASIC、LISP、SNOBOL、PL/1、Pascal、C、PROLOG、Ada、C++、VC、VB、JAVA等。
1.2.3高級(jí)語(yǔ)言1.2.3高級(jí)語(yǔ)言高級(jí)語(yǔ)言的特點(diǎn)
由自然語(yǔ)言和數(shù)學(xué)公式表示的語(yǔ)言。是一種獨(dú)立于機(jī)器硬件的語(yǔ)言。高級(jí)語(yǔ)言程序需要編譯后才能執(zhí)行。高級(jí)語(yǔ)言程序片段
Z=X+Y
//把內(nèi)存單元X中的數(shù)與Y中的數(shù)相加,結(jié)果存入Z單元。1.2.3高級(jí)語(yǔ)言常用高級(jí)語(yǔ)言
FORTRAN語(yǔ)言FORTRAN是FORmula
TRANslator(公式翻譯器)的縮寫。主要用于復(fù)雜的科學(xué)計(jì)算領(lǐng)域。ALGOL語(yǔ)言ALGOL是ALGOrithmLanguage(算法語(yǔ)言)的縮寫。主要用于數(shù)學(xué)與科學(xué)計(jì)算。1.2.3高級(jí)語(yǔ)言常用高級(jí)語(yǔ)言
COBOL語(yǔ)言
COBOL是COmmonBusiness-OrientedLanguage(面向商業(yè)的通用語(yǔ)言)的縮寫。主要用于企業(yè)管理和事務(wù)處理。BASIC語(yǔ)言BASIC是Beginner’sAll-purposeSymbolicInstructionCode(初學(xué)者通用符號(hào)指令碼)的縮寫。主要用于初學(xué)者和較小規(guī)模的程序開(kāi)發(fā)。1.2.3高級(jí)語(yǔ)言常用程序設(shè)計(jì)語(yǔ)言FORTRAN語(yǔ)言COBOL語(yǔ)言Pascal語(yǔ)言BASIC語(yǔ)言C與C++語(yǔ)言
Java語(yǔ)言標(biāo)記語(yǔ)言HTML超文本標(biāo)記語(yǔ)言XML可擴(kuò)展的標(biāo)記語(yǔ)言腳本語(yǔ)言計(jì)算機(jī)語(yǔ)言處理系統(tǒng)高級(jí)語(yǔ)言用高級(jí)語(yǔ)言編寫的程序稱為源程序(SourceProgram)。源程序必須經(jīng)過(guò)“翻譯”處理,成為計(jì)算機(jī)能夠識(shí)別的機(jī)器指令,計(jì)算機(jī)才能執(zhí)行。解釋方式:指源程序進(jìn)入計(jì)算機(jī)后,解釋程序邊掃描邊解釋,逐句輸入逐句翻譯,計(jì)算機(jī)一句句執(zhí)行,并不產(chǎn)生目標(biāo)程序。編譯方式:編譯程序把源程序整個(gè)地翻譯成用機(jī)器語(yǔ)言表示的與之等價(jià)的目標(biāo)程序,然后計(jì)算機(jī)再執(zhí)行該目標(biāo)程序。
源程序源程序文件目標(biāo)文件可執(zhí)行文件編緝程序編譯程序連接程序?qū)Τ绦蜻M(jìn)行自動(dòng)翻譯:#include<stdio.h>voidf(int*j);{*j=9;};voidmain(){printf(’myProgram\n');
i=1;
printf(“i=”,i);
f(i);
printf(“i=“,i);}高級(jí)語(yǔ)言程序MOVDX,OFFSETFILEMOVAL,0MOVAH,3DHINT21HJCOPERRMOVHANDLE,AXMOVBX,HANDLEMOVDX,OFFSETBUFMOVCX,512MOVAH,3FHINT21HJCREADERRCMPAX,0JECLOSEMOVBX,AXMOVBUF[BX],’$’MOVDX,OFFSETBUFMOVAH,9INT21HJMPREAD匯編語(yǔ)言程序11011010110001000101100011000010010110110100010101011111011001010111001011101111011000000100111001010110011101010101110010101001010101010001011000110110111011100101100011010111001011010110001101010011111010101010100100100101110100011100101011000110010110001100110010101010101000000111100101101111100101100001011111111001011001011101010101010100010101111110010100100101110010機(jī)器語(yǔ)言程序編譯匯編編譯1.2.4結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言早期程序設(shè)計(jì)方法的不足注重功能的實(shí)現(xiàn)/注重內(nèi)存的節(jié)省/注重執(zhí)行效率的提高。不注重程序結(jié)構(gòu)的清晰性。不注重程序的可理解性和可修改性。結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言的特點(diǎn)注重程序結(jié)構(gòu)的清晰性,注重程序的可理解性和可修改性。采用模塊化程序設(shè)計(jì)方法。對(duì)于編寫規(guī)模比較大的程序,不可能不犯錯(cuò)誤,關(guān)鍵的問(wèn)題是在編寫程序時(shí)就應(yīng)該考慮到,如何較快地找到程序中的錯(cuò)誤并較容易地改正錯(cuò)誤。1.2.4結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言常用結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言
PASCAL語(yǔ)言
是在ALGOL語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的,以法國(guó)著名科學(xué)家帕斯卡的名字命名。嚴(yán)格的語(yǔ)法格式與結(jié)構(gòu)化形式。目前使用的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)工具Delphi就是在Pascal的基礎(chǔ)上發(fā)展起來(lái)的。C語(yǔ)言
是在ALGOL60語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的。兼具低級(jí)語(yǔ)言和高級(jí)語(yǔ)言的特點(diǎn)。是最為流行的程序設(shè)計(jì)語(yǔ)言之一。1.2.5面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言結(jié)構(gòu)化程序設(shè)計(jì)方法的不足
面向過(guò)程的設(shè)計(jì)方法與人們習(xí)慣的思維方式仍然存在一定的距離,所以很難自然、準(zhǔn)確地反映真實(shí)世界,因而用此方法編寫出來(lái)的程序,特別是規(guī)模比較大的程序,其質(zhì)量是難以保證的。強(qiáng)調(diào)了要實(shí)現(xiàn)功能的操作方法(模塊),而被操作的數(shù)據(jù)(變量)處于實(shí)現(xiàn)功能的從屬地位,即程序模塊和數(shù)據(jù)結(jié)構(gòu)是松散地耦合在一起,當(dāng)程序復(fù)雜度較高時(shí),容易出錯(cuò),而且錯(cuò)誤難以查找和修改。1.2.5面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的特點(diǎn)
將問(wèn)題分解為對(duì)象。對(duì)象將自己的屬性和方法封裝成一個(gè)整體,供程序設(shè)計(jì)者使用。對(duì)象之間的相互作用則通過(guò)消息傳遞來(lái)實(shí)現(xiàn)。使人們對(duì)復(fù)雜系統(tǒng)的認(rèn)識(shí)過(guò)程與程序設(shè)計(jì)過(guò)程盡可能一致。1.2.5面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言常用面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言Simula67
發(fā)布于1967年,是面向?qū)ο笳Z(yǔ)言的鼻祖。C++發(fā)布于1983年,是在C語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的。C++是得到廣泛應(yīng)用的一種面向?qū)ο笳Z(yǔ)言。目前常用的版本有VisualC++,C#,VisualC++.Net等。Java由SunMicrosystems公司于1995年推出,適合于網(wǎng)絡(luò)程序設(shè)計(jì)。也是目前得到廣泛應(yīng)用的一種面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言。1.2.6可視化程序設(shè)計(jì)語(yǔ)言可視化程序設(shè)計(jì)語(yǔ)言的特點(diǎn)以圖形化的編程方式將面向?qū)ο蠹夹g(shù)的特性體現(xiàn)出來(lái),通過(guò)用鼠標(biāo)拖曳圖形化的控件就可以完成Windows風(fēng)格界面的設(shè)計(jì)工作。使開(kāi)發(fā)軟件這一原本枯燥、難以理解的工作變得相對(duì)輕松快捷。常用可視化程序設(shè)計(jì)語(yǔ)言VisualC++功能強(qiáng)大,比較適合專業(yè)人員使用。VisualBasic易于學(xué)習(xí)和掌握,比較適合非專業(yè)人員和初學(xué)者使用。1.2.7人工智能程序設(shè)計(jì)語(yǔ)言人工智能程序設(shè)計(jì)語(yǔ)言的特點(diǎn)適合于知識(shí)表示和邏輯推理。
常用人工智能程序設(shè)計(jì)語(yǔ)言LISP
LISP是LIStProcessing(表處理)的縮寫??梢越鉀Q人工智能中的符號(hào)處理問(wèn)題。PROLOG
是PROgramminginLOGic(邏輯程序設(shè)計(jì))的縮寫。自動(dòng)實(shí)現(xiàn)模式匹配、自動(dòng)回溯這兩種人工智能中常用的基本操作。語(yǔ)言受歡迎程度http:///tpci.htm
1.3C語(yǔ)言的發(fā)展及其特點(diǎn)C語(yǔ)言是國(guó)際上廣泛流行的計(jì)算機(jī)高級(jí)語(yǔ)言。C語(yǔ)言的發(fā)展:BCPL語(yǔ)言B語(yǔ)言C語(yǔ)言精練、接近硬件,但過(guò)于簡(jiǎn)單,無(wú)數(shù)據(jù)類型具有多種數(shù)據(jù)類型BCPL(BasicCombinedProgrammingLanguage)1.3C語(yǔ)言的發(fā)展及其特點(diǎn)最初的C語(yǔ)言只是為描述和實(shí)現(xiàn)UNIX操作系統(tǒng)提供一種工作語(yǔ)言而設(shè)計(jì)的。1.3C語(yǔ)言的發(fā)展及其特點(diǎn)1983年,美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)成立了一個(gè)委員會(huì),根據(jù)C語(yǔ)言問(wèn)世以來(lái)各種版本對(duì)C語(yǔ)言的發(fā)展和擴(kuò)充,制定了第一個(gè)C語(yǔ)言標(biāo)準(zhǔn)草案(’83ANSIC)。1.3C語(yǔ)言的發(fā)展及其特點(diǎn)1989年,ANSI公布了一個(gè)完整的C語(yǔ)言標(biāo)準(zhǔn)—ANSIX3.159-1989(常稱ANSIC,或C89)。1.3C語(yǔ)言的發(fā)展及其特點(diǎn)1990年,國(guó)際標(biāo)準(zhǔn)化組織ISO(InternationalStandardOrganization)接受C89作為國(guó)際標(biāo)準(zhǔn)ISO/IEC9899:1990,它和ANSI的C89基本上是相同的。1.3C語(yǔ)言的發(fā)展及其特點(diǎn)1995年,ISO對(duì)C90作了一些修訂,1999年,ISO又對(duì)C語(yǔ)言標(biāo)準(zhǔn)進(jìn)行修訂,在基本保留原來(lái)的C語(yǔ)言特征的基礎(chǔ)上,針對(duì)應(yīng)用的需要,增加了一些功能,尤其是C++中的一些功能,命名為ISO/IEC9899:1999。1.3C語(yǔ)言的發(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語(yǔ)言的發(fā)展及其特點(diǎn)本書的敘述以C99標(biāo)準(zhǔn)為依據(jù)(對(duì)C99新增加的功能作特別的說(shuō)明)。目前不同軟件公司提供的各C語(yǔ)言編譯系統(tǒng)多數(shù)并未完全實(shí)現(xiàn)C99建議的功能本書中程序基本上都可以在目前所用的編譯系統(tǒng)(如VC++6.0,TurboC++3.0,GCC)上編譯和運(yùn)行。1.3C語(yǔ)言的發(fā)展及其特點(diǎn)C語(yǔ)言是一種用途廣泛、功能強(qiáng)大、使用靈活的過(guò)程性(procedural)編程語(yǔ)言,既可用于編寫應(yīng)用軟件,又能用于編寫系統(tǒng)軟件。因此C語(yǔ)言問(wèn)世以后得到迅速推廣。1.3C語(yǔ)言的發(fā)展及其特點(diǎn)C語(yǔ)言主要特點(diǎn):語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活。只有37個(gè)關(guān)鍵字、9種控制語(yǔ)句程序書寫形式自由,源程序短1.3C語(yǔ)言的發(fā)展及其特點(diǎn)C語(yǔ)言主要特點(diǎn):運(yùn)算符豐富。有34種運(yùn)算符把括號(hào)、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理表達(dá)式類型多樣化1.3C語(yǔ)言的發(fā)展及其特點(diǎn)C語(yǔ)言主要特點(diǎn):數(shù)據(jù)類型豐富。包括:整型、浮點(diǎn)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型C99又?jǐn)U充了復(fù)數(shù)浮點(diǎn)類型、超長(zhǎng)整型(longlong)、布爾類型(bool)指針類型數(shù)據(jù),能用來(lái)實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(如鏈表、樹(shù)、棧等)的運(yùn)算。1.3C語(yǔ)言的發(fā)展及其特點(diǎn)C語(yǔ)言主要特點(diǎn):具有結(jié)構(gòu)化的控制語(yǔ)句如if…else語(yǔ)句、while語(yǔ)句、do…while語(yǔ)句、switch語(yǔ)句、for語(yǔ)句用函數(shù)作為程序的模塊單位,便于實(shí)現(xiàn)程序的模塊化C語(yǔ)言是完全模塊化和結(jié)構(gòu)化的語(yǔ)言1.3C語(yǔ)言的發(fā)展及其特點(diǎn)C語(yǔ)言主要特點(diǎn):語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。對(duì)數(shù)組下標(biāo)越界不做檢查對(duì)變量的類型使用比較靈活,例如,整型量與字符型數(shù)據(jù)可以通用C語(yǔ)言允許程序編寫者有較大的自由度,因此放寬了語(yǔ)法檢查1.3C語(yǔ)言的發(fā)展及其特點(diǎn)C語(yǔ)言主要特點(diǎn):允許直接訪問(wèn)物理地址,能進(jìn)行位操作,可以直接對(duì)硬件進(jìn)行操作C語(yǔ)言具有高級(jí)語(yǔ)言的功能和低級(jí)語(yǔ)言的許多功能,可用來(lái)編寫系統(tǒng)軟件這種雙重性,使它既是成功的系統(tǒng)描述語(yǔ)言,又是通用的程序設(shè)計(jì)語(yǔ)言1.3C語(yǔ)言的發(fā)展及其特點(diǎn)C語(yǔ)言主要特點(diǎn):用C語(yǔ)言編寫的程序可移植性好。C的編譯系統(tǒng)簡(jiǎn)潔,很容易移植到新系統(tǒng)在新系統(tǒng)上運(yùn)行時(shí),可直接編譯“標(biāo)準(zhǔn)鏈接庫(kù)”中的大部分功能,不需要修改源代碼幾乎所有計(jì)算機(jī)系統(tǒng)都可以使用C語(yǔ)言1.3C語(yǔ)言的發(fā)展及其特點(diǎn)C語(yǔ)言主要特點(diǎn):生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。目前C的主要用途之一是編寫“嵌入式系統(tǒng)程序”。
嵌入式系統(tǒng)(Embeddedsystem),是一種“完全嵌入受控器件內(nèi)部,為特定應(yīng)用而設(shè)計(jì)的專用計(jì)算機(jī)系統(tǒng)”。通常,嵌入式系統(tǒng)是一個(gè)控制程序存儲(chǔ)在ROM中的嵌入式處理器控制板。事實(shí)上,所有帶有數(shù)字接口的設(shè)備,如手表、微波爐、錄像機(jī)、汽車等,都使用嵌入式系統(tǒng)。C語(yǔ)言的特點(diǎn)問(wèn)題:既然有了面向?qū)ο蟮腃++語(yǔ)言,為什么還要學(xué)習(xí)C語(yǔ)言?解釋1:C++是由于開(kāi)發(fā)大型應(yīng)用軟件的需要而產(chǎn)生的,并不是所有的人都要去編寫大型軟件。解釋2:C語(yǔ)言更適合于解決某些小型程序的編程,C語(yǔ)言在編寫底層的設(shè)備驅(qū)動(dòng)程序和內(nèi)嵌應(yīng)用程序時(shí)往往是更好的選擇。解釋3:面向?qū)ο蟮幕A(chǔ)是面向過(guò)程。C++是面向?qū)ο蟮恼Z(yǔ)言,C是面向過(guò)程的,學(xué)起來(lái)比C語(yǔ)言困難得多,所以不太適合程序設(shè)計(jì)的初學(xué)者。1.4最簡(jiǎn)單的C語(yǔ)言程序1.4.1最簡(jiǎn)單的C語(yǔ)言程序舉例1.4.2C語(yǔ)言程序的結(jié)構(gòu)1.4.1最簡(jiǎn)單的C語(yǔ)言程序舉例例1.1要求在屏幕上輸出以下一行信息。
ThisisaCprogram.解題思路:
在主函數(shù)中用printf函數(shù)原樣輸出以上文字。1.4.1最簡(jiǎn)單的C語(yǔ)言程序舉例#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}函數(shù)的名字,表示主函數(shù)C程序必須有一個(gè)main函數(shù)1.4.1最簡(jiǎn)單的C語(yǔ)言程序舉例#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
主函數(shù)類型1.4.1最簡(jiǎn)單的C語(yǔ)言程序舉例#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
函數(shù)體1.4.1最簡(jiǎn)單的C語(yǔ)言程序舉例#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
輸出函數(shù)輸出語(yǔ)句1.4.1最簡(jiǎn)單的C語(yǔ)言程序舉例#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
輸出語(yǔ)句1.4.1最簡(jiǎn)單的C語(yǔ)言程序舉例#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
換行符1.4.1最簡(jiǎn)單的C語(yǔ)言程序舉例#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
當(dāng)main函數(shù)執(zhí)行結(jié)束前將整數(shù)0作為函數(shù)值1.4.1最簡(jiǎn)單的C語(yǔ)言程序舉例#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
表示語(yǔ)句結(jié)束用到函數(shù)庫(kù)中的輸入輸出函數(shù)時(shí)1.4.1最簡(jiǎn)單的C語(yǔ)言程序舉例C語(yǔ)言允許用兩種注釋方式://:?jiǎn)涡凶⑨尶蓡为?dú)占一行可出現(xiàn)在一行中其他內(nèi)容的右側(cè)/*……*/:塊式注釋可包含多行注釋的目的:方便自己和他人理解程序各部分的作用。例1.2求兩個(gè)整數(shù)之和。解題思路:設(shè)置3個(gè)變量a和b用來(lái)存放兩個(gè)整數(shù)sum用來(lái)存放和數(shù)用賦值運(yùn)算符“=”把結(jié)果傳送給sum#include<stdio.h>intmain(){
int
a,b,sum;a=123;b=456;sum=a+b;
printf(”sumis%d\n”,sum);return0;}定義整型變量a,b,sum對(duì)變量a,b賦值將a與b的和賦給sum#include<stdio.h>intmain(){
int
a,b,sum;a=123;b=456;sum=a+b;
printf(”sumis%d\n”,sum);return0;}用sum的值替代希望輸出的字符例1.3求兩個(gè)整數(shù)中的較大者。解題思路:用一個(gè)函數(shù)實(shí)現(xiàn)求兩個(gè)整數(shù)中的較大者在主函數(shù)中調(diào)用此函數(shù)并輸出結(jié)果#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}主函數(shù)max函數(shù)#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}將x和y中較大者值返回給主函數(shù)#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}因max函數(shù)的定義在main函數(shù)之后,需聲明#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}輸入函數(shù)#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}輸入語(yǔ)句#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}輸入的數(shù)據(jù)放到a,b中輸入格式a的地址#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}調(diào)用max函數(shù)#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}8588#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}8588#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}實(shí)際參數(shù)形式參數(shù)思考:求2個(gè)數(shù)中較大者。#include<stdio.h>voidmain(){int
a,b,c;scanf("%d,%d",&a,&b);if(a>b)c=a;elsec=b;printf("max=
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45198-2024老舊汽車估值評(píng)價(jià)規(guī)范
- STAT3-IN-39-生命科學(xué)試劑-MCE-5782
- ANO1-IN-4-生命科學(xué)試劑-MCE-2608
- 3-Methoxybenzeneboronic-acid-d3-3-Methoxyphenylboronic-acid-d-sub-3-sub-生命科學(xué)試劑-MCE-9929
- 二零二五年度電子產(chǎn)品銷售退換貨及售后服務(wù)協(xié)議
- 2025年度游戲工作室游戲市場(chǎng)調(diào)研分析師用工合同
- 二零二五年度生態(tài)旅游區(qū)集體土地入股聯(lián)營(yíng)協(xié)議
- 2025年度電子商務(wù)消費(fèi)者權(quán)益保護(hù)合同協(xié)議
- 二零二五年度美容店轉(zhuǎn)讓合同含美容院品牌形象使用權(quán)及廣告推廣
- 二零二五年度綠色環(huán)保餐飲商鋪?zhàn)赓U協(xié)議
- 具有履行合同所必須的設(shè)備和專業(yè)技術(shù)能力的承諾函-設(shè)備和專業(yè)技術(shù)能力承諾
- 混床計(jì)算書(新)
- 1325木工雕刻機(jī)操作系統(tǒng)說(shuō)明書
- 初中衡水體英語(yǔ)(28篇)
- 斯瓦希里語(yǔ)輕松入門(完整版)實(shí)用資料
- 復(fù)古國(guó)潮風(fēng)中國(guó)風(fēng)春暖花開(kāi)PPT
- GB/T 2317.2-2000電力金具電暈和無(wú)線電干擾試驗(yàn)
- 機(jī)動(dòng)車輛保險(xiǎn)理賠實(shí)務(wù)2023版
- 病原微生物實(shí)驗(yàn)室標(biāo)準(zhǔn)操作規(guī)程sop文件
- 最完善的高速公路機(jī)電監(jiān)理細(xì)則
- 建筑工程技術(shù)資料管理.ppt
評(píng)論
0/150
提交評(píng)論