高级程序设计语言吴 凡
TEL,83202682
E-mail,cdwf@tom.com
2004-9-15
课程安排
48学时:
24学时,课堂讲授
24学时,上机实验
考核方式:平时作业 + 期末考试
2004-9-15
教材与参考书籍
教材,谭浩强,C程序设计 (第二版 ),清华大学出版社
参考书籍
Brian W,Kernighan,Dennis Ritchie,The
C Programming Language 2nd Ed,清华大学出版社影印
徐宝文 译,C程序设计语言(第 2版 ·新版),
机械工业出版社
2004-9-15
第一章 C语言概述
2004-9-15
计算机基本结构
2004-9-15
计算机基本结构
CPU
(Central Processing Unit )
主存储器运算器控制器外设输入设备输出设备主机计算机
2004-9-15
程序设计语言
程序设计语言:是人和计算机之间交换信息所用的一种工具。
是用来编写计算机程序的工具;
计算机将严格按照程序运行和工作,并提供产生的结果。
即人通过程序的形式向计算机提出服务要求,
计算机按程序自动进行工作
2004-9-15
程序设计语言
程序设计语言包括:
机器语言
汇编语言
高级语言
2004-9-15
机器语言与汇编语言
机器语言:机器语言就是能够被计算机直接识别和执行的机器指令。
机器指令是 CPU提供的基本功能(与计算机体系结构相关)
机器指令是二进制代码
是计算机 唯一 能够 直接执行 的程序语言
编程、阅读程序比较困难
汇编语言:用助记符表示的机器语言,即符号化的机器语言
计算机不能直接执行汇编语言程序,需要转化为机器语言
与计算机体系结构相关
2004-9-15
机器语言与汇编语言
例,X = 10,Y = 17,计算 SUM = X + Y
0A
11
...
A0
00
00
02
06
01
A2
03
00
F4
00 DATA SEGMENT
X DB 10
Y DB 17
SUM DB 0
DATA ENDS
...
MOV AL,X
ADD AL,Y
MOV SUM,AL
HLT
机器语言程序 汇编语言程序
2004-9-15
高级( programming,程序设计)语言
高级语言:又称为算法语言,是一种接近于自然语言的计算机程序设计语言。
这种语言通常由:基本字符集,词法规则,语法规则,语义规则等构成。
一般由两部分内容组成:
对数据的描述
对处理过程(操作)的描述
独立于计算机体系结构
计算机不能直接执行高级语言程序,需要转换
(高级语言程序 → 汇编程序 → 机器指令 )
2004-9-15
高级( programming,程序设计)语言
例,X = 10,Y = 17,计算 SUM = A + B
DATA SEGMENT
A DB 10
B DB 17
SUM DB 0
DATA ENDS
...
MOV AL,A
ADD AL,B
MOV S,AL
HLT
汇编语言程序
...
int A,B,SUM;
A = 10;
B = 17;
SUM = A + B;
...
C语言程序
2004-9-15
高级(程序设计)语言
高级程序语言与自然语言自然语言 程序设计语言人与人信息交流的工具
(人具有思维、推理能力)
人-机对话的工具
(计算机具有计算与逻辑判断的能力)
语法规则灵活(可以省略,颠倒) 严格遵循语法规则表达方式多样 算法多样
2004-9-15
高级( programming,程序设计)语言
源程序(高级语言成语)“转换”成目标程序
(机器指令)的方法:
编译方式:将源程序一次性地转换成等价的目标程序。此后,可以多次直接运行这个目标程序。
翻译方式,"运行 "源程序的 "当时 "逐个语句地进行 "翻译 "并立即 "运行 "这一句的功能,直到最后一个语句为止
2004-9-15
编译方式与翻译方式
编译方式:
翻译方式
2004-9-15
C语言的历史
C语言产生与 UNIX操作系统( Operating
System)密切相关
标准化
1983年,美国标准化组织( ANSI,American
National Standards Institute)成立 C语言工作小组,发表 C语言标准,ANSI C
1987年,ANSI发表新的 C语言标准,87 ANSI
C
1989年,国际标准化组织( ISO,International
Standardization Organization)接纳 ANSI C,
标准,发表 ISO C标准
2004-9-15
C语言的特点
语言简洁、紧凑,使用方便、灵活( 32个关键字,9中控制语句)
运算符丰富( 34种表达式)
丰富的数据类型
结构化的控制语句,程序模块化(函数是基本模块)
语法限制不严格,程序设计自由度大
能够进行位操作(即对存储单位进行操作)
高效率的目标代码
可移植性好(与汇编比较)
2004-9-15
"Hello,world"
例 1,Hello,world”? C程序是由函数( function)和变量组成( variable)
main函数:
C程序总是从 main函数开始执行代码
在 main函数中调用其它函数来完成相应的工作
,其它函数,,
用户自行编写的函数
库函数( library functions)
函数之间通信的一种方式是:调用者提供一组参数 (arguments)
给被调用函数
#include <stdio.h>
main()
{
printf("hello,world\n");
}
函数名 参数表
2004-9-15
"Hello,world"
printf函数是一个库函数的参数
,hello,world\n,,字符串 (character string/string
constant)
\n,
由 \开头的字符:用于表示难于输入、特殊的控制字符
换行符( newline
character )
#include <stdio.h>
main()
{
}
printf("hello,world\n");
函数名
2004-9-15
#include <stdio.h>
int max(int x,int y);
main()
{
int a,b,c; /*announcement,variables defination*/
scanf("%d%d,",&a,&b); /*input the value of a and b*/
/*call max function,get the result,and assign it to c*/
c = max(a,b);
printf("max = %d\n",c); /*output the value of c*/
return;
}
/*define max function,function value is integer*/
int max(int x,int y)
{
int z;
if (x > y)
z = x;
else
z = y;
return (z);
}
例 2 比较两个整数的大小,输出其中较大的数
2004-9-15
“Hello,world”
C程序的格式
一条语句 (statement)占一行;
运算符之间应用空格 (blanks)分割;
语句缩进 (indentation),4个空格 /一个 tab的举例,
突出程序的逻辑结构
{ }(braces)位置
函数定义:均置与行首
其余情况:
{在行尾
}在行首
2004-9-15
C程序上机步骤 编辑开始编译连接执行有错?
结果正确?
结束无有无有源程序
f.c
目标程序
f.o
库函数和其他目标程序可执行目标程序
f.exe
2004-9-15
主要内容
第一章 C语言概述
第二章 算法概述
第三章 数据类型、运算符与表达式
第四章 顺序程序设计
第五章 选择结构程序设计
第六章 循环控制
第七章 数组
第八章 函数
第九章 预处理命令
第十章 指针
第十一章 结构与共同体