中南大學c語言(陳老師)第1章-引言_第1頁
中南大學c語言(陳老師)第1章-引言_第2頁
中南大學c語言(陳老師)第1章-引言_第3頁
中南大學c語言(陳老師)第1章-引言_第4頁
中南大學c語言(陳老師)第1章-引言_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言程序設(shè)計

陳曉方

中南大學信息科學與工程學院1雷琪(leiqi@)2023/2/4

中南大學信息科學與工程學院課程目標熟悉TurboC的上機操作環(huán)境C語言的基本概念會讀、會編、會調(diào)試C語言多上機實踐2C語言程序設(shè)計

第一章引言

陳曉方

中南大學信息科學與工程學院32023/2/4

中南大學信息科學與工程學院目錄C程序的執(zhí)行和集成開發(fā)環(huán)境C程序格式和結(jié)構(gòu)特點C語言特點C語言發(fā)展歷史簡單C語言程序4什么是計算機程序?程序:一組計算機能識別和執(zhí)行的指令只要讓計算機執(zhí)行這個程序,計算機就會自動地、有條不紊地進行工作計算機的一切操作都是由程序控制的,離開程序,計算機將一事無成1.1C語言發(fā)展歷史2023/2/4

中南大學信息科學與工程學院5程序設(shè)計語言的發(fā)展機器語言匯編語言高級語言面向過程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加

10010000減用助記符號描述的指令系統(tǒng)如ADDA,B面向機器的語言程序設(shè)計是數(shù)據(jù)被加工的過程:結(jié)構(gòu)化語言與非結(jié)構(gòu)化語言客觀世界可以分類,對象是類的實例對象是數(shù)據(jù)和方法的封裝對象間通過發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計關(guān)鍵是定義類,并由類派生對像1.1C語言發(fā)展歷史2023/2/4

中南大學信息科學與工程學院自然語言和數(shù)學語言6產(chǎn)生背景:最初的C語言只是為描述和實現(xiàn)UNIX操作系統(tǒng)提供一種工作語言而設(shè)計的。產(chǎn)生過程時間:1972~1973地點:美國貝爾實驗室目的:UNIX操作系統(tǒng)設(shè)計人:Ken.Thompson和Dennis.M.RitchieC標準標準C:K&R合著《TheCProgrammingLanguage》ANSIC:1983年87ANSIC:1987年1.1C語言發(fā)展歷史2023/2/4

中南大學信息科學與工程學院BCPL語言B語言C語言精練、接近硬件,但過于簡單,無數(shù)據(jù)類型具有多種數(shù)據(jù)類型7語言簡潔、緊湊、靈活運算符豐富數(shù)據(jù)結(jié)構(gòu)類型豐富具有結(jié)構(gòu)化的控制語句語法限制不太嚴格,程序設(shè)計自由度大直接訪問物理地址,直接操作硬件生成目標代碼質(zhì)量高可移植性好<>>>>>1.2C語言特點2023/2/4

中南大學信息科學與工程學院>>832個關(guān)鍵字:(由系統(tǒng)定義,不能重作其它定義)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile1.2C語言特點<2023/2/4

中南大學信息科學與工程學院99種控制語句 if()~else~ for()~ while()~

do~while() continue break switch

goto return1.2C語言特點返回2023/2/4

中南大學信息科學與工程學院1034種運算符:

算術(shù)運算符:+-*/%++--

關(guān)系運算符:<<===>>=!=

邏輯運算符:!&&||

位運算符:<<>>~|^&

賦值運算符:=及其擴展

條件運算符:?:

逗號運算符:,

指針運算符:*&

求字節(jié)數(shù):sizeof

強制類型轉(zhuǎn)換:(類型)

分量運算符:.->

下標運算符:[]

其它:()-1.2C語言特點返回2023/2/4

中南大學信息科學與工程學院11基本類型構(gòu)造類型指針類型:能用來實現(xiàn)各種復雜的數(shù)據(jù)結(jié)構(gòu)(如鏈表、樹、棧等)的運算。空類型void定義類型typedef數(shù)值類型字符類型char枚舉類型enum整型浮點型單精度型float雙精度型double短整型short長整型long整型int數(shù)組結(jié)構(gòu)體struct共用體unionC數(shù)據(jù)類型:1.2C語言特點返回2023/2/4

中南大學信息科學與工程學院12

對數(shù)組下標越界不做檢查

對變量的類型使用比較靈活,例如,整型量與字符型數(shù)據(jù)可以通用C語言允許程序編寫者有較大的自由度,因此放寬了語法檢查1.2C語言特點2023/2/4

中南大學信息科學與工程學院返回13C的編譯系統(tǒng)簡潔,很容易移植到新系統(tǒng)

在新系統(tǒng)上運行時,可直接編譯“標準鏈接庫”中的大部分功能,不需要修改源代碼

幾乎所有計算機系統(tǒng)都可以使用C語言1.2C語言特點2023/2/4

中南大學信息科學與工程學院返回14152023/2/4

中南大學信息科學與工程學院1.3

簡單的C語言程序介紹/*example1.1Sayhellototheworld#include<stdio.h>main(){

printf(”HelloWorld”);}162023/2/4

中南大學信息科學與工程學院1.3

簡單的C語言程序介紹/*example1.2calculatethecos(x)*/#include<stdio.h>#include<math.h>main(){

doublex,s;

printf(”inputnumber”);

scanf(“%lf”,&x);s=cos(x);

printf(”cos(%lf)is%if\n",x,s);}172023/2/4

中南大學信息科學與工程學院1.3

簡單的C語言程序介紹/*example1.3calculatethesumofaandb*/#include<stdio.h>/*Thisisthemainprogram*/main(){

int

a,b,c;

printf(”Pleaseinputvalueofaandb:\n”);

scanf(“%d%d”,&a,&b);c=add(a,b);

printf(”sum=%d\n",c);}/*Thisfunctioncalculatesthesumofxandy*/int

add(int

x,int

y){

return(x+y);}1.4

C程序的結(jié)構(gòu)一個C語言程序包含以下幾個部分:文件包含部分預處理部分變量說明部分函數(shù)原型聲明部分主函數(shù)部分函數(shù)定義部分關(guān)于結(jié)構(gòu)的說明:并不是所有C語言程序都包含6個部分C語言程序后綴為.c主函數(shù)形式:main(){

變量說明部分

程序語句部分}2023/2/4

中南大學信息科學與工程學院18/*example1.1ThefirstCProgram*/#include<stdio.h>intmain(){

printf(“Hello,World!”);return0;}注釋編譯預處理函數(shù)語句輸出:

Hello,World!1.4

C程序的結(jié)構(gòu)2023/2/4

中南大學信息科學與工程學院19例

求兩個整數(shù)之和。解題思路:設(shè)置3個變量a和b用來存放兩個整數(shù)sum用來存放和數(shù)用賦值運算符“=”把結(jié)果傳送給sum2023/2/4

中南大學信息科學與工程學院20#include<stdio.h>intmain(){

int

a,b,sum;a=123;b=456;sum=a+b;

printf(”sumis%d\n”,sum);return0;}定義整型變量a,b,sum對變量a,b賦值將a與b的和賦給sum21#include<stdio.h>intmain(){

int

a,b,sum;a=123;b=456;sum=a+b;

printf(”sumis%d\n”,sum);return0;}用sum的值替代希望輸出的字符22例

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

中南大學信息科學與工程學院23#include<stdio.h>intmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);return0;}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}主函數(shù)max函數(shù)24#include<stdio.h>intmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);return0;}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}將x和y中較大者值返回給主函數(shù)25#include<stdio.h>intmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);return0;}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}26#include<stdio.h>intmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);return0;}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}因max函數(shù)的定義在main函數(shù)之后,需聲明27#include<stdio.h>intmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);return0;}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}輸入函數(shù)28#include<stdio.h>intmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);return0;}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}輸入語句29#include<stdio.h>intmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);return0;}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}輸入的數(shù)據(jù)放到a,b中輸入格式a的地址30#include<stdio.h>intmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);return0;}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}調(diào)用max函數(shù)31#include<stdio.h>intmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);return0;}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}858832#include<stdio.h>intmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);return0;}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}858833#include<stdio.h>intmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);return0;}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}實際參數(shù)形式參數(shù)34習慣用小寫字母,大小寫敏感不使用行號,無程序行概念可使用空行和空格常用鋸齒形書寫格式main(){

……………….………………

…………..…………..

……………….

………………………….

……………….………………..}main(){

inti,j,sum;sum=0;

for(i=1;i<10;i++){

for(j=1;j<10;j++){sum+=i*j;}}

printf(“%d\n”,sum);}優(yōu)秀程序員的素質(zhì)之一:使用TAB縮進{}對齊有足夠的注釋有合適的空行1.4

C程序格式和結(jié)構(gòu)特點2023/2/4

中南大學信息科學與工程學院35函數(shù)與主函數(shù)程序由一個或多個函數(shù)組成必須有且只能有一個主函數(shù)main()程序執(zhí)行從main開始,在main中結(jié)束,其它函數(shù)通過嵌套調(diào)用得以執(zhí)行。程序語句C程序由語句組成用“;”作為語句終止符注釋/**/為注釋,不能嵌套不產(chǎn)生編譯代碼例:/*Thisisthemain/*ofexample1.1*/*/非法編譯預處理命令1.4

C程序結(jié)構(gòu)特點2023/2/4

中南大學信息科學與工程學院36編輯鏈接編譯執(zhí)行C程序開發(fā)步驟file.exe程序代碼的錄入,生成源程序*.c通過詞法分析器、語法分析器和代碼生成器,翻譯生成目標程序*.obj與其它目標程序或庫鏈接裝配,生成可執(zhí)行程序*.exe1.5

C程序設(shè)計語言的執(zhí)行2023/2/4

中南大學信息科學與工程學院371.6

C程序的集成開發(fā)環(huán)境TurboC2.0的啟動TurboC的集成開發(fā)環(huán)境確立TC工作環(huán)境調(diào)試C程序的步驟2023/2/4

中南大學信息科學與工程學院38【命令提示符】窗口TurboC2.0的啟動2023/2/4

中南大學信息科學與工程學院39TurboC2.0的啟動TurboC2.0開始界面2023/2/4

中南大學信息科學與工程學院40TurboC的集成開發(fā)環(huán)境集成環(huán)境分為四個部分:主菜單程序編輯窗口編譯信息窗口功能鍵提示行。程序的編輯、編譯、調(diào)試、連接以及運行都將在這個主屏幕中進行。通過主菜單可以選擇TurboC集成環(huán)境所提供的各項功能。同時,使用鍵盤上的↑、↓、←、→(上、下、左、右)鍵可以選擇菜單條中所需要的菜單項,被選中的項反向顯示。>>2023/2/4

中南大學信息科學與工程學院41TurboC2.0開始界面主菜單區(qū)編輯區(qū)編譯信息功能鍵提示TurboC的集成開發(fā)環(huán)境返回2023/2/4

中南大學信息科學與工程學院42文件(File)菜單

文件菜單提供存取文件的功能,含有9個下拉子菜單,分別如下:Load裝入文件Pick顯示最近裝入過的最后9個文件的列表New編輯新文件,文件名為NONAME.CSave將正在編輯的文件存盤Writeto將正在編輯的文件改名存盤Directory顯示當前工作目錄的內(nèi)容Changedir顯示當前工作目錄的路徑名,允許把它改為另一個名字OSshell暫時退回到DOS環(huán)境,鍵入EXIT命令返回TurboCQuit退出TurboC,返回DOS系統(tǒng)2023/2/4

中南大學信息科學與工程學院43編輯(Edit)菜單編輯菜單提供輸入和編輯程序的功能,不含下拉子菜單。2023/2/4

中南大學信息科學與工程學院44運行(Run)菜單運行菜單提供運行和調(diào)試程序的功能,含有6個下拉子菜單,常用的有:Run編譯、連接和運行正在編輯的源程序Userscreen查看程序運行時所產(chǎn)生的輸出屏幕2023/2/4

中南大學信息科學與工程學院45編譯(Compile)菜單編譯菜單提供編譯和連接目標程序的功能,含有6個下拉子菜單,常用的有:MakeEXEfile直接將源程序編譯和連接成可執(zhí)行文件

LinkEXEfile連接當前的OBJ文件和庫文件

PrimaryCfile指定待編譯的主文件,而不是當前編輯的文件

Getinfo顯示當前對話框的信息2023/2/4

溫馨提示

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

評論

0/150

提交評論