高级语言程序设计课程第六次个人作业

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx
这个作业要求在哪里:https://edu.cnblogs.com/campus/fzu/gjyycx/homework/14585
学号:102500309
姓名:郑睿杰

1.目的 (1)设计一个按值传递和按地址传递呈现不同效果的程序。
思路 定义两个函数,一个用值反转,一个用地址反转。
image

2.目的 编写函数fun(int m, int k, int xx[]),将小于整数m的非素数存入xx数组中,个数由k返回。
思路 用flag来判定是不是非素数,然后用
k储存数值,a【】储存,然后输出,其实非素数可以开平方检查,但是如果数字比较小,不开平方运行效率比较高
image
错误缘由 主函数忘记再次声明函数,不是定义函数里面声明就完了,激活的时候直接写数组名词就行,不用标长度

3.目的 编写函数,将长度为n的字符串从第m个字符开始的全部字符复制成另一个字符串。
思路 运用指针,用source表示原来的字符串,用指针指向目标开头,用for循环平行复制,最后输出
image

4.目的 编写函数用冒泡法将数组按从小到大的顺序排列。
思路 利用双重循环,排好前一个后,排剩余数组
image
错误缘由 复制粘贴的时候printf后面多加了一个&没删除导致输出地址

5.目的 将n个整数按输入顺序的逆序排列,要求应用带指针参数的函数实现。
思路 应用自增自减实现指针的移动
image
错误缘由 定义指针函数时忘记加取地址符

6.目的 写一个函数打印arr数组的内容,不使用数组下标,使用指针。
思路 定义开始位,开始打印
image

7.目的 编写程序,分别找出多个n×m数组的最大值、最小值,并输出两个值的下标。
思路 应用循环比较在最大值最小值时分别并锁定下标(下标是原数组的),然后输出最大值最小值
image

8.目的 判断上三角矩阵。上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。本题要求编写程序,判断一个给定的方阵是否上三角矩阵。
思路 应用双重循环判断对角线以下的元素是不是0
image

9.目的 给定一个按升序排列的二维数组,编写一个函数来判断目标值是否存在于数组中。数组是一个m x n的矩阵,可使用算法快速查询。
思路 先查找目标行,再对目标行进行折半查找
image

10.目的 编写一个函数,输入一个整数,将其分解为两个质数之和。提示:函数可以声明为int split(int n, int *a, int *b)。n作为传入参数,a和b作为传出参数。若无法分解返回0,可以分解则返回1。
思路 先定义一个素数判断函数,再定义定义一个拆分函数,分解所有因子,逐一判断是不是素数
image

11.目的 编写函数void shift(char* s, int n),请原地将字符串s循环左移n次。例如,字符串“hello”左移3次得到“lohel”。
思路 详见注释
image

12.目的 写一个程序读入一个二维整型数组并判断它是否为魔方矩阵。在魔方阵中,所有的行、列和对角线都拥有相同的和
思路 先检查行和列,再检查对角线
image

13.目的 利用指针,判断两个字符串是否相等。忽略大小写。例如,输入 “hello”和”hELlO”,认为它们是相等的。返回值:1表示相等。0表示不同。
思路 用指针过数组,运用tolower进行简便转换,再进行比较
image

14.目的 定义一个一维数组和二维数组,按顺序打印出数组中每个元素的地址。
思路 循环打印
image

15目的 设计一个分别使用数组名和指针引用数组元素的程序。
思路 用while的指针循环,但是出了一点小问题
image
错误缘由 整形数组后面没有0,而字符型有0,所以字符型可以用while结束,而int型只能用地址结束

总结与反思
对于指针的各种运算和算法结构比较陌生,及语法使用会出现一些小问题,需要通过题目强化。

posted @ 2025-11-23 17:15  ZRJ12321  阅读(4)  评论(0)    收藏  举报