C 语言学习 第六次作业总结
本次作业,同学们开始学习函数。通过之前和同学们的沟通,似乎同学们在这里遇到的问题比较多。下面,我先帮同学们整理下函数的相关知识点。
什么是函数
首先,需要明确的是,什么是函数。所谓函数,也就是一段有名的代码段。大家可以考虑如下的函数:
void add(int a,int b){
int c = a + b;
}
在之前的学习中,大家当需要使用到两个数字相加这一功能,可能仅仅定义一个变量用于存储相加的值int c = a + b;
。
但是在使用中可能会发现,总是需要使用到两个数加和这一“算法”。那么,这一代码块如何能够复用呢。于是,便利用了函数。
但是,在上面的例子中虽然能够计算两个数的和,但是却无法知道它的结果。于是,就需要一个返回值(这仅仅是一种实现的手段)。
add
函数变成了下面的样子:
int add (int a,int b){
int c = a + b;
return c; // 最终简化为 return a + b;
}
这样,便能够将计算得到的值传递出来。
上面的例子虽然很简单,但是已经包含了一个函数的所有需要的元素:返回值
,函数名
,参数
,函数体
。
函数的范围
之前,有同学问我“老师,return语句是不是代表一个函数的结束”。这里要强调的是,并不是。
C 语言的函数体是被大括号包围的。从{
开始到}
结束,才是整个函数体的范围。return
语句仅仅是跳出函数,
后面的语句不再执行。但是不能因此就说return
语句就是函数的结束。
函数返回数组的问题
C 语言本身并不能返回数组。但是可以返回指针(这个概念在后面将会学习到)。通过指针,便能够实现目标需求。
函数传递参数的问题
C 语言是一种强类型的语言。所谓强类型,就是将某一个数据声明为什么类型,在整个生存周期,就是什么数据类型。
除非进行强制类型转换或者是在运行过程中存在隐式类型转换。依旧以上面的add
函数为例,传递入的两个参数都是int
类型,
则传递的参数,也应该尽量都是int
类型。否则可能会出现奇怪的错误。
函数的返回值的作用
虽然在上面的例子中,函数返回值的作用为返回传入的两个参数的加和。但是在实际的开发中,
更多情况下函数的返回值都是用于判断此函数的执行状态,或者是兼具执行状态的检查。另外,
当前写的 main
函数的返回值都习惯性的写为 return 0
。
实际上,在 GUI 以及一些其他的程序中,main
函数也会根据运行状态,提供不同的返回值。
虽然 main
函数不能被其他函数调用,但是这个值能够被操作系统捕获。操作系统根据此值,便能够确定程序的运行状态。
作业情况统计
作业抄袭情况
本次作业,看到至少3份作业,代码相同:
https://coding.net/u/gdcs16_410/p/chap5/git/blob/master/C6_2.cpp
https://coding.net/u/gdcs16_418/p/chap5/git/blob/master/C6-2.cpp
https://coding.net/u/gdcs16_419/p/chap6/git/blob/master/C6-2.cpp
C 语言学习 第六次作业总结的更多相关文章
- C语言程序设计第六次作业——循环结构(2)
C语言程序设计第六次作业--循环结构(2) 之前的博客园图片没处理好,对大家说一声抱歉.希望大家能够多多指出我的错误,我来认真修改 ^ - ^ !. (1)改错题 序列求和:输入一个正实数eps,计算 ...
- C语言学习 第七次作业总结
C语言学习 第七次作业总结 数组可以分为数组和多下标数组(在传统的国内C语言书本中,将其称为二/多维数组). 数组名称 在之前的课程中,大家应该都有印象,对于int a这样的定义,会为变量 a 声明一 ...
- Go语言学习笔记六: 循环语句
Go语言学习笔记六: 循环语句 今天学了一个格式化代码的命令:gofmt -w chapter6.go for循环 for循环有3种形式: for init; condition; increment ...
- C语言学习 第八次作业总结
本次作业其实没有新的内容,主要就是复习上一次的一维数组的相关内容.冯老师布置了5道题目,其中涉及到一些比较简单的排序或者是查找的方法.因为数据很少,所以直接使用for循环遍历就可以了. 关于本次作业, ...
- C 语言学习 第12次作业总结
作业总结 本次课堂的内容为字符串相关的几个函数还有结构体. 字符串相关函数 在此之前的课程中,输入主要都是使用scanf这个函数.而在这节课上,冯老师讲解了字符串获取函数gets.在不需要控制符的情况 ...
- C语言学习 第十一次作业总结
作业总结 两次的作业,都是和指针有关.从第一次的作业开始,我就多次让同学们思考这个问题:为什么要用指针,为什么在函数的形参中要使用指针.如果能够想明白这2个问题,那么同学们应该会指针的了解就差不多足够 ...
- C 语言学习 第三次作业总结
本次作业内容: For循环的使用 If判断语句的使用 常用数学运算表达式的使用 数学函数库中几个常见函数的使用及自我实现 将操作代码提交到coding 作业总结: For循环是C语言中一种基本的循环语 ...
- C语言学习第六章
今天开始尝试改变! 今天要学习函数,一个C语言中的重要组成部分. 首先先聊聊为什么要使用函数?随着学习的深入很多人会发现某段的代码重复使用的几率很大,而如果用一次写一次的话很明显的效率就会比较低,如果 ...
- C 语言学习 第五次作业总结
第五次作业,主要学习和复习的是几种循环结构的使用. 在前一次的课堂上,同学们已经学习了分支语句的使用.分支语句和循环语句配合使用,就可以写出更多的,逻辑功能丰富的代码了. 逻辑功能的丰富,也意味着学习 ...
随机推荐
- 实例讲解react+react-router+redux
前言 总括: 本文采用react+redux+react-router+less+es6+webpack,以实现一个简易备忘录(todolist)为例尽可能全面的讲述使用react全家桶实现一个完整应 ...
- Navisworks 提供了.NET, COM和NwCreate 三种API
Navisworks 提供了.NET, COM和NwCreate 三种API.而通常我们说Navisworks API其实指的只是COM或.NET,因为NwCreate的功能比较特殊.待我一一道来: ...
- tornado+sqlalchemy+celery,数据库连接消耗在哪里
随着公司业务的发展,网站的日活数也逐渐增多,以前只需要考虑将所需要的功能实现就行了,当日活越来越大的时候,就需要考虑对服务器的资源使用消耗情况有一个清楚的认知. 最近老是发现数据库的连接数如果 ...
- 数据库---实验四 oracle的安全性和完整性控制
实验内容: (一) 授权 . 以dba用户的身份登陆oracle,创建用户u1+学号后四位,u2+学号后四位. SQL> create user u1_3985 identified by &q ...
- 解决 Tomcat Server in Eclipse unable to start within 45 seconds 不能启动的问题
1.在 Eclipse 下方 Servers TAB页,双击 "Tomcat 7.0 at localhost": 2.在右上角处点开 Timeouts 的设定,修改Start( ...
- python之最强王者(7)——元组(tuple)
1.序列(sequence): 说明:在前面的字符串列表中其实我们已经用到了序列,之所以放到这篇来讲主要是为了承上启下,方便理解和记忆. python的数据访问模型:直接存取 ,序列 ,映射 对非容器 ...
- Eclipse 日期和时间格式自定义
点击下载Eclipse插件 org.eclipse.text_3.5.300.v20130515-1451.jar 覆盖下图所示的jar文件. /************************* ...
- 前端导出Excel兼容写法
今天整理出在Web前端导出Excel的写法,写了一个工具类,对各个浏览器进行了兼容. 首先,导出的数据来源可能有两种: 1. 页面的HTML内容(一般是table) 2. 纯数据 PS:不同的数据源, ...
- 大数据下BI产品如何发挥最大价值
看到这个题目,你是否总感觉云里雾里?你是否真正懂什么叫“大数据”?商业智能BI和大数据又有着什么千丝万缕的联系?为什么说商业智能BI能在大数据中发挥价值? 大数据,指的是所涉及的数据资料量规模巨大到无 ...
- js与native交互
js与native交互 UIWebView Native调用JS,使用stringByEvaluatingJavaScriptFromString来解释执行js脚本. //script即为要执行的js ...