教學第01章-C語言概述課件_第1頁
教學第01章-C語言概述課件_第2頁
教學第01章-C語言概述課件_第3頁
教學第01章-C語言概述課件_第4頁
教學第01章-C語言概述課件_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第一章第一章本章教學要點

C語言的特點

C程序的組成

C函數的結構運行C程序的常用操作和步驟本章教學要點C語言的特點主要內容1.1C語言的發(fā)展歷程1.2數據在計算機內的存儲形式和表示方法1.3利用計算機處理問題的基本過程1.4最簡單的C程序的構成

1.5C語言的運行環(huán)境和上機步驟主要內容1.1C語言的發(fā)展歷程1.1C語言的發(fā)展歷程

C語言是國際上廣泛流行的高級語言。C語言的發(fā)展過程可以粗略的分為誕生(1970年—1973年)、發(fā)展(1973年—1988年)和成熟(1988年以后)三個階段。

(1)C語言是在B語言的基礎上發(fā)展起來的。B(BCPL)語言是1970年由美國貝爾實驗室設計的,并用于編寫了第一個UNIX操作系統,在PDP7上實現。優(yōu)點:精練,接近硬件缺點:過于簡單,數據無類型。1.1C語言的發(fā)展歷程C語言是國1.1C語言的發(fā)展歷程(2)1973年貝爾實驗室的D.M.Ritchie在B語言的基礎上設計出了C語言,但僅在貝爾實驗室使用。1975年UNIX第6版發(fā)布,C優(yōu)點突出引起關注。1977年出現了《可移植C語言編譯程序》。

1978年影響深遠的名著《TheCProgrammingLanguage》由BrianW.Kernighan和DennisM.Ritchie合著,被稱為標準C。在此之后,C語言風靡世界,成為最廣泛的幾種計算機語言之一。1983年,美國國家標準化協會(ANSI)根據C語言各種版本對C的發(fā)展和擴充,制定了新的標準ANSIC,比標準C有了很大的發(fā)展。1.1C語言的發(fā)展歷程(2)1973年貝爾實驗1.1C語言的發(fā)展歷程

(3)1988年K&R按照ANSIC修改了他們的《TheCProgrammingLanguage》。1987年,ANSI公布了新標準——87ANSIC。

1990年,國際標準化組織接受了87ANSIC為ISOC的標準(ISO9899—1990)。

1994年,ISO又修訂了C語言標準。目前流行的C語言編譯系統大多是以ANSIC為基礎進行開發(fā)的。

說明:不同版本的C編譯系統所實現的語言功能和語法規(guī)則又略有差別,因此讀者可以參閱有關手冊,了解所用的C語言編譯系統的特點。本書的敘述基本上以ANSIC為基礎。1.1C語言的發(fā)展歷程說明:不同版本的C編譯系統1.2數據在計算機內的存儲形式和表示方法1.2.1內存的組織形式1.內存儲器RAM(RandomAccessMemory)2.內存儲器的組織形式圖1.1內存儲器的結構示意圖

1.2數據在計算機內的存儲形式和表示方法1.2.1內存的1.2數據在計算機內的存儲形式和表示方法加法運算規(guī)則:0+0=00+1=11+0=11+1=10乘法運算規(guī)則:0×0=00×1=01×0=01×1=12.十進制數與二進制數的轉換例如:將十進制19.45轉換為二進制數。19.45的整數部分為19,其轉換的過程如下:1.2數據在計算機內的存儲形式和表示方法加法運算規(guī)則:01.2數據在計算機內的存儲形式和表示方法19.45的小數部分為0.45(取四位小數),其轉換的過程如下:、0.45×2=0.90取其整數部分為00.90×2=1.80取其整數部分為10.80×2=1.60取其整數部分為10.60×2=1.20取其整數部分為1……

依次類推。則得到(19.45)10=(10011.0111)2括號外的下標10和2,分別表示十進制數和二進制數。由此可以觀察到:19=1×24+0×23+0×22+1×21+1×20。

1.2數據在計算機內的存儲形式和表示方法19.45的小數部1.2數據在計算機內的存儲形式和表示方法1.2.3八進制(octal)數

1.八進制數的基本特征八進制數由0、1、2、3、4、5、6、7等八個數字符號表示;基數為8;按逢8進1、借1算8的規(guī)則計數;采用位置記數法(或帶權記數法),權值為8。其基本運算規(guī)則與十進制相似。

2.二進制數與八進制數的轉換

3.八進制數與十進制數的轉換1.2數據在計算機內的存儲形式和表示方法1.2.3八進制1.2數據在計算機內的存儲形式和表示方法1.2.4十六進制(Hexadecimal)數1.十六進制數的基本特征十六進制數由0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F等十六個數字符號表示;基數為16;按逢16進1、借1算16的規(guī)則計數;采用位置記數法(或帶權記數法),權值為16。十六進制數中的A、B、C、D、E、F分別代表10、11、12、13、14、15。在C語言中,表示十六進制數時,大小寫字母作用相同。2.十六進制數與二進制數間的轉換例如:將二進制數1011010101111110轉換為十六進制數。二進制數1011010101111110可以寫成1011,0101,0111,1110四組數,再分別用十六進制數碼C、5、7、E表示。即(1011010101111110)2=(C57E)161.2數據在計算機內的存儲形式和表示方法1.2.4十六進1.2數據在計算機內的存儲形式和表示方法表1.1各種進位制度的常用數值轉換表

3.十六進制數與十進制數間的轉換若將一個十六進制整數轉換為十進制數,只需把十六進制數按權展開,累加各項即可。

注意:在進行轉換時,每位十六進制數都應表示為4位二進制數,如0應表示為0000,而不應只寫成0,否則就會丟失某些位。八進制數轉換為二進制數時,每位八進制數對應一個3位的二進制數。

1.2數據在計算機內的存儲形式和表示方法表1.1各種進1.2數據在計算機內的存儲形式和表示方法1.2.5原碼、反碼和補碼。

在計算機內部,所有的信息都要用二進制數來表示,數的符號“+”、“-”也必須采用二進制數來表示。通常以0表示正數的符號,以1表示負數的符號,當符號和數值都二進制數0和1表示之后,這樣的數叫機器數或機器碼。

機器碼可以采用不同的碼制來表示,常用的有原碼、反碼和補碼三種表示方法。這樣表示的目的是在計算機內部可以讓符號位一道參加數值運算。1.數的原碼表示原碼通常用最高位表示數的符號位,數值部分用二進制絕對值表示。即一個正數的原碼是它本身,一個負數的原碼是其符號位加數值部分。1.2數據在計算機內的存儲形式和表示方法1.2.5原碼、2.數的反碼表示

一個正數的反碼與其原碼相同,一個負數的反碼是將符號位除外,其他各位逐位取反,即0變1,1變0,參看表1.2。3.補碼表示方法先以日常鐘表的時間表示為例,說明補碼的概念。假設現在的標準時間為6點整,而有一只指針指向10點,為了校準時間,可以采取兩種方法:一是將時針退(10-6)=4格;另一種方法是將時針向前撥(12-4)=8格。

這兩種方法都可以將鐘表校準的正確時間。對于這個問題來說,減4和加8是等價的。由此,可以說(+8)和(-4)是以12為模的補碼。1.2數據在計算機內的存儲形式和表示方法2.數的反碼表示1.2數據在計算機內的存儲形式和表說明:在計算機中,帶符號的數用補碼表示,此時減法運算變?yōu)榧臃ㄟ\算,從而簡化了計算機硬件電路的結構。當運算的結果超出補碼表示范圍時,結果就不正確了,這稱為“溢出”。1.2數據在計算機內的存儲形式和表示方法在數學上由于-4=-1×12+8,+8=0×12+8稱為同余式。對于同余式中的模,則表示可以棄舍或丟掉的數值。其結果是減去4和加上8都可以實現正確時間的校準。補碼的計算規(guī)則:一個正數的補碼和其原碼形式相同,一個負數的補碼是將其反碼加1,參看表1.2中部分舉例。在計算機中,負數是用其補碼表示的。例如:求-42的補碼。42用二進制數表示是101010,其原碼為10101010,則其反碼為11010101,即其反碼加1即為補碼:11010110。說明:在計算機中,帶符號的數用補碼表示,此時減法運算變?yōu)榧臃?.3利用計算機處理問題的基本過程1.計算機算題的簡單過程2.利用計算機處理問題的過程(1)需求分析。(2)確定處理方案。

(3)確定操作步驟。(4)編寫源程序。(5)輸入和運行程序。(6)整理結果。

圖1.3計算機處理一個實際問題的主要過程

1.3利用計算機處理問題的基本過程1.計算機算題的簡單1.4最簡單的C程序的構成

1.4.1C語言的特點(1)語言簡潔、緊湊,使用方便、靈活。(2)具有豐富的運算符和數據結構。(3)C語言是完全模塊化和結構化的語言。(4)C語言因為兼有高級和低級語言的特點。(5)與匯編語言相比,可移植性好。(6)生成目標代碼質量高。1.4最簡單的C程序的構成1.4.1C語言的特點1.4最簡單的C程序的構成

1.4.2C語言中的字符集

1.字符集字符是組成語言的最基本的元素。C語言字符集由字母、數字、空格、標點和特殊字符組成,具體可以參看附錄1中常用字符與ASCII碼表。具體可以分為如下幾類:(1)字母。小寫英文字母a~z共26個,大寫字母A~Z共26個。

(2)數字。0~9共10個。

(3)空白符??崭穹⒅票矸?、換行符等統稱為空白符。

(4)標點和特殊字符。1.4最簡單的C程序的構成1.4.2C語言中的字符集1.4最簡單的C程序的構成

2.標識符

C語言中用來對變量、符號常量、函數、數組、自定義類型等數據對象命名的有效字符序列統稱為標識符(identifier)。簡單地說,標識符就是一個名字。

C語言規(guī)定標識符只能由字母、數字和下劃線3種字符組成,且第1個字符必須為字母或下劃線。

下面列出的是合法的標識符,可以作為變量名。X1,a,A3,student,abc,kk下面是不合法的標識符和變量名M.D.John,¥123,#33,3D64,a>b,3x特別注意:編譯系統將大寫字母和小寫字母認為是兩個不同的字符。

1.4最簡單的C程序的構成2.標識符1.4最簡單的C程序的構成

3.關鍵字C語言的32個關鍵字,是C語言編譯系統賦予規(guī)定含義的英文單詞或字母組合,在進行C語言的程序設計時,不能再賦予其新的含義。C語言的關鍵字分為以下幾類:(1)類型說明符。用于定義變量、函數或其他數據結構的類型。如int、double等。(2)語句定義符。用于表示一個語句的功能。如if、else、while等。(3)預處理命令字。用于表示一個預處理命令。如include、define等。C語言的32個關鍵字,具體功能可以參看附錄Ⅳ。1.4最簡單的C程序的構成3.關鍵字例1.1

輸出一行信息Helloworld!。

#include<stdio.h>void

main(){

printf("Helloworld!

\n");}

1.4最簡單的C程序的構成/*文件包含*//*主函數*//*函數體開始*//*輸出語句*//*函數體結束*/說明

main

主函數名,每個C程序必須有一個主函數main,系統執(zhí)行C程序時,從main函數開始。()是函數的標志。1.4.3C程序的構成1.簡單的C程序舉例

例1.1輸出一行信息Helloworld!。#inc1.4最簡單的C程序的構成

說明void函數類型表示此函數是“空類型”,printf是C編譯系統提供的標準函數庫中的輸出函數名,

雙引號“”是字符串的定界符,雙引號內的字符串按原樣輸出。“\n”是換行符,即在輸出“Helloworld!”后回車換行。

{}是函數開始和結束的標志,不可省每個C語句以分號結束

#是預處理命令行起始符號。使用標準庫函數時應在程序開頭一行寫:#includestdio.h>說明:本程序的運行結果:

Helloworld!1.4最簡單的C程序的構成說明說明:本程序的運行結1.4最簡單的C程序的構成例1.2

求兩個整數之和。#include<stdio.h>voidmain(){inta,b,sum;a=11;b=45;

sum=a+b;

printf(“sumis%d\n”,sum);}

/*求兩數之和*/

/*變量聲明部分*//*賦值語句*//*輸出函數*/

本程序的運行結果:sumis561.4最簡單的C程序的構成例1.2求兩個整數之和。/1.4最簡單的C程序的構成

說明本程序中各行右側的/*……*/表示注釋。逗號主要用在變量類型說明中分隔各個變量,是分隔符。在C程序中采用的分隔符最常用的有逗號和空格兩種??崭穸嘤糜谡Z句各單詞之間,作分隔符?!癷nta,b,sum;”是函數體中的聲明部分,定義變量a和b,指定a和b為整型(int)變量?!癮=11;b=45;sum=a+b;”是賦值語句。printf函數中得“%”是輸入輸出的“格式字符串”,用來指定輸入輸出時的數據類型和格式。

1.4最簡單的C程序的構成說明1.4最簡單的C程序的構成例1.3計算長為l,寬為w,高為h的長方體體積v。

#include<stdio.h>viodmain(){intvolume(intlength,intwidth,inthigh);intl,w,h,v;printf("pleaseinputl,w,h:\n");

scanf("%d,%d,%d",&l,&w,&h);v=volume(l,w,h);

printf("v=%d",v);

return;}intvolume(intlength,intwidth,inthigh)

{intv;v=length*width*high; returnv; }程序運行結果:pleaseinputl,w,h:4,3,2↙

v=241.4最簡單的C程序的構成例1.3計算長為l,寬為w,1.4最簡單的C程序的構成說明:本程序包括main和被調用函數volume兩個函數。max函數的作用是計算一個長方體的體積。return語句將z的值返回給主調函數main。2.C源程序的結構特點(1)C程序是由函數構成的。一個C源程序至少且僅包含一個main函數。(2)一個C程序總是從main函數開始執(zhí)行的。(3)C源程序中可以有預處理命令,預處理命令通常應放在源文件或源程序的最前面。(4)C程序的基本單位是函數。被調用的函數可以是系統提供的庫函數(如printf和scanf等輸入輸出函數),也可以是用戶自定義函數(如volume函數)。

