关于学习方法的借鉴和有关C语言学习的调查

专长的高超技能获取的成功经验

在游戏方面,我相对于大多数人来说可能更为出色。首先是我投入了大量的时间进行游戏;其次,我几乎每天都会看一会教学视频来模仿;最后应该还是跟个人的天赋有点关系。

如果把这个类比到学习的话,首先就是要投入大量的时间,作为学习知识的保障;其次,当你不懂时,要立刻请教他人来帮助自己解决问题;最后,我认为不管做什么事,多多少少都跟天赋有些关系。但这并不是决定性的因素,只是会造成投入时间的差别而已。所以,当发现自己的天赋不如他人的时候,就要比别人付出更多的时间和努力,这样才有可能超过他们。

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

在初学习C语言的时候,相比与那些已经学过的同学来说,说实话,是感到非常无奈和无力的。当别人花了2个小时就完成任务的时候,我却要花4个小时来找自己的语法错误。但是这也是没有办法的,毕竟他们在很早的时候就已经付出了大量的时间。为了弥补这些差距,我花了大量的时间去阅读课本,但是没有进行刷题。因为我觉得只有先掌握基础的知识之后,刷题才有意义。所以我基本上是通过反复阅读课本来学习的。与我所熟悉的游戏方面相比,C语言没有什么基础,但是我还是会向他人请教问题来弥补。但是对于C语言的刷题量确实有点少,这是值得反思的。 ####目前为止估算自己写过多少行C代码?理解的情况如何? 目前为止,我估计只写了1500行代码,但是对于知识的理解和掌握还是比较清晰的。

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

学过了C语言之后,觉得最难学的就是指针变量。数组指针指的是指向数组的指针。而指针数组是一个元素均为指针类型数据的数组。函数指针,是指如果程序中定义了一个函数,在编译时,编译系统为函数代码分配一段存储空间,这段代码存储空间的起始地址(又称入口地址)称为这个函数的指针。指针函数是指带指针的函数,即本质是一个函数。函数都有返回类型,只不过指针函数返回类型是某一类型的指针。这些都是很容易混淆的概念。

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

学完C语言后,不是很明白文件和流的区别和联系。所以去查找了一下资料。文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道等。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。对于如何区分文本文件和二进制文件,我参考了知乎上的解答。文本文件和二进制文件并无本质的差别,他们的区别在于打开这个文件的程序在对其内容的解释上,我们可以把一个典型的所谓二进制文件(bmp)当作文本文件来打开,是同样可以的,只是得到的内容就是一些乱七八糟的符号了。反过来,也是同样成立。对于编译操作这两种文件,在阅读资料后,还是不是很明白。所以希望下学期能够深入掌握。

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

面向对象的程序设计,面向对象程序设计(英语:Object-oriented programming,缩写:OOP)是一种程序设计范例,同时也是一种程序开发的方法。对象指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。解决问题的方法把构成问题的事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整体解决问题的步骤中的行为。

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

模块,我认为一个函数就是一个模块,不同的模块用于实现不同的功能。目前为止,我还没写过多个源文件的程序。 ####学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中? “高内聚,低耦合”,是指软件工程的概念,用于判断设计程序的好坏。所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。所谓低耦合是指一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。段。

要做到高内聚低耦合,设计模块时需要做到:
1 各个模块之间的功能必须明确;
2 各个功能模块间实现的功能不可以有交叉;
3 不允许出现模块间的相互调用;
4 如果必须出现模块间调用,那么只允许单向调用,即A可以调用B,B不可以调用A。

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

 要想把A数组的内容复制到B数组中,可以用一个循环,取A和B数组中元素个数大的那个为n,

for(i=0;i<n;i++)
  b[i]=a[i];

即可把A数组的内容复制到B数组中。

要查找整数数组中是否有5,用循环+判断,

for(i=0;i<4;i++)
{
     if(a[i]==5)
    {
      printf("Yes");
      k=1;
    }
 }
if(k!=1)printf("No");

即可查找整数数组中是否有5。

若要对整数数组A进行排序,可以用冒泡法。

 for(j=0;j<N-1;j++)
  for(i=0;i<N-1-j;i++)
   if(a[i]>a[i+1])
   {t=a[i];a[i]=a[i+1];a[i+1]=t;}

即可将整数数组A进行从小到大的排序,若要从大到小的排序,只需要将判断条件if(a[i]>a[i+1])if(a[i]<a[i+1])改为即可。

####写一个程序,统计自己C语言共写了多少行代码。(将上述多个程序的Github链接附在随笔上,可以在随笔上附上关键而非全部代码) 关于文件的读写还不是很清楚,可以参考学长的微博。[写一个程序,统计自己C语言共写了多少行代码。ver2.00 ](http://www.cnblogs.com/ZCplayground/p/6275365.html) ####你知道什么是断点吗?给出自己调试程序的例子。(可以截图贴图说明)

断点,是在C语言调试的时候设置的间断点,用来控制调试代码的范围。调试是一种很好用的测出自己错误的方法。

 

 如图,代码左侧的红色圆圈就是断点,可以通过查看自己所需要的变量的变化来寻找自己的错误。

 

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

 对比C语言的学习,我对《面向对象程序设计》的学习的具体目标是能更熟练度掌握基本概念和技巧,见识更多的题型和问题。通过大量的题目来训练自己对某一题型的熟练度,在做完一定量的题目后,对错题进行总结归纳,归纳题型,分析解题技巧来提高程序设计能力;通过训练有创新性的题目或者经行有挑战性的项目来培养计算思维。

####毕业后大多数人从事的工作的要求是“提笔能写,开口能说,问策能对,遇事能办”,非常重要的技能是公文写作能力,你觉得自己写作能力如何?要怎么提高?

我觉得自己的写作能力很一般。为了提高自己的写作能力,我想只能通过多阅读、多写的方式来提高吧。俗话说,孰能生巧嘛。

 

posted @ 2017-01-11 18:04  sungam  阅读(238)  评论(8编辑  收藏  举报