2017寒假作业一

随笔

特别的技能

相比于其他人,知道的东西更多一点,会的东西也相对而言多一些。
长期坚持阅读,并且喜爱阅读(然而大多数情况是挑自己喜欢的看),喜欢的东西比较杂,所以杂七杂八的很多东西都知道一些,都会一些。(例如:骑行 摄影 吉他 折腾Android 动手能力尚可......)
偶尔会出门绕着所在的这个小城镇的环城路骑一圈。
吉他想起来有段时间没碰了,应该已经手生了。
折腾Android,应该是说从初中开始有了第一部Android手机,然后就走上了折腾的道路。嗯...变砖的也能成功救起来过。(折腾折腾习惯了Android,用ios各种水土不服...)国产应用毒瘤多...强烈推荐Xposed框架 +绿色守护,可以对付绝大部分的毒瘤...(微信支持GCM配合绿色守护...简直完美)
嗯...自己做过一些有点意思的东西(温度低的时候出现结晶..)当时密封做的还行...两年多了完好。

...想起来了,还有自己焊过移动电源...
和计算机算的接触算是较早的了...大概在我2..3岁左右家里有了电脑。当时是window98,外部存储用的是磁盘...容量没记错的话大概是2~3MB。然而...并没有什么优势,所以之前可以说是0基础。
感觉扯远了...总之...特别高超的技能严格来说应该是没有...(但我胜在数量多...)

About C

你是如何学习C语言的?

主要是通过教材进行学习。
最开始的时候是暑假通过慕课网初识C语言,对C语言有了一定的认识后开始通过教材学习。在学习中通过做题加强理解和掌握C语言。闲着没事的时候多做题 ,加强记忆,同时提升自己编程的能力。

和你高超的技能相比,C语言的学习有什么经验和教训?

自己的技能大多数只能说是浮于表面,并没有过多的深入学习。而C语言需要的是进行深入的学习和钻研。这正是自己比较欠缺的方面。需要做出一些改变。

目前为止估算自己写过多少行C代码?理解的情况如何?

目前大概写了2500行左右的C代码。目前对C语言有一个比较整体的认识。大部分知识点都能掌握。但还部分还无法做到熟练地运用。

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

  • 数组指针:指向数组的指针
  • 指针数组:一个数组其元素为指针
  • 函数指针:指向函数的指针
  • 指针函数:返回值类型为指针的函数

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

  • 文件(File):文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。

  • 流(Stream):流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道等。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。

  • 文本文件:件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。

  • 二进制文件:二进制文件是按二进制的编码方式来存放文件的。

文本文件和二进制文件并无本质的差别,他们的区别在于打开这个文件的程序在对其内容的解释上

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

一种以过程为中心的编程思想。
即分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用。

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

模块可以实现某一特定的功能,每个模块有一至多个函数。
多个源文件程序...没写过

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

高内聚即一个模块内各个元素彼此结合的紧密程度高,各段代码尽量模块化相互独立。但彼此之间又有一些细微的联系。
尽量将某一功能写入一个模块中,而不是在一个模块中写了多个功能。

学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。

1.1 将数组A的内容复制到数组B中 (不使用指针)

#include <stdio.h>
#define n 10
int main(void)
{
	int a[n],b[n],i;
	scanf("%d",a);
	for ( i=0 ; i<n; i++ )
	{
		b[i]=a[i];
	}
	return 0;
}

Copy(不使用指针)
1.2 将数组A的内容复制到数组B中 (使用指针)

#include <stdio.h>
#define n 10
int main(void)
{
	int a[n],b[n],i,*p=a,*q=b;
	scanf("%d",a);
	for ( i = 0; i<n ; i++ )
	{
		*q++ = *p++;
	}
	return 0;
}

Copy(使用指针)
2 查找数组中有没有数字5

#include <stdio.h>
#define n 10
int main(void)
{
	int a[n],num=0,i;
	scanf("%d",a);
	for (i=0; i<n ; i++)
	{
		if (a[i]==5)
		{
			num=1;
		}
	}
	if (num==1)
	{
		printf("This array contains 5.");
	}
	if (num==0)
	{
		printf("This array doesn't contain 5.");
	}	
	return 0;
}

Find
3 数组排序(冒泡法)

#include <stdio.h>
#define n 5
int main(void)
{
	int a[n],i,j,temp;
	scanf("%d",a);
	for ( i=0 ; i<n-1 ; i++ )
	{
		for ( j=i+1 ; j<n ; j++)
		{
			if (a[i]>a[j])//从小到大  要从大到小将>换成<
			{
				temp=a[i];
				a[i]=a[j];
				a[j]=temp;
			}			
		}
	}
	return 0;
}

Sort

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

统计有多少行,即计算有多少个" "(在不考虑有空行的情况下)。

#include <stdio.h>
int main(void)
{
	int count=0;
	char a;
	while((a=getchar()) != EOF)
	{
		if (a=='
')
		{
			count++;
		}
	}
	printf("%d line(s)",count);
	return 0;
}

ps:直接读取文件的这几天再研究研究。看看能不能补充上...

你知道什么是断点吗?给出自己调试程序的例子。(可以截图贴图说明)

  • 断点:程序中断执行的地方,可用于单步调试。程序会运行选中范围内的代码。

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

具体目标暂时设定为好好学习学好C++。
多做题,见识各种各样的题,然后合理运用自己做题的总结提高自己。
leaning by doing,在“做”的过程中解决问题的同时不断地总结,从而能够“学”。

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

写作能力只能说是一般...高中时期语文一直是弱项...
公文写作...个人认为...这东西是有套路的吧...按照套路来吧...
提高写作能力就...多写点随笔...


活在当下,坦然而琐碎。

原文地址:https://www.cnblogs.com/darkexisted/p/6287272.html