版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)一 C語言的運(yùn)行環(huán)境、運(yùn)行過程、簡單的C程序設(shè)計(jì)【目的與要求】1 安裝C語言編程集成工具tc+3.0,熟悉C語言上機(jī)操作的環(huán)境及C語言上機(jī)的一般過程。2 了解編輯窗口上主菜單中各功能項(xiàng)的含義。3 理解C語言程序的一般結(jié)構(gòu)以及編輯、編譯、連接、運(yùn)行的操作過程。4 理解當(dāng)程序運(yùn)行時(shí)的輸入和輸出。【內(nèi)容與過程】1安裝C語言編程集成工具,進(jìn)入此工具界面,檢查設(shè)置是否正確;2對(duì)課本P3的例1-1,依次執(zhí)行“編輯編譯鏈接運(yùn)行查看運(yùn)行結(jié)果”這幾個(gè)步驟 了解File菜單下功能項(xiàng)的作用,熟練使用New、Save、Save As、Exit。 了解Run菜單下功能項(xiàng)的作用,熟練使用Run、Compile、Use
2、r Screen。 了解Edit、Options菜單下功能項(xiàng)的作用3例1-1是只有輸出;接下來執(zhí)行例1-2(既有輸入亦有輸出);4執(zhí)行例1-3,要求同時(shí)輸入兩個(gè)值【實(shí)驗(yàn)報(bào)告】1. 熟悉上機(jī)環(huán)境。1) 用于上機(jī)的C語言版本是什么? 答:Turbo C+ 3.02) 你是如何進(jìn)入當(dāng)前這個(gè)C語言環(huán)境的? 答:在windows操作系統(tǒng)中找到C:TCBINTC.exe,并雙擊運(yùn)行。3) 當(dāng)輸入了最簡單的C源程序后,如何執(zhí)行編譯鏈接運(yùn)行步驟?會(huì)產(chǎn)生哪些文件,這些文件被放到什么位置了?答:首先用“File-Save”存盤;再用“Compile-Compile to obj”編譯;然后用“Run-run”運(yùn)行
3、;最后用“window-user screen”看運(yùn)行的輸出結(jié)果。產(chǎn)生了擴(kuò)展名為.c、.obj和.exe的文件,存放這些文件的默認(rèn)位置是C:TCbin4) 如何設(shè)置上機(jī)環(huán)境,使得產(chǎn)生的文件全部放到自定義的目錄下?答:用“OptionDirectoriesOutput Directory”并輸入專門設(shè)置來存放這些文件的具體目錄路徑。5) 產(chǎn)生的文件大小是?為什么exe文件遠(yuǎn)遠(yuǎn)大于obj文件?答:.c文件大小159byte;.obj文件大小854byte;.exe文件大小27.5kbyte。由此可見exe文件的大小遠(yuǎn)遠(yuǎn)大于.obj文件。這是因?yàn)?obj文件中只有本程序的語句翻譯成的目標(biāo)代碼,而.e
4、xe文件則是把本程序的目標(biāo)代碼再鏈接上其它代碼,如本程序中調(diào)用的printf()函數(shù)的目標(biāo)代碼等等,而形成的。目標(biāo)代碼盡管已經(jīng)是機(jī)器指令,但是還不能運(yùn)行,因?yàn)槟繕?biāo)程序還沒有解決函數(shù)調(diào)用問題,需要將各個(gè)目標(biāo)程序與庫函數(shù)連接,才能形成完整的可執(zhí)行程序。()可執(zhí)行程序:目標(biāo)程序與庫函數(shù)連接,形成的完整的可在操作系統(tǒng)下獨(dú)立執(zhí)行的程序稱為可執(zhí)行程序??蓤?zhí)行程序的擴(kuò)展名為“exe”(在dos/windows操作系統(tǒng)下)6) 描述當(dāng)開始運(yùn)行例1-2后的過程(即運(yùn)行后屏幕出現(xiàn)什么,敲下啥啥鍵后,出現(xiàn)什么.)答:程序運(yùn)行中,首先在屏幕上顯示:“please input value of x:”,此時(shí)程序暫停運(yùn)行
5、,等待用戶輸入,用戶輸入一個(gè)小數(shù),例如3.3后,再輸入回車鍵,程序才繼續(xù)運(yùn)行,并在顯示器上輸出程序的最后計(jì)算結(jié)果。實(shí)驗(yàn)二 printf函數(shù)【目的與要求】掌握格式輸出函數(shù)printf()及格式符【內(nèi)容與過程】 運(yùn)行課本P70-74的各printf()函數(shù)語句,查看輸出結(jié)果,體會(huì)printf()函數(shù)中控制字符串中的普通字符、格式字符的用法,以及格式字符和輸出表列的對(duì)應(yīng)?!緦?shí)驗(yàn)報(bào)告】 什么是printf()函數(shù)中控制字符串中的普通字符?其用法是怎樣的?n是普通字符嗎?是原樣輸出嗎?答:在格式控制字符串內(nèi)、除%、格式字符和修飾符外的其它字符都屬于普通字符,具體包括空白字符、轉(zhuǎn)義字符和可打印字符;用法是
6、原樣輸出或轉(zhuǎn)義輸出;n是普通字符;會(huì)被轉(zhuǎn)義輸出。 語句“printf(“hello ! s=x*x=%f ”, s);”中,哪些是普通字符?哪些是格式字符?哪個(gè)是輸出表列?答:普通字符:hellow!s=x*x=格式字符:f輸出表列:s 解釋“printf(“%-25.15f,%25.15.fn”,a,a);”中,各參數(shù)間的對(duì)應(yīng)關(guān)系答:共三個(gè)參數(shù),第一個(gè)參數(shù)中的格式符%-25.15f與第二個(gè)參數(shù)a對(duì)應(yīng); 第一個(gè)參數(shù)中的格式符%25.15.f與第三個(gè)參數(shù)a對(duì)應(yīng)。 解釋“printf(“%dt%on”,a,b);”中,各參數(shù)的含義,及參數(shù)間的對(duì)應(yīng)關(guān)系;答:第一個(gè)參數(shù)“%dt%on”規(guī)定了輸出格式及
7、部分輸出內(nèi)容;第二和第三個(gè)參數(shù)a,b的值是另一部分輸出內(nèi)容;格式符%d對(duì)應(yīng)于第二個(gè)參數(shù)a,把變量a中存儲(chǔ)的值以帶符號(hào)十進(jìn)制整數(shù)的形式輸出;格式符%o對(duì)應(yīng)于第三個(gè)參數(shù)b,把變量b中存儲(chǔ)的值以八進(jìn)制整數(shù)的形式輸出;“t”是輸出制表符,即跳到下一個(gè)制表符區(qū)(制表符區(qū)以八個(gè)半角字符為一個(gè)區(qū),認(rèn)為屏幕每行有十個(gè)區(qū));“n”是輸出回車換行符,即跳到下一行起始位置。 “int a=-1; printf(“%dt%on”,a,a);”輸出顯示是?答:對(duì)int變量分配兩個(gè)字節(jié)的編譯系統(tǒng),輸出是:-1 177777對(duì)int型變量分配四個(gè)字節(jié)的編譯系統(tǒng),輸出是:-1 37777777777實(shí)驗(yàn)三 scanf函數(shù)與字
8、符輸入輸出函數(shù)【目的與要求】掌握函數(shù)scanf()、getch()、getchar()、putch()、putchar()【內(nèi)容與過程】 編輯并運(yùn)行課本66的例3-5,對(duì)照課本75的3.4.4,體會(huì)scanf()函數(shù)中控制字符串和輸入項(xiàng)列表的用法。注意:i. “#include <math.h>” 和 “q=sqtr(disc)/(2.0*a);”之間的聯(lián)系ii. 程序中scanf函數(shù)在運(yùn)行時(shí),具體的輸入操作是?體會(huì)調(diào)用scanf()函數(shù)輸入多個(gè)數(shù)據(jù)時(shí),數(shù)據(jù)之間的分隔符號(hào)。iii. 當(dāng)Scanf函數(shù)的輸入表列包含多項(xiàng)時(shí),各項(xiàng)間可以有哪些分隔符號(hào)?iv. 把scanf函數(shù)調(diào)用語句修改
9、為“scanf(“a=%lfb=%lfc=%lf ”, &a, &b,&c);”后,具體的輸入操作是?體會(huì)scanf()函數(shù)調(diào)用語句中的控制字符中的普通字符的用法。 運(yùn)行課本P76-P78,3.4.4中的各個(gè)scanf函數(shù)調(diào)用語句 運(yùn)行課本P78-P82,3.4.5中的各例題 運(yùn)行83-84,課后題4,5,7,8【實(shí)驗(yàn)報(bào)告】 解釋一下,課本66的例3-5中的“%lf”是什么意思? 答:輸入一個(gè)長浮點(diǎn)型(即雙精度型)的浮點(diǎn)數(shù)值。 在一個(gè)scanf()函數(shù)中輸入多個(gè)數(shù)據(jù)時(shí),數(shù)據(jù)之間可以使用哪些分隔符號(hào)? 答:如果在函數(shù)中沒有指明,則可用空格符、回車符或制表符Tab作為數(shù)據(jù)間
10、的分隔。 比較一下,printf()與scanf()中的格式字符串和輸出(入)表列在用法上有什么不同之處?為什么一般不建議在輸入格式符中使用普通字符?答:不同之處有:1)printf()中的輸出表列可以是常量、變量或者表達(dá)式,而scanf()中的輸入表列必須是變量地址。2)printf()的格式字符中的普通字符是原樣輸出顯示的;scanf()中的普通字符則不會(huì)顯示在屏幕上、而必須由用戶原樣輸入。不建議在輸入格式符中使用普通字符的原因,就是因?yàn)闊o法保證用戶會(huì)知道具體有哪些普通字符是必須輸入的。 P83的課后題4答:(1)輸出:c1=a,c2=b 因?yàn)檩敵龈袷椒?c,意味著輸出結(jié)果是字符,即AS
11、CII碼表中整數(shù)97、98對(duì)應(yīng)的字符a和b c1=97,c2=98 因?yàn)檩敵龈袷椒?d,意味著輸出結(jié)果是整數(shù) (2)輸出:c1=,c2= ASCII碼表中整數(shù)197、198對(duì)應(yīng)的字符是和 c1=-59,c2=-58 char類型變量占據(jù)8個(gè)二進(jìn)制位空間,此時(shí)十進(jìn)制數(shù)197和198的二進(jìn)制存儲(chǔ)的最高位即符號(hào)位為1,當(dāng)以%d(即帶符號(hào)十進(jìn)制數(shù))輸出時(shí),會(huì)被輸出為負(fù)數(shù) (3)輸出:c1=,c2= c1=197,c2=198 int類型變量占據(jù)16個(gè)二進(jìn)制位的空間,此時(shí)197和198的最高位,即符號(hào)位為0,所以不會(huì)被輸出為負(fù)數(shù)。 P83的課后題5答:對(duì)應(yīng)于scanf(),在鍵盤上輸入:a=3b=7
12、對(duì)應(yīng)于scanf(),在鍵盤上輸入:8.5 71.82 對(duì)應(yīng)于scanf(),在鍵盤上輸入:Aa P83的課后題7注意面積、體積等應(yīng)定義為double類型,半徑、高等應(yīng)定義為float型,并使用相應(yīng)的輸入輸出格式符;圓周率PI應(yīng)定義為常量(#define PI 3.14159,后面沒有語句結(jié)束標(biāo)志“;”),常量定義放在函數(shù)前面(不能放在函數(shù)里面),緊跟#include <stdio.h>。 P83的課后題8答:(1)二者皆可。 (2)用printf函數(shù),用%d格式符輸出 (3)不是完全無條件等價(jià)的。在以下情況不等價(jià):當(dāng)變量被賦整數(shù)值超過128,此時(shí),char型變量和int型變量的%
13、d輸出不同,不等價(jià)。(原因:char變量中的最高位會(huì)是1,輸出負(fù)數(shù);相同的數(shù)存儲(chǔ)在int型變量中最高位是0,輸出仍為正數(shù)。具體參看第4題。) 運(yùn)行以下語句,輸出結(jié)果是?為什么?Unsigned price=-1; printf(“%d, %u, %c”, price, price, price); 答:輸出結(jié)果是:-1,65535, (空格)解釋:unsigned price=-1;,則內(nèi)存中price占據(jù)兩字節(jié)單元,存儲(chǔ)內(nèi)容是1111111111111111; 對(duì)這個(gè)存儲(chǔ)內(nèi)容,以%d輸出,是把其看作帶符號(hào)數(shù),則遵循減一取反后二進(jìn)制數(shù)換算成十進(jìn)制數(shù)后帶負(fù)號(hào),輸出-1; 同樣的存儲(chǔ)內(nèi)容,以%u輸
14、出,是把其看作無符號(hào)數(shù),則遵循直接二進(jìn)制數(shù)換算成十進(jìn)制數(shù),輸出65535; 同樣的存儲(chǔ)內(nèi)容,以%c輸出, 其中一種編譯(由具體的編譯平臺(tái)決定)是取其低八位,轉(zhuǎn)換成十進(jìn)制數(shù)是255,在ASCII碼表中找255對(duì)應(yīng)的字符,是空格 實(shí)驗(yàn)四 單步運(yùn)行、變量觀察、算術(shù)運(yùn)算、關(guān)系運(yùn)算、邏輯運(yùn)算、真假值和選擇語句的的執(zhí)行順序【目的與要求】掌握單步運(yùn)行和變量觀察這兩種程序調(diào)試方法【內(nèi)容與過程】 單步運(yùn)行:Run->trace into,可以對(duì)程序逐行地執(zhí)行; 變量觀察:window->watch,可以觀察變量中的值的變化; 利用這兩個(gè)工具,可以進(jìn)行程序調(diào)試。2對(duì)應(yīng)于P111的課后題3,輸入以下程序
15、,并通過單步執(zhí)行和變量觀察察看各式計(jì)算結(jié)果值:Main() int a=3,b=4,c=5; int value; value=a+b>c&&b= =c; .3把P92的第8-11行的算式也放入,查看各式結(jié)果值,體會(huì)計(jì)算過程和計(jì)算結(jié)果4把P93第1-2行(x=5,y=1,age=18)、P94第1-2行的算式(x=5,y=1,age=18)也放入,同上。5把P87例4.2,單步執(zhí)行,觀察語句執(zhí)行順序【實(shí)驗(yàn)報(bào)告】1. 對(duì)應(yīng)于前2、3和4, 1)如果要觀察各式結(jié)果值,應(yīng)把哪個(gè)變量放入觀察窗口?2)寫出各式結(jié)果值;3)回答課后題1,2答:1)把value值放入觀察窗口。2)P1
16、11的課后題3,各式結(jié)果值是0 1 1 0 1 P92的第8-11行,參照課后題3的賦值,各式結(jié)果值是0 0 0 0 P93第1-2行,P94第1-2行,參照課后題3的賦值,另設(shè)x=5,y=1,age=18,各式結(jié)果值是1 0 0 02. 對(duì)應(yīng)于前5,1)若輸入是”3.6, -3.2”,寫出執(zhí)行順序;2)若輸入是”-3.2, 3.6”,寫出執(zhí)行順序答:1)若輸入是”3.6, -3.2”,執(zhí)行順序是2-5-6-8-9-10-12-13-14;2)若輸入是”-3.2, 3.6”,執(zhí)行順序是2-5-6-12-13-14實(shí)驗(yàn)五 邏輯運(yùn)算與分支判斷【目的與要求】1 了解和使用關(guān)系運(yùn)算符、邏輯運(yùn)算符、條件
17、運(yùn)算符及運(yùn)算。2 掌握if語句、嵌套if結(jié)構(gòu)、條件運(yùn)算符、switch語句的使用方法?!緝?nèi)容與過程】1. if的幾種形式和使用方法,理解分支語句的語句執(zhí)行順序2. switch語句的語法形式和使用方法,理解其執(zhí)行順序3. 各例題和課后題【實(shí)驗(yàn)報(bào)告】1 單步運(yùn)行課本P88的例4.3,運(yùn)行兩次,第一次如課本輸入“3,7,1”,單步執(zhí)行,語句執(zhí)行順序是?;第二次輸入“1,3,7”,單步執(zhí)行,語句執(zhí)行順序是?答:輸入“3,7,1”,語句執(zhí)行順序是2-3-5-6-12-13-14-15-16-17-18-19-20-21-22-23-24-25-26;輸入“1,3,7”,語句執(zhí)行順序是2-3-5-余下所
18、有各行。2例4-9程序中共用到函數(shù)scanf() 、printf()、fabs()和sqrt(),其中fabs()和sqrt()是在math.h 中定義的,所以要把這個(gè)文件include進(jìn)本程序中。1) 如果希望單步運(yùn)行時(shí)每一步都能夠?qū)崟r(shí)地看到變量disc的值,又稱監(jiān)視/觀察disc變量,應(yīng)該怎么做?答:Window-watch-Ins-disc。2) 程序中原if語句的條件表達(dá)式是(fabs(a)<=1e-6),其邏輯含義是什么?答:判斷實(shí)型變量a的值是否為0。3) 若把這個(gè)條件表達(dá)式改成( a = 1e-6),有無語法錯(cuò)誤?此時(shí)是否進(jìn)入為真分支;答:語法沒有錯(cuò),進(jìn)入為真分支4) 若改
19、成(a),有無語法錯(cuò)誤?此時(shí)是否進(jìn)入為真分支。答:語法沒有錯(cuò),是否進(jìn)入為真分支取決于變量a的具體取值。3單步運(yùn)行課本P110的例4.10,如課本輸入“100,20,300”,語句執(zhí)行順序是?如果刪掉源程序中所有“break;”語句,同樣的輸入,語句執(zhí)行順序是?答:輸入“100,20,300”,語句執(zhí)行順序是:2-3-6-7-8-9-10-13-26-27-28;刪掉源程序中所有“break;”語句,同樣的輸入,語句執(zhí)行順序是:2-3-6-7-8-9-10-13-余下所有各行。P112的7,畫流程圖,并分析其運(yùn)行情況(1)流程圖如下:運(yùn)行情況分析:如果輸入負(fù)數(shù)(如-3),程序運(yùn)行后輸出“x=-3
20、, y=0”;如果輸入0,程序運(yùn)行后輸出“x=0,y=-1”;如果輸入正數(shù)(如3),程序運(yùn)行后輸出“x=3,y=-1”。以上運(yùn)行情況說明,程序不能實(shí)現(xiàn)題目函數(shù)。這是因?yàn)楸緫?yīng)與第一個(gè)if配對(duì)(如源程序書寫對(duì)齊所示)的else實(shí)際上與第二個(gè)if配對(duì)(如流程圖所示)了。(2)運(yùn)行情況:如果輸入負(fù)數(shù)(如-3),程序運(yùn)行后輸出“x=-3, y=0”;如果輸入0,程序運(yùn)行后輸出“x=0,y=-1”;如果輸入正數(shù)(如3),程序運(yùn)行后輸出“x=3,y=1”。以上運(yùn)行情況說明,程序不能實(shí)現(xiàn)題目函數(shù)。這是因?yàn)楸緫?yīng)與第一個(gè)if配對(duì)(如源程序書寫對(duì)齊所示)的else實(shí)際上與第二個(gè)if配對(duì)(如流程圖所示)了。實(shí)驗(yàn)六 循
21、環(huán)(一)【目的與要求】掌握while語句、do-while語句、for語句的使用方法。、【內(nèi)容與過程】1. 輸入課本P96的例5-1中的源程序代碼,簡化成求1到3的累加和,把變量I和sum加入觀察窗口,單步運(yùn)行,體會(huì)循環(huán)語句的執(zhí)行(不斷循環(huán))以及觀察變量I和sum的變化情況。2. 輸入課本P102的例5-2的源程序代碼,簡化成求1到3的累加和。用單步運(yùn)行的方法跟蹤這個(gè)源程序的每一步運(yùn)行,體會(huì)循環(huán)的過程。3. 輸入課本P106的例5-9中的源程序代碼,簡化成求1到3的累加和,注意while和do-while循環(huán),它們的循環(huán)次數(shù)和變量變化是否完全一樣?4. 輸入課本P113的例5-16中的源程序代
22、碼,簡化成求1到3的累加和,并單步執(zhí)行,體會(huì)goto語句和if語句的配合。5. 體會(huì)無限循環(huán)(即死循環(huán))【實(shí)驗(yàn)報(bào)告】1. 對(duì)照課本P96的圖5-2的流程圖,說明循環(huán)控制變量、循環(huán)條件和循環(huán)表達(dá)式分別是哪個(gè)?循環(huán)控制變量的初始化語句是?循環(huán)條件測(cè)試語句是?循環(huán)控制變量更新語句是?答:循環(huán)控制變量是i、循環(huán)條件是I<=100, 循環(huán)表達(dá)式是I=I+1; 循環(huán)控制變量的初始化語句是I=1; 循環(huán)條件測(cè)試語句是I<=100; 循環(huán)控制變量更新語句是I=I+1.2. 對(duì)于例5-1,變量I的終值是多少?這個(gè)終值的意義是什么?答:I的終值是101, 這個(gè)終值的意義是使循環(huán)條件為假,以結(jié)束循環(huán)3.
23、 對(duì)于例5-2,循環(huán)語句I+執(zhí)行了多少次,循環(huán)條件語句I<=100執(zhí)行了多少次?說明什么?答:I+執(zhí)行了100次,I<=100執(zhí)行了100次。說明循環(huán)條件測(cè)試語句的執(zhí)行次數(shù)并不是總比循環(huán)次數(shù)多一次的;如果在循環(huán)執(zhí)行前測(cè)試循環(huán)條件,則循環(huán)條件測(cè)試語句會(huì)比循環(huán)次數(shù)多一次,如果在循環(huán)執(zhí)行后測(cè)試循環(huán)條件,循環(huán)條件測(cè)試語句的執(zhí)行次數(shù)會(huì)與循環(huán)次數(shù)相等。4. 對(duì)于例5-1 和例5-2,如果循環(huán)條件是(I<=3),兩個(gè)程序的循環(huán)執(zhí)行次數(shù)是否一樣?把while語句和do-while語句的循環(huán)條件改為(I>3), 其它不變,說說這兩種語句的運(yùn)行會(huì)有什么不一樣。答:如果循環(huán)條件是I<=
24、3,則循環(huán)執(zhí)行次數(shù)是一樣的;如果改成I>3,則while一次都不執(zhí)行,do while執(zhí)行一次。5. 對(duì)于例5-3,把for循環(huán)的for()中的語句I=1刪掉,單步執(zhí)行,有何現(xiàn)象?為什么?只把I<=3刪掉,單步執(zhí)行,有何現(xiàn)象?為什么?只把I+刪掉,單步執(zhí)行,有何現(xiàn)象,為什么?答:把I=1刪掉,則中是個(gè)隨機(jī)值,難以預(yù)計(jì)其執(zhí)行;把I<=3刪掉,則死循環(huán);把I+刪掉,也是死循環(huán)。6. 對(duì)于P141的課后題10,對(duì)照p116的流程圖5-2,設(shè)計(jì)算法并用流程圖表達(dá),說說適合用哪個(gè)循環(huán)語句實(shí)現(xiàn)?為什么?并寫成源代碼,調(diào)試運(yùn)行。答:流程圖為:適合用for循環(huán)實(shí)現(xiàn),因?yàn)檠h(huán)次數(shù)已知。源代碼略
25、實(shí)驗(yàn)七 循環(huán)(二)【目的與要求】1 正確理解、使用中斷語句break與continue。2 理解和掌握嵌套循環(huán)【內(nèi)容與過程】1 單步跟蹤同一個(gè)程序,描述一下用break與continue的區(qū)別:1) 單步時(shí)的執(zhí)行的順序有什么不同?2) 跳出循環(huán)時(shí)的循環(huán)變量取值有什么不同?2 單步跟蹤嵌套循環(huán)的運(yùn)行過程,體會(huì)內(nèi)外層循環(huán)的執(zhí)行順序,以及從中體現(xiàn)出來的循環(huán)變量的變化。【實(shí)驗(yàn)報(bào)告】1 上機(jī)運(yùn)行課本P137的程序例5.9,輸入18,單步跟蹤,把變量i,放入觀察窗口。請(qǐng)問:1) 單步跟蹤時(shí),執(zhí)行完break和continue語句的下一個(gè)被執(zhí)行到的語句分別是?答:執(zhí)行完break的下一個(gè)被執(zhí)行到的語句是pr
26、intf(“%d is not a prime number.n”,n);執(zhí)行完continue的下一個(gè)被執(zhí)行到的語句是i+。2) 循環(huán)結(jié)束時(shí),i變量的取值分別是?答:如果break,循環(huán)結(jié)束時(shí)i變量的值是2;如果continue,循環(huán)結(jié)束時(shí)i變量的值是53) 解釋一下為什么會(huì)有這樣的區(qū)別。答:break的作用是結(jié)束所有整個(gè)循環(huán);continue的作用是結(jié)束當(dāng)次循環(huán),但依然繼續(xù)下一次的循環(huán)。2 上機(jī)運(yùn)行課本P137的例5-10(改為求3-9間的素?cái)?shù),即for (n=3;n<=9;n=n+2),單步跟蹤,完成以下內(nèi)容:1) 答: n k i m第一次外層循環(huán) 3 1 0 (不符合循環(huán)條件,
27、沒有進(jìn)入內(nèi)層循環(huán)) 第二次外層循環(huán) 5 2 1 第1次內(nèi)層循環(huán) 2 0 第三次外層循環(huán) 7 2 2 第1次內(nèi)層循環(huán) 2 2 第四次外層循環(huán) 9 3 3 第1次內(nèi)層循環(huán) 2 第2次內(nèi)層循環(huán) 3 2)整個(gè)程序運(yùn)行過程中,語句n=3執(zhí)行了 1 次;語句n<=9執(zhí)行了 5 次;語句n=n+2執(zhí)行了 4 次;3)語句i=2執(zhí)行了 4 次;語句i<=k執(zhí)行了 1+2+2+2=7 次;語句i+執(zhí)行了 0+1+1+1=3 次。4) 課后作業(yè): P140頁第6題#include <stdio.h>int main() int I,j,n; float sum1=1,sum2=0; for
28、(i=1;i<=20;i+) sum1= sum1*I; sum2=sum2+sum1; printf(“n階累加和為%7.2fn”, sum2); 畫出例5.6中三個(gè)程序段的流程圖。答:對(duì)應(yīng)于P129頁的源代碼,其流程圖是:對(duì)應(yīng)于P130頁的源代碼(break),其流程圖是:把P130頁的源代碼中的break語句改成continue語句,其流程圖是:實(shí)驗(yàn)八 函數(shù)(一)【目的與要求】1 函數(shù)定義的方法。2 函數(shù)調(diào)用機(jī)制與調(diào)用方式。3 掌握對(duì)被調(diào)函數(shù)的說明,實(shí)參與形參的對(duì)應(yīng)關(guān)系,“值傳遞”的數(shù)據(jù)傳遞方式。【內(nèi)容與過程】1通過單步跟蹤,體會(huì)函數(shù)調(diào)用時(shí)執(zhí)行順序的變化;2通過看觀察窗口中變量取值
29、的變化,體會(huì)變量生存期的涵義?!緦?shí)驗(yàn)報(bào)告】1 給課本P127的程序例7.2編號(hào)如下,單步跟蹤這個(gè)程序的完整的執(zhí)行過程,假設(shè)執(zhí)行時(shí)的輸入是“3 -5”寫出整個(gè)程序的語句執(zhí)行順序。1: /*example7_2.c*/2: include <stdio.h>3: int max(int x,int y)4: 5: int z;6: z=x>y?x:y;7: return(z);8: 9: int main() 10: 11: int max(int x,int y)12: int a,b,c;13: printf(“please enter two integer number:
30、”);14: scanf(“%d%d”,&a,&b);15: c=max(a,b);16: printf(“max is %d”,c);17: return 0;18: 1) 按序號(hào)寫出程序執(zhí)行順序答:9-10-13-14-15-3-4-6-7-15-16-17-182) 對(duì)于這個(gè)程序的a,b,c,x,y變量,把它們放入觀察窗口,當(dāng)執(zhí)行到main()函數(shù)的內(nèi)容時(shí),這幾個(gè)變量情況如何,為什么?答:執(zhí)行到main()函數(shù)時(shí),a,b,c變量有效, x,y變量是undefined symbol。因?yàn)閍,b,c在main()函數(shù)中定義,其作用域就只在main()函數(shù)中,所以a,b,c變量
31、有效;x,y變量不在main()函數(shù)中定義,main()函數(shù)不是x,y變量的作用域,所x,y變量無效。實(shí)驗(yàn)九 函數(shù)(二)【目的與要求】1體會(huì)遞歸函數(shù)的執(zhí)行順序2體會(huì)變量的作用域和存儲(chǔ)類型【內(nèi)容與過程】1 對(duì)課本P186的例7.6的源程序進(jìn)行編號(hào)(共14行),并執(zhí)行,寫出語句執(zhí)行順序。答:2-4-7-9-11-12-7-9-11-12-7-9-11-12-7-9-11-12-7-9-10-12-13-12-13-12-13-12-13-4-5-62 給出源程序如下,編輯并執(zhí)行,把變量x加入觀察窗口,單步執(zhí)行(編號(hào)為1-46),回答以下問題:答:1) 第2,3,4行是對(duì)函數(shù)進(jìn)行 聲明 ;第6,24
32、,32,40行是對(duì)函數(shù)進(jìn)行 定義 ;第15-20行是對(duì)函數(shù)進(jìn)行 調(diào)用 。2) 第5行定義的變量x是一個(gè) 全局 變量。3) 單步執(zhí)行到第9行,這里的x是第_8_行定義的變量x, 值為_5_.4) 單步執(zhí)行到第12行,這里的x是第_11_行定義的變量x, 值為_7_.5) 單步執(zhí)行到第14行,這里的x是第_8 _行定義的變量x, 值為_5_.6) 單步執(zhí)行到第28行,這里的x是第_26_ _行定義的變量x, 值為_25 _.7) 單步執(zhí)行到第36行,這里的x是第_34 _ _行定義的變量x, 值為_50 _.8) 單步執(zhí)行到第43行,這里的x是第_5_ _行定義的變量x, 值為_1 _.9) 再次
33、單步執(zhí)行到第28行,這里的x是第_26_ _行定義的變量x, 值為_25 ,因?yàn)開x的存儲(chǔ)類型是auto,意味著會(huì)被存儲(chǔ)在動(dòng)態(tài)存儲(chǔ)區(qū),會(huì)隨函數(shù)調(diào)用結(jié)束而釋放空間,因此上次函數(shù)調(diào)用的x值沒有保留下來_10) 單步執(zhí)行到第36行,這里的x是第_34 _ _行定義的變量x, 值為_51 ,因?yàn)開x的存儲(chǔ)類型是static,意味著會(huì)被存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū),不會(huì)隨函數(shù)調(diào)用結(jié)束而消失,因此上次調(diào)用時(shí)增一后的x值被保留_11) 再次單步執(zhí)行到第43行,這里的x是第_5_行定義的變量x, 值為_6 ,因?yàn)開 x是全局變量,存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū),同時(shí)作用域是整個(gè)程序,因此x值的變化一直保留_1:#include <stdio.h>2:void a(void);3:void b(void);4:void c(void);5:int x=1;6:int main()7:8: int x=5;9: printf(“x in main is %dn”,x);10:11:int x=7;12:printf(“x in inner scope of main is %dn”,x);13:14:printf(“x in main is %dn”,x);15:a();16:b();17:c();18:a();19:b();20:c();21:printf(“nx in main is %dn”,x
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報(bào)參考:教育治理視域下師德問責(zé)制度化研究
- 課題申報(bào)參考:江南風(fēng)景攝影的審美范式及其傳統(tǒng)轉(zhuǎn)化研究
- 課題申報(bào)參考:價(jià)值醫(yī)療視角下安寧療護(hù)經(jīng)濟(jì)可持續(xù)性機(jī)理解析及促進(jìn)機(jī)制設(shè)計(jì)
- 二零二五版道路照明設(shè)施節(jié)能補(bǔ)貼申請(qǐng)合同4篇
- 2025年度大型商場(chǎng)裝修設(shè)計(jì)與施工一體化承包合同范本4篇
- 2025年金昌b2貨運(yùn)資格證多少道題
- 二零二五年度輪胎產(chǎn)品綠色環(huán)保認(rèn)證服務(wù)合同4篇
- 基于云計(jì)算的2025年度企業(yè)級(jí)應(yīng)用集成合同3篇
- 中介和房東的委托協(xié)議 2篇
- 二零二五年度商業(yè)綜合體消防安全與安保服務(wù)合同3篇
- 道路瀝青工程施工方案
- 《田口方法的導(dǎo)入》課件
- 承包鋼板水泥庫合同范本(2篇)
- 人教版(2024年新教材)七年級(jí)上冊(cè)英語Unit 7 Happy Birthday 單元整體教學(xué)設(shè)計(jì)(5課時(shí))
- DLT 572-2021 電力變壓器運(yùn)行規(guī)程
- 公司沒繳社保勞動(dòng)仲裁申請(qǐng)書
- 損傷力學(xué)與斷裂分析
- 2024年縣鄉(xiāng)教師選調(diào)進(jìn)城考試《教育學(xué)》題庫及完整答案(考點(diǎn)梳理)
- 車借給別人免責(zé)協(xié)議書
- 應(yīng)急預(yù)案評(píng)分標(biāo)準(zhǔn)表
- “網(wǎng)絡(luò)安全課件:高校教師網(wǎng)絡(luò)安全與信息化素養(yǎng)培訓(xùn)”
評(píng)論
0/150
提交評(píng)論