页数:37页文件大小:843.3 KB来源: C语言程序设计ppt课件
本课件为课程导论部分,先说明教材、参考书、授课方式与课程要求,再从程序设计语言的概念切入,梳理机器语言、汇编语言与高级语言三个发展阶段,进而介绍C语言的发展历史、语言特点与程序结构,最后给出C程序开发步骤与Visual C++上机环境的操作要点。
本页为《C语言程序设计》课程封面,标示课程名称与本课程的主题定位,后续依次展开程序设计基础、数据描述、流程设计、数组、函数、指针、结构体与文件等章节。
教材:谭浩强《C程序设计(第三版)》,清华大学出版社。
补充教材:《基于Visual C++平台的标准C实用程序设计教程》,含基础部分、综合部分、编写设计报告规范及其范例。
参考书:Brian W. Kernighan、Dennis M. Ritchie《The C Programming Language》(Prentice Hall,第2版),被称作C语言「圣经」。
授课方式 Teaching Style:本课程采用四种教学形式相结合。
课程要求 Course Policies:
The only way to learn a new programming language is by writing programs in it. —— Practice, practice, practice!
Why C?
主要应用领域:操作系统与嵌入式系统编程、应用系统编程。
Computer programming is an art form, like the creation of poetry or music. —— Donald E. Knuth [1974]
本页提出学习C语言的前置条件:不需要有编程经验,只要会使用计算机即可开始。
Can you learn C well?
本页以 Are you ready? Yes, I am ready. Let us go! 的问答收束导论部分,提示学习者准备好进入C语言的学习。
第一章 概述 Introduction of C,本章主线:
What is programming language?
ENIAC(Electronic Numerical Integrator and Computer):世界第一台数字电子计算机。
程序设计语言发展的三个阶段:
人与计算机交流的语言层次:Hardware(硬件)— Computer Language / Machine Code(机器码)— Translator(翻译程序,如 Interpreter 解释器或 Compiler 编译器)。
机器语言:用二进制编码表示逻辑电路,特定的0、1序列构成计算机指令集。示例:0000 1001 1100 0110
汇编语言:用助记符号描述指令系统,与机器语言一一对应。示例:start proc far / push ds / mov ax,0(Grace Hopper,1950年代)
高级语言:用自然语言表达计算逻辑。
示例(面向过程的C语言):
#include <stdio.h> main () { printf("Hello world!\n"); }程序设计语言发展谱系(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 等语言的年代分布。
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(美国国家标准学会)制定。
Features of C:
C 被称为相对低级的「中级」高级语言。
关键字 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
流程控制语句 Flow Control Statements:9
if( )~else~for( )~while( )~do~while( )continuebreakswitchgotoreturnC vs. Pascal 语法对照:C 的写法更为简洁优雅。
| 含义 | 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 |
运算符 Operators:34
C 数据类型:
程序三种基本结构:流程图(Flow chart)与 N-S 图对照。
Eg 1.1 Hello,World!
main() { printf("Hello,World!\n"); }Output:Hello,World!
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
练习:求两个整数积
#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 的内存地址单元。
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。
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); }C程序结构特点
C程序开发步骤:编辑 → 编译 → 连接 → 执行。
编译有错则返回修改源程序,连接有错则返回检查目标文件,执行结果不正确则返回修改。
Visual C++ 6.0 —— Run a C program
调试 Debugging(Visual C++ 6.0):
本章小结
下载地址:{{downurl}}
{{{a}}}
{{#b}}{{{b}}}
{{/b}} {{/title}} {{#nolog}}登陆注册
{{/nolog}} {{#djsx}}点我刷新
{{/djsx}} {{#gocz}} {{/gocz}} {{#ffqr}} {{/ffqr}}