学习基础和C语言基础调查
学习基础和C语言基础调查
一、一种比大多数人(超过90%以上)更好的技能
说句实话,我还没有那种特别特别自信的、说我能拿得出手的、所谓能超过百分之九十以上的人的技能。毕竟人外有人,天外有天。
姑且算上象棋吧,能下的过一些人,碰上一些每天都在下的那种老爷爷可能还是不太招架得过来。
至于说我所积累的经验,总结一下,大量的实战经验和灵活的思维模式。
首先说这头一点吧,实战经验就是大量的练习。有的人下棋就喜欢背棋谱,不过我觉得纸上得来终觉浅,或者说,我觉得真刀真枪地干上一局比背棋谱进步得快。其实......我小时候也没想这么多,这都是我现在瞎bb的。我的象棋算是野路子学来的,小时候和爷爷奶奶下,一点点启蒙的技巧还是会的。再后来,上小学了,和班里同学下,参加比赛等等。从始至终没有上过正儿八经的培训班之类的,所以,到底应该怎么学我也不知道。
但是我觉得下的多,还是有帮助的。见的套路多,中的招多了,自然能长记性。
所以我现在把这个经验总结为:大量的实战经验。小时候打下的底子,纵观全局,不可或缺。
第二,死脑筋还是不行的,思维要灵活。对局时动脑子想想几步之后走到哪里了,有没有便宜可占,猜对手想干什么,其中有没有杀机;对局后动脑子,这个对手棋路风格如何,刚才有没有失误,等等。如果不动脑子,那么进步就是一种奢望。
勤能补拙,静能生慧。我觉得这是与老师博客中的学习经验的最大共通之处,也是所有求学道路上的秘诀。
二、有关C语言学习的调查
你是怎么学习c语言的?与你的高超技能相比,C语言的学习有什么经验和教训?
刚刚开始的时候,基础的知识了解一点,一些基本的语句。
然后就是刷题刷题刷题......老师给的那个c语言在线题库。
之后慢慢开始学会看错误信息,找错,学会用debug等等,再后来帮同学改程序,一些易错的地方越来越熟练,到最后慢慢地开始和大佬们交流,看看其他人是怎么写的。
总而言之就是不断进步嘛,自己发现问题解决问题,查书,问同学,问度娘,问老师。这就是我的,最大的收获。
目前为止估算自己写过多少行C代码?理解的情况如何?量变引起质变,如何平衡质和量?
(老师对不起写了多少行C语言代码我是真的心里没数啊)
等等啊,我们现在一个实验写程序大概100~200行,这样算下来,我们做了这么多大大小小的实验,应该有个小几千行了。
目前写的代码都还是能理解的,毕竟都是自己写的,应该不存在看不懂的问题;其他人的代码也还是看得懂,只是要多看两眼,多琢磨琢磨,可能是代码看少了,不太熟练吧。
量变引起质变,这是必然的规律。我觉得我们只要慢慢积累,自然集腋成裘,没有必要刻意追求质变的发生。也许有一天,我们回过头来,看见自己从最开始的“Hello world!”到后来能自己编个小应用,我们就会感叹不知不觉中质变的发生。
学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?
也不知道我记的是不是对的。
数组指针,说白了是指针嘛,指向一个数组的指针;指针数组是一个数组,数组里储存的是指针。
函数指针类似,函数指针是指向一个函数的指针;指针函数是一个函数,函数返回值是一个指针。
学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?
第一个问题只知道一点点......
文件指的是电脑储存设备上的数据信息,流简单的说应该是字节序列,文件的输入输出控制,外部输入输出设备等等。关系:流是一种向文件写入字节和从文件读取字节的方式。
第二个问题......我觉得广义上讲,文本文件本质就是二进制文件的......所以二者的区别并不是物理上的,而是逻辑上的。二进制文件可以存储char/int/short/long/float/……各种变量值。作为特殊的二进制文件,文本文件只能存储char型字符变量。因此,文本文件每条数据通常是固定长度的,而二进制文件不是。
文本文件编辑器就可以读写,比如记事本;二进制文件需要特别的解码器。
学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?
C语言是面向过程的程序设计。所谓过程就是,酒一口一口喝,步子一步一步走,先干嘛再干嘛,顺序很重要,对于计算机而言只需要一个一个地实现就行了。
解决问题的办法就是把一个程序模块化,从上往下步步求精即可。
在C语言里面,什么是模块?你写过多个源文件的程序吗?
在设计一个较大的程序时,可以把它分成若干个程序模块,每一个模块包括一个或多个函数,每一个函数实现一个特定的功能。C语言通过函数来实现其模块化功能的。
多个源程序倒没有写过,目前只写一个源程序的。
学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?
“高内聚,低耦合”其实按字面意思也很好懂,程序的模块与模块之间的耦合度要低,接口处尽量简单;模块内部要做得精细,模块内的函数功能联系要紧密。
应用上主要的问题在于模块的划分。一方面要考虑耦合性:为了提高模块的独立性,模块与模块之间的联系应该尽可能的减少,尽量在主函数里调用,实现非直接耦合;另一方面要考虑内聚:尽可能实现一个模块对应一个功能。
学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。
(假设数组char型,长度为5,数组a是1,2,a,b,c)
把数组A的内容复制到数组B中:最简单就是脚标循环,一个一个对应着写。
#include <stdio.h>
#include <stdlib.h>
int main()
{
char a[5]={'1','2','a','b','c'};
char b[5];
int i;
for (i=0;i<5;i++)
{
b[i] = a[i];
}
return 0;
}
如何查找整数数组A中有没有数字5?脚标循环查找。
#include <stdio.h>
#include <stdlib.h>
int main()
{
char a[5]={'1','2','a','b','c'};
int i;
int flag = 0;
for (i=0;i<5;i++)
{
if (a[i]=='5')
{
flag = 1;
break;
}
}
if (flag)
printf("Bingo!");
else
printf("Not Found!");
return 0;
}
如何对整数数组A进行排序(从小到大,从大到小)?冒泡排序。
下面是从大到小排序(按照ASCII码排序)。从小到大只需要将判断条件,由“if (a[j]<a[j+1])”
改为“if (a[j]>a[j+1])”
。
#include <stdio.h>
#include <stdlib.h>
int main()
{
char a[5]={'2','1','b','a','c'};
int i,j;
int temp;
for (i=0;i<4;i++)
{
for (j=0;j<4-i;j++)
{
if (a[j]<a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for (i=0;i<5;i++)
{
printf("%c",a[i]);
}
return 0;
}
写一个程序,统计自己C语言共写了多少行代码?
这个是大二上做中国剩余定理实验的代码,前前后后敲了一周吧。
//中国剩余定理实验
#include <stdio.h>
#include <stdlib.h>
#define N 10000
#define M 10
struct equa //方程:bx = a mod n;
{
int a;
int b;
int n;
};
int modni(int a,int b);
//模逆运算 m = a^(-1) mod b
int gcd(int a,int b);
//求最大公因子
int gcd(int a,int b)//辗转相除法求最大公因子
{
int temp;
if (a<b)
{
temp = a;
a = b;
b = temp;
}
while (b!=0)
{
temp = a % b;
a = b;
b = temp;
}
return a;
}
int modni(int a,int b)//模逆运算 m = a^(-1) mod b
{
int v1=0,v2=1,q,temp;
if (a>b)
{
a = a % b;
}
while (a!=0)
{
q = b/a;
v1 = v1-v2*q;
temp = b % a;
b = a;
a = temp;
temp = v1;
v1 = v2;
v2 = temp;
}
return v1;
}
int main()
{
int x,xn; //方程总个数
struct equa E[M],B[M]; //两个方程组,互写(bx = a mod n)
int m0 = 1; //m0 是中国剩余定理的 m
int m[M]; //m 是中国剩余定理的 M
int mm[M]; //mm 是中国剩余定理的 M'
int shit = 0; //最终结果 x = shit mod m0
int i = 0,j,k; //角标
int g1,g2; //互素分解的临时储存位置
printf("Please input the number of equations:\n");
scanf("%d",&x);
xn = x; //数据保留
if (x>M)
{
printf("Error!\nx>%d\n",M);
exit(0);
}
while (x--)
{
printf("Please enter b,a,n:\n(bx = a mod n)\n");
if (scanf("%d",&E[i].b)&&scanf("%d",&E[i].a)&&scanf("%d",&E[i++].n))
continue;
else
{
printf("\nError!");
exit(0);
}
}
for (i = 0;i<xn;i++) //计算m
m0 *= E[i].n;
for (i = 0;i<xn;i++) //计算M
m[i] = m0/E[i].n;
for (i = 0;i<xn;i++) //计算M'
mm[i] = modni(m[i],E[i].n);
for (i = 0;i<xn;i++)
shit += m[i]*mm[i]*E[i].a;
shit = shit % m0;
printf("x = %d mod %d",shit,m0);
//程序测试部分
/*for (i = 0;i<xn;i++)
{
printf("%dx = %d (mod %d)\n",E[i].b,E[i].a,E[i].n);
}*/
}
原来的那个程序太长了,我就改了一下,现在这段代码只能解很简单的那种方程了。这个程序掐头去尾共有91行代码。
你知道什么是断点吗?给出自己调试程序的例子。
断点就是程序运行时会自动停止的地方,准确来说应该是在调试过程中,程序运行到断点位置会停止。
程序调试如图所示。
程序运行结果如图所示。
三、参考怎样快速阅读一本书,快速阅读一下云班课中有PPT,每章提出一个问题
第1章
Java的动态特征不太理解。
第2章
为啥有一个“boolean 关闭 = false”?
第3章
3.1.5的例子看不怎么懂......
第4章
不理解“Java支持中文类名、方法名、属性名,并且不会因为乱码问题导致运行期链接失败。这是Java内核支持UTF-8这一特性决定的。”
第5章
所有的类都有自己的子类吗?
第6章
不理解接口和abstract类的具体区别。
第7章
异常类不理解。
第八章往后我基本一脸蒙逼了......后面的边学边问吧,我感觉这学期Java的学习会让我收获不少。
四、关于Java学习
计算机语言的学习我觉得是代码堆出来的。语言的学习离不开环境,而对于计算机语言,代码就是环境。想要提高程序设计能力和培养计算思维,软磨硬泡地训练是必不可少的。“做中学”要求我们有灵活的思维,摆脱“舒适区”,进入“学习区”。
学习基础和C语言基础调查的更多相关文章
- 20165318 预备作业二 学习基础和C语言基础调查
20165318 学习基础和C语言基础调查 技能学习经验 我们这一代人,或多或少的都上过各种兴趣班,舞蹈钢琴画画书法,我也是如此.可这些技能中,唯一能拿的出手的就是舞蹈了.按照<优秀的教学方法- ...
- 20165230 学习基础和C语言基础调查
20165230 学习基础和C语言基础调查 技能学习经验 我擅长弹钢琴.小时候我曾上过很多兴趣班,比如钢琴.跳舞.书法.绘画等等,唯一坚持至今的只有钢琴.仔细一算学习钢琴至今已有12年,不能说已经精通 ...
- 20165237 学习基础和C语言基础调查
学习基础和C语言基础调查 一.技能学习与特长 你有什么技能比大多人(超过90%以上)更好? 我的爱好和技能说实话挺广泛的.如果要挑出来一个很擅长的话,我觉得应该是钢琴. 针对这个技能的获取你有什么成功 ...
- 20165234 预备作业2 学习基础和C语言基础调查
学习基础和C语言基础调查 一.技能学习经验及体会 你有什么技能比大多人(超过90%以上)更好? 看到这个问题,我仔细想了想,好像的确没有什么特别出众的技能,但是我想到了许多我个人的爱好. 我从小喜欢五 ...
- 20165337学习基础和C语言基础调查
20165337学习基础和C语言基础调查 你有什么技能比大多人(超过90%以上)更好? 讲道理我感觉我自己没有什么能比90%以上的人都做得好的技能,我就瘸子里面拔将军挑一个我自认为还不错的技能吧. 我 ...
- 20165323 学习基础和C语言基础调查
20165323 学习基础和C语言基础调查 一.技能学习心得 1.你有什么技能比大多人更好? 我觉得我羽毛球打的还行,不能说打得比大多数人好,但是对于一些打羽毛球的要领还是掌握的. 2.针对这个技能的 ...
- 20165235 学习基础和C语言基础调查
20165235 学习基础和C语言基础调查 首先第一个问题:你有什么技能比大多人(超过90%以上)更好?感觉很难回答这种问题,其实我对很多东西挺感兴趣的,如果非要拿出一种比较突出的技能的话我感觉就是象 ...
- 20165317 学习基础和C语言基础调查
学习基础和C语言基础调查 关于优势技能 说来惭愧,读书多年,爱好不少,但是真的能拿的出手的.能被叫做特长的不多.至今,能在同龄人中处于较领先位置的也只有从四年级开始练起的乒乓球.记得开始练习乒乓球是从 ...
- 20165305 学习基础和C语言基础调查
学习基础和C语言基础调查 <优秀的教学方法---做教练与做中学>心得 在<优秀的教学方法---做教练与做中学>文章中又一次提到了"做教练"这一学习方法,因为 ...
随机推荐
- python 函数基础及装饰器
没有参数的函数及return操作 def test1(): print ("welcome") def test2(): print ("welcomt test2&qu ...
- SpringBoot笔记十七:热部署
目录 什么是热部署 Devtools热部署 什么是热部署 热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用. 举个例子,王者荣耀的更新有时候就是热部署,热更新,就是他提示你更新,更新40 ...
- cors解决跨域
什么是cors CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing). 它允许浏览器向跨源服务器,发出XMLHttpReq ...
- Ubuntu 云服务器上部署自己的 Rails 应用
自学rails一段时间了,之前只用heroku部署了网站,想尝试把网站以一个更“正经”的方式呈现出来,就买了一个阿里云服务器.参考了网上部分rails部署教程,过程中也遇到了一些问题,所以在完成之后总 ...
- js中检测数据类型的几种方式
1.typeof 一元运算符,用来检测数据类型.只可以检测number,string,boolean,object,function,undefined. 对于基本数据类型是没有问题的,但是遇到引用数 ...
- python要点
1.数据类型 字符串: ''或""表示单行,写三对符合表示多行, r'这种写法转义符不生效' 布尔值:True, False 空值: None 类型转换 print ), ), b ...
- DingDing的CorpSecretID和SSOSecret不是一个东西
今天客户更新系统后,提供了一对corpid和secret,结果同步钉钉考勤机数据时,一直提示corpid和secret不正确,最后询问钉钉官方人员发现,客户提供的是SSOSecret,应该使用Copr ...
- .Net Core/Framework之Nginx反向代理后获取客户端IP等数据探索
公司项目最近出现获取访问域名.端口.IP错误现象,通过排查发现, 之前项目一直通过Nginx自定义Headers信息来获取,但最近运维人员失误操作造成自定义Header信息丢失,造成项目拿不到对应的数 ...
- Javaweb学习笔记——(十)——————response对象,response字符流缓冲器,响应头,状态码,重定向,requset对象,路径和乱码
请求响应对象: request和response *当服务器接收都请求后,服务器会创建request和response对象,把请求数据封装到request对象中: *然后调用Servlet的sevic ...
- linux下有名管道进程通信
一.任务 1.学习mkfifo等函数: 2.了解有名管道的特点.阻塞打开与非阻塞打开等: 3.编写一个关于有名管道进程通信的程序,并运行. 二.相关概念 1.相关函数 创建有名管道的函数是mkfifo ...