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

    c程序实验报告

    姓名:张时锋    实验地点:教学楼514教室    实验时间:4月3日
    实验项目:
       1、if语句的应用
       2、switch/case语句的应用
       3、switch/case语句嵌套if语句的应用
       4、switch/case结构的嵌套应用
       5、分析程序

    一、实验目的与要求

    1.if语句的应用

    ● 掌握c语言逻辑运算和关系运算的规则
    ● 学会正确地使用关系式和逻辑表达式
    ● 掌握if-else语句的使用方法

    2.switch/case语句的应用

    ● 掌握算数运算符和预算规则
    ● 掌握switch/case语句的使用方法

    3.switch/case语句嵌套if语句的应用

    ● 学会正确地使用关系表达式和逻辑表达式
    ● 掌握switch/case语句语法的使用方法。注意switch语句的控制流程,在switch语句中break语句的用法。

    4.switch/case结构的嵌套应用

    ●switch/case结构的嵌套使用
    ● break语句与continue语句的用法

    5.分析程序

    ● 运行程序,分析输出的结果
    ● 运行程序,分析错误的原因,请修改程序,使其输出正确的结果,并写入实验报告。
    ● 掌握c语言表达式与数学表达式的区别

    二、实验内容

    1.实验练习:4.3.1

    问题描述:

    输入三个分别表示箱子长、宽、高的整数值,判断并输出该箱子是正方体还是长方体。

    实验代码:

    #include <stdio.h>
    int main()
    {
    	int l,w,h;
    	printf("请输入箱子的长、宽、高:
    ");
    	scanf("%d%d%d",&l,&w,&h);
    	if((l==w)&&(w==h))
    	printf("该箱子是正方体。
    ");
    	else
    	printf("该箱子是长方体。
    ") ;
     } 
    

      

    问题:

    此处应该注意赋值与数值相等的运算符的区别,判断长、宽、高是否相等。

    2.实验练习:4.3.2

    问题描述:

    编写一程序实现如下功能,商店有打印纸(18元/本)、墨盒(132元/个)、光盘(4.5元/片)出售,商店进行优惠酬宾活动。具体做法如下:顾客购买商品的总额达到了100元,优惠5%;达到200元以上,优惠6%;达到了300元以上,优惠7%;达到了400元以上,优惠8%;达到了500元以上,优惠10%,根据不同的购买量,打印应付货款。

    实验代码:

    #include <stdio.h>
    int main()
    {    
        int a,b,c,e;
        float sum;//**a打印纸,b墨盒,c光盘,sum最后总金额**// 
        printf("请输入打印纸、墨盒、光盘的数量:
    ");
        scanf("%d%d%d",&a,&b,&c);
        sum=a*18+b*132+c*4.5;
        if (sum>=5)
            sum=sum*0.9;
        else
        {
            e=sum/100;
            switch(e)
            {
            case1:sum=sum*0.95;
            printf("应付款=%f",sum);
            break;
            case2:sum=sum*0.94;
            printf("应付款=%f",sum);
            break;
            case3:sum=sum*0.93;
            printf("应付款=%f",sum);
            break;
            case4:sum=sum*0.92;
            printf("应付款=%f",sum);
            break;
        }
    }
        printf("应付款=%.2f",sum);
    }

    问题:switch和if条件的混合使用不太清楚,现已解决。

    3.实验练习:4.3.3

    问题描述:

    输入某一年月,输出该月的天数。

    实验代码:

    #include <stdio.h>
    int main()
    {
        int year,month,days;
        printf("请输入year,month:
    ");
        scanf("%d%d",&year,&month);
        switch(month)
        {
            case 2:
            if(year%400==0||(year%4==0&&year%100!=0))
            days=29;
            else
            days=28;
            break;
            case1:
            case3:
            case5:
            case7:
            case8:
            case10:
            case12:days=31;break;
            case4:
            case6:
            case9:
            case11:    days=30;break;    
        }
        printf("%d年%d月%d天
    ",year,month,days); 
    }

    问题:无问题。

    4.实验练习:4.3.4

    问题描述:

    编写一个自动售货机的程序,改程序有以下功能:有二级菜单,一级菜单是商品类型的选择;二级菜单是具体商品的选择(商品价格和品种可以自拟)。顾客先选择商品类型,然后选择具体商品,输入购买数量。自动售货机根据选择的商品和输入的数量,计算并显示所选商品总金额。

    实验代码:

    #include <stdio.h>
    main()
    {
        int x,n,y;
        float sum=0.0;
        printf("请选择:1、日用品 2、文具 3、食品
    ");
        scanf("%d,&x");
        switch(x)
        {
            case 1:printf("请选择:1、牙刷(3.5元/支)2、牙膏(6.2元/支)3、肥皂(2元/块)4、毛巾(8.6元/条)
    ");
            scanf("%d",&y);
            printf("数量?");
            scanf("%d",&n);
            switch(y)
            {
                case 1:sum=3.5*n;break;
                case 2:sum=6.2*n;break;
                case 3:sum=2.0*n;break;
                case 4:sum=8.6*n;break;
             } 
             break;
            case 2:printf("请选择:1、笔(3.0元/支)2、笔记本(1.2元/本)3、文件夹(12元/个)4、文具盒(8.6元/个)
    ");
            scanf("%d",&y);
            printf("数量");
            scanf("%d",&n);
            switch(y)
            {
                case 1:sum=3.0*n;break;
                case 2:sum=1.2*n;break;
                case 3:sum=12*n;break;
                case 4:sum=8.6*n;break;
             } 
             break; 
             case 3:printf("请选择:1、白糖(3.6元/包)2、盐(1.0元/包)3、饼(2元/个)4、方便面(3.6元/条)
    ");
            scanf("%d",&y);
            printf("数量");
            scanf("%d",&n);
            switch(y)
            {
                case 1:sum=3.6*n;break;
                case 2:sum=1.0*n;break;
                case 3:sum=2.0*n;break;
                case 4:sum=3.6*n;break;
             } 
             break;
        }
        printf("总计:%.2f元
    ",sum);
        return 0; 
    }

    问题:注意scanf("%d",&n);和scanf("%d,&n")的区别。

    5.实验练习:4.3.5

    问题描述:

    运行下列程序,分析输出的结果,并写入实验报告中

    实验代码:

    #include<stdio.h>
    main()
    {
        double x=1000/3.0;
        double y=x-333.0;
        double z=3*y-1.0;
        printf("x=%lf
    ",x);
        printf("y=%lf
    ",y);
        printf("z=%lf
    ",z);
        if(z==0) printf("z==0.
    ");
        else printf("z不等于0.
    ");
        return 0;
    }

    问题:无。

    6.实验练习:4.3.5(2)

    问题描述:

    运行下列程序,分析输出的结果,并写入实验报告中

    实验代码

    #include<stdio.h>
    int main()
    {
        int num=20;
        if(5<num&&num<10)
        printf("%d in range(5,10)!
    ",num);
        else 
        printf("%d out of range (5,10)!
    ",num);
    }

    问题:判断语句为5<num<10,运算符的使用上有误,应改为5<num&&num<10。

    三、实验小结

    本次实验课上,我主要的问题在于
    1、在4.3.2实验中对于switch和if之间的混合使用不熟,应加强训练。
    2、加强注意一些标点符号的位置。

  • 相关阅读:
    HDU 5938 Four Operations 【贪心】(2016年中国大学生程序设计竞赛(杭州))
    HDU 5935 Car 【模拟】 (2016年中国大学生程序设计竞赛(杭州))
    HDU 5934 Bomb 【图论缩点】(2016年中国大学生程序设计竞赛(杭州))
    HDU 5933 ArcSoft's Office Rearrangement 【模拟】(2016年中国大学生程序设计竞赛(杭州))
    HDU 5929 Basic Data Structure 【模拟】 (2016CCPC东北地区大学生程序设计竞赛)
    【转】LaTeX 符号命令大全
    HDU 5922 Minimum’s Revenge 【模拟】 (2016CCPC东北地区大学生程序设计竞赛)
    HDU 5927 Auxiliary Set 【DFS+树】(2016CCPC东北地区大学生程序设计竞赛)
    数据结构之稀疏矩阵
    C++中引用(&)的用法和应用实例
  • 原文地址:https://www.cnblogs.com/zsflhm/p/10674156.html
Copyright © 2011-2022 走看看