C语言博客作业03--函数

0.展示PTA总分(0----2)

1.本章学习总结(2分)

1.1 学习内容总结

  • 函数的定义

    • 函数定义的一般形式为:

函数类型 函数名(形式参数表) ##函数首部

{

函数实现过程 ##函数体

}

  • 函数是一段可以重复使用的代码,用来独立地完成某个功能,它可以接收用户传递的数据,也可以不接收。

  • 接收用户数据的函数在定义时要指明参数,不接收用户数据的不需要指明,根据这一点可以将函数分为有参函数和无参函数。

  • 将代码段封装成函数的过程叫做函数定义。

  • 函数的分类

    • 接受类型

      • 有参函数——如果函数需要接收用户传递的数据,那么定义时就要带上参数。

      • 无参函数——如果函数不接收用户传递的数据,那么定义时可以不带参数。

    • 返回类型

      • 有返回结果的函数——需要返回一个特点的值。

      • 不返回结果的函数——有的函数不需要返回值,或者返回值类型不确定(很少见),那么可以用 void 表示。void是C语言中的一个关键字,表示“空类型”或“无类型”,绝大部分情况下也就意味着没有 return 语句。

  • 函数的结构

    • 函数的首部

函数首部由函数类型、函数名和形式参数表组成,位于函数定义的第一行。函数首部中,函数名是函数整体的称谓,需用一个合法的标识符表示。

函数类型指函数结果返回的类型,一般与return语句中表达式的类型一致。

  • 函数体

函数体体现函数的实现过程,由一对大括号内的若干条语句组成,用以计算,或完成特定工作,并用return语句返回运算的结果。

  • 函数的调用

    • 函数调用过程

任何C程序执行,首先从主函数main ()开始,如果遇到某个函数调用,主函数被暂停执行,转而执行相应的函数,该函数执行完后将返回主函数,然后再从原先暂停的位置继续执行。

  • 函数调用的形式

函数调用的一般形式为:函数名(实际参数表)

实际参数(简称实参)可以是常量、变量和表达式。

  • 参数传递

函数定义时,位于其首部的参数被称为形参。主调函数的参数被称为实参。形参除了能接受实参的值外,使用方法与普通变量类似。形参和实参必须一一对应,两者数量相同,类型尽量一致。程序运行遇到函数调用时,实传参的值依次传给形参,这就是参数传递。

  • 函数结果返回

函数结果返回的形式为return 表达式;

先求解表达式的值,再返回其值。一般情况下表达式的类型与函数类型应一致,如果两者不一致,以函数类型为准。return语句的作用有两个:一是结束函数的运行;二是带着运算结果(表达式的值)返回主调函数。

  • 变量类型

    • 局部变量

定义在函数内部的变量称为局部变量(Local Variable),它的作用域仅限于函数内部, 离开该函数后就是无效的,再使用就会报错。

  • 全局变量

在所有函数外部定义的变量称为全局变量(Global Variable),它的作用域默认是整个程序,也就是所有的源文件,包括 .c 和 .h 文件。

  • 静态局部变量

    • 静态局部变量在函数内定义,但不象自动变量那样,当调用时就存在,退出函数时就消失。静态局部变量始终存在着,也就是说它的生存期为整个源程序。

    • 静态局部变量的生存期虽然为整个源程序,但是其作用域仍与自动变量相同,即只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。

    • 对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值。而对自动变量不赋初值,则其值是不定的。

  • 函数使用注意点

C语言不允许函数嵌套定义;也就是说,不能在一个函数中定义另外一个函数,必须在所有函数之外定义另外一个函数。main() 也是一个函数定义,也不能在 main() 函数内部定义新函数。

1.2 本章学习体会及代码量学习体会

1.2.1 学习体会

经过对本章知识的学习,我发现函数是C语言基础语法中很关键的语法之一,它能够使代码更加便捷且具有更好的可读性。在程序中,一个函数就是一个业务逻辑块,是面向过程,单元模块的最小单元,而且在函数的执行过程中,形参,实参如何交换数据,如何将数据传递出去,如何设计一个合理的函数,不单单是解决一个功能,还要看是不是能够复用,避免重复造轮子。所以如果前期没打好基础很难深入往前走。这是个人的一点学习心得,希望能更好的运用到学习中去。C语言是一门很有用的、对于我们的就业很实际的语言,学习好C语言是一项必须而实际的任务。我们必须要好好掌握。

1.2.2 代码累计

本次综合作业代码量:300

2.综合作业(8分)

题目:小学生口算表达式自动生成系统

本次作业的函数关系图

3.函数功能及全局变量介绍

3.1.全局变量

全局变量:整型变量k

作用:在主函数的输入中用于保存用户所选择的年级,在doExercise(int n)函数中用于输出正确率输出语句中的年级题型类别,在该程序中将其设为全局变量,是为了保证其在主函数和doExercise(int n)中都能够被成功调用。

3.2.ListMenu()函数

函数功能:输出年级选择的菜单栏目。

函数思路:使用分层的连续printf语句输出菜单栏。

3.3.doExercise(int)函数

函数功能:输入用户想要作答的题目数量并输出用户的答题正确率。

函数思路:先输入题目数量,结合test(n)函数对统计作答正确的题目数量变量score的值进行递增或不变,最后结合正确率计算表达式计算出正确率conter的值,并连并年级题型类别输出。

3.4.test(int)函数

函数功能:根据用户在main()函数中输入的年级类别来随机产生对应的题型。

函数思路:先根据用户输入的年级类别将该函数分为3个不太区域,接着在每个区域中使用随机数选择不同题型,在题型编辑中结合随机数和随机运算符,组成对应题型。

4.运行结果截图,测试用例。

一年级

二年级

三年级

5. 调试碰到问题及解决办法

1.问题:在主函数中定义的变量k在doExercise(int n)函数的输出语句中无法调用。

解决办法:将k设为全局变量。

2.问题:在test(n)题型产生函数中的一年级题型中连加/减题目中忽略了连减结果为负数的问题。

解决办法:利用if-else语句将连减结果为负数时的表达式进行转变。

6.大作业总结

本次大作业结合了开学到本章节所学习的所有内容,且考验了作答者的逻辑思维能力。程序使用了基础语法的结合和关联,使各部分知识都能够得到巧妙的应用。语法总结实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际实验操作才能完成。所以我们要有效地利用课下语法总结实验的机会,充分掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基矗。

posted @ 2019-11-03 20:33  BaiYi#  阅读(287)  评论(2编辑  收藏  举报