第一次实验报告
C程序設計實驗報告
實驗項目:
???2.3.3、字符與ASCII碼
???2.3.4、運算符與表達式的應用
? ?2.3.5、順序結構應用程序
? ?3.3.1、數學函數的算法描述
? ?3.3.2、雞兔同籠的算法描述
???3.3.3、確定坐標的算法描述
姓名:鐘俊敏? ? 實驗地點:教學樓514教室? ? ?實驗時間:3月19日
一、實驗目的與要求
2.3.3、字符與ASCLL碼
● 了解字符在計算機中以ASCII碼方式表示;
● 了解字符的類型,字長其數的表示范圍;
● 熟練使用scanf()輸入用戶提供的數據;
● 熟練使用printf()輸出變量。
2.3.4、運算符與表達式的應用
● 掌握算術運算符的使用;
● 正確定義程序中的變量;
● 熟練使用scanf()輸入用戶提供的數據;
● 熟練使用printf()輸出變量。
2.3.5、順序結構應用程序
● 掌握算術運算符的使用
● 正確定義程序中的變量
● 熟練使用scanf()輸入用戶提供的數據;
● 熟練使用printf()輸出變量。
3.3.1、數學函數的算法描述
● 為了鞏固對算法概念的理解;
● 用if語句根據條件的真假進行判斷;
●?掌握運算符的運算規則。
3.3.2、雞兔同籠的算法描述
● 為了鞏固對算法概念的理解;
●?用if語句根據條件的真假進行判斷;
●?掌握運算符的運算規則。
?
3.3.3、確定坐標的算法描述
● 為了鞏固對算法概念的理解;
●?用if語句根據條件的真假進行判斷;
●?掌握運算符的運算規則。
二、實驗內容
1、實驗練習(2.3.3):
1.問題的簡單描述:
從鍵盤輸入一個大寫字母,要求轉化成小寫字母輸入,并輸出這個小寫字母相鄰的兩個字母,以及他們的ASCLL碼。
2.實驗代碼:
#include<stdio.h> main() { char a,x,y,z; printf("請輸入一個大寫字母:"); scanf("%c",&a); x=a+31; y=a+32; z=a+33; printf("小寫字母為:%c%c%c\n",x,y,z); printf("ASCLL碼值為;%d%d%d",x,y,z); }3.問題分析:
a、字符與數字之間的轉化,
? ? ? 解決方法:翻看課本得知是用的%d以及%c進行轉換,定義字符型變量應為char。
b、大寫字母與小寫字母之間的轉換,??
? ? ? 解決方法:當時知道大寫字母與小寫字母之間差了32,但是不知道怎么表示,最后想到可以用多幾個的變量來表示,比如char? x y z來實現轉化。
?
2、實驗練習(2.3.4):
1.問題的簡單描述:
從鍵盤輸入一個3位數,將輸出該數字的逆序數。例如,輸入123,輸出321。
2.實驗代碼:
#include<stdio.h> #include<math.h> int main() {int a,b,c,x,y;printf("請輸入一個3位的正整數;\n");scanf("%d",&x);c=x%10;b=(x%100)/10;a=x/100;y=c*100+b*10+a;printf("%d:%d\n",x,y); }3.問題分析:
如何將數字中的個、十、百位分別選取出來。
解決方法:插入函數(個位=a%100%10、十位=a%100/10(取整)、百位=a/100(取整))
?
3、實驗練習(2.3.5):
1.問題的簡單描述:
編寫一個程序,用于醫藥收費處納算賬。要求輸入所在醫院費用(西藥費、檢查費、材料費、床位費、觀察費和護理費),打印出應付錢款,再輸入病人所付款數,打印出應找錢數(已知某病人,西藥費268.2元,檢查費600元,注射用材料費206元,床位費120元,觀察費360元,護理費220元)。
2.實驗代碼:
#include<stdio.h> main() {float a,x,y,b,c,d,e,f,g;printf("輸入西藥費,檢查費,材料費,床位費,觀察費,護理費:\n");scanf("%f,%f,%f,%f,%f,%f",&a,&b,&c,&d,&e,&f);x=a+b+c+d+e+f;printf("應付款(元):%.2f",x); printf("病人付款(元):");scanf("%f",&g);y=g-x; printf("計算結果:\n");printf("病人付款=%6.2f元\n應付款=%6.2f元\n應找回=%6.2f元\n",x,g,y);return 0; }3.問題分析:
該實驗最主要的問題是數據太多容易混淆不清,導致數據處理不但而出錯。
解決方法:使用/*......*/對所寫內容進行注釋,以便自己能更好的區別出數據與代碼。
4、實驗練習(3.3.1):
1.問題的簡單描述:
有一函數y=x(x<1)或y=2x-1(1=<x<10) 或y=3x-1(x>=10)請用流程圖表示該函數的算法。輸入x值,輸出滿足函數關系的y值。并用c語言編寫程序進行檢驗。
2.實驗代碼:
#include<stdio.h> main() {float x,y;printf("請輸入x的值:");scanf("%f",&x);if (x<1)y=x;else if (x<10)y=2*x-1;elsey=3*x-1; printf("y的值為%.2f\n",y); }3.問題分析:
該實驗最主要的問題是if..else語句的使用容易出錯。
解決方法:如果是只有兩個條件,那么可以直接使用if..else。如果超過兩個條件,可以使用if...else if...else進行編程。
5、實驗練習(3.3.2):
1.問題的簡單描述:
用流程圖描述求解雞兔同籠的算法:已知雞兔的總頭數為h,總腳數為f,求雞兔各有多少只。
2.實驗代碼:
#include<stdio.h> main() {int h,f,x,y;printf("雞兔總數,雞兔腳總數:");scanf("%d%d",&h,&f);if (h>0&&f>0){x=(4*h-f)/2;y=(f-2*h)/2;printf("雞:%d 兔:%d\n",x,y); }else{printf("輸入錯誤!\n");} }3.問題分析:
a、輸出的數有時候是負數
? ? ? 解決方法:在if出輸入h>0&&f>0的條件。
b、第九行代碼總是報錯
? ? ? 解決方法:輸入的符號是分清楚中文的“,”和英文的","一些很小的符號寫錯都可能導致報錯。
6、實驗練習(3.3.3):
1.問題的簡單描述:
根據平面坐標,輸出圓塔的高度。
2.實驗代碼:
#include<stdio.h> #include<math.h> main() { int h=10;float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,d1,d2,d3,d4;printf ("請輸入一個點(x,y)");scanf("%f,%f",&x,&y);d1=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));d2=sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2));d3=sqrt((x-x3)*(x-x3)+(y-y3)*(y-y3));d4=sqrt((x-x4)*(x-x4)+(y-y4)*(y-y4));if(d1>1&&d2>1&&d3>1&&d4>1)printf("該點高度為:0");else printf("該點高度為:10"); }3.問題分析:
該實驗最主要的問題是一個數的平方不能用“^2”來表示
解決方法:通過網上搜索答案得知C語言中可以用x*x表示,也可以用也可以用pow函數表示,例如? pow(double(x),2)? 表示x的平方。
?
三、實驗小結
1.收獲:本次實驗課總共進行了6次實驗,上次的實驗課距這次實驗課有一個星期之久,如此長的時間之內沒有進行上機操作也讓我對c語言程序的編寫變得陌生。而這次的6個實驗使我不管是對于一些重要的字符以及一些特殊的只知道其意義但是不是道其真正的用法的字符有了更加深層次的理解,還是從上機操作的嫻熟性、書寫代碼的速度來講都有了大幅度的提升。并且通過這次實驗我還了解到了算法的重要性,插入算法之前必須先用include<math.h>進行申明,也基本了解了if...else語句的用法,能夠最基本的把該語句的程序正確的寫出來,而且由一些簡單的流程圖慢慢的接觸到了算法,了解了編寫算法的一些基本的格式,用不同的符號類型對所需輸出、輸入的內容進行更好的編寫,還有就是不同的數據類型能夠幫助我們巧妙的設計相應的算法,總得來講,程序的核心就是算法。
2.不足:通過這次的實驗我也發現了我的一些不足。第一就是對鍵盤的符號所在的位置還不夠了解,雖然對26個字母能夠熟練的打出,但是對于“%、@、#、&、*、()、/”等編寫程序最為基本的符號還不能夠不看鍵盤熟練的打出來,這也就帶慢了我書寫程序的速度。第二就是對if...else語句的使用還不是特別熟練,尤其是其格式的書寫,還不能熟練的寫出其基本的格式與符號。第三就是總是錯誤性的將中文和英文的“,”輸入錯誤,這也就導致每次寫完程序后程序的內容沒錯但是就是不能運行,自己也不能及時快速的發現該問題,以及老是放一些低級的錯誤,比如將代碼位置輸錯或是單詞輸入錯誤。自己在很多方面還是存在諸多問題,我覺得在平常的時間里還是得多練習編寫程序,至少這樣不會讓我對其生疏,也能使我更熟悉c語言的結構框架。自己在很多的方面仍需提高,希望老師能夠多多提醒與教導。
?
?
轉載于:https://www.cnblogs.com/zjm956/p/10587862.html
總結
- 上一篇: +智能”时代,华为如何将AI赋能到各行各
- 下一篇: 大三下学期第四周总结