zoukankan      html  css  js  c++  java
  • C语言博客作业03--函数

    0.展示PTA总分

    1.本章学习总结

    1.1 学习内容总结
    1.函数是C语言程序的基本组成单元;充分发挥函数功能,可以使程序容易编写、阅读、调试和修改。
    2.函数是一个完成特定工作的独立程序模块,包括库函数和自定义函数两种。例:scanf()、printf()等为库函数,由C语言系统提供定义,编程时只要直接调用即可;而一些由用户自己定义,属于自定义函数。
    3.函数最常见的用途:实现一个计算,并可以得到一个明确的计算结果。
    4.函数定义的一般形式:
    函数类型 函数名(形式参数表)/函数首部/
    {
    函数实现过程 /函数体/
    }
    (1)函数首部:由函数类型、函数名和形式参数表组成,位于函数定义的第一行;在函数首部中,函数名是函数整体的称谓。函数类型指函数结果返回的类型,一般与return语句中表达式的类型。形参表的格式:类型1 形参1,类型2 形参2,...,类型n 形参n。函数的形参的数量可一个,可多个,也可无。函数首部后面不能加分号,它和函数体一起构成完整的函数定义。
    (2)函数体:由一对大括号内的若干条语句组成,用以计算,或完成特定的工作,并用return语句返回运算的结果,体现函数的实现过程。
    5.函数的调用:
    (1)函数调用过程:任何C语言执行,首先从主函数main()开始,如果遇到某个函数调用,主函数被暂停执行,转而执行相应的函数,该函数执行完后将返回主函数继续执行,例课本5-1:main()函数运行到:volume=cylinder(radius,height);时,调用cylinder()函数,暂停main()函数。通常把调用其他函数的函数称为主调函数,如main(),被调用函数称为被调函数如cylinder()。
    (2)函数的一般调用形式:函数名(实际参数表)。实际参数可以是常量、变量和表达式。
    (3)参数传递:程序运行遇到函数调用时,实参的值依次传给形参。
    (4)函数结果返回:形式:return 表达式; return语句作用有两个:一是结束函数的运行;二是带着运算结果(表达式的值)返回主调函数,但return语句只能返回一个值。
    (5)函数原型声明:函数要先定义后调用。如果自定义函数被放在主调函数的后面,就需要在函数调用前,加上函数原型声明。函数声明的目的主要是说明函数的类型和参数的结果,以保证程序编译时能判断对该函数的调用是否正确。函数声明的格式:函数类型 函数名(函数表);
    5.函数的写法顺序:函数声明->函数调用->函数定义。
    6.void类型的函数不直接返回一个值,它的作用通常以屏幕输出等方式体现。在不返回结果的函数定义中,void不能省略,否则,函数类型会被默认定义为int。
    7.局部变量:定义在函数内部的变量,一般定义在函数或复合语句的开始处。有效作用范围局限于所在的函数内部;使用局部变量可以避免各个函数之间的变量相互干扰。
    8.全局变量:定义在函数外而不属于任何函数的变量,只要在函数外部即可,一般把全局变量定义在程序的最前面。作用范围是从定义开始到程序所在文件的结束,它对作用范围内所有函数都起作用。当函数局部变量与复合语句的局部变量同名时,以复合语句为准。
    9.自动变量定义形式:auto 类型名 变量表: 例:auto int x,y; 自动变量如果没有赋初值,其存储单元中将是随机值。
    10.静态变量定义形式:static 类型名 变量表 。如果定义时没有赋初值,系统将自动赋0;静态变量赋初值只在函数第一次调用时起作用。
    1.2 本章学习体会及代码量学习体会
    1.2.1 学习体会
    理论基础勉强还可以看,实际操作水平太差,仍需刷pta巩固基础。
    1.2.2 代码累计
    本次综合作业代码量:
    455

    2.综合作业

    2.本次作业的函数关系图

    3.函数功能及全局变量介绍
    +函数功能:
    1.一至三年级的算法的菜单声明:

    2.一至三年级的算法:

    +全局变量:yournumber(用户输入的答案)、answer(标准答案)。

    4.运行结果截图,测试用例。
    一年级:
    1.整十数加一位数的加法:

    2.整十数减整十数的减法:

    3.两位数减整十数的减法:

    4.10以内三个数连加:

    5.100以内连加连减混合运算:

    二年级:
    1.1-9以内的表内乘除法:

    2.整十数加整十数的加法(进位的):

    3.尾数是0三位数加法(和在一千以内的):

    4.整百数加减法(和超过一千的,退位的):

    5.10以内除法加法混合运算:

    6.有余数的除法:

    三年级:
    1.三位数加三位数的加法(含连续进位的):

    2.一位数乘一位、二位、三位数:

    3.整十数乘整十数:

    4.一位数的四则运算:

    5.两位数除以一位数(有余数):

    6.万以内的加减法:

    5. 调试碰到问题及解决办法
    1.碰到的问题:在定义随机的运算符时出现对某个字母重复定义的情况,如:在四则运算时需要各种不同的运算符同时出现,然后,这个在四则运算中定义的字母,在同一年级的其他地方也定义了该字母;
    解决办法:在每一个switch-case语句中定义的随机运算符的表示字母改成不同;
    2.碰到的问题:某一些值的运算结果错误,特别是在四则运算部分会出现这种情况;
    解决办法:认真人肉查找发现,有些的运算顺序发生调换,将其换回来即可;
    3.碰到的问题:对于除法有余数的问题,无法表示出余数;
    解决办法:目前没有,只能在程序中添加一条提示,声明除法有余数的情况只保留整数位,余数不考虑,有个想法就是在输出整数部分后,再输出余数部分;

    6.大作业总结
    1。对于所有较多代码的程序,需要先有一个清晰的构思,然后再试着把图画出来,然后程序的框架就照着所画的图开始构建,当然,在这过程中会发现,图的内容不够详细,就需要用把自己的思路再次捋一遍,写下来,然后再继续写代码;
    2.写完代码,感觉总是不够人性化,想要改得完美一些,还是能力不够,对C的理解不够,对于有些东西的返回主函数的理解不够,出现无法返回主函数或者返回了主函数,无法运行的情况;
    3.仍需加强基础知识,这个大作业的代码可以再优化,但是能力不够,哎,本来想着,将所有的运算符都弄成随机的,然后带入运算,尝试了一下,感觉还不如调用函数进行加减乘除来得简便,然后再在一些需要随机运算符的地方使用随机数来表示随机运算符;
    4.总体难度不是很高,其实只要把一年级的算法框架弄清楚了,后面的基本就在这个框架上进行一点改动即可。

  • 相关阅读:
    默认组件加载类
    加密工具类
    客户端安全传输密码至服务端的实现改进
    开发Angular库的简单指导(译)
    Windows中搭建Redis集群
    Mybatis中SqlMapper配置的扩展与应用(3)
    Mybatis中SqlMapper配置的扩展与应用(2)
    Mybatis中SqlMapper配置的扩展与应用(1)
    优化与扩展Mybatis的SqlMapper解析
    使用XSD校验Mybatis的SqlMapper配置文件(2)
  • 原文地址:https://www.cnblogs.com/linwei18159070920/p/11774194.html
Copyright © 2011-2022 走看看