第一篇:C語言程序設(shè)計(jì)實(shí)驗(yàn)五:函數(shù)
C語言程序設(shè)計(jì)實(shí)驗(yàn)五:函數(shù)
1、定義函數(shù)返回兩個(gè)數(shù)中較大的數(shù),在主函數(shù)中通過調(diào)用該函數(shù)求三個(gè)數(shù)中較大的數(shù)并輸出,編寫主函數(shù)調(diào)用該函數(shù)。
說明:
(1)請(qǐng)大家按學(xué)號(hào)來坐,便于考勤和管理。
(2)請(qǐng)珍惜寶貴的實(shí)驗(yàn)時(shí)間!不要做與實(shí)驗(yàn)無關(guān)的事情,比如聊QQ、上網(wǎng)或打游戲。
(3)直接把C語言代碼粘貼到相應(yīng)的實(shí)驗(yàn)題目下方,上交實(shí)驗(yàn)報(bào)告時(shí)只交word文檔。
(4)文檔名稱:班級(jí)+學(xué)號(hào)后2位+姓名+實(shí)驗(yàn)編號(hào),例如12通1班12張山實(shí)驗(yàn)五.doc。
第二篇:C語言程序設(shè)計(jì)實(shí)驗(yàn)七:函數(shù)、數(shù)組、指針
C語言程序設(shè)計(jì)實(shí)驗(yàn)七:函數(shù)、數(shù)組、指針
1、程序運(yùn)行后,用戶任意輸入一個(gè)字符串,求出字符串長(zhǎng)度,然后輸出字符串內(nèi)容及個(gè) 數(shù)。不能使用strlen函數(shù)。
求字符串長(zhǎng)度函數(shù)的函數(shù)原型必須如下:
int MyStrLenPt(char *str)
若輸入:nihao123!
則輸出:nihao123!:9 chars2、編寫一個(gè)對(duì)一維數(shù)組進(jìn)行排序的程序。
要求:
寫兩個(gè)函數(shù),一個(gè)主函數(shù),一個(gè)sort函數(shù)。在主函數(shù)中完成數(shù)組的輸入和輸出,通過調(diào) 用sort函數(shù)對(duì)數(shù)組進(jìn)行排序。
sort函數(shù)的原型為:voidsort(int*p, intn);
說明:
(1)請(qǐng)大家按學(xué)號(hào)來坐,便于考勤和管理。
(2)請(qǐng)珍惜寶貴的實(shí)驗(yàn)時(shí)間!不要做與實(shí)驗(yàn)無關(guān)的事情,比如聊QQ、上網(wǎng)或打游戲。
(3)直接把C語言代碼粘貼到相應(yīng)的實(shí)驗(yàn)題目下方,上交實(shí)驗(yàn)報(bào)告時(shí)只交word文檔。
(4)文檔名稱:班級(jí)+學(xué)號(hào)后2位+姓名+實(shí)驗(yàn)編號(hào),例如11電1班12張山實(shí)驗(yàn)七.doc。
第三篇:C語言程序設(shè)計(jì)—函數(shù)—實(shí)驗(yàn)報(bào)告
實(shí) 驗(yàn) 報(bào) 告
專業(yè)
軟 件 工 程
班級(jí)
X
班
學(xué)號(hào)_ XXXXXXXXXXX_
姓名
實(shí)驗(yàn)日期:201X年X月X日
報(bào)告退發(fā)(訂正、重做)
課程
C程序設(shè)計(jì)實(shí)驗(yàn)
實(shí)驗(yàn)名稱
函
數(shù)
一、實(shí)驗(yàn)?zāi)康?/p>
① 熟練掌握C程序中函數(shù)的定義; ② 掌握函數(shù)的調(diào)用,函數(shù)參數(shù)的傳遞; ③ 熟練掌握函數(shù)的嵌套調(diào)用和遞歸調(diào)用;
二、實(shí)驗(yàn)環(huán)境(描述實(shí)驗(yàn)的軟件、硬件環(huán)境)
① 軟件環(huán)境:windows xp/win7等操作系統(tǒng),Microsoft Visual C++ 6.0編譯器; ② 硬件環(huán)境:PC機(jī)一臺(tái)
三、實(shí)驗(yàn)內(nèi)容、步驟和結(jié)果分析
題目一:編寫一個(gè)用來判斷質(zhì)數(shù)(素?cái)?shù))的函數(shù)。
要求:
(1)在main函數(shù)中調(diào)用該函數(shù)對(duì)輸入的數(shù)值進(jìn)行判斷,并輸出判斷結(jié)果;(2)當(dāng)輸入數(shù)值<=1時(shí),停止輸入和判斷。
#include
} /*=======判斷質(zhì)數(shù)(素?cái)?shù))的函數(shù)=======*/ int main(){
printf(“n提示:輸入一個(gè)數(shù)字來判斷是否是質(zhì)數(shù)(素?cái)?shù)),當(dāng)輸入數(shù)值<=1時(shí),停止輸入和判斷。nn”);for(int num=2,temp;num>1;){ printf(“Please enter a number:”);for(int i=2;i<=sqrt(n);i++)//一個(gè)數(shù)n如果是合數(shù),那么它的所有的因子不超過n的開方 {
} return 1;if(n%i==0)return 0;else continue;
}
} scanf(“%d”,&num);if(num<=1)break;//當(dāng)輸入數(shù)值<=1時(shí),停止輸入和判斷 temp=judgePrime(num);if(temp==0)printf(“%d is not a prime numner!nn”,num);else printf(“%d is a prime numner!nn”,num);return 0;
題目二:使用習(xí)題1中所編寫的判斷質(zhì)數(shù)的函數(shù)驗(yàn)證哥德巴赫(Goldbach)的1+1猜想-----任何一個(gè)>=6的偶數(shù)都可以表示成兩個(gè)素?cái)?shù)之和
要求:
① 屏幕提示用戶一個(gè)>=6的偶數(shù);
② 輸出這個(gè)偶數(shù)等于2個(gè)素?cái)?shù)之和的表達(dá)式; ③ 當(dāng)輸入數(shù)據(jù)<6或者不是偶數(shù)時(shí),停止輸入和驗(yàn)證。
#include
for(int i=2;i<=sqrt(n);i++)//一個(gè)數(shù)n如果是合數(shù),那么它的所有的因子不超過n的開方 {
if(n%i==0)return 0;else continue;
} } return 1;//true-->1,false-->0 /*=======驗(yàn)證哥德巴赫猜想的函數(shù)(調(diào)用judgePrime)=======*/ int proveGoldbach(int m){
} int main(){
}
printf(“n提示:輸入一個(gè)偶數(shù)來驗(yàn)證哥德巴赫猜想,當(dāng)輸入數(shù)值<6時(shí),停止輸入和判斷。nn”);for(int num=6;num>=6;){
} int temp;printf(“Please enter a number:”);scanf(“%d”,&num);temp=proveGoldbach(num);if(temp==0)//當(dāng)輸入小于6或者不是偶數(shù)時(shí)結(jié)束 return 0;printf(“==================================”);if(m<6||m%2!=0){
} if(judgePrime(j)==1&&judgePrime(m-j)==1)//判斷兩數(shù)是否都等于質(zhì)數(shù) { } printf(“t%d = %d + %dn”,m,j,m-j);return 0;//判斷是否大于等于6或者不是偶數(shù) for(int j=2;j<(m/2);j++)
題目三:編寫一個(gè)求階乘的函數(shù),接著調(diào)用該函數(shù)實(shí)現(xiàn)組合的求解要求:
① 提示用戶輸入n和m的數(shù)值; ② 輸出的 結(jié)果
#include
} /*=======組合函數(shù)=======*/ int combine(int m,int n){ } /*=======main函數(shù)=======*/ void main(){
int m,n;int res;printf(“n提示:這是求組合求和公式的函數(shù),輸入兩個(gè)整數(shù)(分別為上標(biāo)和下標(biāo))nn”);scanf(“%d%d”,&m,&n);if(m>n)//判斷上標(biāo)大于小標(biāo)重新輸入 goto loop;return fac(n)/(fac(n-m)*fac(m));int f;if(n<0)printf(“n<0,data error!”);f=1;else if(n==0||n==1)else f=fac(n-1)*n;return f;loop:printf(“Please enter two numbers:”);
}res=combine(m,n);printf(“tResult is %dn”,res);
題目四:編寫一個(gè)求矩陣中最大元素以及最小元素的函數(shù)selectMaxAndMin(),在main函數(shù)中調(diào)用該函數(shù)
要求:
最大值和最小值的輸出操作,可以放在selectMaxAndMin()函數(shù)中
#include
/*=======在矩陣中選擇最大最小數(shù)的函數(shù)=======*/ void selectMaxAndMin(int arry[ROW][COLUMN])//用指針更方便 {
int tempMax,tempMin;if(arry[0][0]>arry[0][1])//賦初始值 {
} else {
} for(int i=0;i } } for(int j=0;j } if(arry[i][j]>tempMax){ } if(arry[i][j] } int mat[ROW][COLUMN];printf(“Please enter a %d X %d matrix:n”,ROW,COLUMN);for(int i=0;i } selectMaxAndMin(mat);return 0;for(int j=0;j 題目五:編寫一個(gè)編碼原文的函數(shù),對(duì)于給定的內(nèi)容,按照敵方的規(guī)律對(duì)其進(jìn)行編碼 要求: 某日,我軍某部截獲了一份敵方電報(bào),經(jīng)過仔細(xì)分析后發(fā)現(xiàn):該電文中所有的字母字符都是經(jīng)過某種運(yùn)算后得到的,然那些非字母字符則沒有經(jīng)過任何處理。例如,原文中的字符A對(duì)應(yīng)電文中的字符E,原文中的字符b對(duì)應(yīng)電文中的字符f,原文中的字符W對(duì)應(yīng)電文中的字符A,原文中的字符!在電文中仍為! #include //定義大小 /*=======密碼翻譯的函數(shù)=======*/ char trans(char a){ } //主函數(shù) int main(void){ printf(“請(qǐng)輸入原文:nnn”);char str[SIZE];gets(str);printf(“nnn”);if((a>='a'&&a<='v')||(a>='A'&&a<='V')){ } else { } if(a>='w'||a>='W'){ } else { return a;} return a-22;return a+4; }printf(“正在破解……nnn”);printf(“破譯的原文是:”);for(int i=0;i<20;i++){ } printf(“n”);str[i]=trans(str[i]);if(str[i]=='