一. 初识C语言

1.计算机程序:所谓程序,就是一组计算机能识别和执行的指令。
2.计算机语言:计算机和人都能识别的语言
发展阶段:
(1)机器语言:计算机能直接识别和接受的二进制代码称为机器指令。机器指令的集合就是该计算机的机器语言。
(2)符号语言:需要一种称为汇编程序的软件把符号语言的指令转换为机器指令。一般,一条符号语言的指令对应转换为一条机器指令。转换的过程称为代真或汇编,因此,符号语言又称为符号汇编语言或汇编语言。
PS:机器语言和汇编语言是完全依赖于具体机器特性的,是面向机器的语言。由于它贴近计算机,或者说离计算机很近,故称为计算机低级语言。
(3)高级语言:不依赖于具体机器,它与具体机器距离较远,故称为计算机高级语言。用一种称为编译程序的软件把用高级语言写的程序(称为源程序)转换为机器指令的程序(称为目的程序),然后让计算机执行计算机执行机器指令程序,最后得到结果。高级语言的一个语句往往对应多条机器指令。
发展阶段:①非结构化的语言②结构化语言:规定程序必须有良好特性的基本结构(顺序结构,选择结构,循环结构)构成,程序的流程不允许随意跳转,程序总是由上而下顺序执行各个基本结构。例如:C语言。PS:以上两种语言都是基于过程的语言,在编写程序时需要具体指定每一个过程的细节。适合写规模小的程序。③面对对象的语言:如C++,C#和Java等语言。
3.C语言发展:1989年,ANSI公布了一个完整的C语言标准——ANSI X3.159—1989(常称为ANSI C或C89)。1990年,国际标准化组织ISO接受89作为国际标准ISO/IEC9899:1990,它和ANSI的89基本是相同的。软件公司多以C89为基础开发
4.C语言特点:
(1)语言简洁,紧凑,使用方便,灵活。
(2)运算符丰富。
(3)数据类型丰富。
(4)具有结构化的控制语句。
(5)语法限制不太严格,程序设计自由度大。
(6)C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
(7)用C语言编写的程序可移植性好。
(8)生成目标代码质量高,程序执行效率高。
5.一些基础的代码知识举例:
(1)两种注释方式:①单行注释://注释内容;②多行注释:/※注释内容※/。
(2)#include<stdio.h>的作用提供有关输入输出函数的信息,例如对输入输出函数的声明和宏的定义,全局变量的定义等。stdio是standard input & output的缩写,文件后缀.h的意思是头文件(head file),因为这些文件都是放在各文件模块的开头的。输入输出函数的相关信息已事先放在stdio.h文件中。现在,用#include指令把这些信息调入供使用。
(3)int函数类型中return 0的作用:当main函数执行结束前将整数0作为函数值,返回到函数处。
(4)每一个C语言程序必须有一个main函数。
(5)函数调用,实际参数,形式参数。
6.C语言程序的结构:
(1)一个程序由一个或多个源程序文件组成,源程序文件中包括3个部分:预处理指令,全局声明:在函数外面声明的变量,函数定义。
(2)函数是C程序主要的组成成分。
(3)一个函数包括两个部分:函数首部:函数类型,函数名(函数参数类型 函数参数名,…,…);函数体:声明部分,执行部分。
(4)程序总是从main函数开始执行的。
(5)程序中要求计算机完成的操作是由函数中的C语句完成的。
(6)在每个数据声明和语句的最后必须有一个分号。
(7)C语言本身不提供输入输出语句。⑧程序应当包含注释。
7.运行C程序的步骤与方法:
(1)上机输入和编辑源程序。文件用.c作为后缀,生成源程序文件。
(2)对源程序进行编译,首先用C编译系统提供的“预处理器”(又称“预处理程序”或“预编译器”)对程序中的预处理指令进行编译预处理。由预处理得到的信息与程序其他部分一起组成一个完整的,可以用来进行正式编译的源程序,然后由编译系统对该源程序进行编译。编译首先是对源程序检查错误,直到没有语法错误为止。此时,编译程序自动把源程序转化为二进制形式的目标程序(文件后缀为.obj)。如果不特别指定,此目标程序一般也存放在用户当前目录下,此时源文件没有消失。
(3)进行连接处理。后缀为.obj文件还不能直接供计算机直接执行。必须把所有的编译后得到的目标模块连接装配起来,再与函数库相连接成一个整体,生成一个可供计算机执行的目标程序,称为可执行程序(executive program),文件后缀为.exe。
(4)运行可执行程序。
8.程序设计的任务:
(1)问题分析。
(2)设计算法。
(3)编写程序。
(4)对源程序进行编辑,编译和连接。
(5)运行程序,分析结果。
(6)编写程序文档。

二.算法–程序的灵魂

1.程序=算法+数据结构
一个程序主要包括两个方面的信息:
(1)对数据的描述。在程序中要指定用到哪些数据,以及这些数据的类型和数据的组织形式。这就是数据结构。
(2)对操作的描述。要求计算机进行操作的步骤,也就是算法。
PS:实际上,一个过程化的程序除了以上两个主要元素之外,还应当采用结构化程序设计方法进行程序设计,并且用某一种计算机语言表示。因此,算法(灵魂),数据结构(加工对象),程序设计方法(方法)和语言工具(工具)4个方面是一个程序设计人员所应具备的知识。
2.关于算法
(1)计算机算法:计算机能执行的算法。
(2)计算机算法分类:①数值运算算法 。②非数值运算算法。
(3)算法的特性:①有穷性:一个算法应包含有限的操作步骤,而不能是无限的。②确定性:算法中的每一个步骤都应当是确定的,而不是含糊的,模棱两可的。③有零个或多个输入:所谓输入是指在执行算法时需要从外界取得必要的信息。④有一个或多个输出:算法的目的是为了求解,“解”就是输出⑤有效性:算法的每一个步骤都应当能有效地执行,并得到确定的结果。
(4)算法的表示:①自然语言。②传统流程图。③结构化流程图(顺序结构,选择结构,循环结构:当型while循环结构;直到型until循环结构)。④N-S流程图⑤伪代码⑥计算机语言。
(5)结构化程序设计方法的保证:①自顶向下。②逐步细化。③模块化设计。④结构化编码。

