20165214 学习基础与C语言基础调查

读后感

我花时间仔细阅读了娄老师公众号上的那5篇关于自己各个方面学习经历的文章,随后深为震撼又自愧不如。

我实在没想到,这套学习方法竟有如此巨大的力量!纵使在娄老师不熟悉的乒乓球领域,娄老师也能通过这样的努力来让自己变得强大。

在读这些文章时,我脑子里最常浮现出的是这样一句话——“种一棵树最好是在十年前,其次是现在”。我们经常拿着“现在学已经晚了,学不会了”这样的借口来安抚自己的慵懒与不争,却把“只怕有心人”视而不见。

可以看得出来,娄老师一直秉承着“活到老,学到老”的精神。可身为学生的我,年尚弱冠,却常常无法静下心来凝志于学习,实在惭愧。

欠债还钱就行,可是偷懒却要偿命——你偷了多久的懒,就要用多久去还,要是你不甘心、你不愿意,那就用一辈子去还,信不信由你,做不做由你,反正结果得你自己担着。

娄老师在做中学里引用的这句话给了我当头一棒。

慎独处身,心若泰然

—— 曾国藩

于是,通过慎独,我反省了长久以来自己不应该的偷懒,并给自己制定了几个短期的计划,决定自己通过实践来见证自己潜藏的力量。

其实我也有过这样的经历,只不过较为平淡,而且现在也还在努力。自上大学以来,我开始坚持阅读,或多或少但是毫不动摇。一开始选择的图书比较偏向自己的意愿,后来读得稍微多一些了,懂得了“书山无尽”,于是想要让自己能够读到更好更有价值的书,以免读到无用书浪费自己的时间,影响自己的价值观,所以开始向老师询问这方面的问题。要说起读书给我带来的好处,在具体的物质上还没有体现,但在精神上倒是切实地感受到了个中好处。我学会了保持内心的平静,同时学会了与孤独对抗,学会用更客观多样的眼光来看待一些事物。这些都是无价的。

至于JAVA的学习,我觉得也大同小异。首先,一定要多练,通过不断地训练,不断的写,让自己对JAVA的基本语句和框架了然于胸。之后开始挑战自己不会的领域,在不断把与自己觉得困难的内容斗争中获得自身的成长。在这个过程中,要克服自己面对困难的缩怯心理。不懂要会问,敢问,爱问(其中,会问是最重要的)。之后,做到“学而时习之”。这样一来,相信我的学习成果不会太差。

  • 你有什么技能比大多人(超过90%以上)更好?
    钢琴。

  • 针对这个技能的获取你有什么成功的经验?
    兴趣是最好的老师。在学钢琴之前,我有一次亲眼看到同学的演奏,感到心动,并且马上对钢琴有了兴趣。有了兴趣,我在学习时便全身心地投入,学起来比较快也比较轻松。之后通过不断对指法等基础 进行训练,加上学一些自己喜欢的歌,不断来提高自己。我觉得对于JAVA的学习也是如此。首先要培养起自己对于这门课程的兴趣,然后学好基础语法与框架,然后再进行提升。

  • 与老师博客中的学习经验有什么共通之处?

    最基本也是最重要的一点,要坚持。要想掌握某样技能,坚持是必不可少的。

    另外,要通过不断的练习来打好基础。

    及时反馈,知道自己的不足并改正。

  • 有关C语言学习的调查

    • 你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?

      当时学C语言时,学校的练习平台给我们提供了一个很好的练习环境。所以我一般是先看书,把书上的内容看懂了,然后针对看的这部分内容进行做题练习,通过做题来 知道自己有哪些 部分是不足 的,在不断地补缺补漏中提高自己的C语言水平。

      经验与教训就是 要敢于迎难而上,对于困难的题目一定要动脑去想。这个道理大家都懂,但是要做到真的很难。我们遇到难题难免有一种排斥心理,但是一定要克服这种心 理,这是进步的 关键。还有,勤能补拙。每个人有自己擅长的方面,像对于C语言的学习,有的同学有天赋学得比较快,令人羡慕。但是我们通过勤奋多学多练,是可 以追上他们的。

    • 目前为止估算自己写过多少行C代码?理解的情况如何?量变引起质变,如何平衡质和量?

      目前写了5000行左右代码。理解情况还好。因为对于不懂的地方我一般会去钻研,懂了才会做题。我们在马原课上学过,量变是质变的必要准备。也就是说,想要产生 质变,量变是非常重 要的。在学习上,我们要注意平时的每一次积累,积累到一定的程度,自己的水平就会有一个提升。此时,还不能放松,要开始注意新的量变, 也就是开始新的学习。这样不断反复,自己 的能力就会提高了。

    • 学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?

      数组指针就是指向数组的指针。如int (*zwy)[50]

      指针数组是由若干基本类型相同的指针所构成的数组。如int *zwy[50]

      函数指针就是指向函数的指针。如int (*zwy)(int a,int b)

      指针函数是函数的返回值是指针.如int *zwy(int a,int b)

    • 学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?

      学艺不精,还不明白这两者的区别和联系,于是上网搜索。

      文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。每个文件都有文件名、文件所在路径、创建时间及访问仅限等属性。

      流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道等。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。除了和磁盘文件直接 相关的文件流以外,流还有多种 类型。流可以分布在网络中、内存中或者是磁带中。

      文本文件中的每一位数字都单独占用一个字节的存储空间。而二进制文件则是把每个数字作为一个二进制数来存储的,并非数值的每一位数字都占用单独的存储空间。还 没有编程操作过着两种文件,看了一下书上,函数fopen()用来打开文件,函数fgetc()用于从一个以只读或读写方式打开的文件上读字符。fputc()用于将一个字符写到一 个文件上,函数foef()用来检查是否到达文件末尾等等。

    • 学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?

      面向过程是一种重视过程,以过程为中心的编程思想。先分析出解决问题的所需步骤,然后用函数把这些步骤逐步实现,使用的时候再逐个调用。

    • 在C语言里面,什么是模块?你写过多个源文件的程序吗?

      由定义,程序模块即可由汇编程序、编译程序、装入程序或翻译程序作为一个整体来处理的一级独立的、可识别的程序指令。目前还没有写过多个源文件的程序。

    • 学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?
      通过上网查阅,加以自己的理解,我觉得“高内聚”的意思是一个模块内各部分元素联系紧密,只负责一项任务。“低耦合”的意思是不同模块之间尽可能独立存在。

    • 学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。

