• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

学习C语言以及C语言基础调查

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
  • 你有什么技能比大多人(超过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("\n");
    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("\n");
    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这么课程。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap