c語(yǔ)言程序與設(shè)計(jì)教程(同名2098)(共50頁(yè))_第1頁(yè)
c語(yǔ)言程序與設(shè)計(jì)教程(同名2098)(共50頁(yè))_第2頁(yè)
c語(yǔ)言程序與設(shè)計(jì)教程(同名2098)(共50頁(yè))_第3頁(yè)
c語(yǔ)言程序與設(shè)計(jì)教程(同名2098)(共50頁(yè))_第4頁(yè)
c語(yǔ)言程序與設(shè)計(jì)教程(同名2098)(共50頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩47頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)1: C語(yǔ)言程序初步實(shí)驗(yàn)名稱: C語(yǔ)言程序初步 實(shí)驗(yàn)類型: 驗(yàn)證型一、實(shí)驗(yàn)?zāi)康?、 了解Turbo C集成開(kāi)發(fā)環(huán)境。2、 熟悉C程序的實(shí)現(xiàn)過(guò)程和方法。(1) 掌握編輯、編譯、連接、運(yùn)行程序的過(guò)程和方法。(2) 了解常見(jiàn)的兩種語(yǔ)法錯(cuò)誤(Error/Warning)。二、實(shí)驗(yàn)內(nèi)容1、 了解Turbo C集成開(kāi)發(fā)環(huán)境的功能,熟悉菜單、熱鍵基本操作(1) 啟動(dòng)、退出Turbo C集成開(kāi)發(fā)環(huán)境。(2) 了解F5/F6;F10,、功能鍵;Alt+高亮度鍵的效果和作用。(3) 激活文件菜單(File)、編譯菜單(Compile)、運(yùn)行菜單(Run)、監(jiān)視菜單(Break/Watch),查看菜單選項(xiàng)。2、

2、 在Turbo C下完成“源程序清單”中規(guī)定的程序題。三、實(shí)驗(yàn)要求1、 實(shí)驗(yàn)中仔細(xì)觀察本實(shí)驗(yàn)創(chuàng)建的目錄、文件,回答實(shí)驗(yàn)小結(jié)和思考中的問(wèn)題。2、 在Turbo C下完成“源程序清單”中規(guī)定的程序題。編輯、編譯、運(yùn)行程序并獲得程序結(jié)果;如果程序有錯(cuò),記錄編譯、連接遇到的提示錯(cuò)誤。仔細(xì)思考出錯(cuò)原因,并更正之。3、 編制的程序必須保存在D:用戶目錄中。注:用戶目錄可以用學(xué)號(hào)或姓名拼音簡(jiǎn)寫(xiě)。四、實(shí)驗(yàn)步驟、過(guò)程1、 啟動(dòng)操作系統(tǒng),查找Turbo C集成開(kāi)發(fā)環(huán)境安裝位置(路徑)。假如為:C:TC,查看目錄中是否有tc.exe,此程序就是Turbo C集成開(kāi)發(fā)環(huán)境的執(zhí)行程序。記住您的系統(tǒng)Turbo C2.0的

3、安裝位置。2、 啟動(dòng)、退出Turbo C集成開(kāi)發(fā)環(huán)境。(1) 啟動(dòng)Turbo C集成開(kāi)發(fā)環(huán)境。如:雙擊tc.exe文件圖標(biāo)。(2) 退出Turbo C集成開(kāi)發(fā)環(huán)境。File-Quit 退出Turbo C集成開(kāi)發(fā)環(huán)境(3) 再次啟動(dòng)Turbo C環(huán)境。(同前)3、 Turbo C環(huán)境中,F(xiàn)5/F6;F10,、功能鍵;Alt+高亮度鍵的效果和作用。(1) 重復(fù)按F6鍵,仔細(xì)觀察。當(dāng)前激活窗口在編輯窗口、消息窗口之間切換。(2) 重復(fù)按F5鍵,仔細(xì)觀察。當(dāng)前激活窗口最大,正常狀態(tài)之間切換。(3) 先按F10,可以看到主菜單被激活,按、,主菜單各個(gè)項(xiàng)被依次激活,試著按、可以打開(kāi)相應(yīng)菜單。重點(diǎn)瀏覽Fil

4、e(文件管理)、Run(程序運(yùn)行控制)、Compile菜單(程序編譯、連接)菜單。最后按ESC鍵光標(biāo)回到編輯窗口。(4) 主菜單各個(gè)項(xiàng),首字母為紅色(高亮度)。可以按Alt+高亮字母,直接激活相應(yīng)菜單選項(xiàng)。例如按Alt+F激活File菜單,比F10再按光標(biāo)快捷多了!按ESC鍵光標(biāo)回到編輯窗口。(5) 觀察當(dāng)前源程序名NONAME.C表示當(dāng)前的程序還沒(méi)有取名字,以后保存程序時(shí),系統(tǒng)會(huì)提示輸入源程序名。4、 按照下面步驟完成第1個(gè)程序題。(1) “File”-“New”創(chuàng)建一個(gè)新的源程序文件(2) 輸入源程序,全屏幕編輯源程序。(3) “File”-“Save”保存源程序(文件名應(yīng)按題目要求)。觀

5、察編輯窗口源程序名是否已經(jīng)修改。用Windows資源管理器查看用戶目錄中是否產(chǎn)生了源程序文件*.c。(4) “Compile”-“Build all”編譯、連接源程序。如果有語(yǔ)法錯(cuò)誤,修改源程序后再次編譯、連接程序,直到?jīng)]有語(yǔ)法錯(cuò)誤,系統(tǒng)提示成功。編譯連接成功后用Windows資源管理器查看用戶目錄中是否產(chǎn)生了目標(biāo)文件*.obj,可執(zhí)行文件*.exe,觀察其命名規(guī)則。(5) “Run”-“Run”運(yùn)行程序,用Alt-F5切換到用戶屏幕查看運(yùn)行結(jié)果。對(duì)比結(jié)果是否與預(yù)期相同。如果發(fā)現(xiàn)邏輯錯(cuò)誤結(jié)果與預(yù)期不同,修改源程序,重復(fù)(3)-(5)保存、編譯、運(yùn)行程序,直到程序獲得正確結(jié)果。注意:n 必須順序

