第1章C語言概述_第1頁
第1章C語言概述_第2頁
第1章C語言概述_第3頁
第1章C語言概述_第4頁
第1章C語言概述_第5頁
已閱讀5頁,還剩46頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

C語言程序設計計算機基礎教研室編寫使用教材:任課教師:曹惠雅Email:computer_hustwh@126.com學時安排:32(講課)/24(上機)考核方式:

課程目的:

使學生具有閱讀和編寫C語言程序的能力,為進一步為學習“面向對象程序設計”課程打下牢固的基礎。學習方法:

語法學習階段

循序漸進

練習寫較大的程序學習并提高編程技巧軟件工程參考書目:1、《C語言程序設計教程》(第二版)譚浩強等編高等教育出版社 2、《C語言程序設計》高福成等編清華大學出版社/北方交通大學出版社3、《C語言程序設計及應用》邢馥生等編高等教育出版社 第1章C語言概述第2章基本數據類型和運算符 第3章順序和選擇結構程序設計 第4章循環和跳轉結構程序設計第5章數組第6章函數和模塊設計第7章指針第8章結構體與聯合體第9章預處理和標準函數第10章文件第11章數據結構和數據抽象課程簡介5第一章C語言概述

程序設計語言是人與計算機進行信息交流的工具。程序設計要在一定的程序設計語言環境下進行。C語言是目前世界上最流行、使用最廣泛的高級程序設計語言之一。在設計操作系統等系統軟件和需要對硬件進行操作時,使用C語言編程明顯優于其他高級語言,許多大型應用軟件和系統軟件都是用C語言編寫的。C語言也是大學生學習程序設計選用最多的語言。1.1C語言的發展和特點1.2C語言的詞匯1.3C語言的程序結構1.4VisualC++6.0上機簡介*本章授課內容*1.1C語言的發展(自學)C語言問世于19世紀70年代初。早期的C語言用于UNIX系統。1978年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。同時由B.W.Kernighan和D.M.Ritchit合著了著名的《THECPROGRAMMINGLANGUAGE》一書,通常簡稱為《K&R》,也有人稱之為《K&R》標準。隨著微型計算機的日益普及,出現了許多C語言版本。1983年美國國家標準研究所(AmericanNationalStandardsInstitute,ANSI)為C語言制定了第一個ANSI標準,稱為ANSIC。1987年美國國家標準研究所又公布了新的C語言標準,稱為87ANSIC。這個標準在1989年被國際標準化(ISO)組織采用,被稱為ANSI/ISOStandardC(即C89)。BrianW.Kernighian和DennisM.Ritchie根據這個標準,重寫了他們的經典著作,并發表了《TheCProgrammingLanguage,SecondEdition》。1.1C語言的發展1995年又為C語言增加了一些新的函數,使之具有C++的一些特征,使C89成為C++的子集。1999年推出的C99在基本保留C語言特征的基礎上,增加了一系列面向對象的新特征。C語言也就從面向過程的語言發展成為面向對象的語言。C語言是C++的基礎,C++語言和C語言在很多方面是兼容的。本課程使用VisualC++6.0作為上機環境。1.1C語言的發展操作系統是各種軟件的核心與基礎。所有其它程序的運行都要在操作系統的控制下進行。高級語言源程序必須經過編譯系統處理(編譯),然后在操作系統控制下才能為計算機執行。在不同的操作系統下編譯和運行C語言程序的方式和命令是不同的。C語言的支持環境1.2C語言的主要特點1、C語言簡潔、緊湊、使用靈活、方便C語言一共只有32個關鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示,壓縮了不必要成分。2、運算符豐富C的運算符包括的范圍很廣泛,共有34個運算符。3、數據結構豐富C語言的數據類型有:整型、實型、字符型、數組類型、指針類型、結構體類型、共用體類型等,能用來實現各種復雜的數據類型的運算。4、具有結構化的控制語句程序代碼模塊化,用函數作為程序模塊以實現程序的模塊化,是結構化的理想模式語言,符合現代編程風格要求。5、C語法限制不太嚴格、程序設計自由度大

一般的高級語言語法檢查比較嚴,能夠檢查出幾乎所有的語法錯誤。而C語言放寬了語法檢查,允許程序編寫者有較大的自由度。6、C語言允許直接訪問物理地址

C語言既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、字節和地址進行操作,還可以用來編寫系統軟件。7、C語言程序生成代碼質量高

程序執行效率高,一般只比匯編程序生成的目標代碼效率低10へ20%。8、C語言適用范圍大,可移植性好

C語言編寫的程序基本上不作修改就可以用于各種型號的計算機和各種操作系統。1.2C語言的詞匯1.2.1C語言字符集定義:組成C語言源程序代碼的基本字符,它是構成C語言的基本元素。C語言使用的基本字符:⑴大小寫英文字符:A~Z,a~z⑵數字字符:0~9⑶特殊字符:+=-_(下劃線)()*&^%#!,.;:?’”~\|/<>{}[]⑷不可打印的字符:空格、換行符、制表符、響鈴符1.2.2關鍵字定義:具有特定含義的、專門用來說明C語言的特定成分的一類單詞。C語言的關鍵字都用小寫字母書寫,不能用大寫字母書寫。在C89標準中共有32個關鍵字:auto breakcasecharconstcontinuedefaultdodoubleelseenumexternfloatregistergotosignedintlongreturnforshortifsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile在新的C99標準中,又增加了5個關鍵字:_Bool_Complex_imaginaryinlinerestrict1.2.3標識符定義:在C語言中用于標識名字的有效字符序列C語言對標識符作如下規定:(1)標識符的第一個字符必須是英文字母或下劃線(2)如果第一個字符后面還有字符序列,則它應是英文字母、下劃線符或數字組成的序列。(3)標識符中的英文字母大小寫是有區別的。如標識符abc與標識符ABC不相同。試判斷下列標識符正確與否:abcdA? Abcd2abc _Abcdab _2a3yes/no πr

標識符的命名技巧“見名知義”

longth (表示長度)time (表示時間)pi (表示圓周率π)score(表示成績或分數)student(表示學生)1.2.4保留標識符

保留標識符是系統保留的一部分標識符,通常用于系統定義和標準庫函數的名字。例如,以下劃線開始的標識符通常用于定義系統變量。不能使用把這些標識符來定義自己的變量。雖然它們也是合法的標識符,但是用它們來做一般標識符可能會出現運行錯誤。1.2.5注釋在c語言程序中,注釋部分的格式:

/*注釋內容*/或//注釋內容例如:/*學生成績管理程序*///Mycprogram注釋不是程序代碼,只是對程序解釋說明的一種標注,用來向用戶提示或解釋程序的意義。程序編譯時會把注釋部分作為空白符跳過而不予處理。使用注釋需要注意三點:①注釋不允許嵌套使用例如:/*test1/*test2*/test3*/編譯器解釋時,只把/*test1/*test2*/看成注釋,后面的test3*/無法解釋②用”/*……*/”形式表示注釋時,可以跨行,也可以穿插在一行代碼中。3用”//……”形式注釋內容時,表示從//開始直到該行末尾的所有字符都屬于注釋,這種注釋不能跨行,也不能穿插在一行代碼中間。1.3C程序的結構

用C語言編寫的程序稱為C語言源程序,簡稱為C程序。舉例說明C語言源程序結構的特點:

了解組成一個C程序的基本結構和書寫格式

/*通過顯示器輸出goodmorning!*//*#include稱為文件包含命令,擴展名為.h的文件稱為頭文件*/【例1-1】編寫一個C語言程序,輸出“goodmorning!”。

程序如下:/*c1_1.c*/#include<stdio.h>voidmain(){printf("goodmorning!\n");}該程序的執行,會在顯示器上顯示輸出:goodmorning!函數類型(返回結果),void表示沒有返回值圓括號內定義函數參數函數首部,函數名稱main,即主函數。輸出函數:將輸出的內容送到顯示器顯示表示函數體的開始表示函數體的結束【例1.1.1】輸出一行信息的C程序。#include<stdio.h>voidmain(){printf(“good\n");printf(“morning!\n");}【例1.1.2】輸出一行信息的C程序。#include<stdio.h>voidmain(){printf(“goodm");printf("orning!\n");}說明:①C語言程序中可以使用注釋,但注釋內容不參與編譯。注釋部分的格式是:/*注釋內容*/或//注釋內容。②#include稱為文件包含命令,#include<stdio.h>是文件包含,其意義是把尖括號<>或引號""內指定的文件包含到本程序來,成為本程序的一部分。被包含的文件通常是由系統提供的,其擴展名為.h。因此也稱為頭文件或首部文件。C語言的頭文件中包括了各個標準庫函數的函數原型。因此,凡是在程序中調用一個庫函數時,都必須包含該函數原型所在的頭文件。詳細內容將在后面章節介紹。③main是主函數的函數名,表示這是一個主函數。每個完整的C語言源程序都必須有主函數,且只能有一個主函數(main函數),程序執行總是從main函數開始.函數體由一對大括弧{}括起來④printf函數是一個由系統定義的標準函數,可在程序中直接調用。其功能是將輸出的內容送到顯示器顯示。【例1-2】從鍵盤輸入一個學生兩門課(語文yw和數學sx)的成績,并求其平均成績。程序如下:#include<stdio.h>voidmain(){

