20165315 C语言学习状况与Java学习目标
1、出色技能的获取经验
我从小即是一个中规中矩的人,在不少方面都是让成绩尽可能保持在前百分之二十到三十这个范围内,好比我比较擅长的唱歌和乒乓球,但也不能算十分优秀,惟一算很擅长的大概也就是英语的学习了。html
我最开始接触英语要回溯到幼儿园时期,那时候父母就让我上的双语班,还记得天天早上想要进教室必须经过老师的单词考核,这对于一个四五岁的儿童已是很不容易了。接着还有小学二年级就报了英语辅导班,一直补习到六年级,毕业时靠着我扎实的功底考上了全市最好的外国语初中。这种从小的耳濡目染带给我了对英语学习的热情与信心,在以后的学习中我也丝毫没有松懈,每一个阶段都为本身定下了阶段目标,英语就这样一直做为我最拿手的科目陪伴我跨入了大学。编程
我之因此能将英语掌握得这么好,表面上是我从小就一直与英语课堂打交道,其实更深层次的缘由是我经过这些课堂不断地巩固基础,而且在平时得测试中获得了优异得成绩,这些反馈给我了继续前行的动力。windows
阅读了娄老师的学习经验后,我发现老师的经验与我有许多共同点:数组
- 学习一门技能须要大量的练习巩固基础;
- 学习一门技能须要须要兴趣爱好入门;
- 学习一门技能须要阶段目标按部就班;
- 学习一门技能须要即时的反馈;
- 学习一门技能须要毅力坚持到底;
- ... ...
学习这件事,和健身同样,作得好的永远不中止,作很差的永远不开始。编程语言
--引用自《天天一万步,一周瘦十斤》模块化
2、C语言学习状况
- 我主要是经过三种途径学习C语言这门课程。第一,上课听讲,学习新知识;第二,下课完成老师布置的代码任务(还记得要求是完成2000分的题目);第三,暑假的时候购买了计算机二级C语言部分的相关学习材料,刷题学习。当时以为这已经算是足够“对付”这门课了,但如今想来是彻底不够的。我对于英语的学习态度永远是精益求精,力争上游,而对于C语言的态度则是达标就好,得过且过。这主要仍是因为我对C语言不重视也没热情,平时练习量远远不够。我但愿在寒假的学习过程当中,将C语言与Java结合起来,按部就班深刻学习,最后能爱上这门课程。
- 之前我确实没有统计代码行数的习惯,只能粗略模糊的估算。参考他人的编写代码量,我大概编写了2000到3000行的代码?我对基础的代码编写仍是比较熟练的,可是一旦涉及指针的概念,我就会有点混淆不清,我平时对指针的态度也是能不使用就不使用。对编程类的课程想要彻底掌握是很是须要练习量的,这个量是要根据具体状况来控制,掌握得很差的部分更须要多加练习。并且不能为了量多就一味胡乱编写或者抄袭代码,必定要作到量多质优,才能提升学习质量。
- C语言中基本概念理解
- 数组指针指的是定义一个指针变量,使它指向一个数组,数组中的元素并非指针,例如
int (*a)[5];
,数组中元素都是int型;而指针数组指的是定义一个数组,这个数组里面的元素都是指针,指向的类型相同,例如int *a[5];
,数组中指针都指向int型。 - 函数指针指的是定义一个指针变量,使它指向一个函数,函数的返回值不是指针,例如
int (*lrd)(int a,int p);
,此函数返回值是int型;而指针函数指的是定义一个函数,函数的返回值是指针,例如int *lrd(int a,int p);
,返回的指针指向int型。 - 对于文件和流这一块,学习C语言时老师并无细讲,由于这部分不属于期末考试范围。我经过翻阅教材,了解到文件是能够重复使用并永久保存数据的抽象存取方法,分为文本文件和二进制文件,而流在教材上也被称为字节流,流对文件的存取是以字节为单位,输入输出仅受程序控制,而C语言文件也被称为流式文件。流的概念比文件广,流除了有文件流,还包含了其余类型。
- 文本文件和二进制文件的差异在于存储数值型数据的方式不一样。文本文件中每一位数字都单独占用一个字节的存储空间,而二进制文件中的全部数字所有做为一个二进制数来存储。能够经过占用的存储空间来区分,占用空间大的是文本文件,占用空间小的是二进制文件。编程操做时,文本文件的后缀名为“.txt”,而二进制文件的为“.bin”,打开方式前者为“w”、“r”、“a”等,后者为“wb”、“rb”、“ab”等。
- 对于面向过程程序设计我并不很了解,在查阅教材和资料后,我理解为这是一种模块化、过程化的设计,便是将问题一项项列出来后,调用函数一项项解决的过程设计思路。
- 我认为模块就是C语言程序中拥有不一样功能的“区域”,例如函数就是程序中模块。我目前C语言掌握的通常,编写偏向简单化,没有尝试过编写多个源文件的程序。
- “高内聚,低耦合”这个概念是我在学习计算机二级C语言部分的时候接触的,当时就比较感兴趣的查阅了有关资料,“高内聚”指的是模块内部联系十分紧密,为实现这个模块的功能相互做用、运行;“低耦合”指的是不一样模块之间的相互做用与影响很是小,各个模块相互独立。在进行高质量程序设计时,咱们要尽可能将程序进行清晰的模块化,在修改、维护程序时更加方便,避免了思路混乱、修改时“牵一发而动全身”的问题。
- C语言程序设计
- 数组指针指的是定义一个指针变量,使它指向一个数组,数组中的元素并非指针,例如
(1)把数组A的内容复制到数组B中函数
#include <stdio.h> #define N 100 int main() { int A[N],B[N],n,i; printf("input n:"); scanf("%d",&n); printf("input A[n]:"); for(i=0;i<n;i++) { scanf("%d",&A[i]); B[i]=A[i]; printf("%d ",B[i]); } }
(2)查找整数数组A中有没有数字5学习
#include <stdio.h> #define N 100 int main() { int A[N],n=0,i; for(i=0;i<N;i++) { scanf("%d",&A[i]); if(A[i]==5) n++; } if(n>0) printf("数组里有数字5"); else printf("数组里没有数字5"); }
(3)对整数数组A进行排序测试
(从小到大)url
#include <stdio.h> #define N 100 int main() { int A[N],i,j,m,q,temp; for(i=0;i<N;i++) { scanf("%d",&A[i]); } for(j=0;j<N-1;j++) { for(m=j+1;m<N;m++) { if(A[j]>A[m]) { temp=A[j]; A[j]=A[m]; A[m]=temp; } } } for(q=0;q<N;q++) printf("%d ",A[q]); }
(从大到小)
#include <stdio.h> #define N 10 int main() { int A[N],i,j,m,q,temp; for(i=0;i<N;i++) { scanf("%d",&A[i]); } for(j=0;j<N-1;j++) { for(m=j+1;m<N;m++) { if(A[m]>A[j]) { temp=A[j]; A[j]=A[m]; A[m]=temp; } } } for(q=0;q<N;q++) printf("%d ",A[q]); }
(4)统计代码行数
这块代码须要运用到文件部分的知识,有必定难度,我只能叙述一下个人思路,但愿老师给予指导。
先将电脑里的全部后缀带".c"的代码文件一一扫描,每一个文件中以"\n"为标识,遇到"\n"就让计数器加一,并且还要考虑空格、注释、tab键等因素。
- 断点就是人为设置的,在调试程序时切入的点,程序会从断点开始逐步运行。当程序出现问题时,能够经过设置断点一步步调试程序的方法找出并纠正问题。
- 设置断点
- 点击"Run to cursor"键,黄色三角标识出如今断点上
- 不断点击"Next line"键,直到输入数据
- 打开"Debugging windows"中的"Watches"窗口,观察各变量变化
- 若是须要进入子函数,则在黄色三角标识跳到调用函数的地方时,点击"Step into"键,三角标识就会跳入子函数中
- 设置断点
3、对教材内容的提问
- 第一章:什么是反编译?
- 第二章:在输入基本型数据时,必须每输入一个数据就按一次回车键吗?仍是只有例三中才是这样要求的?
- 第三章:instanceof运算符具体在何时使用?怎么使用?
- 第四章:每次编程固定要写的语句有哪些?好比package语句、new运算符是必定要使用的吗?
- 第五章:全部的类都有本身的子类吗?
- 第六章:何时要使用接口?
- 第七章:如何启用和关闭断言语句?
- 第八章-第十五章:其实我从第四章开始就开始越看越吃力,新的概念和定义汹涌而来,这么短短一周半的时间里想要认真看彻底部ppt并理解对我来讲很困难,何况我目前尚未尝试本身写Java程序,也不清楚应该怎么写,因此也不知道该提出什么问题。我接下来细心看ppt会有问题补充的。我认为对于这样一门全新的,有点难度的编程语言,只看ppt没有什么显著效果,真的可能看完就忘了,很是须要平时的练习、老师的指导和提点,也须要时间。我这些天大体看完了这十五章的内容,发现要学习记忆的东西仍是不少,主要是要在作中学,才能掌握得更好。还有想问老师一点:除了大量练习以外,老师有没有什么学习这门课程的小方法呢?(好比方便记忆的小妙招之类的)
4、对Java学习的具体目标
体育运动的初学者练习时候都须要重复动做,好比「学习打乒乓球时」要练习挥拍,挥拍成千上万遍以后动做就会定型,也就是教练常说的「肌肉有了记忆能力」,之后实战中能够不假思索地作出来。
--选自《优秀的教学方法---作教练与作中学》
学习和运动同样,须要大量的练习才能有记忆。我学习Java的具体目标就是养成天天编程的习惯,不管多少,质量要获得保障,实如今“作中学”。
技能的提高要「刻意训练」
- 低水平重复是不行的,训练时间再长都没用
- 要摆脱「温馨区」,进入「学习区」学习
- 要按部就班,不能进入「恐慌区」
--选自《优秀的教学方法---作教练与作中学》
我在学习C语言时的心态彻底是为应付期末考试而学,不考的内容我就粗略带过甚至彻底不去了解,这种学习态度给我带来了恶果。因此在学习Java时,我但愿我不只仅是成为一名“合格的初学者”,要在平常练习中摆脱“温馨区”,进入“学习区”,平时多和老师同窗交流。我真心但愿我能熟练掌握Java这门语言,而不是想大一下学期末同样自食恶果。
我但愿我能将理论和练习相结合起来,平时多巩固基础,按部就班,及时向老师反馈学习状况,真正作到在“作中学”。