收藏 分享(赏)

C语言程序设计aa.docx

上传人:幼儿教育老师 文档编号:21763629 上传时间:2024-04-23 格式:DOCX 页数:267 大小:623.92KB
下载 相关 举报
C语言程序设计aa.docx_第1页
第1页 / 共267页
C语言程序设计aa.docx_第2页
第2页 / 共267页
C语言程序设计aa.docx_第3页
第3页 / 共267页
C语言程序设计aa.docx_第4页
第4页 / 共267页
C语言程序设计aa.docx_第5页
第5页 / 共267页
亲,该文档总共267页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、高等财经 专科学校 试用教材C语 言 程 序 设 计褚东升主编东北财经大学出版社图书在版编目 ( C I P ) 数据C 语言程序设计/ 褚东升主编 .-大连 : 东 北财经 大学 出 版社 , 1996 .12高等财经专科学校试用教材ISBN 7-81044-169-8 .CII .褚II I .C 语 言-程序 设计-高 等学校 : 专 业 学校-教材 .T P312 C中国版本图书馆 CIP 数据核字 (96) 第 18799 号高等财经专科学校试用教材C 语言程序设计C Yuyan Chen gxu Sheji1996 年 12 月第 1 版1996 年 12 月第 1 次印刷褚东升主

2、编责任编辑 : 郭洁 责任校对 : 孙萍出 版 者 : 东北财经大学出版社 地址 : 大连黑石礁 邮政编码 : 116025制版 : 大连斯达电脑开发公司 印刷 :开本 : 85011681/ 32印张 : 8 1/ 2字数 : 213 000印数 : 15 000ISBN 7-81044-169-8/ T30定价 : 12 .00 元前言为适应高等财经专科 学校 会计电 算化 专业教 学的 需要 , 根 据 财政部颁布的财政 ( 经 ) 普通专科会计电算 化专业教 学方案, 财 政部培训中心组织编写了会计电算化专业系列教材。本系列教材 包括 :计算机基础、微型机原理与汇编语言、应用软件与信息

3、 安全维护、C 语 言程 序设 计、F OXB ASE + 关系 数据 库 系统、管理信息系统、会计 电算 化应 用等七 本。该系 列教材 不仅 适 合于三年制大专会计电算化专业教学使用 , 也适合于 成人教育 及 从事会计电算化工作人员学习参考。C 语言程序设计由 山东 财政 学 院褚 东升 主编 , 并负 责对 全 书的修订、总纂和定稿。 全书写 作分 工如 下 : 第 一、七 章由 山东 财 政学院褚东升编写 , 第 二、三 章由 江苏 财政专 科学 校吴 丹国 编写 , 第四、六章由山东财政 学院曲 吉林 编写 , 第五、八 章由 河南 财税 高 等专科学校董汉丽编写。在编写本书过程中

4、 , 我 们得到 了财 政部 培训中 心 和兄 弟院 校 的大力支持 , 山东财政学院的聂培尧教授在 本书最初 的体系安 排 及大纲编写等方面做了大 量的 工作 , 曲吉 林副 教授在 本书 的校 稿 中也做了大量的工作 , 在此表示衷心感谢 !本书及配套的教学大纲 , 已由 财政 部教 材编审 委 员会 组织 的 专家评审通过。本书由中央财经大学潘省初教授主审。潘省初教授对全书提 出了不少有益建议 , 在此深表谢意 !编者1996 年 6 月内容 提要本书详细介绍了 C 语 言的 基本 概念 和 用 C 语言 进 行结 构 化 程序设计的方法 , 并配有大量的程序实例 , 说明了各种语法现象

5、的 特点及使用中应注意的事项。每章后均附有习题。本书的特点是从 介 绍 基 础知 识 入 手 , 采 用 深 入 浅 出、循 序 渐 进、逐步求精的程序开发技术介绍程序开发过程。本书体系合理 , 概念清晰 , 注重程序设计能力的训练。本书可作为大中专院校 程序设 计课 程的教 材和 教 学参 考书 , 也可作为计算机培训班的教材或参考书及计算机有关专业的程序 设计课程的自学用书。编审说明本书是全国 财 经 类通 用 教 材。经 审 阅 , 我 们 同意作为高等财经专科学校试用教材出版。书中 不足之处 , 请读者批评指正。财政部教材编审委员会1996 年 8 月 29 日目录3目录第一章C 语言

6、概述11.1C 语言的发展与特点11.2C 语言的基本符号41.3简单的数据输入输出61.4C 语言的程序结构141.5C 语言程序的上机步骤16第二章基本数据类型、运算符和表达式212.1C 语言的数据类型212.2常量和变量222.3整型数据252.4实型数据272.5字符型数据292.6变量的初始化322.7运算符与表达式33第三章程序控制语句493.1结构化程序设计概念及C 语句493.2顺序结构533.3分支结构563.4循环结构663.5辅助语句733.6程序举例76第四章数组844.1数组的基本概念844.2一维数组854.3字符数组894.4多维数组924.5程序举例97第五章

7、程序的构造及函数1025.1C 语言的组成1025.2C 语言的函数1065.3函数的参数1115.4函数的调用1225.5程序编译预处理134第六章结构与联合1426.1结构1426.2联合1566.3位字段1616.4枚举类型1636.5用 T ypedef定义类型167第七章指针1717.1指针的概念1717.2变量的指针与指针变量1727.3指针与数组1817.4指针与函数1967.5指针与结构207第八章文件及库函数的使用2228.1C 语言文件的概述2228.2标准输入输出函数2238.3标准设备文件及 I/ O 改向2278.4缓冲型文件输入输出系统2308.5非缓冲型文件输入输

8、出系统253参考资料261第一 章C 语 言概 述语言是一种通用性程 序设计 语言 , 它 既具 有高 级 语言 特点 , 又具有低级语言特点的特性。随着计算机的广 泛应用 , C 语 言在各个领域的应用也 越来越 广泛。 现在 , 几乎 在各 种型 号的 微 型机和大、中、小型计算机上都配有 C 语言编译系统。 C 语言已广 泛用于描述系统软件、数据处 理、科学 工程数 值计 算等 多个 领域 ,深受专业工作者和广大用户的欢迎。1 .1C 语 言的发展与 特点一、C 语言的发展早期的操作系统等系统 软件主 要是 用汇编 语言 编 写的 , 它 依 赖于计算机硬件 , 程序的可读性和可移植性都

9、很差。为此 , 人们努 力寻求一种程序语言 , 使它既具有高级语言的特性 , 能够编写可读 性高、便于移植的程序 , 改善 编写 程序 的环境 ; 又 具有 某些 必要 的 汇编语言特性 , 能描述对硬件的操作。例如能对内存地址的操作、 对位的操作、对字的移 位操作 及 对寄 存器 的操 作等。 C 语 言就 是 在人们寻找集高级语言和汇编语言优点于一身的高级语言过程中 产生的。C 语言的前身是英国剑桥大学的 Mar tin R ich ards 在 60 年 代 开发 的 BC PL 语 言 ( Basic Combined Progr amming La ngu age ) 。 1970

10、年 , 美国 贝 尔 实 验 室 的 Ken T hompson 以 BC PL 语 言 为 基 础 , 开发了简单的、接近硬件的 B 语言 ( 取 BC PL 的 第一 个字符 ) ,第一章C 语言概述9并用 B 语言编写了 U N IX 操作 系统 和 大量 的 实用 程 序。但 是 由 于 B 语言是一种无类型面向机 器字 的语言 , 所 以在 描述各 种数 据 结构时是很困难的。另外 , 由于 B 语言 最后产 生的 是解释 执行 代 码 , 运行速度 较慢 等 原因 而 未能 流 行。 此后 , 美 国 贝尔 实 验 室 的 De nnis M .Ritchie 对 B 语言作了进一

