《C語言程序設(shè)計A》實(shí)驗(yàn)教案_第1頁
《C語言程序設(shè)計A》實(shí)驗(yàn)教案_第2頁
《C語言程序設(shè)計A》實(shí)驗(yàn)教案_第3頁
《C語言程序設(shè)計A》實(shí)驗(yàn)教案_第4頁
《C語言程序設(shè)計A》實(shí)驗(yàn)教案_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、鹽城師范學(xué)院備課稿紙實(shí)驗(yàn)1: C語言程序初步實(shí)驗(yàn)名稱: C語言程序初步 實(shí)驗(yàn)類型: 驗(yàn)證型 一、實(shí)驗(yàn)?zāi)康牧私釺urbo C集成開發(fā)環(huán)境。熟悉C程序的實(shí)現(xiàn)過程和方法。掌握編輯、編譯、連接、運(yùn)行程序的過程和方法。了解常見的兩種語法錯誤(Error/Warning)。二、實(shí)驗(yàn)內(nèi)容了解Turbo C集成開發(fā)環(huán)境的功能,熟悉菜單、熱鍵基本操作啟動、退出Turbo C集成開發(fā)環(huán)境。了解F5/F6;F10,、功能鍵;Alt+高亮度鍵的效果和作用。激活文件菜單(File)、編譯菜單(Compile)、運(yùn)行菜單(Run)、監(jiān)視菜單(Break/Watch),查看菜單選項。在Turbo C下完成“源程序清單”中規(guī)

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

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

4、,首字母為紅色(高亮度)??梢园碅lt+高亮字母,直接激活相應(yīng)菜單選項。例如按Alt+F激活File菜單,比F10再按光標(biāo)快捷多了!按ESC鍵光標(biāo)回到編輯窗口。觀察當(dāng)前源程序名NONAME.C表示當(dāng)前的程序還沒有取名字,以后保存程序時,系統(tǒng)會提示輸入源程序名。按照下面步驟完成第1個程序題?!癋ile”-“New”創(chuàng)建一個新的源程序文件輸入源程序,全屏幕編輯源程序?!癋ile”-“Save”保存源程序(文件名應(yīng)按題目要求)。觀察編輯窗口源程序名是否已經(jīng)修改。用Windows資源管理器查看用戶目錄中是否產(chǎn)生了源程序文件*.c?!癈ompile”-“Build all”編譯、連接源程序。如果有語法錯

5、誤,修改源程序后再次編譯、連接程序,直到?jīng)]有語法錯誤,系統(tǒng)提示成功。編譯連接成功后用Windows資源管理器查看用戶目錄中是否產(chǎn)生了目標(biāo)文件*.obj,可執(zhí)行文件*.exe,觀察其命名規(guī)則?!癛un”-“Run”運(yùn)行程序,用Alt-F5切換到用戶屏幕查看運(yùn)行結(jié)果。對比結(jié)果是否與預(yù)期相同。如果發(fā)現(xiàn)邏輯錯誤結(jié)果與預(yù)期不同,修改源程序,重復(fù)(3)-(5)保存、編譯、運(yùn)行程序,直到程序獲得正確結(jié)果。注意:必須順序完成程序編輯、編譯連接、運(yùn)行的各個過程。沒有正確編譯成功的程序是不可能運(yùn)行的!程序開發(fā)中經(jīng)常用“File”“Save”保存源程序以免意外導(dǎo)致源程序丟失。按步驟5完成第2個程序題。注意:Erro

6、r致命錯的程序不能產(chǎn)生目標(biāo)程序、執(zhí)行程序,必須修改程序,并重新編譯,直到成功。按步驟5完成第3個程序題。注意:Warning警告錯的程序可以產(chǎn)生目標(biāo)程序、執(zhí)行程序,試著運(yùn)行一下。看看結(jié)果!_,還是修改吧,警告錯一般也意味著程序有毛病,盡管這種程序可以強(qiáng)行編譯連接為可執(zhí)行程序,但結(jié)果一般都有問題。五、源程序清單、測試數(shù)據(jù)、結(jié)果。最簡單的C程序。(要求文件名:1_1.c)main() printf(Hello world!n);一個具有致命語法錯的程序。(要求文件名:1_2.c)main() int i=9 printf(i=%dn,i)一個具有警告語法錯的程序。(要求文件名:1_3.c)main

7、()int i=9,j,s; s=i+j;printf(s=%dn,s);六、實(shí)驗(yàn)小結(jié)F5/F6;F10,、功能鍵;Alt+高亮度鍵的效果和作用?答:F10,、:F10激活Turbo C主菜單,光標(biāo)鍵選擇菜單之間;回車確認(rèn)。F5:編輯窗口或消息窗口最大/恢復(fù);F6:切換編輯窗口/消息窗口。Alt+高亮度鍵,直接激活主菜單項。與C語言程序直接相關(guān)的幾種文件及擴(kuò)展名分別是什么?答:C語言源程序、目標(biāo)程序、可執(zhí)行程序,其后綴分別為*.c,*.obj,*.exe。C語言程序主要的實(shí)現(xiàn)過程?答:分為編輯、編譯、連接、運(yùn)行四個階段。其中,開發(fā)環(huán)境中,編輯完成后,可以直接啟動運(yùn)行,但分解的階段仍然是四個,前

8、面階段未完成,程序仍然不能運(yùn)行。C語言程序主要的錯誤?答:程序錯誤分為:語法錯誤:編譯系統(tǒng)可以協(xié)助查找出來的語法上的錯誤。語法錯還包括:致命錯Error/和警告錯Warning。致命錯必須修改!,警告錯可以不修改,但常常暗示程序存在問題。邏輯錯誤:運(yùn)行結(jié)果與預(yù)期不符,與程序算法邏輯相關(guān)的錯誤。實(shí)驗(yàn)2:順序程序設(shè)計實(shí)驗(yàn)名稱: 輸入與輸出程序設(shè)計 實(shí)驗(yàn)類型: 驗(yàn)證性 一、實(shí)驗(yàn)?zāi)康恼莆眨菏褂脴?biāo)準(zhǔn)輸入/輸出函數(shù)進(jìn)行常見數(shù)據(jù)類型的數(shù)據(jù)的輸入/輸出方法。初步培養(yǎng)編制程序框圖和源程序、準(zhǔn)備測試數(shù)據(jù)以及實(shí)際調(diào)試程序的獨(dú)立編程能力。二、實(shí)驗(yàn)內(nèi)容在Turbo C下完成程序題:根據(jù)商品原價和折扣率,計算商品的實(shí)際售

9、價(結(jié)果精確到小數(shù)點(diǎn)后2位)根據(jù)圓柱體的半徑和高,計算圓周長、圓面積、圓柱體表面積、圓柱體體積(結(jié)果精確到小數(shù)點(diǎn)后3位)注:變量名可以自由選擇,以易于理解為原則;數(shù)據(jù)由鍵盤輸入。三、實(shí)驗(yàn)要求實(shí)驗(yàn)前編制程序框圖、編寫源程序、準(zhǔn)備測試數(shù)據(jù)。實(shí)驗(yàn)測試數(shù)據(jù)要求從鍵盤輸入。應(yīng)盡力追求程序的完美。比如要求輸入數(shù)據(jù),應(yīng)當(dāng)顯示提示字符串,提示用戶輸入;輸出時要求有文字說明。在Turbo C下完成程序的編輯、編譯、運(yùn)行,獲得程序結(jié)果。如果結(jié)果有誤,應(yīng)找出原因,并設(shè)法更正之。編制的程序必須保存在D:用戶目錄中。注:用戶目錄可以用學(xué)號或姓名拼音簡寫。四、實(shí)驗(yàn)步驟、過程啟動操作系統(tǒng)。啟動Turbo C集成開發(fā)環(huán)境。(

10、方法與實(shí)驗(yàn)1相同)完成2個程序題。(編輯、保存、編譯連接、運(yùn)行程序,步驟與實(shí)驗(yàn)1相同)退出Turbo C集成開發(fā)環(huán)境,關(guān)機(jī)。五、源程序清單、測試數(shù)據(jù)、結(jié)果。根據(jù)商品原價和折扣率,計算商品的實(shí)際售價程序流程圖:main() 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)行后用