1.4最簡單的C程序的構成說明:本程序包括main和被調1.4最簡單的C程序的構成3.C函數的組成(1)函數首部。即函數的第1行,包括函數名、函數類型、函數屬性、函數參數(形式參數名、參數類型)。一個函數名后面必須跟一對圓括號,括號內寫函數的參數名及其類型。例如,例1.3中的volume函數的首部為:(2)函數體。即函數首部下面的花括號內的部分。①聲明部分。定義所用到的變量和對所調用函數的聲明。②執(zhí)行部分。由若干個C語句組成。1.4最簡單的C程序的構成3.C函數的組成1.4最簡單的C程序的構成說明:(1)空函數:有時函數可以既無聲明部分也無執(zhí)行部分。如:voidexample1(){}它是一個,什么也不做,但這是符合C語言規(guī)則的。(2)C語言本身沒有輸入輸出語句。輸入和輸出的操作是由庫函數scanf和printf等函數來完成的。由于輸入輸出操作牽涉具體的計算機設備,把輸入輸出操作放在函數中處理,就可以使C語言本身的規(guī)模較小,編譯程序簡單,很容易在各種機器上實現,程序具有可移植性。(3)不同計算機系統除了提供標準函數外,還提供一些專門的函數,因此不同計算機系統中所提供的函數個數和功能是有所不同的。ANSIC提供一百多個庫函數,TurboC則提供三百多個庫函數。1.4最簡單的C程序的構成說明:1.4最簡單的C程序的構成4.書寫程序時應遵循的規(guī)則(1)每個語句和數據聲明的最后必須有個分號,分號是C語句的必要組成部分。(2)關鍵字、標識符之間必須至少加一個空格以示間隔。若已有明顯的間隔符如逗號、分號等,也可不再加空格來間隔。(3)C程序書寫格式自由,一行內可以寫幾個語句,一個語句可以分寫在多行上。(4)函數體內部用{}括起來的部分,通常表示程序的某一層次結構。在編程時應力求遵循這些規(guī)則,以養(yǎng)成良好的編程風格。(5)可以用/*……*/對C程序中的任何部分做注釋1.4最簡單的C程序的構成4.書寫程序時應遵循的規(guī)則1.5C語言的運行環(huán)境和上機步驟

1.5.1C語言的運行環(huán)境選用TurboC++3.0作為學習C語言的運行環(huán)境。對于熟悉VisualC++的人,可以參考與本書配套的《C程序設計教程習題解答與上機指導》指導書來學習。

TurboC++3.0:是一個集成環(huán)境,它具有方便、直觀和易用的界面,雖然它也是DOS環(huán)境下的集成環(huán)境,但是可以把啟動TurboC++3.0集成環(huán)境的DOS執(zhí)行文件tc.exe生成快捷方式,也可以用鼠標操作。1.5C語言的運行環(huán)境和上機步驟1.5.1C語言的運1.5C語言的運行環(huán)境和上機步驟

TurboC++3.0的集成環(huán)境可以通過兩種方法得到TurboC++3.0集成環(huán)境。(1)在DOS環(huán)境下??梢栽贒OS環(huán)境下用鍵盤輸入DOS命令TC即可:D:\TC3.0>TC↙

(2)在Windows環(huán)境下。先通過瀏覽找到TurboC++3.0集成環(huán)境所在的子目錄(如D:\TC3.0),從中找到可執(zhí)行文件tc.exe,創(chuàng)建其快捷方式,并拖曳到Windows桌面上,用一個圖標表示。雙擊該圖標,就可打開的TurboC++3.0集成環(huán)境。圖1.4TurboC++3.0集成環(huán)境

1.5C語言的運行環(huán)境和上機步驟TurboC++31.5C語言的運行環(huán)境和上機步驟

在集成環(huán)境的上部,有一行主菜單,其中包括10個菜單項。用戶可以通過以上菜單來選擇使用集成環(huán)境所提供的TurboC++3.0的各項主要功能。

主菜單,其中包括10個菜單項:

FileEditSearchRunCompileDebugProjectOptionsWindowHelp以上10個菜單項分別代表:文件、編輯、查找、運行、編譯、調試、項目、選項、窗口、幫助。用鼠標可以選擇菜單條中所需要的菜單項,單擊此菜單項就會出現一個下拉菜單。

1.5C語言的運行環(huán)境和上機步驟在集成環(huán)境的上部,有1.5C語言的運行環(huán)境和上機步驟

1.5.2C程序的上機步驟

所謂程序,就是一組計算機能識別和執(zhí)行的指令。每一條指令使計算機執(zhí)行特定的操作。用高級語言編寫的程序稱為“源程序(sourceprogram)”。

TurboC++3.0是一個集源程序編輯、編譯、連接、運行與調試于一體、用菜單驅動的集成軟件環(huán)境。運行一個C語言程序的一般過程如圖1.7所示:

1.5C語言的運行環(huán)境和上機步驟1.5.2C程序的編輯編譯源程序f.c有錯?連接執(zhí)行結果正確?目標程序f.0bj無有庫函數和其他目標程序可執(zhí)行程序f.exe是否開始結束編輯編譯源程序f.c有錯?連接執(zhí)行結果正確?目標程序f.0b1.5C語言的運行環(huán)境和上機步驟

說明:經過編輯得到一個源程序文件f.c,然后將源程序文件f.c輸入到計算機中,經過編譯得到目標程序文件f.obj,再將目標程序f.obj均輸入內存,與系統提供的庫函數等連接,即可得到可執(zhí)行的目標程序f.exe,最后把f.exe調入內存并執(zhí)行。即:運行C程序的步驟上機輸入與編輯源程序對源程序進行編譯與庫函數連接運行目標程序1.5C語言的運行環(huán)境和上機步驟說明:經過編輯得到1編輯源文件新建:單擊File菜單下的New1.5C語言的運行環(huán)境和上機步驟

1編輯源文件1.5C語言的運行環(huán)境和上機步驟1.5C語言的運行環(huán)境和上機步驟

