-
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)中都能够被成功调用。
函数功能:输出年级选择的菜单栏目。
函数思路:使用分层的连续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语言开发程序的能力,为今后的继续学习打下一个良好的基矗。
-
相关阅读:
KlayGE的PNTriangle例子支持Instanced Tessellation了
KlayGE中的延迟渲染(一)
KlayGE中的延迟渲染(五)完结篇
KlayGE中的延迟渲染(二)
KlayGE中的延迟渲染(三)
KlayGE中的延迟渲染(四)
几大移动平台的纯C/C++开发调查
用2个float模拟double
开放的3D扫描人头数据!
IP 点分十进制表示法
-
原文地址:https://www.cnblogs.com/yushanbaiyi/p/11788944.html
Copyright © 2020-2023
润新知