11、步的充实和完善 , 于 1972 年 推出了一种新型的程序设计语言 C 语言。随着 U N IX 操作系 统在国际上的广泛流行 , C 语言已被人们所接受 , 并在各种型号 的 微型机和大、中、小 型计 算机 上都 配有 C 语言 编译 系 统。目 前 , C 语言已风靡全球 , 成为世 界上 应用最 广泛 的计 算机程 序设 计语 言 之一。1978 年 , Brian Kernigh an 和 Denni s M .Ritchie 合 作 编 写 了 经典著作T he C P rogra mmi ng La nguag e, 它是目前所 有 C 语 言 版本的基础。1983 年 , 美国国

12、家标准 化协 会 ( A NSI ) 对 C 语言 的 各种版本作了扩充和完善 , 制定 了 C 语言 的标准 , 称 为 A NSI C 。 本书以 T urbo C 为线索介绍了 C 语言的 特点 和编 程技术 , T urbo C 完全是按照 ANSI 的 C 语 言标准 实施 的 , 它是一 种 快速 高效 的 编译程序。 T ur bo C 不仅提供 了一 个 集成 开发 环境 , 同时 还按 传 统方式提供了一个命令行编译程序版本 , 以满足不同用户的需要。在 C 语 言 的 基 础 上 , 1983 年 又 由 贝 尔 实 验 室 的 Bja rne Strous t rup 推

13、出了 C + + 。C + + 进一步扩充和完善了 C 语言 , 成 为一种面向对象的程序设计语言。 C + + 提出 了一 些更为 深入 的 概念 , 它所支持的这些面 向对 象的概 念容 易将 问题空 间直 接地 映 射到程序空间 , 为程序员 提供 了一种 与传 统结 构程序 设计 不同 的 思维方式和编程方法。因而 也增 加了 整个语 言的 复杂 性 , 掌握 起 来有一定的难度。但是 , C 语 言是 C + + 的 基础 , C + + 语 言 和 C 语言在很多方面是兼容的。因此 , 掌握了 C 语言 , 再进一步学习 C+ + 就能以一种熟悉的语 法来 学习面 向对 象的语 言

14、 , 从而 达到 事 半功倍的目的。本书以目前较为流行的 T urbo C 2 .0 为开 发环境 , 介 绍 C 语 言及其程序设计。二、C 语言的特点C 语言具有多方面的特点 , 其主要特点有以下几个方面 :( 一 ) C 语言不但具有高级语言 的特点 , 而且 还具有低 级语 言 的特征 , 它允许直接访问地址 , 能进行 位 ( Bit ) 运算 , 能实 现汇编 语 言大部分功能 , 可以直接对硬件进行操作。( 二 ) 语言简洁、紧凑 , 使用方便、灵活。用 C 语言编写的程 序 通常比用其它高级语言 编写的 程序 更简练 , 代 码行 少。语 言的 许 多成分都通过函数调用完 成

15、, 使 得编 译程 序小 而精。 C 语 言没 有 提供 I/ O 操作、并行操作、同步 或协 同程序 等复 杂控制 , 而 是提 供 了大量而有效的库函数来实现输入/ 输出、字符串处理及存贮分配 操作等功能。 C 语言运行 时所 要求 的 支持 少 , 所以 占 内存 空间 也 少。( 三 ) 丰富的运算能力。 C 语言的 运算符 包含的 范围很 广泛 , 共有 34 种运算符。除一 般高级 语言 使用 的 + 、- 、* 、/ 四 则运 算 及与 ( AND ) 、或 ( O R) 、非 ( NO T ) 等 逻辑运 算功能外 , 还可 以实 现 以二进制位 ( bit ) 为单 位的 位

