楊冬云
摘要:C語言是一門優(yōu)秀,應(yīng)用廣泛的結(jié)構(gòu)化程序設(shè)計語言,是中職計算機、機電和電子技術(shù)等專業(yè)一門理論和實踐相結(jié)合的課程,教學(xué)實踐中,學(xué)生常覺得c語言難學(xué),難懂。程序不會讀,也不會寫,原因是多方面的,其中一個方面便是對c語言的有關(guān)編程規(guī)定不能正確理解并掌握,下面就通過把賦值運算符當(dāng)成等于號、混淆break語句和contniue語句的適用范圍和功能和函數(shù)的遞歸調(diào)用只知遞不知歸三個讀寫程序,來說明一下在讀或?qū)懗绦驎r,學(xué)生常犯的錯誤。指導(dǎo)學(xué)生如何按照C語言的有關(guān)編程規(guī)定讀寫程序。
關(guān)鍵詞:C語言;中職;編程規(guī)定
中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2017)13-0065-02
C語言是一門優(yōu)秀,應(yīng)用廣泛的結(jié)構(gòu)化程序設(shè)計語言,它具有簡潔、緊湊、靈活和可移植性強等優(yōu)點,深受廣大編程人員的喜愛,并得到廣泛的應(yīng)用?!禖語言程序設(shè)計》是中職計算機、機電和電子技術(shù)等專業(yè)一門理論和實踐相結(jié)合的課程,學(xué)生要在學(xué)懂基本理論的前提下,學(xué)會程序設(shè)計的基本思想和問題求解方法,學(xué)會從多個角度思考和分析問題、并能解決問題。教學(xué)實踐中,學(xué)生常覺得C語言難學(xué),難懂。程序不會讀,也不會寫,原因是多方面的,其中一個方面便是對c語言的有關(guān)編程規(guī)定不能正確理解并掌握,下面就通過幾個例子來說明一下在讀或?qū)懗绦驎r,學(xué)生常犯的錯誤。
1把賦值運算符當(dāng)成等于號
在長期的數(shù)學(xué)學(xué)習(xí)中,我們已經(jīng)習(xí)慣將“=”看成是等于號,表示等式兩邊相等,等式兩邊可以是變量,也可以是表達式。但是在C語言中,“=”是賦值運算符,它的作用是將右邊表達式的值賦給左邊的變量。賦值號左邊一定是變量,右邊是表達式。而學(xué)生如果還將其看成是等于號,則就會出現(xiàn)編程錯誤。
如例1:為滿足用水量增長的需求,市里最近新建甲乙丙三個水廠,這三個水廠日供水量共計11.8萬立方米。其中乙水廠的供應(yīng)量是甲水廠的3倍,丙水廠的日供應(yīng)量比甲水廠供水量的一半還多1萬立方米。編程實現(xiàn):計算并輸出這三個水廠的日供水量分別是多少立方米。學(xué)生在習(xí)慣性思維的作用下,經(jīng)常會隨手寫出這樣的程序。
按我們以前的思維方式,這樣解決問題是沒有錯的,但是程序編譯執(zhí)行的結(jié)果是429496704.000000-32212528.000000—102374176.000000
這個結(jié)果顯然是錯誤的,錯誤的原因就是將賦值號“=”看成是等于號去編寫程序。而在程序執(zhí)行時的實際過程是:由于未給x、y、z賦初值,x的值就是隨機數(shù)。程序執(zhí)行時是將內(nèi)存中x的隨機值的3倍賦給了y,又將x+l賦給了x,最后又將11.8-y-z賦給x了,根本不是我們所想的是等于號,求方程解。程序應(yīng)該如何修改呢?題目中只有總水量是確定的值,其余都是未知量,我們應(yīng)該分析出這三個量和總水量的關(guān)系,根據(jù)題意分析,假設(shè)總水量用m表示,則x=(m-1)/4.5,則編輯程序如下:
2混淆break語句和continue語句的適用范圍和功能
break語句和continue語句適用范圍不同,功能也不同。C語言中規(guī)定break語句可以在switch語句和循環(huán)語句中使用。Break語句在switch語句中使用時,當(dāng)語句中遇到switch語句時,即跳出switch語句。即中斷語句。當(dāng)Break語句在循環(huán)語句中的時候,作用是終止當(dāng)前的循環(huán)語句,轉(zhuǎn)去執(zhí)行當(dāng)前循環(huán)語句的后面語句。continue語句只能使用在循環(huán)語句中,其作用是結(jié)束本次循環(huán),即不再執(zhí)行循環(huán)體中continue語句之后的語句,直接轉(zhuǎn)入下一次循環(huán)執(zhí)行。學(xué)生在讀寫程序時往往會混淆break語句和continue語句的適用范圍和功能。下面就通過一個程序閱讀題,來分析一下這個問題:
例2:閱讀程序,寫出程序運行結(jié)果:
3函數(shù)的遞歸調(diào)用只知遞不知歸
函數(shù)的嵌套調(diào)用:函數(shù)的嵌套調(diào)用是指,在執(zhí)行被調(diào)用函數(shù)時,被調(diào)用函數(shù)又調(diào)用了其他函數(shù)。主調(diào)函數(shù)調(diào)用被調(diào)函數(shù)時,執(zhí)行被調(diào)函數(shù),當(dāng)被調(diào)函數(shù)執(zhí)行結(jié)束時,回到主調(diào)函數(shù)調(diào)用被調(diào)函數(shù)處繼續(xù)執(zhí)行主調(diào)函數(shù)的后續(xù)語句。
函數(shù)的遞歸調(diào)用:函數(shù)的遞歸調(diào)用是指,一個函數(shù)在它的函數(shù)體內(nèi),直接或間接地調(diào)用它自身。
學(xué)生在不同函數(shù)的嵌套調(diào)用時,都知道執(zhí)行完被調(diào)用函數(shù)后,要回到調(diào)用函數(shù)處繼續(xù)執(zhí)行,而一到遞歸調(diào)用時,就容易犯糊涂,不知道歸哪去。下面就通過一個程序閱讀題,來分析一下這個問題:
綜上,在讀寫程序時,要明確C語言的規(guī)定,按照規(guī)定讀寫程序,才能得到正確結(jié)果。