版權(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ì)
CProgrammingLanguage
C語(yǔ)言C語(yǔ)言程序設(shè)計(jì) C語(yǔ)言為什么要學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言為什么要學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言為什么要學(xué)習(xí)C語(yǔ)言C語(yǔ)言程序設(shè)計(jì)為什么要學(xué)習(xí)C語(yǔ)言C語(yǔ)言程序設(shè)計(jì)課程概況C/C++語(yǔ)言程序設(shè)計(jì)C語(yǔ)言程序設(shè)計(jì)課程概況C/C++語(yǔ)言程序設(shè)計(jì)C語(yǔ)言程序設(shè)計(jì)課程概況課程地位C語(yǔ)言程序設(shè)計(jì)課程概況課程地位C語(yǔ)言程序設(shè)計(jì)課程概況課程內(nèi)容----數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式----控制結(jié)構(gòu)----數(shù)組與指針----函數(shù)與程序結(jié)構(gòu)----結(jié)構(gòu)化程序設(shè)計(jì)方法
C語(yǔ)言程序設(shè)計(jì)Area=π×r21+2+3+…n輸入一個(gè)班學(xué)生的成績(jī),計(jì)算并顯示平均成績(jī)、最高分與最低分。課程概況課程內(nèi)容----數(shù)據(jù)類(lèi)型、運(yùn)算符和C語(yǔ)言程序設(shè)計(jì)Ar課程概況教學(xué)目的
掌握C語(yǔ)言的數(shù)據(jù)類(lèi)型、數(shù)組、函數(shù)、指針及基本的程序結(jié)構(gòu)等知識(shí);
會(huì)讀、會(huì)編、會(huì)調(diào)試C程序C語(yǔ)言程序設(shè)計(jì)課程概況教學(xué)目的C語(yǔ)言程序設(shè)計(jì)課程概況教學(xué)要求3次隨機(jī)點(diǎn)名不到者,取消考試資格缺交作業(yè)或?qū)嶒?yàn)報(bào)告少于規(guī)定次數(shù)2/3,取消考試資格C語(yǔ)言程序設(shè)計(jì)課程概況教學(xué)要求C語(yǔ)言程序設(shè)計(jì)課程概況學(xué)習(xí)方法
預(yù)習(xí) 聽(tīng)課
復(fù)習(xí)
上機(jī)實(shí)驗(yàn)
C語(yǔ)言程序設(shè)計(jì)“學(xué)習(xí)一門(mén)程序設(shè)計(jì)語(yǔ)言的唯一途徑就是使用它編寫(xiě)程序?!闭n程概況學(xué)習(xí)方法C語(yǔ)言程序設(shè)計(jì)“學(xué)習(xí)一門(mén)程序設(shè)計(jì)語(yǔ)言的唯一課程概況考核方式平時(shí)成績(jī)(作業(yè)、考勤、上機(jī)實(shí)驗(yàn)) 20%期末考試 80%C/C++語(yǔ)言程序設(shè)計(jì)課程概況考核方式平時(shí)成績(jī)(作業(yè)、考勤、上機(jī)實(shí)驗(yàn))C/C++語(yǔ)課程概況教材及參考書(shū)目教材羅建軍等:C++程序設(shè)計(jì)教程(第2版)高等教育出版社,2007
C/C++語(yǔ)言程序設(shè)計(jì)課程概況教材及參考書(shū)目教材C/C++語(yǔ)言程序設(shè)計(jì)課程概況參考書(shū)KernighanandRitchie.北京:C程序設(shè)計(jì)語(yǔ)言(第2版).機(jī)械工業(yè)出版社,2004.譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì).北京:清華大學(xué)出版社,2004.李玲玲.C語(yǔ)言程序設(shè)計(jì).北京:清華大學(xué)出版社,2011.蘇小紅,等.C語(yǔ)言程序設(shè)計(jì).北京:高等教育出版社,2011.湛為芳.C語(yǔ)言程序設(shè)計(jì)技術(shù)(第1版).北京:清華大學(xué)出版社,2006.上機(jī)軟件VC6.0C/C++語(yǔ)言程序設(shè)計(jì)課程概況參考書(shū)C/C++語(yǔ)言程序設(shè)計(jì)第一講C語(yǔ)言簡(jiǎn)介了解C語(yǔ)言的演變歷史C語(yǔ)言程序初識(shí)算法第1章C語(yǔ)言簡(jiǎn)介第一講C語(yǔ)言簡(jiǎn)介了解C語(yǔ)言的演變歷史第1章C語(yǔ)言簡(jiǎn)介
C語(yǔ)言的演變歷史——起源CPL->BCPL->B->CCPL(CombinedProgrammingLanguage),1963,英國(guó)劍橋BCPL(BasicCombinedProgrammingLanguage),1967,英國(guó)劍橋B,1970,美國(guó)貝爾C,1972,美國(guó)貝爾(D.Ritchie)C語(yǔ)言的演變歷史——起源CPL->BCPL->B->C
C語(yǔ)言的演變歷史——發(fā)展1973年,K.Thompson和D.Ritchie合作,將UNIX重寫(xiě)了一遍,從此奠定了操作系統(tǒng)的基礎(chǔ)。1978年后,C語(yǔ)言先后移植到大、中、小、微型機(jī)上。C語(yǔ)言之父丹尼斯.里奇哈弗大學(xué),物理學(xué)、應(yīng)用數(shù)學(xué)非課程類(lèi)計(jì)算機(jī)講座=>著迷計(jì)算機(jī)處理的理論和實(shí)際問(wèn)題1967年,進(jìn)入貝爾實(shí)驗(yàn)室1983年獲圖靈獎(jiǎng)C語(yǔ)言的演變歷史——發(fā)展1973年,K.Thompson和
C語(yǔ)言的演變歷史——標(biāo)準(zhǔn)化1983年,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI)根據(jù)C語(yǔ)言各種版本對(duì)C的發(fā)展和擴(kuò)充,制定了新的標(biāo)準(zhǔn)ANSIC。1987年,ANSI公布了新標(biāo)準(zhǔn)——87ANSIC。1990年,國(guó)際標(biāo)準(zhǔn)化組織接受了87ANSIC為ISOC的標(biāo)準(zhǔn)(ISO9899—1990)。1994年,ISO又修訂了C語(yǔ)言標(biāo)準(zhǔn)。目前流行的C語(yǔ)言編譯系統(tǒng)大多是以ANSIC為基礎(chǔ)進(jìn)行開(kāi)發(fā)的。C語(yǔ)言的演變歷史——標(biāo)準(zhǔn)化1983年,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(C語(yǔ)言程序初識(shí)例1-1:輸出一行信息”helloworld”。#include<stdio.h>void
main(){
printf(“helloworld\n");}/*包含標(biāo)準(zhǔn)輸入輸出庫(kù)*//*main函數(shù)名void返回值*//*函數(shù)體開(kāi)始*//*輸出語(yǔ)句*//*函數(shù)體結(jié)束*/C語(yǔ)言程序初識(shí)例1-1:輸出一行信息”helloworl
C語(yǔ)言程序的開(kāi)發(fā)調(diào)試環(huán)境目前使用的大多數(shù)C編譯系統(tǒng)都是集成環(huán)境(IDE)的。可以用不同的編譯系統(tǒng)對(duì)C程序進(jìn)行操作常用的有TurboC2.0、TurboC++3.0、VisualC++等。VisualC++:Microsoft公司出品的基于Windows的C和C++開(kāi)發(fā)工具。C語(yǔ)言程序初識(shí)C語(yǔ)言程序的開(kāi)發(fā)調(diào)試環(huán)境C語(yǔ)言程序初識(shí)File-NewFile-NewProject-Addtoproject-New-FilesProject-Addtoproject-Build-Compile-Build-ExecuteBuild-Compile-Build-Execute標(biāo)題欄菜單欄工具欄工程與項(xiàng)目工作區(qū)客戶區(qū)輸出窗口狀態(tài)欄標(biāo)題欄菜單欄工具欄工程與項(xiàng)目工作區(qū)客戶區(qū)輸出窗口狀態(tài)欄說(shuō)明:VisualC++6.0把實(shí)現(xiàn)程序設(shè)計(jì)功能的一組相互關(guān)聯(lián)的源文件、資源文件及支撐這些文件的類(lèi)的集合稱(chēng)為一個(gè)工程。工程是VisualC++6.0開(kāi)發(fā)程序的基本單位,一個(gè)工程至少包含一個(gè)工程文件,工程文件的擴(kuò)展名為.dsp。VisualC++6.0以項(xiàng)目工作區(qū)來(lái)組織應(yīng)用程序的工程,項(xiàng)目工作區(qū)文件的擴(kuò)展名為.dsw。這種類(lèi)型的文件在VisualC++6.0中級(jí)別最高,打開(kāi)一個(gè)工程只需打開(kāi)對(duì)應(yīng)的項(xiàng)目工作區(qū)文件即可。說(shuō)明:運(yùn)行C程序的步驟上機(jī)輸入與編輯源程序?qū)υ闯绦蜻M(jìn)行編譯與庫(kù)函數(shù)連接運(yùn)行目標(biāo)程序C語(yǔ)言程序初識(shí)運(yùn)行C程序的步驟C語(yǔ)言程序初識(shí)說(shuō)明:每個(gè)C程序都從main函數(shù)開(kāi)始執(zhí)行,因此每個(gè)C程序必須有一個(gè)main函數(shù){}是函數(shù)開(kāi)始和結(jié)束的標(biāo)志,不可省每個(gè)C語(yǔ)句以分號(hào)結(jié)束main函數(shù)通常會(huì)調(diào)用其他函數(shù)來(lái)幫助完成某些工作,例如:printf函數(shù),被調(diào)用的函數(shù)既可以自己編寫(xiě),也可以來(lái)自函數(shù)庫(kù),例如:printf函數(shù)來(lái)自標(biāo)準(zhǔn)輸入/輸出庫(kù)使用標(biāo)準(zhǔn)庫(kù)函數(shù)時(shí)應(yīng)在程序開(kāi)頭一行寫(xiě):#include<stdio.h>函數(shù)調(diào)用:函數(shù)名(參數(shù)列表)\n表示換行符,屬于轉(zhuǎn)義字符,無(wú)法輸入的字符或不可見(jiàn)的字符,例如:\t(制表符)、\b(回退符)#include<stdio.h>
voidmain()
{
printf(“helloworld\n");
}說(shuō)明:#include<stdio.h>
voidmC語(yǔ)言程序初識(shí)思考與練習(xí)1-1:在你自己的系統(tǒng)中運(yùn)行”helloworld“程序。再有意去掉程序中的部分內(nèi)容,看看會(huì)得到什么出錯(cuò)信息。做個(gè)實(shí)驗(yàn),當(dāng)printf函數(shù)的參數(shù)字符串中包含\c時(shí),觀察一下會(huì)出現(xiàn)什么情況。C語(yǔ)言程序初識(shí)思考與練習(xí)1-1:例1.2求兩數(shù)之和
#include<stdio.h>
voidmain()/*求兩數(shù)之和*/
{
inta,b,sum;/*聲明,定義變量為整型*/
/*以下3行為C語(yǔ)句*/
a=123;
b=456;
sum=a+b;
printf(″sumis%d\n″,sum);
}說(shuō)明:
/*……*/表示注釋。注釋只是給人看的,對(duì)編譯和運(yùn)行不起作用。所以可以用漢字或英文字符表示,可以出現(xiàn)在一行中的最右側(cè),也可以單獨(dú)成為一行。C語(yǔ)言中,所有變量必須先聲明后使用,聲明用于說(shuō)明變量的屬性,(類(lèi)型名變量表),通常放在函數(shù)起始處。printf輸出格式化函數(shù),函數(shù)的第一個(gè)參數(shù)是待打印的字符串,其中的每個(gè)%表示(第二個(gè)、第三個(gè)、…參數(shù))之一進(jìn)行替換的位置,并制定打印格式。例:%d指定一個(gè)整型參數(shù)。說(shuō)明:
輸出一行信息:sumis579例1.2求兩數(shù)之和
#include<stdio.h>C語(yǔ)言程序初識(shí)思考與練習(xí)1-2:修改例1-2程序,求任意兩個(gè)數(shù)的和,并輸出和值。#include<stdio.h>
voidmain()/*求兩數(shù)之和*/
{
inta,b,sum;/*聲明,定義變量為整型*/
printf(“Pleaseinputtwonumbers:\n”);
scanf("%d,%d",&a,&b);
sum=a+b;
printf(″sumis%d\n″,sum);
}scanf格式化輸入函數(shù),讀輸入數(shù)據(jù)C語(yǔ)言程序初識(shí)思考與練習(xí)1-2:#include<stintmax(intx,inty){intz;if(x>y)
z=x;else
z=y;return(z);}說(shuō)明:本程序包括main和被調(diào)用函數(shù)max兩個(gè)函數(shù)。max函數(shù)的作用是將x和y中較大者的值賦給變量z。return語(yǔ)句將z的值返回給主調(diào)函數(shù)main。例1.3求2個(gè)數(shù)中較大者。
#include<stdio.h>
voidmain()/*主函數(shù)*/
{
intmax(intx,inty);/對(duì)被調(diào)用函數(shù)max的聲明*/
inta,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的值*/
}程序運(yùn)行情況如下:8,5↙(輸入8和5賦給a和b)max=8(輸出c的值)intmax(intx,inty)說(shuō)明:例1.3C程序:(1)一個(gè)C程序無(wú)論大小,都是由函數(shù)和變量組成的(這使得程序容易實(shí)現(xiàn)模塊化),函數(shù)中包含一些語(yǔ)句,以指定所要執(zhí)行的計(jì)算操作;變量用于存儲(chǔ)計(jì)算過(guò)程中使用的值。(2)一個(gè)函數(shù)由兩部分組成:
函數(shù)的首部:例1.3中的max函數(shù)首部
intmax(intx,inty)
函數(shù)體:花括號(hào)內(nèi)的部分。若一個(gè)函數(shù)有多個(gè)花括號(hào),則最外層的一對(duì)花括號(hào)為函數(shù)體的范圍。函數(shù)體包括兩部分:聲明部分:inta,b,c;可缺省執(zhí)行部分:由若干個(gè)語(yǔ)句組成??扇笔ntmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}例:下面是一個(gè)空函數(shù),什么也不做,但是合法的函數(shù)voiddump(){}
C程序:intmax(intx,inty)例:下思考與練習(xí)1-3:編寫(xiě)一個(gè)程序來(lái)求解1×2×3×4×5。解決問(wèn)題的方法和步驟——算法思考與練習(xí)1-3:解決問(wèn)題的方法和步驟——算法
廣義地說(shuō),為解決一個(gè)問(wèn)題而采取的方法和步驟,就稱(chēng)為“算法”。算法例1.4:求1×2×3×4×5
步驟1:先求1×2,得到結(jié)果2。步驟2:將步驟1得到的乘積2再乘以3,得到結(jié)果6。步驟3:將6再乘以4,得24。步驟4:將24再乘以5,得120。太繁瑣如果要求1×2×…×1000,則要寫(xiě)999個(gè)步驟廣義地說(shuō),為解決一個(gè)問(wèn)題而采取的方法和步驟,就稱(chēng)為算
S1:使p=1。
S2:使i=2。
S3:使p×i,乘積仍放在變量p中,可表示為:
p×i→
pS4:使i的值加1,即i+1→
i。
S5:如果i不大于5,返回重新執(zhí)行步驟S3以及其后的步驟S4和S5;否則,算法結(jié)束。最后得到p的值就是5!的值??梢栽O(shè)兩個(gè)變量:一個(gè)變量代表被乘數(shù),一個(gè)變量代表乘數(shù)。不另設(shè)變量存放乘積結(jié)果,而直接將每一步驟的乘積放在被乘數(shù)變量中。設(shè)p為被乘數(shù),i為乘數(shù)。用循環(huán)算法來(lái)求結(jié)果,算法可改寫(xiě):
算法簡(jiǎn)練S1:使p=1??梢栽O(shè)兩個(gè)變量:一個(gè)變量代表被乘數(shù),一個(gè)變#include<STDIO.H>voidmain(){ intp,i; p=1; /*p賦初始值為1*/ i=2; /*若i<=5,則循環(huán)執(zhí)行算法中的步驟S3和S4*/ while(i<=5) { p=p*i; i=i+1; } printf("1*2*3*4*5=%d\n",p);}S1:1→pS2:2→iS3:p×i→pS4:i+1→pS5:若i≤5,返回S3。否則,結(jié)束。#include<STDIO.H>S1:1→pS1:1→pS2:3→iS3:p×i→pS4:i+2→iS5:若i≤11,返回S3。否則,結(jié)束。
如果題目改為:求1×3×5×……×11算法只需作很少的改動(dòng):算法簡(jiǎn)練S1:1→p如果題目改為:求1×3×5×……×11算法只需#include<STDIO.H>voidmain(){ intp,i; p=1; /*p賦初始值為1*/ i=3; /*若i<=11,則循環(huán)執(zhí)行算法中的步驟S3和S4*/ while(i<=11) { p=p*i; i=i+2; } printf("1*3*5*...*11=%d\n",p);}S1:1→pS2:3→iS3:p×i→pS4:i+2→pS5:若i≤11,返回S3。否則,結(jié)束。#include<STDIO.H>S1:1→p算法的特性有窮性:包含有限的操作步驟。確定性:算法中的每一個(gè)步驟都應(yīng)當(dāng)是確定的。有零個(gè)或多個(gè)輸入:輸入是指在執(zhí)行算法時(shí)需要從外界取得必要的信息。有一個(gè)或多個(gè)輸出:算法的目的是為了求解,“解”就是輸出。有效性:算法中的每一個(gè)步驟都應(yīng)當(dāng)能有效地執(zhí)行,并得到確定的結(jié)果。算法的特性有窮性:包含有限的操作步驟。算法表示——流程圖美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)規(guī)定了一些常用的流程圖符號(hào):起止框判斷框處理框輸入/輸出框注釋框流向線連接點(diǎn)算法表示——流程圖美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)規(guī)定了一些常用的流程圖例1.5
將求5!的算法用流程圖表示用流程圖表示算法要比用文字描述算法邏輯清晰、易于理解。例1.5將求5!的算法用流程圖表示用流程圖表示算法要比用
例1.6
將判斷素?cái)?shù)的算法用流程圖表示例1.6將判斷素?cái)?shù)的算法用流程圖表示思考與練習(xí)1-4:編寫(xiě)一個(gè)程序來(lái)求解任意兩個(gè)正整數(shù)的最大公因數(shù)。將判定閏年的算法用流程圖表示,并編寫(xiě)一個(gè)程序來(lái)判定2000~2500年中的每一年是否閏年,將結(jié)果輸出。將求解下式的算法用流程圖表示,并編寫(xiě)一個(gè)程序來(lái)求解之
設(shè)計(jì)算法流程圖,并變成實(shí)現(xiàn)對(duì)一個(gè)大于或等于3的正整數(shù),判斷它是不是一個(gè)素?cái)?shù)。思考與練習(xí)1-4:
例1.6
將求解下式的算法用流程圖表示例1.6將求解下式的算法用流程圖表示
例1.8
將判定閏年的算法用流程圖表示
例1.8將判定閏年的算法用流程圖表示
下課了。。。追求休息一會(huì)兒。。。下課了。。。追求休息一會(huì)兒。。。C語(yǔ)言程序設(shè)計(jì)
CProgrammingLanguage
C語(yǔ)言C語(yǔ)言程序設(shè)計(jì) C語(yǔ)言為什么要學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言為什么要學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言為什么要學(xué)習(xí)C語(yǔ)言C語(yǔ)言程序設(shè)計(jì)為什么要學(xué)習(xí)C語(yǔ)言C語(yǔ)言程序設(shè)計(jì)課程概況C/C++語(yǔ)言程序設(shè)計(jì)C語(yǔ)言程序設(shè)計(jì)課程概況C/C++語(yǔ)言程序設(shè)計(jì)C語(yǔ)言程序設(shè)計(jì)課程概況課程地位C語(yǔ)言程序設(shè)計(jì)課程概況課程地位C語(yǔ)言程序設(shè)計(jì)課程概況課程內(nèi)容----數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式----控制結(jié)構(gòu)----數(shù)組與指針----函數(shù)與程序結(jié)構(gòu)----結(jié)構(gòu)化程序設(shè)計(jì)方法
C語(yǔ)言程序設(shè)計(jì)Area=π×r21+2+3+…n輸入一個(gè)班學(xué)生的成績(jī),計(jì)算并顯示平均成績(jī)、最高分與最低分。課程概況課程內(nèi)容----數(shù)據(jù)類(lèi)型、運(yùn)算符和C語(yǔ)言程序設(shè)計(jì)Ar課程概況教學(xué)目的
掌握C語(yǔ)言的數(shù)據(jù)類(lèi)型、數(shù)組、函數(shù)、指針及基本的程序結(jié)構(gòu)等知識(shí);
會(huì)讀、會(huì)編、會(huì)調(diào)試C程序C語(yǔ)言程序設(shè)計(jì)課程概況教學(xué)目的C語(yǔ)言程序設(shè)計(jì)課程概況教學(xué)要求3次隨機(jī)點(diǎn)名不到者,取消考試資格缺交作業(yè)或?qū)嶒?yàn)報(bào)告少于規(guī)定次數(shù)2/3,取消考試資格C語(yǔ)言程序設(shè)計(jì)課程概況教學(xué)要求C語(yǔ)言程序設(shè)計(jì)課程概況學(xué)習(xí)方法
預(yù)習(xí) 聽(tīng)課
復(fù)習(xí)
上機(jī)實(shí)驗(yàn)
C語(yǔ)言程序設(shè)計(jì)“學(xué)習(xí)一門(mén)程序設(shè)計(jì)語(yǔ)言的唯一途徑就是使用它編寫(xiě)程序?!闭n程概況學(xué)習(xí)方法C語(yǔ)言程序設(shè)計(jì)“學(xué)習(xí)一門(mén)程序設(shè)計(jì)語(yǔ)言的唯一課程概況考核方式平時(shí)成績(jī)(作業(yè)、考勤、上機(jī)實(shí)驗(yàn)) 20%期末考試 80%C/C++語(yǔ)言程序設(shè)計(jì)課程概況考核方式平時(shí)成績(jī)(作業(yè)、考勤、上機(jī)實(shí)驗(yàn))C/C++語(yǔ)課程概況教材及參考書(shū)目教材羅建軍等:C++程序設(shè)計(jì)教程(第2版)高等教育出版社,2007
C/C++語(yǔ)言程序設(shè)計(jì)課程概況教材及參考書(shū)目教材C/C++語(yǔ)言程序設(shè)計(jì)課程概況參考書(shū)KernighanandRitchie.北京:C程序設(shè)計(jì)語(yǔ)言(第2版).機(jī)械工業(yè)出版社,2004.譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì).北京:清華大學(xué)出版社,2004.李玲玲.C語(yǔ)言程序設(shè)計(jì).北京:清華大學(xué)出版社,2011.蘇小紅,等.C語(yǔ)言程序設(shè)計(jì).北京:高等教育出版社,2011.湛為芳.C語(yǔ)言程序設(shè)計(jì)技術(shù)(第1版).北京:清華大學(xué)出版社,2006.上機(jī)軟件VC6.0C/C++語(yǔ)言程序設(shè)計(jì)課程概況參考書(shū)C/C++語(yǔ)言程序設(shè)計(jì)第一講C語(yǔ)言簡(jiǎn)介了解C語(yǔ)言的演變歷史C語(yǔ)言程序初識(shí)算法第1章C語(yǔ)言簡(jiǎn)介第一講C語(yǔ)言簡(jiǎn)介了解C語(yǔ)言的演變歷史第1章C語(yǔ)言簡(jiǎn)介
C語(yǔ)言的演變歷史——起源CPL->BCPL->B->CCPL(CombinedProgrammingLanguage),1963,英國(guó)劍橋BCPL(BasicCombinedProgrammingLanguage),1967,英國(guó)劍橋B,1970,美國(guó)貝爾C,1972,美國(guó)貝爾(D.Ritchie)C語(yǔ)言的演變歷史——起源CPL->BCPL->B->C
C語(yǔ)言的演變歷史——發(fā)展1973年,K.Thompson和D.Ritchie合作,將UNIX重寫(xiě)了一遍,從此奠定了操作系統(tǒng)的基礎(chǔ)。1978年后,C語(yǔ)言先后移植到大、中、小、微型機(jī)上。C語(yǔ)言之父丹尼斯.里奇哈弗大學(xué),物理學(xué)、應(yīng)用數(shù)學(xué)非課程類(lèi)計(jì)算機(jī)講座=>著迷計(jì)算機(jī)處理的理論和實(shí)際問(wèn)題1967年,進(jìn)入貝爾實(shí)驗(yàn)室1983年獲圖靈獎(jiǎng)C語(yǔ)言的演變歷史——發(fā)展1973年,K.Thompson和
C語(yǔ)言的演變歷史——標(biāo)準(zhǔn)化1983年,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI)根據(jù)C語(yǔ)言各種版本對(duì)C的發(fā)展和擴(kuò)充,制定了新的標(biāo)準(zhǔn)ANSIC。1987年,ANSI公布了新標(biāo)準(zhǔn)——87ANSIC。1990年,國(guó)際標(biāo)準(zhǔn)化組織接受了87ANSIC為ISOC的標(biāo)準(zhǔn)(ISO9899—1990)。1994年,ISO又修訂了C語(yǔ)言標(biāo)準(zhǔn)。目前流行的C語(yǔ)言編譯系統(tǒng)大多是以ANSIC為基礎(chǔ)進(jìn)行開(kāi)發(fā)的。C語(yǔ)言的演變歷史——標(biāo)準(zhǔn)化1983年,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(C語(yǔ)言程序初識(shí)例1-1:輸出一行信息”helloworld”。#include<stdio.h>void
main(){
printf(“helloworld\n");}/*包含標(biāo)準(zhǔn)輸入輸出庫(kù)*//*main函數(shù)名void返回值*//*函數(shù)體開(kāi)始*//*輸出語(yǔ)句*//*函數(shù)體結(jié)束*/C語(yǔ)言程序初識(shí)例1-1:輸出一行信息”helloworl
C語(yǔ)言程序的開(kāi)發(fā)調(diào)試環(huán)境目前使用的大多數(shù)C編譯系統(tǒng)都是集成環(huán)境(IDE)的??梢杂貌煌木幾g系統(tǒng)對(duì)C程序進(jìn)行操作常用的有TurboC2.0、TurboC++3.0、VisualC++等。VisualC++:Microsoft公司出品的基于Windows的C和C++開(kāi)發(fā)工具。C語(yǔ)言程序初識(shí)C語(yǔ)言程序的開(kāi)發(fā)調(diào)試環(huán)境C語(yǔ)言程序初識(shí)File-NewFile-NewProject-Addtoproject-New-FilesProject-Addtoproject-Build-Compile-Build-ExecuteBuild-Compile-Build-Execute標(biāo)題欄菜單欄工具欄工程與項(xiàng)目工作區(qū)客戶區(qū)輸出窗口狀態(tài)欄標(biāo)題欄菜單欄工具欄工程與項(xiàng)目工作區(qū)客戶區(qū)輸出窗口狀態(tài)欄說(shuō)明:VisualC++6.0把實(shí)現(xiàn)程序設(shè)計(jì)功能的一組相互關(guān)聯(lián)的源文件、資源文件及支撐這些文件的類(lèi)的集合稱(chēng)為一個(gè)工程。工程是VisualC++6.0開(kāi)發(fā)程序的基本單位,一個(gè)工程至少包含一個(gè)工程文件,工程文件的擴(kuò)展名為.dsp。VisualC++6.0以項(xiàng)目工作區(qū)來(lái)組織應(yīng)用程序的工程,項(xiàng)目工作區(qū)文件的擴(kuò)展名為.dsw。這種類(lèi)型的文件在VisualC++6.0中級(jí)別最高,打開(kāi)一個(gè)工程只需打開(kāi)對(duì)應(yīng)的項(xiàng)目工作區(qū)文件即可。說(shuō)明:運(yùn)行C程序的步驟上機(jī)輸入與編輯源程序?qū)υ闯绦蜻M(jìn)行編譯與庫(kù)函數(shù)連接運(yùn)行目標(biāo)程序C語(yǔ)言程序初識(shí)運(yùn)行C程序的步驟C語(yǔ)言程序初識(shí)說(shuō)明:每個(gè)C程序都從main函數(shù)開(kāi)始執(zhí)行,因此每個(gè)C程序必須有一個(gè)main函數(shù){}是函數(shù)開(kāi)始和結(jié)束的標(biāo)志,不可省每個(gè)C語(yǔ)句以分號(hào)結(jié)束main函數(shù)通常會(huì)調(diào)用其他函數(shù)來(lái)幫助完成某些工作,例如:printf函數(shù),被調(diào)用的函數(shù)既可以自己編寫(xiě),也可以來(lái)自函數(shù)庫(kù),例如:printf函數(shù)來(lái)自標(biāo)準(zhǔn)輸入/輸出庫(kù)使用標(biāo)準(zhǔn)庫(kù)函數(shù)時(shí)應(yīng)在程序開(kāi)頭一行寫(xiě):#include<stdio.h>函數(shù)調(diào)用:函數(shù)名(參數(shù)列表)\n表示換行符,屬于轉(zhuǎn)義字符,無(wú)法輸入的字符或不可見(jiàn)的字符,例如:\t(制表符)、\b(回退符)#include<stdio.h>
voidmain()
{
printf(“helloworld\n");
}說(shuō)明:#include<stdio.h>
voidmC語(yǔ)言程序初識(shí)思考與練習(xí)1-1:在你自己的系統(tǒng)中運(yùn)行”helloworld“程序。再有意去掉程序中的部分內(nèi)容,看看會(huì)得到什么出錯(cuò)信息。做個(gè)實(shí)驗(yàn),當(dāng)printf函數(shù)的參數(shù)字符串中包含\c時(shí),觀察一下會(huì)出現(xiàn)什么情況。C語(yǔ)言程序初識(shí)思考與練習(xí)1-1:例1.2求兩數(shù)之和
#include<stdio.h>
voidmain()/*求兩數(shù)之和*/
{
inta,b,sum;/*聲明,定義變量為整型*/
/*以下3行為C語(yǔ)句*/
a=123;
b=456;
sum=a+b;
printf(″sumis%d\n″,sum);
}說(shuō)明:
/*……*/表示注釋。注釋只是給人看的,對(duì)編譯和運(yùn)行不起作用。所以可以用漢字或英文字符表示,可以出現(xiàn)在一行中的最右側(cè),也可以單獨(dú)成為一行。C語(yǔ)言中,所有變量必須先聲明后使用,聲明用于說(shuō)明變量的屬性,(類(lèi)型名變量表),通常放在函數(shù)起始處。printf輸出格式化函數(shù),函數(shù)的第一個(gè)參數(shù)是待打印的字符串,其中的每個(gè)%表示(第二個(gè)、第三個(gè)、…參數(shù))之一進(jìn)行替換的位置,并制定打印格式。例:%d指定一個(gè)整型參數(shù)。說(shuō)明:
輸出一行信息:sumis579例1.2求兩數(shù)之和
#include<stdio.h>C語(yǔ)言程序初識(shí)思考與練習(xí)1-2:修改例1-2程序,求任意兩個(gè)數(shù)的和,并輸出和值。#include<stdio.h>
voidmain()/*求兩數(shù)之和*/
{
inta,b,sum;/*聲明,定義變量為整型*/
printf(“Pleaseinputtwonumbers:\n”);
scanf("%d,%d",&a,&b);
sum=a+b;
printf(″sumis%d\n″,sum);
}scanf格式化輸入函數(shù),讀輸入數(shù)據(jù)C語(yǔ)言程序初識(shí)思考與練習(xí)1-2:#include<stintmax(intx,inty){intz;if(x>y)
z=x;else
z=y;return(z);}說(shuō)明:本程序包括main和被調(diào)用函數(shù)max兩個(gè)函數(shù)。max函數(shù)的作用是將x和y中較大者的值賦給變量z。return語(yǔ)句將z的值返回給主調(diào)函數(shù)main。例1.3求2個(gè)數(shù)中較大者。
#include<stdio.h>
voidmain()/*主函數(shù)*/
{
intmax(intx,inty);/對(duì)被調(diào)用函數(shù)max的聲明*/
inta,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的值*/
}程序運(yùn)行情況如下:8,5↙(輸入8和5賦給a和b)max=8(輸出c的值)intmax(intx,inty)說(shuō)明:例1.3C程序:(1)一個(gè)C程序無(wú)論大小,都是由函數(shù)和變量組成的(這使得程序容易實(shí)現(xiàn)模塊化),函數(shù)中包含一些語(yǔ)句,以指定所要執(zhí)行的計(jì)算操作;變量用于存儲(chǔ)計(jì)算過(guò)程中使用的值。(2)一個(gè)函數(shù)由兩部分組成:
函數(shù)的首部:例1.3中的max函數(shù)首部
intmax(intx,inty)
函數(shù)體:花括號(hào)內(nèi)的部分。若一個(gè)函數(shù)有多個(gè)花括號(hào),則最外層的一對(duì)花括號(hào)為函數(shù)體的范圍。函數(shù)體包括兩部分:聲明部分:inta,b,c;可缺省執(zhí)行部分:由若干個(gè)語(yǔ)句組成??扇笔ntmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}例:下面是一個(gè)空函數(shù),什么也不做,但是合法的函數(shù)voiddump(){}
C程序:intmax(intx,inty)例:下思考與練習(xí)1-3:編寫(xiě)一個(gè)程序來(lái)求解1×2×3×4×5。解決問(wèn)題的方法和步驟——算法思考與練習(xí)1-3:解決問(wèn)題的方法和步驟——算法
廣義地說(shuō),為解決一個(gè)問(wèn)題而采取的方法和步驟,就稱(chēng)為“算法”。算法例1.4:求1×2×3×4×5
步驟1:先求1×2,得到結(jié)果2。步驟2:將步驟1得到的乘積2再乘以3,得到結(jié)果6。步驟3:將6再乘以4,得24。步驟4:將24再乘以5,得120。太繁瑣如果要求1×2×…×1000,則要寫(xiě)999個(gè)步驟廣義地說(shuō),為解決一個(gè)問(wèn)題而采取的方法和步驟,就稱(chēng)為算
S1:使p=1。
S2:使i=2。
S3:使p×i,乘積仍放在變量p中,可表示為:
p×i→
pS4:使i的值加1,即i+1→
i。
S5:如果i不大于5,返回重新執(zhí)行步驟S3以及其后的步驟S4和S5;否則,算法結(jié)束。最后得到p的值就是5!的值??梢栽O(shè)兩個(gè)變量:一個(gè)變量代表被乘數(shù),一個(gè)變量代表乘數(shù)。不另設(shè)變量存放乘積結(jié)果,而直接將每一步驟的乘積放在被乘數(shù)變量中。設(shè)p為被乘數(shù),i為乘數(shù)。用循環(huán)算法來(lái)求結(jié)果,算法可改寫(xiě):
算法簡(jiǎn)練
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 34912-2024工業(yè)鍋爐系統(tǒng)節(jié)能設(shè)計(jì)指南
- 果園經(jīng)營(yíng)權(quán)轉(zhuǎn)讓合同模板
- 個(gè)人與公司間借款協(xié)議書(shū)范本2024年
- 婚前財(cái)產(chǎn)協(xié)議書(shū)公證流程
- 展覽延期協(xié)議書(shū)范本
- 自由職業(yè)者合作工作室合伙協(xié)議
- 房屋中介服務(wù)協(xié)議書(shū)樣式
- 設(shè)計(jì)合同補(bǔ)充協(xié)議范本
- 瀝青運(yùn)輸合同模板
- 建筑施工合同補(bǔ)充協(xié)議模板
- 超星爾雅學(xué)習(xí)通《媒體創(chuàng)意經(jīng)濟(jì)玩轉(zhuǎn)互聯(lián)網(wǎng)時(shí)代》章節(jié)測(cè)試答案
- KF思維技術(shù)-在合作中解決問(wèn)題與決策完整課件
- 2023年傳染病防治知識(shí)考試試題及答案
- Windows server WEB服務(wù)器搭建與應(yīng)用說(shuō)課公開(kāi)課一等獎(jiǎng)省優(yōu)質(zhì)課大賽獲獎(jiǎng)?wù)n件
- 高考作文寫(xiě)作句子素材:動(dòng)漫臺(tái)詞(附適用主題與示例)
- 主題班會(huì)-同學(xué)情教學(xué)課件
- 泌尿系統(tǒng)完整結(jié)構(gòu)培訓(xùn)課件
- (中職)Office 辦公軟件應(yīng)用W11-3詩(shī)詞-實(shí)訓(xùn)任務(wù)+評(píng)分標(biāo)準(zhǔn)
- 規(guī)培體表腫物切除術(shù)
- 履帶吊使用安全技術(shù)規(guī)程
- 漢語(yǔ)詞性專(zhuān)題練習(xí)(附答案)
評(píng)論
0/150
提交評(píng)論