第一篇随笔
这些年我一直提醒自己一件事情,千万不要自己感动自己。大部分人看似的努力,不过是愚蠢导致的。什么熬夜看书到天亮,连续几天只睡几小时,多久没放假了,如果这些东西也值得夸耀,那么富士康流水线上任何一个人都比你努力多了。人难免天生有自怜的情绪,唯有时刻保持清醒,才能看清真正的价值在哪里。
--《我们这一代人的困惑》
很喜欢这一段话。引用此勉励自己吧。
发表一篇随笔:在人生技能道路上,你有没有专长的高超技能获取的成功经验(学习,棋类,球类,乐器,艺术,游戏,......)可以结合一下,特别要和下学期的《面向对象程序设计》课程要结合起来。
经历与心得
还记得当初迷上了魔方这个东西。最后自己也并不是很厉害,只是这个过程觉得比较有价值。首先这是个益智玩具。但慢慢的发现它确能锻炼一些东西。恰巧,有许多喜欢挑战魔方的同学。就这样,学会了一种又一种的方法,不断地挑战着更低的时间完成。而现有技巧的熟练与灵活度需要不断地训练才能提升,而更快更高效方法则需要不断地探索,在不断提升基础的灵活等技巧中,不断探索新的方法去缩短自己所需的时间。而这确是很像编程。对于编程,任何一种语言的掌握,都需要不断地打牢自己的基本的技巧。而仅仅有这些很明显并不够,一个真正好的代码,需要的是高效。对于更好的方法的探索,也是学习提升的很好的途径。对于下学期刚要学习的《面向对象程序设计》课程,我想,这就像牢牢掌握基础形状的魔方后,去挑战更高阶的魔方。在学习过程中,基本的方法技巧是不变的,而变的东西,则也是需要耐心的探索,不断地训练所得。
有关C语言学习的调查
你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?
其实学习C语言我觉得是不断地代码训练。在自己发现自己的问题,自己解决自己的问题下,提升自己的能力。在老师教学的时候,学习到基础的技巧,但是很多还是靠自己的手打然后发现问题,这与上面所述是一样的。而学习过程中的苦苦寻找错误,想必是很多人都会经历的。记得有一次,看一道题找错误找了一个下午,还是没找出错误,问过好多人,并没有发现错误所在,最后终于找到错误,是在一个if后多加了一个分号,使这个if语句变为空语句了。仅仅是一个分号就能导致程序得到错误结果从而不能解决问题,所以这一点也提醒今后学习的严谨性。
目前为止估算自己写过多少行C代码?理解的情况如何?
估计每次的平均也有40到80行吧。C的代码总共应该有七八千行吧。每次出错在实在找不到错误都会全部删掉重打尽量用另一种方法。所以比较多。理解情况我觉得都还行。不过这种东西肯定是会手生的,只有不断地训练才能保持火热的手感(虽然不大喜欢不断地敲代码 滑稽.jpg)。
学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?
能分清吧。这些有老师的上课讲解,但是实话,除了指针作业会刻意使用指针去训练,其他都会尽量避开指针。 数组指针是指向一个数组的指针,指针数组是一个数组里存放着指向不同地址的指针;函数指针是指向函数的指针,指针函数应该是返回指针类型变量的函数。(纯语文类型理解 2333)
学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?
其实实话是不懂。(不懂还是百度一下吧)
文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。
特性:每个文件都有文件名、文件所在路径、创建时间及访问仅限等属性。
流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道等。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。
存储介质:除了和磁盘文件直接相关的文件流以外,流还有多种类型。流可以分布在网络中、内存中或者是磁带中。
文本文件与二进制文件我想应该是存储方式不同,文本文件字符是以ASCII形式存储,而二进制文件则是以二进制的形式存储的。所以当然文本文件在输入磁盘文件的时候需要转换。
具体操作(其实我看的好懵逼):
ANSI C规定了标准输入输出函数库,用 fopen()函数打开文件。fopen()函数的调用方式一般为:
FILE *fp;
fp=fopen(文件名,使用文件方式);
使用文件方式见下表:
使用文件方式: 含义:
-"r"(只读) 为输入打开一个文本文件
- "w"(只写) 为输出打开一个文本文件
- "a"(追加) 为追加打开一个文本文件
- "rb"(只读) 为输入打开一个二进制文件
- "wb"(只写) 为输出打开一个二进制文件
- "ab"(追加) 为追加打开一个二进制文件
- "r+"(读写) 为读/写打开一个文本文件
-"w+"(读写) 为读/写创建一个文本文件 - "a+"(读写) 为读/写打开一个文本文件
-"rb+"(读写) 为读/写打开一个二进制文件 - "wb+"(读写) 为读/写创建一个二进制文件
- "ab+"(读写) 为读/写打开一个二进制文件
学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?
顾名思义,即是面向过程的程序设计(好像说了废话),应该是利用函数逐步解决问题。
在C语言里面,什么是模块?你写过多个源文件的程序吗?
模块指的应该是函数,对多个模块的调用去实现一个功能。(上面是自己的理解)。把一个程序分解成几个源文件的过程叫做模块化程序设计(modular programming)。模块化程序设计技术提倡用几个不同的结构紧凑的模块一起组成一个完整的程序。例如,如果一个程序中有几种实用函数、屏幕函数和数据库函数,你就可以把这些函数分别放在三个源文件中,分别组成实用模块、屏幕模块和数据库模块。(我查了一查)。应该是没写过多个源文件的程序。
学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?
(我知道它是个重要原则 2333)
内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系;
耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。
看了这些说明,我觉得需要设计的程序应该相关性很强,然后负责专一项任务。
学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。https://github.com/MercuialC/Sentimental/tree/master/.gitignore
for(i=0;i<n;i++)
{
b[i]=a[i];
}
for(i=0;i<n;i++)
{
if(a[i]==5)
{
j=1;
break;
}
}
if(j==1)
{
printf("YES");
}
else
{
printf("NO");
}
for(j=0;j<n;j++)
{
for(i=0,i<n-1;i++)
{
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
}
写一个程序,统计自己C语言共写了多少行代码。(将上述多个程序的Github链接附在随笔上,可以在随笔上附上关键而非全部代码)https://github.com/MercuialC/Sentimental/tree/master/.gitignore
#include<stdio.h>
int main()
{
char x;
int y=0;
while((x=getchar())!=EOF)
{
if(x=='
')
y++;
}
printf("%d",y);
return 0;
}
你知道什么是断点吗?给出自己调试程序的例子。(可以截图贴图说明)
(我怎么又不懂。。)
程序断点是指由于有特殊事件(中断事件)发生,计算机暂停当前的任务(即程序),转而去执行另外的任务(中断服务程序),然后再返回原先的任务继续执行。
我一般是输出数值去查找错误调试程序。有时输出数值为了判断某个循环或者条件有没有执行。
对比C语言的学习,你对《面向对象程序设计》的学习有什么具体目标?如何通过刻意训练提高程序设计能力和培养计算思维?如何通过“做中学”实现你的目标?
这个嘛我想和上面的事例是一个道理。至于目标,肯定不止停留在不挂科。会努力提升自己的代码水平。这个和C语言学习是一样的,但是既然这是一个较新世界的大门,面向对象,学习过程中会加倍努力掌握的。至于刻意提升自己的能力,我想就是一个问题多想几种方法,多想巧解,熟练通解啦。做中学,我想也就是不断训练,不断学习吧。
毕业后大多数人从事的工作的要求是“提笔能写,开口能说,问策能对,遇事能办”,非常重要的技能是公文写作能力,你觉得自己写作能力如何?要怎么提高?
(我记得小学获过好多次作文比赛的奖 2333)
写作能力嘛 ,应该还行,我觉得写检讨书能力十分出众。。(其实写作方面蛮多不足的),今后呢,多读书,多看报,少吃零食,多睡觉。(这真的很精辟)。读读各国的不同文化的著作,多多看看别人好的表述文章等等。