• 我的寒假,我的随笔!


    前言

    2017的寒假,刚刚上完大学第一个学期的我,虽然学了C语言,但觉得自己还是个计算机小白,发现更多自己不懂的东西,也发现别人比我懂得更多东西。也知道了自己需要学习的东西还有很多,同时自己对计算机也有了更多的期待。希望自己能够知道更多,希望自己能够变得更强大。博客是我第一次使用,这个markdown格式也是第一次使用。我觉得如果我没有读这专业,可能会一辈子都不会知道有这种软件。当然第一次使用可能有做的不好的地方。不过我还是相信自己能做得很棒的。
    

    在人生技能道路上,你有没有专长的高超技能获取的成功经验?

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

    刚刚开始看到这个作业,看到这个什么人生技能道路上的高超技能,我有种想放弃这个作业的冲动。因为这个东西我觉得自己并没有。然后借着这个借口偷懒了好几天。现在我决定还是来写一写。回顾自己的人生,自己的学习并不是非常好,在福州大学比我优秀的人满地都是,更不用说跟985高校的学生比了。虽然我们的高数老师张慧英老师经常跟我们说“能读福州大学的孩子智商都是很高的,高数会不及格都是不想学习”我觉得是有一定的道理的。既然能在省内排名那么靠前了。肯定是有一定的天分的,虽然比不上那些清华北大的孩子。
    我偷懒的几天我有想了一些东西,想一些自己比较优秀的东西。到现在我觉得自己最优秀的就是坚持了吧。但是我也不确定是不是能超过70%。高三那年,曾经坚持每天跑步,最开始是每天跑两圈,再三圈,五圈,到最后的十圈。中间又偷懒休息过几次。不过整整一年,当然除去寒假了,我的身体素质进步是很明显的。我从以前那个跑1000米,只能靠师生情来通过的渣渣,变成了一个1000米随意跑都能满分的大佬。或者说体育也是我的一项强项,不过这也只是对于业余的人来说了,还是没办法和那些专业练体育的人比较。就像我姐姐是练体育的,最开始我身体素质比较差的时候,1000米都跑不过她。现在最多也就和她相差无几吧。毕竟她也很久没有训练了。
    第二个坚持的事例还是高中的时候,可能比较喜欢玩,高一的时候并没有多认真学习,水一水而已。到了高二下学期,不知道什么原因,突然觉得自己应该开始学习了。于是突然就静下了心开始学习。发现自己还是有一些天分的。通过高二下学期,一学期的努力,从班级的中等,慢慢过渡到了前茅。但是英语总是拉后腿,我的信心也慢慢消磨殆尽了。后来,我的老爸跟我说不妨试试先背一些单词,我觉得有道理就接受了,最开始一开始是每天100个单词,其中差不多有17或者18个新单词,其他的都是旧单词。慢慢地,得到的第一个小奖励是打卡七天奖励的贝壳,然后打卡一个月,最后还有连续打卡100天。就连猴年春晚的那天我都没忘记背单词。也因此获得了猴年徽章。背单词差不多一个月后,我开始慢慢增加自己背的单词。150个,200个,到后来的每天300个。我一共坚持了118天,未曾断过一天!这件事情可以让我骄傲很久了hhhhhh
    


    这些是我的打卡记录。也因为此,我的英语慢慢得到了提高,其实,我不仅仅只是背单词,老爸跟我说背单词的时候,最开始确实真的只有背单词,后来慢慢开始看一些英语文章,不过很浪费时间,因为都看不太懂。没坚持很久就放弃了,但是选择了另外一个方面——听力。我开始用扇贝来练习听力,效果还是不错的。在这118天里,我的收获或许不是很多,但我觉得很充实。
    接下来这些是我的徽章

    这些徽章有连续打卡100天的,有猴年春节的,还有圣诞节和光棍节的,还有一个是听力1000句,也不是句子吧,有的是短文。这个听力是要把原句的每个单词打出来,有点难,每次都要听好多遍。不过辛苦还是值得的,在高考的时候,高考的英语成绩是我三年来英语最高的成绩!

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

    这个问题呢,我的成功经验啊,上述就有了。不过我觉得真的只要自己愿意去努力,愿意去坚持,肯定会有收获的。
    有关C语言学习的调查

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

    关于自己怎么学习C语言这个问题。我以前并没有任何基础,计算机小白,害怕开学会赶不上大家的脚步,我在暑假有看了一些视频,关于C语言的视频,自我感觉还不错,前面的东西和老师讲的并不会差很多。但是到了函数指针那些,就开始懵逼了,老师上课讲的我也很迷糊。觉得自己并没有十分理解这些概念,或许可以在寒假多多学习一下。觉得学习C语言最好的方法应该是敲代码了,多敲就会有感觉。然后我觉得应该要多总结,不过我自己不会总结。觉得总结的难度太大,或许是我道行太浅还不会吧。我的敲代码也不多。仅仅是老师布置的作业而已(我有去刷过一些网站上面的题目,不过都是送分题那种,收获不大的样子,然后因为懒惰就没有坚持了。)。我有争取全部都做。但是有一次那个要用递归的全排列我还是不会。同学给我讲过好几次了。还是比较缺少努力。

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

    估算啊,这又是一个难题,我对自己写的代码没有什么印象了,但是那些作业加上考试,我觉得我写的代码应该至少也有几百行吧,听着好少的样子、、、、、、、但是我觉得我寒假还是不会怎么写代码,放假就是要好好玩的。不过当然需要适度的学习,我买了一本《C++ Primer Plus》,准备预习一下,看看C++和C语言有什么联系与区别。
    

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

    数组指针:就是一个数组,指针指向数组的地址。
    指针数组:就是一个数组,里面的元素是指针。
    函数指针:这个我没有很深的印象,所以百度了一下。这个说的是:指向函数的指针,可以用来指向函数的入口地址,从而便可以在程序中使用它来调用它所指向的函数。感觉和数组指针有点类似。
    指针函数:(这个我也不明白,觉得自己白学了。。。。)
    指针函数其实就是函数返回值为一个指针,一般格式如下:
    数据类型 *函数名(形参表)

    {

                   函数体
    

    }
    我觉得这样子会比较好理解。

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

    其实学C语言的时候,我看书比较少,一般都是直接上手,不懂得自己想,想不出来会百度一下,如果还是不理解会问一下同学(我舍友就是大佬)。对于这些我不清楚。我继续百度哈。

    文件(File)和流(Stream)是既有区别又有联系的两个概念。

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

           ↓     ↓    ↓    ↓
    十进制码: 5     6    7    8 共占用4个字节。ASCII码文件可在屏幕上按字符显示, 例如源程序文件就是ASCII文件,用DOS命令TYPE可显示文件的内容。 由于是按字符显示,因此能读懂文件内容。

       二进制文件是按二进制的编码方式来存放文件的。 例如, 数5678的存储形式为: 00010110 00101110只占二个字节。二进制文件虽然也可在屏幕上显示, 但其内容无法读懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。 输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。 因此也把这种文件称作“流式文件”。
    一个文件可以以文本模式或二进制模式打开,这两种的区别是:在文本模式中回车被当成一个字符'/n',而二进制模式认为它是两个字符0x0D,0x0A;如果在文件中读到0x1B,文本模式会认为这是文件结束符,也就是二进制模型不会对文件进行处理,而文本方式会按一定的方式对数据作相应的转换。
    这些内容是我百度的,我看了之后不敢说完全懂了,但是至少我又多知道了一些东西。

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

     面向过程是指考虑如何解决问题。解决方法是算法。
    

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

     我对这个没有什么概念,但是我猜测应该是函数吧。
     果然和我的猜测差不多,C语言中,各个模块,其实就是函数的合集。没写过多个源文件的程序。
    

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

    不知道,突然觉得自己C语言学得很糟糕,我应该只是学会了如何协议邪恶简单的代码而已。路漫漫其修远兮,吾将上下而求索。hhhhh不知道适不适合在这里用。
    “高内聚,低耦合”应该是把一个程序模块化,变得井井有条,不再显得杂乱无章吧。
    

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

    这个很熟悉,内容复制用strcpy函数就可以了;查找数字的话也不难;排序老师也有讲过。
    

    下面是我的程序:

    数组A的内容复制到B中:

    #include<stdio.h>
    #include<string.h>
    int main()
    {
    	char A[100],B[100];             /*这里假设数组长度相等且长度只有100,具体情况再做改变就可以啦,其实A数组要复制到B数组中,有要求B数组长度要不小于A数组的长度*/ 
    	scanf ("%s",A);
    	scanf ("%s",B);
    	strcpy(B,A);
    	printf ("%s",B);
    	return 0;
    }
    

    查找整数数组A中有没有数字5:

    #include<stdio.h>
    int main()
    {
    	int a[1000],i,n,t=0;      /*在这里假设数组只有1000的长度,还定义了一个n,这个n的意义是这个数组的长度,可以根据不同题目做出改变。*/ 
    	scanf ("%d",&n);
    	for (i=0;i<n;i++)
    	{
    		scanf ("%d",&a[i]);    /*其实在这里就可以作弊的,在这里加个if条件就可以省下后面的程序了,不过仅限于数组是需要输入的,如果是原来就知道的数据就不行了*/
    		if (a[i]==5) 
    		{
    		   t=1;
    		   break;
    	    }
    	}
    	if (t==1) printf ("是");
    	else printf ("否");
    	return 0; 
    } 
    

    另外的查找方法如下:

    #include<stdio.h>
    int main()
    {
    	/*题目说只要找到5就可以了,并没有说要求说要知道有几个5等等之类的*/
    	int a[1000],i,t=0,n;     /*这里继续假设数组的长度和n*/
    	scanf ("%d",&n);
    	for (i=0;i<n;i++)
    	{
    		scanf ("%d",&a[i]);
    	} 
    	for (i=0;i<n;i++)
    	{
    		if (a[i]==5)
    		{
    			t=1;
    			break;
    		}
    	}
    	if (t==1) printf ("是");
    	else printf ("否");
    	return 0; 
    } 
    

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

    排序,我们有学过过冒泡排序法。
    代码如下:

    #include<stdio.h>
    int main()
    {
        int a[10];
        int i,j,t,temp;                //假设就十个数吧 
        for (i=0;i<10;i++)             //输入10个待排序的数
        {
            scanf("%d",&a[i]);
        }
        for (j=1;j<=9;j++)            //j从1到10循环
        {
            t=10-j;                       //t=10-j
            for (i=0;i<t;i++)             //  i从0到t-1循环  比较相邻的元素。如果第一个比第二个大,就交换他们两个
                                   
            {
                if (a[i]>a[i+1])           
                {
                   temp=a[i];
                   a[i]=a[i+1];
                   a[i+1]=temp;
                }
            }
        }
        for (i=0;i<=9;i++)           /*输出排序后的数字(这个输出的是从小到大的排序,如果要从大到小只要把循环里面给改了就行了)*/
        {
            printf("%d  ",a[i]);     /*从大到小如下:for (i=9;i>=0;i--) printf ("%d  ",a[i])*/
        }
       return 0;
    }
    

    写一个程序,统计自己C语言共写了多少行代码。(将上述多个程序的Github链接附在随笔上,可以在随笔上附上关键而非全部代码)

    对这个东西感到绝望,我完全不会,百度了,也看不懂。甚至连原理都是一知半解的。
    

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

    实话实说,我不知道,突然觉得自己计算机白学了。我百度了一下,大概了解了,这是百度的一个例子。
    断点,英文名字叫BreakPoint!
    

    意思就是说!你在某行代码处设置断点后,调试程序时,程序运行到该行代码时会自动停止!然后你就可以在这进行逐步调试了!
    其作用就是深入代码,查找代码内部缺陷!!
    我打开了我的Dev编译器想尝试一下,结果一直闪退,不知道为啥。。。。。

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

    回顾了自己所学习的C语言,根本就是一塌糊涂。我觉得目标,不敢说把所有概念都学会,单至少要比C语言做得好,我的目标是掌握百分之八十。平时的作业必须按时完成。还有就是多刷一些题目了。如何刻意训练,我觉得可以把同一个知识点的题目不断重复做,知道变成下意识就能想到,这应该就是达到境界了。learning by doing 这个,需要多多实践,学编程,不是只要看书就行的。更需要动手去操作。

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

    自己的写作能力,这是我的一个短板,从小到大,从来都是理科好,文科差,可能我看的书比较少。但是我有参加过一个公文写作的讲座,我有学到一些东西。其实公文可以训练的,开口能说,注重的是个人的交际能力,我觉得我的交际能力还是不错的,至少我当上班长应该是有交际能力的一份功劳的。
    

    后记

    这篇文章写得还是挺久的,第一次写,也不知道好不好,但是我觉得不是很好,自我感觉很差。以后会经常写一写吧,这也是对自己的一个总结,对自己的一个认识,不然当自己骄傲的时候都不知道自己的愚蠢,当自己沮丧的时候,也可以让自己重拾信心。我的处女作,哈哈哈哈,从头到尾看了一遍,有点逗比。
  • 相关阅读:
    Python 判断所有文件或文件夹
    Ubuntu显卡GPU 驱动的安装
    新系统ubuntu 需要配置项目 安装 cudnn 修改pip国内源
    Ubuntu下设置DNS的方法 和国内公共DNS汇总
    学习vue ,环境搭建(VS code、node.js、cnpm、vue-cli)创建项目 并引入element
    mybatis mysql count(*) 返回结果为null的解决
    使用V2Ry和V2RyN搭建本地代理服务器供局域网用户连接
    类似samba raidrive
    shell if判断语句 报错:syntax error near unexpected token `elif'
    stat()返回失败Invalid parameter
  • 原文地址:https://www.cnblogs.com/nanjibin/p/6284016.html
Copyright © 2020-2023  润新知