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

学习基础与《做中学》阅读心得

读《做中学》有感

娄老师通过在学习工作中总结出的“做中学”的方式,将其运用到减肥、五笔训练、乒乓球训练以及英文单词背诵的过程中去。其中令我最有感触、记忆最深刻的一句话是:

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

--引用自《做中学

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

我在学习钢琴和街舞方面都有深刻的体会。

  • 我学习钢琴已有8年的时间,由于当时准备中考,学业繁重便放弃了钢琴考级与业余课程。但是我对心中持有一份热爱,在高中以及大学假期的闲暇时间都会自己寻找喜爱的曲目进行练习,以保持对于键盘与五线谱的熟悉程度。
  • 我开始学习街舞也只有1年的时间。中学因为中高考的压力,有心却无力。大学开始加入街舞社,正式开始学习街舞。起初自己的身体很僵硬,动作难看生硬,也是因为热爱让我在假期报班学习,夏天练到衣服湿透,但也在大二的表演中有了更大的进步,也赢得了更热烈的喝彩。

针对这个技能的获取你有什么成功的经验?

成功的经验我总结为3点:

  • 热爱的心
  • 反复练习,但是要具有科学性,不能影响身体健康
  • 在过程中思考可以提升自己这方面实力的方法

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

老师在博客中也是认为需要大量反复的练习,实践要有一定的量,才能引起质变,在形成新质的基础上,又能形成新的量变,如此循环往复。另一个共通之处是: 学习是要思考的,仅仅实践是不够的。

有关C语言学习的调查

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

  • 我通过学习课本上的知识点来掌握理论知识,并先理解书上所举的例题,并读懂主要代码的作用,并记录自己不懂的知识点。再将答案盖住,自己在cb上写出程序并运行,如果出错,就对照书上答案进行修改。除了课本,还会在题库中进行习题的训练。
  • C语言学习经验:要进行大量的习题练习,并要理解程序的作用。
  • 教训:由于基础知识薄弱,只练习了容易以及中等的题型,没有进一步进行提高。即使观看了微课也有点难懂某些知识点,仍需要多向同学老师进行询问。

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

  • 自己写了4000行代码左右(在第一篇博客中我也有提到自己基础薄弱,仅完成了基本的学习任务)
  • 量变首先是要有质量的,一味的简单题进行大量训练也只会增加自己对于这部分简单题的熟练程度,难以引起真正的质变。质变的基础,是需要有难度层次变化的形成的。所以,应通过有质量的量变引起质变,从而进行良性循环。

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

  • 数组指针是指一个指向某一特定数组的指针;指针数组是指一个数组里所有变量都由指针构成。
  • 函数指针是指一个指向函数的指针变量;指针函数是一个函数,其返回值是一个指针。

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

不明白。

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

  • 面向过程程序设计是一种以过程为中心的思想。分析出解决问题所需要的步骤,用函数一一实现。
  • 解决问题的方法是“从上到下”。

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

  • 模块就是把每实现每一个功能的一段程序分步编写出来,这样的每一个部分就叫模块。
  • 没有。

学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?

  • 不知道。经过查找资料了解到,高内聚是指模块内各个程序段之间联系紧密,低耦合是指模块间独立存在,完成各自功能,模块之间的接口尽量少,关系简单。
  • 我认为一个高质量的程序应该是模块内部之间联系紧密,利于程序的高效性;模块之间应减少联系,否则会影响程序的可维护性,难以修改。

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

  • 把数组A的内容复制到数组B
#include <stdio.h>
int main()
{
    int a[10]={1,2,3,4,5,6,7,8,9,10};
    int b[10];
    int i;
    for(i=0;i<10;i++)
        b[i]=a[i];
    return 0;
}
  • 查找整数数组A中是否有5
#include <stdio.h>
#define N 10

int main()
{
    int n=5,i;
    int a[N]={10,8,56,45,31,49,47,50,89,100};
    for(i=0;i<N;i++)
    {
        if(a[i]==n)
        {
            printf("数组中存在5。\n");
            break;
        }
    }
    if(i>=N)
        printf("数组中不存在5。\n");
    return 0;
}
  • 对整数数组A进行排序

从小到大

#include <stdio.h>
#define N 10

int main()
{
    int a[N],i,j,temp;
    printf("输入10个整数:\n");
    for(i=0;i<N;i++)
        scanf("%d",&a[i]);
    for(j=0;j<N-1;j++)
        for(i=0;i<N-1-j;i++)
           if(a[i]>a[i+1])
            {
                temp=a[i];
                a[i]=a[i+1];
                a[i+1]=temp;
            }
     printf("排序后的结果为:\n");
     for(i=0;i<N;i++)
        printf("%5d",a[i]);
     printf("\n");
}

从大到小

#include <stdio.h>
#define N 10

int main()
{
    int a[N],i,j,temp;
    printf("输入10个整数:\n");
    for(i=0;i<N;i++)
        scanf("%d",&a[i]);
    for(i=0;i<N-1;i++)
        for(j=i+1;j<N;j++)
           if(a[i]<a[j])
            {
                temp=a[i];
                a[i]=a[j];
                a[j]=temp;
            }
     printf("排序后的结果为:\n");
     for(i=0;i<N;i++)
        printf("%5d",a[i]);
     printf("\n");
}

写一个程序,统计自己C语言共写了多少行代码。

  • 以上面数组排序的程序为例,大概30行左右。

你知道什么是断点吗?给出自己调试程序的例子。

  • 断点是指在调试程序时,程序运行到你设置断点的该行代码自动停止的地方。
  • 在调试程序时,断点可以深入代码,查找代码内部缺陷,提高了编程的效率。

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

1、Java源文件中为什会有不同的类?怎么区分?
2、数组的引用是什么?
3、for语句在Java中所具有的不同于C语言中的用法有什么?
4、实例方法和类方法的区别是什么?
5、子类与对象之间的关系是什么?
6、接口如何理解以及面向借口编程的思路是什么?
7、异常类如何使用?
8、String类与StringBuffer类的区别与联系?
9、常用布局所适用的情况对应是什么?
10、不同的子类所对应的输入、输出流的类别是什么?
11、如何使用预处理语句?
12、如何创建多线程?
13、套接字与对象如何进行连接?
14、绘制基本图形应该注意什么?
15、如何对泛型和集合进行使用?

对比C语言的学习,你对《Java程序设计》的学习有什么具体目标?如何通过刻意训练提高程序设计能力和培养计算思维?如何通过“做中学”实现你的目标?

  • 自己在C语言学习中体悟到的经验和教训,使我对Java的学习设立的目标是:课后立即进行复习和对应知识点的训练,注重平时的点滴积累。
  • 首先要完全掌握一些典型的例题,并弄明白这些最基本的程序,并进行练习,当这些基础熟悉之后,再训练难度较大的题目,对于自己不会的部分及时询问老师同学进行解决,尽力理解难点。
  • 一是要理解自己学习的这些内容的原理,弄懂本质;二是要根据自己的实力,立下一个适合自己的奋斗目标;三是要进行足够量的练习;四是要刻意训练,这是一个由难到易的过程,要摒弃无用的反复练习;五是要及时改正老师提出的自己的问题和错误。
posted @ 2018-01-31 00:10  minchan0624  阅读(240)  评论(1编辑  收藏  举报