一、實驗目的 熟悉c語言集成開發環境 掌握c程式結構,熟悉c程式編碼規範 掌握c程式編寫、編譯、運行、調試方法 掌握基本數據類型、常量、變數的使用 掌握常用運算符用法,掌握表達式求值規則 二、實驗準備 實驗前,請圍繞以下內容複習教材第1章、第2章相關內容: 1. 一個完整的c程式結構和書寫規範(教材 ...
一、實驗目的
- 熟悉c語言集成開發環境
- 掌握c程式結構,熟悉c程式編碼規範
- 掌握c程式編寫、編譯、運行、調試方法
- 掌握基本數據類型、常量、變數的使用
- 掌握常用運算符用法,掌握表達式求值規則
二、實驗準備
實驗前,請圍繞以下內容複習教材第1章、第2章相關內容:
1. 一個完整的c程式結構和書寫規範(教材1.2節)
2. c程式的編寫、編譯、運行、調試方法
3. c語言中標識符命名規則、常量、變數
4. c語言中常用運算符用法及表達式求值(教材第2章)
從理論上分析並記錄《C語言程式設計教程學習指導》P116三道練習中表達式的值。(後面再通過編程實驗運行檢驗理論分析結果是否正確)
三、實驗內容
- Part 1: 驗證性內容
- 在c程式開發環境下編寫運行一個簡單c程式,在屏幕上輸出自己的學號。在教材P2例1.1基礎上稍作改動,把hello,world→改成自己的學號。
- 在c程式環境下輸入教材P3例1.2程式,並編譯、運行。
- 在c程式開發環境下,分別編寫、運行《C語言程式設計教程學習指導》P116三道練習,記錄其運行結果,與之前理論分析結果比較,觀察是否存在不一致的部分。如有,嘗試查找和分析原因。
- Part 2: 按要求寫出符合要求的表達式,補全程式。
- 判斷奇偶: ex1.c
- 根據不同的輸入,顯示不同提示信息:ex2.c
- 根據用戶輸入字元,判斷如果是小寫字母,則轉換成大寫;否則保持原樣: ex3.c
- Part 3: 編程練習(===選做題===)
編寫程式,實現把一個十進位整數轉換成二進位。十進位整數由鍵盤輸入,轉換後的二進位數據輸出到顯示器上。
四、實驗結論
Part 1: 驗證性內容
未明顯踩坑,未出現運行結果與預想不符的情況。
Part 2: 按要求寫出符合要求的表達式,補全程式。
1. 判斷奇偶: ex1.c
#include <stdio.h>
int main() {
int x;
printf("輸入一個整數: \n");
scanf("%d",&x);
if(x%2!=0) // 使得當表達式成立時,判定x是奇數,否則是偶數
printf("是奇數");
else
printf("是偶數");
return 0;
}
運行結果:
2.根據不同的輸入,顯示不同提示信息:ex2.c
#include <stdio.h>
int main(){
int days;
printf("Input an integer:\n");
scanf("%d",&days);
if(days>=1&&days<=5) // days在1到5之間
printf("workdays,fighting!\n");
else if(days==6||days==7) // days是6或7
printf("weekend,relax~\n");
else
printf("Ooops, not in 1~7\n");
return 0;
}
運行結果:
3.根據用戶輸入字元,判斷如果是小寫字母,則轉換成大寫;否則保持原樣: ex3.c
// 功能:
// 從鍵盤上輸入單個字元
// 如果是小寫字母,則轉換成大寫後輸出
// 否則,什麼也不做,原樣輸出
#include <stdio.h>
int main()
{
char ch;
printf("輸入一個字元:\n");
scanf("%c",&ch);
if(ch>='a'&&ch<='z') //判定ch是小寫字母的表達式
ch=ch-32; //把ch中的小字母轉換成大寫字母的表達式語句
printf("%c\n",ch);
return 0;
}
運行結果:
Part 3: 編程練習
ex4.c
//編寫程式,實現把一個十進位整數轉換成二進位。
//十進位整數由鍵盤輸入,轉換後的二進位數據輸出到顯示器上。
#include <stdio.h>
int main() {
printf("Please input a decimal number:\n");
int x,t;
scanf("%d",&x);
while (x!=0){
t=x%2;
printf("%d",t);
x=x/2;
}
return 0;
}
運行結果:
五、實驗總結與體會
這是第一次上機做實驗,非常看著自己寫出來的代碼運行起來,有一種淡淡的自豪感。嘗了這樣一點點甜頭,我對這門課今後的學習更加有信心了。
畢竟這是第一次,作為初學者,發現了很多不足的地方:
1. 鍵盤使用不熟練;
寫頭幾個程式時,無法盲打單雙引號、尖括弧、"#"、"%"、"&"、"*"和"!"等符號。
2.經常打錯或少打多打字元;
3. 語句後容易忘加分號,尤其是"scanf"、"printf"、"return 0"後;
4. 對於C語言編程中空格的使用不清楚;
5. 字元常量字元變數以及格式控制符"%c"還沒弄清楚,做相關補全程式實驗時出現困難;
6. 還不會讓程式迴圈運行,運行完一次程式就會結束,不能多次迴圈,多次輸入數據。
關於這次實驗我也有幾個疑問:
- 為什麼教材P3例1.2求整數乘積要定義product函數,而不簡單地直接用表達式求積?
- 做Part 2第二題時,發現輸入5.5是程式會把數字當成整型5處理,似乎是因為一開始定義的變數days是整型變數。所以實型5.5會強制轉換成整型?
- 做Part 3編程練習時發現數字大於64時,轉換成二進位數就會出現問題。好像最大隻能化為七位二進位數,是因為這臺電腦整形預設是八位嗎?如果要轉換更大的十進位數,該如何設計?另外,不會設計獎浮點型十進位數化成二進位數的程式。