intyw,sx,sum;/*定義三個整型變量*/

printf("Inputtwonumber:");/*顯示提示信息*/

scanf("%d%d",&yw,&sx);/*輸入x,y值*/sum=yw+sx;/*求出yw與sx之和,并賦于變量sum*/

printf(“average=%d\n”,sum/2);/*輸出平均成績*/}程序分析:⑴該程序中使用了yw、sx和sum三個變量,所有變量在使用之前必須先定義。⑵scanf函數是一個由系統定義的標準函數,可在程序中直接調用。它的功能是輸入變量yw和sx的值。&yw和&sx中“&”的含義是“取變量地址”,表示將從鍵盤輸入的2個值分別存放到地址標志為yw和sx的存儲單元中。⑶“%d”是輸入輸出數據的“格式說明”,用來指定輸入輸出時的數據類型和格式,%d表示“十進制整數類型”,在執行輸出時,屏幕上顯示一個十進制整數值。⑷sum=yw+sx為賦值表達式,表示將yw+sx之和賦值給sum變量所標識存儲單元。【例1-3】輸入兩個整數,進行比較后將較大數輸出。#include<stdio.h>voidmain(){intx,y,z;/*定義三個整型變量*/intmax(inta,intb);/*函數類型說明*/printf("Inputtwonumber:");/*顯示提示信息*/scanf("%d%d",&x,&y);/*輸入x,y值*/z=max(x,y);/*調用max函數*/printf("max=%d\n",z);/*將較大數輸出*/}intmax(inta,intb)/*定義max函數*/{intc;/*定義一個整型變量*/c=a>b?a:b;/*求出變量c的值*/returnc;/*將c的值返回到主調函數*/}程序分析:⑴本程序包括兩個函數:主函數main和自定義函數max。max函數的作用是將a和b中較大者的值賦于變量c;return語句將c的值返回該主調函數main。⑵在調用max函數時,將實際參數x和y的值分別對應傳給max函數中的形式參數a和b。⑶a>b?a:b是一個條件表達式,當a>b成立時,a>b?a:b的值為a的值;反之則為b的值。詳細內容在第二章中介紹。通過以上3個例子,概括C源程序的結構特點:①C語言程序為函數模塊結構,所有的C語言程序都是由一個或多個函數構成,其中main函數必須有且只能有一個。函數是C語言程序的基本單位。②C語言程序總是從主函數開始執行,當執行到調用函數的語句時,程序將控制轉移到被調函數中執行,執行結束后,再返回到調用函數繼續執行,直到程序執行結束為止。③C語言程序的函數是由編譯系統提供的標準函數(如printf()、scanf()等)和由用戶自己定義的函數。通過以上3個例子,概括C源程序的結構特點:(續)④源程序中的預處理命令通常放在源文件或源程序的最前面。⑤每一個說明和每一個語句都必須以分號結尾。但是預處理命令、函數頭和花括號“{”、“}”之后不能加分號。⑥標識符、關鍵字之間必須至少加一個空格以示分隔。若已有明顯的分隔符,也可不再加空格。⑦可以在程序的任何位置用/*注釋內容*/或//注釋內容的形式對程序或語句進行注釋。1.2.3書寫程序時應遵循的規則C語言程序的書寫格式非常自由,但從書寫清晰,便于閱讀,理解,維護的角度出發,建議在書寫C語言程序時應遵循以下幾個規則:①一個說明或一條語句占一行。②用{}括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,并單獨占一行。③低一層次的語句或說明可比高一層次的語句或說明縮進若干格后書寫,同一層次的語句或說明左對齊,以便看起來更加清晰,增加程序的可讀性。④函數與函數之間加空行,以便清楚分出程序中有幾個函數.在編程時應力求遵循上述規則,以養成良好的編程習慣。1.3VisualC++6.0上機簡介1.3.1關于VisualC++6.0

VC是微軟公司的產品,微軟公司是一家專門從事軟件開發、研制的公司。這套軟件使用了全然一新的集成開發環境,使用了一系列下拉式菜單,將文本編輯、程序編譯、連接以及程序運行一體化,大大方便了程序的開發。1.3.2VisualC++6.0集成環境上機步驟

(源程序的編輯、編譯、連接和運行)C語言是一種高級語言,存放C語言源程序的文件擴展名必須

溫馨提示

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

評論

0/150

提交評論