参考书目:谭浩强.C程序设计(第五版).北京:清华大学出版社,2017.

【C语言零基础教学】——入门篇相关推荐

  1. CorelDRAW X6 零基础教学入门

    CorelDRAW X6 零基础教学入门 1.1 CDRX6 新建与保存.打开与关闭文档 http://v.youku.com/v_show/id_XMTY5MTM4MDAyNA==.html 1.2 ...

  2. rust放置木箱转向_[易学易懂系列|rustlang语言|零基础|快速入门|(17)|装箱crates]...

    [易学易懂系列|rustlang语言|零基础|快速入门|(17)|装箱crates] 实用知识 装箱crates 我们今天来讲讲装箱技术crates. 什么是crates? 英语翻译是: 英 [kre ...

  3. Linux零基础快速入门篇

    推荐教程:Linux零基础快速入门到精通 操作系统概述 操作系统是计算机软件的一种,它主要负责:作为用户和计算机硬件之间的桥梁,调度和管理计算机硬件进行工作而计算机,如果没有操作系统,就是一堆无法使用 ...

  4. c语言零基础快速入门,C语言几种循环结构—零基础小白快速入门必学

    循环语句是用于重复执行某条语句(循环体)的语句,它包含一个控制表达式,每循环执行一次都要对控制表达式进行判断,如果表达式为真,则继续执行循环.C语言提供了3中循环语句,分别为while语句,do wh ...

  5. [易学易懂系列|golang语言|零基础|快速入门|(一)]

    golang编程语言,是google推出的一门语言. 主要应用在系统编程和高性能服务器编程,有广大的市场前景,目前整个生态也越来越强大,未来可能在企业应用和人工智能等领域占有越来越重要的地位. 本文章 ...

  6. 零基础入门c语言免费教程,C语言零基础急速入门免费教程不定期更新

    很多粉丝问我陈老师为什么你会教c语言和java语言? 因为名字中"陈"字的汉语拼音中"chen"="陈",和"c"语言是 ...

  7. 易语言零基础新手入门系列教程 第一课

    机器人小鑫易语言源码(作业用): 机器人小鑫源码 - 第一课.zip 视频教程文字版: 新手学习易语言的几点建议 1.由浅入深.由易到难.循序渐进,切勿急功近利,想一步登天! 这是学习的一般规律,学习 ...

  8. C语言零基础,入门应该知道的事

    转自:https://www.pinlue.com/article/2020/01/1517/169903517532.html

  9. [易学易懂系列|golang语言|零基础|快速入门|(二)]

    现在我们来写代码,首先我们要新建一个项目. 新建项目: 点击:File>>New>>Project...如下图: 在New Project窗口,Location:输入:&quo ...

最新文章

  1. Go处理百万每分钟的请求
  2. 控制单元维修_「维修案例」一汽大众迈腾挡风玻璃喷水电机不喷水,实操步骤解决...
  3. 云计算,拼的就是运维
  4. 便捷的flex弹性布局
  5. No report created. Execute hbck_chore_run in hbase shell to generate a new sub-report.
  6. linux 中断奶乱码,科学断奶经历:早中晚三次母乳,一个月内循序渐进自然断奶...
  7. 推荐一个集录屏、截图、音频于一体的软件给大家
  8. php files得不到导入的文件,PHP判断文件是否被引入的方法get_included_files用法示例...
  9. Linux中的软件源详解,Ubuntu Linux 软件源详解
  10. AWS专家论道之迁移上云的四个大趋势和七个小趋势
  11. http?https?相对协议?
  12. Python实现十大经典排序算法
  13. sql 线性回归_SQL Server中的Microsoft线性回归
  14. 牛客网 暑期ACM多校训练营(第二场)D.money-贪心 or 动态规划
  15. 压箱底的Android UI开源库(一)
  16. 数据之路 - Python爬虫 - Xpath库
  17. Mac OS使用技巧之四:修改打开不同格式视频的默认播放器
  18. 服务器工作室用什么系统,【小兵工作室】BING GHOST Server2003r2ee 服务器专用版
  19. vue 描述框[el-descriptions] 与之对应 div
  20. 故障模块名称: mso.dll

热门文章

  1. 卡特兰数(c++实现)
  2. php+vue基于微信小程序的叽喳音乐播放小程序
  3. 《仙剑奇侠传3》仙术合集
  4. cropper封装的头像裁剪尺寸插件
  5. AS安装模拟器要安装加速器
  6. 苹果手机怎么编辑word文档_word文档转pdf要怎么实现?word转pdf好方法推荐
  7. 哲理故事与管理之道(22)-用竞争激励下属
  8. 倒闭潮不断,众筹的生机在何处?
  9. matlab不支持复数输入,高版本MATLAB中medfilt1函数不支持复数问题
  10. JAVA|圆周长、面积