實驗大綱(參考答案)_第1頁
實驗大綱(參考答案)_第2頁
實驗大綱(參考答案)_第3頁
實驗大綱(參考答案)_第4頁
實驗大綱(參考答案)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗一 C語言的運行環(huán)境、運行過程、簡單的C程序設計【目的與要求】1 安裝C語言編程集成工具tc+3.0,熟悉C語言上機操作的環(huán)境及C語言上機的一般過程。2 了解編輯窗口上主菜單中各功能項的含義。3 理解C語言程序的一般結構以及編輯、編譯、連接、運行的操作過程。4 理解當程序運行時的輸入和輸出?!緝?nèi)容與過程】1安裝C語言編程集成工具,進入此工具界面,檢查設置是否正確;2對課本P3的例1-1,依次執(zhí)行“編輯編譯鏈接運行查看運行結果”這幾個步驟 了解File菜單下功能項的作用,熟練使用New、Save、Save As、Exit。 了解Run菜單下功能項的作用,熟練使用Run、Compile、Use

2、r Screen。 了解Edit、Options菜單下功能項的作用3例1-1是只有輸出;接下來執(zhí)行例1-2(既有輸入亦有輸出);4執(zhí)行例1-3,要求同時輸入兩個值【實驗報告】1. 熟悉上機環(huán)境。1) 用于上機的C語言版本是什么? 答:Turbo C+ 3.02) 你是如何進入當前這個C語言環(huán)境的? 答:在windows操作系統(tǒng)中找到C:TCBINTC.exe,并雙擊運行。3) 當輸入了最簡單的C源程序后,如何執(zhí)行編譯鏈接運行步驟?會產(chǎn)生哪些文件,這些文件被放到什么位置了?答:首先用“File-Save”存盤;再用“Compile-Compile to obj”編譯;然后用“Run-run”運行

3、;最后用“window-user screen”看運行的輸出結果。產(chǎn)生了擴展名為.c、.obj和.exe的文件,存放這些文件的默認位置是C:TCbin4) 如何設置上機環(huán)境,使得產(chǎn)生的文件全部放到自定義的目錄下?答:用“OptionDirectoriesOutput Directory”并輸入專門設置來存放這些文件的具體目錄路徑。5) 產(chǎn)生的文件大小是?為什么exe文件遠遠大于obj文件?答:.c文件大小159byte;.obj文件大小854byte;.exe文件大小27.5kbyte。由此可見exe文件的大小遠遠大于.obj文件。這是因為.obj文件中只有本程序的語句翻譯成的目標代碼,而.e

4、xe文件則是把本程序的目標代碼再鏈接上其它代碼,如本程序中調(diào)用的printf()函數(shù)的目標代碼等等,而形成的。目標代碼盡管已經(jīng)是機器指令,但是還不能運行,因為目標程序還沒有解決函數(shù)調(diào)用問題,需要將各個目標程序與庫函數(shù)連接,才能形成完整的可執(zhí)行程序。()可執(zhí)行程序:目標程序與庫函數(shù)連接,形成的完整的可在操作系統(tǒng)下獨立執(zhí)行的程序稱為可執(zhí)行程序??蓤?zhí)行程序的擴展名為“exe”(在dos/windows操作系統(tǒng)下)6) 描述當開始運行例1-2后的過程(即運行后屏幕出現(xiàn)什么,敲下啥啥鍵后,出現(xiàn)什么.)答:程序運行中,首先在屏幕上顯示:“please input value of x:”,此時程序暫停運行

5、,等待用戶輸入,用戶輸入一個小數(shù),例如3.3后,再輸入回車鍵,程序才繼續(xù)運行,并在顯示器上輸出程序的最后計算結果。實驗二 printf函數(shù)【目的與要求】掌握格式輸出函數(shù)printf()及格式符【內(nèi)容與過程】 運行課本P70-74的各printf()函數(shù)語句,查看輸出結果,體會printf()函數(shù)中控制字符串中的普通字符、格式字符的用法,以及格式字符和輸出表列的對應?!緦嶒瀳蟾妗?什么是printf()函數(shù)中控制字符串中的普通字符?其用法是怎樣的?n是普通字符嗎?是原樣輸出嗎?答:在格式控制字符串內(nèi)、除%、格式字符和修飾符外的其它字符都屬于普通字符,具體包括空白字符、轉義字符和可打印字符;用法是

6、原樣輸出或轉義輸出;n是普通字符;會被轉義輸出。 語句“printf(“hello ! s=x*x=%f ”, s);”中,哪些是普通字符?哪些是格式字符?哪個是輸出表列?答:普通字符:hellow!s=x*x=格式字符:f輸出表列:s 解釋“printf(“%-25.15f,%25.15.fn”,a,a);”中,各參數(shù)間的對應關系答:共三個參數(shù),第一個參數(shù)中的格式符%-25.15f與第二個參數(shù)a對應; 第一個參數(shù)中的格式符%25.15.f與第三個參數(shù)a對應。 解釋“printf(“%dt%on”,a,b);”中,各參數(shù)的含義,及參數(shù)間的對應關系;答:第一個參數(shù)“%dt%on”規(guī)定了輸出格式及

7、部分輸出內(nèi)容;第二和第三個參數(shù)a,b的值是另一部分輸出內(nèi)容;格式符%d對應于第二個參數(shù)a,把變量a中存儲的值以帶符號十進制整數(shù)的形式輸出;格式符%o對應于第三個參數(shù)b,把變量b中存儲的值以八進制整數(shù)的形式輸出;“t”是輸出制表符,即跳到下一個制表符區(qū)(制表符區(qū)以八個半角字符為一個區(qū),認為屏幕每行有十個區(qū));“n”是輸出回車換行符,即跳到下一行起始位置。 “int a=-1; printf(“%dt%on”,a,a);”輸出顯示是?答:對int變量分配兩個字節(jié)的編譯系統(tǒng),輸出是:-1 177777對int型變量分配四個字節(jié)的編譯系統(tǒng),輸出是:-1 37777777777實驗三 scanf函數(shù)與字

8、符輸入輸出函數(shù)【目的與要求】掌握函數(shù)scanf()、getch()、getchar()、putch()、putchar()【內(nèi)容與過程】 編輯并運行課本66的例3-5,對照課本75的3.4.4,體會scanf()函數(shù)中控制字符串和輸入項列表的用法。注意:i. “#include <math.h>” 和 “q=sqtr(disc)/(2.0*a);”之間的聯(lián)系ii. 程序中scanf函數(shù)在運行時,具體的輸入操作是?體會調(diào)用scanf()函數(shù)輸入多個數(shù)據(jù)時,數(shù)據(jù)之間的分隔符號。iii. 當Scanf函數(shù)的輸入表列包含多項時,各項間可以有哪些分隔符號?iv. 把scanf函數(shù)調(diào)用語句修改

9、為“scanf(“a=%lfb=%lfc=%lf ”, &a, &b,&c);”后,具體的輸入操作是?體會scanf()函數(shù)調(diào)用語句中的控制字符中的普通字符的用法。 運行課本P76-P78,3.4.4中的各個scanf函數(shù)調(diào)用語句 運行課本P78-P82,3.4.5中的各例題 運行83-84,課后題4,5,7,8【實驗報告】 解釋一下,課本66的例3-5中的“%lf”是什么意思? 答:輸入一個長浮點型(即雙精度型)的浮點數(shù)值。 在一個scanf()函數(shù)中輸入多個數(shù)據(jù)時,數(shù)據(jù)之間可以使用哪些分隔符號? 答:如果在函數(shù)中沒有指明,則可用空格符、回車符或制表符Tab作為數(shù)據(jù)間

10、的分隔。 比較一下,printf()與scanf()中的格式字符串和輸出(入)表列在用法上有什么不同之處?為什么一般不建議在輸入格式符中使用普通字符?答:不同之處有:1)printf()中的輸出表列可以是常量、變量或者表達式,而scanf()中的輸入表列必須是變量地址。2)printf()的格式字符中的普通字符是原樣輸出顯示的;scanf()中的普通字符則不會顯示在屏幕上、而必須由用戶原樣輸入。不建議在輸入格式符中使用普通字符的原因,就是因為無法保證用戶會知道具體有哪些普通字符是必須輸入的。 P83的課后題4答:(1)輸出:c1=a,c2=b 因為輸出格式符是%c,意味著輸出結果是字符,即AS

11、CII碼表中整數(shù)97、98對應的字符a和b c1=97,c2=98 因為輸出格式符是%d,意味著輸出結果是整數(shù) (2)輸出:c1=,c2= ASCII碼表中整數(shù)197、198對應的字符是和 c1=-59,c2=-58 char類型變量占據(jù)8個二進制位空間,此時十進制數(shù)197和198的二進制存儲的最高位即符號位為1,當以%d(即帶符號十進制數(shù))輸出時,會被輸出為負數(shù) (3)輸出:c1=,c2= c1=197,c2=198 int類型變量占據(jù)16個二進制位的空間,此時197和198的最高位,即符號位為0,所以不會被輸出為負數(shù)。 P83的課后題5答:對應于scanf(),在鍵盤上輸入:a=3b=7

12、對應于scanf(),在鍵盤上輸入:8.5 71.82 對應于scanf(),在鍵盤上輸入:Aa P83的課后題7注意面積、體積等應定義為double類型,半徑、高等應定義為float型,并使用相應的輸入輸出格式符;圓周率PI應定義為常量(#define PI 3.14159,后面沒有語句結束標志“;”),常量定義放在函數(shù)前面(不能放在函數(shù)里面),緊跟#include <stdio.h>。 P83的課后題8答:(1)二者皆可。 (2)用printf函數(shù),用%d格式符輸出 (3)不是完全無條件等價的。在以下情況不等價:當變量被賦整數(shù)值超過128,此時,char型變量和int型變量的%

13、d輸出不同,不等價。(原因:char變量中的最高位會是1,輸出負數(shù);相同的數(shù)存儲在int型變量中最高位是0,輸出仍為正數(shù)。具體參看第4題。) 運行以下語句,輸出結果是?為什么?Unsigned price=-1; printf(“%d, %u, %c”, price, price, price); 答:輸出結果是:-1,65535, (空格)解釋:unsigned price=-1;,則內(nèi)存中price占據(jù)兩字節(jié)單元,存儲內(nèi)容是1111111111111111; 對這個存儲內(nèi)容,以%d輸出,是把其看作帶符號數(shù),則遵循減一取反后二進制數(shù)換算成十進制數(shù)后帶負號,輸出-1; 同樣的存儲內(nèi)容,以%u輸

14、出,是把其看作無符號數(shù),則遵循直接二進制數(shù)換算成十進制數(shù),輸出65535; 同樣的存儲內(nèi)容,以%c輸出, 其中一種編譯(由具體的編譯平臺決定)是取其低八位,轉換成十進制數(shù)是255,在ASCII碼表中找255對應的字符,是空格 實驗四 單步運行、變量觀察、算術運算、關系運算、邏輯運算、真假值和選擇語句的的執(zhí)行順序【目的與要求】掌握單步運行和變量觀察這兩種程序調(diào)試方法【內(nèi)容與過程】 單步運行:Run->trace into,可以對程序逐行地執(zhí)行; 變量觀察:window->watch,可以觀察變量中的值的變化; 利用這兩個工具,可以進行程序調(diào)試。2對應于P111的課后題3,輸入以下程序

15、,并通過單步執(zhí)行和變量觀察察看各式計算結果值:Main() int a=3,b=4,c=5; int value; value=a+b>c&&b= =c; .3把P92的第8-11行的算式也放入,查看各式結果值,體會計算過程和計算結果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í)行順序【實驗報告】1. 對應于前2、3和4, 1)如果要觀察各式結果值,應把哪個變量放入觀察窗口?2)寫出各式結果值;3)回答課后題1,2答:1)把value值放入觀察窗口。2)P1

16、11的課后題3,各式結果值是0 1 1 0 1 P92的第8-11行,參照課后題3的賦值,各式結果值是0 0 0 0 P93第1-2行,P94第1-2行,參照課后題3的賦值,另設x=5,y=1,age=18,各式結果值是1 0 0 02. 對應于前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實驗五 邏輯運算與分支判斷【目的與要求】1 了解和使用關系運算符、邏輯運算符、條件

17、運算符及運算。2 掌握if語句、嵌套if結構、條件運算符、switch語句的使用方法。【內(nèi)容與過程】1. if的幾種形式和使用方法,理解分支語句的語句執(zhí)行順序2. switch語句的語法形式和使用方法,理解其執(zhí)行順序3. 各例題和課后題【實驗報告】1 單步運行課本P88的例4.3,運行兩次,第一次如課本輸入“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 中定義的,所以要把這個文件include進本程序中。1) 如果希望單步運行時每一步都能夠?qū)崟r地看到變量disc的值,又稱監(jiān)視/觀察disc變量,應該怎么做?答:Window-watch-Ins-disc。2) 程序中原if語句的條件表達式是(fabs(a)<=1e-6),其邏輯含義是什么?答:判斷實型變量a的值是否為0。3) 若把這個條件表達式改成( a = 1e-6),有無語法錯誤?此時是否進入為真分支;答:語法沒有錯,進入為真分支4) 若改

19、成(a),有無語法錯誤?此時是否進入為真分支。答:語法沒有錯,是否進入為真分支取決于變量a的具體取值。3單步運行課本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,畫流程圖,并分析其運行情況(1)流程圖如下:運行情況分析:如果輸入負數(shù)(如-3),程序運行后輸出“x=-3

20、, y=0”;如果輸入0,程序運行后輸出“x=0,y=-1”;如果輸入正數(shù)(如3),程序運行后輸出“x=3,y=-1”。以上運行情況說明,程序不能實現(xiàn)題目函數(shù)。這是因為本應與第一個if配對(如源程序書寫對齊所示)的else實際上與第二個if配對(如流程圖所示)了。(2)運行情況:如果輸入負數(shù)(如-3),程序運行后輸出“x=-3, y=0”;如果輸入0,程序運行后輸出“x=0,y=-1”;如果輸入正數(shù)(如3),程序運行后輸出“x=3,y=1”。以上運行情況說明,程序不能實現(xiàn)題目函數(shù)。這是因為本應與第一個if配對(如源程序書寫對齊所示)的else實際上與第二個if配對(如流程圖所示)了。實驗六 循

21、環(huán)(一)【目的與要求】掌握while語句、do-while語句、for語句的使用方法。、【內(nèi)容與過程】1. 輸入課本P96的例5-1中的源程序代碼,簡化成求1到3的累加和,把變量I和sum加入觀察窗口,單步運行,體會循環(huán)語句的執(zhí)行(不斷循環(huán))以及觀察變量I和sum的變化情況。2. 輸入課本P102的例5-2的源程序代碼,簡化成求1到3的累加和。用單步運行的方法跟蹤這個源程序的每一步運行,體會循環(huán)的過程。3. 輸入課本P106的例5-9中的源程序代碼,簡化成求1到3的累加和,注意while和do-while循環(huán),它們的循環(huán)次數(shù)和變量變化是否完全一樣?4. 輸入課本P113的例5-16中的源程序代

22、碼,簡化成求1到3的累加和,并單步執(zhí)行,體會goto語句和if語句的配合。5. 體會無限循環(huán)(即死循環(huán))【實驗報告】1. 對照課本P96的圖5-2的流程圖,說明循環(huán)控制變量、循環(huán)條件和循環(huán)表達式分別是哪個?循環(huán)控制變量的初始化語句是?循環(huán)條件測試語句是?循環(huán)控制變量更新語句是?答:循環(huán)控制變量是i、循環(huán)條件是I<=100, 循環(huán)表達式是I=I+1; 循環(huán)控制變量的初始化語句是I=1; 循環(huán)條件測試語句是I<=100; 循環(huán)控制變量更新語句是I=I+1.2. 對于例5-1,變量I的終值是多少?這個終值的意義是什么?答:I的終值是101, 這個終值的意義是使循環(huán)條件為假,以結束循環(huán)3.

23、 對于例5-2,循環(huán)語句I+執(zhí)行了多少次,循環(huán)條件語句I<=100執(zhí)行了多少次?說明什么?答:I+執(zhí)行了100次,I<=100執(zhí)行了100次。說明循環(huán)條件測試語句的執(zhí)行次數(shù)并不是總比循環(huán)次數(shù)多一次的;如果在循環(huán)執(zhí)行前測試循環(huán)條件,則循環(huán)條件測試語句會比循環(huán)次數(shù)多一次,如果在循環(huán)執(zhí)行后測試循環(huán)條件,循環(huán)條件測試語句的執(zhí)行次數(shù)會與循環(huán)次數(shù)相等。4. 對于例5-1 和例5-2,如果循環(huán)條件是(I<=3),兩個程序的循環(huán)執(zhí)行次數(shù)是否一樣?把while語句和do-while語句的循環(huán)條件改為(I>3), 其它不變,說說這兩種語句的運行會有什么不一樣。答:如果循環(huán)條件是I<=

24、3,則循環(huán)執(zhí)行次數(shù)是一樣的;如果改成I>3,則while一次都不執(zhí)行,do while執(zhí)行一次。5. 對于例5-3,把for循環(huán)的for()中的語句I=1刪掉,單步執(zhí)行,有何現(xiàn)象?為什么?只把I<=3刪掉,單步執(zhí)行,有何現(xiàn)象?為什么?只把I+刪掉,單步執(zhí)行,有何現(xiàn)象,為什么?答:把I=1刪掉,則中是個隨機值,難以預計其執(zhí)行;把I<=3刪掉,則死循環(huán);把I+刪掉,也是死循環(huán)。6. 對于P141的課后題10,對照p116的流程圖5-2,設計算法并用流程圖表達,說說適合用哪個循環(huán)語句實現(xiàn)?為什么?并寫成源代碼,調(diào)試運行。答:流程圖為:適合用for循環(huán)實現(xiàn),因為循環(huán)次數(shù)已知。源代碼略

25、實驗七 循環(huán)(二)【目的與要求】1 正確理解、使用中斷語句break與continue。2 理解和掌握嵌套循環(huán)【內(nèi)容與過程】1 單步跟蹤同一個程序,描述一下用break與continue的區(qū)別:1) 單步時的執(zhí)行的順序有什么不同?2) 跳出循環(huán)時的循環(huán)變量取值有什么不同?2 單步跟蹤嵌套循環(huán)的運行過程,體會內(nèi)外層循環(huán)的執(zhí)行順序,以及從中體現(xiàn)出來的循環(huán)變量的變化。【實驗報告】1 上機運行課本P137的程序例5.9,輸入18,單步跟蹤,把變量i,放入觀察窗口。請問:1) 單步跟蹤時,執(zhí)行完break和continue語句的下一個被執(zhí)行到的語句分別是?答:執(zhí)行完break的下一個被執(zhí)行到的語句是pr

26、intf(“%d is not a prime number.n”,n);執(zhí)行完continue的下一個被執(zhí)行到的語句是i+。2) 循環(huán)結束時,i變量的取值分別是?答:如果break,循環(huán)結束時i變量的值是2;如果continue,循環(huán)結束時i變量的值是53) 解釋一下為什么會有這樣的區(qū)別。答:break的作用是結束所有整個循環(huán);continue的作用是結束當次循環(huán),但依然繼續(xù)下一次的循環(huán)。2 上機運行課本P137的例5-10(改為求3-9間的素數(shù),即for (n=3;n<=9;n=n+2),單步跟蹤,完成以下內(nèi)容:1) 答: n k i m第一次外層循環(huán) 3 1 0 (不符合循環(huán)條件,

27、沒有進入內(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)整個程序運行過程中,語句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中三個程序段的流程圖。答:對應于P129頁的源代碼,其流程圖是:對應于P130頁的源代碼(break),其流程圖是:把P130頁的源代碼中的break語句改成continue語句,其流程圖是:實驗八 函數(shù)(一)【目的與要求】1 函數(shù)定義的方法。2 函數(shù)調(diào)用機制與調(diào)用方式。3 掌握對被調(diào)函數(shù)的說明,實參與形參的對應關系,“值傳遞”的數(shù)據(jù)傳遞方式?!緝?nèi)容與過程】1通過單步跟蹤,體會函數(shù)調(diào)用時執(zhí)行順序的變化;2通過看觀察窗口中變量取值

29、的變化,體會變量生存期的涵義?!緦嶒瀳蟾妗? 給課本P127的程序例7.2編號如下,單步跟蹤這個程序的完整的執(zhí)行過程,假設執(zhí)行時的輸入是“3 -5”寫出整個程序的語句執(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) 按序號寫出程序執(zhí)行順序答:9-10-13-14-15-3-4-6-7-15-16-17-182) 對于這個程序的a,b,c,x,y變量,把它們放入觀察窗口,當執(zhí)行到main()函數(shù)的內(nèi)容時,這幾個變量情況如何,為什么?答:執(zhí)行到main()函數(shù)時,a,b,c變量有效, x,y變量是undefined symbol。因為a,b,c在main()函數(shù)中定義,其作用域就只在main()函數(shù)中,所以a,b,c變量

31、有效;x,y變量不在main()函數(shù)中定義,main()函數(shù)不是x,y變量的作用域,所x,y變量無效。實驗九 函數(shù)(二)【目的與要求】1體會遞歸函數(shù)的執(zhí)行順序2體會變量的作用域和存儲類型【內(nèi)容與過程】1 對課本P186的例7.6的源程序進行編號(共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í)行(編號為1-46),回答以下問題:答:1) 第2,3,4行是對函數(shù)進行 聲明 ;第6,24

32、,32,40行是對函數(shù)進行 定義 ;第15-20行是對函數(shù)進行 調(diào)用 。2) 第5行定義的變量x是一個 全局 變量。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 ,因為_x的存儲類型是auto,意味著會被存儲在動態(tài)存儲區(qū),會隨函數(shù)調(diào)用結束而釋放空間,因此上次函數(shù)調(diào)用的x值沒有保留下來_10) 單步執(zhí)行到第36行,這里的x是第_34 _ _行定義的變量x, 值為_51 ,因為_x的存儲類型是static,意味著會被存儲在靜態(tài)存儲區(qū),不會隨函數(shù)調(diào)用結束而消失,因此上次調(diào)用時增一后的x值被保留_11) 再次單步執(zhí)行到第43行,這里的x是第_5_行定義的變量x, 值為_6 ,因為_ x是全局變量,存儲在靜態(tài)存儲區(qū),同時作用域是整個程序,因此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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論