C語言程序設計1 - zhuyi.20140215_第1頁
C語言程序設計1 - zhuyi.20140215_第2頁
C語言程序設計1 - zhuyi.20140215_第3頁
C語言程序設計1 - zhuyi.20140215_第4頁
C語言程序設計1 - zhuyi.20140215_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1章C語言概述1.1計算機語言與結構化程序設計1.2C語言的發(fā)展歷史和特點1.3C語言程序的基本結構和執(zhí)行過程1.4C語言的字符集和標識符5/13/20241《C語言程序設計》-第一章1.1計算機語言與結構化程序設計1.1.1計算機語言1.1.2結構化程序設計5/13/20242《C語言程序設計》-第一章第一代:機器語言(低級語言):面向機器、可移植性差、效率高、不方便編程第二代:匯編語言第三代:高級語言:面向程序員、可移植性好、執(zhí)行效率低、便于編程第四代:面向對象式語言1.1.1計算機語言5/13/20243《C語言程序設計》-第一章1.1.2結構化程序設計1.三種基本結構 結構化程序由三種基本控制結構組成:

順序結構、選擇結構和循環(huán)結構。 三種基本結構的流程圖:PAB真假選擇結構AB順序結構A真P假循環(huán)結構三種基本控制結構流程圖5/13/20244《C語言程序設計》-第一章

2.結構化程序設計的原則

自頂向下,逐步求精,模塊化設計,結構化編碼;

有限制地使用goto

轉移語句;以控制結構為單位;采用結構化程序設計語言書寫程序;合理采用順序、選擇和循環(huán)三種基本結構來設計程序;

5/13/20245《C語言程序設計》-第一章例:求3個數中的最大數。1)給出程序的總體設計算法。s1:給定或輸入3個數a、b、c。s2:在a、b、c中找出大數賦給max。s3:輸出max。2)對s2需進一步細化,即求出最大數的設計算法。s21:從a、b中取出大數賦給max。s22:再用max與c進行比較,取兩者大的值賦給max。5/13/20246《C語言程序設計》-第一章#include<stdio.h>/*文件包含*/voidmain()/*定義主函數*/{inta,b,c,max;a=3;b=7;c=5;/*s1*/if(a>b)/*s21*/max=a;elsemax=b;if(max<c)/*s22*/max=c;printf("%d\n",max);/*s3*/}5/13/20247《C語言程序設計》-第一章1.2.1C語言發(fā)展歷史ALGOL語言:1960,面向問題高級語言,不宜寫系統(tǒng)程序CPL語言:1963,英劍橋,能夠作較低層次的操作,但規(guī)模較大,難以實現BCPL語言:(Basiccombinedprogramminglanguage)1967,英劍橋MartinRichards改進CPLB語言:1970,美貝爾實驗室Thompson簡化BCPL,用B寫UNIX操作系統(tǒng)C語言:1972,貝爾實驗室,Ritchie和Kernighan設計,保持B和BCPL的精煉與接近硬件,克服其簡單和數據無類型的缺點。描述和實現UNIX的工具語言1977,《可移植C語言編譯程序》,C與UNIX相輔相成1978,Kernighan和Richie,《TheCProgrammingLanguage》,標準C語言1983,美國國家標準化協會(ANSI),ANSIC1990,國際標準化組織(ISO)通過

1.2C語言的發(fā)展歷史和特點

5/13/20248《C語言程序設計》-第一章5254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC++JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula67Smalltalk80BASICANSI-BASICQBASICVBFORTRAN90<>5/13/20249《C語言程序設計》-第一章1.2.2C語言特點

