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

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx
这个作业要求在哪里:https://edu.cnblogs.com/campus/fzu/gjyycx/homework/15587
学号:102500323
姓名:黄铭昊

一、定义一个二维数组和指向该数组的指针,分别以数组下标和指针的形式引用数组各个元素进行赋值与输出。

1程序

1结果

二、构造螺旋方阵。对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。

2程序1

2程序2

2结果

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

3程序

3结果

四、将以下定义的含义写出来。

1、int a:声明了一个整形变量a

2、int *a:声明了一个指向整型变量的指针变量a

3、**int a:声明了一个指向指向整型变量的指针变量的指针变量a

4、int a[10]:声明了一个有十个整形元素的数组a

5、int (*a)[10]:声明了一个有十个指向整型变量的指针类型元素的数组a

五、给定一个二维数组,使用指针把数组中的数字复制到另一个数组中相同的位置。

5程序

5结果

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

6程序

6结果

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

7结果

1、printf("%d\n",sizeof(a));:计算的是整个二维数组所占的总字节数

2、printf("%d\n",sizeof(a[0][0]));:计算的是二维数组中一个单个元素的字节数

3、printf("%d\n",sizeof(a[0]));:计算的是二维数组中一行所占的字节数

4、printf("%d\n",sizeof(a[0]+1));:这个表达式计算的是一个指针的大小

5、printf("%d\n",sizeof(*(a[0]+1)));:这个表达式计算的是指针 a[0] + 1 所指向的那个元素的大小

6、printf("%d\n",sizeof(a+1));:这个表达式计算的是一个指向一维数组的指针的大小

7、printf("%d\n",sizeof(*(a+1)));:这个表达式计算的是指针a + 1所指向的那一整行的大小

8、printf("%d\n",sizeof(&a[0]+1));:这个表达式计算的是一个指向一维数组的指针的大小

9、printf("%d\n",sizeof(*(&a[0]+1)));:计算的是指针&a[0]+1所指向的那一整行的大小

10、printf("%d\n",sizeof(*a));:这个表达式计算的是二维数组中第一行的大小

11、printf("%d\n",sizeof(a[3]));:这个表达式计算的是一个不存在的第四行的大小,但是sizeof不关心数组是否越界

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

8程序

8结果

思考与总结:本次作业围绕数组与指针的核心关系,通过赋值、螺旋方阵、字符串处理等实践,深化了对内存布局和指针操作的理解。

posted @ 2025-11-25 19:36  破碎的心~  阅读(6)  评论(0)    收藏  举报