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. (转)数据库_不懂数据库索引的底层原理?那是因为你心里没点BTree

    原文地址:https://www.cnblogs.com/sujing/p/11110292.html 要了解数据库索引的底层原理,我们就得先了解一种叫树的数据结构,而树中很经典的一种数据结构就是二叉 ...

  2. 自学Python编程的第九天(希望有大牛帮我看看我第一个代码是否有弊端,感谢您们)----------来自苦逼的转行人

    2019-09-19-22:11:33 今天是自学Python的第九天 学的内容是有关文件操作的,如:r.w.a.rb.wb.ab.r+.w+.a+等 有大牛帮我看一下我的代码第一个有没有什么弊端吗? ...

  3. 关于 Safari 浏览器不支持 location [ window.location.href window.open()] 跳转问题的解决方案

    最近在做项目时,碰到 safari 浏览器不支持location跳转问题,针对此问题,可以通过 js 模拟点击时间来解决,代码如下: <!DOCTYPE HTML> <html la ...

  4. Oracle数据库之操作符及函数

    一.操作符: 1.分类: 算术.比较.逻辑.集合.连接: 2.算术操作符: 执行数值计算: -- 工资加1000 from emp; 3.比较操作符: -- 比较运算符(between and包头不包 ...

  5. requests模块 高级应用

    目录 requests模块 高级应用 HttpConnectinPool 问题解决 IP代理 简单使用代理 代理池 cookie的处理 页面中验证码识别 使用 multiprocessing.dumm ...

  6. FreeRTOS软件定时器

    API函数 //创建 TimerHandle_t xTimerCreate( const char * const pcTimerName, const TickType_t xTimerPeriod ...

  7. mybatis批量更新报错 org.mybatis.spring.MyBatisSystemException

    具体报错信息: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.Bin ...

  8. null在mysql中的不同表现

    在mysql中count(*)和count(id)具有不同的表现,其最大的影响是在我们进行联表的时候,如,我们现在要查询一个文章的评论数量,使用左连接查询,具体的sql语句如下: SELECT a.* ...

  9. 产生大于N的Smith数

    实验三  求Smith数 实验目的: 通过本次实验,掌握穷举算法的基本思想. 实验环境: 硬件:PC机 软件:windows操作系统,C语言 实验内容: 若一个合数的质因数分解式逐位相加之和等于其本身 ...

  10. 【原创】selenium+python+openpyxl实现登录自动化测试,自动读取excel用例数据,并将数据结果自动写入到excel

    # -*- coding: utf-8 -*- from selenium import webdriver from openpyxl import load_workbook from time ...