2017寒假随笔
1.在人生的道路上,你有没有专长的高超技能的成功经验?你有什么技能比大多人(超过70%的人更好?)
我也没有啥高超技能吧就是唱歌还好 比较喜欢唱歌 音乐方面的 最近也在学一些乐器之类的 也在学校刚组了一个乐队担任主唱 我唱歌也不算是特别好的 我也专门找老师学过 所谓经验就是经常练习吧 做任何事都得勤奋练习 比如唱歌需要气息 每天晚上需要仰卧起坐吸气吐气之类的 也有想自己创作写歌的方面吧 好像都没计算机有啥关系 当时报志愿时一门心思想学计算机 其实是自己的兴趣 不过真正学了虽然有些和想象的不一样但是我的兴趣还是存在的 接下来也会好好学习----------
2.有关C语言的调查
你是怎么学习C语言的?与你的高超技能相比,C语言的学习有什么经验和教训?到目前为止估算自己写过多少行C语言代码?理解的情况如何?
上大学之前是从来没接触过c语言的 学习c语言主要就是课堂上听老师上课主要的还是自己打代码学习的 对于c语言的学习的话也就是多看书 然后多打代码 我对多少行代码好像没什么概念应该有一两千行吧 理解情况一般吧 也就是老师布置的一些代码题 有些难题也没有好好钻研 没有主动去刷过题 以后改正
学过了C语言,你分得清数组指针,指针数组,函数指针,指针函数这些概念吗?
指针:指向数组的指针
指针数组:数组元素全是指针的
函数指针:指向函数的指针
指针函数:带指针的函数
学过了C语言,你明白文件和流的区别和联系吗?如何区别文本文件和二进制文件?如何编程和操作这两种文件?
说实话都不太明白 这里也就不贴百度了 寒假会好好巩固下知识
学过了C语言,你知道什么叫面向过程和程序设计吗?它解决问题的方法是什么?
面向过程和程序设计就是指针对某一个大的程序将他分成几块分步调用函数解决,解决问题的方法是分析出解决问题的步骤,通过一个个函数调用来实现。
结构化程序的概念首先是从以往编程过程中无限制地使用转移语句而提出的。转移语句可以使程序的控制流程强制性的转向程序的任一处,在传统流程图中,就是用上节我们提到的"很随意"的流程线来描述这种转移功能。如果一个程序中多处出现这种转移情况,将会导致程序流程无序可寻,程序结构杂乱无章,这样的程序是令人难以理解和接受的,并且容易出错。尤其是在实际软件产品的开发中,更多的追求软件的可读性和可修改性,象这种结构和风格的程序是不允许出现的。比如:C,FORTRAN,PASCAL等等
结构化程序设计方法主要由以下三种逻辑结构组成:
顺序结构:顺序结构是一种线性、有序的结构,它依次执行各语句模块。
循环结构:循环结构是重复执行一个或几个模块,直到满足某一条件为止。
选择结构:选择结构是根据条件成立与否选择程序执行的通路。
采用结构化程序设计方法,程序结构清晰,易于阅读、测试、排错和修改。由于每个模块执行单一功能,模块间联系较少,使程序编制比过去更简单,程序更可靠,而且增加了可维护性,每个模块可以独立编制、测试
以上为百度
在C语言里面,什么是模块?你写过多个源文件的程序吗?
每一个函数就是一个模块,许多个函数耦合再一起就是一个大的程序,模块化程序设计的思路:在设计一个较大的程序时,往往把它分成若干个程序模块,每一个模块包括一个或多个函数,每一个函数实现一个特定的功能。一个C程序可由若干个其他函数构成。由主函数调用其他函数,其他函数也可相互调用。同一个函数可以被一个或多个函数任意调用多次。
函数的调用很重要。
以上为百度
学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?
耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息
内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。
所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。
耦合:一个软件结构内不同模块之间互连程度的度量。
对于低耦合,粗浅的理解是:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。这样有利于修改和组合。
在面向对象程序中,内聚度主要是指类内部各成分之间的联结强度.在深入剖析了类的属性与属性、方法与属性以及方法与方法之间的关系及其性质的基础上,提出了一种基于依赖性分析的内聚度度量方法,并证明了它满足优良的内聚度度量方法应该具有的性质,从而克服了已有方法只是分析了某个方面的不足,为综合评价类内聚度提供了指南.
以上为百度
学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。
//数组A复制到数组B
int main()
{
char a[100],b[100];
int i;
gets(a);
for(i=0;a[i]!='\0';i++)
b[i]=a[i];
b[i]='\0';
puts(b);
return 0;
}
//查找数组中有没有数字5
int main()
{
int a[10];
int i,s=0;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<10;i++)
{
if(a[i]==5)
{
s=1;
break;
}
}
if(s==1)
printf("这个数组有5");
else
printf("这个数组没有5");
return 0;
}
//如何对整数数组A进行排序
int main()
{
int a[10];
int i,j,t,temp;
for (i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for (i=0;i<=9;i++)
{
for (j=0;j<10-i;j++)
{
if (a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for (i=0;i<=9;i++)
{
printf("%d ",a[i]);
}
return 0;
}
写一个程序,统计自己C语言共写了多少行代码。
#include<Windows.h>
#include<string.h>
#include<stdio.h>
int main(){
FILE *tp;
int count=0;
char dizhi[100],hnr[1000];
gets(dizhi);
tp=fopen(dizhi,"r");
while(fgets(hnr,1000,tp)){
count++;
}
printf("%d\n",count);
fclose(tp);
return 0;
}
你知道什么是断点吗?给出自己调试程序的例子
程序执行到断点会停止,主要用来查找程序的错误
对比C语言的学习,你对《面向对象程序设计》的学习有什么具体目标?如何通过刻意训练提高程序设计能力和培养计算思维?如何通过“做中学”实现你的目标?
目标是努力掌握所学知识 大幅度提高自己打码水平
平常多看些这方面的书和多刷些oj
3.毕业后大多数人从事的工作的要求是“提笔能写,开口能说,问策能对,遇事能办”,非常重要的技能是公文写作能力,你觉得自己写作能力如何?要怎么提高?
我觉得自己写作能力很一般 以后要多看看书多写些东西
多写多看
多学多练多想
4.github账号
https://github.com/6934604