高级语言程序设计课程第六次个人作业
这个作业属于课程:https://edu.cnblogs.com/campus/fzu/gjyycx
这个作业要求在:https://edu.cnblogs.com/campus/fzu/gjyycx/homework/14585
学号:102500333
姓名:陈俊荣
1、设计一个按值传递和按地址传递呈现不同效果的程序。

说明:值传递函数内修改不影响原变量,地址传递函数内修改会影响原变量
2、编写函数fun(int m, int *k, int xx[]),将小于整数m的非素数存入xx数组中,个数由k返回。
说明:先写一个判断一个数是否为素数的函数

3、编写函数,将长度为n的字符串从第m个字符开始的全部字符复制成另一个字符串。

4、编写函数用冒泡法将数组按从小到大的顺序排列。

5、将n个整数按输入顺序的逆序排列,要求应用带指针参数的函数实现。
说明:定义一个函数,接收指向数组的指针和数组长度作为参数,通过指针操作交换数组元素实现逆序。

6、写一个函数打印arr数组的内容,不使用数组下标,使用指针。
说明:通过sizeof计算数组长度,再用for循环输出数组

7、编写程序,分别找出多个n×m数组的最大值、最小值,并输出两个值的下标。
说明:函数findmaxmin先初始化最值为数组首个元素,再通过双重循环遍历数组,逐个比较更新最值及其下标。
主函数main首先输入要处理的数组数量arr,然后通过循环逐个处理每个数组。



8、判断上三角矩阵。上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。本题要求编写程序,判断一个给定的方阵是否上三角矩阵。
说明:先读取矩阵的阶数n,再通过两层循环读取矩阵的所有元素,存储到二维数组m中。遍历主对角线下方(行号i大于列号j)的元素,若存在非零元素,则标记is_upper为 0(不是上三角矩阵),并提前终止循环。

9、给定一个按升序排列二维数组,编写一个函数来判断目标值是否存在于数组中。数组是一个m x n的矩阵,可使用算法快速查询。

10、编写一个函数,输入一个整数,将其分解为两个质数之和。提示:函数可以声明为int split(int n, int *a, int b)。n作为传入参数,a和b作为传出参数。若无法分解返回0,可以分解则返回1。
说明:isPrime函数用于判断一个数是否为质数。若数小于等于 1,直接返回 0;否则从 2 遍历到其平方根,若存在能整除它的数,则不是质数,返回 0,否则返回 1。
split函数遍历从 2 到n/2的数,判断当前数和n - 当前数是否均为质数。若是,则通过指针a和b传出这两个质数,返回 1;若遍历结束后未找到,返回 0。

11、编写函数void shift(char s, int n),请原地将字符串s循环左移n次。例如,字符串“hello”左移3次得到“lohel”。
说明:reverse函数用于反转字符串中从start到end的字符段,通过交换首尾字符的方式实现。
shift函数计算字符串长度len,采用三步反转法:反转前n个字符;反转剩余的len - n个字符;反转整个字符串,最终实现循环左移n次的效果。

12、写一个程序读入一个二维整型数组并判断它是否为魔方矩阵。在魔方阵中,所有的行、列和对角线都拥有相同的和。
说明:主函数输入矩阵阶数和元素,mofang函数用for循环判断每行、每列、主/副对角线的和是否相等



13、利用指针,判断两个字符串是否相等。忽略大小写。例如,输入 “hello”和”hELlO”,认为它们是相等的。返回值:1表示相等。0表示不同)。
说明:通过指针遍历两个字符串,使用tolower函数将字符转为小写后逐一比较。


14、定义一个一维数组和二维数组,按顺序打印出数组中每个元素的地址。


15、设计一个分别使用数组名和指针引用数组元素的程序。

总结:这次作业掌握了数组和指针的内容,在作业中存在一些问题,比如数组长度初始化、多函数关联、数组的指针传递等,在反复修改后得以解决,印象最深的是字符串循环左移的问题,十分考验逻辑思维,很有意思

浙公网安备 33010602011771号