关于技能
你有什么技能比大多人(超过70%以上)更好?
先上结论——没有超过大多数人的技能,我就强行回答得到技能的经验吧hhh
我的高超技能?我思考了很久,却没有超过大多数人的技能。围棋早已荒废多年,图片处理和视频制作会一点,但直到现在都不会用pr和ae,设计的思路更是约等于没有,只做了几个海报和视频不敢托大,游戏就是个渣操作(躺),学习:学习成绩中上吧
先这样归纳一下吧,接下来
前方强答预警
前方强答预警
前方强答预警
在人生技能道路上,你有没有专长的高超技能获取的成功经验(学习,棋类,球类,乐器,艺术,游戏,......)
先讲点故事吧。
我记得初中NOIP竞赛第一节课的时候,整个机房都是人,大概有七八十个吧后来人一点点变少了,集训,筛选,继续,初赛,只剩7个人进了复赛。比赛前一天晚上,我们在讨论一道题,说的是几个人如何接水才能最快。
经验的话
- 兴趣 编程终究还是要靠兴趣吧。从那时候到现在,我都很喜欢鼓捣电脑,可以说NOIP是一个转折点吧,之前我只会去逛逛论坛学些“表象”的东西。之后就可以写程序了,虽然不知道脱离了题目要写什么,但是那种感觉就是很爽hhhh。
- 坚持 初中嘛,所谓的“主业是学习”,如果去上培训的话,晚上作业要做到很迟。而且,随着题目越来越难,思考就越来越难也越来越久。但是一定要坚持下去,可能会枯燥,可能会难懂得头痛,可能一开始的成绩会不忍直视……我相信,这很正常
- 资源 自己摸索是很难的,所以,要有好的资源(我记得那时候有一本大的算法书教材),有人引导,那样才会更好走下去。一人独行,难免看不清方向。
有关C语言学习的调查
是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?
学习C语言,主要是从pascal语言借助高考完了的那个暑假看的《The C Programming Language》搬迁过来的,搬迁到了指针。然后再在上课的时候跟着学。
教训还是一定要坚持,《算法导论》好像是十月买的吧,几周后在分治,现在还在分治。
学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?
- 数组指针:指向数组的指针
- 指针数组:指针构成的数组
- 函数指针:指向函数的指针
- 指针函数:返回指针的函数
学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?
- 文件:英文file(说起来我还以为会是document hhhhh英语不好) 存储在外部介质上数据的集合
感觉就是我们平时使用意义上的文件,因为外部介质就是硬盘啊之类的 流 :英文stream(我是用iostream记得) 流是程序输入或输出的一个连续的字节序列,就是“数据流动”的感觉==感觉自己没说
我之前只知道输入流和输出流,因为input/output stream嘛
然后一查还有其他的流 错误流啊日志流啊
而且stream的状态还有对应的处理函数(附链接 C/C++的流(stream)对象 by 刘奇文本文件:就是以“文本”的模式去解读二进制,也就是ASCII码、unicode编码等等
编辑上fopen(const char *path ,“r”)//只读 fopen ( const char *path ,"w")//只写
二进制文件:就是用二进制编写的文件
编辑上fopen(const char *path ,“rb+”);//读写 fopen ( const char *path ,"wb");//只写 fopen ( const char *path ,"rb");//只读 (当然最后两种都是用fclose
学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?
我一直都是用pascal里的procedure理解的,英文有“程序,手续,工序”的意思,面向过程就是着力于工序,着力于一种过程,比如说 交换元素 这样一个过程,我的习惯都是写一个swap的过程。我记得第一次看到函数definition和main一样的时候的时候,将main视为一个稍稍带有特殊规则的函数这个构想这让我眼前一亮。
解决问题应该是先找出算法,然后找出一种数据结构去表示数据,接着把算法分解成一个个小过程(但是具有相对较高的普遍性,不是强行分出的过程)。然后把过程写出来。
在C语言里面,什么是模块?你写过多个源文件的程序吗?
模块在我的理解完成模块化之后看起来就像是对程序进行分解重构,把一个顺序“大”结构中重复的内容抽出,核心的过程抽出,程序就像是一个个积木加上一些零件组成的
就像qq的目录,bins下面存着(估计是吧)很多核心组建,然后fonts什么的(有点牵强)只是些零件啊
没有写过多个源文件的程序,看到过一些原理但是没写过相对大型的程序所以一直没试着应用
学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?
我的理解,“高内聚”就是一个模块内“聚合力”极强,换而言之,就是模块内的东西有共同的目标,抽离一个部分这个模块极易不完整,加入一个部分又显得相关性降低。恰到好处的分解重构让模块内“恰到好处”地实现想实现的目标。
“低耦合”就是模块和模块之间关系弱,理想状态是几个人各自写一个模块,可以很容易的“封装”成几个黑箱然后”拼接“成一个大程序,模块与模块间的交流尽可能简单。
应用上:合理分类,使用回调,利用函数指针
学过了C语言,你如何把数组A的内容复制到数组B中?
数组类型是char的话,直接用 strcpy( )
拷贝
然后一般情况下直接用for或者while写
学过了C语言, 如何查找整数数组A中有没有数字5?
二分查找
i=0;j=n-1;
do
{
k=(i+j)/2;
if (s[k]>x) j=k-1;
else if (s[k]<x) i=k+1;
}
while ((i<=j)&&(s[k]!=x));
学过了C语言, 如何对整数数组A进行排序(从小到大,从大到小)?
这个 我想开坑2333 一直记得有九种但是一直都是”先冒泡后快排,还不行就白白(大雾)“的考试策略
blog 常用排序算法 持续更新
写一个程序,统计自己C语言共写了多少行代码
先写思路,全盘搜索.c .cpp,然后fopen它们,接着fgets(话说我还一直想要怎么判断行结束 但是fgets本身 或者说stdio.h 什么的里面函数要怎么实现?留个坑因为简单搜了下没搜到啥有用的信息)
然后发现其他程序里居然也有cpp(欸……
于是就变成了指定目录搜索.c .cpp
while (fgets(file,10003,fp)!=NULL)
{
count=0;file[strlen(file)-1]='\0';
fp2=fopen(file,"r");
while (fgets(line,10003,fp2)!=NULL)
{
count++;
ncount++;
}
printf("%20s %7d\n",file,count);
fclose(fp2);
}
以上程序github地址
你知道什么是断点吗?给出自己调试程序的例子。
断点,程序中断的点,debug操作的时候第一次运行的时候到那个位置会中断 这时候就可以add watch 用next line来看每一步程序对变量什么的影响啦
(嘛刚刚发现了修好dev一用debug就闪退的办法为什么我半年前搜的时候没看见啊啊啊啊啊啊好了淡定)
直接上图。。。恩。。。 题目(Contest1051 - 2016广东工业大学新生杯决赛网络同步赛暨全国新生邀请赛) 个人觉得这题还蛮好玩的2333而且做完了记得去看下Problem B2333
对比C语言的学习,你对《面向对象程序设计》的学习有什么具体目标?如何通过刻意训练提高程序设计能力和培养计算思维?如何通过“做中学”实现你的目标?
具体目标当然就是让程序写的漂亮呀,就是说,既能够完成任务又能让别人很容易看懂,更进一步让别人可以用
做法就是看书 敲代码 看书 敲代码
感觉学编程的时候一直都是这样,光看没有用,多敲敲然后就有了感觉
就像这个markdown和类似的html 光看完这些”标签“ 然后还是会忘记 敲一敲就逐渐行云流水也不会漏掉>后面的空格了之类的
毕业后大多数人从事的工作的要求是“提笔能写,开口能说,问策能对,遇事能办”,非常重要的技能是公文写作能力,你觉得自己写作能力如何?要怎么提高?
我:“写作能力是什么可以吃的?”
就这写作水平(捂脸),提高的话,多看看,多写写
后记
想了想还是说点什么吧。一般不喜欢写文章,而且本来想融入点古风元素带来点美感还是算了,因为写不好hhhhhh(心疼自己1s)。如果觉得这篇文章没有半点美感还请见谅。
恩 然后 我把上面正文的一段感触抽过来说
这段时间,听到高中同学在复习C++,复习生物的拉丁文,不知道思修怎么复习因为考试是直接写论文。我打开了百词斩发现四级的单词还剩很多。看直播看见一个ps很厉害的up主开直播了,点进去,欸这只是厦大大一的?
最近有点颓废了呢,感觉。好了不说了我去填坑了!