首页计算机计算机软件C语言程序设计 01 第一章 程序设计C语言概述.pptx

01 第一章 程序设计C语言概述.pptx

页数:37页文件大小:843.3 KB来源: C语言程序设计ppt课件

本课件为课程导论部分,先说明教材、参考书、授课方式与课程要求,再从程序设计语言的概念切入,梳理机器语言、汇编语言与高级语言三个发展阶段,进而介绍C语言的发展历史、语言特点与程序结构,最后给出C程序开发步骤与Visual C++上机环境的操作要点。

C语言程序设计课程封面,标示课程名称「程序设计基础」与课程主题定位
教材与参考书推荐页,介绍谭浩强《C程序设计》第三版适合初学者的编写特点
参考书《The C Programming Language》介绍页,说明作者为C语言创建者及其精练实用的特点
查看本课件的文字版(共 37 页,供检索与复制)

第1页:程序设计基础课程封面

本页为《C语言程序设计》课程封面,标示课程名称与本课程的主题定位,后续依次展开程序设计基础、数据描述、流程设计、数组、函数、指针、结构体与文件等章节。

第2页:教材与参考书目

教材:谭浩强《C程序设计(第三版)》,清华大学出版社。

  • 适合初学者,难点分散、缩小台阶、循序渐进
  • 生动的比喻,详尽的引导
  • 朴实无华,不追求「高、深、全」

补充教材:《基于Visual C++平台的标准C实用程序设计教程》,含基础部分、综合部分、编写设计报告规范及其范例。

第3页:英文参考书与C语言圣经

参考书:Brian W. Kernighan、Dennis M. Ritchie《The C Programming Language》(Prentice Hall,第2版),被称作C语言「圣经」。

  • 作者是C语言的创建者
  • 实例有用,错误少
  • 精练,适合做参考
  • 单独作教材对入门者有一定困难

第4页:授课方式

授课方式 Teaching Style:本课程采用四种教学形式相结合。

  • Class Room Lectures:课堂讲座
  • Computer Laboratory:上机实验
  • Self Study:自学
  • Tutorials:答疑

第5页:课程学习要求

课程要求 Course Policies:

  • 课前预习
  • 课堂积极思考
  • 作业独立完成,按时提交
  • 注重上机实践

The only way to learn a new programming language is by writing programs in it. —— Practice, practice, practice!

第6页:为什么学习C语言

Why C?

  • 功能强大、应用广泛、通用程序设计语言
  • 就业前景好
  • C++与C一脉相承
  • C编程有趣而富有挑战性

主要应用领域:操作系统与嵌入式系统编程、应用系统编程。

Computer programming is an art form, like the creation of poetry or music. —— Donald E. Knuth [1974]

第7页:学习前的准备

本页提出学习C语言的前置条件:不需要有编程经验,只要会使用计算机即可开始。

第8页:学好C语言的方法

Can you learn C well?

  • C is a very easy Language to learn.
  • Don't Worry, you can get a good score, if you… Practice! Practice! Practice!
  • Excellent!

第9页:课程开篇动员

本页以 Are you ready? Yes, I am ready. Let us go! 的问答收束导论部分,提示学习者准备好进入C语言的学习。

第10页:第一章C语言概述

第一章 概述 Introduction of C,本章主线:

  • 什么是程序设计语言
  • C发展历史
  • C语言特点
  • 你的第一个C程序
  • C程序开发步骤

第11页:第一台计算机ENIAC

What is programming language?

ENIAC(Electronic Numerical Integrator and Computer):世界第一台数字电子计算机。

第12页:程序与程序设计语言

计算机
能够进行计算和逻辑推理的设备;计算机很笨,必须告诉它做什么、怎么做
程序
用计算机能够明白的指令序列告诉计算机如何做,类比 Programming 与 Cooking
程序设计语言
计算机和人之间进行交流的特殊语言

第13页:程序设计语言三阶段

程序设计语言发展的三个阶段:

  • Machine languages 机器语言
  • Assembly languages 汇编语言
  • High-level languages 高级语言

第14页:计算机语言与翻译程序

