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-指针的更多相关文章

  1. C语言博客作业05——指针

    1.本章学习总结 1.1思维导图 1.2本章学习体会及代码量 1.2.1学习体会 可能因为之前数组那块儿的作业拖得太久了,以至于我觉得指针学的好快,还没反应过来就教完了,然后一开始做题的时候,就是一脸 ...

  2. C语言博客作业6---结构体&文件

    C语言博客作业6---结构体&文件 1.本章学习总结(2分) 1.1思维导图 请以思维导图总结本周的学习内容.如下图所示: 1.2.学习体会 描述本周学习感受,也可以在这里提出你不理解地方.对 ...

  3. C语言博客作业5--指针

    C语言博客作业5--指针 1.本章学习总结(2分) 1.1思维导图 请以思维导图总结本周的学习内容,如下图所示: 1.2本章学习体会及代码量学习体会 1.2.1学习体会 描述本周学习感受,也可以在这里 ...

  4. C语言博客作业06——结构体&文件

    C语言博客作业06--结构体&文件 1.本章学习总结 1.1思维导图 1.2.本章学习体会 在本周的学习中,我们学习了关于结构体和文件的内容.结构体的本身并不难,但以结构体为基础的链表还是让我 ...

  5. C语言博客作业4--数组

    C语言博客作业4--数组 1.本章学习总结 1.1思维导图 请以思维导图总结本周的学习内容,如下图所示: 1.2本章学习体会及代码量学习体会 1.2.1学习体会 描述本周学习感受,也可以在这里提出你不 ...

  6. C语言博客作业3--函数

    C语言博客作业3--函数 1.本章学习总结 1.1思维导图 请以思维导图总结本周的学习内容,如下图所示: 1.2本章学习体会及代码量学习体会 1.2.1学习体会 描述本周学习感受,也可以在这里提出你不 ...

  7. C语言|博客作业10

    问题 回答 C语言 博客作业10 这个作业要求在哪里 作业要求 我在这个课程的目标是 熟练循环语句的用法 这个作业在哪个具体方面帮助我实现目标 pta作业 参考文献 <C语言程序设计> 1 ...

  8. C语言Ⅰ博客作业02

    1. 这个作业属于哪个课程 C语言程序设计Ⅰ 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/8656 我在这个课程 ...

  9. C语言博客作业7

    本周作业头 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 作业链接 我在这个课程的目标是 熟练运用switch语句 这个作业在那个具体方面帮助我实现目标 完成pta作业 参考文献 文章 ...

  10. C语言博客作业08

    C语言I博客作业08](https://www.cnblogs.com/490-85-00-58-/p/11863312.html) 问题 回答 这个作业属于那个课程 C语言程序设计II 这个作业要求 ...

随机推荐

  1. 通过分析 WPF 的渲染脏区优化渲染性能

    原文:通过分析 WPF 的渲染脏区优化渲染性能 本文介绍通过发现渲染脏区来提高渲染性能. 本文内容 脏区 Dirty Region WPF 性能套件 脏区监视 优化脏区重绘 脏区 Dirty Regi ...

  2. 局域网电脑禁止ping通的解决方法

    方法1:命令行模式进入服务器后 点击 开始——运行 输入命令:netsh firewall set icmpsetting 8这样就可以在外部ping到服务器了 非常简单实用!同样道理,如果想禁止Pi ...

  3. C# 调用 C++ dll的两种方式

    目录: 1.非托管方式 2.托管方式 3.介绍 extern "C" 4.介绍   DllImport 1.非托管方式 第一种,非托管方式:调用类和方法https://www.co ...

  4. Java操作JSON数据(1)--JSON-lib操作JSON数据

    JSON-lib是一个java库,用于将bean.映射.集合.java数组和XML转换为JSON,或将JSON转为beans和DynaBeans.JSON-lib最后的版本是2.4,更新时间是2010 ...

  5. 安装R和RStudio详细步骤

    安装这两项都很简单!! 1.首先要下载R安装包,可以去官网下载,也可以直接从我的百度网盘下载. 官网下载步骤: (1)进入网址:https://cran.r-project.org,选择适合自己电脑系 ...

  6. [SDOI2008]仪仗队(欧拉函数)

    题目 [SDOI2008]仪仗队 解析 这个题,我也不知道他们的soltion是怎么写的这么长的. 我们发现我们一次看一条直线上的第一个点,也就是说,若两个点斜率\(k=\frac{y}{x}\)相同 ...

  7. vue动态循环出的多个select出现过的变为disabled

    <template> <div class="artcle"> <el-form label-width="100px" :mod ...

  8. JAVA基础之HttpServletRequest请求

    HttpServletRequest请求是获取请求行.请求头和请求体:可以通过这个方法设置防盗链,获取地址.牢记解决乱码的方式. 怎么选择是重定向还是转发呢?通常情况下转发更快,而且能保持reques ...

  9. 【RAC】将RAC备份集恢复为单实例数据库

    [RAC]将RAC备份集恢复为单实例数据库 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识, ...

  10. win下maridb 10.1.8下主从复制配置

    主库配置 server_id=1read-only=0replicate-do-db=mydatalog-bin=mysql-bin 主库权限设置 GRANT replication slave ON ...