C語言第二次作業
(一)改錯題
1.輸出帶框文字
(1)源程序
(2)錯誤及改正
- 錯誤信息1:
- 錯誤原因:stdio輸入錯誤。
- 改正方法:將stido改成stdio。
- 錯誤信息2:
- 錯誤原因:第二個輸出語句中結尾未加分號。
- 改正方法:在末尾加上分號。
- 錯誤信息3:
- 錯誤原因:第三個輸出語句結尾前未加下引號。
- 改正方法:在大括號前加上下引號。
- 錯誤信息4:
- 錯誤原因:mian寫成了mian。
- 改正方法:將mian改成main。
(3)結果
- 輸出正確
2.計算某個數x的平方賦給y:分別以“y = xx” 和 “xx = y” 的形式輸出x和y的值。注意不要刪除源程序中的任何注釋。
輸入輸出示例(假設x的值為3)
(1)源程序
(2) 錯誤及改正
- 錯誤信息1:
- 錯誤原因:stdio后未加.h。
- 改正方法:在stdio后加.h。
- 錯誤信息2:
- 錯誤原因:經檢查第一個輸出語句缺少/
- 改正方法:將星號變為/,進行編譯,結果正確,但運行結果並不正確。
- 錯誤信息3:
- 錯誤原因:發現輸出語句中d前未加百分號。
- 改正方法:加上百分號,繼續運行。
- 錯誤信息4:
- 錯誤原因:經檢驗,發現未給x,y賦值。
- 改正方法:將x,y分別賦值3,9。
- 錯誤信息4:
- 錯誤原因:結果仍未達到預期,經進一步檢查,發現輸出語句中提示符並不完整。
- 改正方法:將兩個輸出語句中提示符補完。
- 錯誤信息5:
- 錯誤原因:輸出語句未分行。
- 改正方法:在兩個輸出語句引號內內容加上/n。
- 結果:
- 完成運行。
(二)學習總結
1.利用sizeof運算符編程求出int、long、float和double類型數據所占的字節大小。
(1)int
- 程序:
- 運行結果:
- 符合結果。
(2) long
- 程序:
- 運行結果:
- 符合結果。
(3)flout
- 程序:
- 運行結果:
- 符合結果。
(4)double
- 程序:
- 運行結果:
- 符合結果。
(三)求最大值和最小值
1.輸出結果
2.更改程序,使之輸出(i+1)
- 輸出結果:
- 結論:此時“max=min=-2147483648”,因為整數的值如果超過它的最大值,將發生溢出,即整數溢出。整數i就像一個汽車里程指示表,當達到最大值時,它將溢出到起始點(即最小值)。
3.運行以下程序。
- 輸入100 144 64
- 運算結果:
- 總結:經查閱資料,了解%d表示十進制 %o表示八進制%x表示十六制,但在輸出三個值時格式全是十進制的,所以會輸出三個相同的數。
4.學習總結。
- 這一單元學習了一些C語言的簡單編程,我覺得最需要注意莫過於細節,比如說地址符&,在我自己的編寫中曾多次出現錯誤,然后就是浮點數的使用,應該做到在計算中熟練使用浮點數,細節上
要注意許多。
(三)實驗總結
1.厘米換算英尺英寸
- 題目:在一行中給出1個正整數,單位是厘米。輸出這個厘米數對應英制長度的英尺和英寸的整數值,中間用空格分開。
- 流程圖:
- 源代碼:
- 測試數據及運行結果:
- 實驗分析
- 問題1:輸出數值過大。
- 原因:未將0.3048化成30.48
- 解決辦法:將單位換算正確。
2.A乘以B
- 題目:輸入在第一行給出兩個整數A和B(−100≤A,B≤100),數字間以空格分隔。輸出A乘以B的值。
- 流程圖:
- 源代碼:
- 測試數據及運行結果:
- 實驗分析
- 問題1:未輸出正確答案。
- 原因:經檢查,漏了一個標識符。
- 解決辦法:加上&。
3.整數四則運算
- 題目:本題要求編寫程序,計算2個正整數的和、差、積、商並輸出。題目保證輸入和輸出全部在整型范圍內。
- 流程圖:
- 源代碼:
- 測試數據及運行結果:
- 實驗分析
- 問題1:運行結果是一串字符。
- 原因:輸出語句中未分行。
- 解決辦法:在每一行輸出語句末尾加上\n
4.整數152的各位數字
- 題目:輸出整數152的個位數字、十位數字和百位數字的值。
- 流程圖
- 源代碼:
- 測試數據及運行結果:
- 實驗分析:
- 問題1:運算錯誤。
- 原因:十位和百位搞錯了。
- 改正辦法:將十位和百位的程序倒置。
(四)PTA提交列表
順序結構1
順序結構2