#20165201 学习基础和C语言基础调查

技能

我的一项拿得出手的技能是绘画,从 5 岁学到了 13 岁。 国画、素描、水粉、水彩都包括在内,虽然水平不一,但是绘画技巧是相通的。

8 年时间,它带给了我很多,最重要的一点,就是对基本功的掌握。举个例子,我刚学国画的时候,赵XY老师让我们用小白云画同心圆,从最内圈开始不间断,直到画完最外圈,宣纸上要画满,每天最少一张。当然,前几张的圆都惨不忍睹,直到过了一个月左右,才好看些。赵老师的目的其实不是让我们练习画圆,而是让我们充分掌握毛笔的笔锋和手感,练的时间久了,这些自然就有了。这和娄老师博客中提到的是同样的道理:

套路(Kata)指针对某一种特定技术或技能进行重复性的练习,从而将其熟练掌握。这个概念借鉴于武术,指的是可以独自或多人共同练习的一系列动作、招式。

体育运动的初学者练习时候都需要重复动作,比如「学习打乒乓球时」要练习挥拍,挥拍成千上万遍之后动作就会定型,也就是教练常说的「肌肉有了记忆能力」,以后实战中可以不假思索地做出来。

但是如果没有兴趣作为驱动,也就不会有日复一日的练习。我的爷爷在我很小的时候,教我用毛笔画虾,兴趣大概就是从那时候培养起来的吧。

说实话,我也有一段时间遇到瓶颈觉得坚持不下去了,有过放弃的念头,然而正如娄老师所说:

现实生活中,只有极少部分人有意志力能长时间大量重复枯燥的基础练习。半途而废是许多人都经常面临的事情。

-- 引用自娄老师《做中学之乒乓球刻意训练一年总结》

能否从入门到精通,就看有没有毅力坚持下来,将量变积累成质变。 想成功又不去付出,是绝不可能的。

此外,赵老师能给我的最大帮助,就是课上在我练习的时候能够及时纠正我手法上的错误。这也就是娄老师所说的及时反馈。我在画鸟雀时有个别人都不会出现的毛病,我画出来的所有鸟都长得一样**>_<...>

Java

我认为学Java也应当如此。

首先克服对 Java 的抵触心理

简略看一下整本书大致要学的内容

万事开头难,尝试编写第一个 hello world 程序

继续学习之后的内容,对于每个知识点要反复练习

出现问题要及时向老师或同学提问,直到问题得到解答

C语言基础

Q:你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?

A:去年寒假我买了一本C语言的书提前自学的,开学后又用教材、作业系统进行巩固。期间编写了2个版本的成绩管理系统,综合性很强,收获很大。C语言的学习就是反复练习的过程,当我们编写综合性强的程序时,很多语句都是不需要停下来动脑子想的,比如冒泡排序、结构体等。

Q:目前为止估算自己写过多少行C代码?理解的情况如何?量变引起质变,如何平衡质和量?

A:我大概写过5000行以上的C代码。量变到达足够程度才能引起质变,但是要注意的是,一定要把握度,比如练习选择排序,当已经能够熟练运用时,就基本代表掌握了,不必再刻意的反复练习。我认为质变的标准是:能够在编写一个程序时不假思索的写出这些语句。

Q:学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?

A:分得清啊。

数组指针是一个指向数组的指针,本质是指针;

数组指针:(* p)[数组大小]

指针数组是一个包含若干个指针的数组,本质是数组;

指针数组:* p[数组大小]

函数指针是一个指向函数的指针,本质是指针;

函数指针:(* p)(参数)

指针函数是一个返回值为指针的函数,本质是函数。

指针函数:* p(参数)

Q:学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?

A:程序在和文件交互时,是通过数据流的形式进行的。打开文件时,数据流先从磁盘到缓冲区,再从缓冲区到程序,关闭文件时正相反。

文本文件是以某种常用字符编码方式编码的,定长的,比如 ASCII ;而二进制文件是用自定义的编码方式编码的,不定长,打开二进制文件会显示一堆乱码。但它们在物理层面上都是二进制编码。我没有实际操作过这两种文件......

Q:学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?

A:C语言是面向过程的,而Java是面向对象的。

举个例子:

面向过程是定义三个事件:吃早饭、吃午饭、吃晚饭。再确定由 Bob 来做,也就是参数是 Bob ,重点是把过程写出来;

而面向对象是先定义 Bob ,再确定他要做什么,重点是这个对象怎么做。

Q:在C语言里面,什么是模块?你写过多个源文件的程序吗?

