第一章: C語(yǔ)言概論
C語(yǔ)言的發(fā)展過程
C語(yǔ)言是在70年代初問世的。一九七八年由美國(guó)電話電報(bào)公司(AT&T)貝爾實(shí)驗(yàn)室正式發(fā)表了C語(yǔ)言。同時(shí)由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROGRAMMING LANGUAGE”一書。通常簡(jiǎn)稱為《K&R》,也有人稱之為《K&R》標(biāo)準(zhǔn)。但是,在《K&R》中并沒有定義一個(gè)完整的標(biāo)準(zhǔn)C語(yǔ)言,后來由美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì)在此基礎(chǔ)上制定了一個(gè)C 語(yǔ)言標(biāo)準(zhǔn),于一九八三年發(fā)表。通常稱之為ANSI C。
當(dāng)代最優(yōu)秀的程序設(shè)計(jì)語(yǔ)言
早期的C語(yǔ)言主要是用于UNIX系統(tǒng)。由于C語(yǔ)言的強(qiáng)大功能和各方面的優(yōu)點(diǎn)逐漸為人們認(rèn)識(shí),到了八十年代,C開始進(jìn)入其它操作系統(tǒng),并很快在各類大、中、小和微型計(jì)算機(jī)上得到了廣泛的使用。成為當(dāng)代最優(yōu)秀的程序設(shè)計(jì)語(yǔ)言之一。
C語(yǔ)言的特點(diǎn)
C語(yǔ)言是一種結(jié)構(gòu)化語(yǔ)言。它層次清晰,便于按模塊化方式組織程序,易于調(diào)試和維護(hù)。C語(yǔ)言的表現(xiàn)能力和處理能力極強(qiáng)。它不僅具有豐富的運(yùn)算符和數(shù)據(jù)類型,便于實(shí)現(xiàn)各類復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。它還可以直接訪問內(nèi)存的物理地址,進(jìn)行位(bit)一級(jí)的操作。由于C語(yǔ)言實(shí)現(xiàn)了對(duì)硬件的編程操作,因此C語(yǔ)言集高級(jí)語(yǔ)言和低級(jí)語(yǔ)言的功能于一體。既可用于系統(tǒng)軟件的開發(fā),也適合于應(yīng)用軟件的開發(fā)。此外,C語(yǔ)言還具有效率高,可移植性強(qiáng)等特點(diǎn)。因此廣泛地移植到了各類各型計(jì)算機(jī)上,從而形成了多種版本的C語(yǔ)言。
C語(yǔ)言版本
目前最流行的C語(yǔ)言有以下幾種:
·Microsoft C 或稱 MS C
·Borland Turbo C 或稱 Turbo C
·AT&T C
這些C語(yǔ)言版本不僅實(shí)現(xiàn)了ANSI C標(biāo)準(zhǔn),而且在此基礎(chǔ)上各自作了一些擴(kuò)充,使之更加方便、完美。
面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言
在C的基礎(chǔ)上,一九八三年又由貝爾實(shí)驗(yàn)室的Bjarne Strou-strup推出了C++。C++進(jìn)一步擴(kuò)充和完善了C語(yǔ)言,成為一種面向 對(duì)象的程序設(shè)計(jì)語(yǔ)言。C++目前流行的最新版本是Borland C++4.5,=Symantec C++6.1,和Microsoft VisualC++ 2.0.C++提出了一些更為深入的概念,它所支持的這些面向?qū)ο蟮母拍钊菀讓栴}空間直接地映射到程序空間,為程序員提供了一種與傳統(tǒng)結(jié)構(gòu)程序設(shè)計(jì)不同的思維方式和編程方法。因而也增加了整個(gè)語(yǔ)言的復(fù)雜性,掌握起來有一定難度。
C和C++
但是,C是C++的基礎(chǔ),C++語(yǔ)言和C語(yǔ)言在很多方面是兼容的。因此,掌握了C語(yǔ)言,再進(jìn)一步學(xué)習(xí)C++就能以一種熟悉的語(yǔ)法來學(xué)習(xí)面向?qū)ο蟮恼Z(yǔ)言,從而達(dá)到事半功倍的目的。
C源程序的結(jié)構(gòu)特點(diǎn)
為了說明C語(yǔ)言源程序結(jié)構(gòu)的特點(diǎn),先看以下幾個(gè)程序。這幾個(gè)程 序由簡(jiǎn)到難,表現(xiàn)了C語(yǔ)言源程序在組成結(jié)構(gòu)上的特點(diǎn)。雖然有關(guān)內(nèi)容還未介紹,但可從這些例子中了解到組成一個(gè)C源程序的基本部分和書寫格式。
main()
{
printf("c語(yǔ)言世界www.vcok.com,您好!\n");
}
main是主函數(shù)的函數(shù)名,表示這是一個(gè)主函數(shù)。每一個(gè)C源程序都必須有,且只能有一個(gè)主函數(shù)(main函數(shù))。函數(shù)調(diào)用語(yǔ)句,printf函數(shù)的功能是把要輸出的內(nèi)容送到顯示器去顯示。printf函數(shù)是一個(gè)由系統(tǒng)定義的標(biāo)準(zhǔn)函數(shù),可在程序中直接調(diào)用。
#include "stdio.h"
#include "math.h"
main()
{
double x,s;
printf("input number:\n");
scanf("%lf",&x);
s=sin(x);
printf("sine of %lf is %lf\n",x,s);
}
每行注釋
include稱為文件包含命令擴(kuò)展名為.h的文件也稱為頭文件或首部文件。
定義兩個(gè)實(shí)數(shù)變量,以被后面程序使用。
顯示提示信息。
從鍵盤獲得一個(gè)實(shí)數(shù)x。
求x的正弦,并把它賦給變量s。
顯示程序運(yùn)算結(jié)果。
main函數(shù)結(jié)束。
程序的功能是從鍵盤輸入一個(gè)數(shù)x,求x的正弦值,然后輸出結(jié)果。在main()之前的兩行稱為預(yù)處理命令(詳見后面)。預(yù)處理命令還有其它幾種,這里的include 稱為文件包含命令,其意義是把尖括號(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ù)原型所在的頭文件。在本例中,使用了三個(gè)庫(kù)函數(shù):輸入函數(shù)scanf,正弦函數(shù)sin,輸出函數(shù)printf.sin函數(shù)是數(shù)學(xué)函數(shù),其頭文件為math.h文件,因此在程序的主函數(shù)前用include命令包含了math.h.scanf和printf是標(biāo)準(zhǔn)輸入輸出函數(shù),其頭文件為stdio.h,在主函數(shù)前也用include命令包含了stdio.h文件。
需要說明的是,C語(yǔ)言規(guī)定對(duì)scanf和printf這兩個(gè)函數(shù)可以省去對(duì)其頭文件的包含命令。所以在本例中也可以刪去第二行的包含命令#include。同樣,在例1.1中使用了printf函數(shù),也省略了包含命令。
在例題中的主函數(shù)體中又分為兩部分,一部分為說明部分,另一部分執(zhí)行部分。說明是指變量的類型說明。例題中未使用任何變量,因此無說明部分。C語(yǔ)言規(guī)定,源程序中所有用到的變量都必須先說明,后使用,否則將會(huì)出錯(cuò)。這一點(diǎn)是編譯型高級(jí)程序設(shè)計(jì)語(yǔ)言的一個(gè)特點(diǎn),與解釋型的BASIC語(yǔ)言是不同的。說明部分是C源程序結(jié)構(gòu)中很重要的組成部分。本例中使用了兩個(gè)變量x,s,用來表示輸入的自變量和sin函數(shù)值。由于sin函數(shù)要求這兩個(gè)量必須是雙精度浮點(diǎn)型,故用類型說明符double來說明這兩個(gè)變量。說明部分后的四行為執(zhí)行部分或稱為執(zhí)行語(yǔ)句部分,用以完成程序的功能。執(zhí)行部分的第一行是輸出語(yǔ)句,調(diào)用printf函數(shù)在顯示器上輸出提示字符串,請(qǐng)操作人員輸入自變量x的值。第二行為輸入語(yǔ)句,調(diào)用scanf函數(shù),接受鍵盤上輸入的數(shù)并存入變量x中。第三行是調(diào)用sin函數(shù)并把函數(shù)值送到變量s中。第四行是用printf 函數(shù)輸出變量s的值,即x的正弦值。程序結(jié)束。
printf("input number:\n");
scanf("%lf",'C10F10&x);
s=sin(x);
printf("sine of %lf is %lf\n",'C10F10x,s);
運(yùn)行本程序時(shí),首先在顯示器屏幕上給出提示串input number,這是由執(zhí)行部分的第一行完成的。用戶在提示下從鍵盤上鍵入某一數(shù),如5,按下回車鍵,接著在屏幕上給出計(jì)算結(jié)果。
相關(guān)推薦:
2012年計(jì)算機(jī)等考四級(jí)數(shù)據(jù)庫(kù)工程師備考筆記匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |