日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

自学c程序设计之路,谭浩强第五版,(一)程序设计与c语言

發(fā)布時間:2024/3/12 编程问答 71 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自学c程序设计之路,谭浩强第五版,(一)程序设计与c语言 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

由于本人提升技能需求,開始自學c語言程序設計,教材為《c程序設計》第五版譚浩強著。該系列為本人的學習筆記,記錄的是知識點與例題,學到哪里,更到哪里。也希望能對正在學c程序設計的朋友有幫助。

目錄

1,計算機程序

2,計算機語言

3,高級語言的發(fā)展

4,C語言的發(fā)展

5,C語言的特點

6,最簡單的C語言程序

7,注釋

8,C語言程序的結構

9,運行C程序的步驟與方法

10,程序設計的任務

?11,ASCII碼表

12,C語言編譯器


1,計算機程序

指令:可以被計算機理解并執(zhí)行的基本操作命令。?

程序:一組計算機能識別和執(zhí)行的指令。一個特定的指令序列用來完成一定的功能。

軟件:與計算機系統(tǒng)操作有關的計算機程序,規(guī)程,規(guī)則,以及可能有的文件,文檔及數(shù)據(jù)。

2,計算機語言

有一個人為計算機語言做出過巨大貢獻:數(shù)學家馮?諾依曼提出了重大的改進理論,主要有兩點:其一是電子計算機應該以二進制為運算基礎,其二是電子計算機應采用存儲程序方式工作,并且進一步明確指出了整個計算機的結構應由五個部分組成:運算器、控制器、存儲器、輸入裝置和輸出裝置。馮?諾依曼的這些理論的提出,解決了計算機的運算自動化的問題和速度配合問題,對后來計算機的發(fā)展起到了決定性的作用。直至今天,絕大部分的計算機還是采用馮?諾依曼方式工作。

第一代 機器語言 (machine language):

計算機能直接識別和接受的二進制代碼稱為機器指令。機器指令的集合就是該計算機的機器語言 (machine language)。特點:難學,難記,難檢查,難修改,難以推廣使用。依賴具體機器難以移植。

第二代 匯編語言(面向機器的程序設計語言):

機器語言的符號化。用英文字母和數(shù)字表示指令的符號語言。特點:相比機器語言簡單好記,但任然難以普及。匯編指令需通過匯編程序轉(zhuǎn)換為機器指令才能被計算機執(zhí)行。依賴具體機器難以移植。

第三代 高級語言(High-level programming language ):

高級語言更接近與人們習慣使用的自然語言和數(shù)學語言。特點:功能強大,不依賴于具體機器。用高級語言編寫的源程序需要通過編譯程序轉(zhuǎn)換為機器指令的目標程序。

3,高級語言的發(fā)展

非結構化語言→結構化語言→面向?qū)ο蟮恼Z言

規(guī)定:程序必須由具有良好特性的基本結構(順序結構,選擇結構,循環(huán)結構)構成,程序中的流程不允許隨意跳轉(zhuǎn),程序總是由上而下順序執(zhí)行各個基本結構。

特點:程序結構清晰,易于編寫,閱讀和維護。

4,C語言的發(fā)展

C 語言最早的原型是 ALGOL 60 1963 年,劍橋大學將其發(fā)展成為 CPL(Combined Programing Language)。1967 年,劍橋大學的 Matin Richards 對 CPL 語言進行了簡化,產(chǎn)生了 BCPL 語言。

1970 年,美國貝爾實驗室(Bell Labs)的 Ken Thompson 將 BCPL 進行了修改,并取名叫做 B 語言,意思是提取 CPL 的精華(Boiling CPL down to its basic good features)。并用 B 語言寫了第一個 UNIX 系統(tǒng)。

1973 年,AT&T 貝爾實驗室的 Dennis Ritchie(D.M.RITCHIE) 在 BCPL 和 B 語言的基礎上設計出了一種新的語言,取 BCPL 中的第二個字母為名,這就是大名鼎鼎的 C 語言。