16、与 ( & ) 、位 或 ( | ) 、位 非 ( ) 、位 异 或 () 以及移位 ( 、 ) 等位运算 , 并且 具有如 a + + 、b-等单 项 运算和 + = 、- = 、* = 、/ = 等复合运算功能。( 四 ) 丰富的数据 类型。 C 语 言 能在 字 符、整 数、浮 点数 等 基 本类型的基础上 , 按层次逐层构造各种构造类型 , 如数组、指针、结 构、联合等 , 能用来实现各 种复 杂 的数 据结 构。因 此 , C 语 言具 有 较强的数据处理能力。( 五 ) 结构化构造语言。 C 语言是 一种结 构化程 序设计 语言 , 即程序的逻辑结构 , 可 以用顺 序、分支 和循

17、环 三种 基本 结构 组成。 C 语 言 具 有 结 构 化 控 制 语 句 , 如 ifelse、 w hile、dow hile、 s witch、for 等 , 十分便于采用由顶向下、逐步求 精的结构 化程序 设计方法。因此 , 用 C 语 言 编制 的 程序 具 有 容易 理 解、便 于维 护 等 优点。( 六 ) 模块化的构 造语 言。 C 语言 程序 的 函 数结 构 十分 有 利 于把整体程序分割成若干 个相 对独立 的功 能模块 , 并 且在 程序 间 的相互调用、数 据 传递 和 数据 共 享方 面 提 供了 十 分 有 效 的手 段。 这一特点为把大型软件模 块化、对由 多

18、人 同时 进行集 体性 开发 的 软件工程提供了强有力的支持。( 七 ) 预处理能力。 C 语 言中 提 供了 # include 和 # defin e 等 编译预处理语句 , 能进行字符串或特定参数的宏定义 , 以及实现对 外部文本文件的读取和合并。同时还具有 # if、# else 等条件编 译 预处理语句。这些功能的使 用提 高了 软件开 发的 工作 效率 , 并 为 程序的组织和编译提供了便利。( 八 ) 可移植性 好。程序 的 可移 植性 是指 在一 个 环境 上运 行 的程序可以不加或稍加改 动后 在另一 个完 全不同 的环 境上 运行。 汇编语言是依赖于机器硬件的 , 用汇编语

19、言编写的程序不可移植。 而一些高级语言 , 它 们从 一种 机器 搬 到另 一种 机器 上 , 基 本上 都 要根据国际标准进 行重 新 编写。 而 C 语言 程 序 本身 并 不依 存 于 机器硬件系统 , 从而便于在硬件结构不同的 机种间和 各种操作 系 统实现程序的移植。1 .2C 语言 的基本符 号一、基本符号集C 语言的基本符号是 ASCI I 字符集。它包括 : ( 一 ) 数字 : 阿拉伯数字 10 个 (0 9) 。( 二 ) 字母 : 大写英文字母 26 个 ( AZ ) 。小写英文字母 26 个 ( az) 。内部处理 以小写字 母 为主。( 三 ) 特殊符号 : 主 要是

20、 指运 算符 和 操作 符 , 它通 常 是由 1 2个特殊符号组成。共有以下 39 个 :+-*/% =!=& &| |!&|=+-?: .- +=-=* =/=% =& = =| =,#sizeof二、标识符C 语言的标识符可分为以下三类 : ( 一 ) 保留关键字C 语言 每个关键 字在 C 程序 中都代表 着某一 固定含义 , 所 有 保留关键字都要用小写英 文字 母表示 , 且 这些 关键字 都不 允许 作 为用户标识符使用。 C 语言共有以下 32 个保留关键字 :au t o br ea k case cha r cons t con tinue default do doubl

21、e else enum ex tern float for got o if i nt long regis te r ret urnshort signe d s izeof s tatic s t ruct switch typed ef union un- s ign edviod volatile w hile ( 二 ) 预定义标识符C 语言提供了大量的 库函 数和 头 文件 , 这 些库 函 数名 和头 文件中定义的一些标识符都统称为预定义标识符。C 语 言允许用 户 把这类标识符作其它用途 , 但 这将使 这些 预定 义的标 识符 失去 原 有的作用。例如 : 一旦 用户 把 P

