c語言實驗報告


C程序設計實驗報告

實驗項目:

1、字符與ASCII碼

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

3、順序結構應用程序

4、數學函數的算法描述

5、雞兔同籠的算法描述

6、確定坐標的算法描述

姓名:劉健斌     實驗地點:教室514    實驗時間:3月19號

一、實驗目的與要求

1、字符與ASCII碼

實驗目的:

  • 了解字符在計算機中以ASCII碼方式表達;
  • 了解字符的類型、字長其數的表達范圍;
  • 熟練使用scanf()輸入用戶提供的數據;
  • 熟練使用printf()輸出變量;

要求:

(1)從鍵盤輸入任意字符,且在輸入前要求有提示信息

(2)輸出兩行:第1行是字符形式輸出3個字符,3個字符以逗號隔開,第2行是輸出字符對應的ASCII碼

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

實驗目的:

  • 掌握算術運算符的使用
  • 正確定義程序中的變量
  • 熟練使用scanf()輸入用戶提供的數據
  • 熟練使用printf()輸出變量

要求:

(1)將輸入的3位整數,個位數轉換為百位數,百位數轉換為個位數,把轉換的3個數字生成一個新的逆序數

(2)任意的3位整數以鍵盤輸入且在輸入前要求有提示信息

(3)輸出結果時,要求形式為:原數:轉換后的數

3、順序結構應用程序

實驗目的:

  • 掌握算術運算符的使用
  • 正確定義程序中的變量
  • 熟練使用scanf()輸入用戶提供的數據
  • 熟練使用printf()輸出變量

要求:

(1)輸入數據包括9個浮點數,因此可以用float來定義

(2)提示用戶輸入6項費用,並用scanf()讀入到相應的變量中

(3)計算6項費用的總額,並存儲在相應變量中

(4)用printf()語句輸出應付款

(5)用scanf()語句接收病人的實際付款金額,並存儲在相應的變量中

(6)計算應付款和實際付款之間的差額,並存儲在相應的變量中

(7)用printf()語句將病人付款、應收款、應找回的各項金額顯示

4、數學函數的算法描述

實驗目的:

  • 用if語句根據條件的真假進行判斷
  • 掌握運算符的運算規則

要求:

(1)程序需要接收1個浮點數,因此用float來表示。

(2)使用scanf語句接收用戶輸入的X的值,並保存在變量中

(3)判斷變量x的值是否小於1,如果是,根據函數公式1,將x的值賦給y;如果不是,則進一步判斷x的值是否小於10,是則根據函數公式2,計算y的值;不是則根據函數公式3,計算y的值

(4)用printf語句輸出Y的值

5、雞兔同籠的算法描述

實驗目的:

  • 用if語句根據條件的真假進行判斷
  • 掌握運算符的運算規則

要求:

(1)需要定義兩個整型變量,分別代表雞兔的總頭數和總腳數

(2)判斷輸入數據的正確性

6、確定坐標的算法描述

實驗目的:

  • 用if語句根據條件的真假進行判斷
  • 掌握運算符的運算規則

要求:

(1)求出該點到各中心的距離

(2)判斷該點是否在塔外

二、實驗內容

1、實驗練習:2.3.3

1.問題的簡單描述:從鍵盤輸入一個大寫字母,要求轉換成小寫字母輸出,並輸出這個小寫字母相鄰的兩個字母,以及它們的ASCII碼

2.實驗代碼:

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

 

2、實驗練習:2.3.4

1.問題的簡單描述:將鍵盤輸入一個3位的正整數,將輸出該數的逆序數。

2實驗代碼:

#include<stdio.h>
int main()
{
    int a,b,c,x,y;
    printf("請輸入一個3位的正整數:\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問題分析:會把“/”與“%”搞混,然后翻書看了一下,把思路理了一下,就寫出來了

 

3、實驗練習:2.3.5

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

2實驗代碼:

#include<stdio.h>
int main()
{
    float x,j,c,hj,fk,zh,cw,g,f;
    /*其中,x代表西葯費;j代表檢查費;c代表材料費;cw代表床位費;g代表觀察費;f代表護理費;hj代表應付費;fk代表病人付款;zh代表應找回的金額;*/
    printf("輸入西葯費,檢查費,材料費。床位費,觀察費,護理費:\n") ;
    scanf("%f,%f,%f,%f,%f,%f",&x,&j,&c,&cw,&g,&f);/*編寫接受語句,將西葯費、檢查費、材料費、床位費、觀察費、護理費存放在相應的變量中*/
    hj=x+j+c+cw+g+f;/*計算各項費用的金額*/
    printf("應付款(元):%.2f",hj);
    printf("病人付款(元):");
    scanf("%f",&fk);
    zh=fk-hj;/*得出應找回給病人的金額*/
    printf("計算結果:\n");
    printf("病人付款=%6.2f元\n應付款=%6.2f元應找回=%6.2f元\n",fk,hj,zh);
    return 0; 
}

3問題分析:編寫代碼的時候會把中英文的符號搞混,檢查了很多次才發現

 

4、實驗練習:3.3.1

1.問題的簡單描述:有一函數:y={x    (x<1);2x-1    (1<=x<10);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;
    else
        y=3*x-1;
    printf("y的值為%.2f\n",y);
}

3問題分析:多重判斷中else if 不能放一起,要回車分開

 

5、實驗練習:3.3.2

1.問題的簡單描述:用流程圖描述求解雞兔同籠問題的算法:已知雞兔的總頭數為h(head),總腳數為f(feet),求雞兔各有多少只?

 

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問題分析:if中如果有多步計算,則要用{}括起來

 

6、實驗練習:3.3.3

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

 

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)
    {
    h=0;
    printf("該點高度為:%d",h);
    }
    else{
    h=10;
    printf("該點高度為:%d",h);
    }
}

 

3問題分析:因為該運算涉及平方運算,所以要添加頭文件#include<math.h>來獲取函數。之前一直忘加,導致一直算不出來。

 

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

在這次實驗中我的不足:

1、無法牢記知識點,會把某些知識點搞混

2、中英文字符輸入的錯誤。在進行字符輸入時,不會注意中英文的轉換

3、對於格式字符的運用還是不夠熟悉

4、編碼習慣的問題,有時候會忘記打“;”,出現錯誤

我的收獲:

1、通過這次實驗,我鞏固了不太熟悉的代碼

2、要養成打“;”的習慣

3、要時刻注意中英文的轉換

4、要多看書,多和同學交流


免責聲明!

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



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