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

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx
这个作业要求在哪里:https://edu.cnblogs.com/campus/fzu/gjyycx/homework/15587
学号:102300120
姓名:覃俊源
一.代码
(1)定义一个二维数组和指向该数组的指针,分别以数组下标和指针的形式引用数组各个元素进行赋值与输出。
image
说明:定义二维数组arr和对应指针p,通过 “数组下标” 和 “指针解引用” 两种方式实现元素的输入与输出,验证了二维数组的两种访问逻辑等价性。

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

输入格式:

输入在一行中给出一个正整数N(<10)。

输出格式:

输出N×N的螺旋方阵。每行N个数字,每个数字占3位。

输入样例:

5

输出样例:

1 2 3 4 5

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9
image
说明:通过 “边界收缩法”,按 “右→下→左→上” 的顺时针顺序填充数字,每填充完一条边就收缩对应边界,直到填充完N×N个数字。

(3)7门课程的成绩分别存放在score[n][1]、score[n][2]、...、score[n][7]中,第0列用来存放总成绩。请编写一个函数实现计算成绩表score中每一个学生7门课程的总成绩,并将总成绩存放在该学生的第0列中。请在main函数中构造数据测试你写的函数。
image
说明:calcTotal函数接收成绩表数组,遍历每个学生,累加其 7 门课程成绩并存储到第 0 列;main 函数构造测试数据并调用函数,最终输出包含总成绩的表格。

(4)将以下定义的含义写出来。

     a)int a;  b)int *a;  c)int **a;  d)int a[10];  e)int (*a)[10];

a)int a;:定义整型变量 a(存储 int 类型数据)。
b)int a;:定义指向 int 类型的指针 a(存储 int 变量的地址)。
c)int **a;:定义指向 int 指针的指针 a(二级指针,存储 int 指针的地址)。
d)int a[10];:定义含 10 个 int 元素的一维数组 a。
e)int (
a)[10];:定义指向 “含 10 个 int 元素的数组” 的指针 a(常用于指向二维数组的行)。

(5)给定一个二维数组,使用指针把数组中的数字复制到另一个数组中相同的位置。
image
说明:通过指向二维数组的指针psrc/pdest,遍历原数组的每个元素并赋值到目标数组的对应位置,实现二维数组的复制。

(6)请编写一个函数,接受一个字符串指针作为参数,并返回该字符串的长度,不包括字符串结尾的空字符。
image
说明:myStrlen函数通过指针遍历字符串,统计到'\0'前的字符个数,模拟标准库strlen的功能。

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

          int a[3][4] = {0};

          printf("%d\n",sizeof(a));

          printf("%d\n",sizeof(a[0][0]));

          printf("%d\n",sizeof(a[0]));

          printf("%d\n",sizeof(a[0]+1));

          printf("%d\n",sizeof(*(a[0]+1)));

          printf("%d\n",sizeof(a+1));

          printf("%d\n",sizeof(*(a+1)));

          printf("%d\n",sizeof(&a[0]+1));

          printf("%d\n",sizeof(*(&a[0]+1)));

          printf("%d\n",sizeof(*a));

          printf("%d\n",sizeof(a[3]));)

image
说明:sizeof是编译期运算符,结果由变量 / 类型的字节数决定(int 占 4 字节,32 位指针占 4 字节)。

(8)键盘输入一个长度为len(1 <= len < 30)的字符串,再输入一个正整数 m(1 <= m <= len),将此字符串中从第 m 个字符开始的剩余全部字符复制成为另一个字符串,并将这个新字符串输出。要求用指针处理字符串。
image
说明:通过指针ps定位到原字符串的第m个字符,遍历并复制字符到新字符串t,最后添加'\0'保证字符串合法性。

二.总结与思考
需注意指针类型与 sizeof 的编译期特性,多练加深内存与语法理解

posted @ 2025-12-01 16:10  功夫格斗广告费  阅读(0)  评论(0)    收藏  举报