zoukankan      html  css  js  c++  java
  • C语言ll博客作业01

    1.作业头

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-2
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11769
    这个作业的目标 <初步了解文件,掌握测试代码运行时间,回顾之前学过的知识>
    学号 <20209249>

    一、本周教学内容&目标

    第6章 回顾数据类型和表达式,第12章 文件

    二、本周作业(总分:50分)

    2.1 题目:给定一个十进制正整数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有“1”的个数。
    例如:

    N=2,写下1,2。这样只出现了1个”1“。

    N=12,我们会写下1,2,3,4,5,6,7,8,9,10,11,12。这样,1的个数是5。

    问题是:

    1.写出一个函数f(N),返回1到N之间出现的”1“的个数,比如f(12)=5;

    要求:
    1.贴出代码图片,写出解题思路,列出测试数据(5分)

    解题思路
    1、面对题一我首先想到的便是将1到N的数逐一列出,再将每个数中所含1的个数算出来,依次累加。
    2、每个数的1的个数通过每个数除以10取余是否等于1,利用循环,算除每一个每一位是否为1.
    3、再利用循环算1之N每个数
    测试数据

    输入数据 输出数据
    10 2
    100 21
    1000 301
    9999999 7000000
    3333333333 2971027783

    2.给出不同测试数据的运算时间,如果你的运算时间不变,说明你的测试数据不够大(5分)

    3.思考针对足够大的数据,如何减少运算时间,并给出在原有算法基础上的改进算法和改进思路。(10分)

    思路:减少函数的调用.

    2.满足条件”f(N)=N“的最大的N是多少?

    2.2 将上题中多组测试数据写入文件,并给出测试程序以检测你的代码有没有问题,贴出你的代码、运行结果和文件内容。(5分)

    2.3 用自己的语言回答两个问题,并给出所查阅资料的引用(10分)
    1.什么是文件缓冲系统?工作原理如何?
    系统在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”,装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。 因此当程序运行时虽然进行了写数据操作,但是如果写入的数据没有装满内存中的缓冲区,就不会将数据写入到磁盘文件中。当程序运行结束后,系统就会将缓冲区中的数据写入到磁盘上的文件中,因此就可以看到文件中的内容。 常用的FOPEN命令就会使用文件读写缓冲区,FCLOSE命令关闭文件,把缓冲区中的内容写入磁盘上的文件中。
    < http://study.qqcf.com/web/171/19812.htm>
    2.什么是文本文件和二进制文件?
    文本文件:文本文件是一种计算机文件,它是一种典型的顺序文件,其文件的逻辑结构又属于流式文件。特别的是,文本文件是指以ASCII码方式(也称文本方式)存储的文件,更确切地说,英文、数字等字符存储的是ASCII码,而汉字存储的是机内码。文本文件中除了存储文件有效字符信息(包括能用ASCII码字符表示的回车、换行等信息)外,不能存储其他任何信息。
    二进制文件:二进制文件是指包含在 ASCII及扩展 ASCII 字符中编写的数据或程序指令的文件。计算机文件基本上分为二种:二进制文件和 ASCII(也称纯文本文件),图形文件及文字处理程序等计算机程序都属于二进制文件,这些文件含有特殊的格式及计算机代码。ASCII 则是可以用任何文字处理程序阅读的简单文本文件。简单的说,如果一个文件专门用于存储文本字符的数据,没有包含字符以外的其他数据,我们就称之为文本文件,除此之外的文件就是二进制文件。

    https://m.php.cn/faq/464285.html
    2.4 请给出本周学习总结(15分)
    1 学习进度条(5分)

    日期 学习所用时间 代码行数 本周所学知识点 存在的问题
    3.1~3.7 24 167 回顾所学知识及初步了解文件 代码运行的时间测试,获取文件中数据

    2 累积代码行和博客字数(5分)

    3 学习内容总结和感悟(5分)
    新学期开始,喜忧各占一半。面对老师布置这新学期第一次作业,痛苦面具再次出现在我的脸上。寒假完全的放松,将老师上学期所教的知识忘了不少,对于原本就学得不好的我,真的是雪上加霜啊。不过好在通过此次作业,我知道了自己所漏缺未熟练掌握的知识点,所学知识需加强巩固,因我知道新学期开始自身任务艰巨,学习不可懈怠。加油!

  • 相关阅读:
    托付和事件的使用
    在使用supervisord 管理tomcat时遇到的小问题
    无法安装vmware tools的解决方PLEASE WAIT! VMware Tools is currently being installed on your system. Dependin
    (转)Openlayers 2.X加载高德地图
    (转)openlayers实现在线编辑
    (转) Arcgis for js加载百度地图
    (转)Arcgis for js加载天地图
    (转) 基于Arcgis for Js的web GIS数据在线采集简介
    (转) Arcgis for js之WKT和GEOMETRY的相互转换
    (转)Arcgis for Js之Graphiclayer扩展详解
  • 原文地址:https://www.cnblogs.com/liuyang0613/p/14489449.html
Copyright © 2011-2022 走看看