20165221学习基础和C语言基础调查
1.你有什么技能比大多人(超过90%以上)更好?
- 我觉得自己应该改算资质平平的那种人,如果说有什么技能比大多数人更好,我觉得应该是看过自己喜欢的书后,那种记忆能力。就比如自己从小对历史很感兴趣,小时候看百家讲坛,现在读一些历史类书籍,总觉得看完后,对里面的人物和事迹记忆的很清楚。在以后的学习中,讲到自己看过的书中内容时,也能很快的反应过来。
2.针对这个技能的获取你有什么成功的经验?
- 我觉得从这个技能的获取中得到的成功的经验是兴趣和专心。因为我对历史感兴趣,所以在阅读此类书籍时,我觉得很轻松不觉得是一种负担,而且十分享受这个过程。其次,我每次看此类书籍时,会选择去图书馆,这样可以更专心的钻进书里面,从而获得最大最好的阅读效果。这样一来,有时候一看就可以看一个上午,慢慢的,书中的内容和情节就印在了脑海中了。
3.与老师博客中的学习经验有什么共通之处?
- 有计划,也要有行动,只动嘴皮子还是一无所获。
熟悉我的同学都知道我有一系列提升自己的群:「每一天万步」健身群、「瘦成一道闪电」减肥群、「每月一本书」阅读群、「每天一百行」编程群、「每天一页字」书法群、「毕业生编程对赌群」...
-- 引用自《做中学(Learning By Doing)》
老师在上面的博客中也提到了,有时候我们每个人都会有各种各样的计划,利用发达的社交网络,建立各种群聊,本来期望通过大家相互监督,达到共同进步。殊不知,一切还是得靠自己,有计划也要有行动。就像我上学期阅读《明朝那些事儿》时,全套七册,自己不仅有计划,而且付诸实践,坚持每天读一点,最后在学期末读完了整套书。形式很重要,但是,内容永远大于形式。
4.有关C语言学习的调查
- 1.**你是如何学习C语言的**
大一下学期的C语言,主要是通过对题库的题目做和有时候实验课上的测验学习的,有时候遇到概念和用法不清楚时,也会去翻翻课本。
- 2.**目前为止估算自己写过多少行C代码?理解的情况如何?量变引起质变,如何平衡质和量?**
估算应该有接近3000行代码。对知识点的理解主要还是通过做题完成的,所以理解情况还是以应用为主,我觉得理解情况一般吧。量是平常大量的练习,质是最后理解程度的飞跃。在追求练习量足够大时,也不能够忽略练习的质。如果一味练习自己已经掌握的知识点或者对照答案敲自己一点头绪都没有的题目,也很难有进步,达到质的飞跃。所以在练习时也要选择适当难度的爬坡题。
- 3.**学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?**
数组指针是一个指向数组的指针,其本质是指针;
指针数组是一个由指针为元素组成的数组,其本质是数组;
函数指针是一个指向函数的指针,其本质是指针;
指针函数是一个返回值为指针的函数,其本质是函数。
- 4.**学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?**
我不太清楚文件和流的区别和联系。但是通过查阅资料了解到,文件和流是既有区别又有联系的两个概念。文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道等。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。而文本文件是以一些常用字符编码方式编码的,每个字符都对应相应的编码,独自占用一个字节的存储空间,是定长的;二进制文件是用二进制进行编码的,可以自定义编码,是不定长的。在C中,文本文件操作是通过库函数完成的;二进制文件是通过fopen,fread,fwrite三个函数完成的。
5.**学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?**
“面向过程”是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类。面向过程通过分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用来解决问题。
6.**在C语言里面,什么是模块?你写过多个源文件的程序吗?**
我理解的模块就是将C语言中要解决的逐一分解成若干个小目标,然后通过对小模块的完成,达到解决问题的目的。自己目前还没有写过源文件的程序。
7.**学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?**
高内聚是指每个模块是由相关性很强的代码组成,只负责一项任务,独立性强。低耦合是:一个完整的系统,各个模块相互独立,模块与模块之间的接口,尽量的少而简单。关于如何具体应用,自己并不是特别清楚。
8.**学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。**
#include<stdio.h>
#include<stdlib.h>
int search(int a[],int n)//查找整数数组A中有没有数字5
{
int i;
int flag=0;
for(i=0;i<20;i++)
{
if(a[i]==5)
flag=1;
}
return flag;
}
void min(int a[],int n)//整数数组A进行排序(从小到大)
{
int i,j,k,temp;
for(i=0;i<n;i++)
{
k=i;
for(j=i;j<n;j++)
{
if(a[k]>a[j])
{
k=j;
}
}
if(k!=i)
{
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
}
void max(int a[],int n)//整数数组A进行排序(从大到小)
{
int i,j,k,temp;
for(i=0;i<n;i++)
{
k=i;
for(j=i;j<n;j++)
{
if(a[k]<a[j])
{
k=j;
}
}
if(k!=i)
{
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
}
int main()
{
int n,i,a[50];
printf("How many numbers?\n");
scanf("%d",&n);
printf("Please input numbers:\n");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
if(search(a,n)==1)
{
printf("数组中有 5 !\n");
}
else
{
printf("数组中没有 5 !\n");
}
min(a,n);
printf("从小到大排序:");
for(i=0;i<n;i++)
{
printf("%d",a[i]);
}
printf("\n");
printf("从大到小排序:");
max(a,n);
for(i=0;i<n;i++)
{
printf("%d",a[i]);
}
return 0;
}
9.**你知道什么是断点吗?给出自己调试程序的例子。**
在某处设置断点后,调试程序时,程序运行到该行代码时会中断,方便逐步调试查找问题。
5.章节提问
1.Java中什么是反编译?什么是类?
2.Java的数组与c语言的区别?引用类型数据有哪些?
3.什么是二目运算?逻辑运算的顺序问题?
4.成员变量和局部变量如何区分?
5.抽象类是什么?
6.import语句如何引入包中类和接口?
7.异常类和断言的使用方法?
8.字符串与C语言中使用区别?字符串分析器使用方法?
9.如何理解类、窗口、组件?
10.链表如何使用?
6.对比C语言的学习,你对《Java程序设计》的学习有什么具体目标?
具体目标是态度端正,尽量抽出多的时间去学习这门课程,可能自己基础不是很好,但是自己会尽力学习学好这门课程的。刻意训练就要求自己每天有意识的去敲敲代码,温故一下知识,逐渐提高能力。关于做中学,我认为是发现自己在学习中不理解的地方,通过自己做题摸索逐渐理解,虽然过程很痛苦,但是认真坚持下去,这样的掌握效果应该比老师满堂灌要好很多,重点还是看自己的努力和付出。