C语言II博客作业01


这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2020-2
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11757
这个作业的目标 回顾数据类型和表达式
学号 20208993

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;
2.满足条件”f(N)=N“的最大的N是多少?
1.贴出代码图片,写出解题思路,列出测试数据(5分)


解题思路:利用循环从1到N一个个的提取出来判断和统计1的个数,利用头文件time.h中的clock库函数记录程序开始
时间和结束时间,将两时间相减得到程序运行用时。
2.给出不同测试数据的运算时间,如果你的运算时间不变,说明你的测试数据不够大(5分)






3.思考针对足够大的数据,如何减少运算时间,并给出在原有算法基础上的改进算法和改进思路。
要减少运行时间就得从循环结构入手,减少循环次数自然而然就减少了运行的时间。通过设置条件跳过其中不必要的循环,
如果十位不是1个位是1则加8可减少循环次数,减少运行时间。
改进算法如图所示:

改进前测试数据:


改进后测试数据:


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


2.3 用自己的语言回答两个问题,并给出所查阅资料的引用(10分)
1.什么是文件缓冲系统?工作原理如何?
文件缓冲系统协助内存与磁盘交换数据,提高内存与磁盘交换数据的速度。
工作原理:因为磁盘文件数据的存取速度与内存数据存取访问速度不同,所以在文件操作时,系统自动为每一个文件分配一块文件缓冲区,内存与磁盘交换数据时,
先将数据放置在缓冲区,当缓冲区数据达到一定大小时再将数据移除,再接受新的数据。

2.什么是文本文件和二进制文件?
文本文件:以字符ASCII码值进行储存与编码的文件。文件内容为字符,若将数据放入文本文件中,数据将以其对应的ASCII码值存储在文件中。
二进制文件:储存二进制数据的文件。储存在里面的数据只有计算机才能识别。

2.4 本周学习总结(15分)
1 学习进度条(5)

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

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

感悟:1.觉得假期有点玩得太过了,代码写起吃力。
2.之前学的知识远远不够,得用课外时间多学点课外知识。
3.这个学期得更加努力了。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM