指针实验报告

一、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.本周的内容,你还不会什么?

 

posted on 2018-01-15 00:01  liangyuhang  阅读(1540)  评论(0编辑  收藏  举报