(1)數據類型豐富(2)結構化語言(3)具有豐富的運算符號(4)高效率的目標代碼(5)有預處理能力(6)可移植性好(7)語法不嚴格,自由度大5/13/202410《C語言程序設計》-第一章9種控制語句:if()~else~for()~while()~do~while()continuebreakswitchgotoreturn<5/13/202411《C語言程序設計》-第一章34種運算符:算術運算符:+-*/%++--關系運算符:<<===>>=!=邏輯運算符:!&&||位運算符:<<>>~|^&賦值運算符:=及其擴展條件運算符:?:逗號運算符:,指針運算符:*&求字節(jié)數:sizeof強制類型轉換:(類型)分量運算符:.->下標運算符:[]其它:()-<5/13/202412《C語言程序設計》-第一章C數據類型基本類型構造類型指針類型空類型void定義類型typedef數值類型字符類型char枚舉類型enum整型浮點型單精度型float雙精度型double短整型short長整型long整型int數組結構體struct共用體union<<5/13/202413《C語言程序設計》-第一章1.3C語言程序的基本結構和執(zhí)行過程1.3.1C語言程序的簡單實例

main()/*主函數*/{inta,b,sum;/*定義a、b和sum三個變量*/a=3;b=4;/*為a,b賦值*/sum=add(a,b);/*調用函數add,將得到的值賦給變量sum*/printf("sum=a+b=%d\n",sum);/*屏幕輸出sum變量的值*/}intadd(intx,inty)/*定義add函數和形式參數x,y*/{intz;/*定義z變量*/z=x+y;/*變量x與y相加的和送給z*/return(z);/*返回z的值送給add*/}運行結果:sum=a+b=75/13/202414《C語言程序設計》-第一章結構特點1.函數型語言,函數是C程序的基本單位。

函數與主函數程序由一個或多個函數組成必須有且只能有一個主函數main()程序執(zhí)行從main開始,在main中結束,其它函數通過嵌套調用得以執(zhí)行。5/13/202415《C語言程序設計》-第一章結構特點2.函數由說明部分和函數體兩部分組成函數的組成:

說明部分:函數類型函數名(參數類型參數名,……)例:intadd(intx,inty)或intadd(x,y)intx,y;

函數體:{變量定義;執(zhí)行語句;}5/13/202416《C語言程序設計》-第一章3.程序語句C程序由語句組成用“;”作為語句終止符4.注釋/**/為注釋,不產生編譯代碼可出現在程序的任何位置可以單獨占一行,也可占據多行不能嵌套<>例:/*Thisisthemain/*ofexample1.1*/*/非法5/13/202417《C語言程序設計》-第一章5.格式特點習慣用小寫字母,大小寫敏感不使用行號,無程序行概念可使用空行和空格常用鋸齒形書寫格式<>main(){

……………….………………

…………..…………..

……………….

………………………….

……………….………………..}main(){

inti,j,sum;sum=0;for(i=1;i<10;i++){for(j=1;j<10;j++){sum+=i*j;}}printf(“%d\n”,sum);}優(yōu)秀程序員的素質之一:使用TAB縮進{}對齊有足夠的注釋有合適的空行5/13/202418《C語言程序設計》-第一章6.源程序中可以有編譯預處理命令

預處理命令通常放在源文件或源程序的最前面把<>或“”內指定的文件包含到本程序中頭文件包括了各個標準庫函數的函數原型凡在程序中調用一個庫函數,則就必須包含該函數原型所在的頭文件7.執(zhí)行從main開始,在main中結束5/13/202419《C語言程序設計》-第一章【例1.2】最小的C程序例。這是一個最小的C程序,什么也不做,但這是符合C語言函數規(guī)定的程序,有main()組成的函數的首部和兩個大括號中無任何內容的函數體,在計算機上運行時沒有錯誤,因為函數體是空的,這個C程序什么也不做。main(

){}5/13/202420《C語言程序設計》-第一章/*example1.1ThefirstCProgram*/#include<stdio.h>main(){printf(“Hello,World!”);}>注釋編譯預處理函數語句輸出:Hello,World!【例1.3】函數C程序例。5/13/202421《C語言程序設計》-第一章#include<stdio.h>

/*文件包含*/intmin(intx,inty)