人与计算机交流的语言层次:Hardware(硬件)— Computer Language / Machine Code(机器码)— Translator(翻译程序,如 Interpreter 解释器或 Compiler 编译器)。

第15页:机器语言

机器语言:用二进制编码表示逻辑电路,特定的0、1序列构成计算机指令集。示例:0000 1001 1100 0110

优点
运行效率高
缺点
面向机器、冗长耗时、难以记忆、修改和调试

第16页:汇编语言

汇编语言:用助记符号描述指令系统,与机器语言一一对应。示例:start proc far / push ds / mov ax,0(Grace Hopper,1950年代)

优点
易于记忆,易于检查、修改
缺点
需要汇编程序翻译,仍然面向机器

第17页:高级语言

高级语言:用自然语言表达计算逻辑。

优点
易于表示复杂计算,与机器无关,具有可移植性
缺点
需要编译程序翻译,运行效率相对较低

示例(面向过程的C语言):

 #include <stdio.h> main () { printf("Hello world!\n"); }

第18页:程序设计语言发展谱系

程序设计语言发展谱系(1952—1996):Ada、ALGOL60、ALGOL68、Pascal、Modula-2、CPL、BCPL、B、C、C++、Java、LISP、PROLOG、COBOL、FORTRAN、PL/1、Simula 67、Smalltalk 80、BASIC、QBASIC、VB 等语言的年代分布。

第19页:C语言发展历史

History of C:ALGOL60(1960)→ BCPL(1967,Cambridge)→ B(1970,Ken Thompson)→ C(1972,D. M. Ritchie,AT&T Bell Labs,PDP-11,用于编写 Unix 操作系统)。

ANSI C 标准由 American National Standards Institute(美国国家标准学会)制定。

第20页:C语言的特点

Features of C:

优点
语言简洁、紧凑、灵活;运算符和数据类型丰富;程序设计结构化、模块化;接近硬件与操作系统;生成目标代码质量高,运行效率高;可移植性好
缺点
类型检查弱、数组越界不检查,编程灵活性与责任并存

C 被称为相对低级的「中级」高级语言。

第21页:C语言关键字32个

关键字 Keywords:32

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

第22页:九种流程控制语句

流程控制语句 Flow Control Statements:9

  • if( )~else~
  • for( )~
  • while( )~
  • do~while( )
  • continue
  • break
  • switch
  • goto
  • return

第23页:C与Pascal语法对比

C vs. Pascal 语法对照:C 的写法更为简洁优雅。

C与Pascal语法对比
含义C语言Pascal
复合语句{ }BEGIN….END
选择语句if(e) s;IF(e) THEN s
定义整型变量int i;VAR i:INTEGER
定义数组int a[10];VAR a:ARRAY[1..10] OF INTEGER
定义函数int f();FUNCTION f():INTEGER
定义指针int *p;VAR p:↑INTEGER
赋值语句i+=2;i=i+2
自增运算i++,++i;i=i+1

第24页:运算符分类一览

运算符 Operators:34

算术运算符
+ - * / % ++ --
关系运算符
< <= == > >= !=
逻辑运算符
! && ||
位运算符
<< >> ~ | ^ &
赋值运算符
= *= /= %= += -= <<= >>= &= ^= |=
其他
条件运算符 ?: 、逗号运算符 , 、指针运算符 * & 、sizeof、强制类型转换 (type)、分量 . -> 、下标 [ ]、括号 ( )

第25页:C语言数据类型体系

C 数据类型:

  • 简单类型:整型(int、short、long、unsigned 系列)、字符型(char、unsigned char)、浮点型(float、double)、枚举类型 enum
  • 构造类型:数组、结构体 struct、共用体 union
  • 指针类型 pointer
  • 空类型 void
  • 定义类型 typedef

第26页:程序三种基本结构

程序三种基本结构:流程图(Flow chart)与 N-S 图对照。

顺序结构 Sequential
A、B 两块依次执行
选择结构 Selection
依据条件 P 的真假分别执行 A 或 B
循环结构 Loop
当 P 为真时重复执行 A

第27页:

第28页:例1.1 Hello,World!程序

Eg 1.1 Hello,World!

main() { printf("Hello,World!\n"); }

Output:Hello,World!

主函数
每个C程序包含一个或多个函数,其中有且只能有一个 main 函数;程序从 main 开始执行
函数体
小括号 ( ) 表示函数,花括号 { } 表示函数开始与结束
语句
函数由一组语句组成,语句以分号 ; 结束;printf 是输出显示的库函数
编译预处理
#include <stdio.h> 将标准输入输出头文件与程序组装后编译

第29页:例1.2 求两个整数和

Eg 1.2 求两个整数和

#include <stdio.h> main() { int a, b, sum; a = 123; b = 456; sum = a + b; printf("Sum is %d\n", sum); }

Output:Sum is 579

声明变量
int a, b, sum; 声明3个整型变量,多个变量用逗号分隔
赋值语句
a=123; 把常量赋给变量
%d
格式字符,指明按有符号十进制整型输出变量 sum
注释
在编译时被忽略,不影响编译后代码长度

第30页:练习:求两个整数积

练习:求两个整数积

#include <stdio.h> main() { int a, b, product; a = 12; b = 5; product = a * b; printf("Product is %d\n", product); }

Output:Product is 60

scanf("%d %d", &a, &b); 是库函数,用于从键盘按十进制整型读入两个数据,并存入变量 a、b 的内存地址单元。

第31页:例1.3 自定义函数求和

Eg 1.3 求任意两个整数之和

#include <stdio.h> main() { int a, b, sum; scanf("%d %d", &a, &b); sum = add(a, b); printf("Sum=%d", sum); } int add(int x, int y) { int z; z = x + y; return(z); }

Output:输入 234 654 → Sum=888

主函数调用 add 函数,x、y 为整型形式参数,返回 z 并赋给 sum。

第32页:C程序书写风格

C程序风格:习惯小写、大小写敏感;无行号,格式自由;使用空行和空格;锯齿型书写格式。

Programming style guide:程序注释、每行一个语句、空行和空格、tab 缩进、每对 { } 对齐、有意义的名字、使用符号常量。

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); }

第33页:C程序结构特点

C程序结构特点

函数与主函数
程序由一个或多个函数组成,是函数式语言;必须有且只能有一个 main();程序从 main 开始、在 main 中结束,其他函数通过嵌套调用执行
程序语句
C程序由语句组成,用 ; 作为语句终止符
注释
为注释,不产生编译代码
编译预处理命令
如 #include,位于程序开头

第34页:C程序开发步骤

C程序开发步骤:编辑 → 编译 → 连接 → 执行。

源程序 f.c
用高级语言编写的程序,不能直接运行;由编辑器创建并存储到磁盘
目标文件 f.obj
源程序经编译后得到的二进制代码,不可执行;编译器做语法检查并翻译成机器代码
可执行文件 f.exe
经连接器与库函数及其他目标程序连接后生成,具有绝对地址,可直接运行

编译有错则返回修改源程序,连接有错则返回检查目标文件,执行结果不正确则返回修改。

第35页:VC++6.0上机操作步骤

Visual C++ 6.0 —— Run a C program

  • Start Up:开始 → 程序 → Microsoft Visual Studio 6.0 → Microsoft Visual C++ 6.0
  • New/Open:File → New/Open → Files 标签 → C++ Source File → 选择 Location 与 File Name → OK
  • Save:文件名后缀用 .C(默认为 .CPP)
  • Compile, Build, Run
  • Close Workspace

第36页:程序调试方法

调试 Debugging(Visual C++ 6.0):

  • Run to Cursor(Ctrl+F10)
  • Insert/Remove Breakpoints(F9)
  • Step Over / Step Into / Step Out
  • Watch 变量监视
  • Stop Debugging

第37页:第一章本章小结

本章小结

  • 了解C语言发展历史及其特点
  • 了解C语言格式及结构特点
  • 掌握C程序开发步骤
  • 掌握 Turbo C 2.0 / Visual C++ 6.0 集成开发环境及C程序上机步骤
顶部目录