编程竞赛基础 – 语言技巧部分

C语言 – 语言技巧部分01

提示:药,这里是C语言技巧部分,AKA全部捞干的来,shr~


文章目录

  • C语言 – 语言技巧部分01
  • C语言的历史背景
  • 一、认识C语言程序
  • 二、数据结构与算法
    • 1.程序的内容
    • 2.什么是算法/li>
    • 3.算法的特性
  • 总结

C语言的历史背景

早期的操作系统软件主要是用汇编语言编写的,包括UNIX操作系统在内,由于汇编语言依赖于计算机硬件,程序的可读性和移植性都比较差,为了提高系统软件的可读性及可以执行性,改用高级语言。在这种情况下诞生了C语言。C语言允许直接访问物理地址,能进行位(bit)操作。


一、认识C语言程序

一个简单的C语言程序举例,求2个数中最大的一个:

运行结果:

运行结果
说明:&a和&b中的 “&” 含义是“取地址”;C程序是由函数构成的,一个C源程序至少且仅包含一个main函数;每个语句和数据声明的最后必须有一个分 。

有一个明显的不同就是头文件使用了 “cstdio” 而非 “stdio.h” ,这个在后续的文章中解释为什么这么用。暂时先这么写不会 错的,但是文件名记得以 “.cpp” 结尾。如果使用 “stdio.h” ,则文件名以 “.c” 结尾


二、数据结构与算法

1.程序的内容

一个程序包括以下2个方面的内容:
①对数据的描述;在程序中需要指定数据的类型和数据的组织形式,即数据结构。
②对操作的描述:即操作步骤,也就是算法。
计算机科学家沃思提出一个公式:数据结构 + 算法 = 程序; 可见算法与数据结构的重要性。其中 算法是灵魂,数据结构是加工对象,语言是 工具

2.什么是算法/h2>

算法主要是是解决了 “做什么”“怎么做” 的问题。

不要认为只有 “计算” 的问题才有算法,广义的讲为了解决一个问题而采用的方法和步骤就称为算法。对于同一个问题可以有不同的解题方法和步骤。

例如:求1+2+3+…+100

有人可能这样算1+2然后再加3,再加4,一直加到100。
但是著名的数学家 约翰·卡尔·弗里德里希·高斯 在9岁的时候就提出了一种简单的运算方法:这样算100+(1+99)+(2+98)+(3+97)+…+(49+51)+50 = 100 + 100 x 49 + 50 = 5050;
可见有的方法只需要进行很少的步骤,而有的方法则需要较多的步骤。 一般来说希望采用方法简单、运算步骤少的方法; 因此为了有效的解决问题,不仅需要保证算法的 正确 ,还要考虑算法的 质量

3.算法的特性

  1. 有穷性。 一个算法应包含有限的操作步骤,而不能是无限的。
  2. 确定性。 算法中的每一个步骤都应该是确定的,而不应该是含糊的。
  3. 有零个或多个输入。 所谓输入是指再执行算法时需要从外界取得必要的信息。
  4. 有效性。 算法中的每一个步骤应当能有效地执行,并得到确定的结果。

总结

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年2月16日
下一篇 2021年2月16日

相关推荐