/*函數說明*/main()/*主函數*/{inta,b,c;/*說明三個變量a,b和c*/printf("Inputtwointegers:");/*輸出一行提示信息*/scanf("%d,%d",&a,&b);/*鍵盤輸入兩個數值送給a和b變量*/c=min(a,b);/*調用min函數,運行結果送給c變量*/printf("min=%d",c);/*輸出c變量的值*/}intmin(intx,inty)/*定義min函數,x,y為形參*/{intz;if(x<y)z=x;/*條件語句:如果x小于y成立z=x,否則z=y*/elsez=y;return(z);/*將z的值返回,通過min帶回調用處*/}【例1.4】編寫C語言程序求鍵盤輸入的兩個數中較小的數,并且將其輸出到屏幕上。5/13/202422《C語言程序設計》-第一章C語言程序執(zhí)行過程編輯鏈接編譯運行程序代碼的錄入,生成源程序*.c語法分析查錯,翻譯生成目標程序*.obj與其它目標程序或庫鏈接裝配,生成可執(zhí)行程序*.exe5/13/202423《C語言程序設計》-第一章1.4C語言的字符集和標識符1.4.1基本符號集1.4.2標識符1.4.3預定義標識符5/13/202424《C語言程序設計》-第一章

1.4C語言的字符集和標識符1.4.1字符集(ASCII字符集)阿拉伯數字10個:0、1、2、…、9大小寫英文字母各26個:A,B,C,…,Z,a,b,c,…,z下劃線:_特殊符號:主要是運算符和操作符

空白字符

:空格符、制表符、換行符

5/13/202425《C語言程序設計》-第一章1.4.2標識符字符序列,用作常量、變量、函數、文件指針、類型的名字。用戶標識符

保留字/關鍵字

1.4.3預定義標識符5/13/202426《C語言程序設計》-第一章

用戶標識符:標識符定義:用來標識變量、常量、函數等的字符序列組成:只能由字母、數字、下劃線組成,且第一個字母必須是字母或下劃線大小寫敏感不能使用關鍵字長度:8個字符命名原則:見名知意不宜混淆如l與1,o與0例:判斷下列標識符號合法性sumSumM.D.JohndayDate3daysstudent_name#33lotus_1_2_3chara>b_above$123<>M.D.John3days#33char$123a>b5/13/202427《C語言程序設計》-第一章保留字/關鍵字

是編譯系統(tǒng)固有的,用做語句名、類型名的標識符。不允許作為用戶標識符使用。

1.4.3預定義標識符

允許用戶作其他其途,但將失去系統(tǒng)規(guī)定的原意。例define、include5/13/202428《C語言程序設計》-第一章小結1.C語言程序的組成特點C語言程序的組成特點如下:(1)一個C源程序由函數構成,其中至少包括一個主函數(main()函數)。(2)C程序總是由main()函數開始執(zhí)行。(3)分號“;”是C語句的一部分。(4)一行內可寫多條語句,且語句中的空格和回車符均可忽略不計。(5)程序的注釋部分在/*……*/之間,/和*之間不允許留有空格。注釋允許出現在程序中的任何位置上。5/13/202429《C語言程序設計》-第一章2.標識符

C語言的標識符可分為保留字、預定義標識符和用戶標識符三類。用戶根據需要對C程序中用到的變量、符號常量、自定義函數或文件指針進行命名,形成標識符。C語言中,標識符的命名規(guī)則如下:(1)用戶標識符由英文字母、數字、下劃線組成;且第一個字符不能是數字,必須是字母或下劃線。(2)標識符大小寫字母不通用,保留字全部用小寫字母。(3)標識符中所允許包含的字符個數因不同的C編譯系統(tǒng)而有所不同,通??梢宰R別前面8個字符。5/13/202430《C語言程序設計》-第一章(4)大多數高級語言都規(guī)定用戶標識符必須以字母開始,而C中僅規(guī)定了不得用數字開始,因此以下劃線開始的數字也是正確的變量名。(5)C語言提供了大量的庫函數和頭文件,這些庫函數名和頭文件中定義的一些標識符都統(tǒng)稱為預定義標識符。C語言允許用戶定義的標識符和這些預定義標

溫馨提示

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

評論

0/150

提交評論