2017年寒假作业(一)

在人生技能道路上,你有没有专长的高超技能获取的成功经验?(学习,棋类,球类,乐器,艺术,游戏,......)

你有什么技能比大多人(超过70%以上)更好?针对这个技能的获取你有什么成功的经验?

前言

看到这个问题,我仔细想了想,大学之前学习占据了我能利用的大多数时间,就算是寒暑假我也被老师和父母赶着去上补习班。但是在此期间我仍然学习了很多东西,我学了游泳(因为一些原因中途放弃了)、足球、篮球、滑板、轮滑鞋等等,其中滑板稍微好一点,可能达不到超过百分之七十,但是我学习滑板过程中感触颇深,在这个过程中,我一次次的失败,身体虽然疼痛,但我能感受到一点一滴的进步,离成功越来越近。

过程

刚开始,我在电视上看到别人玩滑板,穿梭自由,来去如风,真的是非常羡慕,所以我求我爸帮我买了滑板。学习滑板那段时间,我每天都抽空学习,每次大概半小时。当然,为了能达到电视上那种效果,我上网查找了一些小视频,从最简单的直行开始学,失败最多的也是这个技能,我每失败一次,都会停下来用手拨弄研究怎么保持平衡,怎样加减速。就这样经过了好多次的摔跤之后,我终于可以顺利直行了,之后我又用这种方法学了各种各样的滑板技能。

心得

  • 初学者都有一种畏惧心理,害怕摔跤,因为直直地后仰摔下去真的很疼,要想学会滑板必须克服这种心理并且想办法避免这样摔。
  • 其次,学习不能盲目,在失败一次后要停下来总结研究并在脑中预演一下,防止下次再次出现同样错误。
  • 最后,学会简单的之后要想更难的技能进发,万事开头难,可是能坚持下去更难,不断学习新的技能才能和他人拉开距离,变得优秀。

有关C语言学习的调查

你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?目前为止估算自己写过多少行C代码?理解的情况如何?

在进入福州大学学习计算机之前,我对计算机一窍不通,因为我们那之前没有开设任何和电脑的课程。在学习c语言时,老师告诉我们这门课程是件非常重要,所以我在平常的学习中非常注重实践,课本上的一些代码,我并不满足于看看能理解,我是理解之后合上课本自己在电脑上运行一下,在这个过程中我发现问题,然后思考翻看课本比较不同,这种学习方式培养了是我对一些细节很敏感,能够及时发现一些语法问题。
学习c语言我发现我总是比周围的同学慢半拍,但是我认为我花费的时间并不比他们少,刚开始一遇到问题就向周围同学,学长,老师请教,甚至要他们的代码参考理解,不久后的期中考给了我沉重一击,让我发现这种方式的弊端,这种方式远远没有我自己查阅资料看课本印象来得深,自己的独立思考能力也在弱化。之后我改善了学习方式,期末考试险险过线,但比期中有了进步。
目前为止,不算课本上的,我大概写了1500行代码,全部能够理解,但还不够深刻,不能进一步优化,在平常做练习题时,我发现很多同学的方法真是巧妙易行,我的程序代码大都很麻烦不易读,所以,在今后的学习中。我要更注重优化算法。

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

  • 数组指针:指向数组的指针。
  • 指针数组:元素均为指针类型数据的数组。
  • 函数指针:存储空间的起始地址。
  • 指针函数:返回类型为指针的函数。

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

我没有听说过文件和流的概念,以下是我从网上收集来的内容。

文件(File)和流(Stream)的区别和联系

  • 文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。
    • 存储介质:文件是指在各种存储介质上(如硬盘、可移动磁盘、CD等)永久存储的数据的有序集合,它是进行数据读写操作的基本对象。
    • 特性:每个文件都有文件名、文件所在路径、创建时间及访问仅限等属性。
  • 流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道等。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。
    • 存储介质:除了和磁盘文件直接相关的文件流以外,流还有多种类型。流可以分布在网络中、内存中或者是磁带中。

文本文件和二进制文件的区别

  • 文本文件和二进制文件的定义
    • 文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。
    • 二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码。
  • 文本文件与二进制文件的存取
    • 文本文件的存储与其读取基本上是个逆过程。而二进制文件的存取显然与文本文件的存取差不多,只是编/解码方式不同而已。
  • 文本文件与二进制文件的优缺点

学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?

“面向过程”是一种以过程为中心的编程思想。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向过程其实是最为实际的一种思考方式,就是算面向对象的方法也是含有面向过程的思想.可以说面向过程是一种基础的方法.它考虑的是实际的实现.一般的面向过程是从上往下步步求精.所以面向过程最重要的是模块化的思想方法.对比面向对象,面向对象的方法主要是把事物给对象化,对象包括属性与行为.当程序规模不是很大时,面向过程的方法还会体现出一种优势,因为程序的流程很清楚,按着模块与函数的方法可以很好的组织。

在C语言里面,什么是模块?你写过多个源文件的程序吗?

在课本中,我们学到了用函数实现模块化程序设计这一章,在设计一个较大的程序时,往往把它分为热若干个程序模块,每一个模块包括一个或多个函数,每个函数实现一个特定的功能,一个c程序可由一个主函数和若干个其他函数构成,有主函数调用其他函数,其它函数也可以相互调用,目前我还没有写过多个源文件的程序。

学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?

  • 基本解释
    高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要是看类的内聚性是否高,耦合度是否低。
    • 高内聚
      内聚就是一个模块内各个元素彼此结合的紧密程度,高内聚就是一个模块内各个元素彼此结合的紧密程度高。所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。
    • 低耦合
      耦合:一个软件结构内不同模块之间互连程度的度量(耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。) 对于低耦合,粗浅的理解是:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。

学过了C语言,你如何把数组A的内容复制到数组B中?

#include<stdio.h>
int main()
#define n 10
{
	int a[n],b[n],i;
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
		b[i]=a[i];
		printf("%d ",b[i]);
	}
	return(0);
#include<stdio.h>
#include<string.h>
#define N 10
int main()
{
    char a[N],b[N];
    gets(a);
    strcpy(b,a);
    puts(b);
    return 0;
}

如何查找整数数组A中有没有数字5?

#include<stdio.h>
#define n 10
int main()
{
	int a[n],i,r=0;
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}
	for(i=0;i<n;i++)
		if(a[i]==5)r=1;
	if(r==1)printf("Yes");
	else printf("No");
	return(0);
}

如何对整数数组A进行排序(从小到大,从大到小)?

  • 从小到大
#include<stdio.h>
#define n 10
int main()
{
	int a[n],i,j,t;
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}
	for(i=0;i<n;i++)
	for(j=0;j<n-i;j++)
	{
		if(a[j]>a[j+1])
		{
			t=a[j];
			a[j]=a[j+1];
			a[j+1]=t;
		}
	}
	for(i=0;i<n;i++)
		printf("%d",a[i]);
	return(0);
}
  • 从大到小
#include<stdio.h>
#define n 10
int main()
{
	int a[n],i,j,t;
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}
	for(i=0;i<n;i++)
	for(j=0;j<n-i;j++)
	{
		if(a[j]<a[j+1])
		{
			t=a[j];
			a[j]=a[j+1];
			a[j+1]=t;
		}
	}
	for(i=0;i<n;i++)
		printf("%d",a[i]);
	return(0);
}

写一个程序,统计自己C语言共写了多少行代码?

这个正在研究。。。

你知道什么是断点吗?给出自己调试程序的例子

在某行代码处设置断点后,调试程序时,程序运行到该行代码时会自动停止,然后你就可以在这进行逐步调试了。其作用就是深入代码,查找代码内部缺陷。
目前没有用过断点。

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

对于《面向对象程序设计》这门课程,我打算改变一下学习方法,注重思考,注重实践,最好能达到遇到问题能够分解开来,逐一击破,不出现没有思路的情况。我基础薄弱,还是以能够跟上老师的进度,按时保质保量的完成作业为目标。对于计算机思维这一方面,我觉得还是需要积累,按时刷题,理解透彻,在实践中培养。将自己的程序与其他同学比较,最好能找到最优算法。

毕业后大多数人从事的工作的要求是“提笔能写,开口能说,问策能对,遇事能办”,非常重要的技能是公文写作能力,你觉得自己写作能力如何?要怎么提高?

我觉得我的写作能力有所欠缺,不能达到提笔就写的程度,开口能说这方面就更加欠缺,要提高这些能力,还是要多看书,多思考,培养自己的思维能力,以便在写和说时能够快速理清思维。

posted @ 2017-01-16 13:44  代码小渣渣  阅读(277)  评论(4编辑  收藏  举报