c語言函數實習報告
程序設計(C語言)實驗報告
實驗目的
(1)掌握函數的定義方法,調用方法,參數說明以及返回值;
(2)掌握實參與形參的對應關係,一集參數之間的'“值傳遞”的方式;
(3)掌握函數嵌套調用及遞歸調用的設計方法;
(4)在編寫過程中加深理解函數調用的程序設計思想。
實驗內容
(1)編輯,編譯,運行實驗指導中的程序,並分析輸出結果
(2)編寫一個函數primeNum(int x),功能是判別一個數是否是素數。
(3)編寫函數mulNum(int a,int b),功能是判定a是否是b的整數倍
實驗1方法一:
源程序:
#include<stdio.h>
#include<math.h>
int computeNum(int x)
{
int sum ,a,b,c,d,e;
sum=0;
x=abs(x);
a=x/10000;
b=(x%10000)/1000;
c=(x%1000)/100;
d=(x%100)/10;
e=(x%10)/1;
sum=a+b+c+d+e;
return sum;
}
main()
{
int a,b;
printf("Please input an integer:");
scanf("%d",&a);
b=computeNum(a);
printf("the sum of all digits is %dn",b);
}
輸入一個整數123 運行結果如圖
輸入整數98341驗證 運行結果如圖
方法二:
#include<stdio.h>
#include<math.h>
int computeNum(int x)
{
int sum,i,t;
sum=0;
x=abs(x);
for(i=4;i>=0;i--)
{
t=pow(10,i);
if(x>=t)
{
sum=sum+x/t;
x=x-(x/t)*t;
}
}
return sum;
}
main()
{
int a,b;
printf("Please input an integer:");
scanf("%d",&a);
b=computeNum(a);
printf("The sum of all digits is %dn:",b); }
輸入整數456運行結果如圖
輸入整數98341驗證運行結果如圖
實驗2:
源程序:
#include<stdio.h>
void move(char geton ,char puton)
{
printf("%c->%cn",geton,puton);
}
void Hanoi(int n,char one,char two,char three) {
if (n==1)
move(one,three);
else
{
Hanoi(n-1,one,three,two);
move(one,three);
Hanoi(n-1,two,one,three);
}
}
void main()
{
int m ;
printf("Input the number of diskes:"); scanf("%d",&m);
printf("The steps of moving %d diskes:n",m); Hanoi(m,'A','B','C');
}
輸入3運行結果如下:
輸入4運行結果如下:
實驗2:
源程序:
#include<stdio.h>
int i,a,x;
int primeNum(int x)
{
for(i=2;i<x;i++)
{
a=x%i;
if(a==0)
return 0;
}
return 1;
}
main()
{
printf("Please input x!n");
scanf("%d",&x);
if(x<2)
printf("wrong in put!n");
else
{
a=primeNum(x);
if(a==0)
printf("%d is not a prime number!n",x); else
printf("%d is a prime number!n",x);
}
}
輸入數據0運行結果如下:
輸入數據1運行結果如下:
輸入數據2運行結果如下:
輸入數據3運行結果如下:
輸入數據9運行結果如下:
輸入數據13運行結果如下:
輸入數據59運行結果如下:
輸入數據121運行結果如下:
實驗3: 源程序:
#include<stdio.h>
int mulNum(int a,int b) {
int i,c; c=a%b; if(c>0)
i=0; else i=1; return i; }
main() {
int a,b,s;
printf("please input a and b:n"); scanf("%d %d",&a,&b); s=mulNum(a,b); if(s==1)
printf("%d is a multiple of %dn",a,b); else
printf("%d is not a multiple of %dn",a,b); }
輸入數據1和5運行結果如下:
輸入數據5和5運行結果如下:
輸入數據6和2運行結果如下:
輸入數據6和4運行結果如下:
輸入數據20和4運行結果如下:
輸入數據37和9運行結果如下:
出現的問題及解決方法:
編譯過程中常出現因錯漏而使語句不規範的現象。解決方法:更加認真以及注意檢查。
實驗心得:
通過本次試驗我掌握了函數的定義,調用方法,參數的說明以及返回值,函數遞歸調用的設計方法等,逐步理解了函數調用的程序設計思想,學習過程常會遇到問題,因此需要認真理解,多作練習。
相關文章
-
C語言中實現參數個數可變函數
導語:C語言中實現參數個數可變函數:其實,我總覺得有個結論應該是必然的。既然很多語言最初都是由C語言發展來的,還有很多語言的基礎是用C語言實現的。那麼,這些用C語言實現的高級語言的很多特性或者是功能在一定程度上應該 -
c語言隨機數生成函數和時間函數
即便是再相似的人,也有屬於各自獨特的習慣與愛好。無論是服飾、生活習慣,還是髮型。在我們的印象裏面,齊劉海總是有一種可愛、萌萌的感覺。斜劉海卻給人一種成熟的自然魅力!下面小編給大家分享幾款斜劉海的長卷發發型!斜劉 -
C語言中getch()函數詳解(附實例)
C語言中getch()函數是一個不回顯函數,以下是本站小編搜索整理的關於C語言中getch()函數詳解(附實例),供參考學習,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網! 前言:這個函數是一個不回顯函 -
C語言函數的聲明以及函數原型
C語言把括號、賦值、強制類型轉換等都作爲運算符處理。那麼大家知道C語言函數的聲明以及函數原型是什麼呢?下面來看看!C語言代碼由上到下依次執行,原則上函數定義要出現在函數調用之前,否則就會報錯。但在實際開發中,經 -
C語言函數指針與回調函數詳解
當賞讀完一本名著後,相信大家都積累了屬於自己的讀書感悟,這時候,最關鍵的讀後感怎麼能落下!可能你現在毫無頭緒吧,以下是小編爲大家收集的三國演義優秀讀後感,希望能夠幫助到大家。三國演義優秀讀後感1四大名著中,我最喜歡 -
關於c語言實習報告
通過c語言實訓,讓我加深了對c語言的瞭解,而不只是單單的在課本中學到的那些理論,平時乏味的課程,通過自己動手親自編寫,變的生動有趣,而在自己動手的過程中,出現的問題很多,比理論要難的多,當一個程序寫完以後,經常會有很多錯誤 -
C語言函數入門學習
C語言是一門通用計算機編程語言,應用廣泛。下面小編整理了C語言函數入門學習知識,希望對大家有幫助!函數是一組一起執行一個任務的語句。每個C程序都至少有一個函數,即主函數 main() ,所有簡單的程序都可以定義其他額外的 -
C語言常用庫函數實現
對於C語言來說遠着許多的函數需要記住,因此是十分考驗技巧的'語言,但是也是學習編程的入門知識,下面是小編爲大家蒐集整理出來的有關於C常用庫函數實現,希望可以幫助到大家!1234567891011121314151617181920212223242526 -
C語言裏面構造函數和析構函數的運用辦法
摘 要:構造函數與析構函數是一個類中看似較爲簡單的兩類函數,但在實際運用過程中總會出現一些意想不到的運行錯誤。本文將較系統的介紹構造函數與析構函數的原理及在C#中的運用,以及在使用過程中需要注意的若干事項。關 -
C語言函數的基本學習教程
C 語言中的函數等價於 Fortran 語言中的子程序或函數,也等價於 Pascal 語言中的過程或函數。函數爲計算的封裝提供了一種簡便的方法,此後使用函數時不需要考慮它是如何實現的。使用設計正確的函數,程序員無需考慮功能是