版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語言程序設(shè)計(jì)1課程內(nèi)容C語言程序設(shè)計(jì)的概念基本數(shù)據(jù)類型C語言程序的流程控制模塊化程序設(shè)計(jì)數(shù)組指針用戶定制數(shù)據(jù)類型文件2第一章C語言程序設(shè)計(jì)的概念程序與程序設(shè)計(jì)語言C語言及其標(biāo)準(zhǔn)C語言程序概要VS2005集成開發(fā)環(huán)境31.1程序與程序設(shè)計(jì)語言計(jì)算機(jī)與程序算盤與現(xiàn)代計(jì)算機(jī)程序:按一定順序安排的工作步驟記憶功能控制部件操作英國(guó)數(shù)學(xué)家CharlesBabbage研制差分機(jī)41.1程序與程序設(shè)計(jì)語言計(jì)算機(jī)程序設(shè)計(jì)語言機(jī)器語言CPU指令系統(tǒng)是該CPU能識(shí)別的一組由0和1序列所構(gòu)成的指令碼例:
10000000(進(jìn)行一次加法運(yùn)算)
10010000(進(jìn)行一次減法運(yùn)算)優(yōu)點(diǎn): 能被機(jī)器直接理解和執(zhí)行缺點(diǎn): 不直觀,難理解,只能被少數(shù)專業(yè)人員掌握 編寫效率低,質(zhì)量難保證51.1程序與程序設(shè)計(jì)語言計(jì)算機(jī)程序設(shè)計(jì)語言匯編語言20世紀(jì)50年代中期用“助記符號(hào)”代替0,1,這種用助記符號(hào)描述的指令系統(tǒng)稱為符號(hào)語言或匯編語言例:
A+B=>A或ADDA,B A-B=>A或SUBA,B優(yōu)點(diǎn): 程序生產(chǎn)效率和質(zhì)量有所提高缺點(diǎn): 機(jī)器不能直接識(shí)別、理解和執(zhí)行 勞動(dòng)強(qiáng)度依然很大61.1程序與程序設(shè)計(jì)語言計(jì)算機(jī)程序設(shè)計(jì)語言高級(jí)語言使用接近人類自然語言、但又消除了自然語言中的歧義性的語言來描述程序,如1954年出現(xiàn)的Fortran優(yōu)點(diǎn): 不需要熟悉機(jī)器內(nèi)部結(jié)構(gòu),精力集中于解題思路和方法缺點(diǎn): 機(jī)器不能直接識(shí)別、理解和執(zhí)行發(fā)展迅速,種類繁多752FORTRAN54565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC++JavaLISPPROLOGCOBOLFORTRAN77PL/1Simula67Smalltalk80BASICQBASICVBFORTRAN90980002C89C9904C#81.1程序與程序設(shè)計(jì)語言高級(jí)語言程序的開發(fā)過程提出問題分析問題,建立模型表現(xiàn)模型編輯源程序編譯鏈接測(cè)試與調(diào)試編寫程序文檔運(yùn)行維護(hù)源程序代碼源程序文件目標(biāo)文件可執(zhí)行文件未發(fā)現(xiàn)錯(cuò)誤交付使用不再適宜分析錯(cuò)誤建模錯(cuò)誤編輯錯(cuò)誤錯(cuò)誤91.1程序與程序設(shè)計(jì)語言編譯與鏈接#include<stdio.h>intadd(int,int);intmain(void){ints;s=add(2,3);printf(“Thesumis:%d”,s);return0;}intadd(inta,intb){intsum;sum=a+b;returnsum;}源文件1源文件2編譯器0101100101110101101010001010001000110010101111010000010100010001100101011110100010011101110110001000101000100011001010111101000100111011101100110011鏈接程序11000110101100101000100000101011110101001110111000000目標(biāo)文件1目標(biāo)文件2其他目標(biāo)文件101.1程序與程序設(shè)計(jì)語言程序的測(cè)試與調(diào)試以程序有錯(cuò)為前提編寫程序文檔程序功能所需輸入數(shù)據(jù)的類型、格式和取值范圍所需使用的文件數(shù)量、名稱、內(nèi)容以及存放位置程序運(yùn)行所需的軟/硬件環(huán)境程序的裝載、啟動(dòng)方法以及交互方式等軟件計(jì)算機(jī)程序計(jì)算機(jī)程序計(jì)算機(jī)化的文檔軟件111.1程序與程序設(shè)計(jì)語言程序的維護(hù)主要原因在于:程序未能完全滿足用戶需求用戶需求的變更程序中存在Bug121.2C語言及其標(biāo)準(zhǔn)C語言的發(fā)展歷程BCPLB改進(jìn)20世紀(jì)60年代KenThompsonUNIX匯編BUNIX初版1970ThompsonBC充實(shí)1972DennisRitchie可移植C語言編譯器1974DennisRitchieTheCProgrammingLanguage1978BrainandDennis131.2C語言及其標(biāo)準(zhǔn)C語言的標(biāo)準(zhǔn)C語言標(biāo)準(zhǔn)草案’83ANSIC1983C89ANSIX3.159-19891989C90ISO/IEC9899:19901990C89增補(bǔ)1/C951995WG14C99ISO/IEC9899:19991999141.3C語言程序概要函數(shù)語句名字與聲明變量及其賦值算術(shù)運(yùn)算151.3C語言程序概要函數(shù)例1.1輸出字符串/*文件名:ex1_01.c*/#include<stdio.h>intmain(void){printf(“Programmingisfun.”);
return0;}函數(shù)編譯預(yù)處理命令函數(shù)體161.3C語言程序概要問題1:請(qǐng)編寫一個(gè)程序,顯示以下兩行文字Iamastudent.IloveChina.171.3C語言程序概要例1.2計(jì)算兩個(gè)整數(shù)2、3相加的結(jié)果/*文件名:ex1_02.c*/#include<stdio.h>intadd(int,int);/*聲明將要使用的函數(shù)add()*/intmain(void){ints;/*聲明將要使用的變量s是整型的*/s=add(2,3);/*調(diào)用add()進(jìn)行計(jì)算,并用s接收結(jié)果*/printf(“Thesumis:%d”,s);/*輸出s的值*/return0;}intadd(inta,intb)/*函數(shù)add()的定義*/{intsum;/*定義一個(gè)整數(shù)sum,用于存放和*/sum=a+b;/*將a和b求和,并把結(jié)果賦給sum*/returnsum;/*返回sum的值到調(diào)用程序*/}181.3C語言程序概要ex1_02.exemain(){s=add(2,3);printf(“Thesumis%d”,s);return0;}add(inta,intb){sum=a+b;returnsum;}編譯器提供庫函數(shù)printf進(jìn)行計(jì)算并輸出結(jié)果操作系統(tǒng)1.操作系統(tǒng)調(diào)用main()2.3.4.返回操作系統(tǒng)返回sum的值到調(diào)用程序191.3C語言程序概要變量及其類型ints;intsum;函數(shù)的聲明intadd(int,int);讓編譯器知道該函數(shù)的原型頭文件printf()函數(shù)的參數(shù)控制串:直接輸出字符+格式字符賦值運(yùn)算符201.3C語言程序概要問題2:編寫一個(gè)程序,求三個(gè)數(shù)之和。211.3C語言程序概要例1.3編寫C語言程序,計(jì)算一個(gè)數(shù)的正弦值。/*ex1_03.c*/#include<stdio.h>#include<math.h>intmain(void){floatx;/*定義x為浮點(diǎn)型變量*/x=sin(0.19199);/*調(diào)用sin函數(shù)*/printf(“%f\n”,x);/*調(diào)用printf函數(shù),輸出x的值*/return0;}221.3C語言程序概要函數(shù)學(xué)習(xí)小結(jié):C語言程序由函數(shù)組成;函數(shù)由聲明和語句組成主函數(shù)必須設(shè)計(jì),C語言程序的執(zhí)行是從系統(tǒng)調(diào)用主函數(shù)開始的主函數(shù)的部分功能可通過其他子函數(shù)補(bǔ)充實(shí)現(xiàn)庫函數(shù)的使用(#include)231.3C語言程序概要語句表達(dá)式語句表達(dá)式由運(yùn)算符、變量和常量組成如:s=add(2,3)、sum=a+b、x=sin(0.19199)表達(dá)式加上語句結(jié)束符(;)就構(gòu)成了表達(dá)式語句運(yùn)算符如:+、=變量如:s、sum、a、b、x常量如:2、3、0.19199正確使用運(yùn)算符的注意點(diǎn):含義,如:=優(yōu)先級(jí)結(jié)合性,如:2*3/5241.3C語言程序概要語句流程控制語句條件語句1語句2是否(a)選擇控制結(jié)構(gòu)條件語句是(b)重復(fù)控制結(jié)構(gòu)25例1.4由鍵盤輸入兩個(gè)數(shù),輸出其中的較大數(shù)#include<stdio.h>floatmax2(floatx,floaty){floatmax;if(x>=y)max=x;elsemax=y;printf(“Themaxis:%f”,max);
returnmax;}intmain(void){floata,b;printf(“Inputtworealnumbers:\n”);
scanf(“%f%f”,&a,&b);max2(a,b);return0;}x≥y?max=xmax=y輸出maxmax2的流程圖261.3C語言程序概要問題3:編寫一個(gè)程序,輸入5個(gè)整數(shù),找出最小值,并輸出27#include<stdio.h>intmain(void){inta,b,c,d,e;scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);intmin=a;if(b<min)min=b;if(c<min)min=c;if(d<min)min=d;if(e<min)min=e;printf("Thesmallestnumberis%d\n",min);return0;}28例1.5求累加和的值#include<stdio.h>intsigma(intn){inti=0,sum=0;while(i<=n){i++;sum=sum+i;}returnsum;}intmain(void){intm,total;scanf(“%d”,&m);total=sigma(m);printf(“total=%d\n”,total);return0;}i≤n?i=0,sum=0i++sum=sum+ireturnsum是否函數(shù)sigma的執(zhí)行流程圖塊語句291.3C語言程序概要語句塊語句:用一對(duì)花括號(hào)括起來的語句301.3C語言程序概要名字與聲明標(biāo)識(shí)符標(biāo)識(shí)符,如:變量名、文件名、函數(shù)名標(biāo)識(shí)符應(yīng)遵循的詞法規(guī)則:由大\小寫字母、數(shù)字和下劃線組成的序列,但不能以數(shù)字開頭,如:aAAb_Ax_aXa_xabcd,而5AA-3都是不符合要求的區(qū)分同一字母的大小寫,如abc與abC是不同的標(biāo)識(shí)符C89規(guī)定C編譯器能識(shí)別的標(biāo)識(shí)符長(zhǎng)度不超過31個(gè)有效字符,C99規(guī)定為不超過63個(gè)有效字符普通標(biāo)識(shí)符不能使用對(duì)于系統(tǒng)有特殊意義的名字311.3C語言程序概要名字與聲明關(guān)鍵字auto_Boolbreakcasechar_complexconstcontinuedefaultdosoubleelseenumexternfloatforgotoif_imaginaryinlineintlongregisterrestrictreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile321.3C語言程序概要問題4:下列哪個(gè)選項(xiàng)可以全部用作變量名?A)a3Bb5_e_2MainB)+adayOK?MAXNUMBERC)i*jnext_day*xD)if$a3c-b331.3C語言程序概要名字與聲明程序中使用“好”名字的原則:盡量做到“見名知義”盡量避免使用容易混淆的字符,如:0(數(shù)字)-O(大寫字母)-o(小寫字母)1(數(shù)字)-I(大寫字母)-i(小寫字母)2(數(shù)字)-Z(大寫字母)-z(小寫字母)名字不要過短,函數(shù)名一般采用動(dòng)賓結(jié)構(gòu),如PrintCalendar、IsPrime等匈牙利命名法(P.17)341.3C語言程序概要名字與聲明聲明的作用:告訴編譯器,一個(gè)名字與哪個(gè)實(shí)體相關(guān)聯(lián)告訴編譯器及程序員該實(shí)體的類型告訴編譯器,該實(shí)體何時(shí)建立,在什么范圍內(nèi)可用在使用一個(gè)程序?qū)嶓w之前,一定要讓編譯器知道該程序?qū)嶓w的屬性聲明在程序中的位置,聲明可以出現(xiàn)在程序中的任意一行聲明屬于非執(zhí)行語句,表達(dá)式和流程控制語句屬于執(zhí)行語句351.3C語言程序概要變量及其賦值變量是一種程序?qū)嶓w,它具有一個(gè)值,這個(gè)值可以通過程序操作來改變變量的賦值運(yùn)算賦值運(yùn)算符=右操作數(shù)可以是一個(gè)表達(dá)式,左操作數(shù)只能是變量“自右至左”的結(jié)合性賦值運(yùn)算的過程inta;a=2.6;printf(“%d”,a);運(yùn)行結(jié)果為:2361.3C語言程序概要變量的賦值運(yùn)算如:inta=2,b=3;a=a+b;23ab23a+b運(yùn)算器5a=a+b的操作過程371.3C語言程序概要賦值運(yùn)算符的結(jié)合性 如:inta=0,b=0,c=0;a=b=c=5+3;inta=0,b=0,c=0;a=(b=(c=(5+3)));000abc53a+b運(yùn)算器008abc53a+b運(yùn)算器381.3C語言程序概要088abc運(yùn)算器888abc運(yùn)算器391.3C語言程序概要算術(shù)運(yùn)算符C語言中算術(shù)運(yùn)算符與數(shù)學(xué)中算術(shù)運(yùn)算符的區(qū)別:運(yùn)算符符號(hào)有所不同,如:=運(yùn)算符種類有所不同,如:%結(jié)合性可能會(huì)破壞交換律運(yùn)算符名稱運(yùn)算對(duì)象功能示例示例值*乘任何兩個(gè)實(shí)數(shù)或整數(shù)求兩數(shù)之積5.5*4.022.000000/除任何實(shí)數(shù)或整數(shù),但右操作數(shù)不能為0求兩數(shù)之商4.5/50.900000%模兩個(gè)整數(shù),但右操作數(shù)不能為0求整除后的余數(shù)13%85+加任何兩個(gè)實(shí)數(shù)或整數(shù)求兩數(shù)之和8+3.511.500000-減任何兩個(gè)實(shí)數(shù)或整數(shù)求兩數(shù)之差10-4.65.400000401.3C語言程序概要例1.6分析下面程序的運(yùn)算結(jié)果#include<stdio.h>intmain(void){printf(“300*2/3=%d\n”,300*2/3);printf(“2/3*300=%d\n”,2/3*300);return0;}411.3C語言程序概要問題5:下列程序的運(yùn)行結(jié)果#include<stdio.h>intmain(void){intx;x=-3+4*5-6;printf("%d\n",x);x=3+4%5-6;printf("%d\n",x);x=-3*4%-6/5;printf("%d\n",x);x=(7+6)%5/2;printf("%d\n",x);return0;}A)11101B)11-201C)11101.5421.3C語言程序概要自反算術(shù)賦值運(yùn)算符結(jié)合方向:自右向左優(yōu)先級(jí)較低a=a+ba+=b-=(自反減賦值)*=(自反乘賦值)/=(自反除賦值)%=(自反模賦值)c=b*=a+2;b=b*(a+2);c=b;431.3C語言程序概要自加和自減運(yùn)算i=i+1i=i-1i+=1i-=1i++i--或++i--i后綴形式前綴形式inti=5;i++;y=i;inti=5;++i;y=i;執(zhí)行結(jié)果相同441.3C語言程序概要自加和自減運(yùn)算符的結(jié)合方向是“自右至左”,它的運(yùn)算對(duì)象只能是整型變量,不能是表達(dá)式或常數(shù)正負(fù)號(hào)運(yùn)算符一元運(yùn)算符:+、-優(yōu)先級(jí)高于*、/結(jié)合方向:自右至左inti=5;x=i++;y=i;inti=5;x=++i;y=i;y執(zhí)行結(jié)果相同x結(jié)果不同前綴方式為“先增值后引用”后綴方式為“先引
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 沈陽理工大學(xué)《化工設(shè)計(jì)基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《電路》2022-2023學(xué)年期末試卷
- 沈陽理工大學(xué)《產(chǎn)品調(diào)研方法》2022-2023學(xué)年第一學(xué)期期末試卷
- 歸還租賃押金合同范本
- 貴州總承包合同條款
- 合肥研究院研究生公寓租住協(xié)議書
- 輔警體測(cè)標(biāo)準(zhǔn)
- 2024空氣凈化器設(shè)備租賃合同模板
- 2024服裝加盟合同范本
- 沈陽理工大學(xué)《EDA技術(shù)與VHD語言》2022-2023學(xué)年期末試卷
- T-CACM 1202-2019 中醫(yī)外科臨床診療指南 下肢慢性潰瘍
- 《城市市政管網(wǎng)運(yùn)行安全風(fēng)險(xiǎn)評(píng)估規(guī)程》
- 大學(xué)生的自己的職業(yè)生涯規(guī)劃
- 好書分享《紅樓夢(mèng)》
- 教育科學(xué)規(guī)劃課題申請(qǐng)書《基于生活化的幼兒數(shù)學(xué)教學(xué)活動(dòng)研究》
- 小班數(shù)學(xué)《認(rèn)識(shí)數(shù)字4》課件
- (高清版)DZT 0270-2014 地下水監(jiān)測(cè)井建設(shè)規(guī)范
- 腦梗死合并高血壓患者個(gè)案護(hù)理
- 2024年中國(guó)能源建設(shè)集團(tuán)國(guó)際工程有限公司招聘筆試參考題庫含答案解析
- 高職專業(yè)人才培養(yǎng)方案-會(huì)計(jì)專業(yè)人才培養(yǎng)方案
- 躉船總體建造方案 投標(biāo)方案(技術(shù)方案)
評(píng)論
0/150
提交評(píng)論