22、rin tf 说 明为 整型 变量 , 则程 序 中 将不能再调用 Prin tf 进行输出了。鉴于目前各种计算机系 统的 C 语言已经把这类标识符作为统一的库函数名或预编译处理中的专 用命令名使用 , 因此为了避免误解 , 不要把这些预定义标识符另作 它用或将它们重新定义。( 三 ) 用户标识符用户可 以根 据 需要 对 C 程 序中 用到 的 变量、符 号常 量、自 己 的函数或文件指针进行 命名 , 形成 用户 标识符。 这类 标识 符的 构 成规则如下 :1 .由英文字母、数字、下划线组成 , 且第一个字符不能是数字 ,必须是字母或下划线。例如 :a ,b1 ,yea r day ,l

23、in es 2 .大小写字母的含义不同。例如 : V EL OCI T Y , Velocit y 和 velocit y 是 完全 不 同的 标 识符。3 .一个名字可以由多个 字符组 成 , 但一 般只有 前 八个 字符 有意义 , 可以相互区别。例如 : int eres t Paid 和 in te res t Pay able 具有相同的意义 。1 .3简 单的数据输 入输出C 语言本身没有 提供 输 入、输出 操作 的 语句。 C 语 言程 序 中 的输入和输出功能是通过调用系统提供的标准库函数实现的。本 节先介绍两种经常使用的 简单 输入输 出标 准库函 数 , 以利 于程 序

24、举例 , 其余输入输出函数在第八章中介绍。一、pu tcha r ( ) 函数和 getcha r ( ) 函数putch ar ( ) 和 getc har ( ) 是 标准库 函数。 标准 I/ O 函 数库 中 有一些公用的信 息 写 在 头文 件 s t dio .h 中 , 因 此 要使 用 标 准 I/ O 函数库中的 I/ O 函数 , 一般应在程序开头写出下面的命令 :# incl ude s tdio .h 是 s tanda rd inpu t & ou t pu t 的缩 写 , 称为 标准 输入/ 输出预说 明 ,.h 是头 文件的 扩展 名。它包 含了 与标准 I/

25、O 库 有 关的变量定义和宏定义。( 一 ) putch ar ( ) 函数字符输出函数 pu tch ar ( ) 的功能是把一 个字符输 出到标准 输 出设备上 ( 通常是指显示器或打印机 ) 。其形式为 : pu tcha r ( ch) ;其中 , pu tcha r ( ) 是函数名 , ch 是函数的参数 , 在 p utch ar ( ) 中 该参数必须是整型或字符型。该 函数将 ch 的 值以 ASCI I 字符 形 式在标准输出设备上输出。例 1 1 pu tch ar ( ) 函数的功能。程序如下 :# incl ude main ( )ch ar a1 , a2 , a3

26、 ;a1 = Y; a2 = E; a3 = S;putch ar ( a1 ) ; pu tch ar ( a2) ; putc har ( a3 ) ;程序运行结果 : YES三个字符输出语句 , 每个语句输出一个字符。( 二 ) getcha r ( ) 函数字符输入函数 g etc ha r ( ) 的功 能 是从 标 准输 入 设备 上 ( 通 常 是指键盘 ) 读取一个字 符 , 该函 数没有 参数 , 其 函数值 就是 从输 入 设备得到的字符。其形式为 : getch ar ( ) ; 其中 getcha r 是函数名。例 1 2 输入一个字符。# incl ude main

