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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

課程目的:

使學(xué)生具有閱讀和編寫C語(yǔ)言程序的能力,為進(jìn)一步為學(xué)習(xí)“面向?qū)ο蟪绦蛟O(shè)計(jì)”課程打下牢固的基礎(chǔ)。學(xué)習(xí)方法:

語(yǔ)法學(xué)習(xí)階段

循序漸進(jìn)

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

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

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

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

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

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

標(biāo)識(shí)符的命名技巧“見名知義”

longth (表示長(zhǎng)度)time (表示時(shí)間)pi (表示圓周率π)score(表示成績(jī)或分?jǐn)?shù))student(表示學(xué)生)1.2.4保留標(biāo)識(shí)符

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

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

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

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

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

程序如下:/*c1_1.c*/#include<stdio.h>voidmain(){printf("goodmorning!\n");}該程序的執(zhí)行,會(huì)在顯示器上顯示輸出:goodmorning!函數(shù)類型(返回結(jié)果),void表示沒有返回值圓括號(hào)內(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語(yǔ)言程序中可以使用注釋,但注釋內(nèi)容不參與編譯。注釋部分的格式是:/*注釋內(nèi)容*/或//注釋內(nèi)容。②#include稱為文件包含命令,#include<stdio.h>是文件包含,其意義是把尖括號(hào)<>或引號(hào)""內(nèi)指定的文件包含到本程序來,成為本程序的一部分。被包含的文件通常是由系統(tǒng)提供的,其擴(kuò)展名為.h。因此也稱為頭文件或首部文件。C語(yǔ)言的頭文件中包括了各個(gè)標(biāo)準(zhǔn)庫(kù)函數(shù)的函數(shù)原型。因此,凡是在程序中調(diào)用一個(gè)庫(kù)函數(shù)時(shí),都必須包含該函數(shù)原型所在的頭文件。詳細(xì)內(nèi)容將在后面章節(jié)介紹。③main是主函數(shù)的函數(shù)名,表示這是一個(gè)主函數(shù)。每個(gè)完整的C語(yǔ)言源程序都必須有主函數(shù),且只能有一個(gè)主函數(shù)(main函數(shù)),程序執(zhí)行總是從main函數(shù)開始.函數(shù)體由一對(duì)大括弧{}括起來④printf函數(shù)是一個(gè)由系統(tǒng)定義的標(biāo)準(zhǔn)函數(shù),可在程序中直接調(diào)用。其功能是將輸出的內(nèi)容送到顯示器顯示。【例1-2】從鍵盤輸入一個(gè)學(xué)生兩門課(語(yǔ)文yw和數(shù)學(xué)sx)的成績(jī),并求其平均成績(jī)。程序如下:#include<stdio.h>voidmain(){

intyw,sx,sum;/*定義三個(gè)整型變量*/

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

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

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論