C博客作业05--2019-指针

坚强是说给别人听的谎言 提交于 2019-12-06 06:35:54

展示PTA总分

1.本章学习总结

1.1 学习内容总结

1、关于指针是什么
·指针是用来存放地址的变量
·C语言中把专门用来存放变量的地址的变量称为“指针变量”,简称指针
·如果一个指针变量的值是另一个变量的地址,就称该指针变量指向那个变量。
例如:

定义一个指针变量p
定义输入整型x
令p=&x
p则为x的地址,而*p为x的内容
称p指向x

2、指针包含些什么
·一级指针
(1)指针变量的定义
一般形式:

类型名  *指针变量名;

而指针声明符在定义指针变量时被使用,说明被定义的那个变量是指针
注:定义多个指针变量时,每一个指针变量前面都必须加上

3、指针怎么用
(1)指针的基本运算
①取地址运算和间接访问运算
·单目运算符&用于给出变量的地址。如:
int p,a=3
p=&a;
当p指向a时,
p和a访问同一个储存单元。即p=a。
关于值加1
表达式
p=p+1、++p、(*p)++
都为p所指向的变量的值+1。

1.2 本章学习体会

2.PTA实验作业

2.1 (指针做函数返回值) 查找指定字符

2.1.1

伪代码

定义op为待查找字符
定义指针str为输入的字符串
定义index为找寻的下标
申请动态内存空间
输入字符op
缓冲换行符
自定义SearchIndex()函数
if index=-1 then
   输出 not found
else
   输出 index=找寻的下标
释放动态内存
int SearchIndex(char* str, char op)
定义i=0
定义index=-1
while 字符串不为0和\n时
    if 查找的字符与str[i]相等 then
       index=i
       i++
       continue
    i++
返回index

2.1.2

代码截图:

2.1.3 总结本题的知识点

1、掌握定义指针变量后要申请动态内存空间

str = (char*)malloc(N * sizeof(char));
不同类型变量,即把char进行修改
如若为整型,则:
str = (int*)malloc(N * sizeof(int));

2、注意释放动态内存空间
3、注意对i进行自增
4、注意0与NULL,返回 NULL 和 返回 0 是完全等价的。

2.1.4 PTA提交列表及说明


部分正确:刚开始就误打误撞的对了一个测试点?
段错误:
1、对于输入str,VS总是会提醒我没有初始化。我觉得很奇怪,后来问了一下同学,才知道要对str申请内存空间,在定义指针str后,它并不知道它所指向的地址是哪里,用malloc或calloc申请内存空间的首地址之后,str才会有指向。如若定义数组,系统才会自动为str申请内存空间。嗯...直到现在我才真正懂得了malloc和calloc的真正用法含义...
2、关于换行符。刚开始,我只能输入需要查找的字符,无法输入字符串。fgets会吸收换行符,所以我需要加入scanf("\n")来消除换行符。
部分正确:主要错误的测试点是index=0,刚开始,如果index的返回值是NULL,则就输出not found。但我忽略掉的是返回NULL和返回0是完全等价的,则当index=0时,他也会输出not found。后来我便用-1进行替换。

2.1 藏尾诗

2.1.1

伪代码:

定义数组str1用于放入诗句
定义数组str2用于存放诗句最后汉字
定义整型row为诗句句子数量
定义整型len为字符串长度
对i,row进行初始化
while(诗句的输入存放于str1)
    计算字符串长度
    使诗句最后汉字存放于str2中
    str2[i++] = str1[len - 2];
    str2[i++] = str1[len - 1];
    row自增
    if row 大于等于4 then
    break;
令str2[i]=0,防止输出泛滥
输出str2

2.1.2 代码截图

2.1.3 总结本题的知识点

2.1.4 PTA提交列表及说明

2.1 题目名1

2.1.1 伪代码

2.1.2 代码截图

2.1.3 总结本题的知识点

2.1.4 PTA提交列表及说明

3.阅读代码

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!