技能获取与编程学习 卢梓杰20155222

技能获取与语言学习

  • 你有什么技能比大多人(超过90%以上)更好?

    我觉得足球算是我的技能中比较突出的一项,虽然算不上有多好,但是在进入大学,经过一年多的训练之后,我还是有一些自己的体会。

  • 针对这个技能的获取你有什么成功的经验?

    首先兴趣当然是很重要的,除了谋生的技能,我们学习任何东西的动力都来源于兴趣(或者是女朋友的兴趣),足球也是这样,否则我为什么要在酷暑烈日之下,严冬的寒风之中奔跑,难道待在空调房里或者暖气房里不舒服么。兴趣也是让我们坚持的理由,每当在训练中累得喘不过气,腿软的想跪下,为什么还要坚持,当然是因为我热爱它。

    其次,还要有大量的基础训练。我们训练的大部分时间都在进行停传带射的基本训练,没有大量的基础训练,就不能有好的球感和快速的反应,也就谈不上进步。

    另外,我认为观看顶级的足球比赛也是十分重要的,以前我从来不看球赛,导致我在场上常常不知道要干什么,拿到球不知如何处理。最近,我观看了一些比赛或者视频,给了我很多灵感,当然这些都需要经过实践,才能变成真正的技能。

  • 与老师博客中的学习经验有什么共通之处?

    实践要具备一定的量才能引起质变:
    学乒乓球,没有10万次的练习掌握不了一个动作
    学好编程?没有10000行代码的训练量是不够的

    我十分认同这个观点,我也意识到了我对于技能的练习还远远不够。

  • 有关C语言学习的调查

    • 你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?

      学习c语言首先当然是上课听讲,不过由于我上课经常开小差,所以经常没跟上老师讲的内容。所以我基本是经过做练习学习的c语言,遇到没学过(上课没听到)的地方就翻书,再没有就百度,通过这样的方式,我才渐渐熟悉了c语言的语法。所以我认为编程和踢球一样,都需要大量的练习。但是还有一些不足的地方。首先我对于编程的兴趣还不是很浓厚,导致我只有在编程有疑问的时候才会去主动获取知识,并且在遇到问题很久都不能解决的时候,我也会放弃。另外,我在c语言的学习上喜欢闭门造车,不喜欢跟同学跟老师交流,导致我一直没什么进步。

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

      目前为止大概编过几千行代码,由于大多数都是简单的程序,所以基本都能理解。有的地方套用了课本上的方法,可能还不是完全理解,比如说某些排序方法,当然如果花时间去看应该还是能理解的,但是我并没有,因为我比较懒。

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

      数组指针:一个指向数组的指针
      指针数组:一个数组,里面的每个元素都是指针
      函数指针:一个指向函数的指针
      指针函数:一个函数,返回值类型是指针

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

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

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

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

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

      一个.c文件就是一个模块。由于编过的程序都是小程序,所以没写过多个源文件的程序。

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

    内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系;
    耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。
    要做到高内聚低耦合,重点并不是代码的编写,而是整体程序的设计阶段。程序设计时,要先将要实现的功能列出来,然后设计模块。模块设计后,再进行代码实现。
    要做到高内聚低耦合,设计模块时需要做到:
    1 各个模块之间的功能必须明确;
    2 各个功能模块间实现的功能不可以有交叉;
    3 不允许出现模块间的相互调用;
    4 如果必须出现模块间调用,那么只允许单向调用,即A可以调用B,B不可以调用A。

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

   #include <stdio.h>	    
 #include <stdlib.h>	     
 #include <string.h>	       
int main()	
	{
			char a[100],b[100];
			printf("输入数组a\n");
			gets(a);
			printf("输入数组b\n");
			gets(b);
			strcat(b,a);
		} 

		#include <stdio.h>
		#include <stdlib.h>
		int main()
		{
			char a[100];
			int i;
			printf("输入数组a\n");
			gets(a);
			for(i=0;a[i]!='\0';i++)
				if(a[i]=='5')
			{
				printf("已找到5");
				exit(0);
			}
			printf("未找到5");
		}

			 #include <stdio.h>
			  #include <stdlib.h>
			  #include <string.h>
					int read(int a[])
					{
						int i;
						for(i=0;;i++)
							{
								scanf("%d",&a[i]);
								if(a[i]==0)
									break;
							}
						return i;
					}
					choose(int i,int j,char ch)
					{
						if(ch=='<' && i>j)
							return 1;
						if(ch=='>' && i<j)
							return 1;
						return 0;
					}
					sort(int a[],int n,int ch)
					{
						int i,j,temp;
						for(i=0;i<n-1;i++)
							for(j=i+1;j<n;j++)
						{
							if(choose(a[i],a[j],ch)==1)
							{
								temp=a[i];
								a[i]=a[j];
								a[j]=temp;
							}
						}
					}
					print(int a[],int n)
					{
						int i;
						for(i=0;i<n;i++)
						printf("%d ",a[i]);
					}
					int main()
					{
						int a[100];
						int i,j,n,temp;
						char ch;
						printf("输入数组a,输入0结束输入\n");
						n=read(a);
						printf("选择从小到大还是从大到小(</>)\n");
						scanf(" %c",&ch);
						sort(a,n,ch);
						print(a,n);
					}

  • 写一个程序,统计自己C语言共写了多少行代码。
		#include<io.h>
		#include<string.h>
		#include<stdio.h>

int main()

{
char ch;
int count=0;
long Handle;
struct _finddata_t FileInfo;
if((Handle=_findfirst("C:\\Users\\luzijie\\Desktop\\c练习\\*.c",&FileInfo))==-1L)
printf("没有找到文件\n");
else

do{

FILE *fp;
char F_PATH[]="C:\\Users\\luzijie\\Desktop\\c练习\\";
strcat(F_PATH,FileInfo.name);
    if((fp=fopen(F_PATH,"r"))==NULL)
    {
        printf("error");
        exit(0);
    }
    while((ch=fgetc(fp))!=EOF)
        {
            if(ch=='\n')
                count++;
        }
    fclose(fp);


}while( _findnext(Handle,&FileInfo)==0 );
    _findclose( Handle );

printf("%d",count);

return 0;

}

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

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

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

    上课认真听讲,作业认真完成,完成五千行代码的任务。

    技能的提升要「刻意训练」
    低水平重复是不行的,训练时间再长都没用
    要循序渐进,不能进入「恐慌区」

    看了老师“走出舒适区”的建议,我深以为然。在大一学习c语言时,就是一直待在舒适区中,而对于不熟悉的指针、结构体、文件,常常是能避则避,导致在薄弱的方面一直没有进步。这次老师让编写一个统计代码行数的程序,让我走出舒适区,重新学习文件和指针的有关知识,虽然费了不少功夫,但感觉获益良多。可惜最终还是只能扫描一个文件夹里的文件,没有实现对整个磁盘进行扫描。

    另外,我认为多读优秀代码也是很重要的,高手的几行代码可能能顶我的几十行代码。要看到差距,才能促使进步。要先通过模仿,才能自己进行创新。

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

    我的写作能力是比较糟糕的,尤其是一些空话、套话,完全写不来。我认为首先应该丰富自己的思想,努力学习马克思主义这样的世界观和方法论,为写作提供素材。另外,也应该珍惜平常不多的写作机会,磨练自己的写作能力。

posted @ 2016-12-17 17:25  20155222卢梓杰  阅读(179)  评论(2编辑  收藏  举报