第一章 程序设计和C语言
1、计算机程序
指令:可以被计算机理解并执行的基本操作命令。
程序:一组计算机能识别和执行的指令。(一个特定的指令序列用来完成一定的功能。)
软件:与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。
2、计算机语言 机器语言;汇编语言;高级语言。
3、高级语言的发展
4、C语言的特点
·语言简洁、紧凑,使用方便、灵活
·运算符丰富
·数据类型丰富
·生成目标代码质量高,程序执行效率高
·具有结构化的控制语句
用函数作为程序的模块单位,便于实现程序的模块化
C语言是完全模块化和结构化的语言
·语法限制不太严格,程序设计自由度大
·允许直接访问物理地址
能进行位(bit)操作
能实现汇编语言的大部分功能
可以直接对硬件进行操作
因此C语言既具有高级语言的功能,又具有低级语言的许多功能,可用来编写系统软件
·程序可移植性好
5、C语言程序
#include <stdio.h> // 这是编译预处理指令
int main() //定义主函数;每一个C语言程序都必须有一个 main 函数。
{ // 函数开始的标志
printf(“Hello, World! \n”); // 输出所指定的一行信息
return 0; // 函数执行完毕时返回函数值0
} // 函数结束的标志
第二章 算法
算法+数据结构=程序
数据结构
对数据的描述。在程序中要指定用到哪些数据,以及这些数据的类型和数据的组织形式。
算法
对操作的描述。即要求计算机进行操作的步骤
一.数据类型包括:1.基本类型。2.派生类型。3.空类型
二.常用的数据结构类型:集合、线性、树形、图状。
三.数据结构包括:
1.逻辑结构:数据元素之间的关系 。
2.存储结构:数据结构在计算机中的表示。存储结构分为:顺序存储结构和链式存储结构。
算法的特性
有穷性;确定性;有零个或多个输入;有一个或多个输出;有效性;
起止框 处理框 输入输出框 判断框
第三章 顺序程序设计
一、常量
整型常量 5201314
实型常量 小数点形式123.456指数形式12.34e3
字符常量 普通字符’a’,’Z’,’#’;转义字符’\n’,’\012’,’\h1B’
字符串常量 “123”,”boy”
符号常量 #define PI 3.1416 //注意行末没有分号,使用前要先定义
转义字符
二、变量
变量代表一个有名字的、具有特定属性的一个存储单元。变量用来存放数据,也就是存放变量的值。
在程序运行期间,变量的值是可以改变的。变量必须先定义,后使用。
三、标识符(变量名)
标识符就是一个对象的名字。用于标识变量、符号常量、函数、数组、类型等
·标识符只能由字母(a-z,A-Z)、数字(0-9)和下划线(_) 3种字符组成,且第1个字符必须为字母或下划线
不能使用关键字,且要区分大小写
四、数据类型
位 (bit)(一般以8位二进制组成一个基本单位。)
字节 (Byte)简记为B,
KB (Kilobyte 千字节),
MB (Megabyte 兆字节 简称“兆”), GB、TB
1B=8bit 1KB=1024B 1MB=1024KB
(1)基本类型
1、整型类型
基本整型 int;短整型short int;长整型long int;
字符型char
布尔型boor
2、浮点类型
单精度浮点型float
双精度浮点型double
复数浮点型 float_complex,double_complex,long long _complex
(2)枚举类型enum
(3)空类型void
(4)派生类型
1、指针 *
2、数组类型 []
3、结构体类型 union
4、函数类型
计算机中带符号整型数的表示:补码 0000 0000 0000 0000
正整数的补码就是此数的二进制形式
负整数的补码需:①符号位不变;②其他位取反;③加1 。
整型数据类型 | 缺省形式的 整型数据类型 | 字节数 | 取值范围 |
[signed] int | int | 4 | -2147483648~2147483647(-231 ~ 231-1) |
unsigned [int] | unsigned | 4 | 0~4294967295(0 ~ 232-1) |
[signed] short [int] | short | 2 | -32768~32767(-215 ~ 215-1) |
unsigned short [int] | unsigned short | 2 | 0~65535(0 ~ 216-1) |
[signed] long [int] | long | 4 | -2147483648~2147483647(-231 ~ 231-1) |
unsigned long [int] | unsigned long | 4 | 0~4294967295(0 ~ 232-1) |
[signed] long long [int] | long long | 8 | -9223372036854775808~9223372036854775807(-263 ~ 263-1) |
unsigned long long [int] | Unsigned long long | 8 | 0~184********709551615(0 ~ 264-1) |
1、整型数据
(1) 只有整型(包括字符型)数据可以加signed或unsigned修饰符,实型数据不能加。
(2) 对无符号整型数据用“%u”格式输出。%u表示用无符号十进制数的格式输出。如:
unsigned short price=50; //定义price为无符号短整型变量
printf("%u\n",price); //指定用无符号十进制数的格式输出
在将一个变量定义为无符号整型后,不应向它赋予一个负值,否则会得到错误的结果。
2、字符型数据
ASCII字符集包括:
字母: 大写英文字母A ~ Z,小写英文字母a ~ z
数字: 0~9
专门符号: 29个,包括! " # & ' ( ) * + , - . / : ; < = > ? [ \ ] ^ _ ` { | } ~
空格符: 空格、水平制表符(tab)、垂直制表符、换行、换页(form feed)
不能显示的字符: 空(null)字符(以'\0'表示)、警告(以'\a'表示)、退格(以'\b'表示)、回车(以'\r'表示)等
注:字符′1′和整数1是不同的概念。
字符′1′只是代表一个形状为′1′的符号,在需要时按原样输出,在内存中以ASCII码形式存储,占1个字节。
而整数1是以整数存储方式(二进制补码方式)存储的,占2个或4个字节。
整数运算1+1等于整数2,而字符′1′+′1′并不等于整数2或字符′2′。
3、字符变量
字符变量是用类型符char定义字符变量。
char c='?'; //定义c为字符型变量并使初值为字符′?′。′?′的ASCII代码是63,系统把整数63赋给变量c。
printf("%d %c\n",c,c); //用“%d”格式输出十进制整数63,用“%c”格式输出字符′?’
char c1; int i;
c1=’A’; i=65;
或 或
c1=65; i=’A’; //整型变量和字符变量的定义和赋值可以互换[ASCII码范围]
4、浮点型数据
3.14159=3.14159*100=0.314159*101=314.159*10-2
由于小数点位置可以浮动,所以实数的指数形式称为浮点数。
浮点数类型包括float(单精度浮点型)、double(双精度浮点型)、long double(长双精度浮点型)。
汇编语言转c语言的软件5、常量、变量与类型
float a=3.14159; //3.14159为双精度浮点常量,分配8个字节;a为float变量,分配4个字节
编译时系统会发出警告(warning: truncation from ′const double′ to′float′),提醒用户注意这种转换可能损失精度。一般不影响结果的正确性,但会影响结果的精度。
可以在常量的末尾加专用字符,强制指定常量的类型:
float a=3.14159f; //把此3.14159按单精度浮点常量处理,编译时不出现“警告”
long double a = 1.23L; //把此1.23作为long double型处理
类型是变量的一个重要的属性。变量是具体存在的实体,占用存储单元,可以存放数据。而类型是变量的共性,是抽象的,不占用存储单元,不能用来存放数据。
int a; a=3; //正确。对整型变量a赋值
int=3; //错误。不能对类型赋值
6、运算符
运算符 | 含义 | 举例 | 结果 |
+ | 正号运算符(单目运算符) | +a | a的值 |
- | 负号运算符(单目运算符) | -a | a的算术负值 |
* | 乘法运算符 | a*b | a和b的乘积 |
/ | 除法运算符 | a/b | a除以b的商 |
% | 求余运算符 | a%b | a除以b的余数 |
+ | 加法运算符 | a+b | a和b的和 |
- | 减法运算符 | a-b | a和b的差 |
不同类型数据间的混合运算
如果一个运算符两侧的数据类型不同,则先自动进行类型转换,使二者成为同一种类型,然后进行运算。整型、实型、字符型数据间可以进行混合运算。规律为:
·+、-、*、/运算的两个数中有一个数为float或double型,结果是double型,因为系统将所有float型数据都先转换为double型,然后进行运算。
·如果int型与float或double型数据进行运算,先把int型和float型数据转换为double型,然后进行运算,结果是double型。
·字符(char)型数据与整型数据进行运算,就是把字符的ASCII代码与整型数据进行运算。
·如果字符型数据与实型数据进行运算,则将字符的ASCII代码转换为double型数据,然后进行运算。
int i=3,j; float f=2.5; double d=7.5;
printf("%lf",10+'a'+i*f-d/3);
程序分析:
10+'a'+i*f-d/3
① 进行10+′a′的运算,′a′的值是整数97,运算结果为107。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论