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

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx

这个作业要求在哪里: https://edu.cnblogs.com/campus/fzu/gjyycx/homework/15587

学号:<052301346>

姓名:<郑积超>


作业内容

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

image

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

image

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

image

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

a)int a 定义一个整型变量a

b)int *a 定义一个指向整型的指针变量a

c)int **a 定义一个指向指针的指针变量a

d)int a[10] 定义一个包含10个整型元素的数组a

e)int (*a)[10] 定义一个指向包含10个整型元素的数组的指针a

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

image

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

image

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

image

  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)));
    含义: 指针解引用后元素的大小

  6. printf("%d\n",sizeof(a+1));
    含义: 指针的大小

  7. printf("%d\n",sizeof(*(a+1)));
    含义: 第二行的大小

  8. printf("%d\n",sizeof(&a[0]+1));
    含义: 指针的大小

  9. printf("%d\n",sizeof(*(&a[0]+1)));
    含义: 第二行的大小

  10. printf("%d\n",sizeof(*a));
    含义: 第一行的大小

  11. printf("%d\n",sizeof(a[3]));
    含义: 第四行的大小

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

image


总结与思考

通过本次作业,我深入理解了C语言中指针与数组的密切关系,特别是在字符串处理和内存操作方面的应用。在实现过程中,我体会到指针算术的巧妙之处——通过简单的地址加减就能实现元素的快速定位,同时也认识到必须谨慎处理边界条件和空字符终止,避免内存越界和未定义行为。

posted @ 2025-11-28 11:26  052301346郑积超  阅读(0)  评论(0)    收藏  举报