葉小芹 毛玲
摘要:C語言程序設(shè)計這門課程在高校計算機課程中占據(jù)較重要的地位,尤其是本科高校的計算機相關(guān)專業(yè),該課程旨在提升學(xué)生的編程基礎(chǔ)知識和基本技能,但學(xué)生要想學(xué)好C語言,掌握C語言的編程技巧,就得在學(xué)好C語言基本知識的基礎(chǔ)上,再反復(fù)進行上機練習(xí),學(xué)會找出程序中的常見錯誤及錯誤原因。論文針對學(xué)生在編程過程中容易出現(xiàn)的錯誤進行總結(jié)和分析,主要是通過幾個具體的實際案例來進行分析,以供后續(xù)學(xué)生參考和使用,靈活掌握該課程的編程技巧。
關(guān)鍵詞:C語言;編程;錯誤;技巧;分析
中圖分類號:TP311.5? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)23-0144-04
Abstract: The course "C Language Programming" occupies a more important position in computer courses in colleges and universities, especially computer-related majors in undergraduate universities. This course aims to improve students' basic programming knowledge and basic skills. However, if students want to learn the C language and master the programming skills of the C language, they have to learn the basic knowledge of the C language, and then repeat the exercises on the computer to learn to find the common errors and the causes of the errors in the program. This article summarizes and analyzes the errors that students are prone to in the process of programming, mainly through a few specific practical cases to analyze, for subsequent students to refer to and use, and flexibly master the programming skills of the course.
Key words: C language; programming; errors; skills; analyze
1 背景
C語言程序設(shè)計是高等院校理工科專業(yè)的基礎(chǔ)課及必修課,很多高校都將二級省考成績作為該課程的期末成績,可見該課程的重要性。C語言是一門高級語言,是所有計算機高級語言的基礎(chǔ),很多語言比如C++、Java、C#等都借鑒了它的思想、語法,例如計算機類專業(yè)學(xué)生在學(xué)習(xí)Java語言之前首先要學(xué)習(xí)C語言,同時它又是電子類專業(yè)學(xué)習(xí)單片機、DSP、PLC等專業(yè)課程的基礎(chǔ)。綜上,C語言是一門基礎(chǔ)語言且十分重要,要想學(xué)好C語言,就得從C語言的編程環(huán)境VC++6.0開始,能讀懂程序,會編寫及會調(diào)試程序,調(diào)試程序就是要學(xué)會找出程序中的錯誤,在錯誤中成長。本文將學(xué)生們在進行C語言上機課的過程中出現(xiàn)的常見錯誤列舉出來,并進行總結(jié)和分析,以供后續(xù)學(xué)生參考和使用。
2 計算機語言錯誤類型
程序中出現(xiàn)的錯誤一般分為三類,即語法錯誤、邏輯錯誤和系統(tǒng)錯誤[1]。
2.1 語法錯誤
語法錯誤指的是程序中含有不符合語法規(guī)定的語句,例如大小寫沒有區(qū)分,使用了沒有定義的變量等等,通常由于學(xué)生對語法不熟悉或?qū)語言的理解不深造成的。一般情況下,高級語言都是需要經(jīng)過翻譯過程的,在C語言中,是通過VC++6.0編程環(huán)境中的編譯按鈕對C程序進行翻譯,當編譯的時候,如果程序有語法錯誤,一般輸出窗口會給出提示消息,包括錯誤個數(shù)和警告?zhèn)€數(shù),錯誤出現(xiàn)的行號、名稱和原因提示等,有時候一個錯誤可有多個提示消息,導(dǎo)致這樣的原因是因為這個錯誤導(dǎo)致了其他行也出現(xiàn)了錯誤,所以作為初學(xué)者在不確定有多少個錯誤的情況下,可從第一個錯誤提示開始找錯誤并修改錯誤,修改完第一個錯誤立即編譯運行一下,若沒有錯誤,那其他錯誤提示就是該錯誤導(dǎo)致的,若還有錯誤則按以上方法繼續(xù)找,直到?jīng)]有錯誤為止。同時找錯誤也是講究方法的,即在輸出窗口雙擊錯誤提示消息[2],提示消息會立即以藍色標記突出顯示出來,同時會有一個藍色箭頭指向錯誤行,這樣就不用去計算該程序的錯誤所在行數(shù)了。語法錯誤如下圖1所示。
2.2 語義錯誤
錯誤又稱邏輯錯誤,指的是那些不違反C語言的語法規(guī)則,卻不合邏輯或不合題意導(dǎo)致結(jié)果不正確的錯誤。這類錯誤編譯器不會報錯,需要自己去發(fā)現(xiàn)。語義錯誤如上圖2所示。
在上圖2中,關(guān)系表達式中要表達“相等”關(guān)系時,應(yīng)該用“==”,而題目中卻用了“=”,“=”代表“賦值”,即if(c=a+b)處犯了語義錯誤,這樣的程序編譯是沒有問題的,但是結(jié)果跟預(yù)期的不一樣。
2.3 系統(tǒng)錯誤
系統(tǒng)錯誤是指程序中沒有語法錯誤和語義錯誤,但程序的正常運行依賴于某些外部條件比如系統(tǒng)的軟硬件,如果系統(tǒng)的軟硬件出現(xiàn)問題,就會導(dǎo)致程序不能正常運行。
3 常見錯誤
初學(xué)者在編程時,最容易犯錯誤,而這些錯誤是可以經(jīng)過反復(fù)練習(xí),準確定位,總結(jié)經(jīng)驗,在此基礎(chǔ)上,最終通過查找錯誤來掌握C語言的語法規(guī)則。接下來主要討論C語言中幾種常見的錯誤類型。