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

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

问题:感觉代码没什么问题,但就是用指针的时候输出不了
解决:(怎么可能没有问题),在第二个for循环中,我循环条件写成了j<n,将其改为正确的 j<m, 问题解决

002
题目:构造螺旋方阵。对任意给定的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

问题:没有思路
解决:先在网站上查找写法和知识点,然后才自己摸索写出来的

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

问题:一开始打印目录的时候我是直接用空格间隔每个词语的,发现怎么调整都对不好
解决:还是把每个词语当作字符串,然后用“%7s”直接输出,会方便一些,也更美观。

004
题目:将以下定义的含义写出来。
a)int a; b)int a; c)int **a; d)int a[10]; e)int (a)[10];

问题:
解决:

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

问题:
解决:

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

问题:本来没有定义字符数组,只是想直接用char ch实现输入,发现根本输入不了
解决:看书,突然想起来我定义 ch 本身就只是一个字符,当然错误。将其改为字符数组,问题解决。

007
题目:输出以下内容,并解释每一个输出内容的含义。
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]));

问题:对于sizeof(a[0]+1)、sizeof(a+1)、sizeof(&a[0]+1)、sizeof(*(&a[0]+1))\sizeof(a[3])的大小不理解
解决:****上网查找资料,理解了代码,含义如下图

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

问题:没有输出
解决:发现是自己函数声明写错了,写成了 char *len。改写成 char *ch,问题解决

总结思考:
1.我发现这次的练习中,我犯了好几次低级错误,都是将某一变量名写成了另一个变量名,从而程序无法输出。这需要注意!!!
2.对于函数传入一维数组和函数传入二维数组不是很理解,现在写对了两个例子,需要自己加深理解。
3.对于书本知识不是特别清晰,特别是第10章,还要继续研读书本
4.对于矩阵的转置、乘法....螺旋矩阵等特殊矩阵的写法还不是很清晰,甚至不会。我觉得我应该上网查询知识点,掌握之后再尝试自己写此类代码。
5.对于第七题,我还是不太理解啥时候表示指针,啥时候表示一行,啥时候表示元素值。我还得再揣摩一下,实在不行再问问老师,看看网课。

posted @ 2024-11-16 13:00  王馨怡  阅读(7)  评论(0编辑  收藏  举报