20155327 学习基础和C语言基础调查
通过阅读老师推荐的五篇文章之后,其中有几个点引发了我的思考,便是“量变引起质变”“循序渐进”以及“坚持”。是的,这几个词可以说在生活中随处可见,几乎每个心灵鸡汤这几个词都是必不可少的,但是,真正能够做到这几样的又有多少人呢?老师文中举出的诸如练习打字,乒乓球以及背单词中相信每个人都做过,那么也都知道,这横亘于间的便是一个词——坚持。人都有怠惰心理,一件事虽然看起来简单,但是没有一颗不断坚持的心,便会被人的惰性所打败。譬如背单词,刚开始那几天肯定很兴奋,但是时间在一天天过去,有时候总会因为这样抑或那样的事耽搁,但是自己又没有引起重视,懒着懒着事情就被抛之脑后。是的,万事贵在坚持,一件事切不可半途而废。接着便是一些学习方法了,我们从小到大在成长,也在不断学习,这个过程便是循序渐进,人不能一口吃成个胖子,我们在学习中也要注意这一点,要先打好基础。
技能的学习与经验
要说比较好的个人技能,那估计就是我从小到大坚持最久的一项爱好画画了吧,不过要是说能有超过90%以上那自然是没有那个自信的,不过从小到大我也的确算是周围人中比较好的几个了。诚如前面所说,我觉得最主要的便是坚持和不断练习了吧。小时候一起学画画的人很多,要说我肯定画的不是最好的一个,但是到了现在,我也的确可以说自己的水平是远在他们之上的。小学的时间过得很快,步入初中的我们开始面临了学习的压力了,身边的人也渐渐放弃了学习画画,我因为兴趣,虽然没有每周都去学习画画,但是自己一有空还是会涂涂画画,绘画也是需要不断积累的,没有任何捷径可走,你画的多自然就比别人画的好。相信其他事也一样,只要肯付出功夫,那么就肯定比不用功的人多一份优势。
有关C语言学习的调查
你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?
主要是看书写代码吧,不过对于大一下自己C语言以及去年的JAVA的学习来说,自己的练习确实不够,因此在学习中自己就显得有些吃力,也因此深深体会到了编程的首要就是不断的练习,来不断熟悉巩固,J=你不天天练你就不能熟悉它,不多练自然不可能掌握与熟练应用。
目前为止估算自己写过多少行C代码?理解的情况如何?量变引起质变,如何平衡质和量?
具体也没算过,估计也是有两三千行吧。理解倒是不难,但是觉得自己编有些困难。
学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?((x[4])())[4]这个声明中的x是什么东东?
-
数组指针,也称行指针,是一个指针变量,指针变量保存的是一个数组的首地址。定义为int (*a)[N];
-
指针数组是一个数组,数组的每个元素都是指向相同数据类型的指针。定义为char*temp[N];注意使用指针数组前必须对其进行初始化。例如:char *ptr[]={"china","Japan"};
-
函数指针及指向函数的指针,储存的是一个函数在内存中的入口地址,可以通过它来调用函数。声明格式为:类型说明符 (函数名)(参数)。例如:void (fptr)();
-
指针函数是一个返回值为指针的函数。声明格式为:类型说明符 * 函数名(参数)。例如:int *GetDate(int n);
学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?
- 文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。存储介质:文件是指在各种存储介质上(如硬盘、可移动磁盘、CD等)永久存储的数据的有序集合,它是进行数据读写操作的基本对象。特性:每个文件都有文件名、文件所在路径、创建时间及访问仅限等属性。
流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道等。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。存储介质:除了和磁盘文件直接相关的文件流以外,流还有多种类型。流可以分布在网络中、内存中或者是磁带中。 - 二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放,也就是说存放的是数据的原形式。文本文件是把数据的终端形式的二进制数据输出到磁盘上存放,也就是说存放的是数据的终端形式。
学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?
面向过程是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类。……“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
在C语言里面,什么是模块?你写过多个源文件的程序吗?
在程序设计中,为完成某一功能所需的一段程序或子程序;或指能由编译程序、装配程序等处理的独立程序单位;或指大型软件系统的一部分。函数能体现C语言的模块化思想,将一个大程序分成不同的模块,通过函数调用的方式使用。一个程序可由若干个其他函数构成。由主函数调用其他函数,其他函数也可相互调用。同一个函数可以被一个或多个函数任意调用多次。,程序设计中主要指子函数。写过。
学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?
高内聚:在一个模块内,让每个元素之间都尽可能的紧密相连。也就是充分利用每一个元素的功能,各施所能,以最终实现某个功能。
低耦合:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。
应用时注意:模块的功能化分尽可能的单一;遵循一个定义只在一个地方出现;少使用全局变量。
学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。
- 复制:
#include<stdio.h>
#define N 5
main()
{
int a[N],b[N];
int i;
printf("输入数组a:\n");
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
printf("b数组:\n");
for(i=0;i<N;i++)
{
b[i]=a[i];
printf("%d\n",b[i]);
}
}
- 查找整数数组A中有没有数字5
#include<stdio.h>
#include<stdlib.h>
#define N 10
main()
{
int a[N];
int i;
printf("输入数组a:\n");
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<N;i++)
{
if(a[i]==5)
printf("a[%d]:5!",a[i]);
exit(0);
}
}
- 如何对整数数组A进行排序(从大到小)
#include<stdio.h>
#define N 10
void Paixu(int score[],int n)
{
int i,j,temp;
for (i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(score[j]>score[i])
{
temp=score[j];
score[j]=score[i];
score[i]=temp;
}
}
}
}
main()
{
int score[N],i;
for(i=0;i<N;i++)
{
scanf("%d",&score[i]);
}
Paixu(score,N);
printf("从大到小排序后:\n");
for(i=0;i<N;i++)
{
printf("%d\n",score[i]);
}
}
- 从小到大:
#include<stdio.h>
#define N 10
void Paixu(int score[],int n)
{
int i,j,temp;
for (i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(score[j]<score[i])
{
temp=score[j];
score[j]=score[i];
score[i]=temp;
}
}
}
}
main()
{
int score[N],i;
for(i=0;i<N;i++)
{
scanf("%d",&score[i]);
}
Paixu(score,N);
printf("从小到大排序后:\n");
for(i=0;i<N;i++)
{
printf("%d\n",score[i]);
}
}
写一个程序,统计自己C语言共写了多少行代码。
#include <stdio.h>
int main()
{
int ch,lines;
FILE *fp;
char filename[FILENAME_MAX];
printf("输入文件名:");
while(scanf("%s",filename) == 1)
{
fp = fopen(filename,"rt");
if(fp == NULL)
{
printf("文件打开失败");
printf("输入文件名:");
continue;
}
lines = 0;
while((ch = fgetc(fp)) != EOF)
{
if(ch == '\n') ++lines;
}
fclose(fp);
printf("%s 的行数为 %d\n",filename,lines);
printf("输入文件名:");
}
return 0;
}
你知道什么是断点吗?给出自己调试程序的例子。
断点在某行代码处设置断点后调试程序,程序运行到该行代码时会自动停止。
参考怎样快速阅读一本书,快速阅读一下云班课中有PPT,每章提出一个问题
1.JAVA SE中JVM,JRE与JDK分别是什么以及它们的关系是什么?
2.使用package分类的管理上的意义分别是什么?
3.JAVA中的基础语法与C语言的异同点是什么?
4.JAVA中建立对象的过程以及规范是什么?
5.如何处理编译程序的重载方法?
6.面向对象如何正确判断使用继承的时机?
7.如何使用interface来定义抽象的行为外观?
8.JAVA中如何处理throwable的错误?
9.JAVA中如何判断对象是否重复?
10.JAVA中如何通过不同数据输入输出?
11.撰写多线程程序的方式有哪些?
12.Lambda中如何判断是否需要写出参数类型?
13.如何取得系统时间?
14.如何取得channel的操作对象?
15.使用resourBundle时,如何根据基础名称取得对应的信息文档?
16.如何正确使用JDBC API?
17.编译执行等时期使用某类时编译程序会如何反应?
18.注释类型有哪些?
对比C语言的学习,你对《Java程序设计》的学习有什么具体目标?如何通过刻意训练提高程序设计能力和培养计算思维?如何通过“做中学”实现你的目标?
反思之前自己的C语言与JAVA学习之后。那么下学期就要用行动来展现自己的觉悟,严格按照老师的要求,努力练习,JAVA是一门十分注重实践的学科,我在之前学习了时也深刻体会到了这一点,光理解是远远不够的,实践操作远重于理论知识。那么自己下学期也要端正态度,坚持不懈。