20165336 技能学习心得与c语言学习

一、心得体会

  • 做教练

    从老师的健身教练健身学员的学习关系中我懂得了学生应该有自主的学习意识,要有计划地去训练、去流汗,并且要以100分的要求严于律己,老师是指导我们、帮助我们、点评我们的,这样老师可以从传统的教学模式中解放出来,学生也能从新的教学方式中受益匪浅。
  • 做中学

    看了韦钰老师的 做中学”/ “Learning by Doing” 理念 、邹老师的博客与娄老师的观点后,我十分赞同做中学,这需要一定量的练习作为基础,听会忘记;看能记住;做才学会,主动式的学习才是我们当代大学生最需要的。

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

我认为我在学习、生活、运动三方面中执行力、做饭、打篮球这三项技能比大多数人更好。

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

  • 执行力

    执行力的获取需要自己内心对自己所要完成的任务有充分的认识,在任务所规定的要求中,有计划、有条理的按照较高的标准,逐渐去完成自己的任务。
  • 做饭

    这项技能应该是每个人必须具备的技能,我认为自己的成功经验就是不断的学习,不断地模仿,从一开始的什么都不会,慢慢的到知道菜该怎么切,调料该在什么时候放,火候的掌控等等,这需要不断的学习,学习的渠道可以来自互联网,来自身边的父母或亲朋好友。
  • 篮球

    篮球这项技能是我最喜爱的,获取他的经验就是通过时间的洗礼,不断的触碰篮球,找到球感,并且强化自己的基本功,有了良好的基本功,在这基础上丰富自己的技术。

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

  • 执行力

    我认为执行力中与老师学习经验有共通之处的地方在于要有计划、有条理的去完成自己的任务,有条理有计划可以节约你在做一件事的时间,并且不乱,不会影响下一个任务的规划,能够做到高效学习。
  • 做饭

    做饭中与老师学习经验有共通之处的地方在于主动地去学习、去探索,并且不断实践,主动的学习才能知道怎么做饭味道会更好,主动的探索才能填充自己在食物领域的无知,不断实践是掌握一项技能必不可少的要素!
  • 打篮球

    打篮球中与老师学习经验有共通之处的地方在于大量的练习,并有良好的基本功,学习中大量练习能带给我们熟能生巧,篮球也是一样,不断的练习不断的提高自己的球感,才能练就扎实的基本功,有了扎实的基本功才能做更进一步地提高。

二、C语言学习调查

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

  • 学习C语言我是通过对老师上课关键点的理解,下课不懂看书,慢慢将书本上的知识内化,结合老师的练习平台,每章根据重要内容不断练习,完成老师规定习题量来学习的。
  • 学习C语言的经验:学习C语言需要大量的练习,光看是不能学好的,需要在练习中不断地将知识运用内化,练习是提高理解的高效途径,可以通过书本、老师、同学、互联网解决自己的问题,不能拖欠知识,C语言中的知识是一环套着一环的,一但有知识空缺,程序是无法实现成功运行的。

    学习C语言的教训:切忌老想攻克难题,攻克难题是对自己能力的一种肯定,但是拥有良好的基本功同样重要,如果基本功不扎实又想解决难题,实则得不偿失,既不能把难题很顺利地解决,有可能也会造成问题解决不了,也浪费了时间这种局面。

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

  1. 目前为止从第一篇博客中提到自己写了将近5000行代码。
  2. 根据大一老师章节题型的要求,所解决的非常容易、容易题型都能掌握解决,一般及困难类的问题,部分能解决,在语句运用方面基本熟练,指针运用只能说比较熟练,链表只会简单的运用,太难的就不熟练了。调用打开文件等大一老师只是泛泛而谈并没有像其他的知识点那样带我们学习,所以只停留在了解的层面,仅仅有过几次的简单练习没有掌握。
  3. 我认为平衡质与量的关键在于是否真正的掌握了知识,在彻底了解过知识后,应用一定量的有层次分明的练习题,去强化知识的质,在保证掌握了知识,产生了量变后引起质变,在进行适当的减少过量的练习。

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

指针类型:用于存放变量的地址。

数组指针:指向数组的指针变量。

指针数组:这个数组的所有元素都是指针类型。

区别在于数组指针指向的是数组的首地址,指针数组是其中所有元素都有指向的首地址。

函数指针:指向函数的指针变量。

指针函数:函数返回类型是某一类型的指针,本质是一个函数。

区别在于函数指针指向的是函数的首地址,指针函数返回类型是一个指针。

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

  1. 不是特别明白文件和流的区别与联系。

    查参考资料得:
  • 程序通过文件打开操作将流与设备联系起来,文件打开后,可在程序和文件之间交换数据。

    • 由程序在磁盘上建立文件
    • 文件打开后,通过写操作将数据存入该文件(写入数据)
    • 由程序打开磁盘上的某个已有文件,通过读操作将文件中的数据读入内存供程序使用(读数据)
  • 程序通过文件关闭操作断开流域文件的联系

    通过访问度娘了解到:

文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。

流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道等。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。----------引用于文件与流的区别与联系

区分文本文件于二进制文件:

  • 文本本件:用字节表示字符的字符序列,储存每个字符的ASCⅡ码。
  • 二进制文件:C程序的源代码生成的可执行的程序。

如何编程操作这两种文件

参考文本文件与二进制文件操作区别

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

面向过程程序设计我所理解的是:以过程为中心解决实际问题的编程思想,使程序一步步得以实现,最终解决问题。

解决问题的方法是根据问题,分成一些小的步骤,然后一步步完成小的步骤最终完成程序设计。

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

我认为C语言里模块就是函数。

没有写过多个源文件的程序

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

高内聚表示某个特定软件模块内部包含一系列关系及其相关的功能。

低耦合用来描述模块之间依赖的程度。

我认为高质量的程序设计应该内部有着丰富的所需的功能,并且有着清晰的模块关系。

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

  1. 把数组A的内容复制到数组B中
#include <stdio.h>
#define N 20
int main()
{
int a[N],b[N];
int n,i;
printf("输入数组a的长度n=");
scanf("%d",&n);
if(n<1||n>N)
{
printf("输入长度错误");
}
else
{
printf("请输入数组a\n");
for(i=0 ; i<n ;i++)
{
scanf("%d",&a[i]);
}
for(i=0 ; i<n ;i++)
{
b[i]=a[i];
}
printf("输出数组b\n");
for(i=0 ; i<n ;i++)
{
printf("%d ",b[i]);
}
}
}
  1. 查找整数数组A中有没有数字5
#include <stdio.h>
#define N 20
int main()
{
int a[N];
int n,i,j=0;
printf("输入数组a的长度n=");
scanf("%d",&n);
if(n<1||n>N)
{
printf("输入长度错误");
}
else
{
printf("请输入数组a\n");
for(i=0 ; i<n ;i++)
{
scanf("%d",&a[i]);
}
for(i=0 ; i<n ;i++)
{
if(a[i]==5)
{
j=1;
}
}
if(j==0)
{
printf("数组a中没有5");
}
else
{
printf("数组a中有5");
}
}
}
  1. 对整数数组A进行排序(从小到大)
#include <stdio.h>
#define N 20
int main()
{
int a[N];
int n,i,j,k,min;
printf("输入数组a的长度n=");
scanf("%d",&n);
if(n<1||n>N)
{
printf("输入长度错误");
}
else
{
printf("请输入数组a\n");
for(i=0 ; i<n ;i++)
{
scanf("%d",&a[i]);
}
for(k=n-1 ; k>0 ;k--)
{
for(i=0 ; i<k ;i++)
{
j=i+1;
if(a[i]>a[j])
{
min=a[j];
a[j]=a[i];
a[i]=min;
}
}
}
printf("由小到大排列得数组a\n");
for(i=0 ; i<n ;i++)
{
printf("%d ",a[i]);
}
}
}
  1. 对整数数组A进行排序(从大到小)
#include <stdio.h>
#define N 20
int main()
{
int a[N];
int n,i,j,k,max;
printf("输入数组a的长度n=");
scanf("%d",&n);
if(n<1||n>N)
{
printf("输入长度错误");
}
else
{
printf("请输入数组a\n");
for(i=0 ; i<n ;i++)
{
scanf("%d",&a[i]);
}
for(k=n-1 ; k>0 ;k--)
{
for(i=0 ; i<k ;i++)
{
j=i+1;
if(a[i]<a[j])
{
max=a[j];
a[j]=a[i];
a[i]=max;
}
}
}
printf("由大到小排列得数组a\n");
for(i=0 ; i<n ;i++)
{
printf("%d ",a[i]);
}
}
}

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

#include <stdio.h>
int main()
{
int line = 0;
int c;
printf("请输入所学过程序,用字符'$'作为结束\n");
while((c = getchar())!='$')
{
if(c == '\n') line++;
}
printf("line=%d\n",line);
}

自己想出的代码有缺陷:输入的代码必须顶格,开头不能有空格,意思是必须左对齐,因为大一打过的代码没有用过字符'$',所以我我用字符'$'作为结束输入的标志以此停止输入,算出总代码行数。

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

在某行代码处设置断点后,调试程序时,程序运行到该行代码时会自动停止!然后就可以在这进行逐步调试了。

例如从大到小排序

#include <stdio.h>
#define N 20
int main()
{
int a[N];
int n,i,j,k,max;
printf("输入数组a的长度n=");
scanf("%d",&n);
if(n<1||n>N)
{
printf("输入长度错误");
}
else
{
printf("请输入数组a\n");
for(i=0 ; i<n ;i++)
{
scanf("%d",&a[i]);
}
for(k=n-1 ; k>0 ;k--)
{
for(i=0 ; i<k ;i++)
{
j=i+1;
if(a[i]<a[j])
{
max=a[j];
a[j]=a[i];
a[i]=max;//在这里设置断点,根据观察窗就可以看到a[i],a[j],max此时的数据了。
}
}
}
printf("由大到小排列得数组a\n");
for(i=0 ; i<n ;i++)
{
printf("%d ",a[i]);
}
}
}

三、阅读云班课中PPT,每章提出一个问题

  • 第一章:什么是字节码、机器码、字节码文件?在源文件中有多个类,有哪些?什么是public类?
  • 第二章:逻辑类型Boolean、byte类型使用起来能解决什么问题?scanner reader=new Scanner(System.in);这条语句为创建reader对象后面new Scanner(System.in)是什么意思?
  • 第三章:使用for语句遍历数组中遍历的是一维数组,如果是二维或三维数组,该怎样遍历呢?
  • 第四章:JAVA中的方法与C语言中的函数有什区别于联系?
  • 第五章:JAVA中子类的有关知识与C语言中结构体有关的知识有什么区别于联系?
  • 第六章:当一类实现多个接口时,能解决什么问题?
  • 第七章:匿名类、异常类怎么使用,使用对象?
  • 第八章:JAVA中数字格式化与C语言中printf函数有什么联系?
  • 第九章:容器内能添加哪些组件?能用添加组件的容器解决哪些问题?
  • 第十章:是否所有带进度条的窗口都是带进度条的输入流所编写的?
  • 第十一章:怎么将数据库与容器和组建联系起来?
  • 第十二章:JAVA中多线程机制与电脑中的任务管理器有什么联系与区别?
  • 第十三章:服务器能否用除ServerSocket对象以外方式将客户端的套接字对象与服务器端的一个套接字对象连接起来?
  • 第十四章:能实现几何画板的哪些功能?
  • 第十五章:JAVA的链表与C语言的链表有什么区别于联系?

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

对比C语言,我觉得我学JAVA我想学得更精、更熟练、更透彻,C语言的学习自我感觉停留在中下水平,没有做到特别熟练,离自己的目标还是有一定的差距,因为JAVA的熟练掌握对今后的学习以及今后的工作有着重大的影响,所以我希望能熟练地掌握JAVA这门语言,做到熟能生巧,举一反三,触类旁通。

我认为刻意的训练需要明确训练的目标,要有计划的针对训练,根据自己所不懂得,所缺少的知识点,有针对的去训练复习与巩固,这样在弥补自身知识漏洞的基础上,才能不断提高程序设计的能力,培养计算思维我认为得多多看有关的书籍,根据书上的知识,不断提高自己的思维能力,并且多多提出有价值的问题,并且及时地去解决,这样才能触类旁通,在刻意训练中培养自己的计算思维。

前面看了老师所推荐的做中学内容,我印象深刻的是听会忘记;看能记住;做才学会,要把做落到实处,并且调动自己的积极性,要懂得主动学习的重要性,并且在不断的练习中提升自己,没有大量练习作为提高自己的基础,想要学好JAVA是不太可能的,所以我要在做中学,在学中不断找到乐趣,补充自己的知识,进一步提高自己。

