C语言教程(C程序设计第三版)——清华大学

本文介绍了C语言的起源,从B语言发展而来,成为UNIX操作系统的重要组成部分,并逐渐普及,形成了ANSI C和ISO C标准。C语言以其简洁、高效、可移植性强等特点受到广泛欢迎。同时,解释了即使有C++,学习C语言的原因在于其面向过程的本质适合初学者,且在特定场景下不可或缺。
摘要由CSDN通过智能技术生成

第1章 C语言概述
1. C语言出现的历史背景

  • C语言是国际上广泛流行的高级语言。
  • C语言是在B语言的基础上发展起来的。
  • B (BCPL)语言是1970年由美国贝尔实验室设计的, 并用于编写了第一个UNIX操作系统,在PDP 7上实现。优点:精练,接近硬件,缺点:过于简单,数据无类型。
  • 1973年贝尔实验室的D.M.Ritchie 在B语言的基础上设计出了C语言,对B取长补短,并用之改写了原来用汇编编写的UNIX,(即UNIX第5版),但仅在贝尔实验室使用。
  • 1975年UNIX第6版发布,C优点突出引起关注。
  • 1977年出现了《可移植C语言编译程序》 ,推动了UNIX在各种机器上实现 ,C语言也得到推广,其发展相辅相成。
  • 1978年影响深远的名著《The C Programming Language》由 Brian W.Kernighan和Dennis M.Ritchie 合著,被称为标准C。
  • 之后,C语言先后移植到大、中、小、微型计算机上,已独立于UNIX和PDP,风靡世界,成为最广泛的几种计算机语言之一。
  • 1983年,美国国家标准化协会(ANSI)根据C语言各种版本对C的发展和扩充,制定了新的标准ANSI C ,比标准C有了很大的发展。
  • 1988年K & R按照 ANSI C修改了他们的《The C Programming Language》。
  • 1987年,ANSI公布了新标准——87 ANSI C。
  • 1990年,国际标准化组织接受了87 ANSI C为ISO C 的标准(ISO9899—1990)。
  • 1994年,ISO又修订了C语言标准。
  • 目前流行的C语言编译系统大多是以ANSI C为基础进行开发的

2. C语言的特点

  • (1)语言简洁、紧凑,使用方便、灵活。 32个关键字、9种控制语句,程序形式自由
  • (2)运算符丰富。34种运算符 。
  • (3)数据类型丰富,具有现代语言的各种数据结构。
  • (4)具有结构化的控制语句 ,是完全模块化和结构化的语言。
  • (5)语法限制不太严格,程序设计自由度大。
  • (6)允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可直接对硬件进行操作。兼有高级和低级语言的特点 。
  • (7)目标代码质量高,程序执行效率高。只比汇编程序生成的目标代码效率低10%-20%。
  • (8)程序可移植性好(与汇编语言比)。基本上不做修改就能用于各种型号的计算机和各种操作系统。
  • 问题:既然有了面向对象的C++语言,为什么还要学习C语言?
  • 解释1:C++是由于开发大型应用软件的需要而产生的,并不是所有的人都要去编写大型软件。
  • 解释2:面向对象的基础是面向过程。C++是面向对象的语言,C是面向过程的,学起来比C语言困难得多,所以不太适合程序设计的初学者。

3. 运行C程序的步骤

 

第2章. 程序的灵魂——算法

1. 计算机算法可分为两大类别:

  • 数值运算算法:求数值解,例如求方程的根、求函数的定积分等。
  • 非数值运算:包括的面十分广泛,最常见的是用于事务管理领域,例如图书检索、人事管理、行车调度管理等。

2. 结构化程序设计

  • 一个结构化程序 就是用高级语言表示的结构化算法。用三种基本结构组成的程序必然是结构化的程序,这种程序便于编写、便于阅读、便于修改和维护。
  • 结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构。
  • 结构化程序设计方法的基本思路是:把一个复杂问题的求解过程 分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。
  • 采取以下方法来保证得到结构化的程序:
    • 自顶向下;
    • 逐步细化;
    • 模块化设计;
    • 结构化编码。

第3章 数据类型、运算符、表达式

  1. C中的数据类型

  2. 常量与符号常量
  • 常量区分为不同的类型:
    • 整型 100,125,-100,0
    • 实型 3.14 , 0.125,-3.789
    • 字符型 'a', 'b','2'
    • 字符串 'a', 'ab','1232'

3. 整型常量表示方法

  • 整型常量即整常数。在C语言中,整常数可用以下三种形式表示:
    • (1)十进制整数。

      如:123, -456.4。

    • (2)八进制整数。以0头的数是八进制数。

      如:0123表示八进制数123,等于十进制数83,-011表示八进制数-11,即十进制数-9。

    • (3)十六进制整数。以0x开头的数是16进制数。

      如:0x123,代表16进制数123,等于十进制数 291。 -0x12等于十进制数-10。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值