• C博客作业01--分支、顺序结构


    1.展示PTA总分

    顺序结构

    分支结构

    2.本章学习总结

    2.1数据类型

    • 整型变量:int
    • 字符型变量:char
    • 浮点型型变量:单精度浮点型变量float,双精度浮点型变量double。
      注:对于目前基础编程的学习和练习,定义浮点型变量时由于无法准确估算出字符存储量,为避免发生错误而尽量使用double。

    2.2输入与输出函数

    • 首先需要一个编译预处理命令 #include<stdio.h> 来声明函数

    2.2.1输入:scanf与getchar()

    • scanf:输入数据时普通字符需要原样输入
      输入时应根据数据类型而在“ ”内进行数据类型控制
      int——%d
      float——%f
      double——%lf
      char——%c
    • getchar():只能从键盘中得到一个字符

    2.2.2输出:printf与putchar()

    • printf:输出数据时普通字符将原样输出
      不同类型数据也都需要不同的格式控制说明
    • putchar():只能输出一个字符

    2.3数学函数

    • 首先需要一个编译预处理命令 #include<math.h> 来声明函数

    • sqrt(x):平方根函数,用于计算x的开平方;

    • pow(x,n):幂函数,用于计算x的n次方;

    • exp(x):指数函数,用于计算e的x次方;

    • fabs(x):绝对值函数,用于得到|x|;

    • log(x):以e为底的对数函数;

    2.4分支结构

    2.4.1if--else类型

    可分为以下两种:

    • 第一种
      if(表达式1)
      {
      ......
      }
      else if(表达式2)
      {
      ......
      }
      else
      {
      ......
      }
      举例:c02-选择结构第5题

    • 第二种
      if()
      {
      ......
      }
      if()
      {
      ......
      }
      if()
      {
      ......
      }
      举例:c02-选择结构第9题

    2.4.2 switch语句

    switch (表达式)
    {
    case 常量表达式 :语句1;break;
    case 常量表达式 :语句2;break;
    case 常量表达式 :语句3;break;
    case 常量表达式 :语句4;break;
    default :语句5;

    }
    注意:break用于跳出switch语句,一般情况每个语句运行完都要加上break,若语句2执行后无break,则下列所有语句(3,4)都将运行。

    总结:switch多用于有限个判断的分支选择,if--else多用于范围性的条件判断。

    2.5实现目的的技巧

    2.5.1控制输出数字的小数位次

    %nf表示输出小数为n位
    如 printf(“%3f”,变量名);则输出数据小数点为3位;

    2.5.2break语句与continue语句

    break可用于跳出switch和for的循环;
    而continue只能跳过该语句后的部分循环体而再次进行循环;

    2.6本章学习体会

    通过近期的c语言基础学习,我渐渐发现了编程语言的有趣性和挑战性,它对解决问题的思维方式和寻找突破口的逻辑思维的锻炼强度很高,课本内的知识点固然重要,但知识总是死的,将其运用并且升级改造才是学习的正确方法,总之,这门学科是实践性很强的学科,只有通过自己在题目中摸索,分析,找错,总结,才有可能更上一层楼,我本人对其还是很感兴趣的,我愿意多与其“亲密接触”。
    代码量:844行(不包括课上互动,不包括平时自主实践等等,只含pta)

    3.PTA实验作业

    3.1 c02-选择结构7-3 输出三角形面积和周长

    3.1.1变量定义

    用整型变量定义三角形三边a,b,c。
    用浮点型变量定义三角形的面积area,周长perimeter,中间量s。

    3.1.2数据处理

    一个if--else结构,一个输入函数,两个输出函数。

    3.1.3代码截图

    3.1.4代码提交及其说明

    未将最后结果进行小数点控制导致错误。
    Q1:仔细一遍遍观察代码,发现是合理的,确不知道为什么结果错误。
    A1:就将其进行调试。
    Q2:调试过程中,中间变量的值都是正常的,结果为什么说答案出错。
    A2:发现最后结果的小数点控制出现问题。

    3.2 c02-选择结构 7-10 计算天数

    3.2.1变量定义

    定义年月日year,month,day为输入变量
    定义A存储闰年和非闰年的二月天数
    定义days为总天数

    3.2.2数据处理

    先判断是否为闰年从而确定二月天数
    再用else--if来进行分支选择

    3.2.3代码截图


    3.2.4代码提交及其说明


    Q1:代码量好多导致一些分支上的书写错误。
    A1:行行查错发现了许多语法错误,如:关系符号(==写成了=)错误,进行改正。
    Q2:再次提交后发现闰年部分测试点没过。
    A2:发现题意没有理解,即符合两种情况都属于闰年,而我却认为只要满足一项就可以,改正分支条件后正确。
    注:后来发现用switch语句可以使结果更简洁,程序运行效率更高,哭辽┭┮﹏┭┮
    提交正确后发现该题应用switch语句可以使结构更简单,代码量更少。

    3.3 test01--选择结构 7-1 任务06-01-07 简单计算器

    3.3.1变量定义

    两个整数value1,value2.
    字符型变量op,用于存储加减乘除号

    3.3.2数据处理

    运用switch语句对加减乘除号进行区分选择,再应用if--else语句进行除数为0的判断。

    3.3.3代码截图


    3.3.4代码提交及其说明

    Q1:部分结构错误。
    A1:switch语句中遗漏了break,导致结果错误,加上后提交正确

    4代码阅读

    4.1代码选择: ACM 题库题解大全> poj 3752 字母旋转游戏

    4.2代码要求:

    4.3代码截图


    4.3优点及其可学习之处

    4.3.1清楚字母之前的联系在于其ASCII码顺序相差1,善于发现逻辑关系

    4.3.2将while语句再嵌套一个while语句,实现双重条件判断循环

    注:有多个知识点未学,如定义变量的更多种类和符号导致某些地方无法理解。

  • 相关阅读:
    详解Windows注册表分析取证
    逻辑漏洞简单的分析
    文件解析漏洞汇总
    aspcms 这个靶场。。。
    WebBug靶场基础篇 — 03
    WebBug靶场基础篇 — 02
    WebBug靶场介绍篇 — 01
    漏洞挖掘中的常见的源码泄露
    PHP对象Object的概念
    从史上八大MySQL事故中学到的经验
  • 原文地址:https://www.cnblogs.com/243050cz/p/11632156.html
Copyright © 2020-2023  润新知