首页?C语言教学?幻灯片版?第一章
C语言发展历史
C语言特点
C程序格式和结构特点
C程序上机步骤第一章 C语言概述首页?C语言教学?幻灯片版?第一章
– 程序设计语言的发展机器语言汇编语言高级语言面向过程面向对象
CPU指令系统,由 0,1序列构成的指令码组成如,10000000 加
10010000 减用助记符号描述的指令系统如 ADD A,B
面向机器的语言程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类派生对象冯,诺依曼结构,
计算机运算器控制器存储器主机:
I/O设备:键盘、显示器等中央处理器 CPU
>>
1.1 C语言发展历史
52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96
Ada
ALGOL60 ALGOL68
Pascal
Modula-2
CPLBCPL B C
C++
Java
LISP
PROLOG
COBOL
FORTRAN77FORTRAN
PL/1
Simula 67
Smalltalk 80
BASIC ANSI-BASIC QBASIC VB
FORTRAN90
< >
首页?C语言教学?幻灯片版首页?C语言教学?幻灯片版?第一章
产生背景
产生过程
– 时间,1972~1973
– 地点,美国贝尔实验室
– 目的,UNIX操作系统
– 设计人,Ken.Thompson和 Dennis.M.Ritchie
C标准
– 标准 C,K&R合著,The C Programming Language》
– ANSI C,1983年
– 87 ANSI C,1987年
– 1990年国际标准的 ANSI C
< >
C语言发展过程首页?C语言教学?幻灯片版?第一章
– 语言简洁、紧凑、灵活
– 运算符和数据类型丰富
– 程序设计结构化、模块化
– 生成目标代码质量高
– 可移植性好
< >
> > >
>>
中级语言
>
1.2 C语言特点首页?C语言教学?幻灯片版?第一章
,(由系统定义,不能重作其它定义 )
auto break case char
const
continue default do double else
enum extern float for goto
if int long register
return
short signed sizeof static
struct
switch typedef unsigned union void
volatile while
<
32个关键字首页?C语言教学?幻灯片版?第一章
if( )~else~
for( )~
while( )~
do~while( )
continue
break
switch
goto
return
<
9种控制语句首页?C语言教学?幻灯片版?第一章算术运算符,+ - * / % ++ --
关系运算符,< <= == > >= !=
逻辑运算符:! && ||
位运算符,<< >> ~ | ^ &
赋值运算符,= 及其扩展条件运算符,?:
逗号运算符:,
指针运算符,* &
求字节数,sizeof
强制类型转换,(类型)
分量运算符,,->
下标运算符,[]
其它,( ) -<
34种运算符:
首页?C语言教学?幻灯片版?第一章基本类型构造类型指针类型空类型 void
定义类型 typedef
数值类型字符类型 char
枚举类型 enum
整 型浮点型单精度型 float
双精度型 double
短整型 short
长整型 long
整型 int
数组结构体 struct
共用体 union
<
C 数据类型:
首页?C语言教学?幻灯片版?第一章例 1.1 第一个程序 Hello,World!
/* example1.1 The first C Program*/
#include <stdio.h>
main()
{
printf(“Hello,World!”);
}
>
注释编译预处理函数语句输出:
Hello,World!
1.3 C程序格式和结构特点首页?C语言教学?幻灯片版?第一章/* example1.1 calculate the sum of a and b*/
#include <stdio.h>
/* This is the main program */
main()
{ int a,b,sum;
a=10;
b=24;
sum=add(a,b);
printf(”sum= %d\n",sum);
}
/* This function calculates the sum of x and y */
int add(int x,int y)
{ int z;
z=x+y; return(z);
}
运行结果:
sum=34
函数语句预处理命令注释
>
例 1.2
首页?C语言教学?幻灯片版?第一章
习惯用小写字母,大小写敏感
不使用行号,无程序行概念
可使用空行和空格
常用锯齿形书写格式
< >
main( )
{ ……………….
………………
…………..
…………..
………
……….
……………
…………….
……………….
………………..
}
main( )
{
int i,j,sum;
sum=0;
for(i=1; i<10;i++)
{
for(j=1;j<10;j++)
{
sum+=i*j ;
}
}
printf(“%d\n”,sum);
}
优秀程序员的素质之一,
使用 TAB缩进
{}对齐
有足够的注释
有合适的空行格式特点首页?C语言教学?幻灯片版?第一章
函数与主函数
– 程序由一个或多个函数组成
– 必须有且只能有一个主函数 main()
– 程序执行从 main开始,在 main中结束,其它函数通过嵌套调用得以执行。
程序语句
– C程序由语句组成
– 用,;”作为语句终止符
注释
– /* */为注释,不能嵌套
– 不产生编译代码
< >
例,/*This is the main /* of example1.1*/ */
非法
编译预处理命令结构特点编辑链接编译执行
C程序开发步骤
< >
开 始编 辑编 译连 接执 行有错?
结果正确?
结 束有源程序
f i l e,c
目标程序
f i l e,obj
库函数和其它目标程序可执行目标程序无正确不正确
file.exe
程序代码的录入,
生成源程序 *.c
语法分析查错,翻译生成目标程序 *.obj
与其它目标程序或库链接装配,生成可执行程序 *.exe
′ 3ì Dò ±ê 3ì Dò?é?′ D 3ì Dò
ú èY 3ì Dò éè óú óú ó
é?′ D 2é ò? 2é òé ò?
t oó ×,c,o b j,e x e
1.4 C程序的上机步骤
C语言发展历史
C语言特点
C程序格式和结构特点
C程序上机步骤第一章 C语言概述首页?C语言教学?幻灯片版?第一章
– 程序设计语言的发展机器语言汇编语言高级语言面向过程面向对象
CPU指令系统,由 0,1序列构成的指令码组成如,10000000 加
10010000 减用助记符号描述的指令系统如 ADD A,B
面向机器的语言程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类派生对象冯,诺依曼结构,
计算机运算器控制器存储器主机:
I/O设备:键盘、显示器等中央处理器 CPU
>>
1.1 C语言发展历史
52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96
Ada
ALGOL60 ALGOL68
Pascal
Modula-2
CPLBCPL B C
C++
Java
LISP
PROLOG
COBOL
FORTRAN77FORTRAN
PL/1
Simula 67
Smalltalk 80
BASIC ANSI-BASIC QBASIC VB
FORTRAN90
< >
首页?C语言教学?幻灯片版首页?C语言教学?幻灯片版?第一章
产生背景
产生过程
– 时间,1972~1973
– 地点,美国贝尔实验室
– 目的,UNIX操作系统
– 设计人,Ken.Thompson和 Dennis.M.Ritchie
C标准
– 标准 C,K&R合著,The C Programming Language》
– ANSI C,1983年
– 87 ANSI C,1987年
– 1990年国际标准的 ANSI C
< >
C语言发展过程首页?C语言教学?幻灯片版?第一章
– 语言简洁、紧凑、灵活
– 运算符和数据类型丰富
– 程序设计结构化、模块化
– 生成目标代码质量高
– 可移植性好
< >
> > >
>>
中级语言
>
1.2 C语言特点首页?C语言教学?幻灯片版?第一章
,(由系统定义,不能重作其它定义 )
auto break case char
const
continue default do double else
enum extern float for goto
if int long register
return
short signed sizeof static
struct
switch typedef unsigned union void
volatile while
<
32个关键字首页?C语言教学?幻灯片版?第一章
if( )~else~
for( )~
while( )~
do~while( )
continue
break
switch
goto
return
<
9种控制语句首页?C语言教学?幻灯片版?第一章算术运算符,+ - * / % ++ --
关系运算符,< <= == > >= !=
逻辑运算符:! && ||
位运算符,<< >> ~ | ^ &
赋值运算符,= 及其扩展条件运算符,?:
逗号运算符:,
指针运算符,* &
求字节数,sizeof
强制类型转换,(类型)
分量运算符,,->
下标运算符,[]
其它,( ) -<
34种运算符:
首页?C语言教学?幻灯片版?第一章基本类型构造类型指针类型空类型 void
定义类型 typedef
数值类型字符类型 char
枚举类型 enum
整 型浮点型单精度型 float
双精度型 double
短整型 short
长整型 long
整型 int
数组结构体 struct
共用体 union
<
C 数据类型:
首页?C语言教学?幻灯片版?第一章例 1.1 第一个程序 Hello,World!
/* example1.1 The first C Program*/
#include <stdio.h>
main()
{
printf(“Hello,World!”);
}
>
注释编译预处理函数语句输出:
Hello,World!
1.3 C程序格式和结构特点首页?C语言教学?幻灯片版?第一章/* example1.1 calculate the sum of a and b*/
#include <stdio.h>
/* This is the main program */
main()
{ int a,b,sum;
a=10;
b=24;
sum=add(a,b);
printf(”sum= %d\n",sum);
}
/* This function calculates the sum of x and y */
int add(int x,int y)
{ int z;
z=x+y; return(z);
}
运行结果:
sum=34
函数语句预处理命令注释
>
例 1.2
首页?C语言教学?幻灯片版?第一章
习惯用小写字母,大小写敏感
不使用行号,无程序行概念
可使用空行和空格
常用锯齿形书写格式
< >
main( )
{ ……………….
………………
…………..
…………..
………
……….
……………
…………….
……………….
………………..
}
main( )
{
int i,j,sum;
sum=0;
for(i=1; i<10;i++)
{
for(j=1;j<10;j++)
{
sum+=i*j ;
}
}
printf(“%d\n”,sum);
}
优秀程序员的素质之一,
使用 TAB缩进
{}对齐
有足够的注释
有合适的空行格式特点首页?C语言教学?幻灯片版?第一章
函数与主函数
– 程序由一个或多个函数组成
– 必须有且只能有一个主函数 main()
– 程序执行从 main开始,在 main中结束,其它函数通过嵌套调用得以执行。
程序语句
– C程序由语句组成
– 用,;”作为语句终止符
注释
– /* */为注释,不能嵌套
– 不产生编译代码
< >
例,/*This is the main /* of example1.1*/ */
非法
编译预处理命令结构特点编辑链接编译执行
C程序开发步骤
< >
开 始编 辑编 译连 接执 行有错?
结果正确?
结 束有源程序
f i l e,c
目标程序
f i l e,obj
库函数和其它目标程序可执行目标程序无正确不正确
file.exe
程序代码的录入,
生成源程序 *.c
语法分析查错,翻译生成目标程序 *.obj
与其它目标程序或库链接装配,生成可执行程序 *.exe
′ 3ì Dò ±ê 3ì Dò?é?′ D 3ì Dò
ú èY 3ì Dò éè óú óú ó
é?′ D 2é ò? 2é òé ò?
t oó ×,c,o b j,e x e
1.4 C程序的上机步骤