第二次实验报告

摘要:
注意switch语句的控制流程。switch语句中break语句的使用是switch/case结构和if/else嵌套结构之间的转换。

C程序设计实验报告

实验项目:

4.3.1 if语句的应用

4.3.2 switch/case语句的应用

4.3.3 switch/case语句嵌套结构if语句的应用

4.3.4 switch/case结构的嵌套应用

4.3.5 分析程序


姓名:欧阳思健        实验地点:514实验教室         实验时间:2019.04.03


一、实验目的与要求

4.3.1 if语句的应用

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

2.学会正确地使用关系式和逻辑表达式;

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

4.掌握if_else语句的使用方法。

4.3.2 switch/case语句的应用

1.掌握算术运算符和运算规则;

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

4.3.3 switch/case语句嵌套结构if语句的应用

1.学会正确使用关系表达式和逻辑表达式。

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

switch/case结构与if/else嵌套结构之间的转换。

4.3.4 switch/case结构的嵌套应用

1.switch/case结构的嵌套使用。

2.break语句与continue语句的用法。

4.3.5 分析程序

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

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


二、实验内容


4.3.1 if语句的应用

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

此题无问题

4.3.2 switch/case语句的应用

#include <stdio.h>
main()
{
    double sum;
    int a,b,c,s;
    printf("请输入打印纸、墨盒、光盘数量:
");
    scanf("%d%d%d",&a,&b,&c);
    sum=18*a+132*b+4.5*c;
    s=sum/100;
        switch(s)
        {
            case 0:
                sum=sum;
                printf("应付款为:%lf",sum);break;
            case 1:
                sum=0.95*sum;
                printf("应付款为:%lf",sum);break;
            case 2:
                sum=0.94*sum;
                printf("应付款为:%lf",sum);break;
            case 3:
                sum=0.93*sum;
                printf("应付款为:%lf",sum);break;
            case 4:
                sum=0.92*sum;
                printf("应付款为:%lf",sum);break;
            case 5:
                sum=0.9*sum;
                printf("应付款为:%lf",sum);break;
            default :
                sum=0.9*sum;
                printf("应付款为:%lf",sum);break;
            return 0;            
        }
}

这个题目方法有多种,应选择变量较少的方法解答,方便自己理解

4.3.3 switch/case语句嵌套结构if语句的应用

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

case和数字之间需要用空格隔开否则得不到结果

4.3.4 switch/case结构的嵌套应用

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

此题无问题

4.3.5 分析程序

1.

#include<stdio.h>
int 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);
    printf("x=%lf
",x);
    if(z==0) printf("z==0.
");
       else printf("z不等于0.
");
       return 0;    
}

因为double定义双精度小数,完全保的有效数字是十五位,z-1.0为一个无限接近于0的一个负值

2.

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

如果num需要同时满足大于5小于10,应该这样表达num>5&&num<10

免责声明:文章转载自《第二次实验报告》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇IDEA JSTL标签库导入用C#写程序安装包 Joe下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

帝国CMS实现一二级导航及其高亮

帝国CMS实现一二级导航及其高亮   可以用以下方法实现一二级导航 <li id="<?=$GLOBALS[navclassid]==0?'nav_select':''?>"><a href="http://t.zoukankan.com/">首页</a></li> [e:loop={'se...

Linux中 diff与patch的深入分析(转)

本文转自http://linux.chinaitlab.com/c/805820.html 1) diff的传统格式输出.   ############################################   cat before.txt   输出:   This is a line to be deleted   This is a line...

printf 格式化输出符号详细说明(转)

%a             浮点数、十六进制数字和p-记数法(C99)%A    浮点数、十六进制数字和p-记法(C99)%c     一个字符(char) %C           一个ISO宽字符 %d    有符号十进制整数(int)(%ld、%Ld:长整型数据(long),%hd:输出短整形。)  %e    浮点数、e-记数法%E    浮点数...

基于第三方开源库的OPC服务器开发指南(3)——OPC客户端

本篇将讲解如何编写一个OPC客户端程序测试我们在前文《基于第三方开源库的OPC服务器开发指南(2)——LightOPC的编译及部署》一篇建立的服务器。本指南的目的是熟悉OPC服务器的开发流程,所以客户端部分我就不做过多描述,只是简单讲解几个关键技术细节及其实现函数,完整工程源码请从如下地址获取: https://github.com/Neo-T/OPCDA...

宏定义。字符串拼接和字符串整形转字符串

#include <stdio.h> #define A ".5.6" #define SAMPLE_RATE_CONFIG 5 #define STR1(R) #R #define STR3(R) STR1(R) A #define STR4 STR3(SAMPLE_RATE_CONFIG) int main() {...

STM32 printf重定向

STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK)   在STM32串口通信程序中使用printf发送数据,非常的方便。可在刚开始使用的时候总是遇到问题,常见的是硬件访真时无法进入main主函数,其实只要简单的配置一下就可以了。   下面就说一下使用printf需要做哪些配置。   有两种配置方法: 一、对工程属性进行配...