一、PTA实验作业
题目1:6-2 移动字母
1. 本题PTA提交列表
2. 设计思路
题目要求将前三个字符后移到最后三位。所以,我将前三个字符分别赋值给三个字符变量。通过strlen函数将字符串长度读出为x。由于题目限定字符串长度最少为4个,所以可将第4字符到x个字符赋值给第一个字符到4-x个字符。最后将之前保存的三个字符变量赋值给最后三个字符,得出答案。
流程图如下
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
思路明确,有提前考虑字符不足6个的情况,直接正确。
题目2:6-7 输出月份英文名
1. 本题PTA提交列表
2. 设计思路
题目要求输入数字输出月份。所以我定义一个指针字符串数组,依次将1-12月份的名称赋值给各个字符串。返回第n-1个数组即为答案。若不在此范围内,则返回NULL。
流程图如下
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
在判断n的时候忘记不能小于0,部分正确。
题目3:7-2 在数组中查找指定元素
1. 本题PTA提交列表
2. 设计思路
输入n,定义一个数组a[n],依次输入n个数。再定义查找的数字x。传入子函数,依次判断x是否与数组中的数字相等。若相等传回数组的角标,若不是,传回-1.再通过对传回的值的判断,得出结果。
流程图如下
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
思路明确,直接正确。
二、同学代码结对互评
1.同学互评照片。
互评题目:7-2
我的代码
黄世坤同学的代码
3.我和同学代码不同在哪里?
思路大致相似,在对于查找数x是否存在上,世坤在循环判断出存在后马上返回值,若结束循环还未返回值,则返回-1.
在这点上世坤同学的思路更加巧妙,所以我更喜欢世坤同学的代码风格。
三、截图本周题目集的PTA最后排名。
四、本周学习总结
1.你学会了什么?
(1)指针变量的定义
定义指针变量的一般形式为:类型名 *指针变量名。
例如:int *p char *cp float *fp double *p
(2)数组和指针
例如:int sum(int a[],int n)中,a[]等价于*a。
(3)用指针实现内存动态分配
4个函数:malloc calloc free realloc
①动态存储分配函数malloc()
申请成功 返回指向所分配存储空间的起始地址的指针,不成功则返回NULL。
注意,在malloc()具体使用中,可将返回值强制转换成特定的指针类型,再赋值给一个指针。
同时可利用sizeof计算存储块大小。
例如:如下格式
if((p=(类型名 *)malloc(sizeof(变量名)))==NULL)
{
printf("error");
exit(1);
}
②计数动态存储分配函数calloc()
与malloc()相似,不同点是:malloc()对所分配的存储块不做任何事情,calloc()对整个区域进行初始化(0)。
③动态存储释放函数free()
功能:释放由动态存储分配函数申请到的整块内存空间。
④分配调整函数realloc()
功能:更改以前的存储分配。
2.本周的内容,你还不会什么?