崔孝鳳
摘要:對于C語言的初學者來說,用戶自定義函數既是重點又是難點,本文從初學者的角度出發由簡單到復雜依次設計了4個案例,通過這4個案例依次清楚描述了4種不同形式的C語言用戶自定義函數的定義及調用方法。
關鍵詞:C語言;函數;案例教學
中圖分類號:G64 文獻標識碼:A
文章編號:1009-3044(2019)09-0136-02
1 引言
對于C語言的初學者來說,用戶自定義函數既是重點又是難點,如何用淺顯易懂的程序案例幫助初學者理解自定義函數的參數的各種使用方法是擺在每一位C語言任課教師面前的一項艱巨的任務。本文從初學者的角度出發,遵從由易到難的自然學習規律,設計出4個案例,依次演示了4種函數參數的使用方法。
2 具體案例
2.1 無參函數的定義和調用
【例題1】請設計一個求和函數qh,功能是計算兩個任意整數之和,這任意的兩個整數在函數qh中輸入,結果也在函數qh中輸出,在主函數main中調用求和函數qh。
算法分析:因為沒有參數,所以把數據的輸入及結果輸出都放在求和函數qh中完成,主函數只是完成函數調用。
源代碼如下:
#include
void qh()
{int a,b,s;
printf("請輸入任意的兩個整數:\n");
scanf("%d%d",&a,&b);
s=a+b;
printf("%d+%d=%d\n",a,b,s);
return;
}
int main()
{qh();//調用函數qh,沒有參數
return 0;
}
2.2 有參函數的定義和調用—單向的值傳遞
【例題2】請設計一個求和函數qh,功能是計算兩個任意整數之和,這任意的兩個整數通過函數qh的兩個參數接收,結果由return語句返回主函數,在主函數main中輸入任意的兩個整數,調用求和函數qh并輸出結果。
算法分析:在求和函數qh中設計兩個整型的形參,用來接收主調函數傳遞過來的兩個整數,在求和函數qh中完成計算后用return語句將結果返回,在主函數main中完成數據的輸入、函數調用及結果輸出。
源代碼如下:
#include
int qh(int a,int b)
{int s;
s=a+b;
return s;
}
int main()
{int a,b,s;
printf("請輸入任意的兩個整數:\n");
scanf("%d%d",&a,&b);
s=qh(a,b);//調用函數qh,有兩個參數
printf("%d+%d=%d\n",a,b,s);
return 0;
}
2.3 有參函數的定義和調用—雙向的地址傳遞,結果仍然通過return語句返回
【例題3】請設計一個求和函數qh,功能是計算兩個任意整數之和,這任意的兩個整數通過函數qh的1個數組參數接收,結果由return語句返回主函數,在主函數main中輸入任意的兩個整數,調用求和函數qh并輸出結果。
算法分析:在求和函數qh中設計1個整型的數組形參,用來接收主調函數傳遞過來的數組首地址,在求和函數qh中完成計算后用return語句將結果返回,在主函數main中完成數據的輸入、函數調用及結果輸出。
源代碼如下:
//形參只有一個數組名
#include
int qh(int a[])
{int s;
s=a[0]+a[1];
return s;
}
int main()
{int a[2],s;
printf("請輸入任意的兩個整數:\n");
scanf("%d%d",&a[0],&a[1]);
s=qh(a);//調用函數qh,數組名作實參
printf("%d+%d=%d\n",a[0],a[1],s);
return 0;
}
2.4有參函數的定義和調用—雙向的地址傳遞,通過數組元素完成數據的傳遞
【例題4】請設計一個求和函數qh,功能是計算任意兩個整數之和,這任意的兩個整數通過函數qh的1個數組參數接收,結果由數組參數的第3個數組元素返回主函數,在主函數main中輸入任意的兩個整數,調用求和函數qh并輸出結果。
算法分析:在求和函數qh中設計1個整型的數組形參,用來接收主調函數傳遞過來的數組首地址,在求和函數qh中將計算結果存放在第3個數組元素中帶回主函數,在主函數main中完成數據的輸入、函數調用及結果輸出。
源代碼如下:
//形參只有一個數組名,不包含數據個數n,也是可以的
#include
int qh(int a[])
{ a[2]=a[0]+a[1];
}
int main()
{int a[3],s;
printf("請輸入任意的兩個整數:\n");
scanf("%d%d",&a[0],&a[1]);
qh(a);//調用函數qh,有1個參數
printf("%d+%d=%d\n",a[0],a[1],a[2]);
return 0;
}
【說明】程序也可以如下所示:
//形參包含一個數組名和數據個數n,也是可以的
#include
int qh(int a[],int n)
{ a[2]=a[0]+a[1];
}
int main()
{int a[3],s;
printf("請輸入任意的兩個整數:\n");
scanf("%d%d",&a[0],&a[1]);
qh(a,3);//調用函數qh,有2個參數
printf("%d+%d=%d\n",a[0],a[1],a[2]);
return 0;
}
3 結束語
以上4個案例具體描述了C語言用戶自定義函數的4種參數的定義方式,對初學者有極好的引導作用,在此基礎上還可以很容易地實現通過函數調用完成任意n個數的求和等的計算。
參考文獻:
[1] 許金蘭,徐崗. “興趣驅動+案例教學模式”在C語言教學中的應用[J]. 中國信息技術教育,2018-03-23.
[2] 劉芝怡. “項目引領,任務驅動,案例主導”的 C 語言程序設計教學改革[J]. 教育現代化,2018-02-12.
[3] 王亮.《C 語言程序設計》循環結構教學案例研究[J]. 科技視界, 2018-01-05.
[4] 陳廣群,胡曉蓉,來敏健. 基于計算思維的C 語言程序設計課程教學初探[J]. 電腦知識與技術, 2018,14(4).
[5] 黃金國. 基于項目化教學的“C 語言程序設計”課程改革研究[J]. 吉林工程技術師范學院學報, 2018,34(2).
[6] 季麗琴. 以“編、改、調”三部曲改革C 語言實踐教學[J]. 計算機教育,2018-04-10.
【通聯編輯:王力】