修改:選擇File→Open(即單擊“File”的下拉菜單中的Open項,修改已有的源程序。

在編輯(EDIT)狀態(tài)下光標表示當前進行編輯的位置,在此位置可以進行插入、刪除或修改,直到自已滿意為止。1.5C語言的運行環(huán)境和上機步驟修改:選擇File→O保存:在完成編輯之后,應當保存源程序。如果該源程序是已有的,則選擇菜單FileSave命令保存已修改過的源程序。若源程序是新輸入的,則選擇File->Save命令,并在彈出的SaveFileAs對話框中的Name欄中輸入文件路徑和文件名,1.5C語言的運行環(huán)境和上機步驟

保存:在完成編輯之后,應當保存源程序。如果該源程序是已有的,2.對源程序進行編譯

選擇菜單Compile(或“Alt+F9”)對源程序進行編譯。AA.C源程序,出現1個錯誤(error),0個警告(warming)。

1.5C語言的運行環(huán)境和上機步驟

2.對源程序進行編譯1.5C語言的運行環(huán)境和上機步驟3將目標程序進行連接選擇菜單Compile→Link,如果不出現錯誤,會得到一個后綴為.exe的可執(zhí)行文件。4執(zhí)行程序

選菜單Run→Run(或按“Ctrl+F9”鍵)。5退出TurboC++3.0環(huán)境退出TC有兩種方法:1)菜單法:File|Quit(先選擇File主項,再選擇并執(zhí)行Quit子項)2)快捷鍵法:Alt+“X”(先按下Alt鍵并保持,再按字母鍵X,然后同時放開)。1.5C語言的運行環(huán)境和上機步驟

3將目標程序進行連接4執(zhí)行程序1.5C語言的運行環(huán)境*TurboC++3.0常用的功能鍵(詳細內容參看實驗指導書)

Alt+F5切換到輸出屏幕Ctrl+F9編譯連接運行程序ALT+ENTER轉換窗口和屏幕調試

Alt+x退出tc

F10激活菜單Alt+F/C/R/O等使用菜單ESC釋放菜單

Alt+F9編譯源程序Ctrl+F4計算表達式Ctrl+F1庫函數的幫助F2源程序存盤F5縮放活動窗口F6切換活動窗口F9編譯連接程序1.5C語言的運行環(huán)境和上機步驟

