学期2024-2025-1 学号20241416 《计算机基础与程序设计》第8周学习总结
作业信息
|这个作业属于哪个课程|https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP|
|这个作业要求在哪里|https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08|
|这个作业的目标|功能设计与面向对象设计,面向对象设计过程,面向对象语言三要素,汇编、编译、解释、执行|
|作业正文| https://www.cnblogs.com/rockytyh/p/18550657
教材学习内容总结
《计算机科学概论》第9章内容总结
面向对象设计(OOD):介绍了面向对象设计的基本思想,包括类和对象的概念。类是对象的蓝图,而对象是类的实例。面向对象设计强调数据(对象)和行为(方法)的封装。
面向对象语言的要素:讨论了面向对象语言的三个核心要素:封装、继承和多态。封装是指将数据和操作封装在类中,继承允许新类继承现有类的属性和方法,而多态则是指允许不同类的对象对同一消息做出不同的响应。
程序设计语言范型:介绍了不同的程序设计范型,包括命令式范型(如面向过程和面向对象)和声明式范型(如函数式和逻辑式)。每种范型都有其特定的编程风格和解决问题的方法。
编译器和解释器:解释了编译器和解释器的区别,编译器将高级语言代码转换成机器码,而解释器则直接执行高级语言代码或字节码。
数据类型和结构:讨论了数据类型的重要性,包括基本数据类型(如整数、实数、字符和布尔型)和复合数据类型(如字符串和数组)。同时,也介绍了强类型语言和弱类型语言在数据类型处理上的差异。
控制结构:介绍了控制结构的重要性,包括选择结构(如if-else语句)、循环结构(如while和for循环)和子程序(函数和过程)。
布尔表达式和逻辑编程:探讨了布尔表达式在编程中的作用,以及逻辑编程的基本概念,包括事实、规则和询问。
输入/输出结构:讨论了输入/输出结构在程序设计中的重要性,以及如何在程序中实现输入和输出。
高级程序设计语言的功能性:强调了高级语言在设计中提供的功能,如布尔表达式、数据类型和控制结构,以及它们如何简化程序设计并提高安全性。
《C语言程序设计》第7章内容总结
数组的基本概念
数组是一种数据结构,它可以存储相同类型的多个元素。例如,int arr[10]定义了一个可以存储10个整数的数组arr。数组的元素在内存中是连续存储的,这使得可以通过索引(下标)来高效地访问各个元素。索引从0开始,所以对于上述数组,arr[0]表示第一个元素,arr[9]表示第十个元素。
一维数组的定义和初始化
定义方式有多种,如在定义时指定大小并初始化部分元素,例如int a[5] = {1, 2},这样数组a的前两个元素被初始化为1和2,其余元素默认初始化为0。也可以在定义时不指定大小,让编译器根据初始化列表中的元素个数来确定数组大小,如int b[] = {3, 4, 5};此时数组b的大小为3。
二维数组的概念和操作
二维数组可以看作是一个表格,它有行和列。例如int matrix[3][4]定义了一个3行4列的二维数组。可以把二维数组看作是由多个一维数组组成的数组。
访问二维数组元素也使用索引,例如matrix[1][2]表示访问第二行(索引从0开始,所以是1)第三列(索引是2)的元素。
字符数组的定义和初始化
字符数组用于存储字符序列,例如char str[10]定义了一个可以存储10个字符的字符数组。可以在定义时初始化,如char greet[] = {'H', 'e', 'l', 'l', 'o', '\0'},这里\0是字符串结束标志,它表示一个字符串的结束。
教材学习中的问题和解决过程
问题1:如何将数组与函数联系在一起?
答案1:数组作为函数参数传递
传递方式:在 C 语言中,数组名作为函数参数时,实际上传递的是数组的首地址。这意味着函数可以通过这个地址访问和修改数组中的元素。例如,定义一个函数来打印整型数组的元素:
注意事项:在函数参数列表中,int arr[]和int *arr是等价的声明方式,都表示接收一个指向整型的指针。这种方式使得函数能够高效地访问数组,因为不需要复制整个数组的内容到函数中。但是,这也意味着在函数内部对数组元素的修改会影响到原始数组。
函数返回数组(不常见且有一定限制)
直接返回数组是不允许的:在 C 语言中,函数不能直接返回一个数组。因为数组名是一个指针常量,它代表数组的首地址,函数结束后,其内部的局部数组的存储空间会被释放,返回的数组地址可能会指向无效的内存区域。
返回指针指向数组:可以返回一个指针,这个指针指向一个在函数外部定义的数组或者是通过动态内存分配(如malloc函数)在堆上创建的数组。例如:
注意内存管理:当返回一个指针指向动态分配的数组时,需要在合适的时候(通常是在不再使用数组后)使用free函数来释放内存,以避免内存泄漏。
利用数组和函数实现特定功能
排序功能:可以编写一个函数来对数组进行排序。例如,实现简单的冒泡排序函数:
查找功能:编写一个函数在数组中查找特定元素。例如,线性查找函数:
问题2:c语言中只有整型数字可以求余吗?
答案2:在C语言中,求余操作是通过 % 运算符来实现的。这个运算符不仅可以用于整型数字,还可以用于浮点型数字。不过,需要注意的是,当涉及到浮点数时,求余的结果可能与整数求余的结果有所不同,因为浮点数的表示和运算涉及到精度问题。
具体来说:
整型求余:对于整型数(如 int、long 等),% 运算符会返回两数相除后的余数。这是最常见的用法,也是最直观的。
浮点型求余:对于浮点型数(如 float、double 等),% 运算符的行为取决于具体的实现,但通常它也会返回两数相除后的余数。不过,由于浮点数的精度限制,结果可能不如整型数那样精确。
混合类型求余:当操作数中一个是整型,另一个是浮点型时,整型数可能会被提升为浮点型,然后进行求余运算。