C语言程序设计总结
一. 程序设计和C语言
什么是计算机程序?
- 计算机的一切操作都是由程序控制,离开程序,计算机将一事无成。计算机的本质是程序的机器,程序和指令是计算机系统中最基本的概念。
什么是计算机语言?
- 语言分为:机器语言 符号语言 高级语言(非结构化语言,结构化语言,面向对象的语言)。
最简单的C语言程序
#include<sidio.>
int main()
{
printf("Holle world");
return 0;
}
C语言程序的结构
- 一个程序由一个或多个源文件组成。
- 预处理指令
- 全局声明
- 函数的定义
- 函数是C程序的组要组成部分。
- 一个函数包括两个部分。
- 函数首部
- 函数体
* 声明部分
* 执行部分
- 程序总是从main函数开始执行。
- 程序中要求计算机完成的操作是由函数中的C语句完成的。
- 在每个数据声明和语句的最后必须有一个分号。
- C语言本身不提供输入输出语句。
- 程序应当包含注释。
程序设计的任务
- 问题分析 。
- 设计算法。
- 编写程序。
- 对源程序进行编辑、编译和连接。
- 运行程序,分析结果。
- 编写程序文档。
二.算法–程序的灵魂
算法+数据结构=程序
算法的特性
- 有穷性
- 确定性
- 有零个或多个输出
- 有一个或多个输出
- 有效性
三种基本结构
- 顺序结构
- 选择结构
- 循环结构
- 当型(while型)循环结构。
- 知道型(until型)循环结构。
结构化程序设计方法
- 自顶向下,逐步细化。
三.最简单的C程序设计–顺序程序设计
数据的表现形式及其运算
- 常量和变量
- 常量
整型常量
实型常量
字符常量(普通字符、转义字符)
字符串常量
符号常量 - 变量(先定义,后使用)
- 常变量(定义变量时,前面加一个const)
- 标识符
- 数据类型
- 基本类型
基本整型(int)
短整型(short int)
长整型(long int)
*双长整型(long long int)
字符型(char)
*布尔型(boot)
单精度浮点型(float)
双精度浮点型(double)
复数浮点型(float_complex,double_complex,long long_complex) - 枚举类型(enum)
- 空类型(void)
- 派生类型
指针类型(*)
数组类型([])
结构体类型(struct)
共用体类型(union)
函数类型
- 基本类型
整型数据常见的储存空间和值的范围
类型 | 字节数和取值范围 |
---|---|
int(基本整型) | 4 ,-2 147 483 648~2 147 483 647 |
unsigned int(无符号基本整型) | 4,0~4 294 967 295 |
short(短整型) | 2,-32 768~32 768 |
unsigned short(无符号短整型) | 2,0~65 535 |
long(长整型) | 4,-2 147 483 648~2 147 483 647 |
unsigned long(无符号长整型) | 4,0~4 294 967 295 |
long long (双长型) | 8,-9 223 372 036 854 775 808~9 223 372 036 854 775 808 |
unsigned long long(无符号双长整型) | 8,0~18 446 744 073 709 551 615 |
为了充分利用变量的值的范围,可将变量定义为“无符号”类型
如果既未指定为signed也未指定为unsigned的,默认为“有符号类型”
字符型数据的储存空间和值范围
类型 | 字节数和取值范围 |
---|---|
signed char(有符号字符型) | 1, -128~127 |
unsigned char(无符号字符型) | 1,0~255 |
在使用有符号字符型变量时,允许使用储存值为-128-127,但字符的代码不可能为负值,所以在储存字符时实际上只用到0-127这一部分,其第一位都是0。
实型数据的有关情况
类型 | 字节数和取值范围(绝对值) |
---|---|
float | 4,0以及1.2e-38~3.4e38 |
double | 8,0以及2.3e-308~1.7e308 |
用有限的储存单位不可能完全精确得储存一个实数。
最常用的算数运算符
|
运算符 | 举例和结果 |
---|---|
+ | +a,a的值 |
- | -a,a的算数负值 |
* | a*b,a和b的乘积 |
/ | a/b,a除以b的商 |
% | a%b,a%b的余数 |
+ | a+b,a和b的和 |
- | a-b,a和b的差 |
- %运算符要求参加运算对象(即操作数)为整数,结果也是整数。
- 除%以外的运算符的操作数都可以是任何算数类型。
自增(++)、自减(–)运算符
++i,–i(在使用i之前,先使i的值加(减)1)
i++,i–(在使用i之后,使i的值加(减)1)
把它们作为单独的表达式,而不要在一个复杂的表达式中使用++或–运算符。
算数表达式和运算符的结合性:
算数运算符是自左至右(左结合性),赋值运算符是自右至左(右结合性)。
强制类型转换运算符
(double)a (将a转换成double型)
(int)(x+y) (将x+y的值转换成int型)
(float)(5%3) (将5%3的值转换成float型)
其一般形式为:
(类型名)(表达式)
- 注意表达式要用括号括起来。
C语句
- 控制语句
- if()···else··· (条件语句)
- for()···(循环语句)
- while()···(循环语句)
- do···while()(循环语句)
- continue(结束本次循环语句)
- break(中止执行switch或循环语句)
- switch(多分支选择语句)
- return(从函数返回语句)
- 函数调用语句(由一个函数调用加一个分号构成)
- 表达式语句(一个表达式的最后加一个分号就成了一个语句)
- 空语句(可以作为流程的转向点,也可以用来作为语句中的循环体)
- 复合语句(复合语句常用在if语句或循环中,此时程序需要连续执行一组语句)
注意符复合语句中最后一个语句末尾的分号不能忽略不写。
复合的赋值运算符
- a+=3等价于a=a+3
- x*=y+8等价于x=x*(y+8)
- x%=3等价于x=x%3
赋值表达式
一般形式为:
变量 赋值运算符 表达式
赋值过程中类型转换
- 将浮点型数据赋给整型变量时,先对浮点数取整,即舍弃小数部分,然后赋予整型变量。
- 将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式储存到变量中。
- 将一个double型数据赋给float变量时,先将双精度数转换为单精度,储存到float型变量的4个字节中。
- 字符型数据赋给整形变量时,将字符的ASC||代码赋给整型变量。
数据的输入和输出
要在程序文件的开头用预处理指令#include把有关头文件放在本程序中
printf函数的一般格式
printf(格式控制,输出列表)
printf(参数1,参数2,参数3,···,参数n)
格式字符
格式字符 | 说明 |
---|---|
d,i | 以带符号的十进制形式输出整数 |
o | 以八进制无符号形式输出整数 |
x,X | 以十六进制无符号输出形式输出整数 |
u | 以无符号十进制形式输出整数 |
c | 以字符形式输出,只输出一个字符 |
s | 输出字符串 |
f | 以小数形式输出单、双精度数,隐含输出6位小数 |
e,E | 以指数形式输出实数 |
除了X,E,G外,其他格式字符必须用小写字母
scanf所用到函数字符参考printf函数字符
字符输入输出函数
- 用putchar函数输出一个字符
一般形式:putchar(c) - 用getchar函数输出一个字符
一般形式:getchar()
四.选择结构程序设计
*if语句的一般形式
持续更新,未完待续···