• C语言II博客作业01


    这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-4
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-4/homework/11756
    这个作业的目标 <回顾以前的知识,巩固现在学的知识>
    学号 <20209196>

    一、本周教学内容&目标

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

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

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

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

    1.1.2测试数据及运算时间

    测试数据 运算结果 运算时间/S
    12 5 1.481
    100 21 1.719
    999 300 2.97
    10000 4001 3.948

    1.1.3.思考针对足够大的数据,如何减少运算时间,并给出在原有算法基础上的改进算法和改进思路。(10分)
    在csdn里面看到说了很多方法,但都是大方向,没有具体,改进方法我会的方法实在少;但我看到一个很好的方法就是使用指针,使用指针比使用数组生成的代码更短,执行效率更高。之前也记得老师说过指针的好处,所以要学好指针,而且要学会更多方法,可以尝试不通的捷径。
    使用自加、自减指令
    减少运算的强度

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

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

    2.3 用自己的语言回答两个问题,并给出所查阅资料的引用(10分)

    1.什么是文件缓冲系统?工作原理如何?
    文件缓冲即先建立一个区域缓冲文件,待缓冲区满后再读入文件

    在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”,装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。

    2.什么是文本文件和二进制文件?
    文本文件:文本文件是一种计算机文件,它是一种典型的顺序文件,其文件的逻辑结构又属于流式文件。简单的说,文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。

    二进制文件:是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码)。用户一般不能直接读懂它们,只有通过相应的软件才能将其显示出来。二进制文件一般是可执行程序、图形、图像、声音等等。

    2.4 请给出本周学习总结(15分)

    1 学习进度条(5分)

    周 / 日期 这周花的时间 代码行 学到的知识点简介 目前比较困惑的问题
    第一周 12h 50 文件的读取 文件怎么读取

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

    3 学习内容总结和感悟(5分)

    感悟:
    对于这次的学习自己一点也不会,特别是文件处理,一点也不会。
    自学文件我真的不懂。

  • 相关阅读:
    编译FreePascal和Lazarus
    QTreeView使用点点滴滴
    刨根问底儿 -- intVal($str) 跟 (int) $str 的运算结果有什么区别
    Qt源代码分析
    QString够绕的,分为存储(编译器)和解码(运行期),还有VS编译器的自作主张,还有QT5的变化
    C++静态变量本身可否是一个实例对象
    QT4.86写中文XML
    点击TButton后的执行OnClick和OnMouseDown两个事件的过程(其实是通过WM_COMMAND执行程序员的代码)
    Hibernate3.0中的session.find()问题
    曲线控件我一直用codeproject上的那几个(C++ 100款开源界面库)
  • 原文地址:https://www.cnblogs.com/ylp0621/p/14484380.html
Copyright © 2020-2023  润新知