實驗報告
實驗題目:選擇結構程式設計
實驗目的:
(1) 了解c語言表示邏輯量的方法(以0代表「假」以非0代表「真」)。
(2) 學會正確使用邏輯運算算符和邏輯表示式。
(3) 熟練掌握if語句的使用(包括if語句的巢狀)。
(4) 熟練掌握多分支選擇語句——switch語句。
(5) 結合程式掌握一些簡單的演算法。
(6) 進一步學習除錯程式的方法。
實驗內容:
本實驗要求事先編好解決下面問題的程式,然後上級輸入程式並除錯執行程式。
(1) 有一函式:
輸入的值,輸出相應的值。用scanf函式輸入的值,求值(第四章第六題)
執行程式,輸入的值(分別為x<1、、這三種情況),檢查輸出y值是否正確。
答: 1)除錯通過的程式清單如下:
include
void main()
3)除錯過程出現的問題說明及處理方法:
編譯提示資訊如下:
compiling...
c4_4.c
f:\20113009711_選擇結構程式設計\第四次實驗\c4_4.c(10) :
error c2059: syntax error : 'bad suffix on number'
f:\20113009711_選擇結構程式設計\第四次實驗\c4_4.c(10) :
error c2146: syntax error : missing ';' before identifier 'x'
f:\20113009711_選擇結構程式設計\第四次實驗\c4_4.c(10) :
warning c4552: '-' : operator has no effect; expected operator with side-effect
f:\20113009711_選擇結構程式設計\第四次實驗\c4_4.c(11) : error c2181: illegal else without matching if
f:\20113009711_選擇結構程式設計\第四次實驗\c4_4.c(11) :
error c2059: syntax error : 'bad suffix on number'
f:\20113009711_選擇結構程式設計\第四次實驗\c4_4.c(11) :
error c2146: syntax error : missing ';' before identifier 'x'
f:\20113009711_選擇結構程式設計\第四次實驗\c4_4.c(11) :
warning c4552: '-' : operator has no effect; expected operator with side-effect
執行 cl.exe 時出錯.
c4_4.obj - 1 error(s), 0 warning(s)
原因分析:
由於習慣在數學上習慣於用2x表示2*x,導致在這裡忽略了「*」,以致程式出現嚴重錯誤。
(2) 從鍵盤輸入乙個小於1000的正數,要求輸出它的平方根(如平方根不是整數,則輸出其整數部分)。要求在輸入資料後先對其進行檢查是否小於1000的正數。若不是,則要求重新輸入。
1)除錯通過的程式清單如下:
#include
#include
#define m 1000
int main()
k=sqrt(i);
printf("%d的平方根的整數部分是%d\n",i,k);
return 0;
}2)除錯通過的執行結果:
3)除錯過程出現的問題說明及處理方法:
compiling...
c4_4.c
f:\20113009711_選擇結構程式設計\第四次實驗\c4_4.c(10) : error c2018: unknown character '0xa3'
f:\20113009711_選擇結構程式設計\第四次實驗\c4_4.c(10) : error c2018: unknown character '0xbb'
f:\20113009711_選擇結構程式設計\第四次實驗\c4_4.c(11) :
error c2146: syntax error : missing ';' before identifier 'scanf'
f:\20113009711_選擇結構程式設計\第四次實驗\c4_4.c(13) :
warning c4244: '=' : conversion from 'double ' to 'int ', possible loss of data
執行 cl.exe 時出錯.
c4_4.exe - 1 error(s), 0 warning(s)
答:因為把第十行的「;」在中文模式輸入,變成了「;」導致編譯錯誤。
(3) 給出乙個百分制成績,要求輸出成績等級a,b,c,d,e.90分以上為a,81~89分為b,70~79分為c,60分~69分為d,60分以下為e。
1 事先編好程式,要求分別用if語句和switch語句來實現。執行程式,並檢查結果是否正確。
1)除錯通過的程式清單如下:
#include
void main()
printf("\n學生的成績等級是:%c\n\n",ch);
}}2)除錯通過的執行結果:
3)除錯過程出現的問題說明及處理方法:
(1)編譯提示資訊如下:
compiling...
c4_4.c
c4_4.obj - 0 error(s), 0 warning(s)
(2)連線提示資訊如下:
linking...
c4_4.exe - 0 error(s), 0 warning(s)
原因分析:
由於忽略了在程式中加入換行符,導致輸出成績等級和「press any ey to contine」連在一起。
2 再執行一次程式,輸入分數為負值,這顯然是輸入時出錯,不應給出等級,修改程式,使之能正確處理任何資料,當輸入資料大於100和小於0時,通知使用者「輸入資料錯誤」。程式結束。
答:在編寫程式的時候已經考慮到了該情況,第一次編寫時已經進行了優化,能夠自動處理該情況的出現。以下是執行結果:
(4) 輸入4個整數,要求按由小到大順序輸出,在得到正確結果後,修改程式使之按由大到小的順序輸出。
1) 除錯通過的程式清單如下:
#include
int main()
if(a>c)
if(a>d)
if(b>c)
if(b>d)
if(c>d)
printf("四個整數經從小到大的順序排列後的結果如下\n");
printf("%d,%d,%d,%d\n",a,b,c,d);
return 0;
}2) 程式執行的結果:
從大到小排列的程式是:
1) 通過排列的程式清單如下:
#include
int main()
if(a
if(a
if(b
if(b
if(c
printf("四個整數經從大到小的順序排列後的結果如下\n");
printf("%d,%d,%d,%d\n",a,b,c,d);
return 0;
}3) 執行的結果:
實驗心得:
通過此次實驗本人更加熟練的掌握了程式c語言邏輯運算子和邏輯表示式的應用,也深深了解到了,c語言的強大,同時是我對這門語言的興趣更加深厚。做完本次實驗,我糾正了以往的乙個觀點,學習一門語言不要以為看書看明白了就以為對這方面的知識掌握了,學習語言更為重要的是要會使用,不能僅僅是以為明白就可以了事,合上書本,能夠應用這方面的知識寫出乙個程式來,才能算對它的初步掌握。
C語言實驗報告
1 實驗目的 1.熟練掌握if if.else if.else if語句,掌握if語句中的巢狀關係和匹配原則,利用if語句實現分支選擇結構。2.熟練掌握for語句格式及使用方法 3.掌握簡單 常用的演算法,並在程式設計過程中體驗各種演算法的程式設計技巧.進一步學習除錯程式,掌握語法錯誤和邏輯的檢查方...
c語言實驗報告
姓名學號 實驗班號機器號 1 實驗目的 1.掌握微控制器c語言程式結構 2.掌握微控制器c語言程式除錯方法 3.掌握msp430fg2553基本i o控制方法 4.鞏固編寫和除錯微控制器c語言程式方法 5.了解簡單介面電路的控制方法 6.了解msp430彙編格式的定址方式和指令系統 2 實驗基本任務...
c語言實驗報告
課程名稱 c語言程式設計成績評定 實驗專案名稱 陣列程式設計指導教師 楊恆伏學生姓名 吳偉蘭學號 21 專業班級 09計網實驗專案型別 實驗地點 科a301 實驗時間 2010 年4 月 29 日 一 實驗目的與要求 1 掌握一維陣列與二維陣列的定義 賦值及輸入輸出方法。2 掌握字元陣列和字串函式的...