*TurboC++3.0常用的功能鍵(詳細內容參看實驗謝謝您的光臨!Thankyouverymuch!謝謝您的光臨!Thankyouverymuch!第一章第一章本章教學要點

C語言的特點

C程序的組成

C函數的結構運行C程序的常用操作和步驟本章教學要點C語言的特點主要內容1.1C語言的發(fā)展歷程1.2數據在計算機內的存儲形式和表示方法1.3利用計算機處理問題的基本過程1.4最簡單的C程序的構成

1.5C語言的運行環(huán)境和上機步驟主要內容1.1C語言的發(fā)展歷程1.1C語言的發(fā)展歷程

C語言是國際上廣泛流行的高級語言。C語言的發(fā)展過程可以粗略的分為誕生(1970年—1973年)、發(fā)展(1973年—1988年)和成熟(1988年以后)三個階段。

(1)C語言是在B語言的基礎上發(fā)展起來的。B(BCPL)語言是1970年由美國貝爾實驗室設計的,并用于編寫了第一個UNIX操作系統,在PDP7上實現。優(yōu)點:精練,接近硬件缺點:過于簡單,數據無類型。1.1C語言的發(fā)展歷程C語言是國1.1C語言的發(fā)展歷程(2)1973年貝爾實驗室的D.M.Ritchie在B語言的基礎上設計出了C語言,但僅在貝爾實驗室使用。1975年UNIX第6版發(fā)布,C優(yōu)點突出引起關注。1977年出現了《可移植C語言編譯程序》。

1978年影響深遠的名著《TheCProgrammingLanguage》由BrianW.Kernighan和DennisM.Ritchie合著,被稱為標準C。在此之后,C語言風靡世界,成為最廣泛的幾種計算機語言之一。1983年,美國國家標準化協會(ANSI)根據C語言各種版本對C的發(fā)展和擴充,制定了新的標準ANSIC,比標準C有了很大的發(fā)展。1.1C語言的發(fā)展歷程(2)1973年貝爾實驗1.1C語言的發(fā)展歷程

(3)1988年K&R按照ANSIC修改了他們的《TheCProgrammingLanguage》。1987年,ANSI公布了新標準——87ANSIC。

1990年,國際標準化組織接受了87ANSIC為ISOC的標準(ISO9899—1990)。

1994年,ISO又修訂了C語言標準。目前流行的C語言編譯系統大多是以ANSIC為基礎進行開發(fā)的。

說明:不同版本的C編譯系統所實現的語言功能和語法規(guī)則又略有差別,因此讀者可以參閱有關手冊,了解所用的C語言編譯系統的特點。本書的敘述基本上以ANSIC為基礎。1.1C語言的發(fā)展歷程說明:不同版本的C編譯系統1.2數據在計算機內的存儲形式和表示方法1.2.1內存的組織形式1.內存儲器RAM(RandomAccessMemory)2.內存儲器的組織形式圖1.1內存儲器的結構示意圖

1.2數據在計算機內的存儲形式和表示方法1.2.1內存的1.2數據在計算機內的存儲形式和表示方法加法運算規(guī)則:0+0=00+1=11+0=11+1=10乘法運算規(guī)則:0×0=00×1=01×0=01×1=12.十進制數與二進制數的轉換例如:將十進制19.45轉換為二進制數。19.45的整數部分為19,其轉換的過程如下:1.2數據在計算機內的存儲形式和表示方法加法運算規(guī)則:01.2數據在計算機內的存儲形式和表示方法19.45的小數部分為0.45(取四位小數),其轉換的過程如下:、0.45×2=0.90取其整數部分為00.90×2=1.80取其整數部分為10.80×2=1.60取其整數部分為10.60×2=1.20取其整數部分為1……

依次類推。則得到(19.45)10=(10011.0111)2括號外的下標10和2,分別表示十進制數和二進制數。由此可以觀察到:19=1×24+0×23+0×22+1×21+1×20。

1.2數據在計算機內的存儲形式和表示方法19.45的小數部1.2數據在計算機內的存儲形式和表示方法1.2.3八進制(octal)數

1.八進制數的基本特征八進制數由0、1、2、3、4、5、6、7等八個數字符號表示;基數為8;按逢8進1、借1算8的規(guī)則計數;采用位置記數法(或帶權記數法),權值為8。其基本運算規(guī)則與十進制相似。

2.二進制數與八進制數的轉換

3.八進制數與十進制數的轉換1.2數據在計算機內的存儲形式和表示方法1.2.3八進制1.2數據在計算機內的存儲形式和表示方法1.2.4十六進制(Hexadecimal)數1.十六進制數的基本特征十六進制數由0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F等十六個數字符號表示;基數為16;按逢16進1、借1算16的規(guī)則計數;采用位置記數法(或帶權記數法),權值為16。十六進制數中的A、B、C、D、E、F分別代表10、11、12、13、14、15。在C語言中,表示十六進制數時,大小寫字母作用相同。2.十六進制數與二進制數間的轉換例如:將二進制數1011010101111110轉換為十六進制數。二進制數1011010101111110可以寫成1011,0101,0111,1110四組數,再分別用十六進制數碼C、5、7、E表示。即(1011010101111110)2=(C57E)161.2數據在計算機內的存儲形式和表示方法1.2.4十六進1.2數據在計算機內的存儲形式和表示方法表1.1各種進位制度的常用數值轉換表

3.十六進制數與十進制數間的轉換若將一個十六進制整數轉換為十進制數,只需把十六進制數按權展開,累加各項即可。

注意:在進行轉換時,每位十六進制數都應表示為4位二進制數,如0應表示為0000,而不應只寫成0,否則就會丟失某些位。八進制數轉換為二進制數時,每位八進制數對應一個3位的二進制數。

1.2數據在計算機內的存儲形式和表示方法表1.1各種進1.2數據在計算機內的存儲形式和表示方法1.2.5原碼、反碼和補碼。

在計算機內部,所有的信息都要用二進制數來表示,數的符號“+”、“-”也必須采用二進制數來表示。通常以0表示正數的符號,以1表示負數的符號,當符號和數值都二進制數0和1表示之后,這樣的數叫機器數或機器碼。

機器碼可以采用不同的碼制來表示,常用的有原碼、反碼和補碼三種表示方法。這樣表示的目的是在計算機內部可以讓符號位一道參加數值運算。1.數的原碼表示原碼通常用最高位表示數的符號位,數值部分用二進制絕對值表示。即一個正數的原碼是它本身,一個負數的原碼是其符號位加數值部分。1.2數據在計算機內的存儲形式和表示方法1.2.5原碼、2.數的反碼表示

一個正數的反碼與其原碼相同,一個負數的反碼是將符號位除外,其他各位逐位取反,即0變1,1變0,參看表1.2。3.補碼表示方法先以日常鐘表的時間表示為例,說明補碼的概念。假設現在的標準時間為6點整,而有一只指針指向10點,為了校準時間,可以采取兩種方法:一是將時針退(10-6)=4格;另一種方法是將時針向前撥(12-4)=8格。

這兩種方法都可以將鐘表校準的正確時間。對于這個問題來說,減4和加8是等價的。由此,可以說(+8)和(-4)是以12為模的補碼。1.2數據在計算機內的存儲形式和表示方法2.數的反碼表示1.2數據在計算機內的存儲形式和表說明:在計算機中,帶符號的數用補碼表示,此時減法運算變?yōu)榧臃ㄟ\算,從而簡化了計算機硬件電路的結構。當運算的結果超出補碼表示范圍時,結果就不正確了,這稱為“溢出”。1.2數據在計算機內的存儲形式和表示方法在數學上由于-4=-1×12+8,+8=0×12+8稱為同余式。對于同余式中的模,則表示可以棄舍或丟掉的數值。其結果是減去4和加上8都可以實現正確時間的校準。補碼的計算規(guī)則:一個正數的補碼和其原碼形式相同,一個負數的補碼是將其反碼加1,參看表1.2中部分舉例。在計算機中,負數是用其補碼表示的。例如:求-42的補碼。42用二進制數表示是101010,其原碼為10101010,則其反碼為11010101,即其反碼加1即為補碼:11010110。說明:在計算機中,帶符號的數用補碼表示,此時減法運算變?yōu)榧臃?.3利用計算機處理問題的基本過程1.計算機算題的簡單過程2.利用計算機處理問題的過程(1)需求分析。(2)確定處理方案。

