20165211 学习基础和C语言调查

20165211 学习基础和C语言调查

理论脱离实践是最大的不幸。——达芬奇html

达芬奇,是我眼里最有嫌疑的穿越者。编程

绘画、天文、雕塑、音乐、发明、建筑,数学、生理、物理、天文、地质……我很难想象有一我的能在这么多的领域都取得堪称你们的成就。从他的这句话中,彷佛能让咱们一窥他成功的秘诀。小程序

在阅读了娄老师的博客后,我对于以后的学习也有了一些的感触,就在这里记录一下吧。数组

在娄老师的博客作中学中,老师与咱们分享了学习的经验方法,并向咱们推荐了一些学习的资料和途径,并和咱们分享了练五笔减肥打乒乓球背单词的经验。在这些过程当中,注重方法,作好规划,注重坚持。网络

我主要的感悟是,一是要有足够科学的方法,娄老师所强调的作中学,强调了,学习须要的是理论,思考,实践,总结的结合。二是要作一个自制的人,这里的自制不限于自个人克制,更多地是在于<span style="color:red">自个人管理</span>,克制恶习的同时,要能主动地去完成本身的目标,因此,在这中间,我认为制定本身的目标,并对本身进行自我和外界的监督极为重要。多线程


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

这个问题,其实我是有一些惭愧的,父母一直奉行着放养原则,并不强迫我去参加一些兴趣班,补习班之类的,而我对于本身感兴趣的事物大可能是自学,要达到比90%的人要好,我确定是没有这个自信的。仔细想了以后,本身能写的大概就是自学能力和耐心能写吧。编程语言

就自学能力来讲,我以为本身应该能够算是比大多数人要好一点,小时候对奥数比较感兴趣,奥数班也是我为数很少的报的兴趣班,在那里的一些思惟方式对于以后一些知识的理解助力。以后在高中也报了很多的竞赛,高二时未选生物,生物也算是基本自学,也有一些成绩。还有本身感兴趣的事物,也基本是自学。还有耐心,最明显的表现大概就是,我对于一些细小的工做会更加的感兴趣。函数


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

总结一下,我以为经验主要是有如下几点吧:学习

  1. 兴趣的指引,能够做为本身学习的最初动力。
  2. 在有兴趣的同时,要有即刻去作的行动能力
  3. 要作好规划管理,为本身制定好计划
  4. 要有足够的自制能力,在最初的热情褪去的时候,要有坚持执行本身计划的自制力。
  5. 都对本身实行自个人监督外界的监督

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

共同之处的话,我以为主要在于。<span style="color:red">规划,自制和合适的监督</span>这三点。url

我以为这三点,<span style="color:red">规划</span>在于在学习之初的指导做用,还有对本身的一个指望,是学习开始一个必要的阶段。<span style="color:red">自制</span>,则是可以坚持的关键,也是整个学习过程的关键,否则,三天打鱼,两天晒网,只在初期努力就只能在得到很浅的知识,并不能对本身有什么提高。<span style="color:red">合适的监督</span>则是一个辅助的机制,减小本身的惰性心理,预防放弃也是不可小视的。


有关C语言学习的调查

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

在C语言的学习过程当中,在大一上学期就已经有所接触,并且我认为我主要的知识也是在大一上完成了基本的了解,下学期主要着重于积累和练习。我以为主要的学习过程为:自学,听讲,练习,复习,巩固。

相比于以前提到的技能,我以为主要的区别就在于,C语言,我是出于一种必要技能的须要来学习的,并非出于我的最初的兴趣。而且,由于在下学期又进行了二次的学习,算是学习了两次吧。

我以为在C语言的学习过程当中,主要的经验教训在于,在学习以后,不能只能依靠练习来进行复习,毕竟,咱们所接触的那些练习和题目,都是在咱们能力范围内的,而C语言,有不少实际上是咱们上课程上接触不到的,对于编程语言的学习,若是只限于课程范围内,那么就永远只能掌握很小的一部分,咱们要在掌握的基础上,不断扩展,才能真正的掌握知识。

目前为止估算本身写过多少行C代码?理解的状况如何?量变引发质变,如何平衡质和量?

我以为本身写的代码,大概有3000到4000行。就本身所掌握的来讲,这3000~4000行代码,有很大一部分是一些内容的变形,重复。就这些小部分的知识,我以为掌握是没有问题的。可是很无奈的是,C语言的内容并非只有这些,有不少知识,我至今仍是只知其一;不知其二,甚至根本不了解。

我以为在学习中质变和量变有两种,一是对一个知识点或对某一个知识块的了解和练习的量变达到一个对这一个知识的质变的点,也就是彻底的掌握和延伸。二是这样的知识点或知识块的积累的量变,而且,达到了这样的知识块的链接,则达到了整个学科的理解的质变。简单来讲,就是<span style="color:red">量变引发部分的质变,再到总体的质变</span>。咱们不能停留于一个个部分的质变,而要不断去追求总体的质变。

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

  1. 数组指针:指向数组地址的指针,本质是指针
  2. 指针数组:元素是指针的数组,本质是数组,例如int *p[3]
  3. 函数指针:指向函数的指针变量,用途为调用函数和作函数的参数
  4. 指针函数:返回值是指针的函数,本质是函数

对于这个问题,我还有有点懵的,去找了一些博客做为参考的资料的。

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

并不清楚,如下是我查阅资料所得:

  • 文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。每一个文件都有文件名、文件所在路径、建立时间及访问仅限等属性。
  • 流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通讯管道等。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。除了和磁盘文件直接相关的文件流之外,流还有多种类型。流能够分布在网络中、内存中或者是磁带中。
  • Windows 平台中,程序中是 "\n",对应的文件内容是 "\r\n";而二进制文件的写入和读取按其原样。例:定义 fp 是 Windows 平台中以文本文件形式打开的文件指针,则 fprintf(fp, "\n"); 运行后,文件中多了 "\r\n"。
  • 文件的操做
文件的打开操做 fopen 打开文件
文件的关闭操做 fclose 关闭文件
文件的读写操做 fgetc 从文件中读取一个字符
fputc 写一个字符到文件中去
fgets 从文件中读取一个字符串
fputs 写一个字符串到文件中去
fprintf 往文件中写格式化数据
fscanf 格式化读取文件中数据
fread 以二进制形式读取文件中的数据
fwrite 以二进制形式写数据到文件中去
getw 以二进制形式读取一个整数
putw 以二进制形式存贮一个整数

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

C语言是一种面向过程的程序设计,这是一种以过程为中心的编程思想。

解决问题的方法为:分析出解决问题所须要的步骤,而后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就能够了。

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

查阅了如下资料,emmmm...仍是有一种只知其一;不知其二的感受啊,感受到本身对C语言的了解仍是停留在很表层的阶段,多个源文件的程序也没有写过。

以独立性、低耦合性,逐层分解”的基本思想描述(分解)系统,首先以数据流图为基础导出系统模块(功能)结构图,直到每一模块都是功能单一的模块系统模块(功能)结构图
结构化设计方法、“自顶向下、公共模块做为模块划分的原则,再将各大模块继续划分为较小的模块、高内聚性。

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

在学习过程当中,常常听到这个原则,可是没有详细的了解过,又只能找度娘了......

怎样理解高内聚低耦合

image

内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当刚好作一件事。它描述的是模块内的功能联系;

耦合是软件结构中各模块之间相互链接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及经过接口的数据。

就我我的的理解就是,在系统之中,单个模块要使他尽量的联系紧密,可是模块之间,尽量的使其独立存在,减小相互之间的影响。

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

我将全部的功能都放在了下面这个程序里了。

#include <stdio.h>
#include <stdlib.h>
#define N 100
int main()
{
    int a[N],b[N],n,i,j,temp;
    printf("请输入数组中数的个数:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
        b[i]=a[i];           //数组复制
    }
    for(i=0;i<n;i++)
    {
        if(a[i]==5)
        {
            printf("数组中有5");
            exit(0);
        }
    }
    printf("数组中没有5");    //查找数组中的5
    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;
            }
        }
    }                         //从大到小排序
    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;
            }
        }
    }                         //从大到小排序
    return 0;
}

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

这个程序,真的是没什么头绪,个人文件操做,真是的,一团糟,当时也只是作了一点点的了解(有种后悔莫及的感受......)

目前思路大概是,导入文件,统计换行符,判断注释及空行。可是,文件操做真的是一团乱麻,因此如今先写了一个统计行数的程序。

#include <stdio.h>
#include <stdlib.h>
int main()
{
    char a;
    int l=0;
    do
    {
        a=getchar(); 
        if (a=='@') break;
        if (a=='\n') l++;
    }while(1);
    printf("共有%d行。\n",l); 
}

还有文件的操做部分和对于注释空格的判断,打算不断地学习完善,争取能尽快写出来!

下面是一些找到的博客资料,做为完善的参考:

用C语言编写一个程序,统计一个文本文件的行数。

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

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

断点是一种调试方法,即在调试中设置断点,下一次让程序自动运行到断点位置,即可在上次设置断点的位置断下来,能够提升调试的效率。


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

  1. JAVA的平台无关性是怎样实现的?
  2. 字符串长度较长时用并置符号链接,那么咱们通常划分字符串长度的标准是什么?
  3. instanceof运算符的具体使用方法及使用场合?
  4. 类和C语言中的结构体是否能够类比,两者之间的主要区别是什么?
  5. 子类继承父类的方法有哪些?有什么不一样之处?
  6. 接口是怎样克服Java单继承的缺点的?
  7. 内部类,匿名类,异常类的定义,及在Java语言中如何使用?
  8. String类及StringBuffer类之间的不一样和联系,以及各类经常使用实用类的使用场合。
  9. 窗口的含义,做用及使用方法。
  10. File类的各类方法的使用是否能够比较C语言中的文件操做进行类比比较理解?
  11. 预处理语句的做用及具体的使用方法。
  12. 线程的定义以及多线程的概念。
  13. URL类是指什么,有何特色?
  14. 绘制这些基本图形,以及对基本图形的变形的具体操做是怎样实现的?可否实现简单的绘画功能?
  15. 怎样具体了解堆栈及相关概念?

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

个人目标主要就是可以真正的学到知识,能独立的编写完成本身的小程序。在简单看了一遍PPT以后,我几乎有一种头昏脑涨的感受,各类概念,名词,在脑子里乱飞。

在即将到来的Java学习中,我对本身的最低要求是要可以真正的理解掌握新的知识。在作完C语言基础的调查以后,我深深地感受到,以前的C语言学习和成绩是有很大水分的,有一些概念真的是一律不知。在此基础上,还须要作知识的延伸,理解掌握这门课。

相关文章
相关标签/搜索