个人技能及阅读心得

  • 个人技能之绘画

绘画是我从很小便开始接触的,从最初的简笔画到国画、素描、水粉,大约也学了七八年。但是到了高中之后,就逐渐放下了。

记得当初学素描时,老师的一句话让我记忆犹新,她说,画素描就是要 “抄”:一是“抄”作品,也就是临摹;而是“抄”实物,因为素描追求的是真实,什么时候能把摆在桌子上的静物原封不动地“抄”到纸上,那水平才算是达标。

临摹 是一种在技术不成熟的时期里很有效的学习方法。特别是在画水粉画的时候,初学者很难掌握调色技巧,比如有些绿色水果的暗面要用深红色、靛蓝处理,这对于初学者来说,很难从实物上看出来;而临摹时,因为有作品参考,便更容易把颜色从整体的物体上剥离。临摹不仅是单纯的复制,这是一个锻炼技巧、学习经验、把理论知识融会贯通的过程。对于编程语言的学习来说,这就相当于开始的抄代码,在“抄”的过程中巩固理论知识,明白上课讲的知识的用法。

  • 个人技能之阅读与写作

我的写作技能不能算是出类拔萃,但至少在中学时期,这是我领先大部分人的一个加分项。阅读与写作,是知识的积累与运用过程,这二者在某种意义上是一体的。

同绘画一样,我也是在很小的时候就开始阅读。但是到高中时期,由于学业,也由于手机的影响,我纸质书的阅读量大大减少,到了大学才又渐渐重拾。在我多有起伏的阅读经历中,我最大的心得就是要找到适合自己的方法.

高中时期,阅读常常是为了积累写作素材、锻炼语感,那是我读到值得记录的段落、句子,就直接抄下来,虽说有些费时,但摘抄的过程可以大大加深记忆、也给人进一步思考的机会,同时,这也是个练字的过程,可谓一举多得。

而到大学时期,我看书的同时会使用一个叫 “萝卜书摘” 的APP,它提供扫描功能,可以把文字拍摄并扫描记录,同时附上一个写感想的模块,最后生成一个完整的书摘保存。这样一来,大大节省了摘抄的时间。同时,该APP还提供书摘整理、“萝卜坑”(类似读书小组,可以一起读书、坑主领读等)等功能。利用这个APP,在阅读的同时,随手写下感想,还能保持写作的手感。从去年二月到现在,我一共读了12.5本书,写了91篇书摘、2篇随笔。看着自己的数据,也是小有成就感,更加激励自己坚持阅读。

  • 阅读心得

读了老师的博客以后,我记忆最深刻的就是老师的做一件事时的目的性、系统性、总结性。无论减肥、学习五笔、背单词、乒乓球,娄老师在过程中以及结束后,都会进行系统地总结,条理清晰、阶段分明,这是我以前从未见到过的。

有关C语言学习的调查

  • 你是怎么学习C语言的?

说实话,我C语言的学习做的并不好。水平止步于比较浅的程度。学习的过程就是练习;在期末复习阶段,我有用笔记本整理过一些容易混淆的知识。

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

估算大概在3000行以上。理解的情况较一般,有些知识点比如指针和数组、指针和函数、文件操作等只停留在初步了解阶段,几乎没有实际编程操作过。

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

数组指针是一个指针变量,保存一个数组的首地址;

指针数组是有若干及类型相同的指针构成的数组,其中每个元素都是一个指针;

函数指针就是指向函数的指针,指向函数的指针变量中存储的是一个函数在内存中的入口地址;

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

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

文件和流

计算机文件是以计算机硬盘为载体存储在计算机上的信息集合。文件可以是文本文档、图片、程序等等。通常是磁盘上一段命名的存储区。流是数据之间的传输操作。比如:

标准I/O流:内存与标准输入输出设备之间信息的传递;文件I/O流:内存与外部文件之间信息的传递;字符串I/O流:内存变量与表示字符串流的字符数组之间信息的传递。

——C++ 流(stream)总结

文件的I/O函数都是针对文件描述符进行操作的,比如说当调用open或者其他函数打开一个文件,返回一个文件的描述符fd,然后针对这个fd进行后续的I/O操作,由于需要多次反复调用对应的系统调用,效率低是自然的。

而流I/O函数的操作是围绕流(Stream)进行的,当使用流I/O库打开或者创建一个文件时,可以使一个流和一个文件结合,接下来的操作就是对流进行读写、定位等,最后关闭即可。……用户可以简单地把流看做一块由操作系统分配的内存缓冲区,在该缓冲区中存放了文件对应的数据。——流和文件的区别 - CSDN博客

我个人的理解,流就是程序输入/输出数据过程的载体。流连接了输入/输出设备与程序。

文本文件和二进制文件

C语言文件有两种类型,文本文件(也称 ASCII码文件)和 二进制文件。其差别在于存储数值型数据的方式不同。在二进制文件中,数值型数据是以二进制形式存储的,而在文本文件中,则是将数值型数据的每一位数组作为一个字符及其ASCII码的形式存储的。因此, 文本文件中的每一位数字都单独占用一个字节的存储空间。而二进制文件则是把整个数字作为一个二进制来存储的,并非熟知的每一位数字都占用单独的存储空间。

——《C语言程序设计(第3版)》P373

编程编辑

字 符 含 义
“r" 以只读方式,打开文本文件;该文件必须是已经存在的,并且只能读出,不能写入数据;若文件不存在,则会出错
“w" 以只写方式,创建并打开文本文件,已存在的文件将被覆盖;无论文件是否存在,都需创建一个新的文本文件,只能写入数据
“a” 以只写方式,打开文本文件,位置指针移到文件末尾,向文件尾部添加数据,原文件数据保留;若文件不存在,则会出错
“+” 与上面的字符串组合,表示以读写方式打开文本文件;既可以向文件中写入数据,也可从文件中读出数据
“b” 与上面的字符串组合,表示打开二进制文件

例如,

fp=fopen("D:\\demo.txt","a+");

表示以读写方式打开D盘的文本文件demo.txt,保留原内容,并向尾部添加数据;

fp=fopen("D:\\demo.bin","ab+");

表示以读写方式打开D盘的二进制文件demo.bin,保留原内容,并向尾部添加数据;

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

我以前没有接触过这个概念,通过查资料,我了解到“面向过程”是一种以过程为中心的编程思想。

“面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。

就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。——面向过程_百度百科

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

个人理解模块就是函数,将主函数中一些比较繁琐,或者使用次数较多的部分写成函数方便随时调用。在利用c语言编程解决密码学数学基础的问题时用的比较多。

我没有写过多个源文件的程序。

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

模块分解的基本原则是:高聚合、低耦合,保证每个模块的相对独立型。 无论结构化方法还是面向对象方法,都要遵循这个原则。高聚合指的是模块内部的联系越紧密越好,内聚性越强越好,简单地说就是模块的功能要相对独立型和单一,让模块各司其职,每个模块只专心负责一件事情。低耦合指的是模块之间的联系越松散越好,模块之间仅仅交换那些为完成系统功能必须交换的信息,这意味着模块对外的接口越简单越好,因为借口越简单,模块与外界打交道的变量和交换的数据就越少,这样就会降低模块之间的互相影响到程度。——《C语言程序设计》P171

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

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

#include <stdio.h>
#include <stdlib.h>
# define N 6
int main()
{
int a[N], b[N];
int i;
printf("输入数组a:");
for(i=0; i<6; i++) //录入数组a的值
{
scanf("%d",&a[i]);
}
for(i=0; i<6; i++) //将数组a的值复制到数组b中
{
b[i]=a[i];
}
printf("以下是数组b:\n");
for(i=0; i<6; i++) //打印数组b
{
printf("%d\t", b[i]);
}
}
  1. 查找整数数组A中有没有数字5

#include <stdio.h>
#include <stdlib.h>
#define N 6 int main()
{
int a[N], b[N];
int i;
printf("输入数组a:");
for(i=0; i<6; i++) //录入数组a的值
{
scanf("%d",&a[i]);
}
for(i=0; i<6; i++) //将数组a的值复制到数组b中
{
b[i]=a[i];
}
printf("以下是数组b:\n");
for(i=0; i<6; i++) //打印数组b
{
printf("%d\t", b[i]);
}
}
  1. 对整数数组A进行排序(从小到大,从大到小)

#include <stdio.h>
#include <stdlib.h>
void upsort(int a[],int m);
void printa(int a[],int m);
void downsort(int a[], int m); int main()
{
int a[7]={12,67,3,78,36,90,40,2};
upsort(a,8);
printf("升序为:");
printa(a,8);
downsort(a,8);
printf("\n降序为:");
printa(a,8);
} void upsort(int a[],int m)//用选择排序法实现生序排序
{
int i,j;
int k;
int temp;
for(i=0; i<m-1; i++)
{
k=i;
for(j=i+1; j<m; j++)
{
if(a[j]<a[k])
k=j;
}
if(i!=k)
{
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
} void printa(int a[], int m)//打印数组
{
int i;
for(i=0; i<m; i++)
printf("%d\t",a[i]);
} void downsort(int a[], int m)//用冒泡排序法实现降序排序
{
int i,j;
int temp;
int flag=0;
for(i=0; i<m; i++)
{
for(j=0;j<m-1-i; j++)
{
if(a[j]<a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
flag=1;
}
}
}
}
  • 写一个程序,统计自己C语言共写了多少行代码。

很抱歉我不会写这个程序。我在网上也找到了很过类似的程序,但是文件操作这一部分是我的薄弱之处。参考过其他人的代码后,我认为该程序大致思路应是

graph LR
A[遍历一个目录下所有.c的文件]-->B[分别统计行数]
B-->C[分别相加]
  • 你知道什么是断点吗?给出自己调试程序的例子。

断点,调试器的功能之一,可以让程序中断在需要的地方,从而方便其分析。

断点也可以在一次调试中设置断点,下一次只需让程序自动运行到设置断点位置,便可在上次设置断点的位置中断下来,极大的方便了操作,同时节省了时间。

断点模式可以看作一种超时。所有元素(例如,函数、变量和对象)都保留在内存中,但它们的移动和活动被挂起了。在中断模式下,您可以检查它们的位置和状态,以查看是否存在冲突或 bug。您可以在中断模式下对程序进行调整。例如,可以更改变量的值。可以移动执行点,这会改变执行恢复后将要执行的下一条语句。在 C++、C# 和 Visual Basic 中,甚至可以在中断模式下对代码本身进行更改(使用一种称为“编辑并继续”的强大功能)。

——断点-百度百科

个人理解,断点就是在调试程序的过程中,程序运行到该处可以暂停,所有数据保留。而后通过逐行分析数据变化,检查程序的错误。

断点调试的例子有很多,比如上学期密数实验:求一个数的生成元中,我就曾使用过断点调试测试程序。

  1. 如何理解类?
  2. 标识符由字母、下划线、美元符号和数字组成

为什么例子中会有这样的代码,出现了中文?

byte x= -12,  tom=28,  漂亮=98
  1. 何谓“boolean型数据”,这与用一个实数的1、0判断逻辑有何不同?
  2. 各个类之间有执行顺序的先后吗?如果如果需要先后执行,如何实现?
  3. 什么叫做“子类和父类在/不在一个包中”?“包”是什么?
  4. 将接口类比为C语言函数中的“形参”可以吗?
  5. C语言中,断点调试是设置断点,而后从断点开始逐行调试,Java中断言是否类似?
  6. 实用常用类中的特定的类是不是就是Java已经设定好的,针对特定对象的?
  7. GUI是什么?
  8. 流在何处使用?不能直接操作文件吗?
  9. 数据库是什么?
  10. wait()方法和sleep(int millsecond) 有什么区别?
  11. Java网络编程除了传输数据、远程调用之外还可以实现哪些功能?
  12. Java是否可以实现多种图形编辑功能?
  • 对比C语言的学习,你对《Java程序设计》的学习有什么具体目标?如何通过刻意训练提高程序设计能力和培养计算思维?如何通过“做中学”实现你的目标?

对比C语言的学习,我希望Java我能学的更深入,不止停留于浅层知识。对于提高程序设计能力和培养计算思维,除了坚持练习和及时反馈外,我认为应逐渐接触一些比自身水平更难一点的程序,由浅入深,不能“知难而退“,只停留在学习的舒适区。

20165218 学习基础和C语言基础调查的更多相关文章

  1. 20165318 预备作业二 学习基础和C语言基础调查

    20165318 学习基础和C语言基础调查 技能学习经验 我们这一代人,或多或少的都上过各种兴趣班,舞蹈钢琴画画书法,我也是如此.可这些技能中,唯一能拿的出手的就是舞蹈了.按照<优秀的教学方法- ...

  2. 20165230 学习基础和C语言基础调查

    20165230 学习基础和C语言基础调查 技能学习经验 我擅长弹钢琴.小时候我曾上过很多兴趣班,比如钢琴.跳舞.书法.绘画等等,唯一坚持至今的只有钢琴.仔细一算学习钢琴至今已有12年,不能说已经精通 ...

  3. 20165237 学习基础和C语言基础调查

    学习基础和C语言基础调查 一.技能学习与特长 你有什么技能比大多人(超过90%以上)更好? 我的爱好和技能说实话挺广泛的.如果要挑出来一个很擅长的话,我觉得应该是钢琴. 针对这个技能的获取你有什么成功 ...

  4. 20165234 预备作业2 学习基础和C语言基础调查

    学习基础和C语言基础调查 一.技能学习经验及体会 你有什么技能比大多人(超过90%以上)更好? 看到这个问题,我仔细想了想,好像的确没有什么特别出众的技能,但是我想到了许多我个人的爱好. 我从小喜欢五 ...

  5. 20165337学习基础和C语言基础调查

    20165337学习基础和C语言基础调查 你有什么技能比大多人(超过90%以上)更好? 讲道理我感觉我自己没有什么能比90%以上的人都做得好的技能,我就瘸子里面拔将军挑一个我自认为还不错的技能吧. 我 ...

  6. 学习基础和C语言基础调查

    学习基础和C语言基础调查 一.一种比大多数人(超过90%以上)更好的技能 说句实话,我还没有那种特别特别自信的.说我能拿得出手的.所谓能超过百分之九十以上的人的技能.毕竟人外有人,天外有天. 姑且算上 ...

  7. 20165323 学习基础和C语言基础调查

    20165323 学习基础和C语言基础调查 一.技能学习心得 1.你有什么技能比大多人更好? 我觉得我羽毛球打的还行,不能说打得比大多数人好,但是对于一些打羽毛球的要领还是掌握的. 2.针对这个技能的 ...

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

    20165235 学习基础和C语言基础调查 首先第一个问题:你有什么技能比大多人(超过90%以上)更好?感觉很难回答这种问题,其实我对很多东西挺感兴趣的,如果非要拿出一种比较突出的技能的话我感觉就是象 ...

  9. 20165317 学习基础和C语言基础调查

    学习基础和C语言基础调查 关于优势技能 说来惭愧,读书多年,爱好不少,但是真的能拿的出手的.能被叫做特长的不多.至今,能在同龄人中处于较领先位置的也只有从四年级开始练起的乒乓球.记得开始练习乒乓球是从 ...

  10. 20165305 学习基础和C语言基础调查

    学习基础和C语言基础调查 <优秀的教学方法---做教练与做中学>心得 在<优秀的教学方法---做教练与做中学>文章中又一次提到了"做教练"这一学习方法,因为 ...

随机推荐

  1. EF Core注意事项

    流程:https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/new-db 1.Both Entity Framework 6. ...

  2. FastJson - 从HttpEntity到Json

    在使用java + httpClient施行API自动化时,不可避免地遇到了如下问题: 1. 用Http Response数据做断言: 2. 用上一个请求的Response内容,作为下一个请求的参数: ...

  3. ajax 个人理解 学习笔记

    W:Ajax Q:异步网络请求.无刷新请求数据. W:ajax的实现流程如下: Q: 创建XHR对象 调用open()方法,创建请求 调用send()方法,发送请求 捕获请求状态,判断请求结果 获取数 ...

  4. Vue 兄弟组件通信(不使用Vuex)

    Vue 兄弟组件通信(不使用Vuex) 项目中,我们经常会遇到兄弟组件通信的情况.在大型项目中我们可以通过引入vuex轻松管理各组件之间通信问题,但在一些小型的项目中,我们就没有必要去引入vuex.下 ...

  5. JAVA基础学习之路(二)方法定义,重载,递归

    一,方法的定义: package test; public class test1 { public static void main(String args[]) { int result = ad ...

  6. Java学习笔记-序

    最近开始学习java了,上班看书看得经常瞌睡,有时候想起来觉得挺重要的知识点想记在哪里又害怕忘记了,于是乎突然想到了博客园,所以今天上午就决定记在院子里了,先写了8是因为已经看到第八章了(读的是Jav ...

  7. NMAP-端口扫描

    1.时序选项 -T0 -> -T5 速度变快,但是准确性下降,nmap默认是T3 2.指定端口 3.扫描指定TCP和UDP端口 4.快速扫描常见100个端口 5.扫描常见的n的端口 6.TCP ...

  8. centos+nginx+redmine+gitosis安装指南

    说明 这篇文章我现在的主要目的是记录自己安装redmine和gitosis的过程,可能写的有些糙,请各位读者见谅.我会在后面的时间里逐渐完善细节.但我想,这已经是网上迄今为止国内最详细的nginx+r ...

  9. FZU 1844 Earthquake Damage(最大流最小割)

    Problem Description Open Source Tools help earthquake researchers stay a step ahead. Many geological ...

  10. 第四课——MFC应用程序框架

    一.MFC应用程序类型 上篇文章的彩蛋:可通过使用MFC应用程序向导(MFC AppWizard)的功能来创建所需要的应用程序,这意味着不需要输入任何代码.MFC除了应用程序向导,还对应用程序项目有着 ...