(3)確定操作步驟。(4)編寫源程序。(5)輸入和運行程序。(6)整理結果。

圖1.3計算機處理一個實際問題的主要過程

1.3利用計算機處理問題的基本過程1.計算機算題的簡單1.4最簡單的C程序的構成

1.4.1C語言的特點(1)語言簡潔、緊湊,使用方便、靈活。(2)具有豐富的運算符和數據結構。(3)C語言是完全模塊化和結構化的語言。(4)C語言因為兼有高級和低級語言的特點。(5)與匯編語言相比,可移植性好。(6)生成目標代碼質量高。1.4最簡單的C程序的構成1.4.1C語言的特點1.4最簡單的C程序的構成

1.4.2C語言中的字符集

1.字符集字符是組成語言的最基本的元素。C語言字符集由字母、數字、空格、標點和特殊字符組成,具體可以參看附錄1中常用字符與ASCII碼表。具體可以分為如下幾類:(1)字母。小寫英文字母a~z共26個,大寫字母A~Z共26個。

(2)數字。0~9共10個。

(3)空白符??崭穹⒅票矸?、換行符等統稱為空白符。

(4)標點和特殊字符。1.4最簡單的C程序的構成1.4.2C語言中的字符集1.4最簡單的C程序的構成

2.標識符

C語言中用來對變量、符號常量、函數、數組、自定義類型等數據對象命名的有效字符序列統稱為標識符(identifier)。簡單地說,標識符就是一個名字。

C語言規(guī)定標識符只能由字母、數字和下劃線3種字符組成,且第1個字符必須為字母或下劃線。

下面列出的是合法的標識符,可以作為變量名。X1,a,A3,student,abc,kk下面是不合法的標識符和變量名M.D.John,¥123,#33,3D64,a>b,3x特別注意:編譯系統將大寫字母和小寫字母認為是兩個不同的字符。

1.4最簡單的C程序的構成2.標識符1.4最簡單的C程序的構成

3.關鍵字C語言的32個關鍵字,是C語言編譯系統賦予規(guī)定含義的英文單詞或字母組合,在進行C語言的程序設計時,不能再賦予其新的含義。C語言的關鍵字分為以下幾類:(1)類型說明符。用于定義變量、函數或其他數據結構的類型。如int、double等。(2)語句定義符。用于表示一個語句的功能。如if、else、while等。(3)預處理命令字。用于表示一個預處理命令。如include、define等。C語言的32個關鍵字,具體功能可以參看附錄Ⅳ。1.4最簡單的C程序的構成3.關鍵字例1.1

輸出一行信息Helloworld!。

#include<stdio.h>void

main(){

printf("Helloworld!

\n");}

1.4最簡單的C程序的構成/*文件包含*//*主函數*//*函數體開始*//*輸出語句*//*函數體結束*/說明

main

主函數名,每個C程序必須有一個主函數main,系統執(zhí)行C程序時,從main函數開始。()是函數的標志。1.4.3C程序的構成1.簡單的C程序舉例

例1.1輸出一行信息Helloworld!。#inc1.4最簡單的C程序的構成

說明void函數類型表示此函數是“空類型”,printf是C編譯系統提供的標準函數庫中的輸出函數名,

雙引號“”是字符串的定界符,雙引號內的字符串按原樣輸出。“\n”是換行符,即在輸出“Helloworld!”后回車換行。

{}是函數開始和結束的標志,不可省每個C語句以分號結束

#是預處理命令行起始符號。使用標準庫函數時應在程序開頭一行寫:#includestdio.h>說明:本程序的運行結果:

Helloworld!1.4最簡單的C程序的構成說明說明:本程序的運行結1.4最簡單的C程序的構成例1.2

求兩個整數之和。#include<stdio.h>voidmain(){inta,b,sum;a=11;b=45;

sum=a+b;

printf(“sumis%d\n”,sum);}

/*求兩數之和*/

/*變量聲明部分*//*賦值語句*//*輸出函數*/

本程序的運行結果:sumis561.4最簡單的C程序的構成例1.2求兩個整數之和。/1.4最簡單的C程序的構成

說明本程序中各行右側的/*……*/表示注釋。逗號主要用在變量類型說明中分隔各個變量,是分隔符。在C程序中采用的分隔符最常用的有逗號和空格兩種??崭穸嘤糜谡Z句各單詞之間,作分隔符?!癷nta,b,sum;”是函數體中的聲明部分,定義變量a和b,指定a和b為整型(int)變量?!癮=11;b=45;sum=a+b;”是賦值語句。printf函數中得“%”是輸入輸出的“格式字符串”,用來指定輸入輸出時的數據類型和格式。

1.4最簡單的C程序的構成說明1.4最簡單的C程序的構成例1.3計算長為l,寬為w,高為h的長方體體積v。

#include<stdio.h>viodmain(){intvolume(intlength,intwidth,inthigh);intl,w,h,v;printf("pleaseinputl,w,h:\n");

scanf("%d,%d,%d",&l,&w,&h);v=volume(l,w,h);

printf("v=%d",v);

return;}intvolume(intlength,intwidth,inthigh)

