高级语言程序设计课程第七次个人作业
这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx
这个作业要求在哪里: https://edu.cnblogs.com/campus/fzu/gjyycx/homework/15587
学号:102500333
姓名:陈俊荣
1.定义一个二维数组和指向该数组的指针,分别以数组下标和指针的形式引用数组各个元素进行赋值与输出。
说明:二维数组定义:int arr[2][3]; 定义了一个 2 行 3 列的二维数组。
数组指针定义:int (p)[3] = arr; 定义了一个指向包含 3 个 int 元素的一维数组的指针(数组指针),并指向二维数组arr的首行。
下标形式:通过arr[i][j]直接访问二维数组的元素,进行赋值和输出。
指针形式:通过(*(p + i) + j)访问元素


2.构造螺旋方阵。对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。
说明:边界控制:定义top(上边界)、bottom(下边界)、left(左边界)、right(右边界),初始时分别指向方阵的四个边缘。
方向填充:上边界:从左到右填充,完成后上边界向下收缩(top++)。
右边界:从上到下填充,完成后右边界向左收缩(right--)。
下边界:从右到左填充,完成后下边界向上收缩(bottom--)。
左边界:从下到上填充,完成后左边界向右收缩(left++)。



3.7门课程的成绩分别存放在score[n][1]、score[n][2]、...、score[n][7]中,第0列用来存放总成绩。请编写一个函数实现计算成绩表score中每一个学生7门课程的总成绩,并将总成绩存放在该学生的第0列中。请在main函数中构造数据测试你写的函数。



4.将以下定义的含义写出来 a)int a; b)int a; c)int **a; d)int a[10]; e)int (a)[10];

5.给定一个二维数组,使用指针把数组中的数字复制到另一个数组中相同的位置。
说明:通过行指针遍历每一行,再通过列指针访问每行的元素。


6.请编写一个函数,接受一个字符串指针作为参数,并返回该字符串的长度,不包括字符串结尾的空字符。
说明:接收const char *str(字符串指针),const保证函数不修改原字符串;用while循环遍历字符串,判断当前指针指向的字符是否为'\0';

7.输出以下内容,并解释每一个输出内容的含义。

解释:sizeof(a):二维数组int[3][4]的总字节数
sizeof(a[0][0]):元素int的字节数
sizeof(a[0]):一维数组int[4]的字节数
sizeof(a[0]+1):指针int的字节数
sizeof((a[0]+1)):元素int的字节数
sizeof(a+1):数组指针int()[4]的字节数
sizeof((a+1)):一维数组int[4]的字节数
sizeof(&a[0]+1):数组指针int()[4]的字节数
sizeof((&a[0]+1)):一维数组int[4]的字节数
sizeof(*a):一维数组int[4]的字节数
sizeof(a[3]):一维数组int[4]的字节数
8.键盘输入一个长度为len(1 <= len < 30)的字符串,再输入一个正整数 m(1 <= m <= len),将此字符串中从第 m 个字符开始的剩余全部字符复制成为另一个字符串,并将这个新字符串输出。要求用指针处理字符串。
说明:通过strlen获取原字符串长度;用while循环遍历原字符串从第m个字符开始的所有字符,逐字符赋值给新字符串指针p_new。

总结:本次作业都是关于指针的问题,例如指针指向数组、二级指针等,还有一道比较有趣的螺旋矩阵,逻辑思路具有挑战性

浙公网安备 33010602011771号