1.本章学习总结

1.1思维导图

1.2 本章学习体会及代码量学习体会

1.2.1学习体会

  • 我眼中的函数 这一章接触到了新的知识——函数,不同于之前所学的编程,函数具有很清楚的分工性,且可以用来多次调用,解决代码重复问 题,增加代码可读性

    • 我的函数学习 毕竟是新知识,刚开始学习时还是有点迷迷糊糊,虽然可以设计一些简单的函数,但阅读复杂代码时不太能看明白结构,但在老师的讲解和课堂互动过后,逐渐熟悉函数,觉得挺有意思的,非常有条理性。在做过一些题之后,关于函数的编程我的总结是,先将整个程序分成几大板块,分为主函数和自定义的函数,思考主函数怎样合理调用函数、自定义的函数应用哪一个类型、是否需要返回结果,一定要熟悉格式,有合理清晰的思路之后再开始编程。
    • 需要注意的地方 在实参和形参重名的时候,不太能分得清到底结果应该怎么计算;函数相关的练习不太够,应该再找一些题目更加熟悉函数的思路和格式;在对于全局变量和局部变量甚至是静态变量的择优选择时,不太熟练掌握;对于方便但是不熟悉的函数来讲,总是会选择复杂但是熟悉的编程,应该熟练运用函数,提高函数质量。

1.1.2代码累计

2.PTA总分

2.1排名得分

2.2我的总分

函数:145分;

3.PTA实验作业

3.1PTA题目1

验证哥德巴赫猜想

  • 判断p是否为素数
  • 将给定范围内的偶数拆成两个奇素数p,q
  • PS:要求p为最小的情况

3.1.1 算法分析

函数一 判断p是否为素数
考虑特殊情况:1不是素数,2是素数
- if(p==1) return 0;
- else if(p==2) return 1;
素数判断:- p对于 2 to p/2+1 进行除法运算,
- for i= 2 to p/2+1
- if(p%i==0) return 0; //不是素数
- end for
- return 1;//是素数
函数二 将范围内的偶数拆分:
- 要求p为最小且为奇素数
- for p=3 to p=n
- if(p为素数) q=n-p;
- then if(q为素数) 输出p+q=n;
- end

3.1.2 代码截图

3.1.3 测试数据

3.1.4 PTA提交列表及说明

说明:最开始接触这道题的时候,有点疑惑两个函数同时使用应该怎么写,后来注意到这两个函数存在先后问题即后一个函数需要调用前一个函数,显然这道题并不难,之所以记录是为了留下印象,在函数中调用函数,注意题目要求的p最小的条件,错误的地方是忽略在判断素数时,i可以取p/2+1 ,做题真的要仔细!每次都是犯一些小错误。

4.大作业

4.1函数关系图

4.2函数功能介绍

函数大体

1.函数一 主函数

  • 显示菜单,提示用户选择题集

    • 调用三种题集对应的函数

2.函数二&&函数三&&函数四

  • 提示用户输入需要的题量

    • 产生随机数和随机字符,组成一道四则运算题
    • 将用户输入的结果与数字对比,判断结果
    • 在两题之间设计快捷键提前退出试题
      由于函数三、四两步运算的两步运算额外考虑乘除,所以仅展示函数二代码

3.函数五&&答案六

答案正确||答案错误
从课堂派的一道题中得到思路,为了丰富试题,随机输出四种意为“答案正确”或是“答案错误”的语句,为了方便且避免代码重复,采用函数的形 式,供函数二、三、四调用

4.3运行结果截图

  • 1.显示主菜单,准备开始程序
  • 2.输入错误题集,要求重新输入
  • 3.进入题集之后,选择题量
  • 4.对于第一题之后清屏,回答错误提醒且告知正确答案
  • 5.提前结束试题
  • 6.答题结束时显示成绩单

4.4 调试碰到问题及解决办法

  • Q:忽略输入非法字符的情况
  • S:林丽老师讲解,以及同学的提示,switch语句末尾加上default情况,要求重新输入提供的三个题集;
  • Q:非法字符为字母时,回车键也被读入
  • S:使用fflush(stdin);进行清除或是采用while(getchar()!=‘\n’);解决
  • Q:函数二三四进入死循环,一轮接一轮地答题
  • S:break无法达到跳出循环的作用,将其改成return 0解决问题
  • Q:不知道怎么随机产生两位数
  • S:百度搜索,请教同学rand()%90+10,由此推出随机三位数的取法;
  • Q: 清零函数的使用不熟练
  • S:查资料清楚使用格式,仔细斟酌之后确定清零函数的位置;
  • Q: 进行除法时,产生无法整除的现象
  • S:结果统一保留两位小数,并提示用户.

4.5大作业总结

  • 对于大作业的写法总结:读懂程序的目的——>整理要处理的部分——>将这些要处理的归类,有重复的最好归类为一个函数——>做好每一个函数之间的衔接,保证互相配合且互不干扰——>注意代码的可读性,使用户明白每一部分;
  • 感受:第一次接触代码,听到这个作业的时候很懵逼,完全没有思路,林丽老师在课堂上大概画了一下框架之后,有些思路,开始自己画草图,画框架,考虑各种陌生的函数,不得不说百度真的是个好东西,可以学到更多知识。一敲一击之下的代码实在不易,虽然一直觉得自己在不停地写bug但不得不说在运行之时是新鲜的是有趣的,很锻炼思维的条理性,更是在检验c语言的基础,对比同学的代码,自己的很一般,甚至显得粗糙,所以要继续努力,好好儿学习,多打代码练习

C语言--第3次作业的更多相关文章

  1. 关于C语言的问卷调查(作业三)

    1.你对自己的未来有什么规划?做了哪些准备? 答:我对我未来的规划就是希望能够学有所用,将来可以从事有关IT方面的,跟自己的专业对口.为此现在我需要多看一些和这个专业有关的书籍,自学一些知识,多些一些 ...

  2. 网络1711班 C语言第四次作业批改总结

    网络1711班 C语言第四次作业批改总结 助教有话说(写在前面) 近来,有同学跟老师和助教们反映:博客作业太多太麻烦,而且对编程能力提高似乎没什么帮助?在这里我要谈一谈我的感想. 博客作业的意义? 首 ...

  3. 网络1711班 C语言第七次作业批改总结

    网络1711班 C语言第七次作业批改总结 1.本次作业评分细则 1.1 基本要求(1分) 按时交 - 有分 未交 - 0分 迟交一周以上 - 倒扣本次作业分数 抄袭 - 0分 泛泛而谈(最多七分) 1 ...

  4. 网络1711班 C语言第八次作业批改总结

    网络1711班 C语言第七次作业批改总结 最近在忙一些琐事,没能及时批改大家的作业,连续两次作业总结也没有很用心写,在这要给大家say sorry. 1.本次作业评分细则 1.1 基本要求(1分) 按 ...

  5. C语言程序设计第二次作业--顺序结构

    C语言程序设计第二次作业--顺序结构 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 #include <stido ...

  6. 跨语言调用Hangfire定时作业服务

    跨语言调用Hangfire定时作业服务 背景 Hangfire允许您以非常简单但可靠的方式执行后台定时任务的工作.内置对任务的可视化操作.非常方便. 但令人遗憾的是普遍都是业务代码和hagnfire服 ...

  7. C语言的第零次作业

    C语言--第0次作业 Q1:对于网络专业的了解 一开始我对网络工程这个专业并不是很了解,在报志愿之前,我完全没想过自己会进这个专业,但是经过了一个暑假的时间,我慢慢地开始了解这个学科,并开始对这个专业 ...

  8. C语言I博客作业02

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

  9. C语言I—2019秋作业02

    1.[新增内容] 这个作业属于那个课程 C语言程序设计 这个作业要求在哪里 <C语言I-2019秋作业02> 我在这个课程的目标是 这个作业在那个具体方面帮助我实现目标 <实现一些基 ...

  10. C语言I博客作业03

    这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/8717 我在这个课程的目 ...

随机推荐

  1. 2018-2019-2 网络对抗技术 20165236 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165236 Exp2 后门原理与实践 一.实验内容 (3.5分) (1)使用netcat获取主机操作Shell,cron启动 (0.5分) (2)使用soc ...

  2. Golang 之协程详解

    转自:https://www.cnblogs.com/liang1101/p/7285955.html 一.Golang 线程和协程的区别 备注:需要区分进程.线程(内核级线程).协程(用户级线程)三 ...

  3. 基于Servlet的MVC模式用户登录实例

    关于MVC模式的简单解释 M Model,模型层,例如登录实例中,用于处理登录操作的类: V View,视图层,用于展示以及与用户交互.使用html.js.css.jsp.jQuery等前端技术实现: ...

  4. IBM服务器安装Ubuntu Linux server 64以及网络配置

    最近在部署AC环境,云AC要求软件环境为Ubuntu 14.04 版本的服务器Linux操作系统,下面是环境部署的准备工作: 一.下载文件 (1)下载系统文件 地址:http://mirrors.16 ...

  5. 二维码图片以字符串的形式保存DB,已文件流显示页面上

    以下是生成二维码的方法,我只用其中一个方法 这个需要引用ZXing.DLL 链接:https://pan.baidu.com/s/1mCTwHiAm_awtsPcibAotZw 提取码:ufp6 pu ...

  6. TCP 数据传输工具类

    package com.ivchat.test.propertysystem.util; import java.io.BufferedReader;import java.io.ByteArrayO ...

  7. win7系统删除打印机后刷新又出现怎么办

    方法/步骤:1.进入桌面后,按下“Win + R”组合键打开运行窗口,在运行中输入“spool”并点击确定:2.之后会进入路径为“C:\Windows\System32\spool”的文件夹中,3.在 ...

  8. 279. Perfect Squares(动态规划)

    Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 1 ...

  9. html5css练习 旋转

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  10. git 本地提交代码到 github 远程库,没有弹框 github login

     git 本地提交代码到 github 远程库,没有弹框 github login:  原因: win10 有个凭据管理器,给保存了历史登陆用户名密码,导致无法切换用户. 解决办法: 删除历史登陆用户 ...