{intv;v=length*width*high; returnv; }程序運行結果:pleaseinputl,w,h:4,3,2↙

v=241.4最簡單的C程序的構成例1.3計算長為l,寬為w,1.4最簡單的C程序的構成說明:本程序包括main和被調用函數volume兩個函數。max函數的作用是計算一個長方體的體積。return語句將z的值返回給主調函數main。2.C源程序的結構特點(1)C程序是由函數構成的。一個C源程序至少且僅包含一個main函數。(2)一個C程序總是從main函數開始執(zhí)行的。(3)C源程序中可以有預處理命令,預處理命令通常應放在源文件或源程序的最前面。(4)C程序的基本單位是函數。被調用的函數可以是系統提供的庫函數(如printf和scanf等輸入輸出函數),也可以是用戶自定義函數(如volume函數)。

1.4最簡單的C程序的構成說明:本程序包括main和被調1.4最簡單的C程序的構成3.C函數的組成(1)函數首部。即函數的第1行,包括函數名、函數類型、函數屬性、函數參數(形式參數名、參數類型)。一個函數名后面必須跟一對圓括號,括號內寫函數的參數名及其類型。例如,例1.3中的volume函數的首部為:(2)函數體。即函數首部下面的花括號內的部分。①聲明部分。定義所用到的變量和對所調用函數的聲明。②執(zhí)行部分。由若干個C語句組成。1.4最簡單的C程序的構成3.C函數的組成1.4最簡單的C程序的構成說明:(1)空函數:有時函數可以既無聲明部分也無執(zhí)行部分。如:voidexample1(){}它是一個,什么也不做,但這是符合C語言規(guī)則的。(2)C語言本身沒有輸入輸出語句。輸入和輸出的操作是由庫函數scanf和printf等函數來完成的。由于輸入輸出操作牽涉具體的計算機設備,把輸入輸出操作放在函數中處理,就可以使C語言本身的規(guī)模較小,編譯程序簡單,很容易在各種機器上實現,程序具有可移植性。(3)不同計算機系統除了提供標準函數外,還提供一些專門的函數,因此不同計算機系統中所提供的函數個數和功能是有所不同的。ANSIC提供一百多個庫函數,TurboC則提供三百多個庫函數。1.4最簡單的C程序的構成說明:1.4最簡單的C程序的構成4.書寫程序時應遵循的規(guī)則(1)每個語句和數據聲明的最后必須有個分號,分號是C語句的必要組成部分。(2)關鍵字、標識符之間必須至少加一個空格以示間隔。若已有明顯的間隔符如逗號、分號等,也可不再加空格來間隔。(3)C程序書寫格式自由,一行內可以寫幾個語句,一個語句可以分寫在多行上。(4)函數體內部用{}括起來的部分,通常表示程序的某一層次結構。在編程時應力求遵循這些規(guī)則,以養(yǎng)成良好的編程風格。(5)可以用/*……*/對C程序中的任何部分做注釋1.4最簡單的C程序的構成4.書寫程序時應遵循的規(guī)則1.5C語言的運行環(huán)境和上機步驟

1.5.1C語言的運行環(huán)境選用TurboC++3.0作為學習C語言的運行環(huán)境。對于熟悉VisualC++的人,可以參考與本書配套的《C程序設計教程習題解答與上機指導》指導書來學習。

TurboC++3.0:是一個集成環(huán)境,它具有方便、直觀和易用的界面,雖然它也是DOS環(huán)境下的集成環(huán)境,但是可以把啟動TurboC++3.0集成環(huán)境的DOS執(zhí)行文件tc.exe生成快捷方式,也可以用鼠標操作。1.5C語言的運行環(huán)境和上機步驟1.5.1C語言的運1.5C語言的運行環(huán)境和上機步驟

TurboC++3.0的集成環(huán)境可以通過兩種方法得到TurboC++3.0集成環(huán)境。(1)在DOS環(huán)境下。可以在DOS環(huán)境下用鍵盤輸入DOS命令TC即可:D:\TC3.0>TC↙

(2)在Windows環(huán)境下。先通過瀏覽找到TurboC++3.0集成環(huán)境所在的子目錄(如D:\TC3.0),從中找到可執(zhí)行文件tc.exe,創(chuàng)建其快捷方式,并拖曳到Windows桌面上,用一個圖標表示。雙擊該圖標,就可打開的TurboC++3.0集成環(huán)境。圖1.4TurboC++3.0集成環(huán)境

1.5C語言的運行環(huán)境和上機步驟TurboC++31.5C語言的運行環(huán)境和上機步驟

在集成環(huán)境

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論