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分)

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

原文地址:https://www.cnblogs.com/ylp0621/p/14484380.html