崔孝鳳
摘要:對于C語言的初學者來說,三種程序結構的學習既是重點又是難點,本文從初學者的角度出發由順序結構到循環結構采用滲透式漸進案例的形式依次設計了3個案例,通過這3個案例依次清楚描述了C語言中的三種結構,對于C語言的初學者能夠起到很好的入門引導作用。
關鍵詞:C語言;三種結構;滲透式;漸進;案例教學
中圖分類號:G642 文獻標識碼:A
文章編號:1009-3044(2019)08-0095-02
1 引言
對于C語言的初學者來說,三種程序結構的學習和掌握既是重點又是難點,如何用淺顯易懂的程序案例幫助初學者理解并應用好這三種結構是擺在每一位C語言任課教師面前的一項艱巨的任務。本文從初學者的角度出發,遵從由易到難的自然學習規律,采用滲透式漸進案例的方法設計出3個案例,依次清楚描述了C語言中的三種結構,對于C語言的初學者能夠起到很好的入門引導作用。
2 具體案例
2.1 順序結構案例
【例題1】請設計一個程序,功能是輸入一個人的年齡和性別并輸出結果。
算法分析:這是一個順序結構的程序,功能很簡單,首先輸入一個人的年齡和性別,然后再依次輸出即可,為了使程序簡單化好理解,此處設定如果是男性輸入字母m,如果是女性輸入字母f。目的是考慮到C語言初學者知識有限,所以盡可能地把程序簡單化,首先調動起學習者的興趣,這是至關重要的一項。
源代碼如下:
#include
int main(void)
{int age; //用age存儲年齡
char sex; //用sex存儲性別
printf("請輸入您的年齡:\n");
scanf("%d",&age);
getchar(); //取消上一個輸入最后輸入的回車符
printf("請輸入您的性別(如果是男性請輸入m,如果是女性請輸入f):\n");
sex=getchar();
printf("您的年齡是:%d\n",age);
printf("您的性別是:%c\n",sex);
return 0;
}
2.2 選擇結構案例
【例題2】請設計一個程序,功能是輸入一個人的年齡和性別并輸出相應結果,如果性別是m則輸出“您是一位男士!”的信息,如果性別是f則輸出“您是一位女士!”的信息。
算法分析:與例題1一樣首先輸入一個人的年齡和性別信息,然后根據輸入的性別信息做出不同的處理,如果性別輸入的是m,則輸出“您是一位男士!”的信息,如果性別輸入的是f,則輸出“您是一位女士!”的信息。這是一個比較簡單的兩分支的選擇結構,當然可以設計更復雜的判斷,比如根據年齡大小分別輸出與年齡更加相符合、更加人性化的信息,此處我們首要的目的仍然是引起學習者的興趣,然后再逐步加深難度。
源代碼如下:
#include
int main(void)
{int age; //用age存儲年齡
char sex; //用sex存儲性別
printf("請輸入您的年齡:\n");
scanf("%d",&age);
getchar(); //取消上一個輸入的回車符
printf("請輸入您的性別(如果是男性請輸入m,如果是女性請輸入f):\n");
sex=getchar();
printf("您的年齡是:%d\n",age);
if(sex=='m')
printf("您是一位男士!\n");
else
printf("您是一位女士!\n");
return 0;
}
請讀者思考:如果程序運行時用戶輸入的性別既不是字母m也不是f,程序會輸出什么結果?結果對嗎?程序應該如何改進呢?還有如果想根據年齡的不同輸出更加人性化的信息,比如如果年齡在12歲以內而且是女性則輸出“您是一位可愛的小女孩兒!”,等等,應該對程序如何修改呢?教師可逐步引導學生對程序進行修改,把選擇結構的各種復雜情況逐步引出。
2.3 循環結構案例
【例題3】請設計一個程序,功能是可以輸入多個人的年齡和性別,并且根據性別不同輸出不同的信息,如果性別是m則輸出“您是一位男士!”的信息;如果性別是f則輸出“您是一位女士!”的信息。
算法分析:這個程序是在例題2的基礎上的一個滲透和擴展,目的是引導學生進入循環結構程序設計的應用。該程序需要首先輸入人數,然后用一個循環結構來控制人數,在循環體中完成相應的要求即可。
源代碼如下:
//循環結構,程序運行一次,可以輸入多人的信息
#include
int main(void)
{int age; //用age存儲年齡
char sex; //用sex存儲性別
int i,num; //用i控制循環執行次數,用num 存儲人數
printf("請輸入人數:\n");
scanf("%d",&num);
for(i=1;i<=num;i++) //循環num次
{printf("請輸入您的年齡:\n");
scanf("%d",&age);
getchar(); //取消上一個輸入的回車符
printf("請輸入您的性別(如果是男性請輸入m,如果是女性請輸入f):\n");
sex=getchar();
printf("您的年齡是:%d\n",age);
if(sex=='m')
printf("您是一位男士!\n");
else
printf("您是一位女士!\n");
} //循環結束
printf("程序運行結束,謝謝您的使用!\n");
return 0;
}
請讀者思考一下,如果事先不知道具體的人數,程序該如何修改?還有此程序是使用for語句實現循環的,如果用while或者do-while語句,程序該如何修改呢?學習程序設計必須能夠做到舉一反三才能熟練掌握。
3 結束語
以上3個案例采用滲透式漸進案例的方式具體展示了C語言中的3種程序結構的一種應用,目的是拋磚引玉,引起學生的學習興趣,從而逐步深化下去,取得更好的學習效果。這3個案例對初學者有極好的引導作用,在此基礎上初學者可以很容易地完成更復雜的程序設計。
參考文獻:
[1] 李娟,張燕. C 語言循環結構教學的設計與實踐[J]. 計算機教育, 2018-03-10.
[2] 郝蕊潔,李妮. “情境-問題-探究”式教學法在C 語言教學中的應用[J]. 現代計算機,2017-11.
[3] 辛凌潔,賈玉寧,楊穎.C 語言程序設計學習興趣和方法[J]. 中國教育技術裝備, 2017(22).
[4] 許金蘭,徐崗. “興趣驅動+案例教學模式”在C語言教學中的應用[J]. 中國信息技術教育,2018-03-23.
[5] 王亮.《C 語言程序設計》循環結構教學案例研究[J]. 科技視界, 2018-01-05.
[6] 劉芝怡. “項目引領,任務驅動,案例主導”的 C 語言程序設計教學改革[J]. 教育現代化,2018-02-12.
【通聯編輯:王力】