11、戶輸入的數(shù)據(jù),表示回車,以后不再解釋。2、根據(jù)圓柱體的半徑和高,計算圓周長、圓面積、圓柱體表面積、圓柱體體積程序框圖(略)void main()float r,h,pi=3.1415926;float c0,s0,s,v;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=

12、3.142(m2)s=18.850(m2)v=6.283(m3)六、實(shí)驗(yàn)出現(xiàn)的問題、實(shí)驗(yàn)結(jié)果分析(參考)C語言變量先定義后使用,變量名大小寫敏感。scanf輸入數(shù)據(jù),變量應(yīng)當(dāng)使用取地址運(yùn)算。scanf函數(shù)格式字符串中的普通字符要原樣輸入,否則會發(fā)生錯誤。七、實(shí)驗(yàn)小結(jié)若scanf(%f,%f,&price,&discount);如何輸入兩個數(shù)據(jù)?答:scanf函數(shù)格式字符串中非格式字符要求原樣輸入,printf函數(shù)格式字符串中非格式字符在輸出時原樣輸出。由于格式字符串為%f,%f,即要求兩個浮點(diǎn)數(shù)之間由,分隔,所以輸入數(shù)據(jù)時必須輸入,。例如:Input Price,Discount:100,10

13、實(shí)驗(yàn)3:選擇結(jié)構(gòu)程序設(shè)計實(shí)驗(yàn)名稱: 選擇結(jié)構(gòu)程序設(shè)計 實(shí)驗(yàn)類型: 驗(yàn)證性 一、實(shí)驗(yàn)?zāi)康恼莆贞P(guān)系、邏輯運(yùn)算符及其表達(dá)式的正確使用。掌握if語句和switch語句的使用。了解Turbo C程序調(diào)試的基本方法。二、實(shí)驗(yàn)內(nèi)容在Turbo C下完成程序題:有如下函數(shù),要求輸入x的值,求y的值。 |X|,X0Y= X2,0X10 LogX,X10輸入1-7之間的任意數(shù)字,程序按照用戶的輸入輸出相應(yīng)的星期值。某單位馬上要加工資,增加金額取決于工齡和現(xiàn)工資兩個因素:對于工齡大于等于20年的,如果現(xiàn)工資高于2000,加200元,否則加180元;對于工齡小于20年的,如果現(xiàn)工資高于1500,加150元,否則加12

14、0元。工齡和現(xiàn)工資從鍵盤輸入,編程求加工資后的員工工資。三、實(shí)驗(yàn)要求實(shí)驗(yàn)前繪制程序流程圖,編制源程序、準(zhǔn)備測試數(shù)據(jù)。在Turbo C下完成程序的編輯、編譯、運(yùn)行,獲得程序結(jié)果。實(shí)驗(yàn)中可以采用Turbo C程序調(diào)試基本方法協(xié)助查找程序中的邏輯問題。四、實(shí)驗(yàn)步驟、過程編輯、編譯、運(yùn)行程序題1,分別使用數(shù)據(jù)-5,0,5,10,100做測試。編輯、編譯、運(yùn)行程序題2,分別使用數(shù)據(jù)1,7,8做測試。編輯、編譯、運(yùn)行程序題3,測試數(shù)據(jù)見下表:工齡y(年)現(xiàn)工資S0(元)252200221900181700161400嘗試跟蹤程序題1運(yùn)行。用F7或F8鍵單步跟蹤程序,用F7檢查變量值,用F4可以將程序運(yùn)行到

15、光標(biāo)當(dāng)前位置。五、源程序清單、測試數(shù)據(jù)、結(jié)果。給定y=f(x)函數(shù),要求輸入x的值,求y的值。#include main() float x,y; scanf(%f,&x); if(x0) y=fabs(x); else if(x10) y=x*x; else y=log10(x); printf(%fn,y);測試運(yùn)行:-55.00000000.000000525.000000101.0000001002.0000002、輸入1-7之間的任意數(shù)字,程序按照用戶的輸入輸出相應(yīng)的星期值。main() int week; printf(Input(1-7):); scanf(%d,&week);

16、switch(week) case 1:printf(Mon.n); break; case 2:printf(Tue.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); 測試運(yùn)行:Input(1-7):1Mon.Input(1-7):5Fri.Input(1-7

17、):8The input is wrong!3、工資計算。main() float s0,s; int y; printf(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);測試運(yùn)行:Input s0,y:2200,25s=2400.000000Input s0,y:1900,22s=2080.000000Input s0,y:1700,18s=1850.000000Inp

18、ut s0,y:1400,16s=1520.000000六、實(shí)驗(yàn)出現(xiàn)的問題、實(shí)驗(yàn)結(jié)果分析(不要照抄哦,_)求絕對值對于浮點(diǎn)數(shù)要使用函數(shù)fabs。使用abs是對整數(shù)取絕對值。以10為底的對數(shù),應(yīng)當(dāng)使用函數(shù)log10。0X10不能表示為0=x10,否則盡管無語法錯誤,但是含義不正確。case語句與常量之間應(yīng)當(dāng)有空格,否則當(dāng)做語句標(biāo)號處理。如case1:。(使用單步跟蹤發(fā)現(xiàn))。七、實(shí)驗(yàn)小結(jié)程序錯誤分為語法錯誤和邏輯錯誤。語法錯誤可以由編譯器協(xié)助檢查,邏輯錯誤編譯器無法檢查出來。程序邏輯錯誤比語法錯誤更加隱蔽,程序跟蹤可用于發(fā)現(xiàn)程序邏輯錯誤。調(diào)用庫函數(shù)應(yīng)當(dāng)包含對應(yīng)頭文件,幫助進(jìn)行類型匹配檢查和類型轉(zhuǎn)化

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

20、。即零件總數(shù)x從100-200循環(huán)試探,如果滿足所有幾個分組已知條件,那么此時的x就是一個解。分組后多幾個零件這種條件可以用求余運(yùn)算獲得條件表達(dá)式。三、實(shí)驗(yàn)要求實(shí)驗(yàn)前編制源程序、對第2個實(shí)驗(yàn)內(nèi)容需要準(zhǔn)備測試數(shù)據(jù)。在Turbo C下完成程序的編輯、編譯、運(yùn)行。查看、分析程序結(jié)果。四、實(shí)驗(yàn)步驟、過程編輯、編譯、運(yùn)行程序題1。編輯、編譯、運(yùn)行程序題2,分別使用數(shù)據(jù)3,15做測試。編輯、編譯、運(yùn)行程序題3。五、源程序清單、測試數(shù)據(jù)、結(jié)果。用三種循環(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

21、*i+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;

22、 item1000; 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);測試運(yùn)行結(jié)果:Input i:7sum=34Input i:15sum=0(2)用do-while循環(huán)實(shí)現(xiàn)main() int su

23、m=0,i; printf(Input i:);scanf(%d,&i); do sum+=i; i+; while(i=10); printf(sum=%dn,sum);測試運(yùn)行結(jié)果:Input i:7sum=34Input i:15sum=153、窮舉法搜索計算零件總數(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)的問題、實(shí)驗(yàn)結(jié)果分析對于累加問題,

24、獲得的累加值可能超過變量允許的范圍,出現(xiàn)溢出錯誤(邏輯錯誤-編譯時不能發(fā)現(xiàn))。程序題1:原來sum定義為int,后來改為long后程序獲得了正確的結(jié)果。七、實(shí)驗(yàn)小結(jié)變量類型的選擇應(yīng)當(dāng)考慮變量的使用范圍。循環(huán)程序可以用三種結(jié)構(gòu)實(shí)現(xiàn),三種結(jié)構(gòu)一般情況可以相互替換。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)體,即就是說循環(huán)體至少執(zhí)行一次。窮舉法是利用計算機(jī)高速計算能力試探搜索求解復(fù)雜問題的一種很好的方法。實(shí)驗(yàn)5:數(shù)組程序設(shè)計實(shí)驗(yàn)名稱: 數(shù)組程序設(shè)

