ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第二次实验报告

2021-04-18 20:34:29  阅读:141  来源: 互联网

标签:语句 case else switch 实验 printf 第二次 实验报告


c程序设计实验报告

姓名:欧阳嘉豪 实验地点:一教522 实验时间:2021.4.15

一、实验目的与要求

(1)掌握结构化程序的算法描述方法。

(2)了解C语言的基本语法要素,能熟练地将算法描述转化为C语言程序。

(3)熟练掌握C语言运算符的优先级、结合性、运算规则、运算对象类型等。

(4)掌握C语言逻辑值的表示方法(0代表“假”,1代表“真”)。

(5)学会正确的使用逻辑表达式和关系表达式。

(6)掌握各种形式的if语句语法和使用方法。注意if语句中if和else的匹配关系,以及if语句的嵌套。

(7)掌握switch语句的语法和使用方法。注意在switch语句中break语句的语法及switch语句的嵌套。

(8)能独立编写分支结构程序并测试通过。

(9)用if语句、switch语句解决简单的应用问题并上机实现。

二、实验内容

1、实验练习:3.3.1
(1)问题描述:自己设计合适的算法流程图。输入x值,输出满足函数关系的y值。
(2)实验代码:
#include <stdio.h>
main()
{
    float x,y;
    printf("请输入x的值:");
    scanf("%f",&x);
    if(x<1)    
        printf("y=%.2f",x);      
    else
        if(x<10)
        {
            y=2*x-1;
            printf("y的值为:%.2f\n",y);
        }
        else
        {
            y=3*x-1;
            printf("y的值为:%.2f\n",y);
        }
}    
(3)问题分析:

if下的括号问题浪费了很多时间

2、实验练习:3.3.2
(1)问题描述:用算法流程图描述求解鸡兔同笼问题的算法:已知鸡兔的总头数为h,总脚数为f,求鸡兔各有多少只?
(2)实验代码:
#include <stdio.h>
main()
{
    int x,y,h,f;
    printf("鸡兔总数,鸡兔脚总数:");
    scanf("%d,%d",&h,&f);
        if(x>0&&y>0)
        {
            x=(4*h-f)/2;
            y=(f-2*h)/2;
            printf("鸡有:%d,兔有:%d",x,y);
        }
        else
        printf("输入有误!\n");
        
}

(3)问题分析:

  • 要先列方程得出方程
3、实验练习:3.3.3
(1)问题描述:有四个圆塔,圆心分别为(2,2)、(-2,2)、(2,-2)、(-2,-2),圆半径为1,四个塔的高度均为10m,塔以外无建筑物。现输入任意一点的坐标,若该点的坐标在任意一个圆塔内,则输出圆塔的高度;若该点不在圆塔内,则输出0.
(2)实验代码:
#include <stdio.h>
#include <math.h>
main()
{
    int h=10;
    float x1=2,y1=2,y2=2,x2=-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);
      
}

(3)问题分析:

  • 注意添加数学函数
4、实验练习:4.3.1
(1)问题描述:读入三个表示箱子长、宽、高的整数值,判断并输出该箱子是正方体还是长方体。
(2)实验代码:
#include <stdio.h>
main()
{
    int l,w,h;
    printf("请输入箱子的长 宽 高:\n");
    scanf("%d,%d,%d",&l,&w,&h);
    if(l==w&&l==h&&w==h)
    printf("该箱子为正方体!\n");
    else
    printf("该箱子为长方体!\n");
    return 0;
}

(3):问题分析:

  • 等号要打双等
5、实验练习:4.3.2
(1)问题描述:编写程序实现如下功能:商店有打印纸(18元/本)、墨盒(132元/个)、光盘(4.5元/片)出售,商店进行优惠酬宾活动。具体规则如下:顾客购买商品的总额超过100元,优惠%5;超过200元,优惠%6;超过300元,优惠%7;超过400元,优惠%8;超过500元,优惠%10。根据不同的购买量,计算应付货款。
(2)实验代码:

#include <stdio.h>
main()
{
int x,y,z,s;
printf("请输入打印纸,墨盒,光盘数量:");
scanf("%d,%d,%d",&x,&y,&z);
s=18*x+132*y+4.5*z;
if(s>500)
s=s*0.9;
else
if(s>400)
s=s*0.92;
else
if(s>300)
s=s*0.93;
else
if(s>200)
s=s*0.94;
else
if(s>100)
s=s*0.95;
else
if(s>0)
s=s;
else
printf("输入值有误!");
printf("应付款数=%d",s) ;
}

(3)问题分析:

  • 注意从大到小,开始输错了
  • else要匹配,注意别配错
 
6、实验练习:4.3.3
(1)问题描述:输入某一年、月的数值,输出该月的天数。
(2)实验代码:
#include<stdio.h>
main()
{
    int year,month,days;
    printf("请输入年份和月份:");
    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;break;
        case 4:
        case 6:
        case 9:
         case 11:days=30;break;
        
    }
    printf("%d年%d月有%d天",year,month,days);
}

(3)问题分析:

  • switch和if语句嵌套不熟练

三、实验小结

1.用if语句要注意与else的对应,用switch要注意break的位置和影响

2.switch语句是一种多分支选择语句,其可读性比if语句强。要注意在switch语句中正确地使用break语句,以使程序能正确地从switch分支中跳出,避免发生逻辑错误。

3.还是要注意中英文区分,细心操作。把代码排布弄漂亮

4.在if语句中的结构可以内嵌一个switch结构的语句,同样,在switch语句的结构中也可以内嵌一个if结构的语句,尽量打熟练。

四、预习

标签:语句,case,else,switch,实验,printf,第二次,实验报告
来源: https://www.cnblogs.com/ooyy/p/14674487.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有