C语言博客作业—2019-指针
0.展示PTA总分

1.本章学习总结
1.1学习内容总结
- 指针做循环变量:即将指针作为循环变量,在指针移动到某一个位置的时候,达到了循环结束的条件,循环结束。
for (p = a; p <= a + 9; p++)//即指针p作为循环变量 { sum = sum + *p; }
- 字符指针如何表示字符串:字符指针指向了字符数组的首地址。
定义指针*p,字符数组a[] p=a[]//字符指针表示字符数组a[]的首地址
动态内存分配:利用malloc或calloc(区别:malloc动态申请的内存不会自动赋初值,而calloc则会自动赋予初值0;相同点:都需要在结束时释放动态分配的内存)
if ((p = (int*)malloc(或calloc)(n * sizeof(int))) == NULL)//动态申请内存 { printf("Not able to allocate memory.\n"); exit(1); } free(p);//释放申请的内存二级指针、行指针:二级指针指指向一级指针是指针,即指向地址的指针。行指针是指指针本身就指向某一行。
二级指针:int **p//二级指针
行指针:int(*p)指针数组及其应用:利用指针数组存放指针地址,使用时利用指针数组中的元素来输入或者输出某地址的内容。
char* str[100]; //开辟指针数组 for (i = 0; i < n; i++) { str[i] = (char*)malloc(10 * sizeof(char));//申请空间 scanf("%s", str[i]);//输入字符串 str[1]=10;//利用指针数组改变某地址存储的数据 }
- 指针做函数返回值及其注意:不能在函数实现时返回函数内定义变量的地址,因为函数结束时这些对象在函数返回时就会消亡。
因此,函数指针的函数一般都返回全局数据对象或者主调函数中数据对象的地址。
1.2本章学习体会
- 学习较困难,在使用指针作为返回值是时常出问题。
- 大概1400行左右(反复研究教材上的题目),我个人感觉达标。
2.PTA实验作业
2.1合并两个有序数组
2.1.1 伪代码
定义整形flag并赋值为1 定义整形循环变量i 定义整形M,N用来暂存a,b数组的长度 while m,n都不等于0 do flag=2 if( *(a + m - 1) < *(b + n - 1)) *(a + m + n - 1) = *(b + n - 1) n减一 else if ( *(a + m - 1) > *(b + n - 1)) then *(a + m + n - 1) = *(a + m - 1) m减一 if (*(a + m - 1) = *(b + n - 1)) then *(a + m + n - 1) = *(a + m - 1); *(a + m + n - 2) = *(b + n - 1); m,n都减一 end if if(m==0且flag==2) 将b数组剩下的数字都交到a数组前端 if(m==0且flag==1) 将b数组全部直接移入a数组
2.1.2代码截图

2.1.3 总结本题的知识点
- 可以通过指针来处理数组,来改变数组某元素所存储的内容。
- 指针可以作为参数实现函数数据的传递。
2.1.4 PTA提交列表及说明

因为上课讲过,所以一遍过。
***2.2 (指针做函数返回值) 查找指定字符
2.2.1 伪代码
定义len为读入字符串的长度,index初值为 - 1(只要小于0都可以) 读入需要查找的字符ch 读入字符串 for (i = 0; i < len, i++) if (找到) index=i; end for if index不等于初值 输出找到的i else 输出Not Found end if
2.2.2 代码截图

2.2.3 总结本题的知识点
使用scanf时字符串末尾要加上'\n',否则无法输出。
使用for循环寻找时要注意连续多空格的判断。
2.2.4 PTA提交列表及说明

部分正确:未考虑到多空格问题。
2.3 填充矩阵
2.3.1 伪代码
定义整形变量 i; 定义整形变量 j; for (i = 0; i < n; i++) for (j = 0; j < n; j++) if (i + j == n - 1) p[i][j] = 1; else if (i + j < n - 1) p[i][j] = 3; else p[i][j] = 2; end for
2.3.2 代码截图

2.3.3 总结本题的知识点
使用行指针是要注意(*p)
2.2.4 PTA提交列表及说明

答案错误:填充的数值位置不正确。
运行超时:循环出现错误,循环无法结束。
3.阅读代码

