zoukankan      html  css  js  c++  java
  • 第一次实验报告

    c语言实验报告

    实验项目:

       1、字符与ASCII码

       2、运算符与表达式的应用
       3、顺序结构应用程序
       4、数学函数的算法描述
       5、鸡兔同笼的算法描述
       6、确定坐标的算法描述

    姓名:张顺利   实验地点:第一教学楼514教室    实验时间:3月19日

    一、实验目的与要求

    1.字符与ASCII码

      1.了解字符在计算机中以ASCII码方式表示;
      2.了解字符的类型;
      3.字长其数的表示范围;熟练使用scanf()输入用户提供的数据;
      4.熟练使用printf()输出变量。

    2.运算符与表达式的应用

      1. 掌握算术运算符的使用;
      2. 正确定义程序中的变量;
      3. 熟练使用scanf()输入用户提供的数据;
      4. 熟练使用printf()输出变量。

    3.顺序结构应用程序

      1. 掌握算术运算符的使用;
      2. 正确定义程序中的变量;
      3. 熟练使用scanf()输入用户提供的数据;
      4. 熟练使用printf()输出变量。

    4.数学函数的算法描述

      1.用if语句根据条件的真假进行判断;
      2.掌握运算符的运算规则。

    5.鸡兔同笼的算法描述

      1.用if语句根据条件的真假进行判断;
      2.掌握运算符的运算规则。

    6.确定坐标的算法描述

      1.用if语句根据条件的真假进行判断;
      2.掌握运算符的运算规则。

    二、实验内容

    1.实验练习:

    2.3.3

    1. 从键盘输入一个大写字母,要求转换成小写字母输出,并输出这个小写字母相邻的两个字母;以及它们的ASCII码值。

    2.代码示例

    #include<stdio.h>
    main()
    {
        char a;
        printf("请输入一个大写字母:");
        scanf("%c",&a);
        printf("小写字母为: %c,%c,%c
    ",a+31,a+32,a+33);
        printf("ASCLL码值为: %d,%d,%d
    ",a+31,a+32,a+33);
    }

    3.问题:在插入时,我插入了三个字母,但是再输入时只点明了一个,最后导致无法输出。

    解决方法:询问做完的同学,发现了问题,然后进行修改。

    2.实验练习:

    2.3.4

    1. 从键盘输入一个3位整数,将输出该数的逆序数。例如,输入123,输出321

    2.代码示例:

    #include<stdio.h>
    int main()
    {
        int a,b,c,x,y;
        printf("请输入一个3位的正整数:
    ");
        scanf("%d",&x);
        a=x/100;
        b=(x-a*100)/10;
        c=x%10;
        y=c*100+b*10+a;
        printf("%d: %d
    ",x,y);
        return 0;
    }

    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;
        printf("输入西药费,检查费,材料费,床位费,观察费,护理费:
    ");
        scanf("%f,%f,%f,%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("计算结果:
    ");
        printf("病人付款=%6.2f元
    应付款=%6.2f元应找回=%6.2f元",fk,hj,zh);
        return 0;
    }

    3.问题:因书上有大量代码,使得代码的输出无问题。

    4.实验练习:

    3.3.1

    1. 有一函数 请用流程图表示该函数的算法。输入x值,输出满足函数关系的y值。并用c语言编写程序进行检验。

    2.代码示例:

    #include<stdio.h>
    main()
    {
        float x,y;
        printf("请输入x的值:");
        scanf("%f",&x);
        if (x<1)
        y=x;
        else if(x>=1&&x<10)
        y=2*x-1;
        else (x>=10)
        y=3*x-1;
        printf("y的值为%.2f
    ",y);
    }

    3.问题:在 else 的后面还继续加上了(x>=10)导致最后结果无法显示

    解决方法:在与同学讨论过程中,发现并且改正。

    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
    ",x,y);
        }
        else
        printf("输出错误!
    ");
    }
     
     

    3.问题:按照书上的打法却并不能得出正确的输出

    解决方法:书中错误,书上在 if 后面是

    (x>0&&y>0)

    但事实上的代码却是

    (h>0&&f>0)

    希望老师能向教育局有关部门反映,及时处理错误。

    6.实验练习:3.3.3

    1.:有4个圆塔,圆心分别为(2,2)、(-2,2)、(2,-2)、(-2,-2),圆半径为1.这4个塔的高度均为10m,塔以外无建筑物。现输入任一点的坐标,若该点坐标在任意圆塔内,则输出圆塔的高度;若该点不在圆塔内,则输出0

    2.代码示例:

    #include<stdio.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=(x-x1)*(x-x1)+(y-y1)*(y-y1);
        d2=(x-x2)*(x-x2)+(y-y2)*(y-y2);
        d3=(x-x3)*(x-x3)+(y-y3)*(y-y3);
        d4=(x-x4)*(x-x4)+(y-y4)*(y-y4);
        if(d1>1&&d2>1&&d3>1&&d4>1)
        h=0;
        printf("该点高度为%d",h);
    }

    3.问题:因有同学讲解,所以无太大的问题。

    三、实验小结

    经过这几次的实验,我发现我并不是在C语言的语法上使用错误,反而是在一些不太引人注目的小问题上错误不断,比如,老是把输入的值写进引号内,或者在一些常识性的问题上出错。但是这些错误也在提醒着我,让我记住这些易犯的小错误,防止我下次继续,也让我对C语言有了更加深刻的感悟,使我更有兴趣去学习了。

  • 相关阅读:
    Java学习二十九天
    Java学习二十八天
    47. Permutations II 全排列可重复版本
    46. Permutations 全排列,无重复
    subset ii 子集 有重复元素
    339. Nested List Weight Sum 339.嵌套列表权重总和
    251. Flatten 2D Vector 平铺二维矩阵
    217. Contains Duplicate数组重复元素
    209. Minimum Size Subarray Sum 结果大于等于目标的最小长度数组
    438. Find All Anagrams in a String 查找字符串中的所有Anagrams
  • 原文地址:https://www.cnblogs.com/1403262085zsl/p/10590900.html
Copyright © 2011-2022 走看看