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執行塊中進行迴圈結構控制。了解游標的概念,掌握游標的...