20165235 学习基础和C语言基础调查
- 首先第一个问题:你有什么技能比大多人(超过90%以上)更好?感觉很难回答这种问题,其实我对很多东西挺感兴趣的,如果非要拿出一种比较突出的技能的话我感觉就是象棋和书法。不敢说比大多数人更好,但是在业余爱好者中间相对来说还是不错。
- 针对这个技能的获取你有什么成功的经验?若想获取这种技能首先最重要的是对这种技能的兴趣,因为兴趣是人最好的老师。因为我对象棋书法的热爱导致我想去学习。其次是坚持,若想真正的掌握一门技能就得去坚持练习,不断的增进自己的技能。
- 对于第三个问题:与老师博客中的学习经验有什么共通之处?在老师的博客中《优秀的教学方法---做教练与做中学》也包含了相关的内容
技能的提升要「刻意训练」
低水平重复是不行的,训练时间再长都没用
要摆脱「舒适区」,进入「学习区」学习
要循序渐进,不能进入「恐慌区」
--引用自《优秀的教学方法---做教练与做中学》
- 我们每个人都应该学会“做中学(Learning By Doing)”针对某一种特定技术或技能进行重复性的练习,从而将其熟练掌握,并且要在练习的过程中进行思考,才能将自己所学的转化为自己的知识。
有关C语言学习的调查
- 你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?在学习C语言的时候首先在上课的时候认真的听讲,然后在下课之后做一些练习(敲一遍课本上的代码或做校园网上的题),把在课堂上的尽可能的吸收为自己的东西。想学好一门技能最重要的就是要不断练习,要保证量,因为量变是质变的前提条件,但是也不能一昧的寻求量,要还要保证每次的练习是有效的。
- 目前为止估算自己写过多少行C代码?理解的情况如何?量变引起质变,如何平衡质和量?我可能至少写过3000行以上的代码,比较难得地方还是有的,但总体而言还是不错的。在每次的C语言练习中要保持量,但也不能仅仅保证量,也要关注质量,在高效的多次练习下才能有所收获。
- 学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?
- 数组指针:指向数组的指针
- 指针数组:数组内的元素都是指针,存储指针的数组
- 函数指针:指向函数的指针包含函数的地址,调用函数
- 指针函数:函数声明其返回值为某个指针时,给函数返回一个地址,用于需要指针的表达式
- 学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?关于这方面的知识我不是很了解,我会通过百度去了解。
- 学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?面向过程程序设计是以什么正在发生为主要目标进行编程,解决问题的方法是要对问题解决的过程进行编程去解决。
- 在C语言里面,什么是模块?你写过多个源文件的程序吗?
模块是将程序依照负责部分不同,拆分成多个部分,然后再拼装成完整的程序。没有写过源文件程序。
学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?高内聚是指一个模块内各元素联系紧密,低耦合是指模块之间独立性强,我们在设计时应尽量去满足这个基本原则,使各个模块间功能独立、程序设计思路明确。来自于《什么是“高内聚,低耦合”》 - 学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。
数组A复制到数组B:
#include <stdio.h>
#include <stdlib.h>
main()
{
char a[200] = "\0",b[200] = "\0";
int i;
printf("Input:\n");
scanf("%s",a);
for(i = 0;a[i] != '\0';i++)
{
b[i] = a[i];
}
printf("%s\n",b);
}
查找是否存在5:
#include <stdio.h>
#define N 100
int main()
{
char a[N] = "\0";
int i;
printf("Input:\n");
scanf("%s",a);
for(i = 0;a[i] != '\0';i++)
if(a[i]==5)
printf("5 is existent.");
return 0;
}
升序如下,降序同理
#include<stdio.h>
main()
{
int i, j, temp, a[10];
printf("ten numners:\n");
for (i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for (j =0; j<9;j++)
{
for (i=0;i<9-j;i++)
{
if (a[i]>a[i+1])
{
temp =a[i];
a[i]=a[i + 1];
a[i+1]=temp;
}
}
}
printf("The sorted numbers:\n");
for (i = 0; i < 10; i++)
printf("%d ", a[i]);
printf("\n");
}
- 写一个程序,统计自己C语言共写了多少行代码。
首先我并不知道该怎么写这个代码,我想到可以计算"/0"或是“;”的个数。我学习了百度上其他人的代码,首先要抓住一个关键词EOF,这是一个计算机术语,为End Of File的缩写,在操作系统中表示资料源无更多的资料可读取。资料源通常称为档案或串流。可以理解为换行符。
#include<stdio.h>
int main()
{
int n = 1;
int c;
while((c = getchar())!=EOF)
{
if(c == '\n') n++;
}
printf("%d\n",n);
return 0;
}
但是这段代码并不正确,无法正真的统计出代码行数,希望新学期得到老师的指导。
你知道什么是断点吗?给出自己调试程序的例子。 断点就是程序执行到断点处会停止。
阅读了老师的博客怎样快速阅读一本书,并且看了各章ppt后,对每章提出了以下问题。
Java各章问题
- Java中如何编写和保存源文件?如何正确的理解反编译?
- 如何正确理解两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素?
- 怎样正确利用“异或”运算?
- 类与C语言中结构体的区别是?
- abstract类使用意义以及无法理解开闭原则
- abstract类与接口的区别?
- 使用trycatch语句来处理异常与C语言casedefault语句的区别?
- Integer类调用其类的方法?
- JFrame() 创建窗口的方法
- 字节输入(出)流与字符输入(出)流如何连接?
- 连接MySQL数据库的方式
- 进程与线程的区别是?
- 如何读取URL中的资源?
- 如何进行图形的布尔运算?
- 链表的使用(难点)。
- Java学习目标
- 首先要独立思考,学会独自解决问题。实在解决不了的问题通过网络,老师,同学等去解决。
- 要学会大量的敲代码,努力要把课本上的代码敲一遍,孰能生巧,加强对代码的理解。
- 独立的去编写一些代码去解决一些实际问题,平时也要去看一些算法的书,学习一些算法,增强自己代码的编写能力。多看一些关于本专业的书,加强自己的专业知识。
- 要学会去坚持,并且严格要求自己,只有这样才能学有所成。
程序设计入门,最有效的方法要积极主动敲代码。
--引自与《积极主动敲代码,使用JUnit学习Java》