计算机语言与C语言概述

Download Report

Transcript 计算机语言与C语言概述

C语言程序设计
主讲教师:李长河
教
材:C程序设计(第四版)谭浩强
院
系:计算机学院
Email:[email protected]
• 听课要求:
切实掌握各章主要内容(预习/听课/消化/归纳)
在预习的基础上,听课为主,笔记为辅,课后弄懂课件和
教材中的程序(会分析,能流利写出)
• 考核方式:
平时成绩(作业、书面/上机、考勤)+考试
说明:
课程主页:
http://cs.cug.edu.cn/teacherweb/lichanghe/pages/teachingRes/
C2012First.html
实验安排:4次(5,7,9,11周),每次4个课时, 星期五7-10节,
具体时间地点待定
第一章
计算机语言与C语言概述
学习目标
•了解计算机语言发展过程
•了解C语言特点
•掌握如何运行C程序
1.1 计算机语言概念
■计算机语言定义
计算机能够识别和接受的语言。
要使计算机按自己的意图工作,必须使
用计算机所能接受、理解和执行的指令
指挥计算机工作。
■计算机语言的种类
机器语言
计
算
机
语
言
低级语言
汇编语言
(面向计算机)
BASIC 入门语言
F77 科学计算
高级语言 Foxpro 数据库管理
(面向问题 ) C
多用途
……
……
•机器语言
最早问世,用二进制代码构成指令。
如: 100000 (+)
110000 (-)
用机器语言编程的缺点:
─繁琐、不直观、不易调试。
如计算y=2x2+3x-1需要七八条指令。
─移植性差。 依赖于计算机。
•汇编语言
用符号构成指令,如:MOV、ADD
用汇编语言编程:
相对直观,但仍繁琐,仍是面向计算
机的语言。
汇编语言是计算机间接接受的语言
•高级语言(非结构化->结构化->面向对象)
与低级语言相比,有根本性的区别:
是面向问题的语言。
高级语言的一条指令(语句):
y=2*x*x+3*x-1; 对应于:y=2x2+3x-1
y=sin(x);
对应于:y=sinx
用高级语言编程:
直观、易懂、移植性好(不依赖于具体计
算机)
1.2
C语言的特点
集高级语言和低级语言的优点于一身:
●能实现低级语言的大部分功能(如直接
访问内存物理地址、进行位操作等)。
●图形功能强。
●运算符和数据结构丰富。
●语法限制不太严格,程序设计自由度大。
●生成目标代码质量高,程序执行效率高。
1.3
简单的C程序介绍
例1:
#include <stdio.h>
int main()
{
主函数说明
程序框架
printf(“abcdef”);
函数体
语句
return 0;
}
程序的功能是输出字符串:abcdef
例2:求两数之和。
main()
{ int a,b,c;
a=100; b=50;
c=a+b;
printf(“\n c=%d”,c);
}
程序运行结果:c=150
a
b
c
100
50
150
例3:求两数中的最大值。 函数类型 函数名 形参
main()
int max (int x,int y)
{ int a,b,c;
{ int z;
scanf(“%d,%d”,&a,&b); if(x>y) z=x;
c=max(a,b);
else
z=y;
printf(“\nmax is:%d”,c);
return(z);
}
}
a
b
c
3
5
5
x
y
z
3
5
5
(两个函数组成)
总结上例可知:
(1) C程序由函数构成。
(2) 函数由两部分组成:
函数说明部分:函数名、函数类型、形
参名、形参类型。
函数体:实现函数的具体操作;由语句
构成。
(3) 程序总是从main函数开始执行。
(4) 书写格式自由。
(5)语句必须有分号:;
C程序的开发过程
开
编
始
程序代码的录入,
生成源程序*.c
编译
语法分析查错,翻译
生成目标程序*.obj
链接
与其它目标程序或库
链接装配,生成可执行
程序*.exe
辑
源程序
file.c
编
编辑
译
有
目 标 程
有错?
序
无
连
接
file.obj
file.exe
可执行
目标程
库函数和
序
其它目标
执
行
执行
程序
不正确
结果正确?
正确
结
束
源程序
目标程序 可执行程序
内容
程序设计语言 机器语言 机器语言
可执行
不可以
不可以
可以
文件名后缀
.c
.obj
.exe
如何学习C语言编程?
• 编程似写作
先学“字词句”和“语法”,目标是“写作”。
学习数据类型、控制结构、语法规则等——学语言基础
掌握程序分析、算法与编程——写文章
• 仅仅读书是不够的
程序是编出来的,程序是调出来 ——在编程实践中消化知识。
• 没有天生的程序员
初学者:有点难。
没有学不会的,只有学不精的——除非自己放弃。
• 循次渐近很重要
阅读/分析程序→摹仿编程→掌握常见程序模块→简单程序→复
杂编程
• 仅是起点,而非终点