C程序设计实验报告姓   名:赖瑾  

实验地点:家                      

实验时间:2020年3月9日                 

实验项目:2.3.3 字符与ASCLL码

     2.3.4 运算符与表达式的运用

     2.3.5 顺序结构应用程序

     3.3.1 数学函数的算法描述

     3.3.2 鸡兔同笼的算法描述

     3.3.3 确定坐标的算法描述 

一、实验目的与要求

1、掌握自增++、自减--运算符的正确使用。

2、掌握基本的输入/输出函数的基本功能、调用方法、输入/输出格式控制规定等。

3、掌握结构化程序的算法描述方法。

4、熟练掌握C语言的运算符,即运算符的优先级和结核性、运算规则、运算对象类型等。

                

二、实验内容

(1)2.3.3 字符与ASCLL值

1、问题的简单描述:赋值后a的值已经变化

2、实验代码:

  1. #include<stdio.h>
  2. void main()
  3. {
  4. char a,b,c,s;
  5. printf("请输入一个大写字母:\n");
  6. scanf("%c",&a) ; //a为输入的大写字母/
  7. a=a+32;
  8. b=a-1; //b为输入字母的小写的前一个字母
  9. c=a+1; //c为输入字母的小写的后一个字母
  10. printf("小写字母为%c,%c,%c\n",b,a,c);
  11. printf("ASCII值为%d,%d,%d\n",b,a,c);
  12. s=(a+b+c)/3;//ACSII值的平均值
  13. printf("平均值=%d",s);
  14. }

3、问题分析:刚开始写的是b=a+31,c=a+33没有意识到a的值已经改变。

         

(2)2.3.4 运算符与表达式的运用

1、问题的简单描述:不清楚十位数的取值怎么算

2、实验代码:

  1. #include<stdio.h>
  2. void main()
  3. {
  4. int a,b,c,x,y;//x为输入的数
  5. printf("请输入一个3位正整数:\n");
  6. scanf("%d",&x);
  7. a=x/100; //百位的数
  8. b=x/10%10; //十位的数
  9. c=x%10; // 个位的数
  10. y=c*100+b*10+a;
  11. printf("%d:%d\n",x,y);
  12. }

3、问题分析:对十位数的取值要分别除两次十而不是除100取余。

        

(3)2.3.5 顺序结构应用程序

1、问题的简单描述:注意输入法

2、实验代码:

  1. float x,j,c,cw,g,f,hj,fk,zh;
  2. //其中,x代表西药费;j代表检查费;c代表材料
  3. //cw代表床位费;g代表观察费;f代表护理费
  4. //hj代表应付款;fk代表病人付款项;zh代表应找回的金额
  5. printf("请输入西药费,检查费,材料费,床位费,观察费,护理费:\n");
  6. scanf("%f,%f,%f,%f,%f,%f",&x,&j,&c,&cw,&g,&hj);
  7. hj=x+j+c+cw+g+f;
  8. printf("应付款(元):%.2f",hj);
  9. printf("病人付款(元):");
  10. scanf("%f",&fk);
  11. zh=fk-hj;
  12. printf("计算结果:\n");
  13. printf("病人付款(元):%.2f元\n",fk);
  14. printf("应收款(元):%.2f元",hj);
  15. printf(",应找回(元):%.2f元",zh);
  16. }

3、问题分析:注意输入法

         

(4)3.3.1 数学函数的算法描述

1、问题的简单描述:

2、流程图:

3、实验代码:

  1. #include<stdio.h>
  2. main()
  3. {
  4. float x,y;
  5. printf("请输入x的值:");
  6. scanf("%f",&x);
  7. if(x<1)
  8. y=x;
  9. else if(x<10)
  10. y=2*x-1;
  11. else
  12. y=3*x-1;
  13. printf("y的值为%.2f\n",y);
  14. }

4、问题分析:

        

(5)3.3.2 鸡兔同笼的算法描述

1、问题的简单描述:数字与变量的混合运算

2、流程图:



3、实验代码:

  1. #include<stdio.h>
  2. main()
  3. {
  4. int h,f,x,y;//h为总头数,f为总脚数
  5. printf("鸡兔总数,鸡兔脚总数:");
  6. scanf("%d,%d",&h,&f);
  7. if(h>0&&f>0)
  8. {
  9. x=(4*h-f)/2;//计算鸡的数量
  10. y=(f-2*h)/2;//计算兔的数量
  11. printf("鸡有%d 兔有%d\n",x,y);
  12. }
  13. else
  14. printf("输入错误!\n");
  15. }

4、问题分析:习惯了数学表达忘记了打*

                                

(6)3.3.3 确定坐标的算法描述

1、问题的简单描述:以为^2可以表示平方,可以利用if函数变得更简单。

2、实验代码:

  1. #include<stdio.h>
  2. #include<math.h>
  3. main()
  4. {
  5. int h=10;
  6. float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,d1,d2,d3,d4;//各圆心坐标
  7. printf("请输入一个点(x,y):");
  8. scanf("%f,%f",&x,&y);
  9. d1=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1)); //到各圆心的距离
  10. d2=sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2));
  11. d3=sqrt((x-x3)*(x-x3)+(y-y3)*(y-y3));
  12. d4=sqrt((x-x4)*(x-x4)+(y-y4)*(y-y4));
  13. if(d1>1&&d2>1&&d3>1&&d4>1)
  14. h=0;
  15. printf("该塔的高度为%d",h);
  16. }

