Linux C編程一站式學(xué)習(xí)

2021-05-07 15:08 更新

Linux C編程一站式學(xué)習(xí)

宋勁杉  著  北京亞嵌教育研究中心  編

  • 出 版 社:電子工業(yè)出版社
  • 叢 書 名:嵌入式技術(shù)叢書
  • 出版時(shí)間:2009-12-01
  • 正文語種:中文
  • 版  次:1
  • 文件大?。?5.77M (文件大,下載時(shí)間較長)
  • I S B N:9787121097713
  • 字  數(shù):402417
  • 文件格式:加密epub
  • 所屬分類:數(shù)字內(nèi)容 > 計(jì)算機(jī) > 程序設(shè)計(jì) ; 
 
    點(diǎn)此購買


    內(nèi)容簡介

      本書有兩條線索,一條線索是以 Linux 平臺(tái)為載體全面深入地介紹 C 語言的語法和程序的工作原理,另一條線索是介紹程序設(shè)計(jì)的基本思想和開發(fā)調(diào)試方法。本書分為兩部分:第一部分講解編程語言和程序設(shè)計(jì)的基本思想方法,讓讀者從概念上認(rèn)識(shí) C 語言;第二部分結(jié)合操作系統(tǒng)和體系結(jié)構(gòu)的知識(shí)講解程序的工作原理,讓讀者從本質(zhì)上認(rèn)識(shí) C 語言。


    作者簡介

      宋勁杉,亞嵌教育資深講師,清華大學(xué)自動(dòng)化系碩士,6 年嵌入式系統(tǒng)開發(fā)經(jīng)驗(yàn),3年嵌入式行業(yè)教學(xué)經(jīng)驗(yàn),精通 Linux 內(nèi)核、POSIX、TCP/IP,擅長 ARM 平臺(tái)的 Linux 系統(tǒng)移植和應(yīng)用開發(fā),目前關(guān)注的方向有分布式系統(tǒng)、動(dòng)態(tài)語言。愛好:開源軟件、電子音樂、HomeParty。


    目錄

    版權(quán)信息
    前言
    上篇 C語言入門
    第1章程序的基本概念
    1.1 程序和編程語言
    1.2 自然語言和形式語言
    1.3 程序的調(diào)試
    1.4 第一個(gè)程序
    第2章常量、變量和表達(dá)式
    2.1 繼續(xù)Hello World
    2.2 常量
    2.3 變量
    2.4 賦值
    2.5 表達(dá)式
    2.6 字符類型與字符編碼
    第3章簡單函數(shù)
    3.1 數(shù)學(xué)函數(shù)
    3.2 自定義函數(shù)
    3.3 形參和實(shí)參
    3.4 全局變量、局部變量和作用域
    第4章分支語句
    4.1 if語句
    4.2 if/else語句
    4.3 布爾代數(shù)
    4.4 switch語句
    第5章深入理解函數(shù)
    5.1 return語句
    5.2 增量式開發(fā)
    5.3 遞歸
    第6章循環(huán)語句
    6.1 while語句
    6.2 do/while語句
    6.3 for語句
    6.4 break和continue語句
    6.5 嵌套循環(huán)
    6.6 goto語句和標(biāo)號(hào)
    第7章結(jié)構(gòu)體
    7.1 復(fù)合類型與結(jié)構(gòu)體
    7.2 數(shù)據(jù)抽象
    7.3 數(shù)據(jù)類型標(biāo)志
    7.4 嵌套結(jié)構(gòu)體
    第8章數(shù)組
    8.1 數(shù)組的基本概念
    8.2 數(shù)組應(yīng)用實(shí)例:統(tǒng)計(jì)隨機(jī)數(shù)
    8.3 數(shù)組應(yīng)用實(shí)例:直方圖
    8.4 字符串
    8.5 多維數(shù)組
    第9章編碼風(fēng)格
    9.1 縮進(jìn)和空白
    9.2 注釋
    9.3 標(biāo)識(shí)符命名
    9.4 函數(shù)
    9.5 indent工具
    第10章gdb
    10.1 單步執(zhí)行和跟蹤函數(shù)調(diào)用
    10.2 斷點(diǎn)
    10.3 觀察點(diǎn)
    10.4 段錯(cuò)誤
    第11章排序與查找
    11.1 算法的概念
    11.2 插入排序
    11.3 算法的時(shí)間復(fù)雜度分析
    11.4 歸并排序
    11.5 線性查找
    11.6 折半查找
    第12章棧與隊(duì)列
    12.1 數(shù)據(jù)結(jié)構(gòu)的概念
    12.2 堆棧
    12.3 深度優(yōu)先搜索
    12.4 隊(duì)列與廣度優(yōu)先搜索
    12.5 環(huán)形隊(duì)列
    本階段總結(jié)
    下篇 C語言本質(zhì)
    第13章計(jì)算機(jī)中數(shù)的表示
    13.1 為什么計(jì)算機(jī)用二進(jìn)制計(jì)數(shù)
    13.2 不同進(jìn)制之間的換算
    13.3 整數(shù)的加減運(yùn)算
    13.3.1 Sign and Magnitude表示法
    13.3.2 1's Complement表示法
    13.3.3 2's Complement表示法
    13.3.4 有符號(hào)數(shù)和無符號(hào)數(shù)
    13.4 浮點(diǎn)數(shù)
    第14章數(shù)據(jù)類型詳解
    14.1 整型
    14.2 浮點(diǎn)型
    14.3 類型轉(zhuǎn)換
    14.3.1 Integer Promotion
    14.3.2 Usual Arithmetic Conversion
    14.3.3 由賦值產(chǎn)生的類型轉(zhuǎn)換
    14.3.4 強(qiáng)制類型轉(zhuǎn)換
    14.3.5 編譯器如何處理類型轉(zhuǎn)換
    第15章運(yùn)算符詳解
    15.1 位運(yùn)算
    15.1.1 按位與、或、異或、取反運(yùn)算
    15.1.2 移位運(yùn)算
    15.1.3 掩碼
    15.1.4 異或運(yùn)算的一些特性
    15.2 其他運(yùn)算符
    15.2.1 復(fù)合賦值運(yùn)算符
    15.2.2 條件運(yùn)算符
    15.2.3 逗號(hào)運(yùn)算符
    15.2.4 sizeof運(yùn)算符與typedef類型聲明
    15.3 Side Effect與Sequence Point
    15.4 運(yùn)算符總結(jié)
    第16章計(jì)算機(jī)體系結(jié)構(gòu)基礎(chǔ)
    16.1 內(nèi)存與地址
    16.2 CPU
    16.3 設(shè)備
    16.4 MMU
    16.5 Memory Hierarchy
    第17章x86匯編程序基礎(chǔ)
    17.1 最簡單的匯編程序
    17.2 x86的寄存器
    17.3 第二個(gè)匯編程序
    17.4 尋址方式
    17.5 ELF文件
    17.5.1 目標(biāo)文件
    17.5.2 可執(zhí)行文件
    第18章匯編與C之間的關(guān)系
    18.1 函數(shù)調(diào)用
    18.2 main函數(shù)、啟動(dòng)例程和退出狀態(tài)
    18.3 變量的存儲(chǔ)布局
    18.4 結(jié)構(gòu)體和聯(lián)合體
    18.5 C內(nèi)聯(lián)匯編
    18.6 volatile限定符
    第19章鏈接詳解
    19.1 多目標(biāo)文件的鏈接
    19.2 定義和聲明
    19.2.1 extern和static關(guān)鍵字
    19.2.2 頭文件
    19.2.3 定義和聲明的詳細(xì)規(guī)則
    19.3 靜態(tài)庫
    19.4 共享庫
    19.4.1 編譯、鏈接、運(yùn)行
    19.4.2 函數(shù)的動(dòng)態(tài)鏈接過程
    19.4.3 共享庫的命名慣例
    19.5 虛擬內(nèi)存管理
    第20章預(yù)處理
    20.1 預(yù)處理的步驟
    20.2 宏定義
    20.2.1 函數(shù)式宏定義
    20.2.2 內(nèi)聯(lián)函數(shù)
    20.2.3 #、##運(yùn)算符和可變參數(shù)
    20.2.4 #undef預(yù)處理指示
    20.2.5 宏展開的步驟
    20.3 條件預(yù)處理指示
    20.4 其他預(yù)處理特性
    第21章Makefile基礎(chǔ)
    21.1 基本規(guī)則
    21.2 隱含規(guī)則和模式規(guī)則
    21.3 變量
    21.4 自動(dòng)處理頭文件的依賴關(guān)系
    21.5 常用的make命令行選項(xiàng)
    第22章指針
    22.1 指針的基本概念
    22.2 指針類型的參數(shù)和返回值
    22.3 指針與數(shù)組
    22.4 指針與const限定符
    22.5 指針與結(jié)構(gòu)體
    22.6 指向指針的指針與指針數(shù)組
    22.7 指向數(shù)組的指針與多維數(shù)組
    22.8 函數(shù)類型和函數(shù)指針類型
    22.9 不完全類型和復(fù)雜聲明
    第23章函數(shù)接口
    23.1 本章的預(yù)備知識(shí)
    23.1.1 strcpy與strncpy
    23.1.2 malloc與free
    23.2 傳入?yún)?shù)與傳出參數(shù)
    23.3 兩層指針的參數(shù)
    23.4 返回值是指針的情況
    23.5 回調(diào)函數(shù)
    23.6 可變參數(shù)
    第24章C標(biāo)準(zhǔn)庫
    24.1 字符串操作函數(shù)
    24.1.1 給字符串賦初值
    24.1.2 取字符串的長度
    24.1.3 拷貝字符串
    24.1.4 連接字符串
    24.1.5 比較字符串
    24.1.6 搜索字符串
    24.1.7 分割字符串
    24.2 標(biāo)準(zhǔn)I/O庫函數(shù)
    24.2.1 文件的基本概念
    24.2.2 fopen/fclose
    24.2.3 stdin/stdout/stderr
    24.2.4 errno與perror/strerror函數(shù)
    24.2.5 以字節(jié)為單位的I/O函數(shù)
    24.2.6 操作讀寫位置的函數(shù)
    24.2.7 以字符串為單位的I/O函數(shù)
    24.2.8 以記錄為單位的I/O函數(shù)
    24.2.9 格式化I/O函數(shù)
    24.2.10 C標(biāo)準(zhǔn)庫的I/O緩沖區(qū)
    24.2.11 本節(jié)綜合練習(xí)
    24.3 數(shù)值字符串轉(zhuǎn)換函數(shù)
    24.4 分配內(nèi)存的函數(shù)
    第25章鏈表、二叉樹和哈希表
    25.1 鏈表
    25.1.1 單鏈表
    25.1.2 雙向鏈表
    25.1.3 靜態(tài)鏈表
    25.1.4 本節(jié)綜合練習(xí)
    25.2 二叉樹
    25.2.1 二叉樹的基本概念
    25.2.2 排序二叉樹
    25.3 哈希表
    本階段總結(jié)
    附錄A字符編碼
    參考書目


    前言

      本書最初是為北京亞嵌教育研究中心的嵌入式Linux系統(tǒng)工程師就業(yè)班課程量身定做的教材之一。該課程是為期四個(gè)月的全日制職業(yè)培訓(xùn),要求學(xué)員畢業(yè)時(shí)具備非常 Solid 的 C 語言編程能力,能熟練地使用Linux系統(tǒng),同時(shí)對(duì)計(jì)算機(jī)體系結(jié)構(gòu)與指令集、操作系統(tǒng)原理和設(shè)備驅(qū)動(dòng)程序都有比較深入的了解。然而學(xué)員入學(xué)時(shí)的水平是非常初級(jí)而且參差不齊的:學(xué)歷有???、本科也有研究生;專業(yè)有和計(jì)算機(jī)相關(guān)的,也有很不相關(guān)的(例如會(huì)計(jì)專業(yè));以前從事的職業(yè)有和技術(shù)相關(guān)的也有完全不相關(guān)的(例如HR);年齡從二十歲出頭到三十五六歲的都有。這么多背景、基礎(chǔ)、思維習(xí)慣和理解能力完全不同的人來聽同一堂課,大家都迫切希望學(xué)會(huì)嵌入式開發(fā)技術(shù),投身IT行業(yè),這就是職業(yè)教育的特點(diǎn),也是我編寫本書時(shí)需要考慮的主要問題。
      學(xué)習(xí)編程絕不是一件簡單的事,尤其是對(duì)于零基礎(chǔ)的初學(xué)者來說。大學(xué)的計(jì)算機(jī)專業(yè)有四年時(shí)間從零基礎(chǔ)開始培養(yǎng)一個(gè)人,微積分、線性代數(shù)、概率論、離散數(shù)學(xué)、組合數(shù)學(xué)、自動(dòng)機(jī)、編譯原理、操作系統(tǒng)、計(jì)算機(jī)組成原理等一堆基礎(chǔ)課,再加上C/C++、Java、數(shù)據(jù)庫、網(wǎng)絡(luò)工程、軟件工程、計(jì)算機(jī)圖形學(xué)等一堆專業(yè)課,最后培養(yǎng)出一個(gè)能找到工作的學(xué)生。很遺憾這最后一條很多學(xué)校沒有做好,據(jù)我們考查,來亞嵌培訓(xùn)的很多學(xué)生基礎(chǔ)幾乎為零,我不知道為什么。與之形成鮮明對(duì)比的是,只給我們四個(gè)月的時(shí)間,同樣要求從零基礎(chǔ)開始,最后培養(yǎng)出一個(gè)能找到工作的學(xué)生,而且還要保證他找到好工作,這就是職業(yè)教育的特點(diǎn)。
      為什么我說“只給我們四個(gè)月的時(shí)間”?我們倒是想教四年呢,但學(xué)時(shí)的長短我們做不了主,是由市場(chǎng)規(guī)律決定的。四年的任務(wù)要求四個(gè)月做好,要怎么完成這樣一個(gè)幾乎不可能的任務(wù)呢?有些職業(yè)教育給出的答案是“實(shí)用主義”,打出了“有用就學(xué),沒有用就不學(xué)”的口號(hào),大肆貶低說大學(xué)里教的基礎(chǔ)課都是過時(shí)的、無用的,只有他們教的技術(shù)才是實(shí)用的。這種炒作很不好,我認(rèn)為大學(xué)里教的每一門課都是非常有用的,基礎(chǔ)知識(shí)在任何時(shí)候都不會(huì)過時(shí),倒是那些時(shí)髦的“實(shí)用技術(shù)”有可能很快就會(huì)過時(shí)了。
      四年的任務(wù)怎么才能用四個(gè)月做好?我們給出的答案是“優(yōu)化”?,F(xiàn)在大學(xué)里安排的課程體系最大的缺點(diǎn)就是根本不考慮優(yōu)化。每個(gè)過來人都會(huì)有這樣的感覺:大一大二學(xué)了好多數(shù)學(xué)課,卻不知道都是干什么用的,不明白為什么要學(xué)。連它有什么用都不知道怎么能有興趣學(xué)好呢?到大三大四學(xué)專業(yè)課時(shí),用到以前的知識(shí)了,才發(fā)現(xiàn)以前學(xué)的數(shù)學(xué)是多么有用,然而早就忘得一干二凈了,考完試都還給老師了?;仡^重新學(xué),才發(fā)現(xiàn)很多東西以前根本沒學(xué)明白,現(xiàn)在真的學(xué)明白了,那么前兩年的時(shí)間豈不是都浪費(fèi)了?大學(xué)里的課程體系還有一個(gè)缺點(diǎn)就是不靈活,每門課必須占用一個(gè)學(xué)期,必須由一個(gè)老師教,不同課程的老師之間沒有任何溝通和銜接,其實(shí)這些課程之間是相互依賴的,把它們強(qiáng)行拆開是不符合人的認(rèn)知規(guī)律的。比如我剛上大學(xué)的時(shí)候,大一上半學(xué)期就被逼著學(xué)習(xí) C 語言,其實(shí) C 語言是一門很難的編程語言,不懂編譯原理、操作系統(tǒng)和計(jì)算機(jī)體系結(jié)構(gòu)根本不可能學(xué)明白,那半個(gè)學(xué)期自然就浪費(fèi)掉了。當(dāng)時(shí)幾乎所有學(xué)校的計(jì)算機(jī)相關(guān)專業(yè)都是這樣,大一剛來就學(xué) C 語言,有的學(xué)校更瘋狂,上來就學(xué)C++,導(dǎo)致大多數(shù)學(xué)生都以為自己會(huì)C語言,但其實(shí)都是半吊子水平,到真正寫代碼的時(shí)候經(jīng)常為一個(gè)Bug搞得焦頭爛額,卻沒有機(jī)會(huì)再系統(tǒng)地學(xué)一遍 C 語言。因?yàn)樵趯W(xué)??磥?,C語言早在大一就給你“上完了”,就像一頓飯已經(jīng)吃完了,不管你吃飽沒吃飽,不會(huì)再讓你重吃一遍了。顯而易見,如果要認(rèn)真地對(duì)這些課程進(jìn)行優(yōu)化,的確是有很多水分可以擠的。
      本書有什么特點(diǎn)
      本書不是孤立地講C語言,而是和編譯原理、操作系統(tǒng)、計(jì)算機(jī)體系結(jié)構(gòu)結(jié)合起來講?;蛘哒f,本書的內(nèi)容只是以C語言為載體,真正講的是計(jì)算機(jī)和程序的原理。
      強(qiáng)調(diào)基本概念和基本原理,在編排順序上重視概念之間的依賴關(guān)系,每次引入一個(gè)新的概念,只依賴于前面章節(jié)已經(jīng)講過的概念,而絕不會(huì)依賴于后面章節(jié)要講的概念。有些地方為了敘述得完整,也會(huì)引用后面要講的內(nèi)容,比如說“有關(guān)××我們到第×章再仔細(xì)講解”,凡是這種引用都不是必要的依賴,可以當(dāng)它不存在,只管繼續(xù)往下學(xué)習(xí)就行了。
      盡量做到每個(gè)知識(shí)點(diǎn)直到要用的時(shí)候才引入。過早引入一個(gè)知識(shí)點(diǎn),講完了又不用它,讀者很快就會(huì)遺忘,這是不符合認(rèn)知規(guī)律的。
      本書面向什么樣的讀者
      這是一本從零基礎(chǔ)開始學(xué)習(xí)編程的書,不要求讀者有任何編程經(jīng)驗(yàn),但讀者至少需要具備以下素質(zhì):
      熟悉Linux系統(tǒng)的基本操作。如果不具備這一點(diǎn),請(qǐng)先參考其他教材學(xué)習(xí)相關(guān)知識(shí),熟練之后再學(xué)習(xí)本書,《鳥哥的Linux私房菜》據(jù)說是Linux系統(tǒng)管理和應(yīng)用方面比較好的一本書。但學(xué)習(xí)本書并不需要會(huì)很多系統(tǒng)管理技術(shù),只要會(huì)用基本命令、會(huì)自己安裝系統(tǒng)和軟件包就足夠了。
      具有高中畢業(yè)的數(shù)學(xué)水平。本書會(huì)用到高中的數(shù)學(xué)知識(shí)。事實(shí)上,如果不具有高中畢業(yè)的數(shù)學(xué)水平,也不必考慮做程序員了。但并不是說只要具有高中畢業(yè)的數(shù)學(xué)水平就足夠做程序員了,只能說看這本書應(yīng)該沒有問題,數(shù)學(xué)是程序員最重要的修養(yǎng),計(jì)算機(jī)科學(xué)其實(shí)就是數(shù)學(xué)的一個(gè)分支,如果你的數(shù)學(xué)功底很差,日后還需要惡補(bǔ)一下。
      具有高中畢業(yè)的英文水平。理由同上。
      對(duì)計(jì)算機(jī)的原理和本質(zhì)深感興趣,不是為就業(yè)而學(xué)習(xí),不是為拿高薪而學(xué)習(xí),而是真的感興趣,想把一切來龍去脈搞得清清楚楚而學(xué)習(xí)。
      勤于思考。本書盡最大努力理清概念之間的依賴關(guān)系,力求一站式學(xué)習(xí),讀者不需要為了找一個(gè)概念的定義去翻閱其他書籍,也不需要為了搞清楚一個(gè)概念在本書中亂翻一通,只需要從前到后按順序?qū)W習(xí)即可。但一站式學(xué)習(xí)并不等于傻瓜式學(xué)習(xí),有些章節(jié)有一定的難度,需要讀者積極思考才能領(lǐng)會(huì)。本書可以替你節(jié)省時(shí)間,但不能替你思考,不要指望像看小說一樣走馬觀花看一遍就能學(xué)會(huì)。
      為什么要學(xué)這本書而不是K&R
      《The C Programming Language》(后文簡稱[K&R])是公認(rèn)的世界上最經(jīng)典的C語言教程之一,這點(diǎn)毫無疑問。在C標(biāo)準(zhǔn)出臺(tái)之前,K&R第一版就是事實(shí)上的C標(biāo)準(zhǔn)。C89標(biāo)準(zhǔn)出臺(tái)之后,K&R跟著推出了第二版,可惜此后就沒有更新過了,所以不能反映C89之后C語言的發(fā)展以及最新的C99標(biāo)準(zhǔn)。本書在這方面做了很多補(bǔ)充。本書與其說是講C語言,不如說是以C語言為載體講計(jì)算機(jī)和操作系統(tǒng)的原理,而K&R只是為了講C語言而講C語言,側(cè)重點(diǎn)不同,內(nèi)容編排也很不相同。K&R寫得非常好,代碼和語言都非常簡潔,但很可惜,只有會(huì)C語言的人才懂得欣賞它,K&R是非常不適合入門學(xué)習(xí)的,尤其不適合零基礎(chǔ)的學(xué)生學(xué)習(xí)。
      本書“是什么”和“不是什么”
      本書包括兩大部分:
      C語言入門。介紹基本的C語法,幫助沒有任何編程經(jīng)驗(yàn)的讀者理解什么是程序以及怎么寫程序,培養(yǎng)程序員的思維習(xí)慣,找到編程的感覺。前半部分改編自《How To Think Like A Computer Scientist:Learning with C++》(后文簡稱[ThinkCpp])。
      C語言本質(zhì)。結(jié)合計(jì)算機(jī)和操作系統(tǒng)的原理講解C程序是怎么編譯、鏈接、運(yùn)行的,同時(shí)全面介紹C的語法。位運(yùn)算的章節(jié)改編自林小竹老師的講義;鏈表和二叉樹的章節(jié)改編自朱仲濤老師的講義;匯編語言的章節(jié)改編自《Programming from the Ground Up:An Introduction to Programming using Linux Assembly Language》(后文簡稱[GroundUp]),在該書的最后一章中提到,學(xué)習(xí)編程有兩種Approach,一種是“Bottom Up”,一種是“Top Down”,它們各有優(yōu)缺點(diǎn),而我們需要將兩者結(jié)合起來。所以我編寫本書的思路是:第一部分Top Down;第二部分Bottom Up;第三部分可以算填補(bǔ)了中間的空隙,三部分全都圍繞C語言展開。
      這本書定位在入門級(jí),雖然內(nèi)容很多,但不是一本百科全書,除了C語言的基礎(chǔ)知識(shí)要講透之外其他內(nèi)容都不深入,書中列出了很多參考資料,是讀者進(jìn)一步學(xué)習(xí)的起點(diǎn)。[K&R]的第1章是一個(gè)Whirlwind Tour,把全書的內(nèi)容簡單概括了一遍,然后再逐個(gè)深入講解。本書也可以看作是計(jì)算機(jī)專業(yè)課程體系的一個(gè)Whirlwind Tour,學(xué)習(xí)完本書之后讀者有了一個(gè)全局觀,再去學(xué)習(xí)那些參考資料就應(yīng)該很容易上手了。


    精彩書摘

      上篇 C語言入門
      第1章 程序的基本概念
      1.1 程序和編程語言
      程序(Program)告訴計(jì)算機(jī)應(yīng)該如何完成一個(gè)計(jì)算任務(wù),這里的計(jì)算可以是數(shù)學(xué)運(yùn)算(如解方程),也可以是符號(hào)運(yùn)算(如查找和替換文檔中的某個(gè)單詞)。從根本上說,計(jì)算機(jī)是由數(shù)字電路組成的運(yùn)算機(jī)器,只能對(duì)數(shù)字進(jìn)行運(yùn)算,程序之所以能進(jìn)行符號(hào)運(yùn)算,是因?yàn)榉?hào)在計(jì)算機(jī)內(nèi)部也是用數(shù)字表示的。此外,程序還可以處理聲音和圖像。聲音和圖像在計(jì)算機(jī)內(nèi)部必然也是用數(shù)字表示的,這些數(shù)字經(jīng)過專門的硬件設(shè)備轉(zhuǎn)換成人可以聽到的聲音和看到的圖像。
      程序由一系列指令(Instruction)組成,指令是指示計(jì)算機(jī)進(jìn)行某種運(yùn)算的命令,
      通常包括以下幾類:
      輸入(Input)
      從鍵盤、文件或者其他設(shè)備獲取數(shù)據(jù)。
      輸出(Output)
      把數(shù)據(jù)顯示到屏幕,或者存入一個(gè)文件,或者發(fā)送到其他設(shè)備。
      基本運(yùn)算
      執(zhí)行最基本的數(shù)學(xué)運(yùn)算(加減乘除)和數(shù)據(jù)存取。
      測(cè)試和分支
      測(cè)試某個(gè)條件,然后根據(jù)不同的測(cè)試結(jié)果執(zhí)行不同的后續(xù)指令。
      循環(huán)
      重復(fù)執(zhí)行一系列操作。
      對(duì)于程序來說,有上面這幾類指令就足夠了。你曾用過的任何一個(gè)程序,不管它有多么復(fù)雜,都是由這幾類指令組成的。程序是那么復(fù)雜,而編寫程序可以用的指令卻只有這么簡單的幾種,這中間巨大的落差就要由程序員去填補(bǔ)了,所以編寫程序理應(yīng)是一件相當(dāng)復(fù)雜的工作。編寫程序可以說就是這樣一個(gè)過程:把復(fù)雜的任務(wù)分解成子任務(wù),把子任務(wù)再分解成更簡單的任務(wù),層層分解,直到最后簡單得可以用以上指令來完成。


    點(diǎn)此購買


    以上內(nèi)容是否對(duì)您有幫助:
    在線筆記
    App下載
    App下載

    掃描二維碼

    下載編程獅App

    公眾號(hào)
    微信公眾號(hào)

    編程獅公眾號(hào)