c語言程序改錯題技巧
1、if或while語句
若錯誤行是if或者while語句,則要注意以下點:
1)首先判斷是否正確書寫if或while關鍵字
2)然後看有沒有用小括號把整個表達式括起來,若沒有則加上小括號
3)若條件表達式中有指針變量而且沒有指針運算符時,則加上指針運算符
4)若if條件表達式中只有一個等於號即數學等號(=),則要改寫成兩個等於號即邏輯等號(= =)
5) 若if條件表達式為其他的比較運算符,則一般是進行逆轉或加一個等於號
2、for語句
若錯誤行是for語句,則要注意以下幾點:
1)首先判斷for有沒有書寫正確
2)然後看for中的表達式是不是用分號()隔開,若不是則改為分號。
記住是分號(),不是逗號(,)!
3) 再者,分析for中的三個表達式,是否符合題意
第一個表達式表示起始條件
第二個表達式表示終止條件
第三個表達式表示循環變量的變化。
3、 return語句
若錯誤行為return語句,則要注意以下幾點:
1)首先看是不是正確書寫return關鍵字
2)然後看是不是缺少分號,若是則加上分號即可
3)再者判斷return後的變量或表達式是否正確
這種錯誤需要根據題意來分析,分析返回變量或表達式的值和類型。
4、 賦值語句
若錯誤行是賦值語句,則要看賦值是否正確,然後看賦值運算符是否寫正確。
5、 定義語句
若錯誤行是定義語句,則要注意:
1)首先分析變量類型名是否寫對
2)然後分析給變量賦初值是否正確
3)若以上均不是,則看是不是少定義了某個變量或少了花括號
改錯題技巧
1、區分兩種類型錯誤
是否可以編譯
不可編譯 語法錯誤
可以編譯 算法錯誤
2、如何處理錯誤
語法錯誤
通過常見易錯點判斷
通過點擊編譯器看提示找問題
算法錯誤
根據具體問題而定
二、常見的語法錯誤
函數的使用錯誤
1、 scanf函數中沒有取間址符&
2、 絕對值的使用
abs(a)用於a整數取絕對值
fabs(a)用於是浮點數a取絕對值
3、 printf()函數注意要答應值的類型是(“%d”,a)還是(“%c”,a)等
注意函數的三個部分void fun (long s,long *t)
1、 返回值類型是否缺失,返回值的類型是否正確
2、 注意傳入的的參數的類型,傳入參數若為二維數組a[i] [j] ,i可以為空,但是j不能為空 。如a[][]就是錯誤的
3、 傳入的參數是否有類型,參數是數字還是指針
條件語句和循環語句
for循環出錯,1.錯寫關鍵字For 語句分號寫錯
while(r)的循環語句中,如果r為指針則不能作為判斷條件,必須以*r作為判斷條件
if()判斷條件中
1、 大小寫的符號搞反了
2、 符號混淆 ==是否寫成=
其他
語句結束分號缺失 如return s
沒有賦初始值就進行運算
1、 int sum
2、 sum=sum+1
3、 此時會出錯
宏定義表達式是否需要()符號是否錯誤
錯用%和/兩個符號
字符串數組的結束符書寫錯誤
1、 寫成0
2、 寫成o
3、 寫成‘/0’
正確寫法 ‘’
注意關鍵字的大小寫是否出錯
提示:改錯題的一個語句可能存在多處錯誤