6、完成程序編輯、編譯連接、運(yùn)行的各個(gè)過(guò)程。沒(méi)有正確編譯成功的程序是不可能運(yùn)行的!n 程序開(kāi)發(fā)中經(jīng)常用“File”“Save”保存源程序以免意外導(dǎo)致源程序丟失。5、 按步驟5完成第2個(gè)程序題。注意:Error致命錯(cuò)的程序不能產(chǎn)生目標(biāo)程序、執(zhí)行程序,必須修改程序,并重新編譯,直到成功。6、 按步驟5完成第3個(gè)程序題。注意:Warning警告錯(cuò)的程序可以產(chǎn)生目標(biāo)程序、執(zhí)行程序,試著運(yùn)行一下。看看結(jié)果!_,還是修改吧,警告錯(cuò)一般也意味著程序有毛病,盡管這種程序可以強(qiáng)行編譯連接為可執(zhí)行程序,但結(jié)果一般都有問(wèn)題。五、源程序清單、測(cè)試數(shù)據(jù)、結(jié)果。1、 最簡(jiǎn)單的C程序。(要求文件名:1_1.c)main() p

7、rintf(Hello world!n);2、 一個(gè)具有致命語(yǔ)法錯(cuò)的程序。(要求文件名:1_2.c)main() int i=9 printf(i=%dn,i)3、 一個(gè)具有警告語(yǔ)法錯(cuò)的程序。(要求文件名:1_3.c)main()int i=9,j,s; s=i+j;printf(s=%dn,s);六、實(shí)驗(yàn)小結(jié)1、 F5/F6;F10,、功能鍵;Alt+高亮度鍵的效果和作用?答:F10,、:F10激活Turbo C主菜單,光標(biāo)鍵選擇菜單之間;回車確認(rèn)。F5:編輯窗口或消息窗口最大/恢復(fù);F6:切換編輯窗口/消息窗口。Alt+高亮度鍵,直接激活主菜單項(xiàng)。2、 與C語(yǔ)言程序直接相關(guān)的幾種文件及擴(kuò)展

8、名分別是什么?答:C語(yǔ)言源程序、目標(biāo)程序、可執(zhí)行程序,其后綴分別為*.c,*.obj,*.exe。3、 C語(yǔ)言程序主要的實(shí)現(xiàn)過(guò)程?答:分為編輯、編譯、連接、運(yùn)行四個(gè)階段。其中,開(kāi)發(fā)環(huán)境中,編輯完成后,可以直接啟動(dòng)運(yùn)行,但分解的階段仍然是四個(gè),前面階段未完成,程序仍然不能運(yùn)行。4、 C語(yǔ)言程序主要的錯(cuò)誤?答:程序錯(cuò)誤分為:(1) 語(yǔ)法錯(cuò)誤:編譯系統(tǒng)可以協(xié)助查找出來(lái)的語(yǔ)法上的錯(cuò)誤。語(yǔ)法錯(cuò)還包括:致命錯(cuò)Error/和警告錯(cuò)Warning。致命錯(cuò)必須修改!,警告錯(cuò)可以不修改,但常常暗示程序存在問(wèn)題。邏輯錯(cuò)誤:運(yùn)行結(jié)果與預(yù)期不符,與程序算法邏輯相關(guān)的錯(cuò)誤。實(shí)驗(yàn)2:運(yùn)算符與表達(dá)式實(shí)驗(yàn)名稱: 運(yùn)算符與表達(dá)式

9、 實(shí)驗(yàn)類型: 驗(yàn)證型 一、實(shí)驗(yàn)?zāi)康?、 掌握C語(yǔ)言算術(shù)、賦值、自增、自減運(yùn)算符及相應(yīng)表達(dá)式2、 掌握不同類型數(shù)據(jù)之間的賦值規(guī)律3、 了解強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換以及運(yùn)算符的優(yōu)先級(jí)、結(jié)合性。4、 學(xué)會(huì)根據(jù)表達(dá)式,編寫(xiě)相應(yīng)程序,驗(yàn)證表達(dá)式結(jié)果的方法。二、實(shí)驗(yàn)內(nèi)容1、 已知:a=2,b=3,x=3.9,y=2.3(a,b整型,x,y浮點(diǎn)),計(jì)算算術(shù)表達(dá)式(float)(a+b)/2+(int)x%(int)y的值。試編程上機(jī)驗(yàn)證。提示編程要點(diǎn):(1)先判斷結(jié)果值類型,可設(shè)置一個(gè)此類型的變量用于記錄表達(dá)式結(jié)果,本例用r存放結(jié)果;(2)程序先給幾個(gè)變量賦初值,然后將表達(dá)式賦值給變量r;(3)最后打印變量r的值就

10、是表達(dá)式的值。2、 已知:a=7,x=2.5,y=4.7(a整型,x,y浮點(diǎn)),計(jì)算算術(shù)表達(dá)式x+a%3*(int)(x+y)%2/4的值。試編程上機(jī)驗(yàn)證。3、 已知:a=12,n=5(a,n整型),計(jì)算下面表達(dá)式運(yùn)算后a的值。試編程上機(jī)驗(yàn)證。(1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2) (6)a+=a-=a*=a4、 分析下面程序結(jié)果,并上機(jī)驗(yàn)證。main( ) int i,j,m,n; i=8; j=10; m=+i; n=j+; printf(i=%d, j=%d, m=%d, i=%dn,i,j,m,n);5、 將k分別設(shè)置為127,

11、-128,128,-129,分析下面程序結(jié)果,并上機(jī)驗(yàn)證。main() float a=3.7,b; int i,j=5; int k=127; /* 用127,-128,128,-129測(cè)試 */ unsigned U; long L; char C; i=a; printf(%dn,i); /* 浮點(diǎn)賦值給整型 */ b=j; printf(%fn,b); /* 整型賦值給浮點(diǎn)*/ U=k; printf(%d,%un,U,U); /* 相同長(zhǎng)度類型之間賦值 */ L=k; printf(%ldn,L); /* 整型賦值給長(zhǎng)整型,短的類型賦值給長(zhǎng)的類型 */ C=k; printf(%dn

12、,C); /* 整型賦值給字符型,長(zhǎng)的類型賦值給短的類型 */三、實(shí)驗(yàn)要求1、 1-3題要求實(shí)驗(yàn)前手工計(jì)算,并編制好上機(jī)測(cè)試用源程序,以便上機(jī)實(shí)驗(yàn)。2、 4、5題要求實(shí)驗(yàn)前分析程序結(jié)果,以便上機(jī)時(shí)對(duì)比結(jié)果。3、 實(shí)驗(yàn)中仔細(xì)觀察、記錄、比較實(shí)驗(yàn)結(jié)果,如果不一致應(yīng)找出原因。4、 編制的程序必須保存在D:用戶目錄中。注:用戶目錄可以用學(xué)號(hào)或姓名拼音簡(jiǎn)寫(xiě)。四、實(shí)驗(yàn)步驟、過(guò)程1、 啟動(dòng)操作系統(tǒng)。2、 啟動(dòng)Turbo C集成開(kāi)發(fā)環(huán)境。(方法與實(shí)驗(yàn)1相同)3、 完成5個(gè)程序題。(編輯、編譯連接、運(yùn)行程序,步驟與實(shí)驗(yàn)1相同)注:經(jīng)常用“File”“Save”(熱鍵F2)保存源程序以免意外導(dǎo)致源程序丟失。4、

13、退出Turbo C集成開(kāi)發(fā)環(huán)境,關(guān)機(jī)。五、源程序清單、測(cè)試數(shù)據(jù)、結(jié)果。1、 (要求文件名:3_1.c)main()int a=2,b=3;float x=3.9,y=2.3; float r; r=(float)(a+b)/2+(int)x%(int)y; printf(%fn,r);參考結(jié)果:3.5000002、 (要求文件名:3_2.c)main() int a=7;float x=2.5,y=4.7,r; r=x+a%3*(int)(x+y)%2/4;printf(%fn,r);參考結(jié)果:2.5000003、 文件名:3_3.cmain()int a,n=5; a=12; a+=a; p

14、rintf(%dn,a); a=12; a-=2; printf(%dn,a); a=12; a*=2+3; printf(%dn,a); a=12; a/=a+a; printf(%dn,a); a=12; a%=(n%=2); printf(%dn,a); a=12; a+=a-=a*=a; printf(%dn,a);參考結(jié)果:2410600004、 文件名:3_4.c(程序略)參考結(jié)果:i=9, j=11, m=9, i=105、 文件名:3_5.c(程序略)參考結(jié)果:k=127時(shí):35.000000127,127127127k=-128時(shí):35.000000-128,65408-12

15、8-128k=128時(shí):35.000000128,128128-128k=-129時(shí):35.000000-129,65407-129127六、實(shí)驗(yàn)小結(jié)1、C語(yǔ)言取整是4舍5入?還是截?cái)嗳≌??答?截?cái)嗳≌?,或?取整(即簡(jiǎn)單的小數(shù)舍去)。2、總結(jié)賦值轉(zhuǎn)換原則。答: 賦值號(hào)右邊的數(shù)據(jù)類型轉(zhuǎn)化為賦值號(hào)左邊的數(shù)據(jù)類型,然后賦值給賦值號(hào)左邊的變量。l 浮點(diǎn)數(shù)據(jù)賦值給整型變量:浮點(diǎn)數(shù)據(jù)截?cái)嗳≌麨檎麛?shù)后賦值給整型變量;l 整型數(shù)據(jù)賦值給浮點(diǎn)變量:整型數(shù)據(jù)轉(zhuǎn)換為浮點(diǎn)數(shù)后賦值給浮點(diǎn)變量;l 短型整型賦值給長(zhǎng)型整數(shù):低位直接傳送,高位符號(hào)擴(kuò)展;l 長(zhǎng)型整型賦值給短型整數(shù):低位直接傳送,高位截?cái)?。?shí)驗(yàn)3:輸入與輸

16、出程序設(shè)計(jì)實(shí)驗(yàn)名稱: 輸入與輸出程序設(shè)計(jì) 實(shí)驗(yàn)類型: 驗(yàn)證性 一、實(shí)驗(yàn)?zāi)康?、 掌握:使用標(biāo)準(zhǔn)輸入/輸出函數(shù)進(jìn)行常見(jiàn)數(shù)據(jù)類型的數(shù)據(jù)的輸入/輸出方法。2、 初步培養(yǎng)編制程序框圖和源程序、準(zhǔn)備測(cè)試數(shù)據(jù)以及實(shí)際調(diào)試程序的獨(dú)立編程能力。二、實(shí)驗(yàn)內(nèi)容在Turbo C下完成程序題:(1) 根據(jù)商品原價(jià)和折扣率,計(jì)算商品的實(shí)際售價(jià)(結(jié)果精確到小數(shù)點(diǎn)后2位)(2) 根據(jù)圓柱體的半徑和高,計(jì)算圓周長(zhǎng)、圓面積、圓柱體表面積、圓柱體體積(結(jié)果精確到小數(shù)點(diǎn)后3位)注:變量名可以自由選擇,以易于理解為原則;數(shù)據(jù)由鍵盤(pán)輸入。三、實(shí)驗(yàn)要求1、 實(shí)驗(yàn)前編制程序框圖、編寫(xiě)源程序、準(zhǔn)備測(cè)試數(shù)據(jù)。2、 實(shí)驗(yàn)測(cè)試數(shù)據(jù)要求從鍵盤(pán)輸入。

