2024-2025-1 20241329 《计算机基础与程序设计》第六周学习总结
作业信息
作业归属课程:https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP
作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK06
作业目标:Polya如何解决问题、简单类型与组合类型、复合数据结构、查找与排序算法、算法复杂度、递归、代码安全
作业正文:https://www.cnblogs.com/incamellia/p/18523768
教材学习内容总结
《计算机科学概论(第七版)》第7章
-
Polya在《如何解决问题》一书中提出了四个阶段的策略:理解问题、设计方案、执行方案和回顾。这些策略同样适用于编写计算机程序的问题解决。其中理解问题至关重要,没有对问题的深刻理解,就无法编写出有效的计算机解决方案。
-
数据类型分为简单类型和复合类型。简单类型是基本的数据单位,如整数、浮点数等。复合类型是通过组合基础类型来表达更复杂的数据结构,例如数组、记录和对象。
-
复合数据结构通过组合基础类型来表达更复杂的数据结构。常见的复合数据结构包括数组、链表、栈、队列、树和图。复合数据结构的引入极大地扩展了数据结构的应用领域,为解决复杂问题提供了新的思路和工具。
-
查找算法包括顺序查找和二分查找等。顺序查找是依次遍历列表中每一个元素,查看是否为所需值;二分查找则是在已排序的数组中进行查找,效率更高。排序算法包括选择排序、冒泡排序、插入排序、希尔排序、归并排序、快速排序和堆排序等。
-
算法复杂度分为时间复杂度和空间复杂度。时间复杂度表示算法运行所需的基本操作数量随数据规模的增长趋势。常见的复杂度类别包括O(1)、O(n)、O(log n)、O(n^2)等。算法分析的目的在于改进算法,使其所需运行时间更少,占用内存空间更小。
-
递归算法是子程序名称出现在子程序本身中的算法,如阶乘和二分搜索。递归问题可以通过递归算法来解决,递归算法需要明确递归终止条件和递归步骤。
-
代码安全涉及防止程序中的错误和矛盾,确保程序的正确性和安全性。在编写程序时,需要进行错误检查和修正,以确保程序的正确执行。
《C语言程序设计》第5章
-
算法的概念及其描述方法:算法是解题的步骤或过程,是为解决特定问题而采取的一组规则或一个过程。算法具有明确性、有限性、有效性等特性;可以使用自然语言、流程图、伪代码等多种方式进行描述。
-
关系运算符与关系表达式:关系运算符用于比较两个值之间的关系,包括大于(>)、小于(<)、等于(==)、不等于(!=)、大于等于(>=)、小于等于(<=)等。关系表达式由关系运算符连接两个操作数构成,结果为真(1)或假(0)。
-
用于单分支控制的条件语句:if语句用于在满足某个条件时执行特定的代码块。如果条件为真,则执行if后的代码块;否则,跳过该代码块。
-
用于双分支控制的条件语句:if-else语句用于在满足某个条件时执行一个代码块,否则执行另一个代码块。这种结构允许程序根据条件选择执行不同的代码路径。
-
条件运算符和条件表达式:条件运算符是C语言中唯一的一个三元运算符,用于简化if-else语句,使得代码更加简洁。条件表达式的一般形式为:表达式1?表达式2:表达式3
-
用于多分支控制的条件语句:else if 允许程序根据多个条件进行选择。当第一个条件为真时,执行相应的代码块,否则继续检查下一个条件。
-
用于多路选择的switch语句:switch语句是一种多分支选择结构,允许程序根据一个表达式的值来执行多个不同的代码块之一。每个case后面跟一个常量值,当表达式的值与某个case的常量值相匹配时,执行该case后的代码块,遇到break语句则跳出switch语句。
-
逻辑运算符和逻辑表达式:逻辑运算符包括逻辑与(&&)、逻辑或(||)和逻辑非(!)。逻辑表达式由逻辑运算符连接多个关系表达式或逻辑表达式构成,用于表示更复杂的条件判断。
教材学习中的问题和解决过程
- 问题:在C语言中,return语句的具体位置和作用?
答:return语句在C语言中的主要作用是结束函数的执行并返回控制权,同时可以选择性地返回一个值。它的位置灵活,可以在函数体的任何位置使用,并且可以有多个return语句,但每次调用函数时只有一个会被执行。
1.return语句用于终止当前函数的执行,并将控制权返回给调用该函数的地方。这意味着一旦执行到return语句,函数内的剩余代码将不再执行。例如,在主函数中使用return 0;表示程序成功结束,并将控制权还给操作系统。
2.return语句可以返回一个值给调用者。这个值可以是常量、变量或表达式,但必须与函数声明的返回类型一致。例如,如果函数声明为int类型,那么return语句后面应该跟一个整数值。如果没有返回值,可以使用return;,但这仅适用于void类型的函数。
3.return语句可以在函数体的任何位置使用。这意味着可以根据条件判断在不同的代码路径中返回不同的值或提前结束函数。例如,可以在if语句中使用return来提前结束函数的执行。
4.函数中可以有多个return语句,但每次调用函数时只有一个return语句会被执行。这意味着如果函数中有多个return语句,只有第一个被执行的return语句会返回值并结束函数。
5.对于void类型的函数,return语句可以不带任何值,或者直接使用return;来结束函数的执行。这种情况下,函数不会返回任何值。(在某些情况下,返回局部变量的地址可能会导致问题,因为局部变量在函数结束时会被销毁。因此,返回指向局部变量的指针是不安全的。)
6.根据C语言标准,main()函数必须使用return语句来返回一个整数值,通常为0表示程序成功结束。