c語言實驗報告範例

2021-04-21 11:57:21 字數 3847 閱讀 5202

實驗報告

實驗題目:選擇結構程式設計

實驗目的:

(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 掌握字元陣列和字串函式的...