因为上一篇随笔对这一部分写得不够清楚,因此在这篇做一些补充。

你是怎么学习C语言的?

起初,对于C语言的学习主要是通过老师课堂的教学,完成相关的课后作业。与我的技能相比的话,他们都有一个共同点需要去实践,需要尝试,要自己去敲代码,对于教训的话,比如在之前很多情况下,对于书上的一些代码例题,认为自己一看就会,已经掌握了方法。比如对于一开始学习冒泡排序的时候,看了书上的例题感觉自己会了,等到做编程题的时候,发现自己敲出的冒泡排序漏洞百出,最终还是翻开书本一一对照,比较我的代码与书上的差别。发现自己在处理循环的结束条件和中间的排序与书上有较大的差别。唉,这就很尴尬了。这就当成一个大的教训吧。因此对于敲代码还是要自己敲敲看,才能熟练。对于编写一个关于计算代码行数的计算程序,目前还不会。只能自己去估计。自我认为对C语言的理解情况,只能就掌握了它的皮毛。

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

数组指针:在代码中可以这样表示 int (*a)[10]; 在应用中较常出现的是,二维数组指针。有了数组指针,对于二维数组有更好的表达它的地址。例如&a[i][j]就是指(*(p+i)+j)两者等价,可以把(*a)[10]理解成~~一个数组里含有10个指针~~(怎么说,这里有点乱乱的,有点说不出来)尴尬 T_T 。
指针数组:在代码中的表示 int *a[10]; 说明有十个指针。其所含的元素都是指针,其中a[i]指的是第i+1个元素的地址。
函数指针:指向函数的指针,比如:int (*p)(int x, int y,);本质是指针,举个例子吧:
![](http://images2015.cnblogs.com/blog/1092267/201701/1092267-20170113224347791-2068779374.png)
其中int (*p)(int a,int b);中 p指向了max函数。
指针函数:代码表示 : int *p(int x);对于表达就是有无括号的区别。本质是函数,指针型函数。但他的返回值是一个地址。然后其返回值也要赋值给一个指针。我的理解是先把p(int x)看成一个整体,加上*就是变成其地址(指针)。所以返回值是个指针。

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

在没写这个随笔之前都不知道流的意思。查阅了一下资料,文件是数据的基本单位,是用于数据读取,保存的地方。流指的是字节序列的抽象概念,是信息的转换,有输入流和输出流。。。。可以说是一个信息通道吧。文本文件和二进制文件,我认为是内部表达上的不同,二进制文件,是把数据以二进制的形式储存下来。简单的说 用记事本打开不会乱码就是文本文件,会乱码就是二进制文件。具体操作,不会。

学过了C语言,你知道什么叫面向过程程序设计吗?

我认为面向过程程序设计,面向过程是一种以过程为中心的编程思想。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。解决问题,按照一定的流程步骤来解决。

在C语言里面,什么是模块?你写过多个源文件的程序吗?学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?

模块,我认为是把一个程序内容分开,成一个个区域,然后在主函数中调用,也就是利用函数,将一个庞大的程序模块话,利用函数实现其各种功能。而高内聚,低耦合也是这个意思,就是对函数的巧用,使整个程序看起来不会冗长,很复杂。让程序员看得较清楚。

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

这一部分在上一篇随笔提到了,目前对于排序还只是停留在冒泡排序法上面,还有很多排序法没有去了解。过几天的话,如果可以我再把学到的排序写出来0.0。

写一个程序,统计自己C语言共写了多少行代码。(将上述多个程序的Github链接附在随笔上,可以在随笔上附上关键而非全部代码)你知道什么是断点吗?给出自己调试程序的例子。(可以截图贴图说明)

对于编写程序计算代码行数目前还不会。只能复制下来,观察。。。。至于断点的话,适用于调试程序错误时用到的,当程序出现错误,利用它,结束程序,目前我知道exit();这个结束程序的方法0.0。不过,在目前,我调试并发现错误,一般是用printf();来观察的。

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

具体目标就是好好读书吧,只能通过勤敲代码来提高能力和思维吧。感觉对于编程的学习,是要通过“做中学”才能有效提高,对于不懂的知识,在求解问题的过程中,对它进行了解,并学下来。我认为,编程许多问题是要在敲代码的时候才会显现出来,然后在过程中学习,解决疑问。
这篇就先写成这样吧,上次没有用Markdown来编写,这次补上0.0。

关于C语言知识调查的更多相关文章

  1. 5332盛照宗 如何获取新技能+c语言学习调查

    如何获取新技能+c语言学习调查 你有什么技能比大多人(超过90%以上)更好? 如果问我有没有什么技能比大多数人,并且是90%的人好,我还真不敢说有,因为世界上有70亿人,要比63亿人做的好才行啊.我也 ...

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

    # # # # 我觉得我打游戏(不知道算不算一技之长)毕竟从小学一年级就接触到了各种形形色色的游戏,讲道理其实我的游戏天赋毕竟还是很大的,从意识到感觉我觉得都比大多数人好一些,其实吧打游戏打得好也是很 ...

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

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

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

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

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

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

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

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

  7. 20165231 预备作业二:学习基础和C语言基础调查

    微信文章感想 读了娄老师微信公众号中的文章,老师给我们的启示首先就是要坚持,万事开头难,但是只要肯坚持就一定会有所成就,不管是学习还是生活方面.其中最有触动的就是减肥了,是我三四年来一直难以完成的目标 ...

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

    一.技能学习经验:      1.你有什么技能比大多数人(超过90%以上)更好: 我算是一个普通人,没什么特别的才能,如果硬要说有什么技能比其他人较好的话,我想大概是快速阅读的能力吧,我能以很快的速度 ...

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

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

随机推荐

  1. TOGAF架构开发方法(ADM)之迁移规划阶段

    TOGAF架构开发方法(ADM)之迁移规划阶段 1.8 迁移规划(Migration Planning) 企业架构开发方法各阶段——迁移规划 1.8.1 目标 本阶段的目标是: 确保实施和迁移规划与企 ...

  2. CentOS下Eclipse的安装教程

    CentOS下Eclipse的安装教程 据了解,在Linux下的Java开发很多时候都比较喜欢使用vim + 插件,反而很少使用Eclipse,但是我是第一次使用Linux来进行Java编程,就什么都 ...

  3. web register/validation/login system flowchart

    I spent several days on building a system about this. And make it work well with serveral thousand l ...

  4. Good Vim plugin for python [Vim python mode]

    Here I got a very neat plugin for vim which is awesome indeed. It's from youtube years before. So le ...

  5. C语言之位运算

    位运算 1).定义. 指的是1个二进制数据的每一位来参与运算. 位运算的前提: 是这个数必须是1个二进制. 注意: a). 参与位运算的二进制数据必须是补码形式. b). 位运算的结果也是二进制的补码 ...

  6. SVG基础以及使用Javascript DOM操作SVG

    SVG 不依赖分辨率 支持事件处理器 最适合带有大型渲染区域的应用程序(比如谷歌地图) 复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快) 不适合游戏应用 Canvas 依赖分辨率 不支持事 ...

  7. UITabelview的删除

    删除的效果 Automatic Bottom Fade left middle none right top 简单删除 先删除数据源里的数据,然后再删除cell,否者会报错 let indexPath ...

  8. 安装windows后grub的恢复

    问题: 原本是:双系统(linux和windows),后来换windows版本覆盖了grub2 解决方法: 进入windows后下载并安装EasyBCD并添加grub2的选项,重启看见了熟悉的启动项, ...

  9. 学习AngularJs:Directive指令用法(完整版)

    这篇文章主要学习AngularJs:Directive指令用法,内容很全面,感兴趣的小伙伴们可以参考一下   本教程使用AngularJs版本:1.5.3 AngularJs GitHub: http ...

  10. Ajax beforeSend和complete 方法与防止重复提交

    $.ajax({ beforeSend: function(){ // Handle the beforeSend event }, complete: function(){ // Handle t ...