A:模块就是能够实现一定功能的源文件。我还没有写过过个源文件的程序...

Q:学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?

A:高内聚就是每个模块独立性强,所实现的功能具有专一性,内部各要素紧密结合;低耦合就是各个模块之间的联系弱,接口较为简单,相互影响程度小。

Q:学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。

A:

1、把数组A的内容复制到数组B

#include

#include

#define N 100

int main()

{

char A[N]={"afisniuiksnfinai"},B[N];

memcpy(B,A,strlen(A));

printf("%s\n",B);

return 0;

}

2、查找整数数组A中有没有数字5

#include

int main()

{

int A[20]={3,7,4,1,8,223,65,23,65,8,5,32,78,12,16,861,34,5,57,19};

int i;

for(i=0;i<20;i++)

{

if(A[i]==5)

{

printf("数组中有 5 !\n");

break;

}

}

return 0;

}

3、对整数数组A进行排序(从小到大,从大到小)

冒泡排序

#include

void Sortup(int N[]);

void Sortdown(int N[]);

int main()

{

int i;

int A[20]={3,7,4,1,8,223,65,23,65,8,5,32,78,12,16,861,34,5,57,19};

Sortup(A);

for(i=0;i<20;i++)

{

printf("%d ",A[i]);

}

Sortdown(A);

for(i=0;i<20;i++)

{

printf("%d ",A[i]);

}

return 0;

}

void Sortup(int N[])

{

int i,j,temp;

for(i=0;i<20;i++)

{

for(j=i+1;j<20;j++)

{

if(N[i]>N[j])

{

temp=N[i];

N[i]=N[j];

N[j]=temp;

}

}

}

}

void Sortdown(int N[])

