zoukankan      html  css  js  c++  java
  • 学习C语言以及C语言基础调查

    学习声乐的心得

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

      就我个人而言,在所有的兴趣之中,做得比较好的应该属于声乐。

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

      我对于声乐处始于兴趣,成功的经验谈不上, 不过为了提高自己演唱的技巧,我确实有本人的几点拙见。

    首先,兴趣是最好的老师,它会给你带来探索和练习的动力;

    其次,为了提高自己的水平,模仿与借鉴是不可避免的;

    最后,经常与相近水准的人交流,因为处于同一位置,对彼此的困惑与瓶颈可以有更深的了解。

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

      我阅读过娄老师的博客优秀的教学方法---做教练与做中学,并且观看了电影卡特教练的简介。

    实践要具备一定的量才能引起质变。

      我十分赞同楼老师的观点,以声乐表演为例,我曾经在学校选修过李玲老师的
    声乐表演艺术这门课程,李老师也说过,想要提高自己的演唱水平仅仅靠上课时不够的,他需要重复性的大量练习,才能上的提升。以马克思基本原理——量变引起质变,来看这也是合理。

    C语言基础调查

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

      A:关于C语言的学习,坦诚的说,我并没有好好听课,大部分的学习靠的的是自学课本内容,做题,以及搜索引擎上的内容。对于C语言,我最大的教训,也可以说遗憾,就是没有彻底理解指针,而指针又是C语言的精髓,我对此十分后悔。所以,在学习JAVA的过程中我不会再有任何含糊

    Q:目前为止估算自己写过多少行C代码?理解的情况如何?量变引起质变,如何平衡质和量?

    A:C代码的练习行数在预备作业一中也有提到过,据不完全统计应该有2000+行。所学的基础内容掌握较为牢固,但对于C语言指针的运用不慎熟练。

    关于量变与与质变的问题,我觉得在接触到一个新的领域时,应以量为主,通过大量的训练,迅速提高自己。在达到一定的瓶颈后应以量为辅,多思考,来突破自我

    Q:学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?((x[4])())[4]这个声明中的x是什么东东?

    数组指针:指的是数组名的指针,即数组首元素地址的指针。即是指向数组的指针。

    指针数组:数组元素全为指针的数组称为指针数组。

    (两者的区别就想像一把钥匙连着很多线和一根线上串了很多钥匙)

    函数指针:函数指针是指向函数的指针变量。 因此“函数指针”本身首先应是指针变量。

    指针函数:指针函数是一个函数,返回类型是一个指针。

    x不是什么东东,应该是个数组。

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

      A:学过了C语言我也不会,所以我网上学习了一下。

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

      所以可以说,文件若是没有结构,则为流文件,属于流。有结构的每个单位被称作一个逻辑记录。

      A:文本文件是特殊的二进制文件两者并无本质差异,区别在于打开这个文件的程序在对其内容的解释上

    • 关于编程:文本文件的编程是使用printf,根据ASIC II码作为储存规则,而二进制文本则是fwrite,不根据ASIC II码。若是将字符串“HELLO”写入硬盘中,两种文件执行结果相同且所占字节数相同;但两者最大的区别就是对数字的处理上,例如数字9,用文本文件写入硬盘中只需一个字节,应二进制文件9为1001,写入硬盘中需要4个字节。
    Q:学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?

    面向过程程序设计其实是一种C语言设计思想,分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用。

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

      A:就我个人理解,模块相当于一个黑盒子,完成编程后我就可以不去管他的代码,只需要掌握它的I/O就可以。一个较复杂的工程可以模块化,根据面向过程程序设计的思想,分析解决问题所需要的步骤,将其模块化。

      我没有写过多个源文件的程序,不过我参考了如何在一个源文件中调用另一个源文件的函数,大致了解了一下,在完成在完成这篇博客后,我会去实践证实,如有需要会向老师请教

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

    耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息

    内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。

      因此高内聚低耦合的意思是模块内程序联系紧密,模块之间相互独立,这也是程序模块化黑盒子的思想体现。在运用到高质量的程序设计时,应遵循“高内聚,低耦合”的思想,降低模块之间的联系,提高模块内各元素的联系性。

    Q:学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。
    #include <stido.h>
    #include <string.h>
    #define N 50
    main()
    {
        char a[N],b[N];
        printf("string a is:");
        gets(a);
        memcpy(a,b,sizeof(a));
        puts(b);
    }
    
    #include <stdio.h>
    #include <string.h>
    main()
    {
      int a[5],i,flag=0;
           int num;                        
      for(i=0;i<=4;i++)
          {
             scanf("%d",&a[i]);
          {
      for(i=0;i<=4;i++)
          {
              if (a[i]==5)
               {
                  printf("有数字5");
               }
          }
    }
    
    #include <stdio.h>
    int main()
    {
        int a[6];
        int i;
        for (i = 0; i < 6; ++i)
        {
            scanf("%d", &a[i]);
        }
        int j, k;
        for (i = 0; i < 6; ++i)
        {
            k = i;
            for (j = i+1; j < 6; ++j)
            {
                if (a[k] > a[j])k = j;
            }
            if (k!=i){
                int t = a[k];
                a[k] = a[i];
                a[i] = t;
            }
        }
        for (i = 0; i < 6; ++i)
        {
            printf("%d ", a[i]);
        }
        printf("
    ");
        return 0;
    }// 从小到大升序
    
    #include <stdio.h>
    int main()
    {
        int a[6];
        int i;
        for (i = 0; i < 6; ++i)
        {
            scanf("%d", &a[i]);
        }
        int j, k;
        for (i = 0; i < 6; ++i)
        {
            k = i;
            for (j = i+1; j < 6; ++j)
            {
                if (a[k] < a[j])k = j;
            }
            if (k!=i){
                int t = a[k];
                a[k] = a[i];
                a[i] = t;
            }
        }
        for (i = 0; i < 6; ++i)
        {
            printf("%d ", a[i]);
        }
        printf("
    ");
        return 0;
    }//从大到小降序
    
    Q:写一个程序,统计自己C语言共写了多少行代码。

    参考了一些网上的资料,还没有一个大致的想法,会单独找一个时间发出来。

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

    断点就是在程序设计的过程中用来对部分程序内容进行调试的手段。

    每章的问题

    • 1.如何安装JDK,以及系统环境编译是什么,反编译如何进行?
    • 2.类型转换算法具体如何进行,java中的基础与c语言基础内容有什么细微的差异?
    • 3.没什么问题,好像与c语言内容差不多。。
    • 4.子类与继承有什么用?instanceof的用法?程序设计提倡的开-闭原则是什么?
    • 6.接口的口体有什么方法,
    • 7.为什么叫做匿名类,异常类,断言是什么?
    • 8.string和stringbuffer类有什么不同,这么多类别需要如何有技巧性的掌握?
    • 9.组件类和容器类的异同,java处理事件的模式是什么?
    • 10.inputstream和outputstream创建对像的具体内容。
    • 11.JDBC技术的用处?
    • 12.线程是什么,wait方法怎么做?
    • 13.URL类,RMI是什么?
    • 14.网站设计中的图形音乐也是用java设计的吗?
    • 15.泛型类与集合框架的定义以及具体用法。

    关于JAVA学习

    对于新学期java的学习我觉得充满了挑战但也不乏趣味,所以我新学期的目标就是在快乐之中出色的掌握java。

    对于自身水平的提高,就像我上文中提到的那样:在接触到一个新的领域时,应以量为主,通过大量的训练,迅速提高自己。在达到一定的瓶颈后应以量为辅,多思考,来突破自我。这也体现了做中学的意志。学而不思则罔,思而不学则殆,做中学,学中思,我相信一定可以的掌握java这么课程。

  • 相关阅读:
    Eclipse
    Android View Attributes
    Android Virtual Device
    Bootstrap
    Nginx常用命令
    [多线程]多线程(Thread、Runnable、Callable)
    Redis、MongoDB及Memcached的区别
    Linux将某目录授权给某组里的某用户
    CentOS修改locale解决调用API乱码问题
    MyBatis与Hibernate的区别?
  • 原文地址:https://www.cnblogs.com/xiaozhuzqh/p/8413467.html
Copyright © 2011-2022 走看看