zoukankan      html  css  js  c++  java
  • C博客作业01--分支、顺序结构

    0.展示PTA总分

    1.本章学习总结

    1.1学习内容总结

    • 第一章:了解C语言的产生和应用领域,学习了C语言的主要“单词”。
        标识符:由字母、数字和下划线组成,其中第一个字符必须是字母或者下划线。
        常量:有整型常量123,实型常量12.34,字符常量'a',字符串常量"Hello World!"等。
        运算符:有+(加)、-(减)、*(乘)、/(除)、%(求余)、>(大于)、**>=(大于等于)**、**==(等于)**、**=(赋值)**等。
        分隔符:有;、[、]、(、)和#等。
    
    • 第二章:
    学习了解C语言中的数据类型,包括int(整型),char(字符型),float(单精度浮点型),double(双精度浮点型)。
    学习了数据格式化输出函数printf(),数据格式化输入函数scanf(),字符输出函数putchar(),字符输入函数getchar()。
    
    • 第三章:学习如何运用if语句和switch语句来解决各种问题。
    • 小知识点
    1. 单行注释://注释内容;多行注释:/* 注释内容 */。
    2. 基本数据类型占用空间:char(1个字节),int(4个字节),float(4个字节),double(8个字节)。
    3. 表达式count++的值为count原来的值,表达式count--的值为count后来的值。
    4. %d输出10进制整数;%md输出m位,不足左补空格,其他正常输出;%c输出字符串;%f输出实数。
    5. 优先级:赋值运算符<关系运算符<算数运算符。

    1.if语句的使用

    • 语法:
    if(表达式) 
     {
    语句1
    }  
    else  
    {
    语句2;
    }
    
    • 注意:
      if语句表达式可以接收所有的数据类型。
      if语句后面不能加分号。
      else子句是if语句的一部分,必须与if配对使用,不能单独使用。
      else与最靠近它的、没有与别的else匹配过的if相匹配。

    2.switch语句的使用

    • 语法:
    switch(表达式)
    {
                 case '值1'://若值1==表达式的值,执行语句1
                          语句1;break;//阻止当前程序的执行
                 case '值2':
                          语句2;break;
                 case '值3':
                          语句3;break;
                 default://若表达式的值不满足case的任何一种情况,则执行default下的语句
    }
    
    • 注意:
      case后面注意有一个空格。
      case后面的常量表达式不能相同。
      break语句只能用于循环语句和switch语句中,不能单独使用。

    3.for语句的使用

    • 语法:
    for(表达式1;表达式2;表达式3)
    {
           循环体语句;
    }
    
    • 说明:
      表达式1对循环变量赋初值,若前面有赋初值,这里可不填。
      表达式2作为循环的条件,若省略则会成为死循环。
      表达式3设置循环的步长,改变循环变量的值。
    • 注意:
      若循环体语句由多条语句组成,必须用大括号括起来。
      必须用两个分号分隔三个表达式,但for后面无分号。

    1.2本章学习体会

    • C语言是我们学习计算机的基础课程。在学习过程中,我发现自身存在许多不足,基础较为薄弱。自己预习的时候已经对教材内容有了大概了解,课堂上也了解比较清晰,但是一到实验却不知道如何操作。主要的问题还是眼高手低,刷题太少,导致自己对语法的应用不熟练。再有是做题不严谨,写的代码也不是很规范,应该自己学会进行测试,自己制造数据,并学会自己寻找错误。
    • 代码量为497行。

    2.PTA实验作业

    2.1 7-12 判断一个三位数是否为水仙花数

    2.1.1数据处理

    • 数据表达:仅需定义一个整型变量N。
    • 数据处理:
      表达式:N>=100&&N<=999,Npow(N%10,3)+pow((N/10)%10,3)+pow(N/100,3)
      流程结构:输入一个整数N,若N满足表达式N>=100&&N<=999则进入if语句,否则直接输出"Invalid Value!"当N再满足表达式N
      pow(N%10,3)+pow((N/10)%10,3)+pow(N/100,3)输出"Yes"否则进入其else子句,输出"No"。

    2.2.2代码截图

    2.1.3本题可扩展功能

    • 本题可扩展为输出100到999之间的水仙花数及个数

    2.1.4PTA提交列表及说明

    • 把if()后面的分号去掉。
    • N==pow(N%10,3)+pow((N/10)%10,3)+pow(N/100,3)漏了一个等于号。
    • N==pow(N%10,3)+pow((N/10)%10,3)+pow(N/100,3)中第三个pow()里把%改为/。

    2.2 7-2 求幂级数展开的部分和

    2.2.1数据处理;

    • 数据表达:定义一个变量i,给它赋值1,变量n作为循环次数,i,n都是整型变量。浮点型变量:item表示某一项的值;x表示输入的实数;number作为分子;product作为分母;sum表示累加起来的项。
    • 数据处理:
      表达式:item>= 0.00001,number = number * x,product = product * i,i++,sum = sum + item,item=number/product。
      流程结构:输入一个实数x,当item>= 0.00001时,进入while循环,当item< 0.00001时,跳出循环,累加各项,输出sum的值。

    2.2.2代码截图

    2.2.3本题可扩展功能

    • 使用for语句循环及if语句

    2.2.4PTA提交列表及说明

    • 表达式item>=0.00001漏了一个0
    • 错误给item赋值为0,后改为1
    • 将item的类型改为double
    • 在item类型前面加上long

    2.3 7-3 输出三角形面积和周长

    2.2.1数据处理

    • 数据表达:定义四个整型变量a,b,c,s,分别是三角形的三条边及周长的一半,浮点型变量area,perimeter,分别是面积和周长。
    • 数据处理:
      表达式:s=(a+b+c)1.0/2,area=sqrt(s(s-a)(s-b)(s-c)),perimeter=a+b+c,(a+b>c)&&(a+c>b)&&(b+c>a)
      流程结构:输入三个整数a,b,c,如果满足表达式(a+b>c)&&(a+c>b)&&(b+c>a)则输出面积和周长,否则输出"These sides do not correspond to a valid triangle"。

    2.2.2代码截图

    2.2.3本题可扩展功能

    • 本题可扩展为在三条边能构成三角形的条件下,能构成何种三角形。若三条边满足表达式(a2+b2=c2||a2+c2=b2||c2+b2=a^2),则三条边能构成直角三角形;若三条边满足表达式(ab||ac||b==c),则三条边能构成等边三角形;若以上都不满足则为锐角三角形。

    2.2.4PTA提交列表及说明

    • s=(a+b+c)1.0/2忘记了1.0/2。
    • 把(a+b>c)||(a+c>b)||(b+c>a)改成(a+b>c)&&(a+c>b)&&(b+c>a)。
    • printf("area = %.2f; perimeter = %.2f",area,perimeter)中间漏了分号。

    3.阅读代码


    • 代码功能:用公式(y-y0)=-ax2计算第一条抛物线在building2的y,用公式(y-y0)=-b(x-x0)2计算第二条抛物线在building2的y,最后判断y>=h2是否成立。
    • 代码优点:
      使用eps控制迭代精度,以免double类型不精确,不能和0直接比较。
      使用多个if语句和while语句,逻辑清晰,层次分明。
      使用了const ,便于进行类型检查,消除了一些隐患。
      代码写得很规范,没有明显的安全问题。
  • 相关阅读:
    转载:Android SQLite数据库版本升级原理解析
    Android可移动的Button
    Android详细目录结构
    自动化测试(二)
    不使用if else
    C# 如何实现自己的FormEditor XML Protocol
    C#中的析构函数,GC和IDisposable的用法
    Java中生成和解析JSON
    GCMS笔记
    Android ConstraintLayout的使用(二)
  • 原文地址:https://www.cnblogs.com/4-Real/p/11625148.html
Copyright © 2011-2022 走看看