C程序設計實驗報告



C程序設計實驗報告

實驗項目:______部分基本的程序語句和程序簡單算法設計實驗_______________________________________

姓名:___伍臣林_________實驗地點:__514物聯網實驗室_______實驗時間____2019.3.19_______

一、實驗目的與要求

1、字符與ASCII碼

● 了解字符在計算機中以ASCII碼方式表示;

● 了解字符的類型,字長其數的表示范圍;

● 熟練使用scanf()輸入用戶提供的數據;

● 熟練使用printf()輸出變量。

2、運算符與表達式的應用

●掌握算術運算符的使用;

●正確定義程序的變量;

● 熟練使用scanf()輸入用戶提供的數據;

● 熟練使用printf()輸出變量。

3、順序結構應用程序

●掌握算術運算符的使用;

●正確定義程序的變量;

● 熟練使用scanf()輸入用戶提供的數據;

● 熟練使用printf()輸出變量。

4、數學函數的算法描述

●用IF語句根據條件的真假進行判斷

●掌握運算符的運算規則

5、雞兔同籠的算法描述

●用IF語句根據條件的真假進行判斷

●掌握運算符的運算規則

6、確定坐標的算法描述

●用IF語句根據條件的真假進行判斷;

●掌握運算符的運算規則

 

 

二、實驗內容

1、實驗練習:

1問題的簡單描述:任意輸入一個大寫字母,要求轉換成小寫字母輸出,並輸出這個小寫字母相鄰的兩個字母以及它們的ASICC碼。

2實驗代碼:

 1 #include<stdio.h>
 2 main()
 3 {
 4     char a,b,c,d;
 5     printf("請輸入一個大寫字母");
 6     scanf("%c",&a);
 7     b=a+31;
 8     c=a+32;
 9     d=a+33;
10     printf("輸出小寫字母:%c,%c,%c\n",b,c,d);
11     printf("輸出ASCII碼:%d,%d,%d\n",b,c,d);
12     
13 }

 

3問題分析:對於輸出格式字符的選擇還比較模糊,實驗時,主要卡在最后兩個輸出語句。根據同學提醒,我區分出%d和%c的差別了。

2、實驗練習:

1問題的簡單描述:從鍵盤輸入一個三位整數,將輸出該數的逆序數。例如、輸入123,輸出321.

2實驗代碼:

#include<stdio.h>
int main()
{
 int a,b,c,x,y;
 printf("請輸入一個三位的正整數:\n");
 scanf("%d",&x);
 a=x/100;
 b=(x%100)/10;
 c=x%10;
 y=c*100+b*10+a;
 printf("%d: %d\n",x,y);
}

3問題分析:逆序數,主要問題是將百分位變為個位。經過老師講解,可以利用  %   /   分別對輸入數據整除取整或是取余數 經過y=c*100+b*10+a; 來實現逆序數的輸出。

3、實驗練習

1問題的簡單描述:編輯一個程序,用於醫院收費處出納結算。要求輸入所在醫院費用(西葯費,檢查費,材料費,床位費,觀察費和護理費),打印出應付錢數,再輸入病人所付款數,打印出應找的錢數(已知某病人,西葯費268.2元,檢查費600元,材料費206研,床位費120元,觀察費360元和護理費220元)。

2實驗代碼:

 1     #include<stdio.h>
 2 int main()
 3 {
 4     float x,j,c,hj,fk,zh,cw,g,f;
 5     printf("輸入西葯費,檢查費,材料費,床位費,觀察費,護理費:\n");
 6      scanf("%f,%f,%f,%f,%f,%f,",&x,&j,&c,&cw,&g,&f);
 7     hj=x+j+c+cw+g+f;
 8     printf("應付款:%.2f",hj);
 9     printf("病人付款:");
10     scanf("%f",&fk);
11     zh=fk-hj;
12     printf("計算結果:\n");
13     printf("病人付款=%6.2f元\n應收款=%6.2f元應找回=%6.2f元\n",fk,hj,zh); 
14 
15 }

3問題分析: 變量多步驟復雜,操作過程中有漏掉百分號和分號情況;一一比對排查 最后成功運行!

3、實驗練習

1問題的簡單描述:有一函數: y=x(x<1);y=2x-1(1<=x<10);y=3x-1(x>=10),請用c語言編寫程序進行檢查。

2實驗代碼:

 1 #include<stdio.h>
 2 main()
 3 {
 4     float x,y;
 5     printf("請輸入x的值:");
 6     scanf("%f",&x);
 7     if(x<1)  y=x;
 8     else
 9     if(x<10) y=2*x-1;
10     else y=3*x-1;
11     printf("y的值為%.2f\n",y);
12     
13 }

3問題分析:簡單的條件語句 此題在操作過程中沒遇見什么困難!

3、實驗練習

1問題的簡單描述:已知雞兔的總頭數為h,總腳數為f,求雞兔各有多少只?請用c語言編寫程序進行檢查。

2實驗代碼:

 1 #include<stdio.h>
 2 main()
 3 {
 4     int h,f,x,y;
 5     printf("雞兔總數,雞兔總腳數:");
 6     scanf("%d,%d",&h,&f);
 7     if(h>0&&f>0)
 8     {
 9         x=(4*h-f)/2;
10         y=(f-2*h)/2;
11         printf("雞:%d 兔:%d\n",x,y);
12         
13     }
14     else
15     printf("輸入錯誤!\n");
16 }

3問題分析:這個問題的難點就是計算雞兔數量的表達式,但是由於流程圖已經給出我們表達式,所以這個題目簡直在調侃我們!稍稍注意一下c中的乘號以及大括號的用法情況。

3、實驗練習

1問題的簡單描述:根據平面坐標,輸出圓塔的高度。有4個圓塔,圓心分別為(2,2)、(-2,2)、(2,-2),(-2,-2),圓半徑為1。這四個塔的高度均為10m,塔以外無建築物。現輸入任一點坐標,若該點坐標在任一圓塔內,則輸出圓塔的高度;若該點不在圓塔內,則輸出0。

2實驗代碼:

 1 #include<stdio.h>
 2 #include<math.h>
 3 main()
 4 {   int h=10;
 5     float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,d1,d2,d3,d4;
 6     printf ("請輸入一個點(x,y)");
 7     scanf("%f,%f",&x,&y);
 8     d1=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
 9     d2=sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2));
10     d3=sqrt((x-x3)*(x-x3)+(y-y3)*(y-y3));
11     d4=sqrt((x-x4)*(x-x4)+(y-y4)*(y-y4));
12     if(d1>1&&d2>1&&d3>1&&d4>1)
13     printf("該點高度為:0");
14     else 
15     printf("該點高度為:10");
16 }

3問題分析:這個問題主要是操作過程中的平方問題。數學函數頭文件一定要有 才可以使用根號的:sqrt

 

 

三、實驗小結(在本次實驗中收獲與不足)

在實驗室操作過程中,對於一些修飾符號的選擇有點生疏,鍵盤還是不夠熟練 總是打錯代碼或者是漏掉分號,尋址操作符&。多加練習 寫代碼的速度是可以提上去的。經過不斷的排查 看見一個個程序被運行成功,那叫一個喜悅!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM