20155201 预备作业02

本文分享了作者在C语言学习过程中的体会与心得,包括技能培养的重要性、学习方法的有效性,以及如何通过刻意练习提升编程能力。文章还详细介绍了数组、指针等核心概念的理解,以及文件操作和调试技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

你有什么技能比大多人(超过90%以上)更好?针对这个技能的获取你有什么成功的经验?与老师博客中的学习经验有什么共通之处?

说来惭愧,技能是有,但是现在没有办法做到超过90%的人;可能小时候都会被父母拉去各种兴趣班的学习,我那时候学过舞蹈、电子琴、架子鼓、画画、书法,也许在学习的时候有超过90%的人的可能,但是现在相比专业水平还是差的很远。然而技能之所以称之为技能,是因为在学会之后,变成自己的所有物,甚至是附加属性,好比现在写字虽然不如当时写出来的字规矩,但肯定要比没有学习过的字要好看的多;再比如说器乐的学习使我的节奏感更强等等,虽然做不到90%,但我可以保证绝对不是0%;
1065407-20161218204148620-703415459.jpg

阅读老师的博客,一句话“任何的学习都是在增强人的可控能力。”引起了我的共鸣,所有学习都是有效果的,绝不会是无用的0%;在初中的时候,我也学习过乒乓球,那时候家长听说练乒乓球对小孩子视力有帮助,所以送我去学,然而学了不到一年因为搬家没有再继续下去。到了这学期体育选修,我几乎是看到乒乓球毫不犹豫的选择了它,一是想要看看曾经的技巧还剩多少,二是想要继续加强一下,一个学期过去,感谢老师的悉心指导,重拾了部分技巧。看到娄老师的乒乓球成果我很震撼,也许每天的任务量不大,日积月累后所展现的效果和成就却是显著的,在此对老师的毅力决心表示敬佩,努力向老师看齐。

有关C语言学习的调查

  • 你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?
    上学期教我们C语言的老师是徐小青老师,她上课的风格给我留下很深的印象,在课堂上总是情绪高涨,在她的课上我好像没有困过。徐老师对我们的要求课后每天练习5-10题以保证知识技巧的熟练,也相当于复习每次课的新知识。除此之外,把每次上机实验设置为小测验计分的形式,让我们更重视上机实际操作。另外,教材中也有很多算法的基础实例,通过对教材的研究也能够获取新的知识。一学期的C语言学习给我留下的不仅仅是以后课程的知识储备,还留给我了良好的学习习惯——课后及时复习总结、检验复习成果。这样的学习习惯一旦养成一定会提升后续的课程学习的效率。
  • 目前为止估算自己写过多少行C代码?理解的情况如何?
    简单估算一下,简单程序每个10行,复杂程序每个算70行,大概写过的程序有6000行左右,其中参考题库的程序不多,基本可以保证都是自己的思路,所以理解程度我给自己打90分。
  • 学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?
数组指针:指向数组的指针
指针数组:数组内的元素都是指针,存储指针的数组
函数指针:指向函数的指针包含函数的地址,调用函数
指针函数:函数声明其返回值为某个指针时,给函数返回一个地址,用于需要指针的表达式
  • 学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?
文件:是计算机管理数据的基本单位,是应用程序保存和读取数据的一个重要场所。
流:是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道等。
文本文件和二进制文件:二者并无本质的差别,他们的区别在于打开这个文件的程序在对其内容的解释上,我们可以把一个典型的所谓二进制文件当作文本文件来打开,是同样可以的,只是得到的内容就是一些乱七八糟的符号了。反过来,也是同样成立。
  • 学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?
    个人理解“面向过程程序设计”是得到设计任务时先充分理解自己要做的内容是什么,然后将每个小任务完成,再整合到主线中完成。
  • 在C语言里面,什么是模块?你写过多个源文件的程序吗?
    依照负责部分不同,将一个软件或程序拆分成多个部分,完成后再拼装成完整的程序。我还没写过多个源文件的程序。
  • 学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?
耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
高内聚:一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。
内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。
低耦合:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。这样有利于修改和组合。
  • 学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。
    数组A复制到数组B:
#include <stdio.h>
void main()
 {
    int n,i,a[100],b[100],j;
    printf("Input n:");
    scanf("%d",&n );
    printf("A:\n");
    for (i=0; i<n; i++) 
    {
        scanf("%d",&a[i]);
     }
    printf("B:\n");
    for (j=0; j<n; j++) {
        b[j]=a[j];
        printf("%d",b[j]);
    }
} 

在A中查找数字5:

#include <stdio.h>
void main()
{
int a[30],i,b=0;
for(i=0;i<30;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
if(a[i]==5){
b=1;
printf("第%d个元素是5",i);}
}
if(b==0)
printf("没有元素5\n");
}

对A进行排序(从小到大):

#include <stdio.h>
void main()
{
    int a[10];
    int i,j,t;
    printf("Input 10 numbers:\n");
    for(j=0; j<10; j++)
        scanf("%d",&a[j]);
    printf("\n");
    for(i=0; i<9; i++)
        for(j=0; j<9-i; j++)
            if(a[j]>a[j+1])
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
    for(j=0; j<10; j++)
        printf("%d\n",a[j]);
    printf("\n");
}

对A进行排序(从大到小):

#include <stdio.h>
void main()
{
    int a[10];
    int i,j,t;
    printf("Input 10 numbers:\n");
    for(j=0; j<10; j++)
        scanf("%d",&a[j]);
    printf("\n");
    for(i=0; i<9; i++)
        for(j=0; j<9-i; j++)
            if(a[j]<a[j+1])
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
    for(j=0; j<10; j++)
        printf("%d\n",a[j]);
    printf("\n");
}
  • 写一个程序,统计自己C语言共写了多少行代码
#include <stdio.h>
void main()
{
  int ch,lines;
  FILE *fp;
  char filename[FILENAME_MAX];
  printf("Input filename:");
  while(scanf("%s",filename) == 1)
  {
   fp = fopen(filename,"rt");
   if(fp == NULL)
    {
     printf("error!");
     printf("Input filename:");
     continue;
    }
   lines = 0;
   while((ch = fgetc(fp)) != EOF)
    {
     if(ch == '\n') ++lines;
    }
   fclose(fp);
   printf("%s 的行数为 %d\n",filename,lines);
   printf("Input filename:");
   }

}
  • 你知道什么是断点吗?给出自己调试程序的例子.
断点:程序中断终止的地方。在某行代码处设置断点后,调试程序时,程序运行到该行代码时会中断,方便逐步调试;能够起到深入代码,查找代码内部缺陷的作用。
当程序中使用较多的for循环时,我更倾向于选择设置断点、运行程序检验是否有数组溢出等等的错误。

对比C语言的学习,你对《Java程序设计》的学习有什么具体目标?如何通过刻意训练提高程序设计能力和培养计算思维?如何通过“做中学”实现你的目标?

相比C语言的学习,我希望在下学期Java的学习后能够拿出一个很好的作品以证明我的学习成果。我认为程序设计能力和计算思维都不是一朝一夕可以提升的,需要日复一日的练习和思考才能取得进步。下学期一定努力跟上老师的进度,加强课后练习以实现做中学。

毕业后大多数人从事的工作的要求是“提笔能写,开口能说,问策能对,遇事能办”,非常重要的技能是公文写作能力,你觉得自己写作能力如何?要怎么提高?

大数据时代,我们获取写作材料更多都是通过互联网渠道,能够静下心来写出脑海中的思想的机会变得越来越少,但是“提笔能写”的能力又是当代社会所需人才必须具备的能力,因此,即使网上的资料丰富,我们还是需要锻炼我们的公文写作能力。我的写作能力不是很强,很多时候词不达意,或者写出的文字啰唆反复。如果以后碰到写材料的时候我会尽力摆脱网络,更多的写出自己的真实想法和思路。

转载于:https://www.cnblogs.com/zhuohua/p/6195478.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值