C語言程序設(shè)計(jì)上機(jī)指導(dǎo)書及答案_第1頁
C語言程序設(shè)計(jì)上機(jī)指導(dǎo)書及答案_第2頁
C語言程序設(shè)計(jì)上機(jī)指導(dǎo)書及答案_第3頁
C語言程序設(shè)計(jì)上機(jī)指導(dǎo)書及答案_第4頁
C語言程序設(shè)計(jì)上機(jī)指導(dǎo)書及答案_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、姓 名:_學(xué) 號(hào):_專 業(yè):_ 日 期:_指導(dǎo)原則: 促進(jìn)學(xué)生針對(duì)實(shí)際問題,用所學(xué)C語言知識(shí)編寫符合規(guī)范的源程序代碼,在某一集成開發(fā)環(huán)境下盡一切調(diào)試技能調(diào)試程序,并對(duì)運(yùn)行結(jié)果進(jìn)行分析處理,得出正確結(jié)論,解決好實(shí)際問題。更快更好地掌握所學(xué)知識(shí),技能和軟件的一向開發(fā)方法目的:1, 通過上機(jī)實(shí)驗(yàn),加深對(duì)教材內(nèi)容的理解,特別是一些語法規(guī)定,熟練掌握各種語法規(guī)則。2, 通過上機(jī)實(shí)驗(yàn),熟悉某個(gè)C語言集成開發(fā)環(huán)境。掌握集成開發(fā)環(huán)境下程序的編輯、編譯與連接、運(yùn)行的完整過程3, 通過上機(jī)實(shí)驗(yàn),要學(xué)會(huì)調(diào)試程序。能根據(jù)系統(tǒng)給出的“出錯(cuò)信息”,判斷錯(cuò)誤所在,并修改錯(cuò)誤,使程序正確運(yùn)行。要求:1, 復(fù)習(xí)與本次實(shí)驗(yàn)相關(guān)的

2、教學(xué)內(nèi)容2, 了解集成開發(fā)環(huán)境的操作步驟3, 準(zhǔn)備好實(shí)驗(yàn)內(nèi)容。對(duì)于編程題,一定要自己動(dòng)手,書寫工整,并人工檢查無誤后才能上機(jī)實(shí)驗(yàn),以提高上機(jī)效率。4, 要準(zhǔn)備好調(diào)試和運(yùn)行程序時(shí)所需的數(shù)據(jù)。5, 對(duì)運(yùn)行中可能出現(xiàn)的問題事先作出估計(jì),并對(duì)程序中有疑問的地方作上標(biāo)記,以便在運(yùn)行時(shí)給予注意。并在程序調(diào)試時(shí),把系統(tǒng)給出的出錯(cuò)原因,解決方法等記載在源程序之后;程序運(yùn)行結(jié)束后,把運(yùn)行結(jié)果也記錄下來。6,每個(gè)實(shí)驗(yàn)應(yīng)獨(dú)立完成,對(duì)實(shí)際問題所編寫的源程序需寫出完整實(shí)驗(yàn)的報(bào)告。 第一次上機(jī)作業(yè) 熟悉C語言集成開發(fā)環(huán)境實(shí)驗(yàn)?zāi)康模?, 熟悉C語言集成開發(fā)環(huán)境2, 掌握集成開發(fā)環(huán)境下文件的編寫與調(diào)用,源程序的編譯與調(diào)試,程

3、序運(yùn)行結(jié)果的觀察與分析。3, 掌握C語言程序的基本結(jié)構(gòu)實(shí)驗(yàn)要求: 1, 程序編寫完后,要對(duì)輸入的每一個(gè)符號(hào)和詞進(jìn)行檢查核對(duì),不能有錯(cuò)。 2,編寫源程序時(shí),不要在中文輸入法下進(jìn)行,也不要有首字符大寫,否則調(diào)試時(shí),會(huì)有錯(cuò)誤。實(shí)驗(yàn)內(nèi)容: 1, 在D盤新建文件夾:D:C語言程序(所在班級(jí)如)(自己學(xué)號(hào)或姓名如01),作為以后所做程序的存放位置。注:每次換機(jī)器須重復(fù)此操作。2, 編輯,編譯,運(yùn)行下面程序并存盤,文件名為ex1_1.c/* 輸出信息的C源程序,文件名為ex1_1.c */#include”stdio.h”void main() printf(“Hello, Everyone n Study

4、 hard!n”); 輸出結(jié)果為 Hello, Everyone Study hard!3, 調(diào)入文件ex1_1.c,把程序修改成下面形式,運(yùn)行,存盤,文件名為ex1_2.c/* 輸出信息的C源程序,文件名為ex1_2.c */#include”stdio.h”void main() printf(“Hello, Everyone n ”); printf(“ Study hard!n”);輸出結(jié)果為 Hello, Everyone Study hard _, ”n”的作用是 換行4, 編輯,編譯,運(yùn)行下面程序并存盤,文件名為ex1_3.c/* 計(jì)算圓面積的程序,文件名為ex1_3.c */#

5、include”stdio.h”void main() float r,area; printf(“r=?”); scanf(“%f”,&r); area=3.*r*r; printf(“arear=%fn”,area);第一次運(yùn)行時(shí)輸入1,運(yùn)行結(jié)果為 area=3.再次運(yùn)行時(shí)輸入10,運(yùn)行結(jié)果為 area=314.把語句printf(“arear=%fn”,area);修改為:printf(“arear(%0.1f)=%fn,r,area);后,運(yùn)行時(shí)輸入10,這時(shí)程序的運(yùn)行結(jié)果為_area(10.0)=314.操作步驟: 一, TurboC 2.0集成開發(fā)環(huán)境(1) 熟悉C語言集成開發(fā)環(huán)境

6、進(jìn)入集成開發(fā)環(huán)境(菜單模式):執(zhí)行文件TC.EXE文件菜單(file):FILE中有:NEW(新建文件),LOAD(或OPEN打開或調(diào)入文件),SAVE(保存文件),SAVEAS,QUIT(退出C語言集成開發(fā)環(huán)境)編譯菜單(compile): COMPILE TO OBJ (路徑名文件名)運(yùn)行菜單(run): RUN , USER SCREEN選項(xiàng)(option):DIRECTORY(注明TC。EXE的當(dāng)前目錄路徑,路徑不符合,編譯程序找不到庫函數(shù)所在頭文件,編譯會(huì)出錯(cuò))從菜單進(jìn)入編輯區(qū)的按鍵:Enter從編輯區(qū)進(jìn)入菜單的按鍵:F10注:運(yùn)行出錯(cuò)時(shí),按F10也可回到菜單區(qū),按EDIT進(jìn)入編輯區(qū)

7、(2) 掌握C語言源程序的編寫(new(FILE)),編譯(compile to obj(COMPILE),運(yùn)行(run(RUN),觀察結(jié)果(user screen(RUN)四個(gè)步驟。編譯出錯(cuò)時(shí),按ENTER鍵,然后在光標(biāo)所在行或上一行查找出錯(cuò)位置。同時(shí)在頂行紅字部分(英文提示)找出錯(cuò)原因。(3) 掌握一定的調(diào)試方法。方法:在已編譯好的程序中人為制造錯(cuò)誤(如刪除標(biāo)點(diǎn)符號(hào),改錯(cuò)保留字(int, printf, scanf),確定出錯(cuò)位置(光標(biāo)所在行),猜測出錯(cuò)原因(根據(jù)頂行英文提示)。 二,Visual C+6.0集成開發(fā)環(huán)境1,啟動(dòng)Visual C+ 6.0環(huán)境方法:單擊 “開始”-“程序”-

8、“Microsoft Visual studio 6.0”-“Microsoft Visual C+ 6.0”命令,啟動(dòng)Visual C+,VC6主窗口如下:菜單欄項(xiàng)目工作區(qū)標(biāo)題欄輸出區(qū)工具欄狀態(tài)欄文件編輯區(qū)2. 編輯源程序文件(1)建立新工程項(xiàng)目單擊“文件”“新建”,彈出“新建”對(duì)話框。單擊“工程”選項(xiàng)卡;單擊“Win32 Console Application”選項(xiàng);“工程文件”框中輸入項(xiàng)目名(如gc1);“位置”框輸入文件保存文件夾或單擊“”打開文件夾瀏覽窗口,選擇新項(xiàng)目文件所需保存的位置,單擊“確定”按鈕。 彈出“Win32 Console Application Step 1of 1

9、”對(duì)話框,在對(duì)話框中單擊“An empt project”按鈕和“完成”按鈕。系統(tǒng)顯示“新建工程信息”對(duì)話框。單擊“確定”按鈕。 (2) 建立新項(xiàng)目中的文件單擊“文件”-“新建”,彈出“新建”對(duì)話框。 選擇“文件”選項(xiàng)卡。單擊“C+ Source File”選項(xiàng),在“文件”文件框中輸入文件名,單擊“確定”按鈕。系統(tǒng)自動(dòng)返回VC6主窗口。顯示文件編輯區(qū)窗口,在文件編輯區(qū)窗口輸入源程序文件。 3, 編譯和連接方法一:選擇主窗口菜單欄中“編譯”菜單項(xiàng);系統(tǒng)彈出下拉菜單,選擇“構(gòu)件”菜單命令。方法二:單擊主窗口編譯工具欄上的 “Build”按鈕進(jìn)行編譯和連接。注:(1)系統(tǒng)對(duì)程序文件進(jìn)行編譯和連接,生

10、成以項(xiàng)目名稱命名的可執(zhí)行目標(biāo)代碼文件.exe。(2)編譯連接過程中,系統(tǒng)如發(fā)現(xiàn)程序有語法錯(cuò)誤,則在輸出區(qū)窗口中顯示錯(cuò)誤信息,給出錯(cuò)誤的性質(zhì)、出現(xiàn)位置和錯(cuò)誤的原因等。如果雙擊某條錯(cuò)誤,編輯區(qū)窗口右側(cè)出現(xiàn)一個(gè)箭頭,指示再現(xiàn)錯(cuò)誤的程序行。用戶據(jù)此對(duì)源程序進(jìn)行相應(yīng)的修改,并重新編譯和連接,直到通過為止。 4. 執(zhí)行方法一:單擊“編譯”菜單中“執(zhí)行”命令。方法二:單擊主窗口編譯工具欄上的 “Build Execute”按鈕來執(zhí)行編譯連接后的程序運(yùn)行成功,屏幕上輸出執(zhí)行結(jié)果,并提示信息:“Press any key to continue”。此時(shí)按任意鍵系統(tǒng)都將返回VC6主窗口。注:在執(zhí)行程序過程中出現(xiàn)運(yùn)

11、行錯(cuò)誤。用戶要修改源程序文件并且重新編譯、連接和執(zhí)行。第二次上機(jī)作業(yè) 掌握基本數(shù)據(jù)類型在程序中的正確應(yīng)用實(shí)驗(yàn)?zāi)康模? 熟悉C語言集成開發(fā)環(huán)境及程序編寫、編譯、運(yùn)行,觀察運(yùn)行結(jié)果2 掌握基本的調(diào)試技巧(缺少標(biāo)點(diǎn)符號(hào),函數(shù)名錯(cuò)誤或不一致)3 熟悉C語言基本數(shù)據(jù)類型(int,long,unsigned int,float,double,char)的輸入,輸出格式(%d,%ld,%f,%lf,%c,%o,%x,%u)實(shí)驗(yàn)內(nèi)容:1, 輸入半徑,求圓的面積(要求圓周率用符號(hào)常量表示)(查錯(cuò)改錯(cuò)1: 圓周率的定義名與使用名不一致; 查錯(cuò)改錯(cuò)2: 面積的輸出格式用%d)。作業(yè)1程序如下,調(diào)試改正兩處錯(cuò)誤 ,正

12、確運(yùn)行后將文件保存為ex2_1.c#define pi 3.#includestdio.hmain() float area,banjing; printf(please enter a datan); scanf(%f,&banjing); area=p*banjing*banjing; /* 圓周率的定義名pi與使用名p不一致*/ printf(n the area of yuan is %dn,area); /* 面積的輸出格式%d改為%f */ A)調(diào)試,語法錯(cuò)誤如下: 出錯(cuò)信息為: D:vcfileex1ex.cpp(7) : error C2065: p : undeclared

13、identifier 中文意思為:符號(hào)p沒有定義。 錯(cuò)誤原因及更正:圓周率的定義名pi與使用名p不一致,p改為pi運(yùn)行 B)觀察及分析運(yùn)行結(jié)果,邏輯錯(cuò)誤 分析:半徑為3時(shí),圓的面積應(yīng)為:pi3328.,不能為負(fù)數(shù)。 查錯(cuò):先查面積變量area的輸出格式,再往上逆推查其運(yùn)算方法,最后查其定義 錯(cuò)誤原因及更正:面積的輸出格式%d(整數(shù))改為%f (實(shí)數(shù)或單精度浮點(diǎn)數(shù)) 2,調(diào)入ex2_1.c 另存為ex2_2.c,并做如下修改后,保存調(diào)試運(yùn)行程序,觀察系統(tǒng)出出錯(cuò)信息(英文),并翻譯成中文。注:每改一次,就調(diào)試一次。 1)將語句:float area,banjing;改為:floatarea,ban

14、jing;則出錯(cuò)信息為:F:C語言作業(yè) 1.cpp(4) : error C2065: floatarea : undeclared identifierF:C語言作業(yè)1.cpp(4) : error C2065: banjing : undeclared identifierF:C語言作業(yè) 1.cpp(7) : error C2065: area : undeclared identifier中文意思為:文件的第四行有錯(cuò),符號(hào)floatarea沒有定義錯(cuò)誤原因及更正:floatarea中float 與area之間少了空格,加上空格 2) 將語句:printf(”please enter a

15、datan”); 改為:printf(”please enter a datan”)則出錯(cuò)信息為:F:C語言作業(yè) 1.cpp(6) : error C2146: syntax error : missing ; before identifier scanf中文意思為:文件的第六行有錯(cuò)錯(cuò)誤原因及更正:少了“;”,在第六行后加上“;” 3) 將語句:scanf(“%f”,&banjing); 改為:scan(“%f”,&banjing);則出錯(cuò)信息為:F:C語言作業(yè)1.cpp(6) : error C2065: scan : undeclared identifier中文意思為:文件第六行sca

16、n沒有定義錯(cuò)誤原因及更正:scan后少了f,加上f 4) 將語句: float area,banjing;中英文標(biāo)點(diǎn)符號(hào)“;”或“,”,改為中文輸入法全角字符后,再輸入同樣標(biāo)點(diǎn) 則出錯(cuò)信息為:F:C語言作業(yè)1.cpp(4) : error C2018: unknown character 0xa3F:C語言作業(yè)1.cpp(4) : error C2018: unknown character 0xacF:C語言作業(yè)1.cpp(5) : error C2146: syntax error : missing ; before identifier printf中文意思為:系統(tǒng)不能識(shí)別字符“,”錯(cuò)

17、誤原因及更正:將“,”改為英文輸入法輸出的“,” 第三次上機(jī)作業(yè) 運(yùn)算符與表達(dá)式的使用實(shí)驗(yàn)?zāi)康模?, 熟悉C語言集成開發(fā)環(huán)境和熟悉C語言程序結(jié)構(gòu)2, 掌握一定的調(diào)試技巧。3, 熟悉運(yùn)算符與表達(dá)式的正確使用。作業(yè)內(nèi)容要求:1, 程序填空,以下程序輸入3個(gè)整數(shù)值 給a,b,c,程序把b中的值給a,把c中的值給b,把a(bǔ)中的值給c,交換后輸出a,b,c的值,例如輸入1 2 3,輸出a=2,b=3,c=1 #includestdio.hvoid main() int a,b,c, t; printf(enter a,b,c:); scanf(%d%d%d,&a,&b,&c); /*輸入a,b,c的值*/

18、 t=a; a=b; /*把b中的值給a,*/b=c;c=t; /* 把a(bǔ)的原來值給c*/ printf(a=%d b=%d c=%dn,a,b,c); */ 1,填空后,運(yùn)行程序,結(jié)果如下:enter a, b,c:1 2 3 a=2, b=3, c=1 2,在程序輸出語句前插入語句:clrscr(); 根據(jù)運(yùn)行結(jié)果,說明其作用_TC下清屏命令 在程序輸出語句后插入語句:getchar();根據(jù)運(yùn)行結(jié)果,說明其作用_等待鍵盤輸入字符 2, 調(diào)試以下程序(劃橫線處有錯(cuò)),寫出運(yùn)行結(jié)果并簡要回答為什么(即了解程序的運(yùn)行過程)#include”stdio.h”main() intx,y,z; x=

19、6;y=100;z=(+x)/(y-);printf(“x=%d,y=%d,z=%dn”,x,y,z); z=(x+y-)*(x+) printf(“x=%d,y=%d,z=%dn”,x,y,z); 運(yùn)行結(jié)果:x=7,y=99,z=0x=8,y=98,z=742第四次上機(jī)作業(yè) 掌握順序結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)?zāi)康模?, 熟悉C語言集成開發(fā)環(huán)境和熟悉C語言程序結(jié)構(gòu)5, 掌握一定的調(diào)試技巧。6, 熟悉運(yùn)算符與表達(dá)式的正確使用。7, 掌握語句的正確書寫,學(xué)會(huì)編寫順序結(jié)構(gòu)的程序。作業(yè)內(nèi)容要求:1, 編寫程序求解:已知半徑r=3厘米(cm).求球的體積v;源程序代碼 上機(jī)調(diào)試后,源程序中需修改的對(duì)應(yīng)部分#inc

20、ludestdio.h#define pi 3.void main() float a,b,r=3; double v; a=4.0; b=3.0; v=(a/b)*pi*r*r*r; printf(v=%fn,v); 程序運(yùn)行結(jié)果:v=113.2, 以下叁個(gè)程序,選一個(gè)做。1) 輸入兩個(gè)整數(shù),求其和,差,積,商和余數(shù)2) 輸入一個(gè)三位數(shù),依次輸出其個(gè)位數(shù)字,十位數(shù)字,百位數(shù)字。3) 用公式求三角形的面積(其中,a,b,c為三角形的三邊長)要求:1, 確定所需的輸入變量,輸出變量,中間變量的個(gè)數(shù)及命名,并為其選取正確的數(shù)據(jù)類型。2, 根據(jù)正確的邏輯順序書寫程序。(變量先說明再賦值后使用;先輸入

21、再處理后輸出;3, 每次輸出必須有提示信息。如:printf(“n x+y=%f”,x+y);其中:x+y= 是提示信息。 題號(hào): 第3題源程序代碼:#include #include void main() float a,b,c; double area; scanf(%f%f%f,&a,&b,&c); if(a=b+c | b=a+c | c=a+b|a=0|b=0|c 源程序中需修改的對(duì)應(yīng)部分#include #include - #include main() int a,b,c;float s,are; - double s,area; a=3,b=4,c=5;printf(“en

22、ter three datasn”);scanf(“%d%d%d”,a,b,c); -scanf(%d%d%d,&a,&b,&c); s=1/2*(a+b+c); - s=1.0/2*(a+b+c); area=sqrt(s-a)*(s-b)*(s-c)*s; - area=sqrt(s-a)*(s-b)*(s-c)*s); printf(“a=%d,b=%d,c=%dnarea=%d”,a,b,c,area); - area=%f2, 編程求三角形面積:,(C的單位為度數(shù),庫函數(shù)中自變量單位為弧度數(shù))(已知:a=5, b=3, C=30o)注意:1,表達(dá)式的正確書寫格式,2,程序的設(shè)計(jì)方法,

23、3,檢查、核實(shí)程序的順序的正確性代碼:#define pi 3.#include #include void main() int a,b; double c,s; a=5,b=3; c=(1.0/180)*pi*30; s=(1.0/2)*a*b*sin(c); printf(s=%lfn,s);運(yùn)行結(jié)果:s=3.第六次上機(jī)作業(yè) 分支結(jié)構(gòu)程序?qū)嶒?yàn)?zāi)康模?, 熟悉輸入輸出格式的使用2, 掌握邏輯運(yùn)算符的特殊運(yùn)算規(guī)則3, 了解簡單的分支結(jié)構(gòu)程序設(shè)計(jì)4, 學(xué)會(huì)閱讀程序的基本技巧(參考第七講:分析程序運(yùn)行過程)上機(jī)內(nèi)容:1, 閱讀下面程序,計(jì)算運(yùn)行結(jié)果,然后上機(jī)驗(yàn)證。#include void ma

24、in() int c,d,e; double a,b,t; a=3.6,b=-3.2; if(ab) t=a; a=b;b=t; /* 思考該復(fù)合語句的功能 */ printf(“n%5.2f,%5.2f”,a,b) c=1,d=1; e=-c&d-;/* 注意運(yùn)算符的優(yōu)先級(jí)和運(yùn)算規(guī)則 */ printf(“nc=%d,d=%d,e=%d”,c,d,e); e=+d|c+; pirntf(“nc=%d,d=%d,e%d”,c,d,e);運(yùn)行結(jié)果:-3.20,3.60 c=0,d =1,e=0 c=0,d=2,e=02, 程序填空,輸入x值,計(jì)算下面的函數(shù)值 ,并輸出結(jié)果 程序如下: #incl

25、udestdio.hvoid main() double x,y; scanf(%lf,&x); /x類型與輸入格式 if(x1) y=x; else if(x10) y=2*x-1; /分段函數(shù)的條件及表達(dá)式 else y=3*x-11; /表達(dá)式 printf(y= %lf n,y); 運(yùn)行結(jié)果:5 y=9. 3,編程求x程序代碼:#includestdio.hvoid main() double x,y; printf(enter x:); scanf(%lf,&x); if(x0,b0,c0):n); scanf(%d%d%d,&a,&b,&c); if(a+bc)&(a+cb)&(b

26、+ca) /任意兩邊之和大于第三邊 s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); printf(area=%6.2fn,area); / 輸出面積 else printf(nthree data a,b,c cant form a trianglen);運(yùn)行結(jié)果:enter three positive numbers a b c(a0,b0,c0):3 4 5 area= 6.002, 編程求一元二次方程的根 根據(jù)不同的系數(shù)a,b,c有以下的幾種情況:1, 時(shí),方程有兩不等實(shí)根x1,x22, 時(shí),方程有兩相等實(shí)根x1x23, 時(shí),方程有兩共軛

27、虛根x1,x2 4,時(shí),方程為bxc=0, 根為x=-c/b; 5, 時(shí),方程無解 6,時(shí),方程有無窮解(x可為任意值) 源程序代碼:#include #include void main() float a ,b,c,disc,x1,x2,y1,y2; printf(please enter:a,b,cn); scanf(%f,%f,%f,&a,&b,&c); disc=b*b-4*a*c; if(a=0) if (b=0) if (c=0) printf(the quadratic equation has many rootsn); else printf(the quadratic e

28、quation has no rootn); else x1=x2=-c/b; printf(x1=x2=%.2fn,x1); else if(disc=0) x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a); printf(the roots of the quadratic equation:x1=%.2f,x2=%.2fn,x1,x2); else x1=x2=-b/(2*a); y1=y2=sqrt(abs(disc)/(2*a); printf(the roots of the quadratic equation:x1=%.2f+%.

29、2fi,x2=%.2f-%.2fin,x1,y1,x2,y2); 動(dòng)態(tài)測試:數(shù)據(jù)準(zhǔn)備,根據(jù)前面分析,應(yīng)準(zhǔn)備6組數(shù)據(jù)第一組數(shù)據(jù):a=1,b=2,c=-3 運(yùn)行結(jié)果: the roots of the quadratic equation:x1=1.00,x2=-3.00第二組數(shù)據(jù):a=1,b=2,c=1運(yùn)行結(jié)果:the roots of the quadratic equation:x1=-1.00,x2=-1.00第三組數(shù)據(jù):a=1,b=2,c=2 運(yùn)行結(jié)果:the roots of the quadratic equation:x1=-1.00+1.00i,x2=-1.00-1.00i第四組

30、數(shù)據(jù):a=0,b=2,c=3運(yùn)行結(jié)果:the roots of the quadratic equation:x1=x2=-1.5第五組數(shù)據(jù):a=0,b=0,c=1 運(yùn)行結(jié)果:the quadratic equation has no any root 第六組數(shù)據(jù):a=b=c=0 運(yùn)行結(jié)果:the quadratic equation has many roots 第八次上機(jī)作業(yè) 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(一)實(shí)驗(yàn)?zāi)康模?,掌握程序的基本設(shè)計(jì)方法(能分析具體問題的算法,輸入輸出,流程)2,掌握while循環(huán)的語義、語法和它的使用。(能根據(jù)流程寫程序,根據(jù)程序?qū)懥鞒蹋?,能正確閱讀程序,根據(jù)問題說明把程

31、序補(bǔ)充完整上機(jī)內(nèi)容:1, 填空,使程序完整問題說明:輸出所有水仙花數(shù)。(水仙花數(shù)是三位自然數(shù),其各位數(shù)字的立方和等于該數(shù),例:153)程序:#includestdio.hmain()int I,x,y,z; /變量或函數(shù)說明 I=100; while(I1000) /循環(huán)條件三位自然數(shù) x=I/100; y= I/10%10; /求I的十位數(shù)字 z=I%10; if(I= =x*x*x+y*y*y+z*z*z) /水仙花數(shù)的判斷條件:立方和等于該數(shù) printf(%dn, I); I+; 運(yùn)行結(jié)果:n=153 n=370 n=371 n=4072, 編程求解問題:一個(gè)皮球從50米高處落下,每次

32、反彈的高度為原高度的,求至少經(jīng)過多少次反彈后,反彈的高度才小于1米?提示:先弄清皮球的運(yùn)動(dòng)路線??稍O(shè)變量,下落高度h1,反彈高度h2,反彈次數(shù)n。每次的反彈高度等于下次的下落高度。源程序代碼 :#include#includevoid main()float h1,h2;h1=50.0;int n;n=1;while(n20) h2=pow(2.0/3,n)*h1; if(h21) printf(n=%d,h2=%fn,n,h2);break; n+;上機(jī)結(jié)果_n=10,h2=0._反彈高度為原來的1/4時(shí),運(yùn)行結(jié)果_n=3,h2=0._第九次上機(jī)作業(yè) 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(二)實(shí)驗(yàn)?zāi)康模?,掌握

33、程序的基本設(shè)計(jì)方法(能分析具體問題的算法,輸入輸出,流程)2,掌握for循環(huán)的語義、語法和它的使用。(能根據(jù)流程寫程序,根據(jù)程序?qū)懥鞒蹋?,能正確閱讀程序,了解程序的運(yùn)行過程。根據(jù)問題說明把程序補(bǔ)充完整,上機(jī)內(nèi)容:1)已知以下程序是求某一分?jǐn)?shù)序列的前20項(xiàng)的和:1, 填空使程序完整2, 寫出該分?jǐn)?shù)序列的前6項(xiàng)。(6個(gè)分?jǐn)?shù))程序:#includestdio.hmain() int a,b,c,I; float sum,s; /說明類型說明 a=3,b=2,s=(float)a/b; sum=2/1; for(I=2; I=20;I+) /循環(huán)條件:前20項(xiàng)的和 sum+=s; c=a+b; b=

34、a; a=c; s=(float)a/b; /整數(shù)除法特殊運(yùn)算規(guī)律 printf(sum=%f,sum);運(yùn)行結(jié)果:sum=32.2)編程求:8!要求:用for循環(huán) 源程序代碼 :#include void main() int n1,n2,n3;double s1=0,s2=0,s3=1;for(n1=1;n1=20;n1+)s1=s1+n1;for(n2=1;n2=10;n2+)s2=s2+n2*n2;for(n3=1;n3=8;n3+)s3=s3*n3;printf(sum=%fn,s1+s2+s3);上機(jī)結(jié)果sum=40915.第十次上機(jī)作業(yè) 嵌套循環(huán)實(shí)驗(yàn)?zāi)康模?,掌握嵌套循環(huán)程序的基

35、本設(shè)計(jì)方法(難度分解,化為單層循環(huán))2,掌握for循環(huán),while循環(huán)的語義、語法和它的使用。(能根據(jù)流程寫程序,根據(jù)程序?qū)懥鞒蹋?,能正確閱讀程序,了解程序的運(yùn)行過程。根據(jù)問題說明把程序補(bǔ)充完整,上機(jī)內(nèi)容:1, 程序填空,問題說明:求100到1000之間的所有素?cái)?shù)和程序:#include void main() int I,j,sum=0; for(I=101;I=1000;I+) /循環(huán)變量增量 j=2; while(j=I)sum+=I; /素?cái)?shù)條件:jI都不是I因子時(shí) printf(sum of primes of 1001000 is %dn,sum);運(yùn)行結(jié)果:sum of pri

36、mes of 1001000 is 75067 2,編程求Sn=a+aa+aaa+aaa(該項(xiàng)有n個(gè)a)之值,其中a 為一個(gè)數(shù)字。例如:222222222222222(此時(shí)n=5),n由鍵盤輸入。源程序代碼 :#include void main() int a,n,i=1,sn=0,tn=0; printf(a,n=:); scanf(%d,%d,&a,&n); while (i=n) tn=tn+a; /tn表示項(xiàng),如:2222 sn=sn+tn; /sn表示和,如:2222222222 a=a*10; /下一項(xiàng)的最高位表示的數(shù):如:20000 +i; printf(a+aa+aaa+.=

37、%dn,sn); 上機(jī)結(jié)果a,n=:2,5 a+aa+aaa+.=24690 第十一次上機(jī)作業(yè) 一維數(shù)組實(shí)驗(yàn)?zāi)康模?, 掌握一維數(shù)組的定義,賦值,使用。2, 能用一維數(shù)組這個(gè)新的數(shù)據(jù)結(jié)構(gòu)簡化原有程序。3, 根據(jù)問題說明,能正確閱讀程序。上機(jī)內(nèi)容:1, 問題說明:求數(shù)列的前20項(xiàng)和:2/1, 3/2, 5/3, 8/5, 13/8, 21/13,.程序:#include #define N 20void main() int I,aN,bN; /定義兩個(gè)數(shù)組 float s; a0=2; /數(shù)組元素初始化 b0=1; for(I=1;IN;I+) aI=aI-1+bI-1; bI=aI-1; /

38、求數(shù)組元素bI s=0; /和變量s初始化 for(I=0;IN;I+) s+=(float)aI/bI; printf(sum=%fn,s); 運(yùn)行結(jié)果:sum=32.60259 N的值改為3時(shí),運(yùn)行結(jié)果:sum=5.2, 編程:按下列數(shù)據(jù)的原來順序和它的相反順序輸出下列各數(shù):1,2,3,4,5,6,7,8(要求使用數(shù)組)注意:數(shù)組的定義:數(shù)組元素的個(gè)數(shù)。數(shù)組的兩種賦值方式。 數(shù)據(jù)類型的轉(zhuǎn)換。 注意:數(shù)組的對(duì)換算法。 源程序代碼 :#include #define N 8void main() int i,aN=1,2,3,4,5,6,7,8; int k,temp;for(i=0;iN;i

39、+) printf(%3d,ai); printf(n); for(k=0;kN/2;k+) temp=ak; a k=aN-1-k; aN-1-k=temp; for(i=0;iN;i+) printf(%3d,ai); printf(n);上機(jī)結(jié)果: 1 2 3 4 5 6 7 8 8 7 6 5 4 3 2 1第十二次上機(jī)作業(yè) 數(shù)組(二)實(shí)驗(yàn)?zāi)康模?,熟練掌握一維數(shù)組,二維數(shù)組的正確使用。2,熟悉字符串?dāng)?shù)組的用法。3,能正確閱讀程序,理解程序的含義。4,能根據(jù)問題說明,觀察其隱含的規(guī)律,把程序補(bǔ)充完整。上機(jī)內(nèi)容:1, 問題說明:按下列格式輸出6行楊輝三角形11 11 211 331146

40、4115101051要求:先根據(jù)已有條件猜測空的內(nèi)容,再運(yùn)行程序,再根據(jù)運(yùn)行結(jié)果修改空的內(nèi)容。直至符合要求。程序:#include”stdio.h”main() int y77,n,m; for(n=1;n7;n+) ynn=1; yn1=1; /* 第一列元素為1 */ for(n=3;n7;n+) for(m=2;m=n-1;m+) ynm= yn-1m-1+yn-1m; /數(shù)據(jù)元素等于上一行對(duì)應(yīng)元素與其前一列元素和 for(n=1;n7;n+) for(m=1;m=n;m+) printf(“%4d”,ynm); printf(n,n); /換行 2, 編程,用冒泡法或選擇法把一列數(shù)據(jù)排

41、序后輸出:23,145,65,73,12,74,91,5。要求先輸出原數(shù)據(jù),依次輸出每一輪排序后的數(shù)據(jù)。 源程序代碼 :#include void main() int a8=23,145,65,73,12,74,91,5; int i,j,temp,k; for (i=0;i8;i+) printf(%4d,ai); printf(n);for(i=0;i8;i+)for(j=i+1;jai) temp=ai; ai=aj; aj=temp; for(k=0;k8;k+) printf(%4d,ak); printf(n); for(i=0;i8;i+) printf(%4d,ai);上機(jī)結(jié)

42、果: 3, 難度題(可選):一個(gè)班的學(xué)生的學(xué)號(hào)與成績?nèi)缦拢埌闯煽儚母叻值降头州敵?。學(xué)生的學(xué)號(hào)與對(duì)應(yīng)的成績應(yīng)同時(shí)輸出。學(xué)號(hào):1,2,3,4,5,6,7,8,9,10,11成績:40,63,81,80,98,72,91,65,70,68,79提示:最好用選擇法排序;增加一數(shù)組放學(xué)號(hào),排序交換位置時(shí),同時(shí)交換學(xué)號(hào)數(shù)組與成績數(shù)組的對(duì)應(yīng)元素。 注: 在上題的右邊作適當(dāng)修改第十三次上機(jī)作業(yè) 數(shù)組(二)實(shí)驗(yàn)?zāi)康模?,熟練掌握一維數(shù)組,二維數(shù)組的正確使用。2,熟悉字符串?dāng)?shù)組的用法。3,能正確閱讀程序,理解程序的含義。4,能根據(jù)問題說明,觀察其隱含的規(guī)律,把程序補(bǔ)充完整。5,能根據(jù)多次不同的輸入與對(duì)應(yīng)的輸出結(jié)果,推算程序功能。上機(jī)內(nèi)容:1,下列程序是求給定字符串的字符個(gè)數(shù)。要求:不修改程序已寫部分,在空缺部分把程序補(bǔ)充完整程序一:#include”stdio.h”main() char s40; int m=0; printf(“Enter a string : n”); scanf(“%s”,s); while(sm!=0) /循環(huán)條件:字符串結(jié)束標(biāo)志 m+; /非0字符數(shù)累加 printf(“The string length : %dn”,m);2, 閱讀下列程序要求:能根據(jù)多次不同的輸入(多次修改字符串S1的初值)與對(duì)應(yīng)的輸出結(jié)果,以及源程序,推算程序功能。#includestdi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論