预备作业二——有关CCCCC语言(・᷄ᵌ・᷅)
有关CCCCC语言(・᷄ᵌ・᷅)
下面又到了回答老师问题的时候啦~(・᷄ᵌ・᷅)
有些问题正在深思熟虑中!敬请期待近期的不间断更新!
- 你有什么技能比大多人(超过90%以上)更好?
- 针对这个技能的获取你有什么成功的经验?
- 与老师博客中的学习经验有什么共通之处?
有关C语言学习的调查
-
你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?
- 目前为止估算自己写过多少行C代码?理解的情况如何?
- 多少行代码呢~我从没有估算过,我也觉得没必要估算,因为我知道不写代码就一定学不好C语言,但代码写多了也未必能学好C语言,因为仅从你自己你个人的角度并不能保证自己代码的质量和运行效率等问题。目前经历了一个学期C语言课程的我们水平实在不能说有多好,毕竟我们接受的编程训练从数量和时间上来说都是很有限的,我们大多数人可以说是为了C语言这门课为了期末考试而学习C语言,做编程题时也只是关心是否能完成题给任务,其他哪管那么多呢。因此在我看来,写过的C代码行数多少仅仅能作为C语言熟练度的一个参考而绝非衡量编程能力的一个标准,万一你编了好长一大堆虽达到要求而绝大部分都是垃圾代码呢~实在要估计的话呢,几千行应该有了吧,毕竟我密码学实验一个中国剩余定理就有四五百行代码了,再加上大一下学期C语言学习期间在徐小青老师的严厉教导下在作业系统上刷过的在记事本上记下的帮别人编过的无数道题呢。不过我承认,这样为了分数为了考试而学习的效果确实不好,不知道是不是自己智商确实不够无法领悟C语言真正精髓的原因,还是方法不得当亦或是训练量不够的问题,我觉得自己的编程能力并没有多少提高。一到上机考试了就懵逼不知所措大脑一片空白,虽然很多题目考前都编过的甚至做得更完美,导致了我C语言成绩很不理想,极大地打击了我学习C语言的热情。有些需要C语言实现的问题虽然自己能独立完成但需要花费大把的时间,可能是我力求每个程序都更加完美的缘故吧,光是自己加进去的一个防止非法输入就够我折腾半天了(我承认我密码学三次实验一拖再拖至今都没交给老师QWQ)……
- 学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?
- 学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?
- 在C语言里面,什么是模块?你写过多个源文件的程序吗?
- 学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?
-
虽然在徐小青老师的C语言课上没有听说过“高内聚,低耦合”的说法,但“耦合”这一概念我最早是在物理学电磁学那一章里接触到的,有一种电路叫做耦合电路,是说多个电路之间存在相互作用,之后的模电课上也有提过,因此我推断C语言中的“耦合”应该指的是不同程序块之间的相互影响吧,“低耦合”应该是要求各个独立的程序块之间尽量不相互影响吧;而“高内聚”则应该力求各个程序块内部紧凑、执行效率高这方面的吧。
-
真正权威的定义百度一下才知道,也算是涨知识了吧:
高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要是看类的内聚性是否高,耦合度是否低。
耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。 -
内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。
所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。
耦合:一个软件结构内不同模块之间互连程度的度量。
对于低耦合,粗浅的理解是:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。这样有利于修改和组合。
- 学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。
-
把数组A的内容复制到数组B中:
#include<stdio.h> #include<stdlib.h> #define N 20 int main() { int i,a[N],b[N]; printf("请输入一个长度为%d的数组A:\n",N); for(i=0;i<N;i++) { scanf("%d",&a[i]); } for(i=0;i<N;i++) { b[i]=a[i]; } return 0; }
-
查找整数数组A中有没有数字5:
#include<stdio.h> #include<stdlib.h> #define N 10 //定义数组长度为10 int main() { int i,a[N],count=0,ret; printf("请输入一个长度为%d的数组:\n",N); for(i=0;i<N;i++) { scanf("%d",&a[i]); } for(i=0;i<N;i++) { if(a[i]==5) count++; } if(count==0) printf("该数组A中没有数字5"); else printf("该数组A中有数字5"); return 0; }
-
对整数数组A进行排序(从小到大):
-
#include<stdio.h>
#include<stdlib.h>
#define N 5 //定义数组长度为5
int main()
{
int i,j,t,a[N];
printf("请输入一个长度为%d的数组:\n",N);
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<N-1;i++)
{
for(j=0;j<N-i-1;j++)
if(a[j]>a[j+1]) //若要从大到小排序,只需要将'>'改成'<'即可
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
for(i=0;i<N;i++)
{
printf("%d ",a[i]);
}
return 0;
}
-
写一个程序,统计自己C语言共写了多少行代码。
-
你知道什么是断点吗?给出自己调试程序的例子。
-
对比C语言的学习,你对《Java程序设计》的学习有什么具体目标?如何通过刻意训练提高程序设计能力和培养计算思维?如何通过“做中学”实现你的目标?
-
毕业后大多数人从事的工作的要求是“提笔能写,开口能说,问策能对,遇事能办”,非常重要的技能是公文写作能力,你觉得自己写作能力如何?要怎么提高?
- 我觉得自己的写作能力一定没问题啦,毕竟现在写博客对我来说也是一种很强的锻炼写作能力的手段呀!再次给娄老师点赞!