高级语言程序设计课程第七次个人作业
这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx
这个作业要求在哪里:https://edu.cnblogs.com/campus/fzu/gjyycx/homework/15587
学号:102500330
姓名:黄明浩
(1)定义一个二维数组和指向该数组的指针,分别以数组下标和指针的形式引用数组各个元素进行赋值与输出。

定义parr为指向二维数组的指针,对其解引用得到对应元素
(2)构造螺旋方阵。对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。

(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];
a:定义整型变量a;b:定义整型指针a(未初始化很危险);c:定义二级指针a,指向一级指针的地址;d:定义整形数组a,共有十个元素;e:定义数组指针a,指针指向的数组有十个元素,元素类型为Int.
(5)给定一个二维数组,使用指针把数组中的数字复制到另一个数组中相同的位置。

使用指针实现指向位置的移动
(6)请编写一个函数,接受一个字符串指针作为参数,并返回该字符串的长度,不包括字符串结尾的空字符。

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

1.sizeof(数组名),代表整个数组的大小,int类型则为412=48
2.代表位于(0,0)的元素的大小,4个字节,输出4
3.第一行的总大小,44=16
4.a[0]表示第一行这个一维数组的数组名,即a[0][0],+1代表a[0][1]的地址,在64位系统下地址为8个字节
5.同样为a[0][1],但解引用后表示该地址的元素,为4
6.第二行的地址,是地址在64位系统下就是8
7.对第二行的元素解引用后计算大小,第二行4个元素,44=16
8.取出第一行的地址后+1,为第二行的地址,是地址64位系统下就是8
9.取出第一行的地址+1,第二行地址,再解引用表示第二行的元素,44=16
10.a表示首元素(第一行)的地址,对第一行解引用取出第一行的元素,44=16
11.并不会越界表示a的第四行,只是进行第n行元素大小的计算,同样,44=16
(8)键盘输入一个长度为len(1 <= len < 30)的字符串,再输入一个正整数 m(1 <= m <= len),将此字符串中从第 m 个字符开始的剩余全部字符复制成为另一个字符串,并将这个新字符串输出。要求用指针处理字符串。

总结:指针是个很神奇的东西,可以把地址和元素建立联系,需要多加熟悉。
浙公网安备 33010602011771号