• C语言II博客作业01


    这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-4
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-4/homework/11756
    这个作业的目标 回顾上学期所学知识,数据类型和表达式;学习章节文件,学会写测试程序
    学号 20209217

    一、本周教学内容&目标

    第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;

    ①代码图片如下

    ②解题思路:

    输入一个符合题意的正整数N,然后从1到N的所有整数用函数F(N)依次计算出现”1”的个数,其中求每一个整数中出现”1”的个数则通过c=k%10,r=k/10来计算count的值,即”1”出现的个 
    数,count的初始值为0,若c=1,则count加1,直到整数N计算完,最终count的值即为从1到N的所有整数出现的所有”1”的个数。
    

    ③测试数据

    N result(出现“1”的个数) 运行时间
    12 5 0.730000s
    754 256 0.931000s
    4235 2354 1.334000s
    898665 549637 1.634000s
    56575744 49990755 3.254000s





    ④改进算法和改进思路:减少循环运算次数,找能直接将1~N所有整数出现“1”的个数算出来的函数。

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

    答:最大的N是1。因为当N=1时,F(1)=1;当N=2时,F(2)=1,此时的N已经大于F(N),所以只有N=1时,F(N)=N,所以满足条件”f(N)=N“的最大的N是1。

     要求:
     1.贴出代码图片,写出解题思路,列出测试数据(5分)
     2.给出不同测试数据的运算时间,如果你的运算时间不变,说明你的测试数据不够大(5分)
     3.思考针对足够大的数据,如何减少运算时间,并给出在原有算法基础上的改进算法和改进思路。(10分)
    

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

    ①代码

    ②运行结果

    ③文件内容

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

    1.什么是文件缓冲系统?工作原理如何?

    答:①缓冲文件系统,又称为标准文件系统(标准I / O),是高级文件系统,进行文件操作时,系统会自动为正在使用的文件分配一块文件内存缓存区。缓冲文件系统能使C语言对文件的处理提高数据存取访问的效率。②工作原理:文件缓冲系统的工作原理包括三个部分,C程序、磁盘、内存缓冲区。程序借助缓冲区操作磁盘文件的数据,磁盘与内存缓冲区由操作系统自动完成交互,程序通过跟内存缓冲区打交道处理数据。

    2.什么是文本文件和二进制文件?

    答:在C语言中,按数据存储的编码形式,数据文件可分为文本文件和二进制文件两种。文本文件是以字符ASCII码值进行存储与编码的文件,其文件的内容就是字符。二进制文件是存储二进制数据的文件。根据数据存储的形式,文件的数据流又分为字符流和二进制流前者称为文本文件(或字符文件),后者成为二进制文件。C语言源程序是文本文件,C程序的目标文件和可执行文件是二进制文件。

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

    2.4.1 学习进度条(5分)

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    第一周 3天 112 编写测试程序,检测代码是否正确,计算运行时间 怎么使非常大的测试数据运算速度加快

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

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

    学习内容总结

    学习感悟

    1、通过老师的讲解以及本次作业的完成,我对所学的知识有了更深的了解,在完成本次作业的过程中,学会了如何计算运行时间,如何将文件放到程序中,使之打开并测试;
    2、此次学习的内容还不是太熟悉,完成的速度比以前慢了一点;
    3、对不熟的要多加思考多加练习。

  • 相关阅读:
    方法指针或非指针类型接收器
    error接口
    17、想要回到项目上一版本,或者指定版本时,如何进行操作?
    08、想要找到所有操作记录时,如何操作
    16、不再追踪时,如何实现撤销追踪操作
    1月19日a
    1月18日
    1月20日
    1月25
    1月17日
  • 原文地址:https://www.cnblogs.com/zhge/p/14487075.html
Copyright © 2020-2023  润新知