展示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