• 学习基础和C语言基础调查


    读文章有感及学习基础与C语言基础综述

    心得体会

    学习是要思考的,仅仅实践是不够的。

    在过去老师往往强调要多练,题海战术做多了自然也就熟练了,却往往忽视了思考可以让你更快的总结出经验,减少量变到质变中的量。在C语言学习中我就犯了这样的错误,那时对于配套的题库,我更多的是执着于敲代码,忽略了对于错误的总结以及对新知识点的分析学习,这也使我那时的学习状态处于一种明明我练了很多,但是对于老师的小测试,成绩还是不理想的状态。直到期末,考试的来临逼得我去思考,去归纳总结,C语言的水平才有了从量变到质变显著的提升。同时我将这种勤思考勤归纳的方法用来学习大物、密数、概率论、马原都取得了不错的结果,可见思考的重要所在。

    实践要具备一定的量才能引起质变。

    C语言的学习过程中,最开始我是抽着题库中的题练,练习的量可能也只是处于班级中等偏上的水平,但可能由于最初对C语言的理解相对薄弱以及后期学习总结不到位的原因,C语言水平始终没有多大的提升。直到后期当我能在学会基础题的前提下逐步掌握中等偏难的题时,我的总分从500分到2500分时,我才真的感受到了量变到质变的带来的成果。

    技能的提升要“刻意训练”

    同样是C语言的题库,在最初学习时,我很乐意去做简单题,做来做去就那么几种类型,行数少还容易,上分还快,然而这样也真的提高不了什么水平,老师进行了两次考试后,我明显感觉到我做的和他考的不在一个水平上。后来我强迫自己离开“舒适区”,去进行更深的学习,这个过程很痛苦,会不知道怎么做,会不能在规定的时间内完成,但也带来了很大程度的提升。同时我也很赞同娄老师说的要循序渐进,不能进入“恐慌区”,C语言学习中也是一样,没打牢基础就去纠结太难的题除了浪费时间消磨兴趣带来不了任何益处。

    读过娄老师的文章以后,我感触颇多,总结之后发现自己当时学习中获得的经验和老师都有共同之处,之后的学习我也会谨记曾经犯过的错误,吸取经验,少走弯路。

    技能

    • 回顾过去的19年,我的英语水平以可能相对来说会更好一点。
    • 英语在我眼中无外乎积累,大多数人所谓的学习天赋很大程度是因为他们在幼年时期就开始接触英语,开始去积累。而对于我来说我的英语水平开始发生显著提升是在初中时期,在这之前我也曾报过很多英文班,水平也是处于中等偏下,甚至因为不爱背单词写作业,不止一次被老师点名批评过。后来中学的英语老师每天给我们留10个句子去背,第二天上课就会考,错了的句子就要罚写,四年的坚持,我也不用过多的去纠结语法,很多时候单凭语感就可以了。老师还很注重培养我们的兴趣,带着看英语原声电影,一起学英文歌。后来在他的带领下我开始自主的去学习,去积累好的文章,自主的练听力背单词,英语水平自然而然的的就提升了。
    • 而在参考完老师的学习经验后,我发现量变引起质变在任何学习过程中都是一样的,再差的水平在选对方向后坚持下去,你的努力都会有结果的。同时进步需要我们不断地摆脱舒适区,进入学习区去学习新东西。

    C语言学习

    • 你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?
      在我学习C语言的过程中,我很大程度的依赖了教材和题库。教材是根本,掌握了上面的基础知识才能进行后续的学习,题库则很大程度的帮助我进行练习总结。我学习C语言的经验教训就如上面心得体会中所说的那样,思考与练习要相辅相成,不要急于求成,也不可原地踏步。
    • 目前为止估算自己写过多少行C代码?理解的情况如何?量变引起质变,如何平衡质和量?
      具体写过多少行代码已经记不清了,但是粗略估计大概也有五千多行了,当时对于课本上的内容基本掌握了,但是半个学期没有练习,实话实说的确忘了很多,现在也开始逐步的去捡了。量是必不可少的但是在追求量的基础上要注意思考,通过总结减少质变路上量的需求。
    • 学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?((x[4])())[4]这个声明中的x是什么东东?
      数组指针即指向一维数组的指针,* (a+i)即a[i]。
      指针数组即元素均为指针类型数据的数组。即* P[N]。
      函数指针是指向函数的指针。
      指针函数是一个返回值为地址值的函数,且返回值必须用同类型的指针变量来接受。
    • 学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?
      文件是计算机管理数据的基本单位,是各种存储介质中永久存储的数据的有序集合,是数据读写操作的基本对象。
      流是字节序列的抽象概念,提供一种向后备存储器写入字节和从后备存储器读取字节的方式。
      文本文件中数值型数据的每一个数字是作为一个字符以ASCII码的形式存储的。如123分别对应49 50 51,共占三个字节。二进制文件则是把整个数字作为一个二进制数来存储的,并非每一位数字都占用单独的存储空间。即123表示为00000000 01111011,共占两个字节。
      对于如何编程操作这两种文件不是很清楚。
    • 学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?
      之前不是很清楚什么是面向过程程序设计。大概的查阅了些参考资料后,我觉得面向过程就是将一个事或者说一个任务拆分成几个步骤,对这几个步骤进行描述,拆分成模块后去编程,着重这中间的过程而不是针对这个对象。
    • 在C语言里面,什么是模块?你写过多个源文件的程序吗?
      我理解的模块是将一个大任务分解为一个个子任务,他们彼此负责一定的功能,相互联系,相当于之前学的调用函数中的函数。没有写过多个源文件的程序。
    • 学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?
      高内聚是是指莫快德功能相对独立和单一,各模块有明确的任务,各司其职。
      低耦合是指模块之间的联系相对简单,降低模块之间相互影响的程度。设计程序前先分析程序所需实现的功能,划分成独立的子任务,再进行编程。
    • 学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。
      把数组a中的内容复制到数组b中
    #include <stdio.h>
    #define N 40
    int main()
    {
        int a[N],b[N];
        int i,n;
        printf("请输入a中数组值
    ");
        for(i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
            b[i]=a[i];
            printf("%d ",b[i]);
        }
    
        return 0;
    }
    

    查找整数数组中有没有数字5

    #include <stdio.h>
    int main()
    {
        int a[5];
        int i,flag=0;
        printf("请输入a数组中的值
    ");
        for(i=0;i<5;i++)
        {
            scanf("%d",&a[i]);
            if(a[i]==5)
            {
                flag=1;
                break;
            }
        }
        if(flag==1)
        {
            printf("a中有数值为5的数");
        }
        else
        {
            printf("a中无数值为5的数");
        }
        return 0;
    }
    
    • 对数组a进行排序
      从小到大
    #include <stdio.h>
    #define N 40
    int Line(int a[],int n);
    int main()
    {
        int a[N],n,i;
        printf("n的值为:");
        scanf("%d",&n);
        printf("请输入数组a中的值");
        for(i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
        }
        Line(a,n);
        for(i=0;i<n;i++)
        {
            printf("%d ",a[i]);
        }
    }
    int Line(int a[],int n)
    {
        int i,j,temp;
        for(i=0;i<n-1;i++)
        {
            for(j=i+1;j<n;j++)
            {
                if(a[j]<a[i])
                {
                    temp=a[j];
                    a[j]=a[i];
                    a[i]=temp;
                }
            }
        }
    }
    


    从大到小

    #include <stdio.h>
    #define N 40
    int Line(int a[],int n);
    int main()
    {
        int a[N],n,i;
        printf("n的值为:");
        scanf("%d",&n);
        printf("请输入数组a中的值");
        for(i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
        }
        Line(a,n);
        for(i=0;i<n;i++)
        {
            printf("%d ",a[i]);
        }
    }
    int Line(int a[],int n)
    {
        int i,j,temp;
        for(i=0;i<n-1;i++)
        {
            for(j=i+1;j<n;j++)
            {
                if(a[j]>a[i])
                {
                    temp=a[j];
                    a[j]=a[i];
                    a[i]=temp;
                }
            }
        }
    }
    
    • 写一个程序,统计自己C语言共写了多少行代码。
      对于设计一个程序统计自己写过多少行代码这个任务还没有想到一个可行的方法。
    • 你知道什么是断点吗?给出自己调试程序的例子。
      断点我理解的是指在运行检查程序时设定的一个暂断点,使程序运行到该点处停止。
      image

    Java学习

    • 章节疑问
    1. 第一章的PPT中说类是运行时动态装载的,这就使得Java可以在分布环境中动态的维护程序及类库。这让我对我最初认识的类又产生了疑问,像例子中举的那样,class是已经提前定好的,那什么叫做运行时动态装载呢?
    2. 第二章的PPT里有关数组的引用的描述我没太看懂,没有懂什么叫做数组具有相同的引用。
    3. 第三章有关instanceof语句,提到要判断左面的对象是否为右面的类或子类,那么如何判断呢,是B b=new B ()即b是B的对象么?这个语句判断一般应用在什么问题上呢?
    4. 第四章提到了成员变量又分为实例变量和类变量,二者的区别在于前面是否有关键词static,那成员变量在编译前要如何区分是实例变量还是类变量呢?
    5. 第五章说如果子类继承了父类的实例方法
      ,那么子类就有权利重写这个方法,通过重写可以把父类的状态和行为改变为自身的状态和行为。对于这段描述我没有懂是什么意思。
    6. 第六章对于通过import语句不仅可以引入包中的类,也可以引入包中的接口,对于他实际应用的举例我没有看懂,想要了解更加详细的运行效果。
    7. 第七章提到我们可以扩展Exception类定义自己的异常类,那具体要如何操作呢?
    8. 字符串的分解中提到split方法认为分割标记的左面应该是单词,因此如果和当前String对象的字符序列的前缀和regex匹配,那么split分解出的第一个单词是“”,关于这段解释中的因此,我没太看懂,具体解释是什么呢?
    9. 焦点事件更加直观易懂的定义是什么?
    10. 缓冲流的实际应用是为了解决设么问题呢?
    11. 事务处理只看懂了基本定义,事务处理的步骤要如何应用到具体问题中呢?
    12. 有关线程的定义是否有更加直观的解释,他们之间的关系是顺序关系么?
    13. URL的对象调用应该如何操作?
    14. 绘制图形的布尔运算具体表达为什么?
    15. 堆栈的应用领域是什么?如何应用到实际问题中?
    • 对于接下来的Java学习,我期望自己能够掌握更多的编程技巧,培养一种能力,学会举一反三,
      落实到实处则是每个环节都跟紧老师,努力在每次测试中都取得好成绩,点滴积累最终提高自己的水平。
    • 通过以往的学习,我总结出的经验是首先要掌握基础知识点,其次要有量的积累,不断的尝试总结,可以和同学多交流探讨,碰撞出更多思维的火花。
    • 做中学首先是要有实践,要留出一定的时间去练习,量变达到质变,才能在每个环节做到紧跟老师,其次像C语言留给我的经验教训一样,练习的过程中一定要有思考,要自主汲取新知识,踏出安全区。
  • 相关阅读:
    2020软件工程作业02
    自我介绍
    Requests的使用
    爬虫基本原理
    2019春总结作业
    十二周作业
    十一周作业
    第十周作业
    intellij idea 的全局搜索快捷键方法
    Oracle多表关联
  • 原文地址:https://www.cnblogs.com/KY-high/p/8411969.html
Copyright © 2020-2023  润新知