函式與程式結構實驗實驗報告

2021-03-04 06:45:49 字數 2781 閱讀 2451

c語言程式設計實驗報告

專業:電腦科學與技術班級:電腦科學與技術創新實驗班日期:2011-12-12成績:

實驗組別第次實驗指導教師:

學生姓名學號同組人姓名:

實驗名稱:函式與程式結構實驗

1、實驗目的

(1) 熟悉和掌握函式的定義、宣告,函式的呼叫和引數傳遞方法,以及函式返回值型別的定義和返回值的使用。

(2) 熟悉和掌握不同儲存型別變數的使用

(3) 熟悉多檔案編譯技術。

二、實驗內容及要求

1.原程式改錯

下面是計算s=1!+2!+3!+…+n!的原程式,在這個程式中存在若干語法和邏輯錯誤。要求在計算機上對這個例子原程式進行除錯修改,是指能夠爭取完成指定任務。

源程式:

#include

int main(void)

return 0;

long sum_fac(int n)

2.源程式修改替換

(1) 修改施上述源程式中的sum_fac函式,是其計算量最小

(2) 修改上述源程式中的sum_fac函式,計算

s=1+1/2!+1/3!+…+1/n!

3.跟蹤除錯

下面是計算fabonacci數列前n項和的源程式,線要求單步執行該程式,並觀察p,i,sum,n值,即:

(1) 剛執行按「scanf(「%d」,&k);」語句是,p,i值是多少?

(2) 從fabonacci函式返回後,光條停留在哪個語句上?

(3) 進入fabonacci函式是,watches視窗顯示的是什麼?

(4) 當i=3時,從呼叫fabonacci函式大搜返回,n值如何變化?

源程式:

#include

long fadonacci(int);

int main(void)

return 0;

} long fabonacci(int n)

其中,「long sum=0,*p=∑」宣告p為長整型指標,並用&sum取出sum的位址對p初始化;*p表示引用p所指的變數(*p即sum)。

4.程式設計

編寫並上機除錯執行能實現以下功能的程式:

(1) 編寫乙個程式,讓使用者輸入兩個整數,計算兩個整數的最大公約數並輸出。要求用遞迴函式實現求最大公約數,同時一單步方式執行,觀察其遞迴過程。

(2) 編寫乙個程式,驗證哥德**猜想:乙個大於等於4的偶數都是兩個素數之和。

(3) 編寫乙個程式,證明對與在符號常量begin和end之間的偶數這一猜測成立。例如,如果begin為10,end為20,則程式的輸出應為:

goldbach's conjecture:

every even number n>=4 is the sum of two primes.

10=3+7

12=5+7

……20=3+17

5.選做題

假設乙個c程式由file1.c和file2.c連個原始檔及乙個file.

h標頭檔案組成,file1.c,file2.c,file.

h的內容分別如下述。試編輯該多檔案程式,並編譯和鏈結,然後執行生成後的可執行檔案。

原始檔file1.c的內容為

#include"file.h"

int x,y;

char ch;

int main(void)

原始檔file2.c的內容為

#include"file.h"

void funcl(void)

標頭檔案file.h的內容為

#include

extern int x,y;

extern char ch;

void funcl(void);

三、實驗步驟及結果

1.源程式改錯

改後程式:

#include

long sum_fac(int n);

int main()

long sum_fac(int n)

return s;

}2.源程式修改替換

(1)#include

long sum_fac(int n);

int main()

long sum_fac(int n)

(2)#include

double sum_fac(int n);

int main()

double sum_fac(int n)

3.跟蹤除錯

#include

long fabonacci(int);

int main(void)

return 0;

}long fabonacci(int n)

(1)剛執行完「scanf("%d",&k);」語句時,p=(long int*)0x22ff10;i=58;

(2)從fabonacci函式返回後,光條停留在printf語句上

(3)進入fabonacci函式時,watches視窗顯示的是n=1

(4)當i=3時,從呼叫fabonacci函式到返回,n=3

4.程式設計

(1)#include

int main()

int divisor(int m,int n)

(2)#include

int divisor(int m,int n);

int check(int n);

int main()

int divisor(int m,int n)

{ if(m>=n&&n>0)

divisor(m-n,n);

else if(m0)

09上機實驗五函式與程式結構

實驗目的 掌握函式宣告 定義和使用的方法 掌握函式遞迴呼叫的方法 掌握全域性變數 區域性變數 靜態變數的使用方法 掌握過載函式及預設函式引數的使用方法 實驗內容 1.分析程式執行結果 輸入下列程式,執行它,分析得到的結果。include int n 0 int func int x 10 void ...

實驗選擇結構程式結構

實驗五 選擇與迴圈結構 一 實驗目的 1 掌握建立和執行m檔案的方法。2 掌握利用if語句實現選擇結構的方法。3 掌握利用switch語句實現多分支選擇結構的方法。4 掌握try語句的使用。5 掌握利用for語句實現迴圈結構的方法。6 掌握利用while語句實現迴圈結構的方法。7 熟悉利用向量運算來...

實驗六程式結構及游標

實驗六 pl sql程式結構及游標 一 實驗學時 2學時二 實驗型別 驗證性實驗。三 實驗目的和主要內容 掌握pl sql程式的各組成部分,掌握pl sql的控制結構。主要內容包括 1.在sql plus中定義pl sql塊處理。2.在pl sql執行塊中進行迴圈結構控制。了解游標的概念,掌握游標的...