17、應(yīng)盡力追求程序的完美。比如要求輸入數(shù)據(jù),應(yīng)當(dāng)顯示提示字符串,提示用戶輸入;輸出時(shí)要求有文字說(shuō)明。3、 在Turbo C下完成程序的編輯、編譯、運(yùn)行,獲得程序結(jié)果。如果結(jié)果有誤,應(yīng)找出原因,并設(shè)法更正之。4、 編制的程序必須保存在D:用戶目錄中。注:用戶目錄可以用學(xué)號(hào)或姓名拼音簡(jiǎn)寫(xiě)。四、實(shí)驗(yàn)步驟、過(guò)程1、 啟動(dòng)操作系統(tǒng)。2、 啟動(dòng)Turbo C集成開(kāi)發(fā)環(huán)境。(方法與實(shí)驗(yàn)1相同)3、 完成2個(gè)程序題。(編輯、保存、編譯連接、運(yùn)行程序,步驟與實(shí)驗(yàn)1相同)4、 退出Turbo C集成開(kāi)發(fā)環(huán)境,關(guān)機(jī)。五、源程序清單、測(cè)試數(shù)據(jù)、結(jié)果。1、 根據(jù)商品原價(jià)和折扣率,計(jì)算商品的實(shí)際售價(jià)程序流程圖:main()

18、float price,discount,fee; printf(Input Price,Discount:); scanf(%f%f,&price,&discount); fee=price*(1-discount/100); printf(Fee=%.2fn,fee);運(yùn)行:Input Price,Discount:100 10Fee=90.00注:下劃線表示程序運(yùn)行后用戶輸入的數(shù)據(jù),表示回車,以后不再解釋。2、根據(jù)圓柱體的半徑和高,計(jì)算圓周長(zhǎng)、圓面積、圓柱體表面積、圓柱體體積程序框圖(略)void main()float r,h,pi=3.1415926;float c0,s0,s,v;

19、printf(Input r,h(m):);scanf(%f,%f,&r,&h);c0=2*pi*r;s0=pi*r*r;s=2*pi*r*h+2*pi*r*r;v=pi*r*r*h;printf(c0=%.3f(m)ns0=%.3f(m2)ns=%.3f(m2)nv=%.3f(m3)n,c0,s0,s,v);運(yùn)行:Input r,h(m):1,2c0=6.283(m)s0=3.142(m2)s=18.850(m2)v=6.283(m3)六、實(shí)驗(yàn)出現(xiàn)的問(wèn)題、實(shí)驗(yàn)結(jié)果分析(參考)1、 C語(yǔ)言變量先定義后使用,變量名大小寫(xiě)敏感。2、 scanf輸入數(shù)據(jù),變量應(yīng)當(dāng)使用取地址運(yùn)算。3、 scanf函數(shù)

20、格式字符串中的普通字符要原樣輸入,否則會(huì)發(fā)生錯(cuò)誤。七、實(shí)驗(yàn)小結(jié)1、 若scanf(%f,%f,&price,&discount);如何輸入兩個(gè)數(shù)據(jù)?答:scanf函數(shù)格式字符串中非格式字符要求原樣輸入,printf函數(shù)格式字符串中非格式字符在輸出時(shí)原樣輸出。由于格式字符串為%f,%f,即要求兩個(gè)浮點(diǎn)數(shù)之間由,分隔,所以輸入數(shù)據(jù)時(shí)必須輸入,。例如:Input Price,Discount:100,10實(shí)驗(yàn)4:選擇結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)名稱: 選擇結(jié)構(gòu)程序設(shè)計(jì) 實(shí)驗(yàn)類型: 驗(yàn)證性 一、實(shí)驗(yàn)?zāi)康?、 掌握關(guān)系、邏輯運(yùn)算符及其表達(dá)式的正確使用。2、 掌握if語(yǔ)句和switch語(yǔ)句的使用。3、 了解Turbo

21、 C程序調(diào)試的基本方法。二、實(shí)驗(yàn)內(nèi)容在Turbo C下完成程序題:1、 有如下函數(shù),要求輸入x的值,求y的值。 |X|,X0Y= X2,0X10 LogX,X102、 輸入1-7之間的任意數(shù)字,程序按照用戶的輸入輸出相應(yīng)的星期值。3、 某單位馬上要加工資,增加金額取決于工齡和現(xiàn)工資兩個(gè)因素:對(duì)于工齡大于等于20年的,如果現(xiàn)工資高于2000,加200元,否則加180元;對(duì)于工齡小于20年的,如果現(xiàn)工資高于1500,加150元,否則加120元。工齡和現(xiàn)工資從鍵盤(pán)輸入,編程求加工資后的員工工資。三、實(shí)驗(yàn)要求1、 實(shí)驗(yàn)前繪制程序流程圖,編制源程序、準(zhǔn)備測(cè)試數(shù)據(jù)。2、 在Turbo C下完成程序的編輯、

22、編譯、運(yùn)行,獲得程序結(jié)果。3、 實(shí)驗(yàn)中可以采用Turbo C程序調(diào)試基本方法協(xié)助查找程序中的邏輯問(wèn)題。四、實(shí)驗(yàn)步驟、過(guò)程1、 編輯、編譯、運(yùn)行程序題1,分別使用數(shù)據(jù)-5,0,5,10,100做測(cè)試。2、 編輯、編譯、運(yùn)行程序題2,分別使用數(shù)據(jù)1,7,8做測(cè)試。3、 編輯、編譯、運(yùn)行程序題3,測(cè)試數(shù)據(jù)見(jiàn)下表:工齡y(年)現(xiàn)工資S0(元)2522002219001817001614004、 嘗試跟蹤程序題1運(yùn)行。用F7或F8鍵單步跟蹤程序,用F7檢查變量值,用F4可以將程序運(yùn)行到光標(biāo)當(dāng)前位置。五、源程序清單、測(cè)試數(shù)據(jù)、結(jié)果。1、 給定y=f(x)函數(shù),要求輸入x的值,求y的值。#include m

23、ain() float x,y; scanf(%f,&x); if(x0) y=fabs(x); else if(x10) y=x*x; else y=log10(x); printf(%fn,y);測(cè)試運(yùn)行:-55.00000000.000000525.000000101.0000001002.0000002、輸入1-7之間的任意數(shù)字,程序按照用戶的輸入輸出相應(yīng)的星期值。main() int week; printf(Input(1-7):); scanf(%d,&week); switch(week) case 1:printf(Mon.n); break; case 2:printf(T

24、ue.n); break; case 3:printf(Wed.n); break; case 4:printf(Tur.n); break; case 5:printf(Fri.n); break; case 6:printf(Sat.n); break; case 7:printf(Sun.n); break; default:printf(The input is wrong!n); 測(cè)試運(yùn)行:Input(1-7):1Mon.Input(1-7):5Fri.Input(1-7):8The input is wrong!3、工資計(jì)算。main() float s0,s; int y; pr

25、intf(Input s0,y:); scanf(%f,%d,&s0,&y); if(y=20) if(s0=2000)s=s0+200; else s=s0+180; else if(s0=1500)s=s0+150; else s=s0+120; printf(s=%fn,s);測(cè)試運(yùn)行:Input s0,y:2200,25s=2400.000000Input s0,y:1900,22s=2080.000000Input s0,y:1700,18s=1850.000000Input s0,y:1400,16s=1520.000000六、實(shí)驗(yàn)出現(xiàn)的問(wèn)題、實(shí)驗(yàn)結(jié)果分析(不要照抄哦,_)1、 求

26、絕對(duì)值對(duì)于浮點(diǎn)數(shù)要使用函數(shù)fabs。使用abs是對(duì)整數(shù)取絕對(duì)值。2、 以10為底的對(duì)數(shù),應(yīng)當(dāng)使用函數(shù)log10。3、 0X10不能表示為0=x10,否則盡管無(wú)語(yǔ)法錯(cuò)誤,但是含義不正確。4、 case語(yǔ)句與常量之間應(yīng)當(dāng)有空格,否則當(dāng)做語(yǔ)句標(biāo)號(hào)處理。如case1:。(使用單步跟蹤發(fā)現(xiàn))。七、實(shí)驗(yàn)小結(jié)1、 程序錯(cuò)誤分為語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤。語(yǔ)法錯(cuò)誤可以由編譯器協(xié)助檢查,邏輯錯(cuò)誤編譯器無(wú)法檢查出來(lái)。程序邏輯錯(cuò)誤比語(yǔ)法錯(cuò)誤更加隱蔽,程序跟蹤可用于發(fā)現(xiàn)程序邏輯錯(cuò)誤。2、 調(diào)用庫(kù)函數(shù)應(yīng)當(dāng)包含對(duì)應(yīng)頭文件,幫助進(jìn)行類型匹配檢查和類型轉(zhuǎn)化,保證函數(shù)調(diào)用使用正確參數(shù)。實(shí)驗(yàn)5:循環(huán)結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)名稱: 循環(huán)結(jié)構(gòu)程序設(shè)

27、計(jì) 實(shí)驗(yàn)類型: 驗(yàn)證型 一、實(shí)驗(yàn)?zāi)康?、 掌握while,do-while,for循環(huán)的語(yǔ)法結(jié)構(gòu)與應(yīng)用。2、 掌握while,do-while循環(huán)的區(qū)別。3、 掌握Turbo C單步執(zhí)行調(diào)試程序的方法。二、實(shí)驗(yàn)內(nèi)容完成程序題:1、 用三種循環(huán)結(jié)構(gòu),求1000以內(nèi)奇數(shù)的和。2、 用while,do-while循環(huán)求i-10的連加和,i由用戶輸入。3、 有一堆零件(100200個(gè)之間),如果以4個(gè)零件為一組進(jìn)行分組,則多2個(gè)零件;如果以7個(gè)零件為一組進(jìn)行分組,則多3個(gè)零件;如果以9個(gè)零件為一組進(jìn)行分組,則多5個(gè)零件。編程求解這堆零件總數(shù)。提示:用窮舉法求解。即零件總數(shù)x從100-200循環(huán)試探,如

28、果滿足所有幾個(gè)分組已知條件,那么此時(shí)的x就是一個(gè)解。分組后多幾個(gè)零件這種條件可以用求余運(yùn)算獲得條件表達(dá)式。三、實(shí)驗(yàn)要求1、 實(shí)驗(yàn)前編制源程序、對(duì)第2個(gè)實(shí)驗(yàn)內(nèi)容需要準(zhǔn)備測(cè)試數(shù)據(jù)。2、 在Turbo C下完成程序的編輯、編譯、運(yùn)行。查看、分析程序結(jié)果。四、實(shí)驗(yàn)步驟、過(guò)程1、 編輯、編譯、運(yùn)行程序題1。2、 編輯、編譯、運(yùn)行程序題2,分別使用數(shù)據(jù)3,15做測(cè)試。3、 編輯、編譯、運(yùn)行程序題3。五、源程序清單、測(cè)試數(shù)據(jù)、結(jié)果。1、 用三種循環(huán)結(jié)構(gòu),求1000以內(nèi)奇數(shù)的和。(1)用while結(jié)構(gòu)實(shí)現(xiàn)void main() long sum; int i,item; sum=0,i=0,item=2*i+

29、1; while(item1000) sum=sum+item; i+; item=2*i+1; printf(1+3+5+.999=%ldn,sum);(2)用do-while結(jié)構(gòu)實(shí)現(xiàn)void main() long sum; int i,item; sum=0,i=0,item=2*i+1; do sum=sum+item; i+; item=2*i+1; while(item1000); printf(1+3+5+.999=%ldn,sum);(3)用for結(jié)構(gòu)實(shí)現(xiàn)void main() long sum; int i,item; for(sum=0,i=0,item=2*i+1; it

30、em1000; i+,item=2*i+1) sum=sum+item; printf(1+3+5+.999=%ldn,sum);運(yùn)行結(jié)果:1+3+5+.999=2500002、用while,do-while循環(huán)求i-10的連加和,i由用戶輸入。(1)用while循環(huán)實(shí)現(xiàn)main() int sum=0,i; printf(Input i:);scanf(%d,&i); while(i=10) sum+=i; i+; printf(sum=%dn,sum);測(cè)試運(yùn)行結(jié)果:Input i:7sum=34Input i:15sum=0(2)用do-while循環(huán)實(shí)現(xiàn)main() int sum=0

31、,i; printf(Input i:);scanf(%d,&i); do sum+=i; i+; while(i=10); printf(sum=%dn,sum);測(cè)試運(yùn)行結(jié)果:Input i:7sum=34Input i:15sum=153、窮舉法搜索計(jì)算零件總數(shù)main() int x,flag=0; for(x=100; x=200; x+) if(x%4=2&x%7=3&x%9=5) flag=1; break; if(flag)printf(x=%dn,x); else printf(no answer!n);運(yùn)行結(jié)果:x=122六、實(shí)驗(yàn)出現(xiàn)的問(wèn)題、實(shí)驗(yàn)結(jié)果分析對(duì)于累加問(wèn)題,獲得的

32、累加值可能超過(guò)變量允許的范圍,出現(xiàn)溢出錯(cuò)誤(邏輯錯(cuò)誤-編譯時(shí)不能發(fā)現(xiàn))。程序題1:原來(lái)sum定義為int,后來(lái)改為long后程序獲得了正確的結(jié)果。七、實(shí)驗(yàn)小結(jié)1、 變量類型的選擇應(yīng)當(dāng)考慮變量的使用范圍。2、 循環(huán)程序可以用三種結(jié)構(gòu)實(shí)現(xiàn),三種結(jié)構(gòu)一般情況可以相互替換。3、 while,do-while循環(huán)的區(qū)別:while先判斷循環(huán)條件,如果條件滿足再執(zhí)行循環(huán)體,如果條件不滿足,循環(huán)體一次也不執(zhí)行。do-while先執(zhí)行一次循環(huán)體再判斷循環(huán)條件,以決定是否再次執(zhí)行循環(huán)體,即就是說(shuō)循環(huán)體至少執(zhí)行一次。4、 窮舉法是利用計(jì)算機(jī)高速計(jì)算能力試探搜索求解復(fù)雜問(wèn)題的一種很好的方法。實(shí)驗(yàn)6:循環(huán)嵌套程序設(shè)計(jì)

33、實(shí)驗(yàn)名稱: 循環(huán)嵌套程序設(shè)計(jì) 實(shí)驗(yàn)類型: 驗(yàn)證型 一、實(shí)驗(yàn)?zāi)康?、 掌握循環(huán)嵌套使用方法。2、 掌握break,continue語(yǔ)句。二、實(shí)驗(yàn)內(nèi)容1、編制程序,輸出由“*”組成的正三角形的,邊長(zhǎng)由程序輸入。例如n=4,輸出圖形: * * *2、編寫(xiě)程序,求任意兩個(gè)整數(shù)之間所有的素?cái)?shù)。三、實(shí)驗(yàn)要求1、 編制源程序。2、 在Turbo C下完成程序的編輯、編譯、運(yùn)行。查看、分析程序結(jié)果。四、實(shí)驗(yàn)步驟、過(guò)程1、 編輯、編譯、運(yùn)行程序題1。使用數(shù)據(jù):4,6做測(cè)試。2、 編輯、編譯、運(yùn)行程序題2。使用數(shù)據(jù)200,400做測(cè)試。五、源程序清單、測(cè)試數(shù)據(jù)、結(jié)果。1、輸出正三角形。#include main(

34、) int n,i,j; printf(n=); scanf(%d,&n); for(i=0; in; i+) for(j=0; jn-1-i; j+)printf( ); for(j=0; j2*i+1; j+)printf(*); printf(n); 測(cè)試運(yùn)行結(jié)果:n=4 * * *n=6 * * * * *2、求任意兩個(gè)整數(shù)之間所有的素?cái)?shù)。#include void main() int i1,i2,i,j,flag; printf(input two integer(2) i1,i2:); scanf(%d%d,&i1,&i2); printf(prime number:n); fo

35、r(i=i1; i=i2; i+) flag=1; for(j=2; j2) i1,i2:200 400prime number:211 223 227 229 233 239 241 251 257 263269 271 277 281 283 293 307 311 313 317331 337 347 349 353 359 367 373 379 383389 397六、實(shí)驗(yàn)小結(jié)1、 在不考慮內(nèi)、外層循環(huán)變量相互影響和其它特定條件下提前結(jié)束循環(huán)的情況下,雙重循環(huán)中,內(nèi)循環(huán)體內(nèi)的語(yǔ)句的執(zhí)行次數(shù)一般是外層循環(huán)執(zhí)行次數(shù)m與內(nèi)層循環(huán)執(zhí)行次數(shù)n的乘積。2、 Turbo C中運(yùn)行一個(gè)循環(huán)程序時(shí)可能

36、出現(xiàn)死循環(huán),結(jié)束死循環(huán)可以使用ctrl+break。3、 break語(yǔ)句可用于循環(huán)結(jié)構(gòu)及switch分支結(jié)構(gòu);continue只用于循環(huán)結(jié)構(gòu)。4、 程序必要的縮進(jìn)、對(duì)齊有利于改善程序可讀性(特別是有多層嵌套結(jié)構(gòu)的程序),便于檢查程序中的錯(cuò)誤。實(shí)驗(yàn)7:數(shù)組程序設(shè)計(jì)實(shí)驗(yàn)名稱: 數(shù)組程序設(shè)計(jì) 實(shí)驗(yàn)類型: 綜合型 一、實(shí)驗(yàn)?zāi)康?、 理解一維數(shù)組和二維數(shù)組的概念2、 掌握一維數(shù)組和二維數(shù)組的定義、初始、數(shù)組元素引用。3、 掌握一維數(shù)組和二維數(shù)組的輸入/輸出。4、 掌握與數(shù)組有關(guān)的算法。二、實(shí)驗(yàn)內(nèi)容1、 編制程序,求Fibonachi數(shù)列的前10項(xiàng)。提示:Fibonachi的第1,2項(xiàng)分別為1,1。其后任

37、何一項(xiàng)滿足ai=ai-2+ai-1。2、 編寫(xiě)找出1100之間能被7或11整除的所有整數(shù),存放在數(shù)組a中,并統(tǒng)計(jì)其個(gè)數(shù)。要求以每行排列5個(gè)數(shù)據(jù)的形式輸出a數(shù)組中的數(shù)據(jù)。3、 設(shè)有44的方陣,其中的元素由鍵盤(pán)輸入。求出(1)主對(duì)角線上元素之和;(2)輔對(duì)角線上元素之積;(3)方陣中最大的元素。提示:主對(duì)角線元素行、列下標(biāo)相同;輔對(duì)角線元素行、列下標(biāo)之和等于方陣的最大行號(hào)(或最大列號(hào))下標(biāo)、行列號(hào)基于0。三、實(shí)驗(yàn)要求1、 編制源程序,對(duì)于程序3輸入測(cè)試數(shù)據(jù)。2、 在Turbo C下完成程序的編輯、編譯、運(yùn)行。查看、分析程序結(jié)果。四、實(shí)驗(yàn)步驟、過(guò)程1、 編輯、編譯、運(yùn)行程序題1。2、 編輯、編譯、運(yùn)

38、行程序題2。3、 編輯、編譯、運(yùn)行程序題3。測(cè)試數(shù)據(jù):1 2 3 45 6 7 89 10 11 1213 14 15 16五、源程序清單、測(cè)試數(shù)據(jù)、結(jié)果。1、求Fibonachi數(shù)列的前10項(xiàng)main() int f11=0,1,1,n; for(n=3; n=10; n+) fn=fn-1+fn-2; for(n=1; n=10; n+) printf(%d ,fn); printf(n);程序結(jié)果:1 1 2 3 5 8 13 21 34 552、找出1100之間能被7或11整除的所有整數(shù)main() int n=0,a100,i; for(i=1; i=100; i+) if(i%7=

39、0|i%11=0) an=i; n+; printf(n=%dn,n); for(i=0; in; i+) printf(%dt,ai); if(i+1)%5=0)printf(n); printf(n);程序結(jié)果:n=227 11 14 21 2228 33 35 42 4449 55 56 63 6670 77 84 88 9198 993、方陣求出(1)主對(duì)角線上元素之和;(2)輔對(duì)角線上元素之積;(3)方陣中最大的元素。#include #define N 4main() int aNN,s1=0,s2=1,max=0,i,j; for(i=0; iN; i+) for(j=0; jN

40、; j+) scanf(%d,&aij); max=a00; for(i=0; iN; i+) for(j=0; jmax)max=aij; printf(s1=%d,s2=%d,max=%dn,s1,s2,max);程序結(jié)果:1 2 3 45 6 7 89 10 11 1213 14 15 16s1=34,s2=3640,max=16六、實(shí)驗(yàn)出現(xiàn)的問(wèn)題、實(shí)驗(yàn)結(jié)果分析(1) 數(shù)組下標(biāo)范圍容易搞錯(cuò),容易產(chǎn)生越界錯(cuò)誤。(2) 利用scanf()輸入數(shù)據(jù)時(shí)取地址符號(hào)(&)容易忘記。七、實(shí)驗(yàn)小結(jié)典型算法需要在理解的基礎(chǔ)上記憶。實(shí)驗(yàn)8:字符數(shù)組與字符串函數(shù)實(shí)驗(yàn)名稱: 字符數(shù)組與字符串函數(shù) 實(shí)驗(yàn)類型: 驗(yàn)

41、證型 一、實(shí)驗(yàn)?zāi)康?、 理解字符數(shù)組和字符串的概念。2、 掌握字符數(shù)組的定義、初始、數(shù)組元素引用、輸入輸出。3、 掌握字符數(shù)組的處理4、 掌握常用字符串處理函數(shù)二、實(shí)驗(yàn)內(nèi)容1、 編制程序:對(duì)鍵盤(pán)輸入的字符串進(jìn)行逆序,逆序后的字符串仍然保留在原來(lái)字符數(shù)組中,最后輸出。(不得調(diào)用任何字符串處理函數(shù),包括strlen)例如:輸入hello world 輸出dlrow olleh2、 編寫(xiě)程序:對(duì)從鍵盤(pán)任意輸入的字符串,將其中所有的大寫(xiě)字母改為小寫(xiě)字母,而所有小寫(xiě)字母改為大寫(xiě)字母,其它字符不變。(不調(diào)用任何字符串處理函數(shù))例如:輸入:Hello World!輸出:hELLO wORLD!3、 編寫(xiě)程序

42、:從鍵盤(pán)輸入4個(gè)字符串(長(zhǎng)度20),存入二維字符數(shù)組中。然后對(duì)它們進(jìn)行排序(假設(shè)由小到大順序),最后輸出排序后的4個(gè)字符串。(允許使用字符串函數(shù))提示:字符串比較可以用strcmp函數(shù)實(shí)現(xiàn),排序方法可以選擇法或冒泡法。三、實(shí)驗(yàn)要求1、 繪制流程圖、編制源程序,測(cè)試數(shù)據(jù)。2、 1-2題不得使用任何字符串處理函數(shù),3題允許使用字符串處理函數(shù)。3、 在Turbo C下完成程序的編輯、編譯、運(yùn)行。查看、分析程序結(jié)果。四、實(shí)驗(yàn)步驟、過(guò)程1、 編輯、編譯、運(yùn)行程序題1。使用數(shù)據(jù):hello world做測(cè)試。2、 編輯、編譯、運(yùn)行程序題3。使用數(shù)據(jù):Hello World做測(cè)試。3、 編輯、編譯、運(yùn)行程序

43、題4。使用數(shù)據(jù):SpanishChinaAmericaJapan做測(cè)試。五、源程序清單、測(cè)試數(shù)據(jù)、結(jié)果。1、字符串進(jìn)行逆序main() char str100;int n,i,j; gets(str); n=0; while(strn)n+; for(i=0,j=n-1; ij; i+,j-) char k=stri; stri=strj; strj=k; puts(str);測(cè)試運(yùn)行結(jié)果:hello worlddlrow olleh2、大寫(xiě)變小寫(xiě),小寫(xiě)變大寫(xiě)#include main() char s100; int i; gets(s); for(i=0; si!=0; i+) if(si

44、=A&si=a&si=z)si-=32; puts(s);測(cè)試運(yùn)行結(jié)果:Hello World!hELLO wORLD!3、串排序(采用選擇法排序)#include #define N 4main() char sN20; int i,j; for(i=0; iN; i+)gets(si); for(i=0; iN-1; i+) for(j=i+1; j0) char t20;strcpy(t,si); strcpy(si,sj); strcpy(sj,t); for(i=0; iN; i+)puts(si);測(cè)試運(yùn)行結(jié)果:SpanishChinaAmericaJapanAmericaChin

45、aJapanSpanish六、實(shí)驗(yàn)小結(jié)1、 對(duì)于字符串的處理可以將字符串當(dāng)作字符數(shù)組逐個(gè)元素處理,也可以調(diào)用字符串處理函數(shù)整體處理。2、 字符串串尾結(jié)束符號(hào)0在編制字符串處理程序很重要。3、 字符串處理函數(shù)可以減輕編程工作量,了解并熟悉常用字符串處理函數(shù)乃至其它系統(tǒng)函數(shù)可以提高軟件開(kāi)發(fā)的效率。4、 要調(diào)用系統(tǒng)函數(shù)一般應(yīng)包含此系統(tǒng)函數(shù)的“頭文件”,以便編譯系統(tǒng)檢查調(diào)用格式。5、 如果在編程時(shí)忘記一個(gè)系統(tǒng)函數(shù)的調(diào)用格式,可以將光標(biāo)停留在此函數(shù)上,并按ctrl+F1鍵聯(lián)機(jī)查詢。6、 gets()可以輸入帶空格字符串,而scanf()不能。實(shí)驗(yàn)9:函數(shù)的定義與調(diào)用實(shí)驗(yàn)名稱: 函數(shù)的定義與調(diào)用 實(shí)驗(yàn)類型

46、: 綜合型 一、實(shí)驗(yàn)?zāi)康?、 掌握函數(shù)定義(返回、函數(shù)名、參數(shù)、函數(shù)體),調(diào)用。2、 掌握函數(shù)的聲明3、 嵌套調(diào)用、遞歸調(diào)用。二、實(shí)驗(yàn)內(nèi)容1、 編制函數(shù)fun,其功能是:刪除一個(gè)字符串中指定的字符。要求:原始字符串在主函數(shù)中輸入,處理后的字符串在主函數(shù)中輸出。例如:輸入“I am a teacher,you are a student”和e輸出“I am a tachr,you ar a studnt”。2、 編制函數(shù)sortstr,其功能是對(duì)多個(gè)字符串進(jìn)行排序。要求:欲排序的字符串在主函數(shù)中輸入,排好序的字符串在主函數(shù)中輸出。提示:排序算法可參照實(shí)驗(yàn)9第4題,即將排序算法改為由一個(gè)函數(shù)sortstr實(shí)現(xiàn)。3、 掌握函數(shù)聲明的使用。三、實(shí)驗(yàn)要求1、 1、2題編制源程序和測(cè)試數(shù)據(jù);在Turbo C下完成程序的編輯、編譯、運(yùn)行并分析程序結(jié)果。2、 3題按實(shí)驗(yàn)步驟完成,認(rèn)真觀察,仔細(xì)思考思考題。四、實(shí)驗(yàn)步驟、過(guò)程1、 編輯、編譯、運(yùn)行程序題1。使用字符串:“I am a teacher,you are a student”以及字符e做測(cè)試。2、 編輯、編譯、

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論