这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx
这个作业要求在哪里:https://edu.cnblogs.com/campus/fzu/gjyycx/homework/15587
学号:102500301
姓名:沙圣茗
1)定义一个二维数组和指向该数组的指针,分别以数组下标和指针的形式引用数组各个元素进行赋值与输出。

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) 一个整型变量
- b) 一个指向整型的指针
- c) 一个指向整型的指针的指针
- d) 一个长度为10的整型数组
- e) 一个指向包含10个整型数据的数组的指针
5)给定一个二维数组,使用指针把数组中的数字复制到另一个数组中相同的位置。

6)请编写一个函数,接受一个字符串指针作为参数,并返回该字符串的长度,不包括字符串结尾的空字符。

7)输出以下内容,并解释每一个输出内容的含义。
int a[3][4] = {0};
printf("%d\n",sizeof(a)); // 二维数组a占用48字节
printf("%d\n",sizeof(a[0][0])); //二维数组的一个元素a[0][0]占用4字节
printf("%d\n",sizeof(a[0])); //二维数组的一行元素,即一维数组占用16字节
printf("%d\n",sizeof(a[0]+1)); //指向a[0][1]的指针占用8字节
printf("%d\n",sizeof(*(a[0]+1))); //a[0][1]占用4字节
printf("%d\n",sizeof(a+1)); //指向a[1]的指针占用8字节
printf("%d\n",sizeof(*(a+1))); //二维数组的第二行占用16字节
printf("%d\n",sizeof(&a[0]+1)); //指向a[1]的指针占用8字节
printf("%d\n",sizeof(*(&a[0]+1))); //a[1]占用16字节
printf("%d\n",sizeof(*a)); //a[0]占用16字节
printf("%d\n",sizeof(a[3])); //a[3]占用16字节

8)键盘输入一个长度为len(1 <= len < 30)的字符串,再输入一个正整数 m(1 <= m <= len),将此字符串中从第 m 个字符开始的剩余全部字符复制成为另一个字符串,并将这个新字符串输出。要求用指针处理字符串。

总结反思
区分了二维数组值与指针的不同表示方法,练习了数组与字符串在函数中如何使用
浙公网安备 33010602011771号