27、( )ch ar c;c = getch ar ( ) ; putch ar ( c ) ;程序运行时 , 如果从键盘上输入字符 Z 和回车 : Z程序输出变量 C 的值ZZgetcha r ( ) 函数 只 能 接 收 一 个 字 符 , 得 到 的 是 字 符 的 ASCI I 代码 , 可以赋给一个字符型变量或整型变量 , 也可以不赋给任何变 量只作为表达式的一部分。例如 :putch ar ( getch ar ( ) ) 就是以输入字符为参数用字符输出函数。 二、prin tf ( ) 函数和 scanf ( ) 函数printf( ) 和 scanf ( ) 函 数是 按指定 的格

28、 式完 成输入 输出 过程。 前面介绍的字符输入、输 出函数每次只能 输入或输 出一个 字符 , 而 printf( ) 和 scanf ( ) 函数一次可以输出或输入若干个任 意类型的数 据。虽然它们也是库函数 , 但在使用时不需要包含 stdio .h。在 C 语言中 , 也就是这两个库函数在使用时不需要包含头文件库函数。( 一 ) pri nt f ( ) 函数格式输出函数 prin tf ( ) 的功能是将一些变量的值按指定的格 式输出到标准设备上。其形式为 : prin tf ( 格式控制 , 输出项表 ) 。其中 : 格式控制部分是一个用双引号括起来的字符串 , 用来确 定输出项目

29、的格式和需要原样输出的字符串 ; 输出项可以是合法的 常量、变量和表达式 , 输出项表中的各输出项之间要用逗号分开。格式控制也称格式控制字符串 , 它包括两类内容 : 格式说明 和普通字符。1 .格式说明由 % 和格 式字符 组成 , 如 : % d、% f 等。它规 定 了输出项的输出格式。格式 字符 通常 用于说 明输 出数 据的 类型。 常用的格式说明中的格式字符及其意义如表 11 所示。表 11prin tf( )的格式字符格 式 字 符说明d o x u c s f eg以 带 符 号 的 十 进 制 形 式 输 出 整 数 ( 正 数 不 输 出 符 号 ) 。 以 八 进 制 无

30、 符 号 形 式 输 出 整 数 ( 不 输 出 前 导 符 o ) 。 以 十 六 进 制 无 符 号 形 式 输 出 整 数 ( 不 输 出 前 导 符 ox ) 。 以 无 符 号 十 进 制 形 式 输 出 整 数 。以 字 符 形 式 输 出 , 只 输 出 一 个 字 符 。 输 出 字 符 串 。以 小 数 形 式 输 出 单 、双 精 度 数 , 隐 含 输 出 6 位 小 数 。以 标 准 指 数 形 式 输 出 单 、双 精 度 数 , 数 字 部 分 小 数 位 数 为 6 位 。 选 用 % f 或 e 格 式 中 输 出 宽 度 较 短 的 一 种 格 式 , 不 输

31、 出 无 意 义 的 0。格式说明中 , 在 % 和 上述格 式字 符间可 以插 入以 下几 种附 加 符号。如表 12 所示 :表 12prin tf( ) 的附加格式说明字符字 符说明l表 示 输 出 的 是 长 整 型 整 数 , 可 加 在 d、o、x、u 前 面 。m表 示 输 出 数 据 的 最 小 宽 度 。.n对 实 数 , 表 示 输 出 n 位 小 数 , 对 字 符 串 , 表 示 截 取 n 个 字 符 。0表 示 左 边 补 0。+转 换 后 的 整 数 左 对 齐 。-转 换 后 的 整 数 右 对 齐 。在使用 prin tf 函数输出时应注意 :(1 ) 数据类

32、型应与上述格式说明匹配 , 否则将会出现错误。(2 ) 格式字符必须用小写字母 , 如 : % d 不能写成 % D。(3 ) 可 以在 print f ( ) 函数中 的 格式控 制 字符串 中包含第 二第一章C 语言概述19章中的 转义字符。如 : r , n , t , b , f , 377等。(4 ) 如果想输出字符 % , 则应该在格式控制 字符串中用两 个 % 表示。如 : pri nt f ( % f% % , 1 .0/ 3) ;输出的结果是 : 0 .333333 % 。2 .普通字符 , 即需要按原样输出的字符。 例如 : prin tf ( T he C La ngu

33、age ) ; 输出结果为 : T h e C L angua ge其中 : T he C La ngu age是普通字符。例 1 3 变量 a 为 27 , b 为 29 , c 为 8 , 求 ( a + b )/ c 的值。main ( )int a , b , c, d ;a = 27 ; b = 29 ; c = 8 ;d = ( a + b)/ c;pri nt f ( ( % d + % d )/ % d = % d n , a, b , c , d) ;运行结果是 :(27 + 29)/ 8 = 7( 二 ) scanf ( ) 函数格式输入函数 scanf ( ) 的功能是从

34、标准输 入设备上按一定 的 格式输入任何类型的多个数据。其形式为 : sca nf ( 格式控制 , 地址表列 ) ;执行时 , 按照输 入 格 式规 定 的 格 式 , 按 序 由 键 盘进 行 数 据 输入。地址表列是由若干个地 址组成 的表 列 , 可以是 变 量的 地址 或字符串的首地址。在 C 语 言 中用 & 加 上 变 量 名 表示 变 量 的 地址。例如 & a 表示是变量 a 的地址。格式控制的含义与 print f ( ) 函数的 格式 控制 相 似 , 也是 以 % 开始 , 以一个格式字符结束。表 1 3 列出 sca nf ( ) 函数 用到的 格 式字符。表 13s

35、can f( )的格式字符格 式 字 符说明d o x c s fe以 带 符 号 的 十 进 制 形 式 输 入 整 数 。 以 八 进 制 无 符 号 形 式 输 入 整 数 。 以 十 六 进 制 无 符 号 形 式 输 入 整 数 。 以 字 符 形 式 输 入 单 个 字 符 。输 入 字 符 串 , 以 非 空 字 符 开 始 , 以 第 一 个 空 白 字 符 结 束 。 以 小 数 形 式 输 入 单 、双 精 度 数 , 隐 含 输 出 6 位 小 数 。以 标 准 指 数 形 式 输 入 单 、双 精 度 数 , 数 字 部 分 小 数 位 数 为 6 位在 % 与格式字符

36、之间可以插入附加字符 , 如表 1 4 所示 :表 14sca nf( ) 的附加格式说明字符字 符说明l h m*表 示 输 入 的 是 长 整 型 整 数 , 可 加 在 d、o、x 、f、e 前 面 。 表 示 输 入 短 整 型 数 据 ( 可 用 于 d、o、x) 。表 示 输 入 数 据 的 最 小 宽 度 。表 示 本 输 入 项 在 读 入 后 不 赋 给 相 应 的 变 量 。说明 :1 .scanf ( ) 函 数 中 不 使 用 % u 说 明 符 , 对 unsigned 型 数 据 ,以 % d 或 % o、% x 格式输入。2 .可以指定输入数据所占列数 , 系统自

37、动按它截取所需数据。 例如 : sca nf ( % 3d % 3d , & x , & y ) ;输入 6 5 4 3 2 1 回车 系统自动将 6 5 4 赋给 x , 3 2 1 赋给 y。3 .% 后的 * 附加字符 , 用来表示跳过它相应的数据。 例如 : sca nf ( % 2d % * 3d % 2d , & x , & y) ;输入 67 543 21 回车 系统自动将 67 赋给 x , 21 赋给 y。第二个 数据 543 被跳 过不 赋予任何变量。4 .输入数据时不能规定精度。 例如 : sca nf ( % 7 .2f , & x) ;这 是 不 合 法 的 , 不