{

int i,j,temp;

for(i=0;i<20;i++)

{

for(j=i+1;j<20;j++)

{

if(N[i]

{

temp=N[i];

N[i]=N[j];

N[j]=temp;

}

}

}

}

选择排序

#include

void Sortup(int N[]);

void Sortdown(int N[]);

int main()

{

int i;

int A[20]={3,7,4,1,8,223,65,23,65,8,5,32,78,12,16,861,34,5,57,19};

Sortup(A);

for(i=0;i<20;i++)

{

printf("%d ",A[i]);

}

Sortdown(A);

for(i=0;i<20;i++)

{

printf("%d ",A[i]);

}

return 0;

}

void Sortup(int N[])

{

int i,j,k,temp;

for(i=0;i<19;i++)

{

k=i;

for(j=i+1;j<20;j++)

{

if(N[k]>N[j])

{

k=j;

}

}

if(i!=k)

{

temp=N[i];

N[i]=N[k];

N[k]=temp;

}

}

}

void Sortdown(int N[])

{

int i,j,k,temp;

for(i=0;i<19;i++)

{

k=i;

for(j=i+1;j<20;j++)

{

if(N[k]

{

k=j;

}

}

if(i!=k)

{

temp=N[i];

N[i]=N[k];

N[k]=temp;

}

}

}

Q:写一个程序,统计自己C语言共写了多少行代码。

A:上一次作业统计过了。

Q:你知道什么是断点吗?给出自己调试程序的例子。

A:断点就是当我们运行程序时,到断点处会停止,以便逐步检查程序。

Q:对比C语言的学习,你对《Java程序设计》的学习有什么具体目标?如何通过刻意训练提高程序设计能力和培养计算思维?如何通过“做中学”实现你的目标?

A:在学习Java时,我要坚持每周写一定量的代码,并在博客写上自己的学习心得,通过进度条监督自己。

在学习C语言的过程中,我有一个特别好的方法,就是对于同一个问题,去用多个办法解决,比如对于排序问题,可以用冒泡排序、选择排序、插入排序等,也可以直接用库函数解决,这样可以加深理解。

C语言与G语言哪个科技含量高,20165201 学习基础和C语言基础调查相关推荐

  1. C语言答案杨崇艳,贯彻落实科学发展观,走新型工业化道路的要求是()。A.科技含量高B.经济效益好...

    参考答案如下 贯彻观有如下程序:执行后的输出结果应该是: #include class BASE{ public: ~BASE(){cout< 落实量高以下哪个期权的时间价值大于其精确的内在价值 ...

  2. c语言字母g,C语言库函数(G类字母) - 1.doc

    C语言库函数(G类字母) - 1 C语言库函数(G类字母) - 1 [ 永远的UNIX > C语言库函数(G类字母) - 1 ] 首页 > 编程技术 > C/C++ > 正文 ...

  3. 操作系统学习之用C语言模拟CLOCK算法

    前言 CLOCK算法,顾名思义,时钟算法,是一个在FIFO和LRU的折衷算法,很符合我们的中庸之道,来学一学它折衷了哪些部分. Buddy算法:操作系统学习之用C语言模拟伙伴(Buddy)算法 FIF ...

  4. 操作系统学习之用C语言模拟LRU算法

    前言 LRU算比较经典,而且考的也比较多,LRU算法全称Least Recently Used,译为最近最少使用.用C模拟一下吧. Buddy算法:操作系统学习之用C语言模拟伙伴(Buddy)算法 F ...

  5. 操作系统学习之用C语言模拟伙伴(Buddy)算法

    前言 学到了操作系统的的虚拟内存部分,硬件不太好的我学起来有些吃力,概念性知识点太多,所以我决定用软件的方式,实现一下虚拟内存常用的算法,因为用到了指针,暂时用C语言写一下Buddy算法.FIFO算法 ...

  6. 小程序开发学习一:开发语言解析

    小程序的开发是建立在已有的开发语言和微信的封装api之上的,学习前我们梳理下基础的东西. 前端开发通用js html json css. js :页面脚本 html :页面标签语言 json: 一种数 ...

  7. 学习笔记之编程达到一个高的境界就是自制脚本语言(图)

    学习笔记之编程达到一个高的境界就是自制脚本语言(图) 编程达到一个高的境界就是自制脚本语言,通过这可以精通编程里面的高深的技术,如编译原理.语言处理器.编译器与解释器,这些都是代表一个程序员实力的技术 ...

  8. 操作系统学习之用C语言模拟FIFO算法

    前言 FIFO算法比较简单,没什么好说的,就是先进先出.不过我添加了3状态,不过也只有堵塞,没有将阻塞进程唤醒的过程. Buddy算法:操作系统学习之用C语言模拟伙伴(Buddy)算法 FIFO算法: ...

  9. c语言如何实现一只蜗牛爬的循环,[工程科技]第五章 循环结构程序设计c语言程序设计.ppt...

    [工程科技]第五章 循环结构程序设计c语言程序设计 第5章 循环结构程序设计 while语句 while语句 do while语句 do while语句 do while语句 do while语句 d ...

最新文章

  1. 【camera】自动驾驶感知系统实现(车道线检测和拟合、目标检测与跟踪、道路可行驶区域分割、深度估计、图像视野到BEV空间映射、像平面到地平面映射)
  2. 2021年中国科技的脚步依旧不停 我们将走得更广更深更远
  3. 如何给DPM服务器附加磁盘?
  4. AI in RTC 创新挑战赛 | 超分辨率挑战开始了!
  5. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1052:计算邮资
  6. 面试题系列(9):对前端界面工程师这个职位是怎么样理解的?
  7. MyBatis框架 接口绑定、线程绑定
  8. SCCM报表点和SQL Server的报表服务集成, 随心所欲创建报表?
  9. 【知识图谱系列】基于Randomly Perturb的图谱预训练模型GraphCL
  10. 【小程序源码】修复图片音频全新升级带特效神器小游戏微信小程序源码下载-多种游戏支持
  11. Java常用设计模式及应用场景介绍
  12. Linux下安装vmWare tools工具(详细讲解)
  13. 塔勒布四部曲之《非对称风险》
  14. 7种常见的APPUI界面设计布局风格欣赏
  15. java 月份缩写_Java常用日期、时间格式化转换符
  16. 购物商城实现点击商品列表某商品,进入其详情页!
  17. 高德地图API以案例学习
  18. java生成读取csv,从csv文件中获取Gatling
  19. word文档出现乱码的解决方法
  20. 全球及中国半导体用金刚石微粉行业发展模式及未来前景动态分析报告2021年版

热门文章

  1. PPT(13)案例分析—学院“学生资助政策宣传月”活动总结PPT
  2. 【工具资源】—— Gitbash命令行上传代码到Github仓库
  3. LVGL使用记 - GUI-Guider设计使用
  4. 陷入尴尬境地的智能耳机,如何才能“逆风翻盘”?
  5. Spring Security+Spring Data Jpa 强强联手,安全管理只有更简单!
  6. 品味别人的故事,思考自己的人生
  7. Python依据单个关键词爬取百度图片
  8. 历史建筑全生命期数字孪生模型展示平台
  9. Web前端学习笔记15:Web前端开发:jQuery总结
  10. PyCharm代码格式调整