计算机基础和程序设计
第一章 程序设计和C语言
程序设计语言的发展
计算机已经经历了机器语言,汇编语言,高级语言三个阶段
(1)机器语言
它是由0,1进制代码组成的能够被计算机直接理解,执行的指令集合,机器语言是唯一能够直接执行的语言
(2)汇编语言
- 它是采用一定的助记符来代替机器言语中的指令和数据
- 将汇编语言源程序转换为等价的目标程序的过程称为汇编
- 我们把机器语言和汇编语言称之为低级语言
(3)高级语言
- 高级语言的种类繁多,如面向过程的FORTRAN,Pascal,c等,面向对象的c++,java,等
- 用高级语言编写的程序也不能直接背被执行,需要通过高级语言翻译程序将源程序翻译成目标程序
- 翻译程序有两种工作方式:解释方式,编译方式
解释:解释程序对源程序是一边翻译一边执行,不产生目标程序
编译:将高级语言所编写的源程序翻译成等价的用机器语言表示的目标程序,大多数高级语言都是采用这种方法。
(4)计算机语言特点的对比
简单的C语言程序
一,C语言程序的结构(重要)
(1)一个程序由一个或多个源程序文件组成,在一个源程序文件中可以包含3个部分:
- 预处理指令,如#include<stdio.h>;
- 全局声明,如int a,b;,放到main函数的前面是全局声明
- 数的定义
(2)函数是c程序的主要组成部分
(3) 一个函数由函数首部和函数体组成
- 函数首部:
包括函数名,函数类型,函数属性,函数参数(形式参数名),参数类型 - 函数体
-
声明部分:
定义在本函数中用到的变量,int a,b;
声明在本函数中调用的函数如int max(int x,int y); -
执行部分:指定在函数进行的操作,包括若干个语句
(4)一个程序总是从main函数开始执行的,不论main函数在整个程序的过程中的位置如何
(5)C语言的书写格式是比较自由的
(6)每个语句和数据声明的最后一个必须有一个分号
(7)一个函数实际上就是实现一个功能,C语言本身是没有输入输出语句的;输入输出语句是由库函数提供的
(8)可以用//或者/…/对程序进行注释,一个好的程序,都应有注释,可增加代码的可读性
二,语言c程序的步骤与方法
计算机不能直接识别和执行用高级语言编写的指令,必须用编译(也称为编译器)把高级语言编写的源程序翻译成二进制形式的目标程序,然后再将该程序与系统的函数库以及其他目标程序链接起来,形成可以执行的目标程序。(上机操作所经历的4个步骤)
第二章 数据的存储与运算
数据的存储和表现形式
计算机的工作是基于二进制原理的,在计算机内,不管是什么样的数据,都是采用二进制编号形式表示和处理的
一,数据的储存单位和地址
- 位(bit,b)
位,又称之为“比特”,每一个二极管元件就是一个“二进制位”,是计算机储存信息的最小单位(也称为cpu能读懂的最小单位),其值位0或1,表示两种状态 - 字节(Byte,B)
字节,又称之为“拜特”,在计算机中,通常将8个二进制位组成一个储存单元,称为字节,是计算机储存信息的基本单位(也称为内存机构的最小寻址单位),计算机的主存储容器,磁盘容量都是以字节位单位表示的 - 地址
计算机的存储器包括许多存储单元,操作系统把所有存储单元以字节位单位进行编号,由于一个字节能存放的数据范围较小,所以一般使用两个字节来存放一个整数。每个编号就是一个地址,地址可以用来查询里面的数据
二,不同数据类型的存储方式
-
整数的存储
-
把最高位(左边第一位)定义为符号位,用“0”表示正,用“1”表示负,其他7位用来存放数值(存放的是signed类型)
-
在计算机的存储器中整数(正数和负数)都是以补码的形式存放的。正数的补码与原码,反码相同
-
求负数的补码方法:
①先取得该数的绝对值的二进制
②再将第一步的值按位取反(0-1)(1-0)
③最后将第二步的值加1 -
实数的存储
实数一律采用指数形式存储,如20.15可以写成标准化指数形式0.2015*10^2,后面部分是指数部分,一个实数可以有很多种指数表示形式,但只有一种标准化指数形式;在计算机的存储器中,实数是标准化指数形式存放的,一般采用4个字节存储一个实数,用3个字节存放数值部分,用一个字节存放指数部分 -
字符的存储
常用ASCII码位0-127的字符
A~65
a~97
0~48
~32
如下图所示
三,数据的表现形式(重要)
在计算机高级语言中,数据有两种表现形式:常量和变量。
-
常量
常量是指在程序运行过程中,其值不能被改变的量(12,30等数值)
常用的常量有:
整型常量:520;
实型常量:3.14;
字符常量:普通字符‘o’ ,转义字符‘\n’;
字符串常量: “dah"
符号常量:使用前必须先定义 -
变量
(1)变量的概念
变量是指在程序中其值可以改变的量,可以在程序运行过程中给他们赋予新的值 -
变量名,变量地址,存储单元,变量值的相关关系:变量名代表一个变量地址(可以说变量名是存储单元的符号地址),通过变量地址可以找到相应的存储单元的地址,可以在存储单元中存放或取出变量值。
-
a是变量名,3是变量a的值,即存放在指向变量a的内存单元中的数据,变量地址为1001。
(2)变量的定义 -
变量必须先定义,后使用定义变量的一般形式:类型名 变量名;
-
若要同时定义多个同种类型的变量,在两个变量中用逗号隔开如: 类型名 变量名1,变量名2;
-
类型是抽象的,不占用存储空间,不能用来存储数据,变量是实际存在的,占用存储空间,可以用来存放数据
(3)变量的命名规则
在计算机高级语言中,用来对变量,符号常量名,函数,数组类型等命名的有效字符序列统称为标识符,简单的来说,标识符就是一个对象的名字,以下是标识符的一些命名规则:
①变量名只能由字母,数字和下划线3中字符组成,且第一个字符不能是数字
②变量的命名区分大小写
③不可以使用C关键字为变量命名
关键字如下图:
④变量名的长度是有限的。过去只可以8字符,现在随着发展可以32甚至更多
⑤变量名应选择方便记忆的
⑥在同一个程序的同一个函数中,不能给不同的变量取相同的变量名