C语言程序设计(一)
- 程序设计基本概念
程序:为完成特定的工作目标而编写出来的一系列有序的指令的集合;
源程序:由高级语言编写的程序称为源程序;
目标程序:由二进制代码表示的程序,扩展名为.obj;
可执行程序:在操作系统环境下可直接运行的程序,扩展名为.exe;
编译程序:把高级语言编写的源程序翻译成目标程序;
连接程序:把目标程序与库函数连接起来生成一个可执行程序;
高级语言编译连接→可执行程序(.exe)
高级语言解释编译→目标程序(.obj)
🔺注:.obj文件是程序编译时生成的中间代码文件,目标文件一般是编译程序后的二进制文件,再通过链接器和资源文件就可以生成可执行文件.obj,目标文件只给出了程序的相对地址,而可执行文件是绝对地址。
- 算法及其表示方法
算法:为解决特定问题而采取的确定且有限的步骤;
算法的五个特征:
+有穷性:一个算法必须保证执行有限步之后结束;(算法程序的运行时间是有限的)
+确定性:算法的每一条指令必须有确切的含义,不能有二义性;(每一条指令都有单独的含义)
+可行性:算法中描述的操作都可以通过有限次的执行已经实现的基本算法来实现;
+输入:一个算法应该有零个或多个输入;(可以没有输入)
+输出:一个算法应该有一个或多个输出;(但一定要有输出)
- 结构化程序设计
一个结构化程序设计就是用高级语言表示的结构化算法。结构化程序设计通常采用“自顶向下、逐步细化、模块化设计、结构化编码”的方法;
结构化程序由顺序结构、选择结构和循环结构三种基本结构组成;
程序设计的一般步骤:分析问题→确定算法→编写程序→调式程序;
- C语言程序
C语言是编译型语言,编写的源程序必须经过编译、连接后,生成可执行文件才能运行;
源程序:
#include<stdio.h>
main( )
{
int a,b,c; /*定义变量a,b,c*/
a=2;b=3; /*给变量赋值*/
c=a+b; /*将a与b的值赋给c*/
printf(“a=%d,b=%d,c=%d\n”,a,b,c); /*输出变量a,b,c的值*/
}
C语言的结构特征:
+函数是构成C语言程序的基本单位,即C语言的源程序是由函数组成,组成程序的若干函数中必须有且只能有一个名为main( )的主函数。各函数的位置无关紧要,C程序总是从main( )开始执行的;
+函数名后必须有一对圆括号“(”和“)”,这是函数的标志;
+函数必须由“{ ”开始,由“}”结束,将函数后面用一对花括号“{ }”括起来的部分称为函数体;函数体通常由定义部分和执行部分组成;
+程序中的每个语句必须以分号“;”结束,但预处理命令、函数头之后不能加分号;
+程序的注释部分应放在“/*”与“*/”之间,且“/”和“*”之间不能有空格,可在程序的任何部分加注释,对编译和运行不起作用,以提高程序的可读性,注释可以为若干行,但不可以嵌套;
+C程序书写格式自由,一行内可写几个语句,一个语句也可以写在多行上,用“\”作连续符;
+预处理命令以“#”开始;
- 标识符、常量、变量及其基本类型
标识符的命名规则:
+标识符只能由字母、数字和下划线组成,且首字符必须是字母或下划线;
+标识符区分大小写,因此在编写程序是要书写规范;
+用户标识符不可与关键字相同;
标识符的分类:
+关键字:C语言规定了一些专用的标识符,它们有着固定的含义;
如下表:常用的关键字
auto |
break |
case |
char |
const |
continue |
default |
double |
else |
enum |
extern |
float |
for |
goto |
int |
long |
register |
return |
short |
signed |
sizeof |
do |
if |
static |
struct |
switch |
typedef |
union |
unsigned |
void |
volatile |
while |
+预定义标识符:这类标识符在C语言中和关键字一样也有特定的含义,分别为:
++库函数的名字,EG:printf;
++预编译处理命令,EG:define;
与关键字的最大区别:C语言语法允许用户更改预定义标识符的作用,但这将使这些标识符失去系统规定的原来意思,建议用户不随便更改预定义标识符;
+用户标识符:由用户根据需要定义的标识符就是用户标识符,一般给变量、函数、数组或文件等命名,选择变量名和其他标识符时,应注意做到“见名知意”,这样对提高程序可读性和可维护性很重要;
常量:值不能被改变的量;
常量的五种类型:
+整型:十进制、八进制(0)和十六进制(0x);
+实型:
++小数:由数字和小数点组成,书写时,小数点不可省略;
++指数:由字母e或E连接两边的数字组成,字母e或E前面必须有数字,后面必须是整数,且数字和e或E之间没有空格;
+字符:一个字符常量代表ASCII码字符集里的一个字符,占一个字节,在程序中用单引号括起来,以便区分;
【注】
+单引号中的大写字母和小写字母代表不同的字符常量;
+字符常量在机器内以整型常量的形式存放,数值为该字符的ASCII码值;
+C语言的特殊字符常量之转义字符:如下表:转义字符及其含义
字符形式 |
功能 |
\n |
换行(将当前位置移动到下一行开头) |
\t |
横向跳格(代表“tab”键) |
\v |
竖向跳格 |
\b |
退格(代表“backspace”键) |
\r |
回车(将当前位置移动到本行开头) |
\f |
走纸换页 |
\\ |
反斜杠字符“\” |
\’ |
单引号字符“ ‘ ” |
\ddd |
1~3位八进制数所代表的一个ASCII码 |
\xhh |
1~2位十六进制数所代表的一个ASCII码 |
\0 |
空字符 |
\” |
双引号(撇号)字符 |
+字符串:用双引号括起来的一个或一串字符,字符用单引号,字符串用双引号;
+符号:由预处理命令“#define”定义的常量,在C程序中可用标识符代表一个常量;EG:#define PI 3.14→用3.14代替程序中所有的PI;
变量:值可以改变的量;变量要有变量名,在内存中占据一定的存储单元,存储单元里面存放的是该变量的值,在C语言中,使用变量必须遵循“先定义,后使用”的原则;变量在参加运算前一定要有初始值,为变量预置初始值有初始化和赋初值两种形式;
++变量初始化:定义变量时预置其初始数据;
++变量赋初值:定义变量后再使用之前进行的赋值操作;
初始化:int x=1,y=2;
赋初值:int x,y;
x=1,y=2;
🔺不同类型的变量,其存储单元的大小也不同;
+整型:基本型(int)、短整型(short int或short)、长整型(long int或long)和无符号型(unsigned int,unsigned short,unsigned long);
如下表:整型数据的字节长度和取值范围
关键字 |