3、问题分析:pow(x,y)函数表示x的y次方

更简单的方法:

  1. #include<stdio.h>
  2. int main()
  3. {
  4. float x,y;
  5. printf("请输入一个点(x,y):");
  6. scanf("%f,%f",&x,&y);
  7. if(x<0)
  8. x=-x;
  9. if(y<0)
  10. y=-y;
  11. if(((x-2)*(x-2)+(y-2)*(y-2))<1)
  12. printf("10");
  13. else
  14. printf("0");
  15. }

三、实验小结

  巩固了流程图的画法和markdown的用法,if函数的使用更加熟练了,学习了pow(x,y)函数表示x的y次方等新的知识,还从其他同学的讲解中学习了不同的代码表示。但自己还是不够细致经常犯一些小错误比如少了*。

        

    回到顶部

C语言设计实验报告(二)的更多相关文章

  1. c语言设计实验报告

    试验项目:1.字符与ASCLL码 2.运算符与表达式的运用 3.顺序结构应用程序 4.数学函数的算法描述 5.鸡兔同笼的算法描述 6.确定坐标的算法描述 姓名:熊承启 实验地点:514实验室 1.字符 ...

  2. 20145221 《Java程序设计》实验报告二:Java面向对象程序设计

    20145221 <Java程序设计>实验报告二:Java面向对象程序设计 实验要求 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...

  3. Java实验报告二:Java面向对象程序设计

    Java实验报告二:Java面向对象程序设计                                                                               ...

  4. 20145203盖泽双:Java实验报告二

    Java实验报告二:Java面向对象程序设计 实验要求: 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验内容 ...

  5. 20155219实验四 Android开发基础设计实验报告

    20155219实验四 Android开发基础设计实验报告 实验内容 安装Andriod Studio并配置软件 使用Andriod Studio软件实现Hello World!+学号的小程序 实验步 ...

  6. 20155227 《Java程序设计》实验四 Android开发基础设计实验报告

    20155227 <Java程序设计>实验四 Android开发基础设计实验报告 任务一 Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二 ...

  7. Android开发设计 实验报告

    20162315 Android开发设计 实验报告 实验内容 1.安装 Android Stuidio,完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学 ...

  8. 20145219 《Java程序设计》实验四 Android开发基础设计实验报告

    20145219 <Java程序设计>实验四 Android开发基础设计实验报告 实验内容 安装Andriod Studio并配置软件 使用Andriod Studio软件实现Hello ...

  9. 第四周总结&实验报告二

    第四周总结&实验报告二 课程总结 这周我们学习了string类,以及很多string类的很多操作方法,同时string也是一个对象,在用到它时我们首字母需要大写,这周我们还加深了对函数构造的理 ...

随机推荐

  1. Mac配置hosts文件

    说明:工作里面有时候会遇到内网办公的环境,需要对使用的IP和地址进行配置到hosts文件内,所以记录一下: 1,Windows配置hosts Windows里面直接打开文件夹,可进行找到system/ ...

  2. 使用spring连接mysql数据库出错

    最近在学习spring框架,但是在学到JdbcTemplate时连接数据库一直报错,百度谷歌各种查找都能没有解决问题,简直要癫狂,报错信息如下: org.springframework.jdbc.Ca ...

  3. 通过String的不变性案例分析Java变量的可变性

    阅读本文之前,请先看以下几个问题: 1.String变量是什么不变?final修饰变量时的不变性指的又是什么不变,是引用?还是内存地址?还是值? 2.java对象进行重赋值或者改变属性时在内存中是如何 ...

  4. Git应用详解第十讲:Git子库:submodule与subtree.md

    前言 前情提要:Git应用详解第九讲:Git cherry-pick与Git rebase 一个中大型项目往往会依赖几个模块,git提供了子库的概念.可以将这些子模块存放在不同的仓库中,通过submo ...

  5. 5. git 过滤,让某文件夹里无法提交新添加的文件

    . gitignore  向此文件里添加文件路径就行了.如( web/core/ ) 此时git status将看不到添加的文件或文件夹了

  6. 图解Knative核心组件Serving基础设计

    最近闲下来,打算把Knative的核心组件Serving给学习下,会继续采用k8s源码学习的方式,管中窥豹以小击大,学习serving的主要目标: 可观测性基础设施.自动伸缩.流量管理等核心组件的设计 ...

  7. Python爬虫---爬取腾讯动漫全站漫画

    目录 操作环境 网页分析 明确目标 提取漫画地址 提取漫画章节地址 提取漫画图片 编写代码 导入需要的模块 获取漫画地址 提取漫画的内容页 提取章节名 获取漫画源网页代码 下载漫画图片 下载结果 完整 ...

  8. js中string转map的方法

    例如: var r = "{'msg':'你好'}" ; var map = eval("("+r+")"); //r为String类型的数 ...

  9. Linux-监控与安全运维之zabbix

    zabbix: Zabbix是一个开源分布式监控平台,包含诸多监控功能,用于构建一个符合企业级的监控解决方案.软件由开源社区提供开发和维护,遵循GPL协议,可以自由传播和使用,但开发团队提供收费的技术 ...

  10. 来自BAT大厂前端工程师的自白-怎么才能学好前端

    如果说理解学好web前端是先能找到一份工作,那么你应该这样做: 1.制定好一下系统的web前端学习规划,每天定量,学完什么知识点就掌握,能自己应用,而不是能看懂,写不出来东西. 2.不要自己一个人闷头 ...