版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第1章程序設計和C語言1.1什么是計算機程序1.2什么是計算機語言1.3C語言的發(fā)展及其特點1.4最簡單的C語言程序1.5運行C程序的步驟與方法1.6程序設計的任務1.1什么是計算機程序程序:一組計算機能識別和執(zhí)行的指令只要讓計算機執(zhí)行這個程序,計算機就會自動地、有條不紊地進行工作計算機的一切操作都是由程序控制的,離開程序,計算機將一事無成1.2什么是計算機語言計算機語言:人和計算機交流信息的、計算機和人都能識別的語言1.2什么是計算機語言計算機語言發(fā)展階段:機器語言(由0和1組成的指令)符號語言(用英文字母和數字表示指令)高級語言(接近于人的自然語言和數學語言)面向過程的語言
(非結構化的語言、結構化語言)面向對象的語言低級語言樣例計算表達式:135+22-1機器語言(常用寄存器:AX,BX,CX等可以用來保存中間結果,類似代碼)101010111010010101000100010110011001111010111101100110110100010100100000111110011010011101101101101000111000010110000001011111011000110110101101010011111010010101001010011110111001101110100111匯編語言:MOVAX,135MOVBX,22ADDAX,BXSUBAX,1
高級語言:
x=135+22-1低級語言C語言程序的運行人機交互過程:人(編程者希望完成的任務)--
高級語言(C程序)--
翻譯(編譯/鏈接軟件)--
機器語言-計算機(執(zhí)行指令,完成相關任務)開始結果語法錯誤源程序.c/.cpp目標程序.obj可執(zhí)行程序.exe編輯編譯連接運行連接錯誤運行錯誤C語言程序的調試、運行步驟main(){intx=135+23;
printf(”x=%d\n”,x);}提高調試能力:程序員都會犯錯,能否快速發(fā)現(xiàn)并修正錯誤是高手和初學者的區(qū)別。一次只改一個地方,搞清楚錯誤的原因對易犯的錯誤做適當記錄和標注,以加深記憶1.3C語言的發(fā)展及其特點C語言是國際上廣泛流行的計算機高級語言。C語言的發(fā)展:1972年:貝爾實驗室的DennisRitchie在B語言的基礎上設計并實現(xiàn)了C語言。1.3C語言的發(fā)展及其特點最初的C語言只是為描述和實現(xiàn)UNIX操作系統(tǒng)提供一種工作語言而設計的。1.3C語言的發(fā)展及其特點1983年,美國國家標準協(xié)會(ANSI)成立了一個委員會,根據C語言問世以來各種版本對C語言的發(fā)展和擴充,制定了第一個C語言標準草案(’83ANSIC)。1.3C語言的發(fā)展及其特點1989年,ANSI公布了一個完整的C語言標準—ANSIX3.159-1989(常稱ANSIC,或C89)。1.3C語言的發(fā)展及其特點1990年,國際標準化組織ISO(InternationalStandardOrganization)接受C89作為國際標準ISO/IEC9899:1990,C90和ANSI的C89基本上是相同的。1995年,ISO對C90作了一些修訂。1.3C語言的發(fā)展及其特點1999年,ISO又對C語言標準進行修訂,在基本保留原來的C語言特征的基礎上,針對應用的需要,增加了一些功能,尤其是C++中的一些功能,命名為ISO/IEC9899:1999。(C99)1.3C語言的發(fā)展及其特點2001、2004年先后進行了兩次技術修正(TC1和TC2)。
ISO/IEC9899:1999(及其技術修正)被稱為C99。C99是C89的擴充。1.3C語言的發(fā)展及其特點本書的敘述以C99標準為依據(對C99新增加的功能作特別的說明)。目前不同軟件公司提供的各C語言編譯系統(tǒng)多數并未完全實現(xiàn)C99建議的功能本書中程序基本上都可以在目前所用的編譯系統(tǒng)(如VC++6.0,TurboC++3.0,GCC)上編譯和運行。1.3C語言的發(fā)展及其特點C語言是一種用途廣泛、功能強大、使用靈活的過程性(procedural)編程語言,既可用于編寫應用軟件,又能用于編寫系統(tǒng)軟件。因此C語言問世以后得到迅速推廣。C語言主要特點1:
語言簡潔緊湊,使用方便靈活。只有37個關鍵字、9種控制語句(C89只有32個關鍵字)程序書寫形式自由,源程序短autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhileC89共32個關鍵字:(系統(tǒng)定義,不能重定義)
boolimaginaryrestrictcomplexinlineC99增加了5個關鍵字#include、#define等為預編譯命令C特點2:運算符豐富有34種運算符把括號、賦值、強制類型轉換等都作為運算符處理表達式類型多樣化算術運算符:+-*/%++--關系運算符:<<===>>=!=邏輯運算符:!&&||位運算符:<<>>~|^&賦值運算符:=及其擴展條件運算符:?:逗號運算符:,指針運算符:*&求字節(jié)數:sizeof強制類型轉換:(類型)負號運算符:-成員操作符:.->下標運算符:[]圓括號:()C89數據類型關鍵字12個(charshortintlongenumfloatdoublesignedunsignedstructunionvoid)
包括:整型int、浮點型float、字符型char、結構體類型struct、共用體類型union、數組類型、指針類型等C99又擴充了復數浮點類型complex、超長整型(longlong)、布爾類型(bool)C特點3:數據類型豐富控制類型關鍵字12個(fordowhilebreakcontinueifelsegotoswitchcasedefaultreturn)如if…else語句、for語句、while語句、switch語句、…用函數作為程序的模塊單位,便于實現(xiàn)程序的模塊化C語言是完全模塊化和結構化的語言C特點4:具有結構化的控制語句9種控制語句:
if()~else~for()~while()~do~while()continuebreakswitchgotoreturnC特點5:
語法限制不太嚴格,程序設計自由度大對數組下標越界不做檢查對變量的類型使用比較靈活,例如,整型量與字符型數據可以通用C語言允許程序編寫者有較大的自由度,因此放寬了語法檢查C語言具有高級語言的功能和低級語言的許多功能,可用來編寫系統(tǒng)軟件這種雙重性,使它既是成功的系統(tǒng)描述語言,又是通用的程序設計語言C特點6:
允許直接訪問物理地址,能進行位操作,可以直接對硬件進行操作C特點7:
用C語言編寫的程序可移植性好。C的編譯系統(tǒng)簡潔,很容易移植到新系統(tǒng)在新系統(tǒng)上運行時,可直接編譯“標準鏈接庫”中的大部分功能,不需要修改源代碼幾乎所有計算機系統(tǒng)都可以使用C語言C特點8:生成目標代碼質量高,程序執(zhí)行效率高。1.4最簡單的C語言程序1.4.1最簡單的C語言程序舉例1.4.2C語言程序的結構1.4.1最簡單的C語言程序舉例例1.1要求在屏幕上輸出以下一行信息。
ThisisaCprogram.解題思路:
利用屏幕打印函數:printf(…),原樣輸出以上文字。printf是系統(tǒng)提供的庫函數名,不是關鍵字#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}函數的名字,表示主函數C程序必須有一個main函數#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
主函數類型#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
函數體#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
輸出函數輸出語句#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
輸出語句運行結果#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
換行符1.4.1最簡單的C語言程序舉例#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
將整數0作為函數的返回值#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
;表示語句結束用到函數庫中的輸入輸出函數時1.4.1最簡單的C語言程序舉例C語言允許用兩種注釋方式://:單行注釋可單獨占一行可出現(xiàn)在一行的右側/*……*/:塊式注釋可包含多行例1.2求兩個整數之和。解題思路:設置3個變量a和b用來存放兩個整數sum用來存放和數用賦值運算符“=”把結果傳送給sum
absum+=#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
absum+=#include<stdio.h>intmain(){inta,b,sum;a=123;b=456;sum=a+b;printf(”sumis%d\n”,sum);return0;}用sum的值替代希望輸出的字符
a123b456sum579+=voidmain(){inta,b,sum;a=123;b=456;sum=a+b;printf(“sum=%d\n",sum);}加法運算程序的改進voidmain(){inta,b,sum;
scanf("%d,%d",&a,&b);sum=a+b;printf(“sum=%d\n",sum);}運行結果:sum=579輸入32,45回車sum=77例1.3從鍵盤輸入兩個整數,求出較大者。解題思路:對于較復雜的子問題可以另設函數求解用一個函數實現(xiàn)求任意兩個整數中的較大者
:intmax(intx,inty);在主函數中調用此函數并輸出結果:big=max(a,b);
abbig#include<stdio.h>intmax(intx,inty);intmain(){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函數將x和y中較大者值返回給主函數#include<stdio.h>intmax(intx,inty);intmain(){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函數的定義在main函數之后,需聲明#include<stdio.h>intmax(intx,inty);intmain(){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);}輸入函數
abc
xyz#include<stdio.h>intmax(intx,inty);intmain(){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);}輸入語句
abc
xyz#include<stdio.h>intmax(intx,inty);intmain(){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);}輸入的數據放到a,b中
abc
xyz輸入格式&a的地址#include<stdio.h>intmax(intx,inty);intmain(){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);}
abc
xyz調用max函數#include<stdio.h>intmax(intx,inty);intmain(){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);}858
abc
xyz執(zhí)行max函數#include<stdio.h>intmax(intx,inty);intmain(){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);}858
abc
xyz輸出結果c#include<stdio.h>intmax(intx,inty);intmain(){inta,b,c;scanf(”%d,%d”,&a,&b);m=max(a,b);printf("max=%d\n",m);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}實際參數形式參數
abm
xyz1.4.2C語言程序的結構C語言程序的結構特點:1.一個程序由一個或多個源程序文件組成小程序往往只包括一個源程序文件例1.1,例1.2只有一個函數例1.3有兩個函數1.4.2C語言程序的結構C語言程序的結構特點:一個源程序文件中可以包括三個部分:預處理指令全局變量函數定義#include<stdio.h>等每個函數用來實現(xiàn)一定的功能1.4.2C語言程序的結構C語言程序的結構特點:2.函數是C程序的主要組成部分一個C程序是由一個或多個函數組成的必須包含一個main函數(只能有一個)每個函數都用來實現(xiàn)一個或幾個特定功能被調用的函數可以是庫函數,也可以是自己編制設計的函數1.4.2C語言程序的結構C語言程序的結構特點:3.一個函數包括兩個部分:函數首部intmax(intx,inty)函數的第1行函數類型函數名參數類型參數名1.4.2C語言程序的結構C語言程序的結構特點:3.一個函數包括兩個部分:函數首部intmax(intx,inty)若函數無參,在括弧中寫void或空括弧intmain(void)或intmain()1.4.2C語言程序的結構C語言程序的結構特點:3.一個函數包括兩個部分:函數體聲明部分:定義在本函數中所用到的變量對本函數所調用函數進行聲明執(zhí)行部分:由若干個語句組成,指定在函數中所進行的操作voidmain(){inta,b,sum;a=123;b=456;sum=a+b;printf("sum=%d\n",sum);}1.4.2C語言程序的結構C語言程序的結構特點:3.一個函數包括兩個部分(都可缺?。┖瘮刁wvoiddump(){}可以是空函數1.4.2C語言程序的結構C語言程序的結構特點:4.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工作申請書的組成部分
- 施工員實習申請書
- 農村重點優(yōu)撫對象申請書
- 河池公共租賃房申請書
- 宿管科腿部申請書
- 六百字大學入團申請書
- 弘訊科技AI創(chuàng)新
- 2025年旅游服務質量等級評定指南
- 加入自律會申請書500
- 配電房送電申請書
- 上海市徐匯區(qū)2026屆初三一模物理試題(含答案)
- 2026年遼寧機電職業(yè)技術學院單招職業(yè)技能考試題庫附答案解析
- 春節(jié)前安全教育培訓課件
- 工業(yè)AI《2025年》機器視覺應用測試題
- new共青團中央所屬單位2026年度高校畢業(yè)生公開招聘66人備考題庫及完整答案詳解
- 江蘇省蘇州市2024-2025學年高三上學期期末學業(yè)質量陽光指標調研物理試題(含答案)
- 頸托的使用課件
- 跨境電商物流解決方案方案模板
- 福建省福州市2024-2025學年高二上學期期末質量檢測化學試卷(含答案)
- 2026年及未來5年市場數據中國船舶智能化市場深度分析及投資戰(zhàn)略咨詢報告
- 鋼結構廠房拆除施工方案設計
評論
0/150
提交評論