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

时间:2022-02-09 16:45:07

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

  • 首先第一个问题:你有什么技能比大多人(超过90%以上)更好?感觉很难回答这种问题,其实我对很多东西挺感兴趣的,如果非要拿出一种比较突出的技能的话我感觉就是象棋和书法。不敢说比大多数人更好,但是在业余爱好者中间相对来说还是不错。
  • 针对这个技能的获取你有什么成功的经验?若想获取这种技能首先最重要的是对这种技能的兴趣,因为兴趣是人最好的老师。因为我对象棋书法的热爱导致我想去学习。其次是坚持,若想真正的掌握一门技能就得去坚持练习,不断的增进自己的技能。
  • 对于第三个问题:与老师博客中的学习经验有什么共通之处?在老师的博客中《优秀的教学方法---做教练与做中学》也包含了相关的内容

技能的提升要「刻意训练」

低水平重复是不行的,训练时间再长都没用

要摆脱「舒适区」,进入「学习区」学习

要循序渐进,不能进入「恐慌区」

--引用自《优秀的教学方法---做教练与做中学

  • 我们每个人都应该学会“做中学(Learning By Doing)”针对某一种特定技术或技能进行重复性的练习,从而将其熟练掌握,并且要在练习的过程中进行思考,才能将自己所学的转化为自己的知识。

有关C语言学习的调查

  1. 你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?在学习C语言的时候首先在上课的时候认真的听讲,然后在下课之后做一些练习(敲一遍课本上的代码或做校园网上的题),把在课堂上的尽可能的吸收为自己的东西。想学好一门技能最重要的就是要不断练习,要保证量,因为量变是质变的前提条件,但是也不能一昧的寻求量,要还要保证每次的练习是有效的。
  2. 目前为止估算自己写过多少行C代码?理解的情况如何?量变引起质变,如何平衡质和量?我可能至少写过3000行以上的代码,比较难得地方还是有的,但总体而言还是不错的。在每次的C语言练习中要保持量,但也不能仅仅保证量,也要关注质量,在高效的多次练习下才能有所收获。
  3. 学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?
  • 数组指针:指向数组的指针
  • 指针数组:数组内的元素都是指针,存储指针的数组
  • 函数指针:指向函数的指针包含函数的地址,调用函数
  • 指针函数:函数声明其返回值为某个指针时,给函数返回一个地址,用于需要指针的表达式
  1. 学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?关于这方面的知识我不是很了解,我会通过百度去了解。
  2. 学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?面向过程程序设计是以什么正在发生为主要目标进行编程,解决问题的方法是要对问题解决的过程进行编程去解决。
  3. 在C语言里面,什么是模块?你写过多个源文件的程序吗?

    模块是将程序依照负责部分不同,拆分成多个部分,然后再拼装成完整的程序。没有写过源文件程序。

    学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?高内聚是指一个模块内各元素联系紧密,低耦合是指模块之间独立性强,我们在设计时应尽量去满足这个基本原则,使各个模块间功能独立、程序设计思路明确。来自于《什么是“高内聚,低耦合”》
  4. 学过了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");
}
  1. 写一个程序,统计自己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;
}
  • 但是这段代码并不正确,无法正真的统计出代码行数,希望新学期得到老师的指导。

  • 你知道什么是断点吗?给出自己调试程序的例子。 断点就是程序执行到断点处会停止。20165235 学习基础和C语言基础调查

  • 阅读了老师的博客怎样快速阅读一本书,并且看了各章ppt后,对每章提出了以下问题。

  • Java各章问题

  1. Java中如何编写和保存源文件?如何正确的理解反编译?
  2. 如何正确理解两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素?
  3. 怎样正确利用“异或”运算?
  4. 类与C语言中结构体的区别是?
  5. abstract类使用意义以及无法理解开闭原则
  6. abstract类与接口的区别?
  7. 使用trycatch语句来处理异常与C语言casedefault语句的区别?
  8. Integer类调用其类的方法?
  9. JFrame() 创建窗口的方法
  10. 字节输入(出)流与字符输入(出)流如何连接?
  11. 连接MySQL数据库的方式
  12. 进程与线程的区别是?
  13. 如何读取URL中的资源?
  14. 如何进行图形的布尔运算?
  15. 链表的使用(难点)。
  • Java学习目标
  1. 首先要独立思考,学会独自解决问题。实在解决不了的问题通过网络,老师,同学等去解决。
  2. 要学会大量的敲代码,努力要把课本上的代码敲一遍,孰能生巧,加强对代码的理解。
  3. 独立的去编写一些代码去解决一些实际问题,平时也要去看一些算法的书,学习一些算法,增强自己代码的编写能力。多看一些关于本专业的书,加强自己的专业知识。
  4. 要学会去坚持,并且严格要求自己,只有这样才能学有所成。

程序设计入门,最有效的方法要积极主动敲代码。

--引自与《积极主动敲代码,使用JUnit学习Java