20165336 学习基础与C语言基础调查的更多相关文章

  1. 20165318 预备作业二 学习基础和C语言基础调查

    20165318 学习基础和C语言基础调查 技能学习经验 我们这一代人,或多或少的都上过各种兴趣班,舞蹈钢琴画画书法,我也是如此.可这些技能中,唯一能拿的出手的就是舞蹈了.按照<优秀的教学方法- ...

  2. 20165230 学习基础和C语言基础调查

    20165230 学习基础和C语言基础调查 技能学习经验 我擅长弹钢琴.小时候我曾上过很多兴趣班,比如钢琴.跳舞.书法.绘画等等,唯一坚持至今的只有钢琴.仔细一算学习钢琴至今已有12年,不能说已经精通 ...

  3. 20165237 学习基础和C语言基础调查

    学习基础和C语言基础调查 一.技能学习与特长 你有什么技能比大多人(超过90%以上)更好? 我的爱好和技能说实话挺广泛的.如果要挑出来一个很擅长的话,我觉得应该是钢琴. 针对这个技能的获取你有什么成功 ...

  4. 20165234 预备作业2 学习基础和C语言基础调查

    学习基础和C语言基础调查 一.技能学习经验及体会 你有什么技能比大多人(超过90%以上)更好? 看到这个问题,我仔细想了想,好像的确没有什么特别出众的技能,但是我想到了许多我个人的爱好. 我从小喜欢五 ...

  5. 20165337学习基础和C语言基础调查

    20165337学习基础和C语言基础调查 你有什么技能比大多人(超过90%以上)更好? 讲道理我感觉我自己没有什么能比90%以上的人都做得好的技能,我就瘸子里面拔将军挑一个我自认为还不错的技能吧. 我 ...

  6. 学习基础和C语言基础调查

    学习基础和C语言基础调查 一.一种比大多数人(超过90%以上)更好的技能 说句实话,我还没有那种特别特别自信的.说我能拿得出手的.所谓能超过百分之九十以上的人的技能.毕竟人外有人,天外有天. 姑且算上 ...

  7. 20165323 学习基础和C语言基础调查

    20165323 学习基础和C语言基础调查 一.技能学习心得 1.你有什么技能比大多人更好? 我觉得我羽毛球打的还行,不能说打得比大多数人好,但是对于一些打羽毛球的要领还是掌握的. 2.针对这个技能的 ...

  8. 20165235 学习基础和C语言基础调查

    20165235 学习基础和C语言基础调查 首先第一个问题:你有什么技能比大多人(超过90%以上)更好?感觉很难回答这种问题,其实我对很多东西挺感兴趣的,如果非要拿出一种比较突出的技能的话我感觉就是象 ...

  9. 20165317 学习基础和C语言基础调查

    学习基础和C语言基础调查 关于优势技能 说来惭愧,读书多年,爱好不少,但是真的能拿的出手的.能被叫做特长的不多.至今,能在同龄人中处于较领先位置的也只有从四年级开始练起的乒乓球.记得开始练习乒乓球是从 ...

  10. 20165305 学习基础和C语言基础调查

    学习基础和C语言基础调查 <优秀的教学方法---做教练与做中学>心得 在<优秀的教学方法---做教练与做中学>文章中又一次提到了"做教练"这一学习方法,因为 ...

随机推荐

  1. 【iCore4 双核心板_ARM】例程二十三:LWIP_HTTP实验——网页服务器

    实验现象: 核心代码: int main(void) { system_clock.initialize(); led.initialize(); adc.initialize(); delay.in ...

  2. Java编程的逻辑 (80) - 定时任务的那些坑

    ​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...

  3. 原 TCP层的分段和IP层的分片之间的关系 & MTU和MSS之间的关系

    首先说明:数据报的分段和分片确实发生,分段发生在传输层,分片发生在网络层.但是对于分段来说,这是经常发生在UDP传输层协议上的情况,对于传输层使用TCP协议的通道来说,这种事情很少发生. 1,MTU( ...

  4. (笔记)Linux内核学习(一)之内核介绍

    内核与操作系统: 内核是操作系统的核心部分,包含了系统运行的核心过程,决定系统的性能,操作系统启动内核被装入到RAM中: 操作系统与底层硬件设备交互和为运行应用程序提供执行环境. Linux内核与微内 ...

  5. 《objective-c基础教程》学习笔记(二)—— for循环的基本应用

    在上一篇博文中,我们介绍了如何开发前期的准备,以及简单的类型输出实例. 这篇博文,我要记录一个for循环输出的实例.并对此展开,改变成不同的三个小函数. int main(int argc, cons ...

  6. python实现微信接口——itchat模块

    python实现微信接口——itchat模块 安装 sudo pip install itchat 登录 itchat.auto_login()  这种方法将会通过微信扫描二维码登录,但是这种登录的方 ...

  7. iOS开发-- Xcode 6单元测试

    占坑 http://m.oschina.net/blog/377800 http://www.cnblogs.com/sunshine-anycall/p/4155649.html http://ob ...

  8. Linux-C实现GPRS模块发送短信

    “GSM模块,是将GSM射频芯片.基带处理芯片.存储器.功放器件等集成在一块线路板上,具有独立的操作系统.GSM射频处理.基带处理并提供标准接口的功能模块.GSM模块根据其提供的数据传输速率又可以分为 ...

  9. Python实现C代码统计工具(二)

    目录 Python实现C代码统计工具(二) 声明 一. 问题提出 二. 代码实现 三. 效果验证 Python实现C代码统计工具(二) 标签: Python 代码统计 声明 本文将对<Pytho ...

  10. lsass 病毒手动清除方法

    病毒症状进程里面有2个lsass.exe进程,一个是system的,一个是当前用户名的(该进程为病毒).双击D:盘打不开,只能通过右击选择打开来打开.用kaspersky扫描可以扫描出来,并且可以杀掉 ...