随笔。

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

你有什么技能比大多人(超过70%以上)更好?针对这个技能的获取你有什么成功的经验?

   回顾过往,我突然发现我好像没有什么值得骄傲的特长。要想有一个超过大多数人的技能,就要付出时间去学习练习,而在这之前你必须要拥有一个热爱这个技能的心。而对于我来说,我好像重来没有对于一件事有付出全身心努力的经历,即使是高考都是玩过来的。。我自身缺乏对一件事物长久的热爱,所以自然是没有专长的高超技能获取成功经验。这不禁让我感觉有点小尴尬,嗯。

有关C语言的调查

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

我基本是看成品代码学的C语言,我感觉看成品的代码对我自己有比较大的帮助,从成品代码中了解推断代码功能和怎么用,有时会自己实验看看代码的功用,其次还要学习代码中透入出来的思维方式,我感觉这是比较重要的。由于我的学习方式,保存c语言的代码就显得比较重要,这就好像错题集一样。有时也可以想想用其他的方式解决问题。

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

估算可能有点不准,1500?2000? 理解的话还算可以。

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

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

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

  文本文件与二进制文件的定义
  大家都知道计算机的存储在物理上是二进制的,所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的。这两者只是在编码层次上有差异。简单来说,文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码。

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

面向过程”是一种以过程为中心的编程思想。   就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
过程
  面向过程其实是最为实际的一种思考方式,就是算面向对象的方法也是含有面向过程的思想.可以说面向过程是一种基础的方法.它考虑的是实际的实现.一般的面向过程是从上往下步步求精.所以面向过程最重要的是模块化的思想方法.对比面向对象,面向对象的方法主要是把事物给对象化,对象包括属性与行为.当程序规模不是很大时,面向过程的方法还会体现出一种优势,因为程序的流程很清楚,按着模块与函数的方法可以很好的组织.比如拿学生早上起来的事情来说说这种面向过程吧.粗略的可以将过程拟为:   (1)起床   (2)穿衣   (3)洗脸刷牙   (4)去学校   而这4步就是一步一步的完成,它的顺序很重要,你只须一个一个的实现就行了.而如果是用面向对象的方法的话,可能就只抽象出一个学生的类,它包括这四个方法,但是具体的顺序就不能体现出来.

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

按照功能将一个软件切分成许多部分单独开发,然后再组装起来,每一个部分即为模块  
模块是在内核空间运行的程序,实际上是一种目标对象文件。
我自己没写过。

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

内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系;
耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。
耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息
内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。
所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。
耦合:一个软件结构内不同模块之间互连程度的度量。
对于低耦合,粗浅的理解是:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。这样有利于修改和组合。[1] 
要做到高内聚低耦合,重点并不是代码的编写,而是整体程序的设计阶段。
程序设计时,要先将要实现的功能列出来,然后设计模块。
模块设计后,再进行代码实现。
要做到高内聚低耦合,设计模块时需要做到:
1 各个模块之间的功能必须明确;
2 各个功能模块间实现的功能不可以有交叉;
3 不允许出现模块间的相互调用;
4 如果必须出现模块间调用,那么只允许单向调用,即A可以调用B,B不可以调用A。

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

A复制到B

#include<stdio.h>
int main()
{
    int a[100],b[100],i;
    for(i=0;i<N;i++)
    {
        scanf("%d",&a[i]);
        b[i]=a[i];
    }return 0;
}
查找数据
#include<stdio.h>
int main()
{
    int a[100],i,b=0;
    for(i=0;i<100;i++)
    {
        scanf("%d",&a[i]);
        if(a[i]==5)
        {
            b=1;
        }
    }
    if(b==1)printf("YES
");
    else printf("NO
");
    return 0;
}

排列

由大到小

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

由小到大

#include<stdio.h>
int main()
{
    int a[100],i,j,b;
    for(i=0;i<100;i++)
        scanf("%d",&a[i]);
    for(i=0;i<100;i++)
        for(j=i+1;j<100;j++)
            if(a[i]>a[j])
                b=a[i],a[i]=a[j],a[j]=b;
    for(i=0;i<N;i++)
        printf("%d  ",a[i]);
    return 0;
}

统计自己C语言共写了多少行代码

#include<Windows.h>
#include<string.h>
#include<stdio.h>
int main(){
    FILE *tp;
    int count=0;
    char dizhi[100],hnr[1000];
    gets(dizhi);
    tp=fopen(dizhi,"r");
    while(fgets(hnr,1000,tp)){
    count++;
    }
    printf("%d
",count);
    fclose(tp);
    return 0;
}

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

程序执行到断点会停止,主要用来查找程序的错误。。

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

目标:能将我的编码能力提高到我之所想能具于现实。多学多练多想,这不仅能提高程序设计能力和培养计算思维,也能实现我的目标。

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

我觉得我的写作能力一般,提高还是用上面的那三个多,多学多练多想。

 

 

原文地址:https://www.cnblogs.com/qwe1/p/6283193.html