C语言II博客作业01
作业头
这个作业属于哪个课程 | <C语言程序设计II> |
---|---|
这个作业要求在哪里 | <作业01> |
我在这个课程的目标是 | <贯通寒假和上个学期的所有知识 |
参考文献 | <C语言程序设计,百度> |
1.二、本周作业(总分: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;
思路:通过循环取余值进行求和,调用定义函数进行计算。
输入数据 | 输出数据 |
---|---|
12 | 5 |
1000 | 301 |
9999 | 4000 |
2.满足条件”f(N)=N“的最大的N是多少? | |
思路:进行再次,多次的循环,找到最大值 | |
1: | |
目前来说能找到的最大值是十一亿————1111111110。 | |
2: | |
3.改进思路:可以使用数组和字符串进行“选择排序”,进行不断的选择代替,比如为: | |
for(j=i+1;j<n;j++) | |
{ | |
if(a[j]<a[min]) | |
min=j; | |
}这种思路进行代替循环,可惜能力有限,很难用c语言搞到一块去,但是我用c++成功了(可能寒假c++搞多了,c基础重开了)。 |
2.2将上题中多组测试数据写入文件,并给出测试程序以检测你的代码有没有问题,贴出你的代码、运行结果和文件内容。
2.3用自己的语言回答两个问题,并给出所查阅资料的引用(10分)
1.什么是文件缓冲系统?工作原理如何?
文件缓冲区即系bai统在读du写程序时在内存中开辟的数据源zhi与数据目标dao中间的一个zhuan用于保存完整数据内容的缓冲区域。
原理:缓冲文件系统会自动在内存中为被操作的文件开辟一块连续的内存单元作为文件缓冲区。当要存取时,先把数据写入缓冲区,当写满512B时自动清空缓冲区,再写入新数据,存取数据通过缓冲区进行写读。
2.什么是文本文件和二进制文件?
ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。
二进制文件是按二进制的编码方式来存放文件的。 例如, 数5678的存储形式为: 00010110 00101110只占二个字节。二进制文件虽然也可在屏幕上显示, 但其内容无法读懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。 输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。 因此也把这种文件称作“流式文件”。
2.4 请给出本周学习总结(15分)
周/日期 | 这周所花的时间 | 代码行 | 学的知识点简介 | 目前比较迷惑的内容 |
---|---|---|---|---|
3.1-3.7 | 25h | 260 | 字符串,数组,各种算法 | 字符串与算法的结合 |
- 累积代码行和博客字数
时间 | 博客字数 | 代码行数 |
---|---|---|
第一周 | 400 | 260 |
- 学习内容总结和感悟
数据结构不是很容易学习的,需要大量时间和精力进行训练,编译,当然计算机语言的学习时候相当有意思与吸引人的,我会尽力在学习的路上越走越远,越学越精。