首页 > 编程语言 >2023-2024-1 20231320 《计算机基础与程序设计》第八周学习总结

2023-2024-1 20231320 《计算机基础与程序设计》第八周学习总结

时间:2023-11-18 13:56:00浏览次数:29  
标签:20231320 函数 自定义 C语言 2024 传递 参数 2023 程序设计

2023-2024-1 20231320 《计算机基础与程序设计》第八周学习总结

作业信息

这个作业属于哪个课程 <班级的链接>(2023-2024-1 计算机基础与程序设计)
这个作业要求在哪里 <作业要求的链接>(2022-2023-1计算机基础与程序设计第八周作业)
这个作业的目标 <自学《计算机基础与程序设计》第9章并完成云班课作业 、自学《C语言程序设计》第7章并完成云课班作业>
作业正文 作业正文

教材学习内容总结

《计算机基础与程序设计》
本章首先介绍了关于对象,对象类,域,方法等定义。体现出一种归类的思想。而对问题的分解过程具有四个阶段:集体讨论(生成解决某个特定问题要用到的候选类列表),过滤(回顾集体讨论阶段确定的类,观察是否有可以合并的或者缺少的),场景(给每个类分配任务---责任,其中责任有知识和行为两种),责任算法(为责任编写算法)。翻译的过程需要用到编译器、解释器。程序设计语言的范型有:命令式范型(面向过程型,面向对象型),申明式范型。高级程序设计语言的功能性:布尔表达式、数据归类,输入输出结构等。面向对象语言的功能性:封装,类,继承,多态等。两者的区别在于面向过程的版本使子程序可以操作列表,而面向对象的版本通过封装实现对用户的隐藏。
《C语言程序设计》
本章主要讲了函数。函数有利于信息的隐藏。函数分为标准库函数,自定义函数,而我们主要研究的的是自定义函数。首先将函数名提前进行调用,函数原型中注意形参和实参,同时注意函数的封装和防御性程序设计。程序设计的原则有:规模小,功能单一,只有一个入口一个出口,清楚定义函数行为,在入口处对函数有效性进行检查,若有返回值则每个分支均需有返回值。还有递归的使用,变量的范围,,变量的生存周期(自动变量、静态变量、外部变量、寄存器变量)。而程序设计遵循从顶向下的顺序逐步求精。

教材学习中的问题和解决过程

问题1:在《计算机基础与程序设计》中对象、对象域、域等名词不了解
解决:我在网上询问了ChatGPT,了解到对象是具体的东西,对象域是一组相似的对象,而类则是定义了这组对象应该有的共同特征和行为的模板。
问题2:在自定义函数的调用方面还存在问题
解决:可以在编程中先写自定义函数,在写main函数,是自定义函数可以被直接调用

基于AI的学习

q
我最近在学习C语言中关于自定义函数的知识点,请你用苏格拉底的方式向我提问,一次一个问题,我回答后给出你的评价并询问下一问题
AI
当你在学习C语言中的自定义函数时,让我们从基础开始。首先,你能告诉我在C语言中,为什么我们需要使用自定义函数而不仅仅使用主函数(main function)中的代码吗?
q
使用自定义函数可以使代码更加简洁,避免不必要的重复,提高运算速度,便于之后使用
AI
很好的回答!确实,自定义函数有助于提高代码的模块化和可维护性。现在,让我们深入了解一下自定义函数的结构。在C语言中,一个基本的函数结构包括哪些要素?
q
输出值,输入值,函数头,函数主体
AI
你的回答很接近了!在C语言中,函数的基本结构包括函数头、函数名、返回类型、参数列表、函数体。下一步,我们来谈谈参数。在函数中,参数有哪些不同的类型,它们各自有什么特点?
q
有形参和实参,有整数型,浮点型,字符型
AI
你对参数有了很好的了解。确实,参数分为形参和实参,而且它们可以是整数型、浮点型、字符型等不同类型。接下来,我们来探讨一下函数的返回值。在C语言中,函数可以返回什么类型的值,而且返回值有什么作用呢?
q
可以将返回值返回到main函数中。类型有整数型、浮点型
AI
你理解得很正确!在C语言中,函数可以返回整数型、浮点型等不同类型的值,而返回值可以在调用函数的地方使用,例如可以将其传递给其他变量或在表达式中使用。下一个问题,让我们考虑函数的声明和定义。在C语言中,声明和定义函数有何区别?在C语言中,声明和定义函数有着明确的区别。声明用于向编译器提供关于函数名称、返回类型和参数类型的信息,而不提供函数的实际实现。定义则包括函数的实际实现,即函数的主体。声明通常在头文件中,而定义则在源文件中。

现在,让我们转向函数的参数传递方式。在C语言中,参数传递可以通过值传递和引用传递。你能详细说明这两种传递方式的区别以及它们各自的优缺点吗?

q
我不太清楚,你的答案呢?
AI
当然,让我为你解释一下。

值传递(Call by Value):

特点: 在值传递中,函数接收的是实际参数的值。在函数内部,对参数的任何修改都不会影响到实际参数。
优点: 简单,易于理解和实现。
缺点: 如果传递的数据量较大,可能会影响性能。因为会复制实际参数的值,占用额外的内存。
引用传递(Call by Reference):

特点: 在引用传递中,函数接收的是实际参数的地址(引用),这意味着在函数内部对参数的修改会影响到实际参数。
优点: 节省内存,能够有效地传递大量的数据。
缺点: 相对复杂,可能引入一些概念上的困惑。
在C语言中,实际上,C语言只支持值传递。但是通过指针,可以模拟引用传递的效果。通过传递指向变量的指针,函数可以修改指针所指向的变量的值。这就使得我们能够在函数内部实现对实际参数的修改。

需要注意的是,在实践中,根据情况选择合适的传递方式。如果需要修改实际参数的值,可以通过指针来模拟引用传递。
q
你觉得我掌握这个知识点了吗?
AI
你已经对函数的基本概念、结构,以及参数传递方式有了相当不错的了解。你知道函数包括函数头、函数名、返回类型、参数列表和函数体。你也了解了值传递和引用传递的区别,以及在C语言中如何通过指针来模拟引用传递。

如果你有进一步的问题或者想要深入某个方面的了解,随时告诉我,我会尽力提供帮助。同时,实践和编写代码是加深理解的好方法,所以如果有机会,尽量多写一些函数相关的代码吧!

上周错题改错

问题1:
What is the minimum number of nodes in a binary tree with 3 levels?
具有 3 个级别的二叉树中的最小节点数有7种

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 20/20 1/2 20/20 通过计算机概论的略读,对计算机有了一个更准确的初步了解
第二周 5/10 2/4 5/25 对计算机和编程有了基础的专业了解
第三周 5/10 1/4 7 /32 对C语言有了初步的了解,编程开始入门
第四周 50/50 2/4 7/38 学会使用编程工具,逻辑门,分支等重要编程基础
第五周 40/120 2/4 6/20 学会一些编程语言,对codeblocks的使用有了新的学习
第六周 400/520 1/5 8/28 学会了关于分支等的一些基础编程语言,同时也对计算机的自学有的更深的体会,能够自己解决部分不懂的问题
第七周 350/870 2/7 7/35 学会了关于自定义函数的使用,以及代码的编写
第八周 350/1220 1/8 8/41 学习了数组的概念,同时也了解到一些自己的不足如对Python不了解,无法快速完成云班课任务,本周还学习了多维数组的概念

标签:20231320,函数,自定义,C语言,2024,传递,参数,2023,程序设计
From: https://www.cnblogs.com/tautumut/p/17832394.html

相关文章

  • 【2023-11-10】童年素材
    20:00勤奋固然能够帮助我们走向成功,但它不是生命唯一的底色。                                                 ——阿尔弗雷德·舒茨孩子午睡了,熬了一个下午,就差一瓶......
  • 2023版 STM32实战1 LED灯驱动(电路与代码都讲解)
    电路图常规画法(带限流电阻计算公式)设LED电流为20mA(统一单位为0.02A)电压为3.3V限流电阻=(电源电压-负载正向工作电压)/工作电流限流电阻=(5V-3.3V)/0.02mA=1.7/V0.02A=85R省事画法(直接用IO输出)代码(直接拷贝使用)找对引脚!!!这是一个LED闪烁的demo为了新手方便我直接都写在了main.c......
  • 2023版 STM32实战1 LED灯驱动(电路与代码都讲解)
    电路图常规画法(带限流电阻计算公式) 设LED电流为20mA(统一单位为0.02A)电压为3.3V限流电阻=(电源电压-负载正向工作电压)/工作电流限流电阻=(5V-3.3V)/0.02mA=1.7/V0.02A=85R省事画法(直接用IO输出)  代码(直接拷贝使用)找对引脚!!!这是一个LED闪烁的demo为了新手方便我......
  • 2024年最佳系统设计学习书单
    0概述系统设计和软件设计是编码面试和软件开发者的两个重要技能。如果不了解系统设计,就无法创建新的软件,也会难以理解现有的软件和系统。这就是为什么大公司如Facebook,Amazon,Netflix,Google和Apple非常重视系统设计技能,并对候选人进行全面测试。如果你想学习系统设计......
  • 2023-2024 20231313《计算机基础与程序设计》第八周学习总结
    作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计)这个作业要求在哪里2023-2024-1计算机基础与程序设计第八周作业这个作业的目标功能设计与面向对象设计、面向对象设计过程、面向对象语言三要素、汇编、编译、解释、执行作业正文https://www.cnb......
  • 2023年11月17日总结
    更好地观看!总结今天是noip前的最后一次集训!哇酷哇酷!今天就主要是复习了,记录一下做的事情!好兴奋!早上打了昨天T4衍生出来的两个题目,非常好反悔贪心,是我的大脑旋转。准备复习一下扫描线和平衡树。哦对,我要先把前天vp的C题改了。哦对了今天发生了很有趣的事情。打乒乓球......
  • 20231117
    上午摆烂,下午试机,晚上郁郁。这一篇是我写的最长的鲜花(目前)了,下面一大段都是我emo的感言,您可以跳过。我都是考后写游记的,所以现在不会发,这篇只是把今天有些感触的事情写下来。考前莫名有一种无力感,做题效率会很低,上午的\(\mathcal{O}(m^{3}\logn)\)的矩阵快速幂还被卡常了,不......
  • 20231117打卡
    早上起床后,感觉有点疲劳,于是决定给自己放松的一天。下午,我和一些朋友一起去篮球场打篮球。打篮球不仅可以锻炼身体,还可以放松心情,释放压力。我们组织了几场友谊赛,不仅锻炼了身体,还增进了彼此之间的友谊。晚上回到宿舍后,我选择了玩一会儿游戏,选择的游戏是最近非常火爆的《原神》。......
  • NOIP2023 游记
    一个private但是public但是private的游记day0也不知道上学去干嘛,也不知道回家干嘛。睡觉。向某大佬询问复习什么,dalao告诉我OIwiki数学联通性网络流模拟退火2-SAT容斥。让我们来看看到时候会考多少。但是我的数学水平是exgcd都不会,所以我不复习数学了。哦好像得看看逆......
  • [20231115]如何快速获取AWR中涉及到的表.txt
    [20231115]如何快速获取AWR中涉及到的表.txt--//昨天看了链接:如何快速获取AWR中涉及到的表=>https://www.cnblogs.com/jyzhao/p/how-to-get-tables-in-awr.html--//作者介绍的方法是直接从awr报表抽取from后面的信息,grep写法还很少用.grep-o-i'\bFROM\s\+\(\w\+\)'awr.html......