20165210 学习基础和C语言基础调查

20165210 学习基础和C语言基础调查

一、技能学习过程和心得

读了娄老师《做中学》自己还是深有感受的,对于运动、音乐、棋牌都会一点,我觉得做中学可以概括为三点:做,学,学做结合,所谓的做就是实践,反复的去练习,而学就是学习,但这不是单纯的学习,而是在学习中思考,最后的学做是把思考的东西和学习的东西运用到实践上。

在我小学的时候,我曾经学过一段时间的二胡,但是“超过90%以上”的人那应该是没有,但是学习的过程和心得想和大家分享一下,因为我的母亲特别喜爱民族乐器,所以我也就从小学开始就接触民族乐器,二胡呀,葫芦丝呀等等,二胡是学的最长的也是最有感触的,一开始没有指法的练习,只有一些拉弓练习,学起来也比较枯燥,也没什么心情练,有时候去有时候不去,不好好练的结果就是跟不上老师的节奏了,这是意识到了应该认真对待了,那时候每天上午去学,下午也去学,晚上回家也要练上一阵,手指练出了手茧,形成肌肉记忆,一开始练习的都是一些基础的东西,后来就要学习一些技巧,这也就要开始思考了,在练习中需要总结如何运用简便的指法和如何用简便的换指方法,在练习中慢慢的做到熟练,在考试中就能游刃有余。

体育运动的初学者练习时候都需要重复动作,比如「学习打乒乓球时」要练习挥拍,挥拍成千上万遍之后动作就会定型,也就是教练常说的「肌肉有了记忆能力」,以后实战中可以不假思索地做出来。

练习还是必要的,在上中学之后,由于学业的原因,我没能坚持下来学习二胡,这也是我很后悔的一件事,但这件事始终提醒着我,做什么事都要去勤加练习,这样在实战中才能不假思索地做出来。

二、C语言基础调查

  1. 你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?
  • 因为基础很差,所以在学习C语言的前一个假期就开始上网上了解,但并不是很懂,后来有了教材和老师的讲解,慢慢的开始入门了,后来有了作业系统,多加练习,就懂得越来越多,C语言的学习一定要勤加练习,多做题,不会的就要去查,就要去问。
  1. 目前为止估算自己写过多少行C代码?理解的情况如何?量变引起质变,如何平衡质和量?
  • 大概写了3000多行的代码,一半以上都能够理解,在练习的过程中一定要把握量,量多不一定好,做多了但是没有理解也是无用的,不仅要练,还要在练中学,才能掌握。
  1. 学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?((x[4])())[4]这个声明中的x是什么东东?
  • 数组指针:
指向数组的指针:int (*p)[10];
  • 指针数组:
每个元素都是指针:int *p[10];
  • 函数指针:
指向函数的指针变量:int (*p)[int x];
  • 指针函数:
返回类型是指针的函数:int *p[int x];
  1. 学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?
  1. 学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?
  • 面向过程注重的是过程而不管他对象是什么。
  1. 在C语言里面,什么是模块?你写过多个源文件的程序吗?
  • 我觉得模块也是文件,目前没写过。
  1. 学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?
  1. 学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。
  • 数组A的内容复制到数组B:
#include <stdio.h>
#define n 7
int main()
{
    int a[n]={3,9,9,0,0,5,6},b[n];
    int i;
    for(i=0;i<n;i++)
    {
        b[i]=a[i];
        printf("%d",b[i]);
    }
    return 0;
}
  • 查找整数数组A中有没有数字5:
#include<stdio.h>
int main()
{
    int a[8]={2,3,6,5,8,9,7,4};
    int i;
    for(i=0;i<8;i++)
    {
        if(a[i]==5)
        {
            printf("have five\n");
            break;
        }
    }
    return 0;
}
  • 对数组A进行排序:
#include<stdio.h>
int main()
{
int a[10],i,j,t;
printf("请输入10个整数:\n");
for(i=0;i<10;i++)
{
    scanf("%d",&a[i]);
}
for(i=0;i<9;i++)
{
    for(j=0;j<9-i;j++)
    {
       if(a[j]>a[j+1])
       {
           t=a[j]; a[j]=a[j+1]; a[j+1]=t;
       }

    }

}
printf("排序以后的数:\n");
for(i=0;i<10;i++)
{
    printf("%d ",a[i]);
}
 return 0;
}
  1. 写一个程序,统计自己C语言共写了多少行代码?
  • 因为学艺不精,百度去研究了一下,计算代码
#include<stdio.h>
#include<Windows.h>
#include<string.h>
int main()
{ 
    char filepath[1000], batpath[1010]; //the absolute path of a file folder and a .bat file.
    gets(filepath);//input absolute path of a file folder
    strcpy(batpath, filepath);
    strcat(batpath, "\\Text1.bat");
    FILE *fp;
    fp = fopen(batpath, "w");
    fputs("DIR *.c /B>list.txt", fp);
    fclose(fp);
    system(batpath); 
    /*~~~the end of creating file name list~~~*/
    
    /*~~~the beginning of get .c file name from list~~~*/
    static int count = 0; 
    FILE *fp1, *fp2;
    fp1 = fopen("list.txt", "r");
    char s[100];
    char singleline[1000];
    while(fgets(s, 100, fp1))//get one line from list, each line refers to a .c file name
    {
        int len = strlen(s);
        if(s[len-1] == '\n') s[len-1] = '\0';
        printf("%s: ", s);  
        fp2 = fopen(s, "r");
        
        /*~~~the beginning of counting lines of code~~~*/
        
        while(fgets(singleline, 1000, fp2))//open the correct file, according to the file name
        {
            count++;
        }   
        printf("%d\n", count);
        fclose(fp2);
    }
    printf("\n");
    fclose(fp1);
    
    system("pause");
    return 0;
}  

参考:ZCplayground
但是其中还有挺多的代码不太明了,希望继续努力。
10. 你知道什么是断点吗?给出自己调试程序的例子。

  • 在一次调试中设置断点,下一次只需让程序自动运行到设置断点位置,便可在上次设置断点的位置中断下来,极大的方便了操作,同时节省了时间。

Java各章问题

  1. Java字节码与Java虚拟机和Java运行时是什么关系?
  2. 两种浮点类型的区别?
  3. return和break、continue区别?
  4. class文件对象到底指什么?
  5. abstract和class有什么区别?
  6. 接口是不是类?
  7. 外嵌类的成员变量仅在内部类有效吗?
  8. StringTokenizer类是String类的分类吗?
  9. 窗口也是一个容器类吗?
  10. 输入输出流有什么相互联系吗?
  11. 关闭连接会影响API数据库吗?
  12. 什么时候用进程什么时候用线程?
  13. 如何寻找套接字的对象?
  14. 绘制图像是否包括加载图像?
  15. 集合框架中的泛型有什么优点?

对比C语言的学习,你对《Java程序设计》的学习有什么具体目标?如何通过刻意训练提高程序设计能力和培养计算思维?如何通过“做中学”实现你的目标?
坚持每天都去练习代码,一定要把练习的代码弄懂,多上网上查找一些资料,希望能通过学习Java,能够掌握这门语言,端正态度,多想多思考,多实践多练习。

posted @ 2018-02-04 16:31  lykkyl  阅读(165)  评论(2编辑  收藏  举报