趙世琦
摘要:作為一門特別優(yōu)秀且用途極為廣泛的結(jié)構(gòu)化程序語言,C語言是中職電子技術(shù)、機(jī)電以及中職計(jì)算機(jī)等多個(gè)專業(yè)的需要實(shí)踐與理論相融合的課程。在教學(xué)實(shí)踐的過程中,大多數(shù)學(xué)生都會(huì)認(rèn)為C語言晦澀難懂,不容易學(xué)習(xí)。造成不要讀寫程序的原因多種多樣,但是最為顯著的因素之一便是并能正確的掌握并理解C語言相關(guān)的編程知識與規(guī)定。在本文的研究中,我從將賦值預(yù)算符號視為等于號、在函數(shù)的遞歸調(diào)用之中只了解遞不知道歸等兩個(gè)方面的常見錯(cuò)誤進(jìn)行分析,以此來證實(shí)學(xué)生在實(shí)際學(xué)習(xí)程序以及編寫程序中最容易出現(xiàn)的錯(cuò)誤與不足,引導(dǎo)學(xué)生在未來的工作與學(xué)習(xí)中,如何正確的結(jié)合編程的相關(guān)規(guī)定完成既定的讀寫程序。
關(guān)鍵詞:C語言;賦值預(yù)算;函數(shù)嵌套調(diào)用;遞歸調(diào)用
前言:C語言在實(shí)際應(yīng)用的過程中,具備著靈活、緊湊、簡介以及強(qiáng)可移植性等特征優(yōu)勢,備受編程工作人員的認(rèn)可與喜歡,并能夠在社會(huì)發(fā)展的進(jìn)程中得到充分的利用。作為熱門專業(yè)中的重點(diǎn)學(xué)科,無論是教師的講解還是學(xué)生的學(xué)習(xí)都應(yīng)該以了解該知識內(nèi)容基本理論的基礎(chǔ)上,對程序設(shè)計(jì)的基本問題、思想等進(jìn)行深度的發(fā)掘,從而才能夠從多角度、多層次完成對問題的分析與思考。本文的研究能夠讓學(xué)生在掌握相關(guān)知識的基礎(chǔ)上,有效避免出現(xiàn)典型的錯(cuò)誤與問題,并在出現(xiàn)問題時(shí)及時(shí)有效的給予相應(yīng)的解決對策,對學(xué)生C語言能力的綜合發(fā)展具有理論性意義,對學(xué)生不斷完善自我強(qiáng)化自我具有指導(dǎo)性意義。
一、將賦值預(yù)算符號視為等于號
在以往的數(shù)學(xué)學(xué)習(xí)過程中,我已經(jīng)習(xí)慣了將“=”看作為等于號,其含義為等式的兩邊是相等關(guān)系,兩邊可以是表達(dá)式也可以是變量。但是,在接觸C語言后,“=”的的含義則變化為賦值運(yùn)算符號,其主要的作用也成為了將右邊表達(dá)式的值賦予給左邊的變量,其中“=”左側(cè)必然是變量,而右側(cè)則一定是表達(dá)式,我們學(xué)生如果在學(xué)習(xí)的過程中,依然將其視為等于號,那么在實(shí)際應(yīng)用的過程中便必然會(huì)出現(xiàn)編程錯(cuò)誤[1]。例如,為了能夠滿足用戶不斷增長的用水量需求,某市新建設(shè)了三個(gè)水廠分別為甲乙丙。三個(gè)水廠每天的供水量總共有11.8萬立方米,其中甲是乙的三分之一,甲是丙的二倍還少一萬立方米,利用編程實(shí)現(xiàn)“計(jì)算并輸出甲乙丙日供水量的分別數(shù)值?!痹谖覀兊膽T性思維中,大多所寫程序如下:
# include<stdio.h>
void main()
{ float x,y,z;
y=3*x;
Z=x+l;
x=11.8-y—z;
printf("%f %f %of",x,y,z);}
依據(jù)我們以往的思維慣性,上述的編程是沒有問題的,但在實(shí)際執(zhí)行的過程會(huì)發(fā)現(xiàn),最終所得結(jié)果為429496704.000000-32212528.000000-102374176.000000[2]。
但是這個(gè)結(jié)果明顯不是正確的,其主要得錯(cuò)誤原因就在于我們在編程時(shí)將“=”視為等于號而非賦值號。但是在程序?qū)嶋H執(zhí)行的過程中為:因?yàn)闆]有賦予x,y,z的初值,那么x則為隨機(jī)數(shù)值,執(zhí)行程序時(shí)會(huì)將隨機(jī)的x值的三倍賦予給y,又將x+1賦予了z,最后又在編程的運(yùn)算中將11.8-y-z給予了x,而并不是我們編程過程中所認(rèn)為的等于號,對方程求解[3]。為了修改程序,應(yīng)該意識到在整個(gè)題目中,只有總水量的數(shù)值是確定的,其他的參與都為未知數(shù),具體來說,設(shè)置總水量為m,則可以推算x=(m-1)/4.5,具體編程為:
# include<stdio.h>
void main()
{float x,y,z,m=11.8;
x=(m-1)/4.5;
y=3*x;
z=x+1;
printf("%of %f %f”,x,y,z);}
運(yùn)行程序可以推導(dǎo)出:
2.400000 7.200000 3.4000000,可以看出該種程序的結(jié)果為正確的[4]。
二、在函數(shù)的遞歸調(diào)用之中只了解遞不知道歸
所謂的函數(shù)嵌套調(diào)用主要指的是在被調(diào)用函數(shù)實(shí)際執(zhí)行的進(jìn)程中,被調(diào)用的函數(shù)有調(diào)用了其他的函數(shù)。被調(diào)用函數(shù)在被主調(diào)用函數(shù)調(diào)用時(shí),執(zhí)行的函數(shù)時(shí)被調(diào)函數(shù),被調(diào)函數(shù)在結(jié)束執(zhí)行的過程中,返還到主調(diào)函數(shù),被調(diào)函數(shù)處將繼續(xù)對主調(diào)函數(shù)的后續(xù)語句執(zhí)行。而函數(shù)的遞歸調(diào)用則主要指的是某一函數(shù)在其函數(shù)體內(nèi),間接或者是直接的對其自身進(jìn)行調(diào)用,我們在嵌套調(diào)用不同的函數(shù)過程中,大多數(shù)都明確對被調(diào)用函數(shù)執(zhí)行之后,需要重新回到調(diào)用函數(shù)中繼續(xù)執(zhí)行相應(yīng)程序,但是,到了遞歸調(diào)用函數(shù)中,便容易出現(xiàn)錯(cuò)誤,不知道需要?dú)w回到哪一環(huán)節(jié)中,在本文的研究中,將會(huì)利用程序閱讀題對此問題進(jìn)行系統(tǒng)的分析:
t#include<stdio.h>
int change(int n,int q){
if(n<q)
return n;
else
return change(n/q.q)*10+n%q;}
int main()
{int n=100,q=8;
printf(“%d.%d\n”,change(n,q));
return 0;}
該程序的全部執(zhí)行過程應(yīng)該是將n賦值為100,q賦值為8,并將二者視為傳出去的參數(shù)傳遞到change函數(shù)中的兩個(gè)等待接收的參數(shù)q和n,在int change(int n,int q)[5];在這一函數(shù)中,如果8<100,則應(yīng)該執(zhí)行return change(n/q.q)*10+n%q,當(dāng)12等于n/q且8=q時(shí),可以將兩個(gè)等待接收的參數(shù)q和n傳出去的參數(shù)傳遞給change函數(shù)。int change(int n,int q)當(dāng)函數(shù)中,8<12時(shí),可以執(zhí)行return change(n/q.q)*10+n%q;語句q=8和n/q=1又可以重新作為傳出去的參與傳遞到change中兩個(gè)等待接收的參數(shù)n和q??梢宰C明,在實(shí)際編程工作進(jìn)行的過程中,我們應(yīng)該明確的掌握C語言的相關(guān)規(guī)定與要求,并結(jié)合具體的要求對程序進(jìn)行讀寫,最終才能夠得到正確的答案與結(jié)果[6]。
結(jié)論:綜上所述,C語言是編程工作人員最為常用的工具之一,為了能夠讓中職院校的學(xué)生在步入社會(huì)時(shí)可以更好的融入團(tuán)體、為所任職的企業(yè)創(chuàng)造效益,應(yīng)該更好的掌握相關(guān)知識,并對常見的典型問題有所把握,從而才能夠在實(shí)際編程中有效避免,提高工作效率與工作質(zhì)量,在本文的研究中,結(jié)合實(shí)際學(xué)習(xí)的進(jìn)程與內(nèi)容,可以總結(jié)出將賦值預(yù)算符號視為等于號、在函數(shù)的遞歸調(diào)用之中只了解遞不知道歸等兩方面問題。望本文的研究能夠有效引導(dǎo)學(xué)生,使其在學(xué)習(xí)C語言的進(jìn)程中得以有效避免相關(guān)問題,并能夠快速、準(zhǔn)確的掌握相關(guān)知識點(diǎn),保障個(gè)人綜合能力的提升。
參考文獻(xiàn):
[1] 何春元, 李林原, 杜鵬,等. 計(jì)算機(jī)專業(yè)課程思政內(nèi)涵挖掘-以C++程序設(shè)計(jì)課程為例[J]. 教育研究, 2021, 4(2):55-56.
[2] 陳亭志. 疫期職業(yè)教育課程單元混合式教學(xué)設(shè)計(jì)——輸出式學(xué)習(xí)在C語言課程中的應(yīng)用[J]. 武漢職業(yè)技術(shù)學(xué)院學(xué)報(bào), 2020, 19(4):6.
[3] 方煒煒, 周淑一, 李桂芝,等. 基于OBE的自主學(xué)習(xí)型C語言程序設(shè)計(jì)公共課在線開放課程的建設(shè)與研究[J]. 高教學(xué)刊, 2021(3):4.
[4] 黃婕. 聯(lián)通主義下高職學(xué)生"C語言程序設(shè)計(jì)"課程在線學(xué)習(xí)能力的提升策略[J]. 西部素質(zhì)教育, 2020, 6(3):3.
[5] 李晶. 任務(wù)驅(qū)動(dòng)教學(xué)法在中職《C語言程序設(shè)計(jì)》課程教學(xué)中的應(yīng)用[J]. 黑河教育, 2020(1):2.