---恢复内容开始---

C程序设计实验

实验项目:1、If语句的应用、2、switch/case语句的应用、3、switch/case语句嵌套if语句的应用、4、switch/case结构的嵌套应用、5、分析程序。

姓名:李研 实验地点:黄金校区514教室 实验时间:2019.4.3

一、实验目的与要求

1、掌握C语言逻辑运算和关系运算的规则

      学会正确地关系表达式和逻辑表达式

      掌握if_else语句的使用方法

2、掌握算术运算符和运算规则

      掌握switch/case语句的使用方法

3、学会正确地使用关系表达式和逻辑表达式

      掌握switch/case语句语法和使用方法。注意switch语句的控制流程,在switch语句中break语句的用法

4、switch/case结构的嵌套使用

     break语句与continue语句的用法

5、分析程序

二、实验内容

1、实验练习

      问题的简单描述:读入3个分别表示箱子长、宽、高的整数值,判断并输出该箱子是正方体还是长方体

      实验代码:

 1 #include <stdio.h>
 2 int main()
 3 {
 4          int l,w,h;
 5          printf("请输入箱子的长、宽、高:\n");
 6          scanf("%d%d%d",&l,&w,&h);
 7          if(l==w,w==h)
 8                 printf("该箱子是正方体。\n");
 9          else
10                 printf("该箱子是长方体。\n");
11          return 0;
12 }

      问题分析:若箱子的长、宽、高相等,则箱子为正方体

                        从键盘输入箱子的长、宽、高,且在输入前有提示信息

                        输出结果时有文字说明

2、实验练习

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

     实验代码


1 #include <stdio.h>
 2 int main()
 3 {
 4      int a,b,c,sum;
 5      sum=18*a+132*b+4.5*c;
printf("请输入打印纸、墨盒、光盘的数量:\n");
scanf("%d%d%d",&a,&b,&c); 6 if(100<sum<200) 7 printf("0.95*sum\n"); 8 else if(200<sum<300) 9 printf("0.94*sum\n"); 10 else if(300<sum<400) 11 printf("0.93*sum\n"); 12 else if(400<sum<500) 13 printf("0.92*sum\n"); 14 else if(sum>500) 15 print("0.90*sum\n"); 16 }

     问题分析:采用if_else语句的嵌套实现

   3、实验练习

        问题的简单描述:输入某一年月,输出该月的天数

        实验代码:

#include <stdio.h>
int main()
{
         int year,month,  days;
         printf("Please enter year and month:\n");
         scanf("%d%d",&year,  &month);
         switch(month)
         {
               case 2:if(((year%4==0)&&(year%100==!0))||(year%400==0))
                       days=29;
               else
                       days=28;
               break;
               case 1:
               case 3:
               case 5:
               case 7:
               case 8:
               case 10:
               case 12:days=31
               case 4:
               case 6:
               case 9:
               case 11:days=30;break;
}
printf("%d年%月有%天\n",year,month,day);
return 0;
}
                         

    问题分析:程序接收年月,用int型定义两个变量

                      1,3,5,7,8,10,12月均为31天;4,6,9,11月均为30天;2月闰年29天,平年28天

                      程序采用switch/case结构

                      闰年的条件是:能被4整除但不能被100整除,或能被400整除

                      从键盘输入年月,且在输入前有提示信息

                      输出结果时要有文字说明

4、实验练习

      问题的简单描述:编写一个自动售货机的程序。该程序应具如下功能:有二级菜单,一级菜单是商品类型的选择;二级菜单是具体商品的选择。顾客先选择商品类型,然后        选择具体商品,输入购买数量。自动售货机根据选择的商品和输入的数量,计算并显示所选商品的总金额。

      实验代码:

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

        问题分析:程序功能具有二级菜单,要使用switch/case的嵌套结构实现

                          一级菜单实现对商品类型的选择,根据用户选择的序号进行匹配

                          在进入所属商品类型后,顾客选择该类型下的具体商品,并提示输入购买数量

                          二级菜单实现对某类中商品的选择,根据用户选择的序号进行匹配,同时根据购买数量计算总额

                          最后输出顾客本次购买商品的总金额

5、分析程序

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

 

#include<stdio.h>
#include<math.h>
main()
{
int num=20;
if{5<num&&num<10)
printf("%d in range (5,10)!\n",num)
else
printf("%d outof rannge (5,10)!\n",num)
 } 
问题分析:if语句不能连续判断大小关系要加一个与语句才能保证该程序正常运行

 三、实验小结

1.在输入if的判断条件时,我们要搞清楚数学中运算符号和C语言中运算符的区别,掌握正确的使用关系表达式和逻辑表达式。

2、经过这次课的对比,让我对if和switch/case有了初步了解,下次肯定是不会在switch的后面加逗号了,还有就是switch后的break不能忘;还有就是如果自己的方法和别人的不一样我因该坚持自己的想法,刨根问底不要太在意别人的看法。                          

---恢复内容结束---

posted on 2019-04-07 19:32  李研  阅读(327)  评论(0编辑  收藏  举报