




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語(yǔ)言程序設(shè)計(jì)
陳曉方
中南大學(xué)信息科學(xué)與工程學(xué)院1雷琪(leiqi@)2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院課程目標(biāo)熟悉TurboC的上機(jī)操作環(huán)境C語(yǔ)言的基本概念會(huì)讀、會(huì)編、會(huì)調(diào)試C語(yǔ)言多上機(jī)實(shí)踐2C語(yǔ)言程序設(shè)計(jì)
第一章引言
陳曉方
中南大學(xué)信息科學(xué)與工程學(xué)院32023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院目錄C程序的執(zhí)行和集成開(kāi)發(fā)環(huán)境C程序格式和結(jié)構(gòu)特點(diǎn)C語(yǔ)言特點(diǎn)C語(yǔ)言發(fā)展歷史簡(jiǎn)單C語(yǔ)言程序4什么是計(jì)算機(jī)程序?程序:一組計(jì)算機(jī)能識(shí)別和執(zhí)行的指令只要讓計(jì)算機(jī)執(zhí)行這個(gè)程序,計(jì)算機(jī)就會(huì)自動(dòng)地、有條不紊地進(jìn)行工作計(jì)算機(jī)的一切操作都是由程序控制的,離開(kāi)程序,計(jì)算機(jī)將一事無(wú)成1.1C語(yǔ)言發(fā)展歷史2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院5程序設(shè)計(jì)語(yǔ)言的發(fā)展機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向過(guò)程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加
10010000減用助記符號(hào)描述的指令系統(tǒng)如ADDA,B面向機(jī)器的語(yǔ)言程序設(shè)計(jì)是數(shù)據(jù)被加工的過(guò)程:結(jié)構(gòu)化語(yǔ)言與非結(jié)構(gòu)化語(yǔ)言客觀世界可以分類(lèi),對(duì)象是類(lèi)的實(shí)例對(duì)象是數(shù)據(jù)和方法的封裝對(duì)象間通過(guò)發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計(jì)關(guān)鍵是定義類(lèi),并由類(lèi)派生對(duì)像1.1C語(yǔ)言發(fā)展歷史2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院自然語(yǔ)言和數(shù)學(xué)語(yǔ)言6產(chǎn)生背景:最初的C語(yǔ)言只是為描述和實(shí)現(xiàn)UNIX操作系統(tǒng)提供一種工作語(yǔ)言而設(shè)計(jì)的。產(chǎn)生過(guò)程時(shí)間:1972~1973地點(diǎn):美國(guó)貝爾實(shí)驗(yàn)室目的:UNIX操作系統(tǒng)設(shè)計(jì)人:Ken.Thompson和Dennis.M.RitchieC標(biāo)準(zhǔn)標(biāo)準(zhǔn)C:K&R合著《TheCProgrammingLanguage》ANSIC:1983年87ANSIC:1987年1.1C語(yǔ)言發(fā)展歷史2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院BCPL語(yǔ)言B語(yǔ)言C語(yǔ)言精練、接近硬件,但過(guò)于簡(jiǎn)單,無(wú)數(shù)據(jù)類(lèi)型具有多種數(shù)據(jù)類(lèi)型7語(yǔ)言簡(jiǎn)潔、緊湊、靈活運(yùn)算符豐富數(shù)據(jù)結(jié)構(gòu)類(lèi)型豐富具有結(jié)構(gòu)化的控制語(yǔ)句語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大直接訪問(wèn)物理地址,直接操作硬件生成目標(biāo)代碼質(zhì)量高可移植性好<>>>>>1.2C語(yǔ)言特點(diǎn)2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院>>832個(gè)關(guān)鍵字:(由系統(tǒng)定義,不能重作其它定義)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile1.2C語(yǔ)言特點(diǎn)<2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院99種控制語(yǔ)句 if()~else~ for()~ while()~
do~while() continue break switch
goto return1.2C語(yǔ)言特點(diǎn)返回2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院1034種運(yùn)算符:
算術(shù)運(yùn)算符:+-*/%++--
關(guān)系運(yùn)算符:<<===>>=!=
邏輯運(yùn)算符:!&&||
位運(yùn)算符:<<>>~|^&
賦值運(yùn)算符:=及其擴(kuò)展
條件運(yùn)算符:?:
逗號(hào)運(yùn)算符:,
指針運(yùn)算符:*&
求字節(jié)數(shù):sizeof
強(qiáng)制類(lèi)型轉(zhuǎn)換:(類(lèi)型)
分量運(yùn)算符:.->
下標(biāo)運(yùn)算符:[]
其它:()-1.2C語(yǔ)言特點(diǎn)返回2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院11基本類(lèi)型構(gòu)造類(lèi)型指針類(lèi)型:能用來(lái)實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(如鏈表、樹(shù)、棧等)的運(yùn)算??疹?lèi)型void定義類(lèi)型typedef數(shù)值類(lèi)型字符類(lèi)型char枚舉類(lèi)型enum整型浮點(diǎn)型單精度型float雙精度型double短整型short長(zhǎng)整型long整型int數(shù)組結(jié)構(gòu)體struct共用體unionC數(shù)據(jù)類(lèi)型:1.2C語(yǔ)言特點(diǎn)返回2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院12
對(duì)數(shù)組下標(biāo)越界不做檢查
對(duì)變量的類(lèi)型使用比較靈活,例如,整型量與字符型數(shù)據(jù)可以通用C語(yǔ)言允許程序編寫(xiě)者有較大的自由度,因此放寬了語(yǔ)法檢查1.2C語(yǔ)言特點(diǎn)2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院返回13C的編譯系統(tǒng)簡(jiǎn)潔,很容易移植到新系統(tǒng)
在新系統(tǒng)上運(yùn)行時(shí),可直接編譯“標(biāo)準(zhǔn)鏈接庫(kù)”中的大部分功能,不需要修改源代碼
幾乎所有計(jì)算機(jī)系統(tǒng)都可以使用C語(yǔ)言1.2C語(yǔ)言特點(diǎn)2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院返回14152023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院1.3
簡(jiǎn)單的C語(yǔ)言程序介紹/*example1.1Sayhellototheworld#include<stdio.h>main(){
printf(”HelloWorld”);}162023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院1.3
簡(jiǎn)單的C語(yǔ)言程序介紹/*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
中南大學(xué)信息科學(xué)與工程學(xué)院1.3
簡(jiǎn)單的C語(yǔ)言程序介紹/*example1.3calculatethesumofaandb*/#include<stdio.h>/*Thisisthemainprogram*/main(){
int
a,b,c;
printf(”P(pán)leaseinputvalueofaandb:\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)一個(gè)C語(yǔ)言程序包含以下幾個(gè)部分:文件包含部分預(yù)處理部分變量說(shuō)明部分函數(shù)原型聲明部分主函數(shù)部分函數(shù)定義部分關(guān)于結(jié)構(gòu)的說(shuō)明:并不是所有C語(yǔ)言程序都包含6個(gè)部分C語(yǔ)言程序后綴為.c主函數(shù)形式:main(){
變量說(shuō)明部分
程序語(yǔ)句部分}2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院18/*example1.1ThefirstCProgram*/#include<stdio.h>intmain(){
printf(“Hello,World!”);return0;}注釋編譯預(yù)處理函數(shù)語(yǔ)句輸出:
Hello,World!1.4
C程序的結(jié)構(gòu)2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院19例
求兩個(gè)整數(shù)之和。解題思路:設(shè)置3個(gè)變量a和b用來(lái)存放兩個(gè)整數(shù)sum用來(lái)存放和數(shù)用賦值運(yùn)算符“=”把結(jié)果傳送給sum2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院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對(duì)變量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例
求兩個(gè)整數(shù)中的較大者。解題思路:用一個(gè)函數(shù)實(shí)現(xiàn)求兩個(gè)整數(shù)中的較大者在主函數(shù)中調(diào)用此函數(shù)并輸出結(jié)果2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院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);}輸入語(yǔ)句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ù)形式參數(shù)34習(xí)慣用小寫(xiě)字母,大小寫(xiě)敏感不使用行號(hào),無(wú)程序行概念可使用空行和空格常用鋸齒形書(shū)寫(xiě)格式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縮進(jìn){}對(duì)齊有足夠的注釋有合適的空行1.4
C程序格式和結(jié)構(gòu)特點(diǎn)2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院35函數(shù)與主函數(shù)程序由一個(gè)或多個(gè)函數(shù)組成必須有且只能有一個(gè)主函數(shù)main()程序執(zhí)行從main開(kāi)始,在main中結(jié)束,其它函數(shù)通過(guò)嵌套調(diào)用得以執(zhí)行。程序語(yǔ)句C程序由語(yǔ)句組成用“;”作為語(yǔ)句終止符注釋/**/為注釋,不能嵌套不產(chǎn)生編譯代碼例:/*Thisisthemain/*ofexample1.1*/*/非法編譯預(yù)處理命令1.4
C程序結(jié)構(gòu)特點(diǎn)2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院36編輯鏈接編譯執(zhí)行C程序開(kāi)發(fā)步驟file.exe程序代碼的錄入,生成源程序*.c通過(guò)詞法分析器、語(yǔ)法分析器和代碼生成器,翻譯生成目標(biāo)程序*.obj與其它目標(biāo)程序或庫(kù)鏈接裝配,生成可執(zhí)行程序*.exe1.5
C程序設(shè)計(jì)語(yǔ)言的執(zhí)行2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院371.6
C程序的集成開(kāi)發(fā)環(huán)境TurboC2.0的啟動(dòng)TurboC的集成開(kāi)發(fā)環(huán)境確立TC工作環(huán)境調(diào)試C程序的步驟2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院38【命令提示符】窗口TurboC2.0的啟動(dòng)2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院39TurboC2.0的啟動(dòng)TurboC2.0開(kāi)始界面2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院40TurboC的集成開(kāi)發(fā)環(huán)境集成環(huán)境分為四個(gè)部分:主菜單程序編輯窗口編譯信息窗口功能鍵提示行。程序的編輯、編譯、調(diào)試、連接以及運(yùn)行都將在這個(gè)主屏幕中進(jìn)行。通過(guò)主菜單可以選擇TurboC集成環(huán)境所提供的各項(xiàng)功能。同時(shí),使用鍵盤(pán)上的↑、↓、←、→(上、下、左、右)鍵可以選擇菜單條中所需要的菜單項(xiàng),被選中的項(xiàng)反向顯示。>>2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院41TurboC2.0開(kāi)始界面主菜單區(qū)編輯區(qū)編譯信息功能鍵提示TurboC的集成開(kāi)發(fā)環(huán)境返回2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院42文件(File)菜單
文件菜單提供存取文件的功能,含有9個(gè)下拉子菜單,分別如下:Load裝入文件Pick顯示最近裝入過(guò)的最后9個(gè)文件的列表New編輯新文件,文件名為NONAME.CSave將正在編輯的文件存盤(pán)Writeto將正在編輯的文件改名存盤(pán)Directory顯示當(dāng)前工作目錄的內(nèi)容Changedir顯示當(dāng)前工作目錄的路徑名,允許把它改為另一個(gè)名字OSshell暫時(shí)退回到DOS環(huán)境,鍵入EXIT命令返回TurboCQuit退出TurboC,返回DOS系統(tǒng)2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院43編輯(Edit)菜單編輯菜單提供輸入和編輯程序的功能,不含下拉子菜單。2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院44運(yùn)行(Run)菜單運(yùn)行菜單提供運(yùn)行和調(diào)試程序的功能,含有6個(gè)下拉子菜單,常用的有:Run編譯、連接和運(yùn)行正在編輯的源程序Userscreen查看程序運(yùn)行時(shí)所產(chǎn)生的輸出屏幕2023/2/4
中南大學(xué)信息科學(xué)與工程學(xué)院45編譯(Compile)菜單編譯菜單提供編譯和連接目標(biāo)程序的功能,含有6個(gè)下拉子菜單,常用的有:MakeEXEfile直接將源程序編譯和連接成可執(zhí)行文件
LinkEXEfile連接當(dāng)前的OBJ文件和庫(kù)文件
PrimaryCfile指定待編譯的主文件,而不是當(dāng)前編輯的文件
Getinfo顯示當(dāng)前對(duì)話框的信息2023/2/4
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 邯鄲市人民醫(yī)院腹腔感染的腔鏡處理技術(shù)考核
- 張家口市中醫(yī)院護(hù)理骨干選拔考核
- 2025春季首都機(jī)場(chǎng)集團(tuán)校園招聘模擬試卷及答案詳解(新)
- 石家莊市中醫(yī)院腎臟淀粉樣變分型診斷考核
- 邢臺(tái)市中醫(yī)院人工晶體度數(shù)計(jì)算專(zhuān)項(xiàng)技能考核
- 2025江蘇宿遷市泗洪縣衛(wèi)健系統(tǒng)面向社會(huì)招聘工作人員5人考前自測(cè)高頻考點(diǎn)模擬試題(含答案詳解)
- 2025江西青原區(qū)文化館招聘就業(yè)見(jiàn)習(xí)人員1人考前自測(cè)高頻考點(diǎn)模擬試題完整參考答案詳解
- 2025北京林業(yè)大學(xué)附屬實(shí)驗(yàn)小學(xué)招聘1人考前自測(cè)高頻考點(diǎn)模擬試題及一套參考答案詳解
- 張家口市人民醫(yī)院兒科急救設(shè)備使用考核
- 重慶市人民醫(yī)院呼吸科病房護(hù)士急救藥物使用授權(quán)考核試題
- GB/T 20671.4-2006非金屬墊片材料分類(lèi)體系及試驗(yàn)方法第4部分:墊片材料密封性試驗(yàn)方法
- 灌腸分類(lèi)、操作及并發(fā)癥處理
- 熱鍍鋅鋼管技術(shù)標(biāo)準(zhǔn)
- 虛擬現(xiàn)實(shí)與增強(qiáng)現(xiàn)實(shí)頭戴顯示關(guān)鍵技術(shù)及應(yīng)用項(xiàng)目
- 《電力工業(yè)企業(yè)檔案分類(lèi)規(guī)則0大類(lèi)》(1992年修訂版)
- (人教版三年級(jí)上冊(cè))數(shù)學(xué)時(shí)間的計(jì)算課件
- GB∕T 26520-2021 工業(yè)氯化鈣-行業(yè)標(biāo)準(zhǔn)
- 溫州醫(yī)科大學(xué)《兒科學(xué)》支氣管肺炎
- 常見(jiàn)傳染病預(yù)防知識(shí)ppt-共47頁(yè)課件
- 路燈基礎(chǔ)開(kāi)挖報(bào)驗(yàn)申請(qǐng)表
- 建筑材料送檢指南(廣東省2018完整版)
評(píng)論
0/150
提交評(píng)論