高级语言程序设计课程第七次个人作业
班级:https://edu.cnblogs.com/campus/fzu/2024C
作业要求:https://edu.cnblogs.com/campus/fzu/2024C/homework/13304
学号:102400203
姓名:黄奕
(1)定义一个二维数组和指向该数组的指针,分别以数组下标和指针的形式引用数组各个元素进行赋值与输出。
如何用指向数组的指针去引用各个元素
(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
不知道怎么实现螺旋赋值
用循环1从左到右填充上边界,上边界下移
用循环2从上到下填充右边界,右边界左移
用循环3从右到左填充下边界,下边界上移
用循环4从下到上填充左边界,左边右移
如此在while这个大循环里直到结束
(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];**
关于指针与指针的指针,一维数组的指针和二维数组的指针这些概念很不清楚,经常出错
(5)给定一个二维数组,使用指针把数组中的数字复制到另一个数组中相同的位置。
printf输出的时候失误加了个取地址符,导致输出的不是元素,而是地址
(6)请编写一个函数,接受一个字符串指针作为参数,并返回该字符串的长度,不包括字符串结尾的空字符。
字符串命名的时候忘记加长度,导致没有输出
(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]));)**
很容易混淆这些指针的概念,这些符号所代表的类型与含义
(8)键盘输入一个长度为len(1 <= len < 30)的字符串,再输入一个正整数 m(1 <= m <= len),将此字符串中从第 m 个字符开始的剩余全部字符复制成为另一个字符串,并将这个新字符串输出。要求用指针处理字符串。
指针变量的类型应该与指向的内容的类型保持一致,否则会出错
总结与反思:
这次作业主要是针对指针的练习,
需要学会运用指针去调用数组中的元素
需要把指针弄明白才能更好的完成这次的作业