327lwt

导航

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

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx
这个作业的要求在:https://edu.cnblogs.com/campus/fzu/gjyycx/homework/15587
姓名:李文涛
学号:102500327
(1)定义一个二维数组和指向该数组的指针,分别以数组下标和指针的形式引用数组各个元素进行赋值与输出。
IMG_20251125_184351
IMG_20251125_141802
(2)构造螺旋方阵。对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。
屏幕截图(137)
3)7门课程的成绩分别存放在score[n][1]、score[n][2]、...、score[n][7]中,第0列用来存放总成绩。请编写一个函数实现计算成绩表score中每一个学生7门课程的总成绩,并将总成绩存放在该学生的第0列中。请在main函数中构造数据测试你写的函数。
屏幕截图(138)
4)将以下定义的含义写出来。 a)int a; b)int a; c)int **a; d)int a[10]; e)int (a)[10];
IMG_20251125_143408
(5)给定一个二维数组,使用指针把数组中的数字复制到另一个数组中相同的位置。
IMG_20251125_144427
(6)请编写一个函数,接受一个字符串指针作为参数,并返回该字符串的长度,不包括字符串结尾的空字符。
IMG_20251125_145303
(7)输出以下内容,并解释每一个输出内容的含义。
屏幕截图(136)

  1. sizeof(a)
    a 是3行4列的二维数组,总字节数= 3×4×sizeof(int) = 12×4 = 48。
  2. sizeof(a[0][0])
    a[0][0] 是数组的单个 int 元素,占4字节 → 4。
  3. sizeof(a[0])
    a[0] 是二维数组的第1行(长度为4的 int 数组),字节数= 4×sizeof(int) = 16 → 16。
  4. sizeof(a[0] + 1)
    a[0] 是数组名,做运算时退化为指向 a[0][0] 的指针( int* 类型), a[0]+1 仍是 int* 指针,64位系统指针占8字节 → 8。
  5. sizeof((a[0] + 1))
    a[0]+1 是 int
    指针,解引用后是 int 类型元素,占4字节 → 4。
  6. sizeof(a + 1)
    a 是二维数组名,做运算时退化为指向第1行的指针( int(*)[4] 类型), a+1 仍是该类型指针,64位系统指针占8字节 → 8。
  7. sizeof(*(a + 1))
    a+1 是指向第2行的指针,解引用后是第2行的数组(长度为4的 int 数组),字节数= 4×sizeof(int) = 16 → 16。
  8. sizeof(&a[0] + 1)
    &a[0] 是指向第1行的指针( int(*)[4] 类型), &a[0]+1 仍是该类型指针,占8字节 → 8。
  9. sizeof(*(&a[0] + 1))
    &a[0]+1 是指向第2行的指针,解引用后是第2行的数组,字节数= 16 → 16。
  10. sizeof(*a)
    a 退化为指向第1行的指针,解引用后是第1行的数组,字节数= 16 → 16。
  11. sizeof(a[3])
    a[3] 是“第4行”,本质是长度为4的 int 数组,字节数= 16 → 16。
    (8)键盘输入一个长度为len(1 <= len < 30)的字符串,再输入一个正整数 m(1 <= m <= len),将此字符串中从第 m 个字符开始的剩余全部字符复制成为另一个字符串,并将这个新字符串输出。要求用指针处理字符串。
    IMG_20251125_191030
    总结:这两节课学习了指针的相关内容,要求我们熟练地在不同场景下运用指针。

posted on 2025-11-25 19:12  327lwt  阅读(7)  评论(0)    收藏  举报