38、能 企 图 输 入 1234567 而 使 X 的 值 为12345 .67 。例 1 4 scanf ( ) 函数的功能。程序如下 : main ( )int a , b , c;scanf ( % d % d % d , & a , & b , & c) ;pri nt f ( % d , % d , % d n , a , b , c ) ;运行时以下列方式输入变量 a, b , c 的值 : 5 6 7 回车 ( 输入 a, b , c 的值 )5 , 6 , 7 回车 ( 输出 a, b , c 的值 )& 是地址运算符 , & a、& b、& c 是 指 a、b、c 在内 存中的

39、地址 , 上面 scanf ( ) 函数的作用是按照 a、b、c 在内存 中的 地址将 a、b、c 的值存进去。% d % d % d 表示按十进制整数形式输入数据。输入 数据时 , 在两个数据之 间以一 个或 多个空 格间 隔 , 也可 以用 回车、 跳格 , 不能用逗号作两个数据间的分隔符。在使用 scanf ( ) 函数时应当注意以下几个问题 :1 .scanf ( ) 函数中的格式控制 后面应当是变量地址 , 而不应是变量名。例如 : 如果 a , b 是整型变量 , 则scanf ( % d , % d , a, b) ;这是不对的 , 应将 a , b 改为 & a, & b .2

40、 .如果在格式控制 字符串中除了格式说明以外还有其它字 符 , 则在输入数据时应输入与这些字符相同的字符。例如 :scanf ( a = % d , b = % d , & a , & b ) ;输入时应该用如下形式 : a = 3 , b = 43 .在用 % c格式输入字符时 , 空格字符和转义字符 都作 为有效字符。例如 :scanf ( % c% c% c , & c1 , & c2 , & c3 ) ;当输入 : a b c 时 , 字符a送给变量 c1 , 字符空格送给 c2 , 字 符b送给 c3。因为% c只要读入一个字符 , 后面不需要用空格 作 为两个字符间的间隔 , 因此

41、空格作为下一个字符送给 c2。4 .在输入数据 ( 常量 ) 遇到以下情况时认为该数据结束。(1 ) 遇空格 , 或按回车 或跳格 ( T AB) 键。 (2 ) 遇宽度结束 , 如 % 3 , 只取 3 列。(3 ) 遇非法输入。例如 :scanf ( % d % c % f , & a, & b , & c ) ;若输入 1234 a1230 .26 , 则第一个 数据 对应 % d 格 式输 入 1234 之后遇字母a, 因此认为数值 1234 后已没 有数 字了 , 第一 个数 据 到此结束 , 把 1 2 3 4 送给变量 a。字符a送给变 量 b , 由于 % c 只 要求输入 一

42、个 字符 , 因 此 a 后面 不需 要空格 , 后面的 数值 应送 给 变量 c。如果由于疏忽把本来应为 1230 .26 错打成 123o .26 , 由 于1 2 3 后面出现字母 , 就认为此数值结束 , 将 12 3 送给 c。例 1 5 求 a * b 和 a/ b 的值main ( )float a , b , x1 , x2 ;scanf ( a = % f, b = % f , & a, & b) ; x1 = a * b ;x2 = a/ b ;pri nt f ( n nx1 = % 5 .2f nx2 = % 5 .2f n , x1 , x2 ) ;执行结果如下 :a

43、 = 2 , b = 3 回车 x1 = 6 .00x2 = 0 .671 .4C 语言 的程序结 构一、几个简单的 C 语言程序例 1 6 已知 a 为 15 , b 为 10 , 求 ( a + b )/ ( a - b ) 的 值并 显 示结果。# incl ude / * 标 准 输 入 输 出 头 文 件* /main ( )int a , b , c;/ * 变量说明 * /a = 15 ; b = 10 ;/ * 变量赋值 * /c = ( a + b )/ ( a - b) ;/ * 算术运算并赋值 * / prin tf ( ( % d + % d)/ ( % d - % d) = % d n , a , b , a , b , c ) ;/ * 输出 C 的值 * /运算结果 :(15 + 10)/ ( 15 - 10 )

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高中资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报