20165210 学习基础和C语言基础调查
一、技能学习过程和心得
读了娄老师《做中学》自己还是深有感受的,对于运动、音乐、棋牌都会一点,我觉得做中学可以概括为三点:做,学,学做结合,所谓的做就是实践,反复的去练习,而学就是学习,但这不是单纯的学习,而是在学习中思考,最后的学做是把思考的东西和学习的东西运用到实践上。
在我小学的时候,我曾经学过一段时间的二胡,但是“超过90%以上”的人那应该是没有,但是学习的过程和心得想和大家分享一下,因为我的母亲特别喜爱民族乐器,所以我也就从小学开始就接触民族乐器,二胡呀,葫芦丝呀等等,二胡是学的最长的也是最有感触的,一开始没有指法的练习,只有一些拉弓练习,学起来也比较枯燥,也没什么心情练,有时候去有时候不去,不好好练的结果就是跟不上老师的节奏了,这是意识到了应该认真对待了,那时候每天上午去学,下午也去学,晚上回家也要练上一阵,手指练出了手茧,形成肌肉记忆,一开始练习的都是一些基础的东西,后来就要学习一些技巧,这也就要开始思考了,在练习中需要总结如何运用简便的指法和如何用简便的换指方法,在练习中慢慢的做到熟练,在考试中就能游刃有余。
体育运动的初学者练习时候都需要重复动作,比如「学习打乒乓球时」要练习挥拍,挥拍成千上万遍之后动作就会定型,也就是教练常说的「肌肉有了记忆能力」,以后实战中可以不假思索地做出来。
练习还是必要的,在上中学之后,由于学业的原因,我没能坚持下来学习二胡,这也是我很后悔的一件事,但这件事始终提醒着我,做什么事都要去勤加练习,这样在实战中才能不假思索地做出来。
二、C语言基础调查
- 你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?
- 因为基础很差,所以在学习C语言的前一个假期就开始上网上了解,但并不是很懂,后来有了教材和老师的讲解,慢慢的开始入门了,后来有了作业系统,多加练习,就懂得越来越多,C语言的学习一定要勤加练习,多做题,不会的就要去查,就要去问。
- 目前为止估算自己写过多少行C代码?理解的情况如何?量变引起质变,如何平衡质和量?
- 大概写了3000多行的代码,一半以上都能够理解,在练习的过程中一定要把握量,量多不一定好,做多了但是没有理解也是无用的,不仅要练,还要在练中学,才能掌握。
- 学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?((x[4])())[4]这个声明中的x是什么东东?
- 数组指针:
指向数组的指针:int (*p)[10];
- 指针数组:
每个元素都是指针:int *p[10];
- 函数指针:
指向函数的指针变量:int (*p)[int x];
- 指针函数:
返回类型是指针的函数:int *p[int x];
- 学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?
- 没接触过,但是只有文件的一点印象,我上网查了一些资料,区分文本文件和二进制文件
- 学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?
- 面向过程注重的是过程而不管他对象是什么。
- 在C语言里面,什么是模块?你写过多个源文件的程序吗?
- 我觉得模块也是文件,目前没写过。
- 学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?
- 不太清楚,我上网查了一下,高内聚低耦合。
- 学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。
- 数组A的内容复制到数组B:
#include
#define n 7
int main()
{
int a[n]={3,9,9,0,0,5,6},b[n];
int i;
for(i=0;i
- 查找整数数组A中有没有数字5:
#include
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
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;
}
- 写一个程序,统计自己C语言共写了多少行代码?
- 因为学艺不精,百度去研究了一下,计算代码
#include
#include
#include
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
但是其中还有挺多的代码不太明了,希望继续努力。
- 你知道什么是断点吗?给出自己调试程序的例子。
在一次调试中设置断点,下一次只需让程序自动运行到设置断点位置,便可在上次设置断点的位置中断下来,极大的方便了操作,同时节省了时间。
Java各章问题
- Java字节码与Java虚拟机和Java运行时是什么关系?
- 两种浮点类型的区别?
- return和break、continue区别?
- class文件对象到底指什么?
- abstract和class有什么区别?
- 接口是不是类?
- 外嵌类的成员变量仅在内部类有效吗?
- StringTokenizer类是String类的分类吗?
- 窗口也是一个容器类吗?
- 输入输出流有什么相互联系吗?
- 关闭连接会影响API数据库吗?
- 什么时候用进程什么时候用线程?
- 如何寻找套接字的对象?
- 绘制图像是否包括加载图像?
- 集合框架中的泛型有什么优点?
对比C语言的学习,你对《Java程序设计》的学习有什么具体目标?如何通过刻意训练提高程序设计能力和培养计算思维?如何通过“做中学”实现你的目标?
坚持每天都去练习代码,一定要把练习的代码弄懂,多上网上查找一些资料,希望能通过学习Java,能够掌握这门语言,端正态度,多想多思考,多实践多练习。