2017寒假作业一
前言
这是我第一次接触此类博客,也是第一次写博客,个人处于比较懵逼的状态。加之家里没有网络,不能边写边参考同学和老师的博客,更糟糕的是不能学习什么markdown,什么个git啊,对于我这个误入计算机的小白来说,写随笔的时候字字皆辛苦。不过,越艰苦的环境下,越是能激发人的潜能。好几天下来,去到网吧学习,也算是网吧的一股清流了。最终还是有所获。
你有什么技能比大多人(超过70%以上)更好?针对这个技能的获取你有什么成功的经验?
(阅读参考 北京电子科技学院 娄嘉鹏 老师的博客,关于“做中学”获得高超技能 http://www.cnblogs.com/rocedu/p/5826362.html/ 、 http://www.cnblogs.com/rocedu/p/6124349.html/xinz )
其实想来想去,自己学习上好像没有比别人好的。也只有篮球算是自己的专长了,打篮球会有不自主的热血豪情,球场上整个人是极为放松的,是我最享受的时候。当初开始学打球的时候,而自己一开始并没有多勤奋的练球,球技也只是一般甚至比较菜。真正有改变的是后来看了科比的一本专辑,有一句话让我受益匪浅“第二名意味着头号输家”,我不想打球打球打不过别人,当时自己下定决心一定要成为年段里面打球最好的,给自己制订了很多计划
打球计划
- 空闲的时间每天用左右手拍球,保持手对球的感觉
- 看高年级的打球,从中学习一些脚步或者招式
- 看篮球教学视频,练习上篮和投篮动作(“教授”的教学视频等)
-
实战训练,经常打4V4或者3V3
...效果
- 几年来,打篮球的人天天洗澡,换洗衣服,整个生活变得比较规律
- 心情愉悦,心态良好,人积极向上
- 上床比较容易入睡,睡眠质量好
人际关系变好了,朋友更多
...
学习技能
- 一万小时理论: 汗水,方法、日积月累,有毅力
- 训练: 运球,速度,变向过人,防守技巧,传球
- learning by doing: 在实战训练中提高
- 总结: 指导、反馈、总结
...
我想学习任何一样新的技能,首先是决心和毅力,其次是汗水,方法,而后便是提高,总结。若是做到这样,何愁技能学而不成?
关于c语言学习的调查
你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?
对于c语言的学习,主要是通过教材配合一些上机题目的学习,其一平时也比较少主动刷题,其二没有对课本一些概念和定义理解明白,导致了平时做题很慢,c语言学的不怎么好。
从打篮球的角度来看,学习编程很重要的还是决心和毅力。之前没有下定决心来学习编程,导致之后做起事来没有动力。再者,就是汗水和方法了,没有做够一定得题目对c语言学习来说是很不利的,而方法就是让你刷题时更节省时间。
学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?
说实话自己是知道的,但是描述不出来,所以从学长的博文里面借鉴了一下下,其实跟我想的也差不多
- 数组指针:指向数组的指针
- 指针数组:是一个数组,里面的元素是指针类型
- 函数指针:指向函数的指针
- 指针函数:是一个函数,返回类型是指针类型。
...
-- 引用自《第一篇随笔,2017年寒假》
学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?
- 文件指“存储在外部介质上的数据集合”。 外部介质指的是计算机的外部设备,而数据的集合就是一堆数据,计算机中指的是0或1,c语言中字符( ASCII值)也是数据。
- 二进制读写是将内存里面的数据直接读写入文本中,而文本,则是将数据先转换成了字符串,再写入到文本中。
学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?
从字面意思来理解,可以拆分来看:“面向过程”既是面向事件的过程,是以事件为中心的编程思想。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
在C语言里面,什么是模块?你写过多个源文件的程序吗?
- 模块就是讲代码拆成许多部分单独处理。
- 由于自己水平有限,好像还没有写过源文件的程序。
学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?
- 将整体进行划分,每个模块负责相应的功能,而且使得每个模块之间的相关性尽可能的小,这就是“高内聚低耦合”。
- 这个原则是让我们将每个模块的代码质量提高,模块之间的联系程度降低,这样防止更改模块导致整个程序的奔溃。
学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。
-
如何复制数组A内容到数组B
#include<stdio.h>
**int main()
{
int a[10],b[10];
int i,j;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
b[i]=a[i];
for(i=0;i<10;i++)
printf("%d ",b[i]);
return 0;
} -
查找数组A中是否有整数5
#include<stdio.h>
int main()
{
int a[10],flag=0;
int i,j;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{
if(a[i]==5) {flag=1;break;}
}
if(flag==1)printf("yes");
if(flag==0)printf("no");
return 0;
} -
对数组A进行排序
***#include<stdio.h>
int main()
{
int a[100],i,j,m,n,t;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
for(j=1;j<n-i;j++)
{
if(a[j]>a[j-1])
t=a[j-1];
a[j-1]=a[j];
a[j]=t;
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}写一个程序,统计自己C语言共写了多少行代码。
感觉自己写的不是很多代码,大概在2000行左右吧,在参考几位同学的博文之后我选择了一个比较简单的代码,参考的原因是自己能力貌似还没有达到大佬级别,有些东西看的比较慢,有由于自己上网时间有限,所以只能凑合凑合
#include<stdio.h>
int main()
{
char c;
int count = 0;
while ((c = getchar()) != EOF)
{
if (c == '\n')
count++;
else
continue;
}
printf("%d\n", count);
return 0;
}
你知道什么是断点吗?给出自己调试程序的例子。
代码运行到断点初会终端,可以更方便的检查代码。再简单点说就是你在某行代码处设置断点后,调试程序时,程序运行到该行代码时会自动停止!然后你就可以在这进行逐步调试,其作用就是深入代码,查找代码内部缺陷!
对比C语言的学习,你对《面向对象程序设计》的学习有什么具体目标?如何通过刻意训练提高程序设计能力和培养计算思维?如何通过“做中学”实现你的目标?
- 学习c语言,我自己的目标就是先把书上知识全部掌握,当然不能停留在书上,课后刷OJ也是必要的,老师经常说“要保证代码量,量变到质变”。
- 我觉得可以把一些经典的例题语法记录起来,经常回顾和复习,不然我确实是会经常忘记。我个人来说我是把写过的源代码都存到一个文件夹中,源代码中不懂得地方会加注释。
- 遇到问题,能解决的尽量自己解决,不会的一定要先思考,自己查阅资料(当然这个要看具体时间是否允许),然后向学长或者老师求助,使自己印象深刻。
毕业后大多数人从事的工作的要求是“提笔能写,开口能说,问策能对,遇事能办”,非常重要的技能是公文写作能力,你觉得自己写作能力如何?要怎么提高?
- 写作能力在当代是很重要的,我也意识到自己能力的不足,所以以后会多看书,多阅读一些好的文章,偶尔自己写一两篇文章,提高自己的写作能力。
在Github上注册一个账号
- 用户名:lu*g
- 邮箱:1419450376@qq.com
后记
看到别人写了个后记,情不自禁也写了起来,这一篇我千辛万苦才写出来的博文,写完整个人都好了。给自己新的一年开了好头,希望自己新的一年不要懒惰,把过去丢失的态度重新捡起来,当回那个学霸。