zoukankan      html  css  js  c++  java
  • 函数

    这个作业属于哪个班级 C语言--网络2011/2012
    这个作业的地址 C博客作业03--函数
    这个作业的目标 学习如何设计函数、C语言基本数据类型
    姓名 喻文康

    0. 展示PTA总分

    1. 本章学习总结

    1.1 函数定义,声明,调用

    关于函数的这三点,一般注意以下几点:

    1. 如果函数没有声明, 应该在调用前定义:


    1. 可以在函数头声明:


    1. 但一般应在文件头声明:


    1. 函数可互调用, 但不能嵌套:


    1. 关于无参数、无返回值的函数:
      如果函数没有参数, 最好是 fun(void), 不过 fun() 也行;
      如果函数没有返回值, 要注明返回类型是 void;
      在 C 语言中调用无参函数也要带括号.

    1. 声明函数时可以省略形参(只有在声明的时候可以):
      int sum(int, int, int); /* 省略形式参数 */

    1.2 全局、局部变量、静态局部变量

    全局变量:
    定义在main函数的外部
    局部变量:
    定义在main函数内,在C语言中,局部变量分配在栈中,另外在进入每个小的分支时,如进入for循环,
    如果在for循环内部定义了与循环外同名的变量,那么循环内变量优先,且不会改变循环外同名变量的值。
    静态变量:
    又分为静态全局变量和静态局部变量,静态局部变量定义时前面加static关键字。


    总结:

    1、静态局部变量和普通局部变量不同。静态局部变量也是定义在函数内部的,静态局部变量定义时前面要加static关键字来标识,静态局部变量所在的函数在多调用多次时,
    只有第一次才经历变量定义和初始化,以后多次在调用时不再定义和初始化,而是维持之前上一次调用时执行后这个变量的值。本次接着来使用。
    2、静态局部变量在第一次函数被调用时创造并初始化,但在函数退出时它不死亡,而是保持其值等待函数下一次被调用。下次调用时不再重新创造和初始化该变量,
    而是直接用上一次留下的值为基础来进行操作。
    3、静态局部变量的这种特性,和全局变量非常类似。它们的相同点是都创造和初始化一次,以后调用时值保持上次的不变。不同点在于作用域不同

    拓展:

    在自学变量时有额外了解到一些知识,也把它记录了下来
    局部变量和全局变量的对比:
    1、定义同时没有初始化,则局部变量的值是随机的,而全局变量的值是默认为0.
    2、使用范围上:全局变量具有文件作用域,而局部变量只有代码块作用域。
    3、生命周期上:全局变量是在程序开始运行之前的初始化阶段就诞生,到整个程序结束退出的时候才死亡;而局部变量在进入局部变量所在的代码块时诞生,在该代码块退出的时候死亡。
    4、变量分配位置:全局变量分配在数据段上,而局部变量分配在栈上。

    1.3 C语言数据类型及注意点

    数据类型 说明 字节 应用 示例
    char 字符型 1 用于存储单个字符 char sex ='M’;
    int 整型 2 用于存储整数 int height = 18;
    float 单精度浮点型 4 用于存储小数 float price = 11.1
    double 双精度浮点型 8 用于存储位数更多的小数 double pi = 3.1415926

    格式化输出

    格式符 说明 举例
    %d 带符号十进制整数 int a=10; printf("%d", a);输出结果为10
    %c 单个字符 char x='a' ; printf("%c",x);输出结果为a
    %s 字符串 printf("%s"∵"慕课网");输出结果为慕课网
    %f 6位小数 float a=1.23;printf("%f",a);输出结果为1.230000

    备注:
    浮点型数据在存储时都会造成数据精度的丢失,如给某个浮点型变量赋初值3.0,则在存储该变量时,可能会变成2.999995,即小数部分数据丢失
    字符型数据在输入时是在缓冲区内读取的,且只能读取单个字符,字符还包括‘ ’换行符

    1.4 C运算符

    名称 运算符号 举例
    加法运算符 + 2+10=12
    减法运算符 - 10-3=7
    乘法运算符 * 2*10=20
    除法运算符 / 30/10=3
    求余运算符〈模运算符) % 23%7=2
    自增运算符 ++ int a = 1; a++
    自减运算符 -- int a = 1; a--

    另外注意:取余运算中,该运算只适合用两个整数进行取余运算,如:10%3 = 1;而10.0%3则是错误的;
    运算后的符号取决于被模数的符号,如(-10)%3 = -1;而10%(-3) = 1。

    运算表达式 说明 运算规则
    ++a a自增1后,再取值 先运算,再取值
    --a a自减1后,再取值 先运算,再取值
    a++ a取值后,a的值再自增1 先取值,再运算
    a-- a取值后,a的值再自减1 先取值,再运算

    比较运算符

    符号 意义 举例 结果
    > 大于 10>5 1
    >= 大于等于 10>=10 1
    < 小于 10<5 0
    <= 小于等于 10<=10 1
    == 等于 10==5 0
    != 不等于 10!=5 1

    逻辑运算符

    符号 意义 举例 结果
    && 逻辑与 0&&1 0
    逻辑或
    ! 逻辑非 !o 1

    测试错题领悟:

    在执行完或语句的前部分后,若结果为真,则程序将不再运行后面的逻辑语句
    对于C语言中运算符的优先级,大致如下图

    1.5 学习体会

    在最近的C语言学习中,渐渐发现C语言与数学之间的紧密连接,变成能力不仅取决于语言的运用是否熟练,还取决于数学的运用和自身的数学思维
    另外,在最近的pta刷题过程中,渐渐感觉到一个程序不仅仅需要能够完成所需的功能,程序运行的效率也是一个不可忽视的点。

    2. 综合作业:小学生口算表达式自动生成系统

    2.1 模块流程图

    一年级模块流程图

    二年级模块流程图

    三年级模块流程图
    大致同二年级,但有相应的细节变化,如出题难度的变化,会有三个操作数的题目,会有连乘或者连除

    2.2 函数功能及全局变量介绍

    函数及其功能

    2.2.1 全局变量

    2.2.2 菜单相关函数




    2.2.3 出题相关函数





    2.3 测试结果截图,测试用例

    两题,一题对一题错

    2.4 大作业中编程技巧总结

    在生成随机数时,使用时间作rand函数的种子,会使每次生成不同的随机数,但如果连续两次调用rand函数的话,生成的随机数还是会一样
    个人解决办法是定义一个变量,让rand函数的参每次加上这个变量,加完一次后改变这个变量的值,让下次加的数不一样,就实现了能够连续调用的问题了
    学会建文件和分装函数,能够使main函数更为简洁

  • 相关阅读:
    常用模块
    递归函数
    内置函数与匿名函数
    Mac控制台相关操作
    Maven相关知识记录
    @Import底层实现原理
    spring循环依赖
    springcloud注册中心对比
    分布式事务
    Drools使用注意事项
  • 原文地址:https://www.cnblogs.com/ywk2002/p/14045541.html
Copyright © 2011-2022 走看看