首页 > 技术文章 > 20155330预备作业2:做中学——实践中思考

ashin-kl 2016-12-18 20:00 原文

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

    • 摄像
  • 针对这个技能的获取你有什么成功的经验?
    与老师博客中的学习经验有什么共通之处?

到目前为止应该还算不上成功吧,所以也谈不上经验,毕竟还没有参加过比较正式的比赛。但在摄影方面掌握的知识应该比大多数人要多一些。摄影除了知道相机的构造,各个按键的功能,更注重的是拍摄者的感觉,当然也要多看、多做、多思考。

  • 有关C语言学习的调查

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

    主要是课堂上听老师讲课,随堂记笔记;课后整理笔记,在平台上做题,巩固所学内容。
    学习c语言的经验和教训总结起来应该是要多实践,多自己写代码,在调试代码,不断修改的过程中完善程序,同时,也能从中加深对各种概念的理解。

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

    不算重复的练习,粗略的估计大约在2000到3000行左右?其实不是很确定,大一下学期学习C语言时写过很多代码,自己也不太记得了。对指针、数组、结构体、文件部分了解的情况不太理想,还有很多不明白和疑惑的地方,运用起来出现的问题也比较多。

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

    数组指针: 指向数组的指针。例:int (*a)[4];

    指针数组: 用于存储指针的数组,也就是数组元素都是指针。
    例:int* a[4];

    函数指针: 指向函数的指针变量。

    指针函数: 带指针的函数,即本质是一个函数。

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

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

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

    区别和联系: 文件是指在各种存储介质上(如硬盘、可移动磁盘、CD等)永久存储的数据的有序集合,它是进行数据读写操作的基本对象。而除了和磁盘文件直接相关的文件流以外,流还有多种类型。流可以分布在网络中、内存中或者是磁带中。

    文本文件: 字符编码文件,即以ASCⅡ码进行存储的文件

    二进制文件: 二进制数值存储文件

    至于编程操作则由于才疏学浅,暂时还不是很会

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

    这部分其实不是特别了解,因为老师课上有讲过,所以对面向对象比较有印象一点,面向对象是一种以事物为中心的编程思想。那么以此类推,面向过程大约就是以过程为中心的编程思想吧。
    上网搜索了一下,面向过程程序设计就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用。

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

    在C语言中所使用的函数就是一种模块,文件应该也算模块。

    没有

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

    程序模块功能性强,各模块相互独立。

    1. 各个模块之间的功能必须明确;
    2. 各个功能模块间实现的功能不可以有交叉;
    3. 不允许出现模块间的相互调用;
    4. 如果必须出现模块间调用,那么只允许单向调用,即A可以调用B,B不可以调用A。
    • 学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。

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

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

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

    #include <stdio.h>
    int main()
    {
        int a[10],i,x;
        for(i=0;i<10;i++)
        {
            scanf("%d",&a[i]);
        }
        for(i=0;i<10;i++)
        {
            if(a[i]==5)
            {
                printf("%d",a[i]);
                break;
            }
        }
    }
    

    整数数组A进行排序

    #include<stdio.h>
    void main()
    {
        int a[10] = { 10,2,3,4,5,6,9,8,7,1 };
        int i,j,t;
        for(j=0;j<10;j++) 
            for(i=0;i<10-1-j;i++)
            if(a[i]>a[i+1]) /* 由小到大,由大到小时改为< */
            {
                t=a[i];
                a[i]=a[i+1];
                a[i+1]=t;
            }
        for(i=0;i<10;i++)
            printf("%d ",a[i]);
    }
    
    • 写一个程序,统计自己C语言共写了多少行代码。

    不会

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

在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后可以一步一步往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下。

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

能够很好的掌握java的语言基础,勤加练习,在学习过程中不但求量更要求质。做中学,不仅要实践,更要懂得思考,在思考的过程中发现新的内容。

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

目前来说,写作能力还算可以,但还未尝试过公文写作。

在不久前鲍书记在形策课上专门给我们讲了如何写公文一课,公文写作需要大量的阅读量来支撑,除此之外公文是否写的好还取决于很多很多的因素。提高写作能力首先需要阅读大量的书籍、范文。其次,我认为,就个人而言形成自己的写作风格也尤为重要。

推荐阅读