#include <stdio.h>

#include <stdlib.h>

#define N 100

void copy(int a[],int b[],int n);

void paixu1(int a[],int n);

void paixu2(int a[],int n);

void zhao5(int a[],int n);

int main()

{

    int a[N],b[N];

    int n,i,t;

    printf("输入数组中的数字个数n
");

    scanf("%d",&n);

    printf("输入数组中的数字
");

    for(i=0;i<n;i++)

    {

        scanf("%d",&a[i]);

    }

    printf("选择以下功能
");

    printf("1.数组a复制到数组b
");

    printf("2.查找数组中有无5
");

    printf("3.从小到大排序
");

    printf("4.从大到小排序
");

    scanf("%d",&t);

    if(t==1)

        copy(a,b,n);

    else if(t==2)

        zhao5(a,n);

   else if(t==3)

       paixu1(a,n);

   else

       paixu2(a,n);

}
void copy(int a[],int b[],int n)

{

    int i;

    for(i=0;i<n;i++)

    {

        b[i]=a[i];

        printf("%5d",b[i]);

    }

}
void paixu1(int a[],int n)
{

    int i,j,t;

    for(i=0;i<n-1;i++)

    {

        for(j=i+1;j<n;j++)

        {

            if(a[i]>a[j])

            {

                t=a[i];

                a[i]=a[j];

                a[j]=t;

            }

        }

    }
    for(i=0;i<n;i++)
    {
        printf("%5d",a[i]);
    }
}
void paixu2(int a[],int n)
{
    int i,j,t;
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
       {
            if(a[i]<a[j])
            {
                t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
        }
    }
    for(i=0;i<n;i++)
    {
        printf("%5d",a[i]);
    }
}
void zhao5(int a[],int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        if(a[i]==5)
        {
            printf("有5
");
            break;
        }
    }
}
  • 写一个程序,统计自己C语言共写了多少行代码。

    学艺不精,上网搜索了一下代码,然后自己把它研究懂了。

#include <stdio.h>
int main()
{
    int cnt=1;

int c;
    while((c=fopen())!=EOF)
     {
       if(c=='
') cnt++;
    }
    printf("%d
",cnt);
    return 0;
}
  • 你知道什么是断点吗?给出自己调试程序的例子。

    在代码的某一行设置断点,程序运行到该行会停止,然后我们就可以对程序进行逐步调试了。

    下面是杨辉三角调试

  • 参考怎样快速阅读一本书,快速阅读一下云班课中有PPT,每章提出一个问题。

    第一章:Java是不是只有在一定的环境下才能实现编程,运行编程?虚拟机要如何操作?

    第二章:感觉Java里有不少跟C中的相似,但是又比C更直接更方便。在处理从C到Java的过渡时,应该注意些什么?

    第三章:关于break的用法,PPT里面说default语句的位置是任意的,这是为什么?平时一般写的时候都会将它放在最后。

    第四章:看第四章感觉有结构体和函数的一些特征,但其中的对象的组合与复用是什么意思?这段我现在还看不懂。

    第五章:这章的内容略抽象。。看了一会也没看懂个中的意思,特别是“面向抽象编程”这一段。想知道这一部分在实际中的应用是什么?

    第六章:感觉接口有点像C的函数调用。接口回调的意思是什么?

    第七章:匿名类去掉了类声明,这样的话它在与其他类(非匿名类)混用会对整个程序造成什么影响?

    第八章: 类的种类有点多。。他们之间有没有什么共通的地方?如何在掌握一两种类的情况下快速地掌握其他类?

    第九章:Java Swing如何实现多种时间的解决?

    第十章:后面的内容越来越难了。。我的速读能力比较弱,里面的内容感觉有点杂。问题与第八章的问题类似,怎么掌握那么多的流?

    第十一章及后面的章节:后面的内容对我来说难度很大,包括MySQL、线程、各种制作等整个ppt看下来也很不解,提不出什么好问题。下学期的学习中我相信自己会在学习过程中提出好问题的。

  • 对比C语言的学习,你对《Java程序设计》的学习有什么具体目标?如何通过刻意训练提高程序设计能力和培养计算思维?如何通过“做中学”实现你的目标?
    我觉得Java是一门很重要的课程。虽然现在我还什么都不会,但是我想学好它。给自己一个目标:我要在本学期内熟练掌握课本中的每一个知识点。然后通过打好基础,多做、多思考难题来提升自己。在实际编程的过程中多思考,遇到问题要敢于动手去尝试着解决。同时在这个过程中,应该及时看到自己的不足并及时补缺补漏,这样不断在实战中提高自己的水平。
    在这期间,老师的严格要求定会是我的学习路上的一盏照明灯,同时我也会以更高的标准来要求自己。

原文地址:https://www.cnblogs.com/zhuwenyuan/p/8409755.html