C语言程序设计基础知识
计算机基础知识概述
计算机是一种在事先存入的程序控制下,能够接收数据、存储数据、处理数据、提供处理结果的电子设备。
计算机中信息的表示
进位计数制(十进制、二进制、八进制、十六进制)
不同的计数制的共同特点:1. 每种计数制都有固定的符号集 2. 都使用位置表示法,即处于不同位置的数符代表的值不同,与所在位置的权值有关。
为什么计算机内采用二进制而不是十进制?
- 二进制数只使用数字符号“0”和“1”,可用自然界存在的两种对立的物理状态表示。
- 二进制数的运算比十进制数简单。在计算机中,减法、乘法和除法运算都可以转化为加法这种最基本的运算来完成。
- 采用二进制可进行逻辑运算,使逻辑代数和逻辑电路成为计算机电路设计的数学基础。
不同进制数之间的转换
- r进制数转换为十进制数:将r进制数的基数与相应位置的权值相乘,然后相加即可。
- 十进制数转换为r进制数:整数部分除r取余法,小数部分乘r取整法。
- 非十进制数之间的转换:先把被转换数据转换为相应的十进制数,然后再将十进制数转换为其他进制数。
信息的单位及机器数
- bit(位)是计算机中的最小信息单位,通常将8位二进制位称为一个Byte(字节),字节是信息的基本单位。
- 二进制数在计算机中的表现形式称为机器数。
- 机器数的位数固定,能表示的数值范围受到位数限制。
- 机器数的正、负用“0”和“1”表示。
- 机器数有定点和浮点两种表示法。
字符的表示
现在国际上广泛采用美国标准信息交换代码(American Standard Code for Information Interchange)表示字符,简称ASCII码
计算机系统的组成
计算机系统由硬件和软件两大部分组成。硬件就是构成计算机的五大部件:运算器、控制器、存储器、输入设备和输出设备,是可以触摸到、看得到的物理设备。软件是指计算机所使用的各种程序的集合及程序运行时所需要的数据。
存储器
存储器是计算机存储数据的部件。向存储器存放数据,称为写入;行存储器取出数据,称为读出。
存储器中存放二进制数的单元称为存储单元。为了使计算机能识别这些单元,每个存储单元有一个编号,称为地址。存储单元的内容可以多次读出,而写入则是以新代旧(覆盖)。
主存储器是放在主机内的半导体存储器,CPU可以直接存取,读写速度快。外存储器的功能是用于存放CPU当前暂时不用的信息,当需要使用时,CPU只有将需要的信息传送到主存储器内,才能被直接使用。
运算器
运算器在控制器的控制下,完成加减乘除运算、逻辑运算及其他运算。
控制器
控制器是计算机的控制指挥部件,也是全机的控制指挥中心,其主要功能是通过向计算机的各个部分发出控制信号,使整个机器自动、协调地进行工作。
输入设备
输入设备是给计算机输入信息的设备。输入信息通过输入设备转换成计算机能识别的二进制代码,送入存储器保存。
输出设备
输出设备是输出计算结果的设备。
运算器和控制器合称为中央处理器(Central Processing Unit, CPU)。运算器、控制器和存储器是计算机的主要组成部分,称为主机。输入设备和输出设备统称为计算机的外部设备。
计算机系统的软件
系统软件是指一组管理计算机本身、提高机器使用效率、便于用户使用计算机的程序的集合。系统软件主要包括操作系统、语言处理程序和各种服务程序。
操作系统
操作系统是最低层的系统软件,它是其他系统软件和应用软件能够在计算机上运行的基础。其基本功能:
- 有效地管理计算机系统的软件和硬件资源,实现计算机自己管理自己。
- 为用户创造良好的工作环境和使用条件,使之能方便灵活、安全可靠地在计算机上解决用户的问题。
程序设计语言是指用来编制和设计程序所使用的计算机语言,是人与计算机之间交换信息所用的一种工具,通常分为机器语言、汇编语言和高级语言。
服务程序包括用来检查计算及本身错误及故障的诊断程序,用来编写源程序或进行文字处理的编辑程序,帮助程序开发使用的调试查错程序以及链接程序等。
应用软件是在具体应用领域中解决各类问题而编写的程序。
算法及其表示
计算机求解问题的步骤
计算机是在软件的控制下运行的。利用计算机解决问题的软件开发方法通常包括以下几个步骤:
需求说明——>分析——>设计——>编码实现——>测试与验证——>建立文档
算法
所谓算法,就是为解决某一问题所采取的一系列步骤。一个合理的算法具有以下特点:
- 有输入——算法可以有零个或多个输入。
- 有输出——算法必须具有一个或多个输出。
- 有穷性——任何算法都应该在执行有穷步骤之后结束
- 确定性——算法不能具有二义性
- 高效性——根据算法编写出来的程序应具有较高的执行效率。
算法的表示
- 自然语言描述
- 伪码描述
- 程序流程图描述
- N-S流程图
程序设计 = 算法 + 数据结构
C语言概述
C语言的特点
- C语言是一种兼有高级语言和汇编语言优点的语言。
- C语言是一种结构化程序设计语言。
- C语言数据类型丰富。
- C语言具有种类丰富的运算符,除一般高级语言具有的运算功能外,还可以实现以二进制位单位的位运算,自增、自减等单目运算及各种复合赋值运算等。
- C语言具有与处理功能。
- 各种C编译系统为用户提供了大量丰富的C语言库函数。
基本程序结构
main()
{
printf("THEORY AND PROBLEMS\n");
printf(" of\n");
printf("PROGRAMMING WITH C\n");
}
任何C语言程序都必须有一个main()函数,它表示程序从这里开始执行。C语言规定,函数体内各语句间用“;”分隔。
自定义函数由函数说明部分和函数体两个部分组成。
C语言程序的基本结构是:C语言程序为函数模块结构,每个C语言程序都是由一个或多个函数组成,其中至少有一个main()函数;程序从main()函数开始执行,程序在执行中可以调用由编译系统提供的各种标准库函数和由用户自定义的函数。
书写C语言程序的基本特点
- C语言程序吸光上使用小写英文字母,常量和其他特殊用途的符号可用大写字母。
- C语言不存在程序行概念。
- 善用注释,增加可读性
- 善用缩进和空行,是程序更加清晰。
基本语法单位
- C语言规定标识符只能由字母、下画线和数字组成,且第一个字符必须是字母或下画线。
- 关键字是指在C语言中已预先定义具有特定含义的标识符。关键字也称为保留字。
C语言程序的编写和运行
进行程序设计的具体过程:
- 分析问题
- 找出解决问题的算法和确定合适的数据结构
- 用一种高级语言描述算法,编写解决问题的程序
C语言程序的运行一般要经过4个步骤:
源程序的编辑–>源程序的编译–>目标程序的连接–>可执行程序的运行
编辑
程序开发人员使用一种编辑软件,把编写的C语言程序输入计算机,并以文本文件的形式存储在计算机的磁盘上。后缀必须是“.c”。
编译
编译是指将编辑好的源文件翻译成二进制目标代码的过程。
连接
编译后产生的目标文件是可重定位的程序模块,不能直接用于运行。连接就是指把目标文件和其他分别进行编译生成的目标程序模块(如果有的话)及系统提供的标准库函数连接在一起,生成可以运行的可执行文件的过程。
运行
生成可执行文件后,就可以在操作系统下运行。