
摘要:《C語言程序設計》[1]是我校鐵道機車、智能產品開發與應用專業開設的一門專業必修課。考慮我校學情,同時結合學院人才培養方案、課程標準選取了本學期的教學內容:順序結構程序設計、選擇結構程序設計、循環結構程序設計、C語言函數等,本文中所涉及的知識點均來自于此。挖掘此門課程的思政元素,以期能打造有情懷、有溫度的課堂;增添學生的學習興趣;幫助學生德智技并進;發揮其滲透功能、實施價值引領、提高該門課程的教學質量。
關鍵詞:C語言程序設計;思政元素
一、沒有規矩不成方圓
C語言算法設計時允許使用變量,給變量取名至關重要。C語言中明確規定了變量命名規則:C語言規定標識符只能由字母、數字和下劃線3種字符組成,且第一個字符必須為字母或下劃線[2]。對此規則,同學們能做到爛熟于心,但在應對各種類型的考題時常常出錯。例如,請識別下列標識符的正誤:sum,average,_3a , a3_,a_3,azhongguo(6個命名均正確);M.D.John,¥123,#33, a>b,3-a,a中國(6個命名中分別出現了非法字符:.,¥,#,>,-,中國);3D64,3_a(命名均因第一個字符是數字而錯誤)。變量的命名規則使用是否得當直接會影響到程序編譯過程能否順利通過,這就如同身在校園、單位、社會中的每個人,我們都必須遵紀守法,遵守各項規章制度,這樣既能順其道而行之又能明白規則守得方圓。
二、做事需分清緩急、條理清明
C語言常用運算符有:算術運算符、關系運算符、賦值運算符、逗號運算符、等[3],當同一個表達式中出現多個運算符時,應考慮運算符優先級別次序。常見運算符從高到低依次是:!(邏輯非)、算術運算符、關系運算符、&&和||、賦值運算符。現階段的C程序編譯軟件大多帶有運算符優先級別次序表,需要時直接查詢使用即可。現舉例如下:已知a=3,求z=(a=a+3,3*4,a=4*a,a+6)的值。分析:問題轉化為求逗號表達式(a=a+3,3*4,a=4*a,a+6)的值。計算過程:a=a+3a=6;a=4*a=4*6a=24;a+6=24+6=30;3*4對計算逗號表達式的值沒有意義,因為其中沒有a,所以z=30。這個計算過程體現了:當多個運算符出現時,我們應先算高優先級運算符再算低優先級運算符連接的表達式。同理,在生活或工作中我們難免會同時接到多項任務,這就需要我們對各項任務進行梳理,把任務按輕重緩急進行標注,重要的事情、緊迫的事情先完成,這樣既能條理清晰、有條不紊,又能保證高效率、高質量。
三、凡事貴在堅持
C語言中常常采用循環結構進行程序設計,而循環程序的編程思想:對給定的條件進行判斷。當給定的條件成立時,重復執行給定的程序段,知道條件不成立時為止。現以for循環為例說明其運算過程。請用程序實現在屏幕中用*字符顯示如圖所示菱形圖案。
#include<stdio.h>
#include <math.h>
int main()
{int i,j,k;
for(i=-3;i<=3;i++)//當i=-3時,-3<=3真;當i=-2時,-2<=3真;當i=-1時
{for(j=1;j<=abs(i);j++)//當i=-3時:j=1,1<=3真,顯示第一個空格,j=2,2<=3真,顯示第二個空制,j=3,3<=3真,顯示第三個空格,j=4,4<=3假,第一個內循環第1次結束;當i=-2時:j=1,1<=2真,顯示第一個空格,j=2,2<=2真,顯示第二個空格,j=3,3<=2假,第一個內循環第2次結束;
printf("");
for (k=1;k<=7-2*abs(i);k++)//當i=-3時:k=1,1<=1真,第一次顯示星形,k=2,2<=1假,第二個內循環第1次結束;當i=-2時:k=1,1<=3真,第一次顯示星形,k=2,2<=3真,第二次顯示星形;k=3,3<=3真,第三次顯示星形,k=4,4<=3假,第二個內循環第2次結束;
printf("*");
printf("\n");//當i=-3時第一次換行;當i=-2時第二次換行
}return 0;}
從該例中我們使用了for循環語句,在編譯器中運行時瞬間可顯示結果,但要理清程序運行的過程還是很繁瑣的,需要我們一遍又一遍的運行程序,為了最后的結果,需要耐心堅持到底。貴在堅持的精神不僅理清循環結構有用,在我們生活或學習中遇到困難時也必不可少,只有我們保持積極向上的勢頭,生活才會更美好。
四、化繁為簡分而治之
函數是我們在程序設計時常常使用的程序模塊,C語言中一個程序常常由一個主函數main()和若干個模塊化的子函數構成,按功能劃分成各個模塊,這樣可以減低難度,各個擊破,容易達到目標。現以求兩個整數中的較大者為例加以說明。
#include <stdio.h>
int main()
{int max(int x,int y);
int a,b,c;scanf("%d,%d",&a,&b);
c=max(a,b);printf("max=%d\n",c);return 0;}
int max(int x,int y)//定義max函數,函數值為整型,形參x和y為整型
{int z;if(x>y)z=x;else z=y;return(z);}
這個例子中用到了子函數max()讓整數比較變得簡單直觀,初學者對算法思路容易理解編寫程序時也容易實現。同理,我們在生活中遇到困難棘手的事情時也不能一味彷徨,需要發揮我們的聰明才智想辦法,把困難化繁為簡,分而治之。
C語言知識點融入思政元素并與生活中的示例相結合,豐富了課堂內容,避免了說教的尬尷,用淺顯易懂的方式讓學生提升思想意識,反之亦能更好的理解課程中的知識點。從實施前后來看:學生興趣濃厚、積極上進,做事條理清楚、遇事胸有成竹;同時,教師不斷分析整理信息、創新設計教案、嚴格把控思政元素,為青少年的德智技發展指明了方向。C語言的思政元素還有很多,不再一一贅述,不足之處請批評指正。
參考文獻:
[1]譚浩強.C程序設計[M].北京:清華大學出版社,2017.
[2]陳良銀,游洪躍,李旭偉.C語言教程.北京:高等教育出版社,2018.
[3]李國和.C語言及其程序設計.北京:電子工業出版社,2018.
作者簡介:蒲靈巧(1979-),女,四川鹽亭人,講師,碩士,研究方向:計算機科學與技術單位:四川鐵道職業學院。