隨后不久,UNIX 的內(nèi)核(Kernel) 和應用程序全部用 C 語言改寫,從此,C 語言成為 UNIX 環(huán)境下使用最廣泛的主流編程語言。

1978 年,Dennis Ritchie 和 Brian Kernighan 合作推出了《The C Programming Language》的第一版(按照慣例,經(jīng)典著作一定有簡稱,該著作簡稱為 K&R),書末的參考指南 (Reference Manual) 一節(jié)給出了當時 C 語言的完整定義,成為那時 C 語言事實上的標準,人們稱之為 K&R C。從這一年以后,C 語言被移植到了各種機型上,并受到了廣泛的支持,使 C 語言在當時的軟件開發(fā)中幾乎一統(tǒng)天下。

隨著 C 語言在多個領域的推廣、應用,一些新的特性不斷被各種編譯器實現(xiàn)并添加進來。于是,建立一個新的“無歧義、于具體平臺無關的 C 語言定義” 成為越來越重要的事情。1983 年,ASC X3(ANSI 屬下專門負責信息技術標準化的機構,現(xiàn)已改名為 INCITS)成立了一個專門的技術委員會 J11(J11 是委員會編號,全稱是 X3J11),負責起草關于 C 語言的標準草案。1989 年,草案被 ANSI 正式通過成為美國國家標準,被稱為 C89 標準。

隨后,《The C Programming Language》第二版開始出版發(fā)行,書中內(nèi)容根據(jù) ANSI C(C89)進行了更新。1990 年,在 ISO/IEC JTC1/SC22/WG14 (ISO/IEC 聯(lián)合技術第 I 委員會第 22 分委員會第 14 工作組) 的努力下,ISO 批準了 ANSI C 成為國際標準。于是 ISO C(又稱為 C90) 誕生了。除了標準文檔在印刷編排上的某些細節(jié)不同外,ISO C(C90) 和 ANSI C(C89) 在技術上完全一樣。

之后,ISO 在 1994、1996 年 分別出版了 C90 的技術勘誤文檔,更正了一些印刷錯誤,并在1995 年通過了一份 C90 的技術補充,對 C90 進行了微小的擴充,經(jīng)過擴充后的 ISO C 被稱為 C95。

1999 年,ANSI 和 ISO 又通過了最新版本的 C 語言標準和技術勘誤文檔,該標準被稱為 C99 。這基本上是目前關于 C 語言的最新、最權威的定義了。

現(xiàn)在,各種 C 編譯器都提供了 C89(C90) 的完整支持,對 C99 還只提供了部分支持,還有一部分提供了對某些 K&R C 風格的支持。

5,C語言的特點

1,語言簡潔,緊湊,使用方便,靈活。

2,運算符豐富。

3,數(shù)據(jù)類型豐富。

4,具有結構化的控制語句;用函數(shù)作為程序的模塊單位,便于實現(xiàn)程序的模塊化;C語言是完全模塊化和結構化的語言。

5,語法限制不太嚴格,程序設計自由度大。

6,允許直接訪問物理地址;能進行位(bit)操作;能實現(xiàn)匯編語言的大部分功能;可以直接對硬件進行操作;因此C語言既具有高級語言的功能,又具有低級語言的許多功能,可用來編寫系統(tǒng)軟件。

7,程序可移植性好。

8,生成目標代碼質(zhì)量高,程序執(zhí)行效率高。

6,最簡單的C語言程序

【例1.1】要求在屏幕上輸出:Hello world

解題思路:在主函數(shù)中用printf函數(shù)原樣輸出以上文字。

#include<stido.h> //這是編譯預處理指令 int main() //定義主函數(shù) { //函數(shù)開始的標志 printf("Hello world\n"); //輸出所指定的一行信息 return 0; //函數(shù)執(zhí)行完畢時返回函數(shù)0 } //函數(shù)結束的標志

輸出結果:

?程序分析:

main是函數(shù)的名字,表示“主函數(shù)”;每一個C語言程序都必須有一個main函數(shù)。

main前面的int表示此函數(shù)的類型是int類型(整型),即在執(zhí)行主函數(shù)后會得到一個值(即函數(shù)值),其值為整型。

return 0;的作用是當main函數(shù)執(zhí)行結束前將整數(shù)0作為函數(shù)值,返回到調(diào)用函數(shù)處。

函數(shù)體由花括號{}括起來。

printf是C編譯系統(tǒng)提供的函數(shù)庫中的輸出函數(shù)。printf函數(shù)中雙引號內(nèi)的字符串"Hello world"按原樣輸出。\n是換行符,即在輸出“Hello world”后,顯示屏的光標位置移到下一行的開頭。

每一個語句后都有一個分號,表示語句結束。

在使用函數(shù)庫中的輸出函數(shù)時,編譯系統(tǒng)要求程序提供有關此函數(shù)的信息,程序的第一行"#include<stido.h>"的作用就是用來提供這些信息的。stdio.h是系統(tǒng)提供的一個文件名,stdio是standard input & output的縮寫,文件后綴.h的意思是頭文件(header file),因為這些文件都是放在程序各文件模塊的開頭的。輸入輸出函數(shù)的相關信息已事先放在stdio.h文件中。

//表示此處到本行結束是"注釋",用來對程序有關部分進行必要的說明。在寫C程序時應當多用注釋,以方便自己和別人理解程序各部分的作用。在程序進行預編譯處理時將每個注釋替換成一個空格,因此在編譯時注釋部分不產(chǎn)生目標代碼,注釋對運行不起作用。注釋是給人看的,而不是讓計算機執(zhí)行的。

【例1.2】求兩個整數(shù)之和

解題思路:設置3個變量,a和b用來存放兩個整數(shù),sum用來存放和數(shù)。用賦值運算符"="把相加的結果傳送給sum。

#include<stdio.h> //這是編譯預處理指令 int main() //定義主函數(shù) { //函數(shù)開始int a, b,sum; //本行是程序的聲明部分,定義a,b,sum為整型變量a = 123; //對變量a進行賦值b = 456; //對變量b進行賦值sum = a + b; //進行a+b的運算,并把結果存在變量sum中printf("sum is %d\n",sum); //輸出結果return 0; //使函數(shù)值返回為0 } //程序結束

輸出結果:

?程序分析:

printf("sum is %d\n",sum);輸出時用sum的值取代%d。

?

printf("sum is %d\n",sum);printf函數(shù)圓括號內(nèi)有兩個參數(shù)。第一個參數(shù)是雙引號的內(nèi)容sum is %d\n,它是輸出格式字符串,作用是輸出用戶希望輸出的字符和輸出的格式。其中sum is是用戶希望輸出的字符,%d是指定的輸出格式,d表示用"十進制整數(shù)"形式輸出。圓括號內(nèi)第二個參數(shù)sum表示要輸出變量sum的值。在執(zhí)行printf函數(shù)時,將sum變量的值(以十進制整數(shù)表示)取代雙引號中的%d。

【例1.3】求兩個整數(shù)中的較大者

解題思路:用一個函數(shù)來實現(xiàn)求兩個整數(shù)中的較大者。在主函數(shù)中調(diào)用此函數(shù)并輸出結果。

#include <stdio.h> //主函數(shù) int main() //定義主函數(shù) { //主函數(shù)體開始 int max(int x,int y); //對被調(diào)用函數(shù)max的聲明 int a,b,c; //定義變量a,b,c scanf("%d,%d",&a,&b); //輸入變量a和b的值 c=max(a,b); //調(diào)用max函數(shù),將得到的值賦給c printf("max=%d\n",c); //輸出c的值 return 0; //返回函數(shù)值為0 } //主函數(shù)體結束 //求兩個整數(shù)中的較大者的max函數(shù) int max(int x,int y) //定義max函數(shù),函數(shù)值為整型, 形式參數(shù)x和y為整型 { int z; //max函數(shù)中的聲明部分,定義本函數(shù)中用到的變量z為整型 if(x>y) z=x; //若x>y成立,將x的值賦給變量z else z=y; //否則(即x>y不成立),將y的值賦給變量z return(z); //將z的值作為max函數(shù)值,返回到調(diào)用max函數(shù)的位置 }

程序分析:

本程序包括兩個函數(shù):1,主函數(shù)main;2, 被調(diào)用的函數(shù)max。 max函數(shù)的作用是將x和y中較大者的值 賦給變量z,最后通過return語句將z的 值作為max的函數(shù)值返回給調(diào)用max函 數(shù)的主函數(shù)。 scanf是輸入函數(shù)的名字(scanf和printf 都是C的標準輸入輸出函數(shù))。該scanf函數(shù)的作用是輸入變量a和b的值。

& ” 是地址符,&a 的含義是“變量 a 的地址”,&b 是“變量 b 的地址”。

執(zhí)行 scanf 函數(shù),從鍵盤讀入兩個整數(shù),放到變量 a 和 b 的地址,然后把這兩個整數(shù)分別賦給變量 a 和 b。

max(a,b)調(diào)用max函數(shù)。在調(diào)用時將 a和b作為max函數(shù)的實際參數(shù)的值分 別傳送給max函數(shù)中的形式參數(shù)x和y。

?

注意: 本例程序中兩個函數(shù)都有 return語句,請注意它們的異同。 兩個函數(shù)都定義為整型,都有函數(shù)值,都需要用return語句為函數(shù)指定返回值。 main函數(shù)中的return語句指定的返回 值一般為0。 max函數(shù)的返回值是max函數(shù)中求出的 兩數(shù)中的最大值z,只有通過return語 句才能把求出的z值作為函數(shù)的值并返 回調(diào)用它的main函數(shù)中。

7,注釋

C語言中,注釋有兩種類型:

單行注釋:

單行注釋通常用于對程序中的某一行代碼進行解釋,用”//”符號表示,后面為注釋的內(nèi)容。

多行注釋:

多行注釋就是注釋中的代碼,可以為多行,以符號”/“開頭,以符號”/”結尾。

注意:

在C語言中,有的注釋可以嵌套使用,有的不能嵌套。

多行注釋”/……/“中,可以嵌套單行注釋”//”。

多行注釋”/……/”中,不能嵌套多行注釋”/……/”。

8,C語言程序的結構

1,一個程序由一個或多個源程序文件組成,源程序文件包括:預處理指令、全局聲明、函數(shù)定義。

2,函數(shù)是C程序的主要組成部分。一個C語言程序是由一個或多個函數(shù)組成的,其中必須包含唯一 一個main函數(shù) 。程序中被調(diào)用的函數(shù)可以是系統(tǒng)提供的庫函數(shù),也可以是用戶根據(jù)需要自己編制設計的函數(shù)。

3,一個函數(shù)包括兩個部分:函數(shù)首部、函數(shù)體。

4,程序總是從 main 函數(shù)開始執(zhí)行的。

5,程序中要求計算機完成的操作是由函數(shù)中的 C 語句完成。

6,在每個數(shù)據(jù)聲明和語句的最后必須有一個分號。

7,C語言本身不提供輸入輸出語句,輸入輸出操作由函數(shù)完成。

8,程序應當包含注釋。

9,運行C程序的步驟與方法

10,程序設計的任務

?11,ASCII碼表

?

12,C語言編譯器

c語言最常用的編譯器有MicrosoftVisualC++、MyEclipse、TurboCgcc編譯器等。

本人用的Visual stdio2022,可在微軟商店下載。

如若安裝不成功可參考博客:visual studio 2019/2022 安裝時卡住,一直正在提取文件時的親測有效的解決方案_北游當南歸的博客-CSDN博客_visualstudio安裝卡住

總結

以上是生活随笔為你收集整理的自学c程序设计之路,谭浩强第五版,(一)程序设计与c语言的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。