25、計 實(shí)驗(yàn)類型: 驗(yàn)證型 一、實(shí)驗(yàn)?zāi)康恼莆找痪S數(shù)組和二維數(shù)組的定義、初始、數(shù)組元素引用。掌握一維數(shù)組和二維數(shù)組的輸入/輸出。掌握與數(shù)組有關(guān)的算法。二、實(shí)驗(yàn)內(nèi)容編制程序,求Fibonachi數(shù)列的前10項。提示:Fibonachi的第1,2項分別為1,1。其后任何一項滿足ai=ai-2+ai-1。編寫找出1100之間能被7或11整除的所有整數(shù),存放在數(shù)組a中,并統(tǒng)計其個數(shù)。要求以每行排列5個數(shù)據(jù)的形式輸出a數(shù)組中的數(shù)據(jù)。設(shè)有44的方陣,其中的元素由鍵盤輸入。求出(1)主對角線上元素之和;(2)輔對角線上元素之積;(3)方陣中最大的元素。提示:主對角線元素行、列下標(biāo)相同;輔對角線元素行、列下標(biāo)之和等

26、于方陣的最大行號(或最大列號)下標(biāo)、行列號基于0。三、實(shí)驗(yàn)要求編制源程序,對于程序3輸入測試數(shù)據(jù)。在Turbo C下完成程序的編輯、編譯、運(yùn)行。查看、分析程序結(jié)果。四、實(shí)驗(yàn)步驟、過程編輯、編譯、運(yùn)行程序題1。編輯、編譯、運(yùn)行程序題2。編輯、編譯、運(yùn)行程序題3。測試數(shù)據(jù):1 2 3 45 6 7 89 10 11 1213 14 15 16五、源程序清單、測試數(shù)據(jù)、結(jié)果。1、求Fibonachi數(shù)列的前10項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); pri

27、ntf(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=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)主對角線上元素之和;(

28、2)輔對角線上元素之積;(3)方陣中最大的元素。#include #define N 4main() int aNN,s1=0,s2=1,max=0,i,j; for(i=0; iN; i+) for(j=0; jN; 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)的問題、實(shí)驗(yàn)結(jié)果分析數(shù)組下標(biāo)范圍容

29、易搞錯,容易產(chǎn)生越界錯誤。利用scanf()輸入數(shù)據(jù)時取地址符號(&)容易忘記。七、實(shí)驗(yàn)小結(jié)典型算法需要在理解的基礎(chǔ)上記憶。實(shí)驗(yàn)8:字符數(shù)組與字符串函數(shù)實(shí)驗(yàn)名稱: 字符數(shù)組與字符串函數(shù) 實(shí)驗(yàn)類型: 驗(yàn)證型 一、實(shí)驗(yàn)?zāi)康恼莆兆址麛?shù)組的定義、初始、數(shù)組元素引用、輸入輸出。掌握字符數(shù)組的處理掌握常用字符串處理函數(shù)二、實(shí)驗(yàn)內(nèi)容編制程序:對鍵盤輸入的字符串進(jìn)行逆序,逆序后的字符串仍然保留在原來字符數(shù)組中,最后輸出。(不得調(diào)用任何字符串處理函數(shù),包括strlen)例如:輸入hello world 輸出dlrow olleh編寫程序:對從鍵盤任意輸入的字符串,將其中所有的大寫字母改為小寫字母,而所有小寫字母

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

31、做測試。編輯、編譯、運(yùn)行程序題2,使用數(shù)據(jù):Hello World做測試。編輯、編譯、運(yùn)行程序題3,使用數(shù)據(jù):SpanishChinaAmericaJapan做測試。五、源程序清單、測試數(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);測試運(yùn)行結(jié)果:hello worlddlrow olleh2、大寫變小寫,小寫變大寫#include main() char

32、s100; int i; gets(s); for(i=0; si!=0; i+) if(si=A&si=a&si=z)si-=32; puts(s);測試運(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

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

34、6:函數(shù)的定義與調(diào)用實(shí)驗(yàn)名稱: 函數(shù)的定義與調(diào)用 實(shí)驗(yàn)類型: 綜合型 一、實(shí)驗(yàn)?zāi)康恼莆蘸瘮?shù)定義(返回、函數(shù)名、參數(shù)、函數(shù)體),調(diào)用。掌握函數(shù)的聲明嵌套調(diào)用、遞歸調(diào)用。二、實(shí)驗(yàn)內(nèi)容編制函數(shù)fun,其功能是:刪除一個字符串中指定的字符。要求:原始字符串在主函數(shù)中輸入,處理后的字符串在主函數(shù)中輸出。例如:輸入“I am a teacher,you are a student”和e輸出“I am a tachr,you ar a studnt”。編制函數(shù)sortstr,其功能是對多個字符串進(jìn)行排序。要求:欲排序的字符串在主函數(shù)中輸入,排好序的字符串在主函數(shù)中輸出。提示:排序算法可參照實(shí)驗(yàn)9第4題,即將

35、排序算法改為由一個函數(shù)sortstr實(shí)現(xiàn)。掌握函數(shù)聲明的使用。三、實(shí)驗(yàn)要求1、2題編制源程序和測試數(shù)據(jù);在Turbo C下完成程序的編輯、編譯、運(yùn)行并分析程序結(jié)果。3題按實(shí)驗(yàn)步驟完成,認(rèn)真觀察,仔細(xì)思考思考題。四、實(shí)驗(yàn)步驟、過程編輯、編譯、運(yùn)行程序題1。使用字符串:“I am a teacher,you are a student”以及字符e做測試。編輯、編譯、運(yùn)行程序題2。使用數(shù)據(jù):“Spanish”、“China”、“America”、“Japan”、“England”做測試。掌握函數(shù)聲明的使用輸入下面程序,編譯、連接,如果沒有輸錯,應(yīng)該提示成功。運(yùn)行獲得正確結(jié)果100。float fun

36、(float f) return f*f;void main() float k;k=fun(10.0); printf(%fn,k);把fun函數(shù)移到main()函數(shù)之后,再次編譯,提示錯誤:Type mismatch in redeclaration of fun,(重新定義了fun,類型不一致)。提示:移動一塊程序可以用KB,KK定義要移動的塊,然后移動光標(biāo)到要移動的目標(biāo)位置,KV移動程序塊。另外,KC還可以復(fù)制一塊程序,試試吧!在main()函數(shù)前增加函數(shù)聲明float fun(float f);,再次編譯,提示成功并能正確運(yùn)行獲得結(jié)果。思考:在什么情況需要函數(shù)聲明?五、源程序清單、測

37、試數(shù)據(jù)、結(jié)果。刪除字符串中指定的字符#include void fun(char ,char);void main() char s100,c; gets(s); c=getchar(); fun(s,c); puts(s);void fun(char s,char c) int i,j; for(i=0; si!=0; i+) if(si=c) for(j=i; sj!=0; j+) sj=sj+1; 測試運(yùn)行:I am a teacher,you are a studenteI am a tachr,you ar a studnt字符串進(jìn)行排序(選擇法)#include void sort

38、str(char s20,int n) int i,j; for(i=0; in-1; i+) for(j=i+1; j0) char t20; strcpy(t,si); strcpy(si,sj); strcpy(sj,t); void main() char s520; int i; for(i=0; i5; i+)gets(si); sortstr(s,5); for(i=0; i5; i+)puts(si);測試運(yùn)行:SpanishChinaAmericaJapanEnglandAmericaChinaEnglandJapanSpanish函數(shù)聲明的使用float fun(float

39、 f) return f*f;void main() float k;k=fun(10.0); printf(%fn,k);或:float fun(float f);void main() float k;k=fun(10.0); printf(%fn,k);float fun(float f) return f*f;是正確的程序形式。六、實(shí)驗(yàn)小結(jié)通過編制兩個函數(shù),您認(rèn)為定義函數(shù)的關(guān)鍵是什么?答:定義函數(shù)的關(guān)鍵是確定函數(shù)頭。確定了函數(shù)頭就確定了函數(shù)的整體框架。應(yīng)該在理解函數(shù)功能基礎(chǔ)上,確定函數(shù)形式參數(shù)(出入口參數(shù))、返回值類型(出口參數(shù)),進(jìn)而確定函數(shù)頭。在什么情況需要函數(shù)聲明?答:函數(shù)調(diào)用出

40、現(xiàn)在函數(shù)定義前時,應(yīng)該在函數(shù)調(diào)用前進(jìn)行函數(shù)聲明。這樣,可以使編譯器在函數(shù)調(diào)用時就可以明確函數(shù)調(diào)用格式,產(chǎn)生正確的編譯目標(biāo)代碼。實(shí)驗(yàn)7:指針實(shí)驗(yàn)名稱: 指針 實(shí)驗(yàn)類型: 驗(yàn)證型 一、實(shí)驗(yàn)?zāi)康倪M(jìn)一步理解指針概念。掌握指針變量的定義、初始化以及通過指針變量對數(shù)據(jù)的訪問。掌握指針與一維數(shù)組的關(guān)系。二、實(shí)驗(yàn)內(nèi)容運(yùn)行下面程序,理解指針的概念。main()int a10=1,2,3,4,5,6,7,8,9,10;int *p;for(p=a; p=A&*p=a&*p=0&*p=9)c2+;else if(*p= ) c3+;p+;printf(%dt%dt%dt%dn,c0,c1,c2,c3);測試運(yùn)行:H

41、ello World! 3.14 WB4 8 3 3六、實(shí)驗(yàn)思考程序1中“p=A&*p=a&*p=0&*p=9”分別表示什么含義?這幾個條件表達(dá)式太長,Turbo C有無系統(tǒng)函數(shù)可以替代?程序2中“int c4=0;”定義的數(shù)組是什么作用?c0-c3分別代表什么?程序2中“char s100;”定義的數(shù)組是什么作用?假設(shè)int *p1;float *p2;那么p1=p1+5,p2=p2+5分別是什么含義?賦值后p1、p2存放的地址值分別增加了多少?假設(shè)float *p;請問p,*p,&p分別代表什么?畫圖表示。假設(shè)p是一個指針變量,指針變量p為什么必須初始化后,才可以用*p訪問?畫圖表示。兩個

42、程序?qū)χ羔樀某跏蓟謩e用哪條語句完成?實(shí)驗(yàn)8:文件實(shí)驗(yàn)名稱: 文件 實(shí)驗(yàn)類型: 驗(yàn)證型 實(shí)驗(yàn)準(zhǔn)備:數(shù)據(jù)文件d1.txt,d2.txt,din.txt一、實(shí)驗(yàn)?zāi)康?、掌握文件輸入/輸出的操作過程。2、掌握文件的基本打開方式3、掌握文件常用文件函數(shù)的應(yīng)用二、實(shí)驗(yàn)內(nèi)容將兩個文本文件連接成一個文本文件。給文本文件加上行號后存儲到另外一個文本文件.提示:讀文件一行函數(shù)int getline(FILE *fp, char buffer )由教師提供。函數(shù)功能:從fp指向的文本文件中讀取一行,并存放在緩沖區(qū)buffer中。返回值:0正常讀取以n結(jié)束的文本行,文件沒有結(jié)束;1讀取到一部分文本,文件結(jié)束;2未讀

43、取到文本,文件結(jié)束。三、實(shí)驗(yàn)要求理解題意,編制程序和測試數(shù)據(jù)文件。程序應(yīng)當(dāng)詳細(xì)注釋。四、實(shí)驗(yàn)步驟、過程(學(xué)生自行填寫,填寫程序?qū)崿F(xiàn)過程)五、源程序清單、測試數(shù)據(jù)、結(jié)果。兩個文件連接#include void main()char n180,n280,n380;FILE *fp1,*fp2,*fp3;char ch;printf(.link two file.n);printf(first file :); gets(n1);printf(second file:); gets(n2);printf(linked file:); gets(n3);fp1=fopen(n1,r);fp2=fopen(n2,

溫馨提示

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

最新文檔

評論

0/150

提交評論