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

下載本文檔

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

文檔簡介

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

課程目的:

使學生具有閱讀和編寫C語言程序的能力,為進一步為學習“面向?qū)ο蟪绦蛟O計”課程打下牢固的基礎。學習方法:

語法學習階段

循序漸進

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

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

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

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

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

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

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

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

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

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

用C語言編寫的程序稱為C語言源程序,簡稱為C程序。舉例說明C語言源程序結(jié)構(gòu)的特點:

了解組成一個C程序的基本結(jié)構(gòu)和書寫格式

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

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

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

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

溫馨提示

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

評論

0/150

提交評論