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

个人技能及阅读心得

  • 个人技能之绘画

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

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

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

  • 个人技能之阅读与写作

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

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

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

而到大学时期,我看书的同时会使用一个叫 “萝卜书摘” 的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 6int 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 中,甚至可以在中断模式下对代码本身进行更改(使用一种称为“编辑并继续”的强大功能)。
——断点-百度百科

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

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

  • 参考怎样快速阅读一本书,快速阅读一下云班课中有PPT,每章提出一个问题

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

转载于:https://www.cnblogs.com/zicerain/p/8409201.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571206.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 执行机制_Java类的执行机制

在完成将class文件信息加载到JVM并产生Class对象后&#xff0c;就可执行Class对象的静态方法或实例化对象进行调用了。在源码编译阶段将源码编译为JVM字节码&#xff0c;JVM字节码是一种中间代码的方式&#xff0c;要由JVM在运行期对其进行解释并执行&#xff0c;这种方式成为字…

论如何入门地使用vscode

微软大法好啊 这货更像是个gedit 以下内容只适合Oiers使用 本文档只适合新手引导的阶段使用 下载 这个是链接 可见这东西是和Emacs一样跨系统的 不知道为什么下载速度贼快 配置 还记得我们用Emacs的时候配置那叫一个可怕 虽然使用vscode也要配置 不过我们在配置它的时候就比Ema…

springboot jpa 创建数据库以及rabbitMQ分模块扫描问题

在使用jpa过程中&#xff0c;如果没有在配置中加入自动创建实体对于的sql,则需要提前创建建表语句 spring.jpa.properties.hibernate.show_sqltrue spring.jpa.properties.hibernate.format_sqltrue spring.jpa.hibernate.ddl-autoupdate 建表语句需要注意的点&#xff1a;需要…

cpp_06_缺省构造_拷贝构造_拷贝赋值_初始化表

1 构造函数 1.1 构造函数可重载&#xff1a; 构造函数可以通过形参表的差别化形成重载关系 重载关系的构造函数&#xff0c;通过构造函数的实参类型进行匹配 使用缺省参数可以减少构造函数重载的数量 // consover.cpp 构造函数的重载 #include <iostream> using name…

mysql sumif条件求和_sumif与sumifs条件求和函数详解,小白到大神的必经之路

在日常工作中我们经常需要根据某些条件进行求和&#xff0c;今天就给大家介绍下&#xff0c;Excel中的条件求和函数sumif和sumifsSumif函数第一个参数&#xff1a;Range&#xff1a;条件区域&#xff0c;用于条件判断的单元格区域。第二个参数&#xff1a;Criteria&#xff1a;…

Thread.join(), CountDownLatch、CyclicBarrier和 Semaphore区别,联系及应用

在java 1.5中&#xff0c;提供了一些非常有用的辅助类来帮助我们进行并发编程&#xff0c;比如CountDownLatch&#xff0c;CyclicBarrier和Semaphore&#xff0c;今天我们就来学习一下这三个辅助类的用法&#xff0c; 由于Thread.join()也和这三个类有类似用法&#xff0c;我也…

string转short java_[Java基础]之 数据类型转换

数据类型转换存在的意义数据类型转换&#xff0c;在实际的应用开发中&#xff0c;常常会对不同类型的数字类型进行计算&#xff0c;所以就用到了数据转换。一方面&#xff0c;使用算术计算符对数字进行运算时&#xff0c;系统在适当的时候回进行自动转换&#xff1b;另一放方面…

IDEA建立Spring MVC Hello World 详细入门教程

引子&#xff0c;其实从.NET转Java已经有几个月时间了&#xff0c;项目也做了不少&#xff0c;但是很多配置都是根据公司模板或者网上教程比忽略画瓢&#xff0c;对其中最简单的配置和设置并不完全理解&#xff0c;依旧是小白用户。最近项目不忙&#xff0c;重新梳理了一下Spri…

2048小游戏代码解析 C语言版

2048小游戏&#xff0c;也算是风靡一时的益智游戏。其背后实现的逻辑比较简单&#xff0c;代码量不算多&#xff0c;而且趣味性强&#xff0c;适合作为有语言基础的童鞋来加强编程训练。本篇分析2048小游戏的C语言实现代码。 前言 游戏截图&#xff1a; 游戏实现原理&#xff1…

【递归与递推】青蛙过河

题目描述 有一条河&#xff0c;左边一个石墩(A区)上有编号为1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;…&#xff0c;n的n只青蛙&#xff0c;河中有k个荷叶(C区)&#xff0c;还有h个石墩(D区)&#xff0c;右边有一个石墩(B区)&#xff0c;如下图2—5所示。n只青蛙…

python arp欺骗

使用python构造一个arp欺骗脚本 import os import sys from scapy.all import * import optparse def main():usage"usage:[-i interface] [-t IP to attack] [-g Gateway IP]"parseroptparse.OptionParser(usage)parser.add_option(-i,destinterface,helpselect int…

java对外sdk提供接口_Android SDK封装,对外提供接口

项目中需要把连接服务器的部分做成一个service并生成一个jar模块。其他产品就可通过这个包来快速的开发连接服务器的应用软件。做成一个service的优点是&#xff1a;1&#xff0e; 在后台运行&#xff0c;可以一直保持与服务器的连接2&#xff0e; 服务可以只对外提供接口&…

hdu3265一种错误的做法

题目链接 这是求面积并的题目&#xff0c;刚开始我的思路是将挖去的矩形的入边和出边覆盖效果颠倒&#xff0c; 即入边-1&#xff0c;出边1&#xff0c;后来调试到爆炸&#xff0c;发现这是错误的做法。。原因就是对最简单 的面积并问题没有搞清楚。刚开始接触扫描线的时候我就…

php截断上传,截断在文件包含和上传中的利用

截断大概可以在以下情况适用include(require)file_get_contentsfile_exists所有url中参数可以用%00控制0x01. 本地文件包含1.1 截断类型&#xff1a;php %00截断截断条件&#xff1a;php版本小于5.3.4 详情关注CVE-2006-7243php的magic_quotes_gpc为OFF状态漏洞文件lfi.php要in…

解决虚拟机安装64位系统“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题...

环境说明&#xff1a;系统&#xff1a;Windows 8.1 简体中文专业版 虚拟机&#xff1a;VMware Workstation 11.0.0 报错&#xff1a;此主机支持 Intel VT-x&#xff0c;但 Intel VT-x 处于禁用状态。如图&#xff1a; 图片原文如下&#xff1a; 已将该…

#前端# 解决前端页面滑动不顺畅的问题

看情况有时候需要将body和html同时选择。转载于:https://www.cnblogs.com/tnt-33/p/8464370.html

php守护进程热更新,如何通过PHPStorm配置Hyperf热更新开发环境

通过 PHPStorm 配置热更新开发环境在开发 Hyperf/Swoole 这样的持久化应用时&#xff0c;每当应用代码发生了变更时&#xff0c;都需要重启应用使代码生效&#xff0c;尽管在开发 CLI 应用时这也是一个正确且合理地操作&#xff0c;因为我们开发过程中仍需要关注 stdout 输出的…

php elements,wd elements se和wd elements的区别是什么

区别&#xff1a;1、WD Elements SE有两个USB3.0接口&#xff1b;而WD Elements有一个USB3.0接口&#xff0c;一个USB2.0接口。2、WD Elements SE配置有数据加密功能&#xff1b;而WD Elements不具备存储数据加密功能。本文操作环境&#xff1a;windows10系统、thinkpad t480电…

【热修复】Andfix源码分析

转载请标注来源&#xff1a;http://www.cnblogs.com/charles04/p/8471301.html Andfix源码分析 0、目录 背景介绍源码分析方案评价总结与思考参考文献1、背景介绍 热修复技术是移动端领域近年非常活跃的一项新技术&#xff0c;通过热修复技术可以在不发布应用市场版本&#xff…

已知矩阵 matlab,在MATLAB中,已知矩阵A,那么A(:,2:end)表示

摘要&#xff1a;已知供输工方、表示添资料准加剂、加及标应提原料有关的()的出国法等使用&#xff0c;品”“进办理报检时口食。已知信息系统模型不包逻辑括(。...已知信息系统构化中的结方法设计&#xff0c;矩阵细设和详总体计两阶段一般分为设计&#xff0c;总体主要建立其…