在人生道路上,你有没有专长的高超技能获取成功经验?
你有什么技能比大多人(超过70%以上)更好?针对这个技能的获取你有什么成功的经验?
回顾过往,我突然发现我好像没有什么值得骄傲的特长。要想有一个超过大多数人的技能,就要付出时间去学习练习,而在这之前你必须要拥有一个热爱这个技能的心。而对于我来说,我好像重来没有对于一件事有付出全身心努力的经历,即使是高考都是玩过来的。。我自身缺乏对一件事物长久的热爱,所以自然是没有专长的高超技能获取成功经验。这不禁让我感觉有点小尴尬,嗯。
有关C语言的调查
你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?
我基本是看成品代码学的C语言,我感觉看成品的代码对我自己有比较大的帮助,从成品代码中了解推断代码功能和怎么用,有时会自己实验看看代码的功用,其次还要学习代码中透入出来的思维方式,我感觉这是比较重要的。由于我的学习方式,保存c语言的代码就显得比较重要,这就好像错题集一样。有时也可以想想用其他的方式解决问题。
目前为止估算自己写过多少行C代码?理解的情况如何?
估算可能有点不准,1500?2000? 理解的话还算可以。
学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?
度娘: 文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。
流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道等。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。
文本文件与二进制文件的定义
大家都知道计算机的存储在物理上是二进制的,所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的。这两者只是在编码层次上有差异。简单来说,文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码。
学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?
“面向过程”是一种以过程为中心的编程思想。 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
过程
面向过程其实是最为实际的一种思考方式,就是算面向对象的方法也是含有面向过程的思想.可以说面向过程是一种基础的方法.它考虑的是实际的实现.一般的面向过程是从上往下步步求精.所以面向过程最重要的是模块化的思想方法.对比面向对象,面向对象的方法主要是把事物给对象化,对象包括属性与行为.当程序规模不是很大时,面向过程的方法还会体现出一种优势,因为程序的流程很清楚,按着模块与函数的方法可以很好的组织.比如拿学生早上起来的事情来说说这种面向过程吧.粗略的可以将过程拟为: (1)起床 (2)穿衣 (3)洗脸刷牙 (4)去学校 而这4步就是一步一步的完成,它的顺序很重要,你只须一个一个的实现就行了.而如果是用面向对象的方法的话,可能就只抽象出一个学生的类,它包括这四个方法,但是具体的顺序就不能体现出来.
在C语言里面,什么是模块?你写过多个源文件的程序吗?
按照功能将一个软件切分成许多部分单独开发,然后再组装起来,每一个部分即为模块
模块是在内核空间运行的程序,实际上是一种目标对象文件。
我自己没写过。
学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?
内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系;
耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。
耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息
内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。
所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。
耦合:一个软件结构内不同模块之间互连程度的度量。
要做到高内聚低耦合,重点并不是代码的编写,而是整体程序的设计阶段。
程序设计时,要先将要实现的功能列出来,然后设计模块。
模块设计后,再进行代码实现。
要做到高内聚低耦合,设计模块时需要做到:
1 各个模块之间的功能必须明确;
2 各个功能模块间实现的功能不可以有交叉;
3 不允许出现模块间的相互调用;
4 如果必须出现模块间调用,那么只允许单向调用,即A可以调用B,B不可以调用A。
学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。
A复制到B
#include<stdio.h> int main() { int a[100],b[100],i; for(i=0;i<N;i++) { scanf("%d",&a[i]); b[i]=a[i]; }return 0; }
查找数据
#include<stdio.h> int main() { int a[100],i,b=0; for(i=0;i<100;i++) { scanf("%d",&a[i]); if(a[i]==5) { b=1; } } if(b==1)printf("YES "); else printf("NO "); return 0; }
排列
由大到小
#include<stdio.h> int main() { int a[100],i,j,b; for(i=0;i<100;i++) scanf("%d",&a[i]); for(i=0;i<100;i++) for(j=i+1;j<100;j++) if(a[i]<a[j]) b=a[i],a[i]=a[j],a[j]=b; for(i=0;i<100;i++) printf("%d ",a[i]); return 0; }
由小到大
#include<stdio.h> int main() { int a[100],i,j,b; for(i=0;i<100;i++) scanf("%d",&a[i]); for(i=0;i<100;i++) for(j=i+1;j<100;j++) if(a[i]>a[j]) b=a[i],a[i]=a[j],a[j]=b; for(i=0;i<N;i++) printf("%d ",a[i]); return 0; }
统计自己C语言共写了多少行代码
#include<Windows.h> #include<string.h> #include<stdio.h> int main(){ FILE *tp; int count=0; char dizhi[100],hnr[1000]; gets(dizhi); tp=fopen(dizhi,"r"); while(fgets(hnr,1000,tp)){ count++; } printf("%d ",count); fclose(tp); return 0; }
你知道什么是断点吗?给出自己调试程序的例子。(可以截图贴图说明)
程序执行到断点会停止,主要用来查找程序的错误。。
对比C语言的学习,你对《面向对象程序设计》的学习有什么具体目标?如何通过刻意训练提高程序设计能力和培养计算思维?如何通过“做中学”实现你的目标?
目标:能将我的编码能力提高到我之所想能具于现实。多学多练多想,这不仅能提高程序设计能力和培养计算思维,也能实现我的目标。
毕业后大多数人从事的工作的要求是“提笔能写,开口能说,问策能对,遇事能办”,非常重要的技能是公文写作能力,你觉得自己写作能力如何?要怎么提高?
我觉得我的写作能力一般,提高还是用上面的那三个多,多学多练多想。