使用bool函数,返回真假。而我一般使用flag或者是1/0判断真假,这个函数可以学习一下。
使用递归函数dog,刚好我们前两天也学了递归函数,学习该代码的优秀地方,dog函数是一个void函数类型,但是有一些判断语句后,加了return,直接结束了该函数的运行,方便而且节省时间
给a[0]=-100000,b[0]=1灵活赋值,然后代入dog函数里面,完成函数功能。
C语言博客作业—2019-指针的更多相关文章
- C语言博客作业05——指针
1.本章学习总结 1.1思维导图 1.2本章学习体会及代码量 1.2.1学习体会 可能因为之前数组那块儿的作业拖得太久了,以至于我觉得指针学的好快,还没反应过来就教完了,然后一开始做题的时候,就是一脸 ...
- C语言博客作业6---结构体&文件
C语言博客作业6---结构体&文件 1.本章学习总结(2分) 1.1思维导图 请以思维导图总结本周的学习内容.如下图所示: 1.2.学习体会 描述本周学习感受,也可以在这里提出你不理解地方.对 ...
- C语言博客作业5--指针
C语言博客作业5--指针 1.本章学习总结(2分) 1.1思维导图 请以思维导图总结本周的学习内容,如下图所示: 1.2本章学习体会及代码量学习体会 1.2.1学习体会 描述本周学习感受,也可以在这里 ...
- C语言博客作业06——结构体&文件
C语言博客作业06--结构体&文件 1.本章学习总结 1.1思维导图 1.2.本章学习体会 在本周的学习中,我们学习了关于结构体和文件的内容.结构体的本身并不难,但以结构体为基础的链表还是让我 ...
- C语言博客作业4--数组
C语言博客作业4--数组 1.本章学习总结 1.1思维导图 请以思维导图总结本周的学习内容,如下图所示: 1.2本章学习体会及代码量学习体会 1.2.1学习体会 描述本周学习感受,也可以在这里提出你不 ...
- C语言博客作业3--函数
C语言博客作业3--函数 1.本章学习总结 1.1思维导图 请以思维导图总结本周的学习内容,如下图所示: 1.2本章学习体会及代码量学习体会 1.2.1学习体会 描述本周学习感受,也可以在这里提出你不 ...
- C语言|博客作业10
问题 回答 C语言 博客作业10 这个作业要求在哪里 作业要求 我在这个课程的目标是 熟练循环语句的用法 这个作业在哪个具体方面帮助我实现目标 pta作业 参考文献 <C语言程序设计> 1 ...
- C语言Ⅰ博客作业02
1. 这个作业属于哪个课程 C语言程序设计Ⅰ 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/8656 我在这个课程 ...
- C语言博客作业7
本周作业头 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 作业链接 我在这个课程的目标是 熟练运用switch语句 这个作业在那个具体方面帮助我实现目标 完成pta作业 参考文献 文章 ...
- C语言博客作业08
C语言I博客作业08](https://www.cnblogs.com/490-85-00-58-/p/11863312.html) 问题 回答 这个作业属于那个课程 C语言程序设计II 这个作业要求 ...
随机推荐
- Linux 服务器 关闭FTP匿名访问
service vsftpd status //查看FTP运行状态 vim /etc/vsftpd/vsftpd.conf //修改配置文件 找到vsftpd.conf中的 anonymous_ena ...
- 在.net core中数据操作的两种方式(Db first && Code first)
在开发过程中我们通常使用的是Db first这种模式,而在.net core 中推荐使用的却是 code first 反正我是很不习惯这种开发模式 于是就搜寻整个微软的官方文档,终于找到了有关.net ...
- C ProcessAsUser
class Interop { public static void CreateProcess(string app, string path) { bool result; IntPtr hTok ...
- python入门基础 02
目录 1.while 2.字符串格式化 3.运算符 4.编码初始 总结 1.while # while -- 关键字 (死循环) # # if 条件: # 结果 # # while 条件: # 循环体 ...
- css3实现半圆和圆效果
在css2中,如果需要失效一些圆角或者半圆等等效果,一般是要通过ps等软件来处理的,在CSS3中,则不需要了,只需要通过border-radius就可以实现,大大方便了开发的效率. 无论圆角.圆弧.实 ...
- MySQL Percona Toolkit--pt-osc与online DDL选择
pt-osc和online ddl选择 1.如果表存在触发器,不能使用pt-osc.2.如果新增唯一索引,不建议使用pt-osc,以免数据丢失.3.修改索引.外键.列名时,优先选择使用ALGORITH ...
- RocketMQ-Console安装
1.获取源码 git clone -b release-rocketmq-console- https://github.com/apache/rocketmq-externals.git 2.进入工 ...
- 03-JavaScript语法介绍
本篇主要关于原生JavaScript的介绍,其中包括其嵌入HTML页面方式,JavaScript的语法结构,以及贪吃蛇案例: 一.绪论 JavaScript是运行在浏览器端的脚步语言,JavaScri ...
- php框架路由美化后提示No input file specified
此问题出现在.htaccess上 Apache按如下代码修改即可: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond % ...
- springcloud中微服务的优雅停机(已验证)
大部分项目部署中,为了方便,可能都直接使用kill -9 服务的pid来停掉服务. 但是由于Eureka采用心跳的机制来上下线服务,会导致服务消费者调用此已经kill的服务提供者然后出错. 可以采用以 ...