内容简介 C 语言是一种结构化程序设计语言, 本书通过大量的实例讲解 C 语言程序设计的方法, 主要内容包括 C 语言程序的结构 数据类型 运算符和表达式 数据的输入和输出 选择结构 循环结构 数组 函数 指针 编译预处理 结构和共用体 位运算 文件等 每个单元包括小结 实验 习题等 本书可作为高等

Size: px
Start display at page:

Download "内容简介 C 语言是一种结构化程序设计语言, 本书通过大量的实例讲解 C 语言程序设计的方法, 主要内容包括 C 语言程序的结构 数据类型 运算符和表达式 数据的输入和输出 选择结构 循环结构 数组 函数 指针 编译预处理 结构和共用体 位运算 文件等 每个单元包括小结 实验 习题等 本书可作为高等"

Transcription

1 普通高等教育 十二五 重点规划教材计算机系列中国科学院教材建设委员会 十二五 规划教材 C 语言程序设计 张秀萍主编闫丽王淑霞副主编 北 京 科学出版社职教技术出版中心

2 内容简介 C 语言是一种结构化程序设计语言, 本书通过大量的实例讲解 C 语言程序设计的方法, 主要内容包括 C 语言程序的结构 数据类型 运算符和表达式 数据的输入和输出 选择结构 循环结构 数组 函数 指针 编译预处理 结构和共用体 位运算 文件等 每个单元包括小结 实验 习题等 本书可作为高等院校各专业学生的 C 语言程序设计教材, 也可作为计算机等级考试 ( 二级 C) 的培训教材 图书在版编目 (CIP) 数据 C 语言程序设计 / 张秀萍主编. 北京 : 科学出版社,2011 ( 普通高等教育 十二五 重点规划教材计算机系列 中国科学院教材建设委员会 十二五 规划教材 ) ISBN Ⅰ. 1C Ⅱ. 1 张 Ⅲ. 1C 语言 - 程序设计 - 高等学校 - 教材 Ⅳ. 1TP312Ⅳ 中国版本图书馆 CIP 数据核字 (2011) 第 号 策划 : 戴薇责任编辑 : 隽青龙 / 责任校对 : 刘玉靖责任印制 : 吕春珉 / 封面设计 : 东方人华平面设计部 出版北京东黄城根北街 16 号邮政编码 : 北京双清印刷厂印刷科学出版社发行各地新华书店经销 * 2012 年 1 月第一版开本 : / 年 1 月第一次印刷印张 :19 3/4 字数 : 定价 :31.00 元 ( 如有印装质量问题, 我社负责调换 < 环伟 >) 销售部电话 编辑部电话 版权所有, 侵权必究举报电话 : ; ;

3 编委会 主编 : 张秀萍副主编 : 闫丽王淑霞编委 :( 按姓氏字母先后为序 ) 郭丹史迎馨王成王淑霞王玉国闫丽张秀萍 科学出版社职教技术出版中心

4 前 言 C 语言程序设计是高等院校计算机专业的必修课程, 也是非计算机专业计算机应用教育的课程 C 语言作为一门通用语言, 既可用来编写系统软件, 也可用来编写应用软件 它是一种面向过程的语言, 既具有低级语言的某些特性, 又具有高级语言的特点 本书根据高等院校计算机专业 C 语言程序设计的教学大纲及全国计算机等级考试新大纲规定的二级 C 语言考试内容要求编写而成 编者在遵循知识讲授和能力培养并重的前提下, 在讲解基本知识的过程中, 注意穿插例题, 同时每章后面都有内容小结 实验和习题, 以帮助读者复习并掌握本章的重点内容 全书内容组织合理 实例丰富 体系清楚 深入浅出 通俗易懂 本书共分 12 章, 内容涵盖了 C 语言程序的结构 数据类型 运算符和表达式 数据的输入和输出 选择结构 循环结构 数组 函数 指针 编译预处理 结构和共用体 位运算 文件等 本书由张秀萍主编并统稿 第 1 和第 2 章由史迎馨编写, 第 3 和第 4 章由郭丹编写, 第 5 章和附录由王成编写, 第 6 和第 11 章由王淑霞编写, 第 7 和第 12 章由闫丽编写, 第 8 章由王玉国编写, 第 9 和第 10 章由张秀萍编写 本书的编写和出版得到了通化师范学院计算机科学系全体教师的极大帮助和支持, 在此表示衷心的感谢! 由于时间仓促, 加之编者水平有限, 书中错误或不妥之处在所难免, 敬请广大读者批评指正, 提出宝贵意见! 编者 2011 年 11 月

5 目 录 第 1 章概述 C 语言的发展历程 程序设计语言 C 语言的发展 C 语言的特点 算法 算法的概念 算法的特性 算法的描述方法 简单的 C 程序 结构化程序设计 程序设计 结构化程序设计方法 C 语言程序的运行环境 概述 Turbo C 2.0 集成开发环境的介绍 12 本章小结 16 习题 16 第 2 章数据 数据类型 常量 整型常量 实型常量 字符常量 21 科学出版社职教技术出版中心 字符串常量 符号常量 变量 标识符 变量 运算符和表达式 运算符和表达式 赋值运算符 算术运算符 关系运算符 31

6 iv 逻辑运算符 条件运算符 逗号运算符 运算符的优先级和结合性 34 本章小结 35 实验 35 习题 36 第 3 章顺序结构的程序设计 顺序结构的语句 赋值语句 空语句 复合语句 输入 / 输出函数 格式输出函数 printf() 格式输入函数 scanf() 字符输入 / 输出函数 字符输入函数 getchar() 字符输出函数 putchar() 程序举例 50 本章小结 51 实验 52 习题 52 第 4 章选择结构的程序设计 if 语句 单分支选择结构 双分支选择结构 if 语句的嵌套 嵌套的一般形式 if else if 形式 switch 语句 switch 语句的一般形式 switch 语句的嵌套 无条件选择结构 goto 语句 break 语句 continue 语句 程序举例 66 本章小结 69

7 目 录 v 实验 70 习题 73 第 5 章循环控制结构 goto 语句以及用 goto 语句构成循环 while 语句 do-while 语句 for 语句 循环的嵌套 break 和 continue 语句 break 语句 continue 语句 程序举例 89 本章小结 92 实验 92 习题 95 第 6 章数组 一维数组的定义和引用 一维数组的定义 一维数组元素的引用 一维数组的初始化 一维数组的存储结构 一维数组的程序举例 二维数组的定义和引用 二维数组的定义 二维数组元素的引用 二维数组的初始化 二维数组的程序举例 字符数组 115 科学出版社职教技术出版中心 字符数组的定义及引用 字符数组的初始化 字符数组的输入 / 输出 字符串处理函数 118 本章小结 120 实验 120 习题 126 第 7 章函数 函数概述 134

8 vi 7.2 函数的定义及使用 函数的定义 使用自定义函数 函数定义和使用举例 函数中变量的属性 局部变量和全局变量 变量的存储类型 函数应用 函数的嵌套和递归 数组作为函数的参数 150 本章小结 157 实验 158 习题 159 第 8 章指针 指针的概念 地址 指针和指针变量 变量的指针和指针变量 指针变量的定义和初始化 指针变量的赋值和引用 指针变量的其他操作 指针变量作为函数参数 数组和指针 一维数组的指针表示 多维数组的指针表示 字符串和指针 字符串的表示形式 字符串指针作函数参数 函数和指针 返回指针值的函数 指向函数的指针 指针数组和指向指针的指针 指针数组 指向指针的指针 命令行参数 189 本章小结 191 实验 191 习题 196

9 目 录 vii 第 9 章结构体 共用体和枚举类型 结构体类型 结构体类型的定义 结构体类型变量的定义 结构体变量的初始化与运算 结构体变量的引用 结构体数组 结构体指针变量 用结构体变量和结构体指针变量做函数参数 链表 链表概述 处理链表的函数 建立动态链表 链表的输出 链表的插入操作 链表的删除操作 共用体 共用体类型定义 共用体变量的引用 枚举类型 枚举类型定义 枚举类型变量的赋值和使用 用 typedef 定义类型 227 本章小结 228 实验 229 习题 236 第 10 章编译预处理 241 科学出版社职教技术出版中心 宏定义 不带参数的宏定义 带参数的宏定义 文件包含处理 条件编译 249 本章小结 251 实验 251 习题 254 第 11 章位运算 基本运算符与位运算 258

10 viii 按位与运算符 按位或运算符 按位异或运算符 按位取反运算符 位移运算符与位移运算 左移运算符 右移运算符 位运算的复合赋值运算符 261 本章小结 262 习题 263 第 12 章文件 文件概述 文件的概念 文件的分类 文件的一般操作过程 文件的指针 文件的基本操作 打开和关闭文件 最基本的文件读 / 写函数 文件的数据块读 / 写操作 fread 函数 fwrite 函数 文件的其他操作 文件的格式化读 / 写 文件的随机读 / 写操作 文件的字符串操作 281 本章小结 282 实验 282 习题 283 附录 A ASCII 表 286 附录 B C 语言常用库函数 288 附录 C Turbo C (V2.0) 编译错误信息 293 附录 D Microsoft Visual C 运行环境简介 301 参考文献 306

11 第 1 章 概 述 计算机语言分为低级语言 ( 机器语言 ) 中级语言 ( 汇编语言 ) 和高级语言 (C Java 等 ) C 语言的全称为 C 程序设计语言, 它是一种通用 简单 灵活的程序设计工具 通过 C 语言可以实现程序设计 本章介绍 C 语言的发展 算法的概念 结构化程序设计的方法, 认识简单的 C 程序以及 C 语言程序的运行环境 科学出版社职教技术出版中心

12 2 1.1 C 语言的发展历程 程序设计语言计算机语言是用户和计算机相互交流的语言 计算机通过用户发出的计算机语言指令来进行相应的工作 而程序是指令代码的有序集合, 即用户向计算机发出若干条指令而产生的程序 程序是人们利用计算机来解决某些实际问题而编制出的产物, 它能实现某些特定的功能 所以, 计算机语言又称为程序设计语言, 是用户编写程序的语言 程序设计语言按其发展阶段分为 3 种 : 机器语言 汇编语言和高级语言 机器语言是计算机能直接识别和执行的二进制指令的语言 ; 汇编语言是在机器语言的基础上, 采用助记符来表示机器语言 ; 高级语言是面向过程和问题的语言, 它是接近自然语言的程序设计语言 高级语言相对于机器语言和汇编语言而言, 更加直观明了, 最主要是容易学习和掌握 常见的高级语言有 BASIC Visual Basic C C++ Java 等 C 语言的发展 C 语言是目前比较流行的程序设计语言, 既可以用来编写系统软件, 也可以用来编写应用软件 它是一种面向过程的语言, 既具有低级语言的某些特性, 又具有高级语言的特点 C 语言的产生是从 1960 年的 ALGOL 60 语言, 它是一种面向问题的高级语言, 由于它离硬件比较远, 不易编写系统程序 1963 年, 英国剑桥大学推出了 CPL(Combined Programming Language) 语言,CPL 在 ALGOL 60 的基础上加以改进, 离硬件较近, 能实现较低层次的操作, 但是由于规模太大, 难以实现 1967 年, 剑桥大学的 Martin Richards 改进了 CPL 语言, 推出了 BCPL(Basic Combined Programming Language) 1970 年美国的贝尔实验室的 Ken Thompson 对 BCPL 语言进行简化处理, 设计出 B 语言, 它更加简单, 接近硬件, 但它过于简单, 功能少 1973 年, 美国贝尔实验室的 D.M.Ritchie 和 B.W.Kernighan 在 B 语言的基础上, 设计了 C 语言,C 语言继承了 BCPL 和 B 语言的优点, 同时, 又克服了 B 语言的缺点 C 语言最初是用来描述和实现 UNIX 操作系统的, 后来经过多次改进, 在 1975 年,UNIX 第 6 版公布后,C 语言的优点被人们认可 1977 年出现了不依赖于具体机器的 C 语言编译文本 可移植 C 语言编译程序, 用 C 语言编写的 UNIX 操作系统被运行在各种计算机上 随着 UNIX 操作系统的普及,C 语言也随着推广开来 1978 年后,C 语言先后移植到大 中 小 微型机上 B.W.Kernighan 和 D.M.Richie 两人以 1978 年发表的 UNIX 第 7 版中的 C 编译程序为基础, 编著了 The C Programming Language 一书, 该书介绍的 C 语言成为后来广泛使用的 C 语言版本的基础, 被称为标准的 C 语言 1983 年, 美国国家标准化协会 (ANSI) 根据 C 语言产生以来各种版本对 C 语言的发展和扩充, 制定了新的标准, 称为 ANSI C 1990 年, 国际标准化组织 (ISO) 通过了以 C 语言为标准语言, 现在流行的版本都是以此为基础 目前, 大部分机器和操作系统都支持 C 语言 在微型计算机上, 有 Microsoft C Turbo C 和 Queck C 等各种 C 版本, 本书是在 Turbo C 2.0 环境下调试程序的

13 第 1 章概 述 C 语言的特点 C 语言能够存在和发展, 并一直被广泛使用, 是因为它具有很多的优点 1)C 语言是结构化程序设计语言 它以函数作为程序的主体结构, 便于实现程序的模块 化 C 语言提供 9 种结构化的控制语言, 如选择结构的 if else 语句, 循环结构的 while for do-while 语句等 2)C 语言比较简洁, 使用方便和灵活 C 语言有 32 个关键字,9 种控制语句, 程序书写 形式自由, 一行可以写多条 C 语句, 或是一条 C 语句可以占用多行等, 主要以小写字母表示, 区分大小写字母 3)C 语言具有丰富的运算符 C 语言有 34 种运算符, 包括算术运算符 逻辑运算符, 还有其他高级语言不具有的位运算符 复合运算符等 使用多种运算符, 可以实现其他高级语言不能实现的运算 4)C 语言的数据类型丰富 C 语言的数据类型有整型 实型 字符型 空类型 数组类型 指针类型 结构体类型等 同时, 它提供了用户自定义数据类型的功能 利用这些数据类型可以实现复杂的数据处理 5)C 语言具有预处理能力 C 语言具有 #include 和 #define 两个预处理命令和 #if #else 等编译预处理命令, 这些功能提高了软件开发的工作效率, 同时也为程序的组织和编译提供了便利 6)C 语言可移植性好 C 语言的输入和输出不依赖于计算机硬件, 所以它能适应多种操作系统,C 语言程序的可移植一般是通过 C 语言编译程序的可移植来实现的 C 语言虽然有很多优点, 但也存在着一些缺点, 如语法限制不太严格 类型检验比较弱 不同类型数据转换比较随便等 针对这些缺点, 程序设计人员需要在开发完成后检验程序, 以保证程序的正确性 1.2 算法 一个程序是由算法和数据结构两个重要部分组成的 算法设计的正确与否直接决定程序的正确性, 算法的好坏也直接影响到程序的质量 所以, 一个好的程序的前提是有个正确的 高效的算法 算法的概念 科学出版社职教技术出版中心 算法是为解决某个问题而采用的方法或步骤 著名计算机科学家 N. 沃思 (N.Wirth) 对程序有如下的描述 : 程序 = 数据结构 + 算法, 说明一个程序由以下两部分组成 1) 对数据的描述和组织形式, 即数据结构 (data structure) 2) 对操作或行为的描述, 即操作步骤, 也就是算法 (algorithm) 数据是操作的对象, 操作的目的是对数据进行加工处理, 以得到期望的结果 ; 操作步骤

14 4 即是算法, 是一个有穷的规则集合, 规则确定了一个解决某个问题的运算序列 本书所说的算法是指计算机算法, 它分为数值运算算法和非数值运算算法 算法的特性 算法必须具备以下 5 个特性 1) 有穷性 一个算法的执行步骤必须是有限的 有穷性一般是指在一定范围内有效, 也称为有限性 假如计算机执行一个算法需要几百年甚至是几千年, 此算法虽然是有穷的, 但是超过了合理的范围, 所以认为是无效的算法 2) 确定性 算法中的每一步骤必须有明确的含义, 不能存在歧义性 歧义性 是指被理解为两种或多种可能的含义 例如, 判断输入的数是正数或是负数时, 如果判断条件只给出大于零和小于零两种情况, 当输入的数是零时, 程序便无法执行 3) 有效性 算法中的每一步骤必须是有效的执行, 并能得到确定的结果 例如, 进行分数运算时, 当分母为零时, 此算法无法有效地执行 4) 输入 一个算法可以有零个或多个输入 输入是指在执行算法时, 需要从外界输入数据来实现算法 例如, 求 N 个数的最大值问题, 则需要输入 N 个数 ( 如输入 3 个数, 表示求出 3 个数中的最大值 ) 5) 输出 一个算法必须有一个或多个输出 输出即所谓的 解, 算法的目的就是解决问题求得 解 所以, 一个算法至少要有一个输出结果 算法的描述方法 目前存在多种描述算法的方法, 常用的方法有自然语言方法 传统流程图 N-S 结构流程图等 1. 自然语言方法 自然语言是人与人交流用的语言, 如汉语 英语 俄语等 用自然语言表示算法通俗易懂, 符合人们的思维习惯, 但是文字冗长, 不容易转化为程序, 且容易存在歧义性 例 1-1 采用自然语言描述求 S= 的算法 步骤 1: 给变量赋初值,S 的值赋 0,i 的值赋 1; 步骤 2: 累加求和,S=S+i; 步骤 3: 变量 i 自增 1,i=i+1; 步骤 4; 判断 i 是否大于 100, 如果 i 小于或等于 100, 则重复执行步骤 2 和步骤 3; 否则执行步骤 5; 步骤 5: 输出 S 的值 2. 传统流程图 传统的流程图是一个描述算法的控制流程和指令执行情况的有向图 流程图是用几个框图来表示算法中的各个操作 用流程图表示算法更加直观 容易理解 美国国家标准化协会 (ANSI) 规定了如图 1-1 所示的符号作为常用的流程图符号

15 第 1 章概 起止框表示流程图的开始或结束 ; 处理框表示对数据的处理 ; 判断框表示对条件的逻辑判断, 它有一个入口, 两个出口 ; 输入 / 输入框表示数据的输入或输出 ; 流程线表示流程图执行的方向 ; 连接符表示连接不同地方的流程线 例 1-2 采用传统流程图描述例 1-1 的求和问题, 如图 1-2 所示 述 5 起止框 开始 处理框 S=0, i=1 S=S+i 判断框 i=i+1 输入 / 输出框 Y i<=100 N 流程线 输出 S 连接符 结 束 图 1-1 流程图常用符号 图 1-2 求和流程图 3. N-S 结构流程图 相对传统流程图,N-S 结构流程图是新的流程图 它是美国学者 I.Nassi 和 B.Schneiderman 在 1973 年提出的 在这种流程图中, 它去掉了流程线, 全部算法写在一个矩形框内, 这样算法只能从上到下顺序执行, 在该矩形框中可以包含从属的子框 N-S 结构流程图避免了算法流程的任意转向, 保证了程序的质量, 而且它形象直观 节省篇幅, 尤其适于结构化程序的设计 例 1-3 采用 N-S 结构流程图描述例 1-1 的求和问题, 如图 1-3 所示 S=0,i=1 真 i<=100 假 S=S+i i=i+1 科学出版社职教技术出版中心 输出 S 的值 图 1-3 求和 N-S 结构流程图

16 6 1.3 简单的 C 程序 前面介绍了 C 语言的基本知识, 本节介绍几个简单的 C 语言程序, 让读者对 C 语言程序 有一个初步的了解和认识 例 1-4 输出一串字符 main() { printf("this is my book "); 运行结果如下 : This is my book 这个程序是由一个函数组成的, 这个函数就是 main 函数, 又称为主函数 本程序中, 主函数只有一条语句, 此语句是 printf 输出语句, 它的作用是在终端输出一行被括在双引号 " " 内的字符串, 本例中即是输出 This is my book 字符串 语句的末尾有个分号, 代表语句结束标志 例 1-5 求两个数的和 main() /* 函数首部 */ { int a,b; /* 定义变量 a 和 b*/ a=3;b=4; /* 变量赋值 */ printf("a+b=%d",a+b); /* 输出 a+b 的值 */ 运行结果如下 : a+b=7 本程序仍是由主函数组成的 每个函数是由函数首部和函数体构成的 程序的第一行是主函数的函数首部, 它是由函数的名称 main 和小括号构成的 ;/* */ 是注释信息, 它的作用是对语句进行标注解释, 以便于理解 ; 函数体是由花括号 { 括起来的部分 函数体的第一行语句中,int 表示数据类型为整型, 本语句的作用是定义 a 和 b 两个整型变量, 它们用于存储所要求和的两个数 ; 第二行是两条赋值语句, 它们的作用是将 3 和 4 这两个数分别存放在 a 变量和 b 变量中 ; 第三行是 printf 语句, 它不仅输出 a+b= 的字符串, 还输出 a+b 表达式的值 原因在于本例中调用 printf 输出函数时, 函数内不只有双引号 " " 一个部分, 还有 a+b 这个表达式 另外, 在双引号 " " 内还有一个符号 %d, 它的作用是指定输入或输出的对象的数据类型是十进制整型, 在本例中用于指定 a+b 表达式的值是以十进制整型输出 例 1-6 求任意两个数的最大值 #include <stdio.h> /* 将标准的输入 / 输出的头文件 stdio.h 包含到本程序中 */ main()

17 { 第 1 章概 int a,b,c; scanf("%d,%d",&a,&b); /* 输入变量 a 和 b 的值 */ c=max(a,b); /* 调用 max 函数, 将函数返回值赋给变量 c*/ printf("max is :%d",c); /* 输出 c 的值 */ 述 7 int max(int x,int y) /* 定义 max 函数, 函数值的类型为整型, 形式参数为整型 x,y*/ { int z; if(x>y) /* 利用 if else 条件语句, 实现变量值的大小比较 */ z=x; else z=y; return(z); /* 将 z 的值返回到主调函数 main 函数 */ 输入任意两个数 : 5 7 运行结果如下 : 7 本程序是由主函数 main 和名为 max 的函数构成的 程序中的第一行为预处理命令, #include 表示文件包含,stdio 为 standard input & output 的缩写, 称为标准的输入 / 输出说明,h 是头文件的扩展名 当程序中调用标准的输入 输出库函数时, 需要有此条命令, 但由于 printf 函数和 scanf 函数经常使用, 所以此包含命令也可省略 第四行为调用 scanf 函数,scanf 函数的作用是由终端输入数据, 即给变量 a 和 b 输入数据 (a 和 b 分别输入的是 5 和 7) 变量 a 和 b 前的符号 & 的作用是 取地址, 将数据 5 和 7 分别存放在变量 a 和 b 的地址所标志的单元中 第五行是调用 max 函数, 将函数的返回值赋值给变量 c 此时, 程序的执行点由主调函数位置跳到被调用函数 max 函数, 并将实参 a 和 b 的值分别传递给形参 x 和 y max 函数也是由函数首部和函数体构成的 函数体中的 if else 是条件判断语句,if 后面的小括号 () 中是判断条件, 如果条件为真, 执行 z=x; 语句, 否则执行 z=y; 语句 return 语句是将 z 的值返回给主调函数 main 同时, 程序的执行点由 max 函数返回到 main 函数的调用位置, 即将带回的函数值赋值给变量 c 最后一条语句, 调用 printf 函数, 输出变量 c 的值 通过对三个例子的分析, 总结 C 程序的结构和书写规则如下 1. C 程序由函数构成 科学出版社职教技术出版中心 一个 C 程序是由一个或多个函数构成的, 即一个 C 程序至少由一个函数构成, 这个函数就是主函数 main() 因此, 函数是程序的基本单位 函数分为库函数和自定义函数两种, 在

18 8 这 3 个例子中,printf 函数和 scanf 函数为库函数,max 函数为自定义函数 2. 函数的组成函数由函数首部和函数体构成的 函数首部包括函数返回值类型 函数名称 参数类型和参数名 例 1-6 中的 max 函数的函数首部分析如下 : int max ( int x, int y ) 函数返回值类型 函数名参数类型 参数名参数类型 参数名 函数返回值类型是指定函数带回到主调函数的值的类型, 本例中变量 z 的值指定为 int( 基本整型 );max 为用户自定义的函数名,max 后的小括号 () 是函数的标志 ; 参数类型表示指定参数 x 和 y 的数据类型, 本例为 int( 基本整型 ); 参数分为形式参数和实际参数, 在函数调用部分出现的参数为实际参数, 在函数定义部分出现的参数为形式参数 本例中,x 和 y 为形式参数,a 和 b 为实际参数 函数体是由花括号 { 括起来的部分 函数体又分为说明语句和执行语句两部分 说明语句是函数的声明和变量的定义 ; 执行部分是由若干语句构成的 3. 主函数 main() 一个程序有且只有一个主函数 main() 一个程序的开始执行点和结束点都在主函数 main() 中 这与程序有多少个函数以及主函数 main() 的位置无关 一般, 编写程序时, 把主函数 main() 放在其他函数的前面 4. 程序的书写格式 C 程序的书写格式比较自由, 一行可以写多条语句, 且语句的空格和换行符均可忽略不计 ; 一条语句也可以写在多行上, 但需要用 \ 做续行符 5. 程序中语句用分号作为结束标志程序中的每条语句末尾都有一个分号 ;, 它作为语句的一个部分 6. C 语言本身没有输入 输出语句 C 程序中的输入 输出功能是通过调用库函数中 printf 函数和 scanf 函数实现的 7. C 语言提供注释功能在 C 程序的任何位置可以加注释信息, 注释可以帮助用户阅读和理解程序 注释部分是以 /* 开头, */ 结束, 即注释形如 /* */, 省略号部分为注释内容 注释可分为若干行, 但如允许, 注释内容中又可包含 /* 和 */

19 第 1 章概述以上是对 C 程序进行的简单总结, 让读者对 C 程序有些初步的了解和认识, 具体的内容将在后续章节中一一介绍 结构化程序设计 程序设计 程序设计是用计算机语言编写程序的过程 一般的程序设计过程分为以下 5 个阶段 1) 确定数据结构 : 根据问题提出的要求 指定输入和输出的结果形式来确定数据存放的 数据结构 2) 确定算法 : 根据实际问题, 确定解决问题的合适算法 3) 编写程序 : 根据确定的数据结构和算法, 使用某一计算机语言编写程序代码, 并将其 保存在磁盘中 4) 调试程序 : 利用计算机调试程序, 检查程序的语法错误, 消除程序的逻辑错误, 并对 出错情况予以纠正 ; 同时, 利用各种可能的输入数据对程序进行测试, 使之对各种合理的数据都能得到正确的结果, 对不合理的数据进行适当的处理 5) 编制文档 : 整理并编写文档资料, 包括程序的说明书和维护说明书等文档 结构化程序设计方法 1. 结构化程序设计 目前, 常用的程序设计方法有面向过程的程序设计方法和面向对象的程序设计方法 面向过程的程序设计方法又称为结构化程序的设计方法,C 语言采用的即是结构化程序的设计方法 结构化程序设计方法是解决人脑思维能力的局限性与所处理问题的复杂性之间矛盾的一个有效方法 结构化程序设计采用 自上而下 逐步细化 模块化设计 结构化编码 的方法, 它把大的 复杂的问题分解成若干个小问题, 然后各个进行设计 自上而下 逐步细化就是对一个复杂问题首先进行上层 ( 整体 ) 的分析与设计, 按其组织或功能将问题分解成若干个子问题, 如果子问题仍然十分复杂, 再对它进一步分解, 如此一层一层地分解下去, 直到处理对象相对简单 容易处理为止 一个问题必须按一定的方法和步骤进行, 如果方法不当或步骤顺序不正确也可能导致该问题实现不了或增加问题的执行时间, 影响程序执行的效率 通过自上而下 逐步细化的方法, 可把复杂的问题分解成许多容易解决的小问题, 每个小问题就是一个小模块, 用一个程序模块将这些小模块像搭积木一样合成起来, 就形成了解决整个复杂问题的大程序 在设计某一个具体的程序时, 一般代码不超过 50 行 如果某一具体问题的代码行数过多, 在程序运行过程中如果出现了错误是很难进行修改的, 而且不便于程序的调试, 所以一般对 科学出版社职教技术出版中心

20 10 于大程序的编写, 采用模块化程序设计的方法, 即将一个大程序分成几块, 由不同的人员进行编写, 然后通过 main 函数调用子函数实现程序的运行 采用模块化程序设计有多方面的优点 : 有助于软件开发工程的组织管理, 一个复杂的大型程序可以由许多程序员分工编写不同的模块, 以加快软件开发的速度, 实现团队合作, 提高工作效率, 缩短开发周期 ; 模块功能简洁, 易于编程和修改程序中出现的错误, 有助于提高软件的可靠性 ; 编辑好的模块, 可以在其他程序中使用, 所以还能够增强程序的可移植性, 等等 2. 结构化程序的三种基本结构结构化程序设计方法规定, 结构化程序由顺序结构 选择结构和循环结构三种基本控制结构组成 1) 顺序结构 顺序结构的程序语句, 程序在执行时, 按照语句在程序中的先后顺序逐条执行, 没有分支, 没有转折 顺序结构用传统的流程图和 N-S 结构流程图来表示如图 1-4 所示 语句 1 语句 1 语句 2 语句 2 (a) (b) 图 1-4 顺序结构 2) 选择结构, 又称分支结构 选择结构的程序语句, 程序在执行时, 根据选择语句中不同的判断条件去执行不同的语句 选择结构用传统的流程图和 N-S 结构流程图来表示如图 1-5 所示 ( 图中 P 表示判断表达式 ) Y P N Y P N 语句 1 语句 2 语句 1 语句 2 (a) (b) 图 1-5 选择结构 3) 循环结构, 又称重复结构 循环结构的程序语句, 程序在执行时, 根据循环的条件去

21 第 1 章概述重复执行同一组语句多次或一次也不执行 循环结构用传统的流程图和 N-S 结构流程图来表示如图 1-6 所示 11 P N Y 当 P 成立时 循环体 循环体 (a) (b) 图 1-6 循环结构 概述 1.5 C 语言程序的运行环境 C 语言是编译式的高级语言, 用 C 语言编写的程序, 叫做 源程序 计算机不能直接识别 源程序, 所以,C 语言程序需要经过翻译, 才能转换成计算机所能识别的机器语言程序, 即 目标程序, 这个过程如同汉语翻译成英语一样 翻译分为解释方式和编译方式两种 解释方式是边翻译 边执行的方式 ; 编译方式是先将源程序全部翻译成机器语言程序, 然后再执行的方式 一个 C 源程序需要经过编辑 编译 连接和运行 4 个步骤, 才能得到程序的运行结果 1) 编辑 : 实现输入和修改源程序 源程序编辑完毕后, 以文本文件的形式保存到磁盘中, 源程序的文件名由用户定义,C 语言源程序的文件扩展名为.c, 如 name.c 2) 编译 : 实现将源程序翻译成目标程序 编译程序自动对源程序进行语法检查, 如果发现错误, 将错误的类型和位置显示出来, 用来帮助用户修改源程序 编译完毕后, 源程序由扩展名为.c 的文件转变成扩展名为.obj 的目标程序文件, 如 name.c 变为 name.obj 3) 连接 : 又称链接, 是用连接程序将编译过的目标程序和程序中所用的库函数连接在一起, 生成可执行的文件 连接完毕后, 目标程序由扩展名为.obj 的文件转变成扩展名为.exe 的可执行文件, 如 name.obj 变为 name.exe 4) 运行 : 将可执行的文件调入内存执行, 得到程序的运行结果 以上讲述的 C 程序的运行过程如图 1-7 所示 科学出版社职教技术出版中心

22 12 编辑 源程序 (.c) 编译 目标程序 (.obj) 连接 可执行文件 (.exe) 运行 图 1-7 C 程序的运行 注 : 图中, 箭头的实线表示执行的步骤, 箭头的虚线表示执行所产生的结果和条件 Turbo C 2.0 集成开发环境的介绍目前,Turbo C 和 Microsoft C++ 两种编译程序被广泛使用 本书采用的是 Turbo C 编译程序,Turbo C 具有方便 直观 易用的界面和丰富的库函数 它提供了一个集成环境, 把程序的编辑 编译 连接和运行等操作全部集中在一个界面上进行, 使用十分方便 本书以 Turbo C 2.0 版本为例来介绍它的安装以及使用 1. Turbo C 2.0 的安装 Turbo C 2.0 的安装十分简单, 将 TC 文件夹复制到磁盘的某一目录下即可 2. Turbo C 2.0 的使用 (1) 启动 Turbo C 2.0 系统的方法启动 Turbo C 2.0 系统的方法有以下两种 1) 在 DOS 环境下, 先输入 D:, 按 Enter 键; 再输入 CD\TC, 按 Enter 键; 最后输入 TC 如图 1-8 所示 图 1-8 DOS 环境启动 Turbo C 2.0 2) 在 Windows 环境下, 打开 D 盘下的 TC 文件夹, 双击可执行文件 TC.EXE, 打开 Turbo C 2.0 后, 会显示 Turbo C 2.0 的版本信息框, 按任意键即可关闭信息框

23 第 1 章概 (2)Turbo C 2.0 的窗口组成启动 Turbo C 2.0 后, 即打开 Turbo C 2.0 的窗口, 如图 1-9 所示 标题栏菜单栏 述 13 编辑区 信息区 功能键提示行 图 1-9 Turbo C 2.0 的窗口 1) 标题栏 : 由窗口图标 窗口名称和最小化 最大化 关闭按钮组成 窗口的最大化与还原的切换是用 Alt+Enter 键实现的 2) 菜单栏 : 由 8 个菜单组成 File 为文件菜单, Edit 为编辑菜单, Run 为运行菜单, Compile 为编译菜单, Project 为项目菜单, Options 为选项菜单, Debug 为调试菜单, Break/watch 为中断/ 监视菜单 Turbo C 2.0 的界面操作是利用键盘来实现的, 它不识别鼠标操作 选中某一菜单 : 需要先按 F10 键, 再通过 键和 键来选中所需的菜单; 打开某一菜单 : 需要先选中某一菜单, 然后按 Enter 键; 执行某一菜单的子功能 : 打开某一菜单后, 通过 键和 键选中某一子功能, 然后按 Enter 键 3) 编辑区 : 用于编辑源程序 编辑区的正上方有 Edit 标志, 该区顶部为光标当前所在行 (Line 1) 和列 (Col 1) 的位置以及编辑状态 (Insert) 自动缩进(Indent Tab) 制表开关 (File Unindent) 源程序名等信息 在编辑区中, 光标的移动是通过方向键来是实现的 4) 信息区 : 该区正上方有 Message 标志, 该区用于在编译 / 运行程序时显示出错信息 5) 功能键提示行 : 位于窗口的最下方, 提示各功能键的作用 F1-Help 为帮助 F5-Zoom 为分区控制 F6-Switch 为转换活动窗口 F7-Trace 为跟踪命令 F8-Step 为按步执行 F9-Make 为进行编译和连接 F10-Menu 为回到主菜单 (3) 使用 Turbo C 2.0 得到 C 源程序的结果前面介绍, 一个源程序要通过编辑 编译 连接和运行 4 个步骤才能得到程序的结果 下面以例 1-4 程序为例, 介绍利用 Turbo C 2.0 集成开发环境实现此过程 1) 编辑 : 启动 Turbo C 2.0 后, 按 Enter 键, 将光标定位在编辑区的第一行第一列, 在编辑区通过键盘输入例 1-4 的 C 程序内容, 如图 1-10 所示 科学出版社职教技术出版中心

24 14 图 1-10 编辑 C 程序如果编辑第二个 C 程序, 执行 File 菜单中的 New 命令, 新建一个文件, 再输入第二个 C 程序内容 2) 编译 : 执行 Compile 菜单中的 compile to OBJ 命令或按 Alt+F9 键, 将 C 源程序编译成目标程序 通过 Turbo C 2.0 系统的编译操作, 能检测出程序是否存在语法错误 例如, 将例 1-4 的 C 程序中的语句末尾分号去掉, 执行编译时, 会出现如图 1-11 所示的错误提示 图 1-11 编译错误提示这时, 通过信息区的错误提示, 以及错误所在的参考行, 对源程序进行修改, 本程序在 printf 语句末尾输入分号后, 重新进行编译, 会出现如图 1-12 所示的效果 3) 连接 : 执行 Compile 菜单中的 Link EXE File 命令或按 F9 键, 将目标程序转变成可执行文件 Turbo C 2.0 系统的连接操作将各个目标程序与有关的库文件连接在一起 同编译操作一样, 连接操作也会检测程序是否存在语法错误, 这里不再一一举例 4) 运行 : 执行 Run 菜单中 Run 命令, 得到程序的运行结果 按 Alt+F5 键, 切换到 DOS 界面, 得到如图 1-13 所示的结果

25 第 1 章概 述 15 图 1-12 编译成功 图 1-13 程序运行结果 程序运行结果检查完毕后, 按 Enter 键切换回 Turbo C 2.0 界面 如果程序结果出现错 误, 需要对源程序进行修改, 执行 Edit 菜单命令, 编辑源程序 修改后, 重新执行编译 连接和运行步骤 按 Ctrl+F9 键, 可以实现编译 连接和运行 3 个步骤一起执行 5) 保存 : 程序得到正确结果后, 需要将程序保存到磁盘中, 执行 File 菜单中的 Save 命令或按 F2 键 本例的 C 程序命名为 11.c, 保存到 D 盘中的 TC 文件中, 如图 1-14 所示 科学出版社职教技术出版中心 图 1-14 程序的保存过程

26 16 程序保存后, 编辑区中的文件名由 NONAME.C 更改为 11.C, 同时文件名前面的 * 会 自动消失, 如图 1-15 中箭头所示 图 1-15 程序保存后效果图 6) 退出 : 执行 File 菜单中的 Quit 命令, 或者按 Alt+F4 键 本章小结 本章一是介绍 C 语言的发展过程 C 语言的特点 ; 二是介绍算法的概念 算法的特性以及 算法的描述方法 ; 三是介绍 C 语言采用的结构化程序设计方法 ; 四是介绍 Turbo C 2.0 的使用 习 题 一 选择题 1. C 语言执行程序的开始执行点是 ( ) A. 程序中第一条可以执行的语言 B. 程序中的第一个函数 C. 程序中的 main 函数 D. 包含文件中的第一个函数 2. C 语言的注释定界符是 ( ) A. { B. [ ] C. \* *\ D. /* */ 3. C 语言程序中必须有的函数是 ( ) A. #include "stdio.h" B. main() C. printf() D. scanf() 4. 一个算法应该具有 确定性 等 5 个特性, 下面对另外 4 个特性的描述中错误的 是 ( )

27 第 1 章概 A. 有零个或多个输入 B. 有零个或多个输出 C. 有穷性 D. 可行性 5. 能将高级语言编写的源程序转换为目标程序的是 ( ) A. 链接程序 B. 解释程序 C. 编译程序 D. 编辑程序 6. 一个 C 语言程序是由 ( ) A. 一个主程序和若干子程序组成 B. 函数组成 C. 若干过程组成 D. 若干子程序组成 7. C 语言规定, 在一个源程序中,main 函数的位置 ( ) A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 8. C 语言中用于结构化程序设计的三种基本结构是 ( ) A. 顺序结构 选择结构 循环结构 B. if switch break C. for while do-while D. if for continue 9. 算法有 5 个特性, 下列选项中不属于算法特性的是 ( ) A. 有穷性 B. 简洁性 C. 可行性 D. 确定性 10. C 语言源程序名的后缀是 ( ) 二 填空题 A..exe B..c C..obj D..cp 1. 一个 C 源程序中至少应包括一个 函数 2. C 语言程序经过编译后生成文件的扩展名是 ( 小写字母 ) 3. Turbo C 2.0 对编译后产生的文件进行连接生成的文件的扩展名是 ( 小写字母 ) 述 17 科学出版社职教技术出版中心

28 第 2 章 数 据 一个程序主要是由算法和数据两部分组成的 在第 1 章中, 已经介绍算法的内容, 那么, 数据又是什么呢? 我们先举一个数学中的例子,2x+4=y 是一个二元一次方程,x 和 y 的解是不固定的, 即是两个变化的量, 故称为变量, 而 2 和 4 是不变的值, 故称为常量, 常量和变量都是基本数据 ;2x+4 是一个数学表达式, 是由变量 常量和运算符 + 组成的, 表达式被认为是复合数据 在计算机中处理的主要对象也是数据 数据分为基本数据和复合数据 基本数据又分为常量和变量 ; 复合数据包括表达式和函数等 本章主要介绍 C 语言中的基本类型数据以及各种运算符和表达式的功能与属性

29 数据类型 数据类型是程序设计语言中比较重要的概念 在 C 语言中, 数据类型是指允许使用的数据种类 不同的数据类型在数据表示形式 数据的合法取值范围 数据的精度 在内存中的存放形式以及所能参与的运算等方面都大不相同 C 语言的数据类型如图 2-1 所示 基本整型 (int) 整型 短整型 (short) 基本类型 长整型 (long) 单精度型 (float) 实型双精度型 (double) 字符型 (char) 数据类型 构造类型 空类型 (void) 数组类型结构体类型共用体类型 指针类型 空类型 枚举类型 图 2-1 C 语言的数据类型 2.2 常量 常量是指在程序运行过程中其值不能改变的量 常量无需定义, 可以直接使用, 常量的 类型由它的表示形式决定 在 C 语言中, 常量分为整型常量 实型常量 字符常量 字符串 常量 4 种 整型常量 整型常量是整型数值的量 在 C 语言中, 整型常量按表示形式可分为十进制整型常量 八进制整型常量和十六进制整型常量 3 种 1) 十进制整型常量 : 数学中的整数, 它是由 0~9 十个数字的数字序列及正负号组成的, 数字的第一个字符可以是正负号, 但不能是数字 0, 如 65,+37,-78 科学出版社职教技术出版中心 2) 八进制整型常量 : 由 0~7 八个数字的数字序列组成的八进制数 在 C 语言中, 为了 区分八进制整型常量与十进制整型常量, 规定八进制整型常量的第一个数字是 0 同样, 八进

30 第 2 章数 据 21 制整型常量也有正负之分 例如,034,+049,-025 3) 十六进制整型常量 : 由 0~9 十个数字与 A~F( 或 a~f) 六个字母的 16 个字符组成 的十六进制数 在 C 语言中, 规定十六进制整型常量以 0x( 或是 0X) 开头 同样, 十六 进制整型常量也有正负之分 例如,0x123,+0x56,-0X789 整型常量按其数据类型可分为基本整型常量 短整型常量 长整型常量 基本整型常量 和短整型常量的取值范围都是 ~32767; 长整型常量的取值范围是 ~ 实型常量 实型常量又称为实型数或实数 在 C 语言中, 实型常量采用十进制数表示 实型常量按 其表示形式分为十进制形式和指数形式 1) 十进制形式 : 由十进制整数部分 小数点和十进制小数部分组成 其中, 小数点是必 不可少的, 整数部分和小数部分是可有可无的 例如,35.69,0.12,.74,+93.3, ) 指数形式 : 即数学中的科学计数法 它的表示形式为 ±XE±Y 其中, 第一个 ± 表示实数的正负 ;X 表示实数中的底数, 底数可以是十进制整数常量或 十进制实型常量 ;E( 或是 e) 表示基数 10; 第二个 ± 表示指数的正负号 ;Y 表示指数, 指数 必须是十进制整型常量 底数 X 基数 E( 或是 e) 和指数 Y 三个部分必不可少 例如 : e3, 23E+5, 53.E 实型常量按其数据类型可分为单精度实型常量和双精度实型常量两种 单精度实型常量 的末尾用字母 F 或 f 表示, 如 F,35.5E4f 双精度实型常量末尾没有字母, 如 ,24.1E 字符常量 字符常量是由英文半角的单引号 ' ' 为定界符的字符 字符常量分为普通字符常量和转 义字符常量两种 C 语言中的字符常量与 ASCII 表中的字符是一一对应的 1. 普通字符常量 普通字符常量是相对转义字符常量而言的 字符常量是由一对英文半角的单引号 ' ' 括起来 的单个字符常量 例如 : 'A', '0', 'c','!' 其中, 字符常量的单引号是定界符号, 它是必不可少的, 但是它不是字符常量的一部分 所以, 在执行字符常量输入数据或输出结果时, 字符常量没有定界符

31 22 例 2-1 字符常量的输入和输出 main() { char ch; scanf("%c",&ch); printf("%c,%c",ch,'a'); 输入以下字符 : A 运行结果如下 : A,a 本例中, 通过 scanf 函数给 ch 变量输入一个字符常量 A, 没有加定界符 ;printf 函数输出的第二个数据是字符常量 a 在 C 语言中, 英文字母是区分大小写的,'A' 和 'a' 是两个不同的字符常量 而且, 小写字母和其对应的大写字母之间相差 32 例如,'A' 的 ASCII 码值为 65,'a' 的 ASCII 码值为 97 '0' 和 0 是两个不同的常量,'0' 是字符常量, 而 0 是整型常量 二者在形式上, 主要以单引号为区分标准 '0' 对应的 ASCII 值为整型常量 48;0 就是整型常量 0 2. 转义字符常量 转义字符常量又称换码序列常量, 它是一种特殊的字符常量 转义字符常量是由英文半角的单引号 ' ' 括起来的以 \ 开头的多个字符 在 C 语言中, 由于单引号 ' 双引号 " 反斜杠 \ 等字符常量被作为特殊用途, 所以, 为了能正确地表示这些字符常量, 规定在其前面加上 \ 字符 例如, 当表示单引号 ' 双引号 " 反斜杠 \ 时, 用 \' \" \\ 分别来表示 表 2-1 为常用的转义字符 表 2-1 转义字符及其含义字符形式含义 ASCII 码 \n 回车并换行, 将当前位置移到下一行行首 10 位十六进制数所代表的字符科学出版社 \b 退格, 将当前位置移到前一列 8 \t 水平制表, 将当前位置移到下一个 Tab 位置 9 \r 回车, 将当前位置移到本行行首 13 \f 走纸换页, 将当前位置移到下页开头 12 \' 单引号字符 39 \" 双引号字符 34 \\ 反斜杠字符 92 \ddd 1~3 位八进制数所代表的字符 职教技术出版中心

32 第 2 章数 据 23 其中,\ddd 这种形式用来表示 1~3 位八进制数所对应的 ASCII 码值 例如 : 'A', 'c' '\101' '\143' \xhh 这种形式用来表示 1~2 位十六进制数所对应的 ASCII, 为了与八进制形式区分,x 代表的是十六进制的形式 例如 : 'A', 'c' '\x41' '\x63' 例 2-2 转义字符举例 main() { printf("\"welcomee\b"); printf(" to\t"); printf("beijing.\"\n"); 运行结果如下 : "welcome to Beijing." 在本例中, 第一个 printf 函数输出 "welcomee 的字符序列, 退格, 删除字母 'e'; 第二个 printf 函数输出 to 的字符序列, 光标水平跳到下一制表位 ; 第三个 printf 函数输出 Beijing" 字符序列并换行 字符串常量字符串常量是由英文半角双引号 " " 为定界符括起来的零个或多个字符序列 例如 : "Beijing","C","hello" 字符串常量和字符常量的区别如下 1) 在形式上, 字符串常量的定界符是双引号, 字符常量的定界符是单引号 2) 在存储形式上, 字符串常量是以每个字符的 ASCII 码值存放的, 系统在编译时, 在字符串末尾自动加上 '\0' 的转义字符, 作为字符串的结束标志 例如, 字符串常量 "Beijing", 它的有效字符长度个数为 7, 加上 '\0', 所以在内存中共占用 8 个字节的存储空间, 如图 2-2 所示 B e i j i n g \0 图 2-2 字符串存储形式字符常量在内存中只占用一个字节 例如, 字符常量 'A' 和字符串常量 "A" 在内存中的形式如图 2-3 所示

33 24 A A \0 (a) 字符常量 (b) 字符串常量 图 2-3 字符常量和字符串常量的存储形式 3) 字符串常量可以有空字符串, 即 " ", 字符常量没有空字符 空串表示字符串含有零个字符, 在内存中, 占用一个字节空间 ; 空串和空格串是两个不同的字符串常量, 空格串的表示形式是 " ", 它是含有一个空格字符的字符串常量, 在内存中, 占用两个字节的空间 例 2-3 字符串举例 main() { printf("%s,%c\n","beijing", 'a'); printf("%s", "a"); 运行结果如下 : Beijing,a a 符号常量 在 C 语言中, 常用标识符代表常量, 叫做符号常量 为了与变量区分, 符号常量一般用大写字母来定义, 变量用小写字母来定义 符号常量在使用之前, 必须先定义, 定义形式如下 : #define 标识符常量 其中,#define 表示预处理中的宏定义, 它的作用是用符号常量代表其后面的常量 ; 标识符表示符号常量的名字 ; 常量表示符号常量所要代表的常量值 例如 : #define PI #define TRUE 1 #define M 100 在使用 #define 定义符号常量时, 一个 #define 只能定义一个符号常量 ;#define 表示 C 语言中的命令行, 所以,#define 末尾没有分号, 每个 #define 占一行 ; 符号常量可在程序的任意位置定义, 但必须在使用符号常量之前, 一般放在程序的开始位置定义 例 2-4 输入圆的半径, 求圆的周长和面积 #define PI main() { float r,l,s; scanf("%f",&r); l=2*pi*r; s=pi*r*r; 科学出版社职教技术出版中心

34 第 2 章数 据 25 printf("circuit length is %f\n",l); printf("area is %f",s); 输入半径 : 2 运行结果如下 : circuit length is area is 本例中, 用 #define 定义一个符号常量 PI,PI 代表的值是 , 通过 scanf 输入函数给变量半径 r 赋值 2, 并将程序中 PI 的值替换为 , 计算圆的周长和面积, 最后输出圆的周长和面积的值 2.3 变量 变量是在程序运行过程中其值可以改变的量 变量在使用之前必须先定义, 定义必须符合标识符的命名规则 标识符 标识符是 C 语言中名称的字符序列, 用来标示变量名 函数名 数组名等 标识符分为关键字和用户标识符 1. 关键字 关键字又称为保留字, 是 C 语言系统规定的具有特殊含义的标识符, 如类型名 语句名等 C 语言中一共有 32 个关键字, 每个关键字都有固定的含义, 关键字都是由小写字母组成, 并且不允许用户标识符定义为关键字 C 语言中的关键字如表 2-2 所示 表 2-2 C 语言关键字 分类关键字 数据类型保留字存储类型保留字语句保留字其他保留字 char const double float signed enum struct union int unsigned long void short volatile auto extern register static break case for continue goto if default do return switch else while typedef sizeof 2. 用户标识符 用户标识符是除关键字以外的标识符 用户标识符是用户根据需要, 自己定义的标识符 C 语言规定, 一是用户标识符只能由英文字母 (a~z 或 A~Z) 数字(0~9) 或下画线 (_)

35 26 组成, 并且第一个字符只能是字母或下划线, 即不能是数字, 例如,my a_b wu1; 二是用户标识符区分字母的大小写, 即小写字母和大写字母是两个不同的字符, 例如,YOU you; 三是用户标识符在定义时, 应该遵循 见名知义 和 简洁明了 的原则, 例如,max( 最大值 ) sum( 总和 ); 四是用户标识符的长度范围没有限定, 这主要取决于系统, 不同系统所能识别的标识符长度是不同的, 但是一般只能识别前 8 个字符 用户标识符的定义不能与关键字相同, 但是, 由于用户标识符区分大小写字母, 所以, 若关键字的字母改为大写字母时, 就不是所谓的关键字了 例如 :int 和 INT 是两个不同的标识符,int 是关键字, 而 INT 是用户标识符 变量 1. 变量的类型 (1) 整型变量在 C 语言中, 整型变量分为短整型变量 (short int) 基本整型变量(int) 和长整型变量 (long int)3 种 短整型变量 基本整型变量和长整型变量在内存中分别占 2 个字节 2 个字节和 4 个字节, 如表 2-3 所示 表 2-3 整型变量及其属性 类型定义存储空间取值范围 短整型 short int 或 short 2 个字节 ~32767 基本整型 int 2 个字节 ~32767 长整型 long int 或 long 4 个字节 ~ 无符号短整型 unsigned short 2 个字节 0~65535 无符号基本整型 unsigned int 2 个字节 0~65535 无符号长整型 unsigned long 4 个字节 0~ 其中, 关键字 unsigned 表示无符号, 它用于修饰数据类型所定义的变量是无符号的数值, 即 0 或正整数 (2) 实型变量实型变量分为单精度实型变量 (float) 和双精度实型变量 (double float) 两种 单精度实型变量和双精度实型变量在内存中分别占用 4 个字节和 8 个字节的存储空间, 如表 2-4 所示 表 2-4 实型变量及其属性 类型定义存储空间取值范围有效位数 单精度实型 float ~ 位 双精度实型 double float 或 double ~ 位 科学出版社职教技术出版中心 (3) 字符变量字符变量只有一种数据类型, 它的关键字是 char 字符变量在内存中占用 1 个字节的存

36 第 2 章数 据 27 储空间, 它的取值范围是 -127~128 无符号字符变量 ( 即 unsigned char) 在内存中占用 1 个 字节的存储空间, 它的取值范围是 0~ 变量的定义 变量必须先定义, 后使用, 定义是指该变量根据数据类型, 在内存空间划分一定的存储 区域, 在该区域存放同类型的常量 变量定义必须放在变量使用之前, 一般放在函数体的 { 之后 定义变量的一般形式为 存储类型数据类型变量名 ; 存储类型是限制变量所在的存储位置, 当存储类型缺省时, 变量默认的存储类型为 auto 类型 ; 数据类型决定变量所存放的数据的类型, 同时, 根据变量的数据类型, 决定变量所分配的内存空间 ; 变量名是变量的名字, 是用户标识符, 在同一函数中, 不能有两个或两个以上相同的变量名 例如 : int x; double y; static int z; 变量在定义过程中, 应注意以下几点 1) 类型标识符是关键字, 且关键字都是小写字母 2) 类型标识符和被定义变量之间必须以空格分开, 否则将出错 3) 当一条语句中定义多个变量时, 变量名之间用逗号分隔, 最后一个变量名之后以分号结束 例如 : int a,b,c; 4) 类型标识符是关键字, 不能作为变量名来定义和使用 2.4 运算符和表达式 C 语言提供了丰富的运算符, 运算符的优先级和结合性也有所不同 ;C 语言中的表达式也是种类繁多, 功能更是各有不同 运算符和表达式 1. 运算符 C 语言中的运算符种类较多, 灵活性大 除了其他高级语言所具有的算术运算符 关系运算符和逻辑运算符以外,C 语言还提供了如 =, 等特有的用于完成特殊任务的运算符 C 语言按运算符的作用可分为如下 13 类 1) 算术运算符 :+,-,*,/,%,-( 取负 ),++,-- 2) 关系运算符 :>,>=,<,<=,= =,!=

37 28 3) 逻辑运算符 :!,&&, 4) 位运算符 :~,&,,^,<<,>> 5) 赋值运算符 := 复合算术赋值符号 :+=,-=,*=,/=,%= 复合位赋值符号 :&=, =,^=,>>=,<<= 6) 条件运算符 :? : 7) 逗号运算符 :, 8) 指针运算符 :*,& 9) 求字节运算符 :sizeof 10) 强制类型转化运算符 :() 11) 分量运算符 :-> 12) 下标运算符 :[] 13) 括号运算符 :() C 语言的运算符比较多, 读者应从以下几个方面来学习和掌握它们的功能 只有知道运算符的功能, 我们才能更好地使用它们 1) 运算符的操作数和操作对象的类型 操作数是指运算符所需的操作对象的个数, 不同的运算符, 所需的操作对象个数不同 运算符按着操作数的数目, 可分为单目运算符 双目运算符和三目运算符 3 种 例如, - ( 取负 ) 是单目运算符 ; + 是双目运算符 ;?: 是三目运算符 同时, 不同的运算符要求操作对象的类型也有所不同 例如, 算术运算符中, 取余运算符 % 要求两个操作对象都是整型数据, 其余运算符要求是整型数据或实型数据 2) 运算符的优先级 优先级是指多个运算符同时存在时, 运算的先后顺序 运算遵循 先执行优先级高的运算符 的原则 例如, 算术运算符的优先级高于关系运算符, 故先执行算术运算符 3) 运算符的结合性 结合性是指运算符的运算方向, 有自右向左结合和自左向右结合两种 例如,2/3*4 这个表达式, 除运算符 / 和乘运算符 * 的优先级相同, 按结合性的原则, 选择自左向右的结合方向, 先执行除运算, 再执行乘运算 科学出版社 4) 运算结果的类型 不同的运算符和操作数会得到不同的运算结果 例如, 除运算符 / 的两个操作对象如果都是整型数据, 其运算结果也是整型数据, 如 5/2 的值是 2; 除运算 / 的两个操作对象如果有一个是实型数据, 其运算结果也是实型数据, 如 5.0/2 的值是 表达式表达式是指由运算符和运算符所需要的操作对象按照 C 语言的语法规则连接在一起的式子, 它有如下定义 1) 常量 变量 函数是一个表达式 2) 运算符与上述各项连接起来的式子是一个表达式 3) 运算符与表达式连接起来的式子是一个表达式 职教技术出版中心

38 第 2 章数 据 29 表达式具有值和类型两个属性 表达式的值和类型取决于表达式运算结果的值和类型 表达式的求值是先按运算符的优先级进行运算, 当运算符的优先级相同时, 再根据运算符的结合性进行运算 赋值运算符 1. 赋值运算符和表达式赋值运算符为 =, 它的功能是将赋值运算符右侧的表达式的值赋值给左侧的变量 由赋值运算符和两个操作对象组成的式子是赋值表达式 赋值表达式的形式如下 : 变量 = 表达式其中, 赋值运算符的左侧必须是变量, 因为只有变量才能被分配内存单元, 这样, 赋值运算符右侧表达式的值才能被存放在变量对应的内存单元中 例如,a=5, 将整型常量 5 存放到变量 a 所分配的内存中 赋值运算符的结合性是右结合性 例如,a=b=3 这个表达式, 按右结合性的原则, 从右向左运算, 先求 b=3 的值, 即 b 变量的值为 3, 再求 a=b 的值, 即 a 变量的值为 3 当赋值表达式的左侧变量和右侧表达式的类型不同时, 以左侧变量类型为准, 系统自动进行类型转换 例如 : 变量 a 的类型为整型, 那么 a=4.3 这个表达式, 右侧 4.3 为实型, 则 a 的值为 4 2. 复合运算符和表达式复合运算符是由算术运算符或位运算符与赋值运算符组成的复合赋值运算符 本节只介绍算术复合赋值运算符, 如表 2-5 所示 表 2-5 算术复合赋值运算符 运算符 名 称 表达式形式 等价形式 += 加赋值 a+=b a=a+b -= 减赋值 a-=b a=a-b *= 乘赋值 a*=b a=a*b /= 除赋值 a/=b a=a/b %= 取余赋值 a%=b a=a%b 其中, 复合赋值运算符的前面是算术运算符, 后面是赋值运算符 复合赋值运算符的功能是将复合赋值运算符左侧的操作对象 ( 即变量 ) 和右侧的操作对象进行某一算术运算, 得到的结果再次赋值给左侧的变量 例如,x+=5+7 等价于 x=x+(5+7),y*=10-5 等价于 y=y*(10-5)

39 算术运算符 1. 算术运算符在 C 语言中, 算术运算符是由 +,-,*,/,%,-( 取负 ),++,-- 8 种运算符组成的 如表 2-6 所示 ( 表中设 a 的值为 2,b 的值为 3) 表 2-6 算术运算符 运算符 名 称 表达式 功 能 运算结果 + 加 a+b 求 a 和 b 的和 5 - 减 a-b 求 a 和 b 的差 -1 * 乘 a*b 求 a 和 b 的乘积 6 / 除 a/b 求 a 和 b 的商 0 % 取余 a%b 求 a 除以 b 的余数 2 - 取负 -a 求 a 的负数 自增 ++a 或 a++ 求 a=a 自减 --a 或 a-- 求 a=a-1 1 其中, 算术运算符中只有取负 - 运算符是单目运算符, 其他运算符都是双目运算符 ; 另外, 取余运算符 % 要求两个操作对象是整型数据, 其他运算符的操作对象是整型或实型数据 除运算分为整除和实除两种 整除是指除运算表达式中的两个操作对象都是整型数据, 其结果是整型数据 例如,6/2 的结果是 3 实除是指除运算表达式中的两个操作对象任意一个或两个为实型数据, 其结果是实型数据 例如,3.0/2 的结果是 1.5,4.5/3.0 的结果是 1.5 取余运算符 % 的除数和被除数必须是整型数据, 运算结果的正负与被除数相同 例如,5%2 的结果是 1,3%4 的结果是 3,-5%3 的结果是 -2,6%-4 的结果是 2 2. 算术表达式 算术表达式是由算术运算符 小括号 () 以及操作对象组成的式子 若算术表达式中只有一个算术运算符, 对表达式求解时, 直接根据算术表达式中的算术运算符的功能进行计算 例如,4*5 的结果是 20 若算术表达式中含有多个算术运算符, 对表达式求解时, 要先分析表达式中各个运算符的优先级, 按优先级的高低进行运算的排序, 若优先级相同, 则要根据运算符的结合性, 决定运算的次序, 最终得到表达式的结果 例如,3+5*2-6/4%(1+2), 在这个表达式中, 根据算术运算符的优先级和结合性, 先计算 (1+2), 再计算 5*2 和 6/4, 再计算 1%3, 最后, 计算 的结果是 自增 (++) 和自减 (--) 科学出版社职教技术出版中心 算术运算符的最后两个运算符是自增运算符 ++ 和自减运算符 -- 自增运算符 ++

40 第 2 章数 据 31 的功能是将其操作对象的值增 1, 自减运算符 -- 的功能是将其操作对象的值减 1 自增运算符 ++ 和自减运算符 -- 可以放在操作对象的左侧, 也可以放在操作对象的右侧, 但是, 位置不同, 含义也不同 下面以自增运算符 ++ 为例, 说明其不同之处 设基本整型变量 i=3, 则 : 1)j=++i, 先将 i 自加 1, 后执行, 表达式的值为 4 2)j=i++, 先执行, 后将 i 自加 1, 表达式的值为 3 ++i 和 i++ 这两个表达式都将变量 i 的值变为 4, 但是, 由于自增运算符 ++ 的位置不同, 导致这两个表达式的值也不同 自增运算符 ++ 和自减运算符 -- 的操作对象要求必须是变量, 因为它使得变量的值改变了 另外, 操作对象的数据类型必须是整型 例 2-5 算术运算符举例 main() { int i=2,j; j=i++; printf("%d,%d\n",i,j); j=++i; printf("%d,%d",i,j); 运行结果如下 : 3,2 4,4 在本例中, j=i++; 是将 i 的值赋值给变量 j, 所以,j 的值为 2, 变量 i 自加 1 后,i 的值为 3; j=++i; 是将 ++i 的值赋值给变量 j, 所以, 变量 i 自加 1 后,i 的值为 4,j 的值为 关系运算符 在 C 语言中, 关系运算是将两个操作对象进行比较大小的运算, 关系运算符有 6 种, 如表 2-7 所示 ( 设 a 的值为 2,b 的值为 3) 表 2-7 关系运算符 运算符 名 称 表达式 功 能 结 果 > 大于 a>b 求 a 是否大于 b 0 < 小于 a<b 求 a 是否小于 b 1 >= 大于等于 a>=b 求 a 是否大于或等于 b 0 <= 小于等于 a<=b 求 a 是否小于或等于 b 1 == 等于 a==b 求 a 是否等于 b 0!= 不等于 a!=b 求 a 是否不等于 b 1

41 32 关系运算符都是双目运算符, 其优先级别比算术运算符低, 结合性都是自左向右结合的 关系表达式是由关系运算符和两个操作对象组成的式子 关系表达式的求解实际上是一个逻辑判断的过程, 判断的结果是逻辑值, 逻辑值中 真 用整型常量 1 代表, 假 用整型常量 0 代表 例如,3>5 的值为 0,6<9 的值为 1,5!=4 的值为 1 在关系运算符中, 等于运算符 = = 是由两个赋值运算符构成的, 它的功能是判断左右两个操作对象是否相等 大于等于运算符 >= 和小于等于运算符 <= 是分开写的, 在 C 语言中不支持数学形式的 和 例 2-6 关系运算符举例 main() { int a=3,b=5,c=4; printf("a<b:%d\n",a<b); printf("a>c:%d\n",a>c); printf("a+b<=c:%d\n",a+b<=c); printf("b-c==c-a:%d\n",b-c==c-a); printf("a!=c:%d",a!=c); 运行结果如下 : a<b:1 a>c:0 a+b<=c:0 b-c==c-a:1 a!=c: 逻辑运算符 逻辑运算符是用来表示各个操作对象之间的逻辑关系的 逻辑运算符有 3 种, 如表 2-8 所示 ( 设 a 的值为 1,b 的值为 0) 表 2-8 逻辑运算符 运算符名称表达式功能结果 && 逻辑与 a&&b 求 a 和 b 的与 0 逻辑或 a b 求 a 和 b 的或 1! 逻辑非 ( 逻辑反 )!a 求 a 的非 0 科学出版社职教技术出版中心 在逻辑运算中, 判断一个操作对象是否为真, 只需要判断操作对象的值是否为非 0, 非 0 即 真,0 即 假 逻辑表达式是由逻辑运算符和操作对象组成的式子 逻辑表达式的结果是一个逻辑值, 用 1 代表 真, 用 0 代表 假 逻辑与 && 的功能是当两个操作对象都是 真 时, 其运算结果为 真 ; 否则, 其

42 第 2 章数 据 33 运算结果为 假 逻辑或 的功能是当两个操作对象至少有一个为 真 时, 其运算结果为 真 逻辑非! 的功能是当操作对象为 真 时, 运算结果为 假 ; 反之, 当操作对象为 假 时, 运算结果为 真 逻辑运算符真值表如表 2-9 所示 表 2-9 逻辑运算真值表 a b a&&b a b!a!b 真 真 真 真 假 假 真 假 假 真 假 真 假 真 假 真 真 假 假 假 假 假 真 真 逻辑运算符中逻辑与 && 和逻辑或 的优先级比算术运算符和关系运算符都低, 它们的结合性是自左向右的 ; 逻辑运算符的逻辑非! 的优先级比算术运算符和关系运算符高, 它的结合性是自右向左的 当一个表达式中存在多种运算符时, 根据其优先级和结合性来决定运算的次序 例如,3+5>4*2&&7!0, 在这个表达式中, 有算术运算符 关系运算符和逻辑运算符 根据运算符的优先级, 先计算逻辑非!0, 结果为 1; 再计算算术运算乘 4*2, 结果为 8; 再计算算术运算加 3+5, 结果为 8; 再计算关系运算符大于 8>8, 结果为 0; 再计算逻辑与 0&&7, 结果为 0; 最后计算逻辑或 0 1, 结果为 1 一个逻辑与表达式, 形如 a&&b&&c, 当 a 的值为 假 时, 无需计算 b 和 c 的值, 整个表达式的值为 假 ; 当 a 的值为 真 时, 计算 b 的值,b 的值为 假 时, 表达式的值为 假 ; 当 b 的值为 真 时, 计算 c 的值,c 的值为 真, 表达式的值为 真,c 的值为 假, 表达式的值为 假 一个逻辑或表达式, 形如 a b c, 当 a 的值为 真 时, 无需计算 b 和 c 的值, 整个表达式的值为 真 ; 当 a 的值为 假 时, 计算 b 的值,b 的值为 真 时, 表达式的值为 真 ; 当 b 的值为 假 时, 计算 c 的值,c 的值为 真, 表达式的值为 真,c 的值为 假, 表达式的值为 假 条件运算符条件运算符是 C 语言中唯一一个三目运算符, 它需要三个操作对象, 条件表达式是由条件符和其三个操作对象构成的式子 条件表达式的形式如下 : 表达式 1? 表达式 2: 表达式 3 条件表达式的求解过程是 : 先计算表达式 1 的值, 如果表达式 1 的值为真 ( 非 0), 则计算表达式 2 的值, 并将表达式 2 的值作为条件表达式的值 ; 如果表达式 1 的值为假, 则计算表达式 3 的值, 并将表达式 3 的值作为条件表达式的值 例如,2>5?1:0, 这个条件表达式中的表达式 1 为 2>5, 表达式 1 的值为假, 所以条件表达式的值为表达式 3 的值 0 条件表达式中, 表达式 1 可以是任意表达式, 且表达式 1 的结果是一个逻辑值, 根据其真值与假值, 决定整个条件表达式的值 条件运算符的优先级比较低, 它低于算术运算符

43 34 关系运算符和逻辑运算符, 但是, 它高于赋值运算符 条件运算符的结合性是自右向左结合的 例如,6<5?2:3>2?1:0, 按照自右向左结合的原则, 先计算 3>2?1:0 这个条件表达式, 结果为 1; 再计算 6>5?2:1 这个表达式, 结果为 逗号运算符 在 C 语言中逗号, 是一种运算符, 称为逗号运算符 它的功能是把两个或两个以上的表达式连接起来组成一个表达式, 称为逗号表达式 逗号表达式的形式如下 : 表达式 1, 表达式 2,, 表达式 n 逗号表达式的求解过程是 : 先求解表达式 1 的值, 再求解表达式 2 的值, 依次求解到表达式 n 的值, 表达式 n 的值作为整个逗号表达式的值 例如 : 3+2,4*5,7>2,3&&0 这个表达式由 4 个表达式构成, 依次计算表达式的值为 , 所以逗号表达式的值为 0 逗号运算符的优先级别最低, 它比任何一个运算符的优先级别都低 逗号运算符的结合性是从左自右的 C 语言中的逗号, 有两个用途, 一是作为运算符, 即是逗号运算符 ; 二是作为间隔符, 是普通的逗号 例如 : int a,b; 这是一条变量定义语句, 定义了 a 和 b 两个变量, 语句中的逗号, 作为变量的间隔符 运算符的优先级和结合性 C 语言中的运算符比较多, 在进行混合运算表达式的计算时, 必须根据运算符的优先级和结合性来决定运算的次序 如表 2-10 为运算符的优先级和结合性 表 2-10 运算符的优先级和结合性 优先级运算符结合性 1 [] () ->. 从左至右 2! ~ ( 取负 ) * & sizeof 从右至左 3 * / % 从左至右 从左至右 5 << >> 从左至右 6 < <= > >= 从左至右 7 ==!= 从左至右 8 & 从左至右 科学出版社职教技术出版中心

44 第 2 章数 据 35 优先级运算符结合性 续表 9 ^ 从左至右 10 从左至右 11 && 从左至右 12 从左至右 13?: 从右至左 14 = += -= *= /= %= &= ^= = >>= <<= 从右至左 15, 从左至右 本章小结 本章一是介绍了 C 语言数据类型的分类 ; 二是介绍了 C 语言中常量的概念 分类及使用 ; 三是介绍了 C 语言中变量的概念 分类及使用 ; 四是介绍了 C 语言中各种运算符号的功能 优先级和结合性 ; 五是介绍了表达式的概念和各种表达式的运算方法 实 验 实验目的 1) 掌握 C 语言的基本数据类型 2) 掌握 C 语言的运算符功能 3) 掌握简单程序的设计 实验内容 1) 分析下列程序中变量的数据类型, 得出程序的输出结果 main() { int a=5,b=5,y,z; y=b>++a?++b:a; z=++a>b?a:y; printf("%d,%d,%d,%d",a,b,y,z); 经过分析, 变量 a,b,y,z 为 4 个基本整型变量, 输出结果为 7,4,6,7 2) 任意输入 3 个数, 求其最小数 #include "stdio.h" main()

45 36 { int a,b,c; printf("input a,b,c:"); scanf("%d,%d,%d",&a,&b,&c); if(a>b) a=b; if(a>c) a=c; printf("the min is %d",a); 习 题 一 选择题 1. 以下数据中, 不正确的数值或字符常量是 ( ) A.0 B.5L C.o13 D 在 C 语言中, 能代表逻辑值 真 的是 ( ) A.True B. 大于 0 的数 C. 非 0 整数 D. 非 0 的数 3. 以下运算符中, 优先级最高的运算符是 ( ) A. B.% C.! D.= = 4. 下列数据中, 为字符串常量的是 ( ) A.A B."house" C.How do you do. D.$abc 5. 设 a=12, 且 a 定义为整型变量 执行语句 a+=a-=a*=a; 后 a 的值为 ( ) A.12 B.144 C.0 D 假设所有变量均为整型, 表达式 a=2,b=5,a>b?a++:b++,a+b 的值是 ( ) A.7 B.8 C.9 D.2 7. 经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b) 在微机上的值分别为 ( ) char x=65; float y=7.3; int a=100; double b=4.5; A.2,2,2,4 B.1,2,2,4 C.1,4,2,8 D.2,4,2,8 8. 执行下列语句后,a 和 b 的值分别为 ( ) 科学出版社职教技术出版中心 int a,b; a=1+'a'; b=2+7%-4-'a'; A.-63,-64 C.1,-60 B.98,-60 D.79,78

46 第 2 章数 9. 以下标识符中, 不能作为合法的 C 用户定义标识符的是 ( ) A.For B.Printf C.WORD D.sizeof 10. 下列语句的结果是 ( ) main() { int j; j=3; printf("%d,",++j); printf("%d",j++); 据 37 A.3,3 B.3,4 C.4,3 D.4,4 11. 以下字符中不是转义字符的是 ( ) A.'\a' B.'\b' C.'\c' D.'\\' 12. 设 C 语言中, 一个 int 型数据在内存中占 2 个字节, 则 unsigned int 型数据的取值范 围为 ( ) A.0~255 B.0~32767 C.0~65535 D.0~ 若有定义 int a=7;float x=2.5,y=4.7; 则表达式 x+a%3*(int)(x+y)%2/4 的值是 ( ) A B C D 以下选项中合法的实型常数是 ( ) A.5E2.0 B.E-3 C..2E0 D.1.3E 15. 下列程序的输出结果是 ( ) main() { int m=12,n=34; printf("%d%d",m++,++n); printf("%d%d",n++,++m); A B C D 下列程序的输出结果是 ( ) main() { int k=2,i=2,n; n=(k+=i*=k); printf("%d,%d\n",n,i); A.8,6 B.8,3 C.6,4 D.7,4

47 38 二 填空题 1.C 语言表达式!(3<6) (4<9) 的值是 2. 设 a,b,t 为整型变量, 初值为 a=7,b=9, 执行完语句 t=(a>b)?a:b 后,t 的值是 3. 设 x 的值为 15,n 的值为 2, 则表达式 x%=(n+3) 运算后,x 的值是 4. 若 int a=1,b=2,c=3; 表达式 (a&&b) (a b) 的值是 5. 假设变量 a,b 均为整型, 表达式 (a=5,b=2,a>b?a++:b++,a+b) 的值是 6. 设 c 语言中,int 类型数据占 2 个字节, 则 long 类型数据占 个字节,short 类型数据占 字节 7. 执行下列语句的结果是 a=3;printf("%d,",++a);printf("%d",a++); 8. 下列语句的输出结果是 unsigned int b=65535;printf("%d",b); 科学出版社职教技术出版中心

48 第 3 章 顺序结构的程序设计 顺序结构程序是指程序执行过程中按书写的顺序从上到下, 逐条语句顺序执行, 一直到最后一条语句 其中没有跳转, 每一条语句都被执行一次, 而且只能被执行一次 如图 3-1 所示, 从程序的开始先执行 A 语句, 再执行 B 语句 图 3-1 顺序结构

49 顺序结构的语句 顺序结构程序常用的语句主要包括赋值语句 空语句 复合语句和实现输入 / 输出操作的 函数调用语句 赋值语句 赋值语句就是由赋值表达式与分号 ; 构成的, 它是程序中使用最多的语句之一, 赋值语句的格式为 变量 = 表达式 ; 赋值语句的功能是先求赋值运算符右部表达式的值, 然后把这个值赋给左部的变量 说明 : 1) 赋值语句中的 = 叫做赋值号, 与数学中的等号 = 具有不同的意义 如等式 x=x+1 在数学中是不成立的, 但在赋值语句中 x=x+1 是有意义的, 它表示把变量 x 中原来的值与 1 相加后送到变量 x 中去, 同时 x 中原有的值就被新值替换了 2) 赋值运算符 = 左边必须是一个变量, 不能是常量或表达式 一行内可写多个赋值语句, 各语句末尾必须用分号结束 例如 : a=1; b=2; c=3; 3) 变量 =( 变量 = 表达式 ) 的形式也是成立的, 其展开之后的一般形式为 例如 : 变量 = 变量 = = 表达式 ; a=b=c=10; 按照赋值运算符的右结合性, 上面语句等效于 : c=10; b=c; a=b; 结果 3 个变量 a b c 的值均是 10 4) 赋值语句可以改变变量的值 在一个程序中, 如果多次给一个变量赋值, 变量的值取的是最后一次赋的值 例如 : x=5; x=8; 科学出版社职教技术出版中心 执行第一语句后 x 值为 5, 执行第二语句后 x 值为 8 因此, 最后 x 的值为 8 5)C 语言中有形式多样的赋值操作 例如, w*=w+6; 和 w--; 都是赋值语句 ; 又如, x=10,y=20,z=30; 是由赋值表达式构成的逗号表达式语句, 也可以实现赋值功能 6) 注意在变量定义中给变量赋初值和赋值语句的区别 给变量赋初值是变量说明的一部分, 赋初值后的变量与其后的其他同类变量之间必须用逗号间隔, 而赋值语句则必须用分号

50 第 3 章顺序结构的程序设计 41 结尾 例如 : int a=15,b; 在变量定义时, 不允许连续给多个变量赋初值 如以下形式是错误的 : int a=b=15; 必须写成 : int a=15,b=15; 而赋值语句允许连续赋值 如下述说明 : int a, b; a=b=15; 7) 当赋值运算符左右两边的数据类型不同时, 系统自动将赋值运算符右边的表达式数据类型转换成左边变量的数据类型 例 3-1 设变量 a 的值为 10, 变量 b 的值为 20, 试编写一个程序, 把两个变量的值互换 main() { int a=10,b=20,temp; temp=a; /* 变量 a 的值送给变量 temp, 暂时存储 */ a=b; /* 变量 b 的值送给变量 a, 此时 a 与 b 的值相同 */ b=temp; /* 变量 temp 的值送给变量 b,a 与 b 的值交换 */ printf("a=%d,b=%d\n",a,b); 运行结果如下 : a=20,b= 空语句 下面是一个空语句 : ; 即只有一个分号的语句, 它什么也不做 有时用来做被转向点, 或循环语句的循环体 空语句在语法上占据一个语句的位置, 但不执行任何功能 复合语句 复合语句也称为程序块或块语句, 它是把多个语句用花括号 { 括起来组成的一个语句 在程序中应把复合语句看成是一条语句, 而不是多条语句 复合语句常与控制语句连用 复合语句的一般格式如下 : { 内部数据说明 ;

51 42 执行语句 ; 例 3-2 复合语句举例 main() { int s=5; printf("s=%d\n",s); { int s=10; printf("s=%d\n",s); printf("s=%d\n",s); 运行结果如下 : s=5 s=10 s=5 说明 : 1) 复合语句内的各条语句都必须以分号 ; 结尾, 在花括号 外不能加分号 2) 复合语句外的变量与复合语句内的变量的关系如同全局变量和局部变量 ( 参见第 7 章 ) 的关系一样, 复合语句内定义的变量只在本块范围内可用 3.2 输入 / 输出函数 在 C 语言中, 标准库函数 scanf 函数 printf 函数的作用分别是输入 输出相应类型的数据 输入 / 输出函数是在 C 语言头文件 stdio.h( 标准输入 / 输出文件 ) 中定义好的, 按照一定的格式输入和输出数据 格式输出函数 printf() 函数 printf() 称为格式输出函数, 在前面各章节中已用到, 作用是向终端或指定的输出设备输出若干个任意类型的数据 1. 一般形式 函数 printf() 的一般调用形式如下 : printf( 格式控制, 输出表列 ); 科学出版社职教技术出版中心 其中, 格式控制 部分是一个用双引号括起来的字符串, 用来确定输出项的格式和需要输出的字符串 ; 输出表列 可以是合法的常量 变量或表达式, 各项之间要用逗号分隔

52 第 3 章顺序结构的程序设计 43 功能 : 在格式控制下, 将各参数转换成指定格式, 在标准输出设备上显示或打印 2. 格式说明格式控制字符串包括两种信息 : 普通字符和格式字符 普通字符, 即需要原样输出的字符 1) 若双引号中不含符号 %, 输出表列 为空时, 普通字符只被简单地复制到屏幕上, 所有字符 ( 包括空格 ) 一律按照从左到右的顺序原样输出, 如果是转义字符, 则按转义字符的含义输出 例如 : printf("this is a book!\n"); 运行结果如下 : This is a book! 2) 若双引号中含 % 符号, 输出表列 需要输出一些数据时, 非格式说明的普通字符按原样输出 例如 : printf("a=%d b=%d",a,b); 在上面双引号中的字符除 %d 和 %d 以外, 其余字符按原样输出 如果 a b 的值分别为 3 4, 则运行结果如下 : a=3 b=4 3. 格式字符在输出表列中的每个输出项必须有一个与之对应的格式说明, 每个格式说明均以 % 开头, 后跟一个格式字符作为结束 表 3-1 列出了 printf() 函数中可用的格式字符和说明 表 3-1 printf 函数格式字符和说明 格式字符 说 明 d 以带符号的十进制形式输出整数 ( 正数不输出符号 ) o 以八进制无符号形式输出整数 ( 不输出前导符 0) x 或 X 以十六进制无符号形式输出整数 ( 不输出前导符 0x) u c s f e 或 E 以无符号十进制形式输出整数以字符形式输出, 只输出一个字符输出字符串以小数形式输出单 双精度实数, 隐含输出 6 位小数以标准指数形式输出单 双精度实数, 数字部分小数位数为 5 位 g 或 G 选用 %f 或 %e 格式中输出宽度较短的一种格式, 不输出无意义的 0 例 3-3 同一整型数据以不同的进制数输出

53 44 main() { int a=-1; unsigned int b=65534; printf("a=%d,%o,%x,%u\n",a,a,a,a); printf("b=%d,%o,%x,%u\n",b,b,b,b); 运行结果如下 : a=-1,177777,ffff,65535 b=-2,177776,fffe,65534 例 3-4 同一字符以不同的形式输出 main() { char c='a'; int i=97; printf("%c,%d\n",c,c); printf("%c,%d\n",i,i); 运行结果如下 : a,97 a,97 4. 附加格式说明字符 在格式说明中, 在 % 和格式字符之间可以插入如表 3-2 所示的几种附加字符, 使得各输出项按附加功能准确显示在输出设备上 表 3-2 printf 函数附加格式说明字符 字符说明 l m n 0 表示左边补 0 表示输出的是长整型整数, 可加在 d o x u 前面 表示输出数据的最小宽度, 当 m 小于输出数据的实际位数时不起作用 对实数, 表示输出 n 位小数 ; 对字符串, 表示截取 n 个字符 + 转换后的数据右对齐 - 转换后的数据左对齐 例 3-5 指定位数格式输出 main() { int a=2564,b=3; float c= ; char s='z'; 科学出版社职教技术出版中心

54 第 3 章顺序结构的程序设计 45 printf("a=%2d,b=%2d\n",a,b); printf("%f%6.3f\n",c,c); printf("%5c%-10s%5.3s\n",s, "china","china"); 运行结果如下 : a=2564,b= zchina chi 说明 : 1) 格式字符必须用小写字母, 如 %d 不能写成 %D 2) 如果想输出字符 %, 则应该在格式控制字符串中用连续的两个百分号表示, 即 %% 例如 : printf("%f%%",1.0/3); 运行结果如下 : % 3) 当格式说明个数少于输出项时, 多余的输出项不输出 ; 当格式说明多于输出项时, 各个系统的处理不同,Turbo C 对于缺少的项输出不定值,VAX C 则输出 0 值 4) 每次调用函数 printf() 后, 函数将得到一个整形返回值, 该值是正常输出的字符个数 格式输入函数 scanf() 函数 scanf() 称为格式输入函数, 即按用户指定的格式从键盘上把数据输入到指定的变量之中 用函数 scanf() 可以输入任何类型的数据, 还可以输入多个数据 1. 一般形式 函数 scanf() 的一般调用形式如下 : scanf( 格式控制, 输入地址表列 ); 其中, 格式控制 部分是一个用双引号括起来的字符串, 用来确定输入项的格式和需要输入的字符串 ; 输入地址表列 是由若干个地址组成, 代表每一个变量在内存中的地址 该函数的功能是 : 读入各种类型的数据, 接收从键盘按输入格式输入的数据并存入指定的变量地址中 这个地址是编译系统在内存中给变量分配的地址, 用户不必关心具体的地址是多少 在赋值表达式中给变量赋值, 例如 : int a; a=23; 其中,a 为变量名,23 是变量值,&a 是变量 a 的地址 例 3-6 格式输入函数举例

55 46 main() { int x,y; scanf("%d,%d",&x,&y); printf("%d\t%d\n",x,y); 输入以下字符 : 50,100 运行结果如下 : 格式说明 与 printf 函数类似,scanf 函数的格式控制字符串中也可以有多个格式说明, 格式说明的 个数应与输入项的个数相等, 数据类型应该从左到右一一对应 格式说明的个数可以少于输入项的个数, 未得到值的输入项等待下一次输入 ; 但绝不可以多于输入项的个数, 否则运行结果会出错 3. 格式字符 表 3-3 列出了 scanf 函数中可用的格式字符和说明 表 3-3 scanf 函数格式字符和说明 格式字符说明 d o x c s f e 4. 附加格式说明字符 以带符号的十进制形式输入整数 以八进制无符号形式输入整数 以十六进制无符号形式输入整数 以字符形式输入一个字符 输入字符串 以非空字符开始, 以第一个空白字符结束 以小数形式输入单 双精度实数, 隐含输入 6 位小数 以标准指数形式输入单 双精度实数, 数字部分小数位数为 6 位 在 % 和格式字符之间可以插入附加格式说明字符,scanf 函数可以使用的附加格式说明字符如表 3-4 所示 表 3-4 scanf 函数附加格式说明字符 字符说明 科学出版社职教技术出版中心 l 表示输入的是长整型数或双精度实型数, 可加在 d o x f e 前面

56 第 3 章顺序结构的程序设计 47 续表 字符说明 h m 表示输入短整型数据, 可用于 d o x 表示输入数据的最小宽度 * 表示本输入项在读入后不赋给相应的变量 说明 : 1) 在函数 scanf() 中不使用 %u 格式, 对 unsigned 型数据, 以 %d %o %x 格式输入 2) 可以指定输入数据所占列数, 系统自动按它截取所需数据 例如 : scanf("%3d%3d",&a,&b); 输入以下字符 : 系统自动将 123 赋给变量 a,456 赋给变量 b 也可用于字符型 : scanf("%3c",&c); 输入 3 个字符, 把第一个字符赋给变量 c 例如, 输入 abc,c 将得到字符 'a' 3) 输入数据时不能规定精度, 例如 : scanf("%7.2f",&a); 以上形式是不合法的, 不能试图输入以下信息而使变量 a 的值为 )% 后的附加说明字符 * 用来表示跳过它相应的数据 例如 : scanf("%2d %*3d %2d",&a,&b); 输入以下字符 : 将 12 赋给变量 a,67 赋给变量 b 第二个数据 345 被跳过不赋给任何变量 5.scanf 函数在执行中应注意的问题 1)scanf 函数中的输入地址表列是若干个变量的地址, 而不是变量名, 这与 printf 函数的输出表列不同 其表示方法是在变量名前加地址运算符 &, 如 &x 指变量 x 在内存中的地址 例如, 以下形式是不合法的 : scanf("%d",x); 应将 x 改为 &x 2) 如果在格式控制字符串中除了格式说明以外还有其他字符, 则在输入数据时应输入与这些字符相同的字符 例如 : scanf("%d,%d",&a,&b); 输入时应用如下形式 :

57 48 3,4 注意 3 后面是逗号, 它与 scanf 函数中的格式控制中的逗号对应 如果输入时不用逗号而 用空格 ( ) 或其他字符是不对的 : 3 4 ( 不对 ) 3:4 ( 不对 ) 如果在格式控制字符串中, 各个格式说明之间没有其他字符, 例如 : scanf("%d%d",&i,&j); 输入时可以用一个或多个空格间隔, 也可以按 Enter 键 ( ) 或 Tab 键输入变量 i j 的值 : 3 4 或 3 4 或 3 Tab 4 3) 在用 %c 格式输入字符时, 空格 转义字符和回车符都将作为有效字符读入 例如 : 如果输入 : scanf("%c%c%c",&x,&y,&z); a b c 则字符 'a' 赋给变量 x, 空格 ' ' 赋给变量 y, 字符 'b' 赋给变量 z 正确的输入方法是 : abc 则字符 'a' 赋给变量 x, 字符 'b' 赋给变量 y, 字符 'c' 赋给变量 z 4) 在输入数值型数据时, 遇到以下情况时认为该数据输入结束 1 遇空格或按 Enter 键或 Tab 键 2 遇宽度结束, 如 %3d, 只取 3 列 3 遇非法输入, 例如 : 如果输入 : scanf("%d%c%f",&a,&b,&c); 1234a123o.26 则第一个数据对应 %d 格式输入 1234 之后遇字符 'a', 认为数值 1234 赋给变量 a, 字符 'a' 赋给 变量 b, 由于 %c 只要求输入一个字符, 因此 a 后面不需要空格, 后面的数值应赋给变量 c 由于疏忽把 错打成 123o.26, 则认为数值到字符 'o' 结束, 将 123 赋给变量 c 3.3 字符输入 / 输出函数 在上一节中讲解了格式输入 / 输出函数, 本节将专门介绍一组处理字符的输入 / 输出函数, 即 getchar 函数和 putchar 函数 科学出版社职教技术出版中心

58 第 3 章顺序结构的程序设计 49 getchar 函数和 putchar 函数是 C 语言标准库提供的函数, 使用它们时, 要求在程序开头 必须加上预处理编译命令 :#include<stdio.h> 或 #include"stdio.h" 字符输入函数 getchar() getchar 函数是字符输入函数, 它与 putchar 函数的功能相对, 功能是接收从键盘上输入的 一个字符 该函数的返回值就是从输入设备得到的字符, 可以赋给字符变量或整型变量, 还可以直接出现在表达式中, 它的一般调用形式如下 : getchar(); 例 3-7 输入单个字符 #include<stdio.h> main() { char c; printf("input a character\n"); c=getchar(); putchar(c); 运行结果如下 ( 代表 Enter 键, 带下画线的为输入流 ): Input a character w w 说明 : 1)getchar 是函数名, 函数本身没有参数, 其函数值就是从输入设备得到的字符 2) 函数 getchar() 每次只能读取一个字符, 当输入一个需要的字符后, 按 Enter 键, 则程序执行下一个语句 若输入的字符多于一个时, 则只接收第一个字符 3) 当程序不用将结果保存到变量中时, 可以进行简写, 例如 : 或 putchar(getchar()); printf("%c",getchar()); 简写功能经常用在 if 语句和 while 语句中, 处理数据输入是否结束, 例如 : 或 if((c=getchar())!="#") { while((c=getchar())!="#") {

59 字符输出函数 putchar() 函数 putchar() 的功能是把一个字符输出到标准输出设备上, 通常是显示器或打印机, 它 的一般调用形式如下 : putchar( 字符变量或常量 ); 例如 : putchar('a'); /* 输出大写字母 A*/ putchar(x); /* 输出字符变量 x 的值 */ putchar('\n'); /* 输出转义字符回车换行 */ 例 3-8 输出单个字符 #include<stdio.h> main() { int a=98; char b='o',c='y'; putchar(a); putchar(b); putchar(c); putchar('\n'); printf("%c%c%c\n",a,b,c); 运行结果如下 : boy boy 说明 : 1) 函数 putchar() 是输出一个字符, 括号内的参数可以是变量, 也可以是常量, 还可以是表达式 2) 函数 putchar() 与函数 printf() 均可以输出单个字符, 但不能输出一个字符串, 不能将格式自行修改, 如 putchar("%c",a); 或 printf(a); 或 putchar("abc") 这些都是错误的 3.4 程序举例 例 3-9 输入长方形的长 宽, 求其面积 #include<stdio.h> main() { float a, b, area; scanf("%f,%f",&a,&b); area=a*b; 科学出版社职教技术出版中心

60 第 3 章顺序结构的程序设计 51 printf("%5.2f",area); 输入长 宽 : 3,5 运行结果如下 : 例 3-10 从键盘输入一个大写字母, 要求改用小写字母输出 #include<stdio.h> main() { char c; c=getchar(); c=c+32; putchar(c); 输入以下字母 : A 运行结果如下 : a 本章小结 本章重点讲解顺序结构程序设计的方法, 以及完成输入和输出时所使用的输入 / 输出函数 由于 C 语言中输入 / 输出函数有较多的规则和限制, 而程序在编译时并不进行严格的语法检查, 这就要求用户在使用时避免一些不正确的用法和错误操作 1) 在 scanf 函数调用中, 要求输入项必须是地址值, 即在每个普通变量前面必须加上求地址运算符 &, 用户往往忘记这一规则而写成 scanf("%d",i) ( 设 i 是一个 int 类型变量 ) 对此, 系统并不报错, 因此必然导致输入错误, 使变量 i 不能得到正确的输入数据 2) 如果 x 是 long 类型变量, 用户往往忽略使用 %ld 格式描述而使用 scanf("%d",&x); 语句输入 给 x 变量, 这时 x 将不能正确接收数据, 系统也不报错, 而是给 x 赋一个随机值 此时若用 x 参与运算, 程序必然将产生一个错误的结果 对于双精度变量若使用 %f 而不使用 %lf 格式描述, 也将产生相似的情况 3) 对于一些初学者来说, 往往容易在 scanf 函数调用的格式控制字符串中加入一些与输入无关的字符, 如写成 scanf("i=%d",&i);, 对这样的格式控制字符串,C 语言要求在输入时首先打入 i=, 然后才能接收数据, 一些用户往往不了解这些规则, 因而造成不能正确输入 4) 在调用 printf 函数输出 long 整型变量的值时要求使用 %ld 格式描述, 若因为疏忽而漏写字母 l 只用了 %d, 虽然也能执行输出, 但却不是变量中的真实数据

61 52 5) 一些 C 语言编译系统, 在 printf 函数调用中要求格式描述字符必须用小写字母, 否则 就不能正确输出 6) 应该注意, 输入字符时, 字符之间设有分隔符, 空格 回车都将作为字符而被读入 实 验 实验目的 1) 掌握变量的定义形式 2) 掌握变量的输入及输出形式 3) 掌握顺序结构程序设计的思想及方法 实验内容 从键盘上输入三角形的三个边 a b c 的值, 编写程序求三角形的面积 s( 根据公式 1 p = (a + b + c),s = p(p a)(p b)(p c) 计算 ) 2 #include "stdio.h" #include "math.h" main() { float a,b,c,p,s; printf("please input the number a,b,c:"); /* 输入三角形的三个边 a,b,c 的值 */ scanf("%f,%f,%f",&a,&b,&c); p=1.0/2*(a+b+c); s=sqrt(p*(p-a)*(p-b)*(p-c)); /*sqrt() 函数的功能是开平方根 */ printf("area is %.2f\n",s); /* 输出三角形的面积 */ 运行结果如下 : 一 选择题 Please input the number a,b,c:3,4,5 area is 6.00 习 1. 以下赋值语句中不正确的是 ( ) A.a++; B.a==b; C.a+=b; D.a=b=1; 2. 以下选项中, 正确的 C 语言语句是 ( ) A.{ B.{int a,b C.a+=b D.; 题 科学出版社职教技术出版中心

62 第 3 章顺序结构的程序设计 以下程序的输出结果是 ( ) main() { int x=11,y=3; printf("%d\n",y=x/y); A.0 B.2 C.3 D. 不确定 4. 若变量已说明为 int 类型, 要给 a,b,c 输入数据, 以下正确的输入语句是 ( ) A.read(a,b,c); B.scanf("%d%d%d",a,b,c); C.scanf("%D%D%D",&a,&b,&c); D.scanf("%d%d%d",&a,&b,&c); 5. 若变量已说明为 int 类型, 并且有语句 : scanf("%f%f%f",&a,&b,&c); 要给 a,b,c 输入数据, 以下不正确的输入方法是 ( ) A.10 B.10.0,22.0, C.10.0 D 执行下列程序时 : #include<stdio.h> main() { char c1,c2,c3,c4,c5,c6; scanf("%c%c%c%c",&c1,&c2,&c3,&c4); c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf("%c%c\n",c5,c6); 若从键盘上输入数据 : 则输出结果是 ( ) A.1267 B.1256 C.1278 D 若有以下程序段, 其输出结果是 ( ) int a=0,b=0,c=0; c=(a-=a-5),(a=b,b+3); printf("%d,%d,%d\n",a,b,c);

63 54 A.0,0,-10 C.-10,3, 以下程序的输出结果是 ( ) B.0,0,5 D.3,3,-10 main() { int a=3,b=5; printf("a=%%d,b=%%d\n",a,b); A.a=3,b=5 B.a=%3,b=%5 C.a=%%d,b=%%d D.a=%d,b=%d 9. 若有以下程序段, 其输出结果是 ( ) int a=-2; printf("%d,%u\n",a,a); A.-2,-2 B.-2,32766 C.-2,32768 D.-2, 以下程序的输出结果是 ( ) main() { char a='1',b='2'; printf("%c,",b++); printf("%d\n",b-a); A.3,1 B.2,1 C.2,2 D.3,2 二 填空题 1. 设 a,b,c 均为 int 型变量, 且 a=1,b=2,c=3, 则语句 a+=a-(b++)+(--c); 被执行后 a 的值是 2. 下列程序的运行结果为 main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); 3. 下列程序的运行结果为 #include<stdio.h> main() { int a=2,b=010,c; c=2*=b+1; printf("%d,%d,%d\n",a,b,c); 4. 从键盘上输入三个单精度数据, 输出它们的和 请补充语句, 使程序完整 #include<stdio.h> 科学出版社职教技术出版中心

64 第 3 章顺序结构的程序设计 55 main() { a,b,c,sum; scanf("%f,%f,%f",&a,&b,&c); ; printf(" ",sum); 5. 下列程序的运行结果为 #include<stdio.h> main() { int a=1,b=2,c=3; ++a;c+=++b; { int b=4,c; c=b*3; a+=c; printf("1:%d,%d,%d\t",a,b,c); a+=c; printf("2:%d,%d,%d\t",a,b,c); printf("3:%d,%d,%d\n",a,b,c); 三 编程题 1. 输出一串字符 This is a C program! 2. 从键盘上输入球的半径 r 的值, 编写程序求球的体积 3. 从键盘上输入整型变量 p q 的值, 交换它们的值后输出结果

没有幻灯片标题

没有幻灯片标题 第 2 章 C 语言的基本数据类型与表达 式 2. 1 C 语言的语法基础 2. 2 C 语言的基本数据类型 2. 3 常量和变量 2. 4 运算符与表达式 2. 5 数据类型转换 用 第 2 章 C 语言的基本数据类型与表达 2.1 C 语言的语法基础 2. 1. 1 C 语言字符集 式 C 语言的基本符号可分 4 个类, 归纳如下 : (1) 英文字母 : 大小写各 26 个, 共计 52 个

More information

《C语言程序设计》教材习题参考答案

《C语言程序设计》教材习题参考答案 教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN:978-7-302-13599-9, 红色封面 答案制作时间 :2011 年 2 月 -5 月 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p=&a 2. 设已定义 int x,*p=&x;, 则下列表达式中错误的是 :B)&*x 3. 若已定义 int a=1,*b=&a;,

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

FJXBQ

FJXBQ 高等医学院校选用教材 ( 供成人教育中医药专业 中西医结合专业使用 ) 方剂学 闫润红 主编 2 0 0 1 内容简介本书是供成人教育中医药专业 中西医结合专业使用的教材 全书分总论和各论两部分, 总论部分对中医方剂的基本理论, 如治法 君臣佐使 剂型 剂量等及其现代研究进展进行了介绍 各论部分对常用方剂的主治病证 配伍意义 临床应用 加减变化规律及现代研究概况等内容, 按分类进行了系统阐述 在保证方剂学学科知识结构完整性的前提下,

More information

《C语言程序设计》第2版教材习题参考答案

《C语言程序设计》第2版教材习题参考答案 教材 C 语言程序设计 ( 第 2 版 ) 清华大学出版社, 黄保和, 江弋编著 2011 年 10 月第二版 ISBN:978-7-302-26972-4 售价 :35 元 答案版本 本习题答案为 2012 年 2 月修订版本 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p = &a A. *p = *a B. p = *a C.p = &a D. *p =

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

chap07.key

chap07.key #include void two(); void three(); int main() printf("i'm in main.\n"); two(); return 0; void two() printf("i'm in two.\n"); three(); void three() printf("i'm in three.\n"); void, int 标识符逗号分隔,

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 第 1 章程序设计和 C 语言 1.1 什么是计算机程序 1.2 什么是计算机语言 1.3 C 语言的发展及其特点 1.4 最简单的 C 语言程序 1.5 运行 C 程序的步骤与方法 1.6 程序设计的任务 1.1 什么是计算机程序 程序 : 一组计算机能识别和执行的指令 只要让计算机执行这个程序, 计算机就会自动地 有条不紊地进行工作 计算机的一切操作都是由程序控制的, 离开程序, 计算机将一事无成

More information

没有幻灯片标题

没有幻灯片标题 指针作为函数参数 : 原因 : 1 需要修改一个或多个值,( 用 return 语句不能解决问题 ) 2 执行效率的角度 使用方法 : 在函数原型以及函数首部中需要声明能够接受指针值的形参, 具体的写法为 : 数据类型 * 形参名 如果有多个指针型形参, 则用逗号分隔, 例如 : void swap(int *p1, int *p2) 它说明了形参 p1 p2 是指向整型变量的指针 在函数调用时,

More information

Microsoft Word - 《C语言开发入门》课程教学大纲-2.doc

Microsoft Word - 《C语言开发入门》课程教学大纲-2.doc C 语言开发入门 课程教学大纲 ( 课程英文名称 ) 课程编号 :201409210011 学分 :5 学分学时 :60 学时 ( 其中 : 讲课学时 :37 学时上机学时 :23 学时 ) 先修课程 : 计算机导论后续课程 :C++ 程序设计适用专业 : 信息及其计算机相关专业开课部门 : 计算机系 一 课程的性质与目标 C 语言开发入门 是计算机各专业必修的基础课程, 是数据结构 C++ Java

More information

林子雨《C语言程序设计》讲义PPT

林子雨《C语言程序设计》讲义PPT C 语言程序设计 厦门大学计算机科学系 2012-02-26 林子雨 ziyulin@xmu.edu.cn 2012-02-26 厦门大学非计算机专业本科生公共课 (2011-2012 第 2 学期 ) C 语言程序设计 林子雨厦门大学计算机科学系 E-mail: ziyulin@xmu.edu.cn 个人主页 :http://www.cs.xmu.edu.cn/linziyu 课程提要 第一章绪论

More information

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3 浙江大学 C 程序设计及实验 试题卷 2002-2003 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:30-10:30 注意 : 答题内容必须写在答题卷上, 写在本试题卷上无效 一. 单项选择题 ( 每题 1 分, 共 10 分 ) 1. 下列运算符中, 优先级最低的是 A.

More information

新・明解C言語入門編『索引』

新・明解C言語入門編『索引』 !... 75!=... 48 "... 234 " "... 9, 84, 240 #define... 118, 213 #include... 148 %... 23 %... 23, 24 %%... 23 %d... 4 %f... 29 %ld... 177 %lf... 31 %lu... 177 %o... 196 %p... 262 %s... 242, 244 %u... 177

More information

第 3 章顺序结构程序设计 31 2) 直到型循环结构 先执行 A 操作, 再判断条件, 若条件成立, 再执行 A 操作, 如此反复, 直到条件不成立时才停止循环 由上述三种程序结构组成的程序称作结构化程序, 形成的软件称作结构化软件 C 程序结构 C 语言以文件为编译单位 一个 C 程

第 3 章顺序结构程序设计 31 2) 直到型循环结构 先执行 A 操作, 再判断条件, 若条件成立, 再执行 A 操作, 如此反复, 直到条件不成立时才停止循环 由上述三种程序结构组成的程序称作结构化程序, 形成的软件称作结构化软件 C 程序结构 C 语言以文件为编译单位 一个 C 程 第 3 章顺序结构程序设计 随着计算机应用的不断发展, 软件变得越来越复杂 软件的可读性 可理解性等问题变得十分突出 经过不断的研究和实践, 确定了程序设计的基本方法, 这就是结构化程序设计方法 结构化程序设计方法使得程序的逻辑结构清晰, 层次分明, 有效地改善了程序的可靠性, 提高了软件的质量 本章所介绍的语句, 将按它们在程序中出现的顺序逐条执行, 由这样的语句构成的程序结构称为顺序结构 本章主要介绍以下内容

More information

网C试题(08上).doc

网C试题(08上).doc 学习中心 姓名 学号 西安电子科技大学网络与继续教育学院 高级语言程序设计 (C) 全真试题 ( 闭卷 90 分钟 ) 题号一二三总分 题分 60 20 20 得分 一 单项选择题 ( 每小题 3 分, 共 60 分 ) 1.C 语言程序的基本单位是 A) 程序行 B) 语句 C) 函数 D) 字符 2. 下列四组选项中, 均是不合法的用户标识符的选项是 A)A B)getc C)include D)while

More information

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023) ( CIP) /. :, 2005. 2 ( ) ISBN 7-5624-3339-9.......... TP311. 1 CIP ( 2005) 011794 : : : : * : : 174 ( A ) :400030 : ( 023) 65102378 65105781 : ( 023) 65103686 65105565 : http: / /www. cqup. com. cn : fxk@cqup.

More information

nooog

nooog C : : : , C C,,, C, C,, C ( ), ( ) C,,, ;,, ; C,,, ;, ;, ;, ;,,,, ;,,, ; : 1 9, 2 3, 4, 5, 6 10 11, 7 8, 12 13,,,,, 2008 1 1 (1 ) 1.1 (1 ) 1.1.1 ( ) 1.1.2 ( ) 1.1.3 ( ) 1.1.4 ( ) 1.1.5 ( ) 1.2 ( ) 1.2.1

More information

Microsoft Word - 正文.doc

Microsoft Word - 正文.doc 第 2 章 Java 语言基础 通过本章的实践, 要掌握 Java 中的标识符 关键字 常量, 熟练掌握算术 关 系 逻辑 条件 赋值 位运算符的使用, 掌握简单顺序结构的程序设计 2.1 典型习题解答 2.1 Java 中怎样进行注释? 解答 Java 语言中的注释有 3 种形式 : (1) 单行 : // (2) 多行 : /* */ (3) 文档注释 : /** */ 第三种形式是第二种形式的变形,

More information

试卷代号 :1253 座位号 E 口 国家开放大学 ( 中央广播电视大学 )2014 年秋季学期 " 开放本科 " 期末考试 C 语言程序设计 A 试题 2015 年 1 月 E 四! 五 总分! 一 单选题 ( 每小题 2 分, 共 20 分 ) 1. 由 C 语言源程序文件编译而成的目标文件的默

试卷代号 :1253 座位号 E 口 国家开放大学 ( 中央广播电视大学 )2014 年秋季学期  开放本科  期末考试 C 语言程序设计 A 试题 2015 年 1 月 E 四! 五 总分! 一 单选题 ( 每小题 2 分, 共 20 分 ) 1. 由 C 语言源程序文件编译而成的目标文件的默 试卷代号 :1253 座位号 E 口 国家开放大学 ( 中央广播电视大学 )2014 年秋季学期 " 开放本科 " 期末考试 C 语言程序设计 A 试题 2015 年 1 月 E 四! 五 总分! 一 单选题 ( 每小题 2 分, 共 20 分 ) 1. 由 C 语言源程序文件编译而成的目标文件的默认扩展名为 ( ) A. cpp B. c C. exe D. obj 2. 设 x 和 y 均为逻辑值,

More information

科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心

More information

科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心

More information

科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心

More information

科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心

More information

计算概论A B03 C++语言的基本成分 - 运算成分(2)

计算概论A B03 C++语言的基本成分 - 运算成分(2) 计算概论 A 程序设计部分 C 语言的构成成分 运算成分 李戈 北京大学信息科学技术学院软件研究所 lige@sei.pku.edu.cn C 语言中的运算符 C 语言的运算符范围很宽 求字节数运算符 : sizeof 下标运算符 [ ] 赋值运算符 = 算术运算符 + - * / % 关系运算符 < > == >= > ~

More information

期中考试试题讲解

期中考试试题讲解 一 选择题 ( 一 ) 1. 结构化程序设计所规定的三种基本结构是 C A 主程序 子程序 函数 B 树形 网形 环形 C 顺序 选择 循环 D 输入 处理 输出 2. 下列关于 C 语言的叙述错误的是 A A 对大小写不敏感 B 不同类型的变量可以在一个表达式中 C main 函数可以写在程序文件的任何位置 D 同一个运算符号在不同的场合可以有不同的含义 3. 以下合法的实型常数是 C A.E4

More information

《计算概论》课程 第十九讲 C 程序设计语言应用

《计算概论》课程 第十九讲  C 程序设计语言应用 计算概论 A 程序设计部分 字符数组与字符串 李戈 北京大学信息科学技术学院软件研究所 lige@sei.pku.edu.cn 字符数组的定义 #include int main() char a[10] = 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' ; for (int i = 0; i < 10; i++) cout

More information

图书在版编目穴 CIP 雪数据做事细节全书 / 赵彦锋编著郾 北京 : 企业管理出版社, ISBN Ⅰ 郾做... Ⅱ 郾赵... Ⅲ 郾工作方法 通俗读物 Ⅳ 郾 B 中国版本图书馆 CIP 数据核字 (2005) 第 号 书

图书在版编目穴 CIP 雪数据做事细节全书 / 赵彦锋编著郾 北京 : 企业管理出版社, ISBN Ⅰ 郾做... Ⅱ 郾赵... Ⅲ 郾工作方法 通俗读物 Ⅳ 郾 B 中国版本图书馆 CIP 数据核字 (2005) 第 号 书 做事细节全书 赵彦锋著 企业管理出版社 图书在版编目穴 CIP 雪数据做事细节全书 / 赵彦锋编著郾 北京 : 企业管理出版社, 2005.11 ISBN 7-80197-338-0 Ⅰ 郾做... Ⅱ 郾赵... Ⅲ 郾工作方法 通俗读物 Ⅳ 郾 B026-49 中国版本图书馆 CIP 数据核字 (2005) 第 136676 号 书 名 : 做事细节全书 作 者 : 赵彦锋 责任编辑 : 吴太刚

More information

实验 2 顺序结构程序设计 9 unsigned short a; a= 1; printf("%d\n",a); 运行以上程序, 查看输出的结果, 分析为什么会输出这些信息 (1) 打开 VC 创建 liti2 2.c 文件 (2) 输入以上代码并编译执行 (3) 结果如图 2 2 所示 图 2

实验 2 顺序结构程序设计 9 unsigned short a; a= 1; printf(%d\n,a); 运行以上程序, 查看输出的结果, 分析为什么会输出这些信息 (1) 打开 VC 创建 liti2 2.c 文件 (2) 输入以上代码并编译执行 (3) 结果如图 2 2 所示 图 2 实验 2 顺序结构程序设计 明符 一 实验目的 1. 掌握 C 语言基本数据类型 运算符和赋值语句 2. 变量的定义及初始化 整型 实型 字符型等基本类型变量的定义和初始化 3. 熟练使用赋值运算 算术运算等表达式, 能够编写简单顺序结构程序 4. 掌握 C 语言基本的输入输出 熟练使用标准输入 输出函数及各种数据类型的格式说 二 实验内容及步骤 例题 2.1 输入程序, 查看输出结果 (1) 参照第一章创建

More information

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式] Arrays and Strings 存储同类型的多个元素 Store multi elements of the same type 数组 (array) 存储固定数目的同类型元素 如整型数组存储的是一组整数, 字符数组存储的是一组字符 数组的大小称为数组的尺度 (dimension). 定义格式 : type arrayname[dimension]; 如声明 4 个元素的整型数组 :intarr[4];

More information

2015年计算机二级(C语言)模拟试题及答案(三)

2015年计算机二级(C语言)模拟试题及答案(三) 2016 年计算机二级 (C 语言 ) 模拟试题及答案 (3) 1.( A ) 是构成 C 语言程序的基本单位 A 函数 B 过程 C 子程序 D 子例程 2.C 语言程序从 ( C ) 开始执行 A 程序中第一条可执行语句 B 程序中第一个函数 C 程序中的 main 函数 D 包含文件中的第一个函数 3 以下说法中正确的是( C ) A C 语言程序总是从第一个定义的函数开始执行 B 在 C 语言程序中,

More information

Microsoft PowerPoint - 03.Fortran程序设计基础1

Microsoft PowerPoint - 03.Fortran程序设计基础1 简单 Fortran 90 程序的构造形式 : 第二讲 Fortran 程序设计基础 (2) [PROGRAM 程序名 ] [ 声明语句 ] [ 执行语句 ] END [PROGRAM [ 程序名 ]] 程序的书写 (P5) PROGRAM MONEY!calculate balance after interest compounded! 根据利息计算余额 REAL BALANCE, INTEREST,

More information

Microsoft Word - YYCXfm.DOC

Microsoft Word - YYCXfm.DOC C 语言程序设计 王曙燕主编曹锰副主编 北京 内容简介 本书共 13 章, 主要内容包括 C 语言的基本概念 基本语法和基本数据结构, 另外, 给出了一个小型超市管理的综合实例, 介绍了 C 语言图形程序设计的基本方法, 还简单介绍了 C++ Visual C++ 和 C# 等面向对象程序设计语言 本书注重应用性和实践性, 通过一些典型算法的解题分析及其实现给读者一些解题示范和启发 每章后面配有习题,

More information

第 3 章选择结构 q q q Python 中表示条件的方法 if 语句 选择结构程序设计方法

第 3 章选择结构 q q q Python 中表示条件的方法 if 语句 选择结构程序设计方法 第 3 章选择结构 q q q Python 中表示条件的方法 if 语句 选择结构程序设计方法 3.1 条件的描述 3.1.1 关系运算 Python 的关系运算符有 : =( 大于等于 ) ==( 等于 )!=( 不等于 ) 关系运算符用于两个量的比较判断 由关系运算符将两个表达式连接起来的式子就称为关系表达式, 它用来表示条件, 其一般格式为

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 4.4.1 逻辑运算符及其优先次序 3 种逻辑运算符 : &&( 逻辑与 ) ( 逻辑或 )!( 逻辑非 ) && 和 是双目 ( 元 ) 运算符! 是一目 ( 元 ) 运算符 逻辑表达式 用逻辑运算符将关系表达式或其他逻辑量连接起来的式子 4.4.1 逻辑运算符及其优先次序 判断年龄在 13 至 17 岁之内? age>=13 && age

More information

_汪_文前新ok[3.1].doc

_汪_文前新ok[3.1].doc 普 通 高 校 本 科 计 算 机 专 业 特 色 教 材 精 选 四 川 大 学 计 算 机 学 院 国 家 示 范 性 软 件 学 院 精 品 课 程 基 金 青 年 基 金 资 助 项 目 C 语 言 程 序 设 计 (C99 版 ) 陈 良 银 游 洪 跃 李 旭 伟 主 编 李 志 蜀 唐 宁 九 李 涛 主 审 清 华 大 学 出 版 社 北 京 i 内 容 简 介 本 教 材 面 向

More information

C/C++ - 文件IO

C/C++ - 文件IO C/C++ IO Table of contents 1. 2. 3. 4. 1 C ASCII ASCII ASCII 2 10000 00100111 00010000 31H, 30H, 30H, 30H, 30H 1, 0, 0, 0, 0 ASCII 3 4 5 UNIX ANSI C 5 FILE FILE 6 stdio.h typedef struct { int level ;

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

download.kaoyan.com_2006ÄêÌì½ò¹¤Òµ´óѧ¸ß¼¶ÓïÑÔ³ÌÐòÉè¼Æ£¨409£©¿¼ÑÐÊÔÌâ

download.kaoyan.com_2006ÄêÌì½ò¹¤Òµ´óѧ¸ß¼¶ÓïÑÔ³ÌÐòÉè¼Æ£¨409£©¿¼ÑÐÊÔÌâ 考生注意 : 本试卷共七大题, 满分 150 分 考试时间为 3 小时 ; 所有答案均写在答题纸上 ( 注明题号 ), 在此答题一律无效无效 一 选择题 ( 本题共 20 小题, 每小题 2 分, 满分 40 分 ) 1 char ch 1 2 A 0

More information

科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心

More information

科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心

More information

科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心

More information

C 语言程序设计 ( 第 33 版 )) #define PI // 下面 2 行是函数的原型说明部分 double sup_area(double r); double volume(double r); // 下面是主函数部分 { double a=-5,b,c,d; b=fab

C 语言程序设计 ( 第 33 版 )) #define PI // 下面 2 行是函数的原型说明部分 double sup_area(double r); double volume(double r); // 下面是主函数部分 { double a=-5,b,c,d; b=fab 第 1 章 C 语言基础与顺序结构 学习目标 1. 掌握 C 语言程序的结构 2. 合理选用数据类型 3. 掌握算术运算符和赋值运算符 4. 掌握控制数据的输入 输出方法 5. 掌握顺序结构以及顺序结构的流程 6. 掌握 Visual C++ 6.0 集成环境的使用方法 7. 掌握转换大小写字母的方法 8. 掌握产生随机整数的方法 计算机由硬件系统和软件系统组成, 其中硬件是物质基础, 而软件是计算机的灵魂

More information

C C

C C C C 2017 3 8 1. 2. 3. 4. char 5. 2/101 C 1. 3/101 C C = 5 (F 32). 9 F C 4/101 C 1 // fal2cel.c: Convert Fah temperature to Cel temperature 2 #include 3 int main(void) 4 { 5 float fah, cel; 6 printf("please

More information

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/ 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:// 不能以数字开头 D._3_ B:// 不能用点和空格 提问 抢答 E.$anothervar C: // 不能用点和空格

More information

内容简介 本书以教育部高等学校计算机科学与技术教学指导委员会编制的 关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求 中有关计算机程序设计基础 (C 语言 ) 课程教学基本要求为指导, 结合教育部考试中心最新的全国计算机等级考试二级 (C 语言程序设计 ) 考试大纲要求和作者多

内容简介 本书以教育部高等学校计算机科学与技术教学指导委员会编制的 关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求 中有关计算机程序设计基础 (C 语言 ) 课程教学基本要求为指导, 结合教育部考试中心最新的全国计算机等级考试二级 (C 语言程序设计 ) 考试大纲要求和作者多 普通高等教育 十二五 重点规划教材公共课系列 中国科学院教材建设专家委员会 十二五 规划教材 C 语言程序设计 张淑华朱丽莉主编 于雪晶顾煜新副主编 北京 内容简介 本书以教育部高等学校计算机科学与技术教学指导委员会编制的 关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求 中有关计算机程序设计基础 (C 语言 ) 课程教学基本要求为指导, 结合教育部考试中心最新的全国计算机等级考试二级

More information

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式]

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式] 指针 Pointers 变量指针与指针变量 Pointer of a variable 变量与内存 (Variables and Memory) 当你声明一个变量时, 计算机将给该变量一个内存, 可以存储变量的值 当你使用变量时, 计算机将做两步操作 : - 根据变量名查找其对应的地址 ; - 通过地址对该地址的变量内容进行读 (retrieve) 或写 (set) 变量的地址称为变量的指针! C++

More information

第 1 章 C 语言的发展 特点与程序结构 本章主要介绍了 C 语言的发展 特点和程序结构, 重点阐述了程序设计的基本方法, 包括面向过程的程序设计和面向对象的程序设计 ; 算法的概念及其表示, 包括用自然语言 流程图 伪代码 N-S 流程图的表示方法 ; 最后介绍了 C 语言应用程序的开发过程 1

第 1 章 C 语言的发展 特点与程序结构 本章主要介绍了 C 语言的发展 特点和程序结构, 重点阐述了程序设计的基本方法, 包括面向过程的程序设计和面向对象的程序设计 ; 算法的概念及其表示, 包括用自然语言 流程图 伪代码 N-S 流程图的表示方法 ; 最后介绍了 C 语言应用程序的开发过程 1 C 语言程序设计 电子教程 主编 : 杨健霑副主编 : 汪同庆 1 第 1 章 C 语言的发展 特点与程序结构 本章主要介绍了 C 语言的发展 特点和程序结构, 重点阐述了程序设计的基本方法, 包括面向过程的程序设计和面向对象的程序设计 ; 算法的概念及其表示, 包括用自然语言 流程图 伪代码 N-S 流程图的表示方法 ; 最后介绍了 C 语言应用程序的开发过程 1.1 C 语言的发展与特点 1.1.1

More information

2015年计算机二级(C语言)模拟试题及答案(四)

2015年计算机二级(C语言)模拟试题及答案(四) 2015 年计算机二级 (C 语言 ) 模拟试题及答案 (4) 一 填空题 1 C 语言中基本的数据类型有 : 2 C 语言中普通整型变量的类型说明符为, 在内存中占 字节, 有符号普通整型的数据范围是 3 整数-35 在机内的补码表示为 4 执行下列语句 int a=8;a+=a-=a*a; 后,a 的值是 5 有如下语句:charA[ ]={ I am a student }; 该字符串的长度是,A[3]=

More information

狭义上 算法指的是计算机算法 即对特定问题求解步骤的一种描述 它是计算机指令的有限序列 其中每一条指令表示计算机可以进行的一个或多个操作 人们利用计算机编写程序处理各种不同的问题 必须先对各类问题进行分析 确定解决问题的具体方法和步骤 即算法 然后编制好一组让计算机执行的指令即程序 交给计算机 让计

狭义上 算法指的是计算机算法 即对特定问题求解步骤的一种描述 它是计算机指令的有限序列 其中每一条指令表示计算机可以进行的一个或多个操作 人们利用计算机编写程序处理各种不同的问题 必须先对各类问题进行分析 确定解决问题的具体方法和步骤 即算法 然后编制好一组让计算机执行的指令即程序 交给计算机 让计 简单 程序设计 语言是结构化的程序设计语言 非常适合编写结构化的程序 结构化的程序通常包括数据的描述和操作的描述两方面的内容 数据的描述是指程序中数据的类型和数据的组织形式 即数据结构 前面介绍的数据类型 常量 变量及后续章节的数组 结构体等都属于这方面的内容 操作的描述是指程序中对数据的操作方法和操作步骤 也就是算法 数据的描述和操作的描述是程序设计过程必不可少的组成部分 数据是操作的对象 操作的目的是对数据进行加工处理

More information

内容简介本书主要内容包括程序设计基础知识 C 语言数据类型 运算符与表达式 程序结构 数组 指针 其他数据类型 函数 文件等, 通过对大量实例进行分析, 力求提高和培养学生的程序设计能力 本书有配套辅导教程 程序设计基础实训指导教程 C 语言 ( 科学出版社出版 ), 引导读者学习和巩固各章节内容

内容简介本书主要内容包括程序设计基础知识 C 语言数据类型 运算符与表达式 程序结构 数组 指针 其他数据类型 函数 文件等, 通过对大量实例进行分析, 力求提高和培养学生的程序设计能力 本书有配套辅导教程 程序设计基础实训指导教程 C 语言 ( 科学出版社出版 ), 引导读者学习和巩固各章节内容 普通高等教育 十二五 规划教材计算机系列中国科学院教材建设专家委员会 十二五 规划教材 程序设计基础 C 语言 杨莉刘鸿翔主编唐宏亮邓芳副主编余慧王海军 1 科学出版社职教技术出版中心 www.aboo 北 京 内容简介本书主要内容包括程序设计基础知识 C 语言数据类型 运算符与表达式 程序结构 数组 指针 其他数据类型 函数 文件等, 通过对大量实例进行分析, 力求提高和培养学生的程序设计能力 本书有配套辅导教程

More information

高等学校计算机应用规划教材 C 语言程序设计 梁海英张红军主编 千文陈科尹孟伟东曾霖副主编 北 京

高等学校计算机应用规划教材 C 语言程序设计 梁海英张红军主编 千文陈科尹孟伟东曾霖副主编 北 京 高等学校计算机应用规划教材 C 语言程序设计 梁海英张红军主编 千文陈科尹孟伟东曾霖副主编 北 京 内 容 简 介 本书按照程序设计的体系结构 系统地介绍了 C 语言程序设计的基本思想及基本方法 全书内容分为三 部分 第一部分(第 1 7 章)依次介绍了 C 语言程序设计的基本应用 包括 C 语言程序的结构 数据类型 及其运算 基本语句 结构化程序设计的顺序结构 选择结构 循环结构 数组及函数的开发方法与应用实

More information

Ps22Pdf

Ps22Pdf C ( CIP) C /. :, 2001. 7 21 ISBN 7-5624 -2355-5. C........ C. TP312 CIP ( 2001 ) 034496 C * * : 7871092 1 /16 : 14. 25 : 356 20017 1 20017 1 : 1 6 000 ISBN 7-5624-2355-5 / TP311 : 21. 00 C, C,,,, C,, (

More information

移动平台应用软件开发 C/C++/JAVA 基础 C 中的预处理指令 主讲 : 张齐勋 移动平台应用软件开发 课程建设小组北京大学二零一五年

移动平台应用软件开发 C/C++/JAVA 基础 C 中的预处理指令 主讲 : 张齐勋 移动平台应用软件开发 课程建设小组北京大学二零一五年 移动平台应用软件开发 C/C++/JAVA 基础 C 中的预处理指令 主讲 : 张齐勋 zhangqx@ss.pku.edu.cn 移动平台应用软件开发 课程建设小组北京大学二零一五年 预处理 2 预处理器 C 语言的编译系统分为编译预处理和正式编译 预处理作用 : 对源程序编译之前做一些处理, 生成扩展 C 源程序 预处理器的行为是由预处理指令控制的 宏定义 文件包含 条件编译 #define #ifdef

More information

内容简介 本书从结构化程序设计技术出发, 以 C 程序设计语言为载体, 以 Windows 下的 Visual C 为程序调试和运行平台, 通过对典型实例的算法及相应 C 语言代码的描述, 介绍了在程序设计过程中如何对问题进行分析 如何组织数据和如何描述解决问题, 揭示了在计算机应用过

内容简介 本书从结构化程序设计技术出发, 以 C 程序设计语言为载体, 以 Windows 下的 Visual C 为程序调试和运行平台, 通过对典型实例的算法及相应 C 语言代码的描述, 介绍了在程序设计过程中如何对问题进行分析 如何组织数据和如何描述解决问题, 揭示了在计算机应用过 普通高等教育 十二五 规划教材 计算机系列规划教材 计算机程序设计基础 周启生姬涛 主编 刘菲田红梅副主编 科学出版社职教技术出版中心 www.aboo 北京 内容简介 本书从结构化程序设计技术出发, 以 C 程序设计语言为载体, 以 Windows 下的 Visual C++ 2010 为程序调试和运行平台, 通过对典型实例的算法及相应 C 语言代码的描述, 介绍了在程序设计过程中如何对问题进行分析

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 计算概论 A 课程程序设计部分 C++ 语言基本成分 数据成分 李戈 北京大学信息科学技术学院软件研究所 lige@sei.pku.edu.cn 再谈, 我们的进度安排 我们的学习过程 感性理性函数指针等 数据成分运算成分控制成分数组字符串 结构化的程序递归 传统学习过程 数据类型与表达式 输入输出 关系运算 控制语句 函数数组指针结构体 作业练习 感性认识作业练习 ( 以抄程序为主 ) 正常作业练习

More information

C 语言大学实用教程 ( 第 版 ) 来完成的, 赋值操作是顺序结构中最常见的操作 但是在 C 语言中, 没有专门的赋值语句, 赋值操作通常是用赋值表达式后接一个分号 (;) 构成赋值表达式语句实现的 例如,c = a + b 只是一个赋值表达式, 而 c = a + b; // 赋值表达式语句则是

C 语言大学实用教程 ( 第 版 ) 来完成的, 赋值操作是顺序结构中最常见的操作 但是在 C 语言中, 没有专门的赋值语句, 赋值操作通常是用赋值表达式后接一个分号 (;) 构成赋值表达式语句实现的 例如,c = a + b 只是一个赋值表达式, 而 c = a + b; // 赋值表达式语句则是 第 章键盘输入与屏幕输出 内容关键词 C 语句分类 字符输入 / 输出函数 格式输入 / 输出函数 重点与难点 表达式与表达式语句的区别 scanf() 语句的正确用法 输入 / 输出数据时的格式控制 典型实例 以不同格式输入和输出两个整型数. C 语句分类 () 控制语句 C 语言只有如下 种控制语句 (Control Statement) if~else for()~ continue switch

More information

<4D F736F F F696E74202D20B5DA32D5C220B5A5C6ACBBFA433531D3EFD1D4BBF9B4A1>

<4D F736F F F696E74202D20B5DA32D5C220B5A5C6ACBBFA433531D3EFD1D4BBF9B4A1> 第 2 章 单片机 C51 语言基础 2.1 C51 语言的基本知识 2.2 运算符与表达式 2.3 指针与绝对地址访问 2.4 本章小结 2.5 实训二发光二极管流水广告灯 返回首页 教学提示 随着单片机开发技术的不断发展, 目前已有越来越多 的人从普遍使用汇编语言逐渐过渡到使用高级语言开发, 其中又以 C 语言为主, 市场上几种常见的单片机均有其 C 语言开发环境 应用于 51 系列单片机开发的

More information

STRUCT Tag OptTag ID Tag ID 7..4 Declarators VarDec ID VarDec LB INT RB FunDec ID LP VarList RP ID LP RP VarList ParamDec COMMA VarList ParamDec Param

STRUCT Tag OptTag ID Tag ID 7..4 Declarators VarDec ID VarDec LB INT RB FunDec ID LP VarList RP ID LP RP VarList ParamDec COMMA VarList ParamDec Param 7. 附录 A:C 语言文法 在本附录中, 我们给出 C 语言的文法定义和补充说明 7. 文法定义 7.. Tokens INT /* A sequence of digits without spaces */ FLOAT /* A real number consisting of digits and one decimal point. The decimal point must be surrounded

More information

Mx* Language Reference Manual 2016 年 4 月 7 日 1 用词说明 未定义 指中央还没有表态指语言定义中不涉及的部分, 编译器和运行时环境如何表现是未知的 主要是为了给学生实现语言留下足够的空间, 标准测试集里不会出现涉及未定义部分的内容 例如 : 术语 : 源程

Mx* Language Reference Manual 2016 年 4 月 7 日 1 用词说明 未定义 指中央还没有表态指语言定义中不涉及的部分, 编译器和运行时环境如何表现是未知的 主要是为了给学生实现语言留下足够的空间, 标准测试集里不会出现涉及未定义部分的内容 例如 : 术语 : 源程 Mx* Language Reference Manual 2016 年 4 月 7 日 1 用词说明 未定义 指中央还没有表态指语言定义中不涉及的部分, 编译器和运行时环境如何表现是未知的 主要是为了给学生实现语言留下足够的空间, 标准测试集里不会出现涉及未定义部分的内容 例如 : 术语 : 源程序大小超过 256M 是未定义的 解释 : 我们测试用的源程序大小不会超过 256M 2 程序结构 Mx*

More information

C/C++程序设计 - 字符串与格式化输入/输出

C/C++程序设计 - 字符串与格式化输入/输出 C/C++ / Table of contents 1. 2. 3. 4. 1 i # include # include // density of human body : 1. 04 e3 kg / m ^3 # define DENSITY 1. 04 e3 int main ( void ) { float weight, volume ; int

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 9 [P.11] : Dev C++ [P.12] : http://c.feis.tw [P.13] [P.14] [P.15] [P.17] [P.23] Dev C++ [P.24] [P.27] [P.34] C / C++ [P.35] 10 C / C++ C C++ C C++ C++ C ( ) C++

More information

<4D F736F F D20B5DA33D5C220CAFDBEDDB5C4CAE4C8EBCAE4B3F62E646F63>

<4D F736F F D20B5DA33D5C220CAFDBEDDB5C4CAE4C8EBCAE4B3F62E646F63> 嵌入式 Linux C 语言程序 设计基础教程作者 : 华清远见 第 3 章数据的输入输出 本章目标 在上一章中, 读者了解了嵌入式 Linux C 语言的数据相关的知识, 包括数据类型 变量和常量等 本 章继续介绍 C 语言中与数据有关的知识, 数据的输入输出 通过本章的学习, 读者将会掌握如下内容 : 字符输出函数 putchar 格式化输出函数 printf 字符输入函数 getchar 格式化输入函数

More information

林子雨《C语言程序设计》讲义PPT

林子雨《C语言程序设计》讲义PPT C 语言程序设计 厦门大学计算机科学系 2013/3/19 林子雨 ziyulin@xmu.edu.cn 2013/3/19 厦门大学非计算机专业本科生公共课 (2012-2013 第 2 学期 ) C 语言程序设计 第 4 章选择结构林子雨 厦门大学计算机科学系 E-mail: ziyulin@xmu.edu.cn 个人主页 :http://www.cs.xmu.edu.cn/linziyu 课程提要

More information

普通高等教育电气信息类应用型规划教材 程序设计基础 基于问题情境的 C 语言实践教程 张克军主 编 代俊雅副主编 北 京

普通高等教育电气信息类应用型规划教材 程序设计基础 基于问题情境的 C 语言实践教程 张克军主 编 代俊雅副主编 北 京 科学出版社职教技术出版中心 普通高等教育电气信息类应用型规划教材 程序设计基础 基于问题情境的 C 语言实践教程 张克军主 编 代俊雅副主编 北 京 内容简介 本书分为基础 提高和扩展三篇, 共 15 章 我们本着巩固学生基础知识 提升学生编程能力和培养学生程序设计素质的想法设计每一章的内容, 确保学生通过循序渐进的学习, 理解 掌握教学内容 本书主要内容包括 : C 语言的基础知识, 数据类型 运算符与表达式,

More information

关于编写硕士研究生入学考试自命题初试科目

关于编写硕士研究生入学考试自命题初试科目 华北水利水电大学 2019 年硕士研究生入学考试初试科目考试大纲 农业综合知识三 ( 科目代码 :341) 考试大纲 考试形式和试卷结构一 试卷分值及考试时间考试时间 180 分钟 (3 个小时 ), 满分 150 分二 考试基本要求本考试大纲适用于报考华北水利水电大学农业工程与信息技术专业硕士研究生入学考试, 该科目包括 : 数据库 c 语言程序设计 计算机网络三部分内容 三 试卷内容及结构数据库部分占

More information

图书在版编目 (CIP) 数据程序员的数学. 3, 线性代数 /( 日 ) 平冈和幸, ( 日 ) 堀玄著 ; 卢晓南译. 北京 : 人民邮电出版社, ( 图灵程序设计丛书 ) ISBN Ⅰ. 1 程 Ⅱ. 1 平 2 堀 3 卢 Ⅲ. 1 电子计算

图书在版编目 (CIP) 数据程序员的数学. 3, 线性代数 /( 日 ) 平冈和幸, ( 日 ) 堀玄著 ; 卢晓南译. 北京 : 人民邮电出版社, ( 图灵程序设计丛书 ) ISBN Ⅰ. 1 程 Ⅱ. 1 平 2 堀 3 卢 Ⅲ. 1 电子计算 图灵程序设计丛书 程序员的数学 3: 线性代数 [ 日 ] 平冈和幸堀玄著 卢晓南译 图书在版编目 (CIP) 数据程序员的数学. 3, 线性代数 /( 日 ) 平冈和幸, ( 日 ) 堀玄著 ; 卢晓南译. 北京 : 人民邮电出版社, 2016.3 ( 图灵程序设计丛书 ) ISBN 978-7-115-41774-9 Ⅰ. 1 程 Ⅱ. 1 平 2 堀 3 卢 Ⅲ. 1 电子计算机 数学基础 2

More information

ch02_Basic

ch02_Basic 主要内容 C++ 语言概述 C++ 的发展 C++ 源程序结构与书写规范 C++ 编译器和集成开发环境 C++ 编程基础 数据的简单输入输出 2 C++ 语言概述 C++ 语言概述 C++ 的发展 - C++ 是从 C 语言发展演变而来, 可以看成是 C 的超集 - 1980 年由 Bjarne Stroustrup 开发创建 - 1983 年正式取名为 C++,1989 年开始 C++ 的标准化工作

More information

C/C++语言 - C/C++数据

C/C++语言 - C/C++数据 C/C++ C/C++ Table of contents 1. 2. 3. 4. char 5. 1 C = 5 (F 32). 9 F C 2 1 // fal2cel. c: Convert Fah temperature to Cel temperature 2 # include < stdio.h> 3 int main ( void ) 4 { 5 float fah, cel ;

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢   学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Java 类型 引用 不可变类型 对象存储位置 作用域 OOP

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 3 章流程控制和数组 3.1 实验目的 (1) 熟练掌握控制台应用程序的代码编写和调试, 以及运行方法 (2) 掌握选择结构的一般语法格式和应用 (3) 掌握 switch 语句的用法 (4) 掌握选择结构的嵌套的用法, 能灵活使用选择结构解决实际问题 (5) 掌握 while 循环语句的一般语法格式 (6) 掌握 for 循环语句的一般语法格式 (7) 掌握循环嵌套的语法格式 (8) 掌握一维数组的定义

More information

图书在版编目 (CIP) 数据 满堂花醉 / 沈胜衣著. 南京 : 江苏教育出版社, ( 沈郎文字 ) ISBN Ⅰ. 满... Ⅱ. 沈... Ⅲ. 作家 - 人物研究 - 世界 Ⅳ.K815.6 中国版本图书馆 CIP 数据核字 (2005) 第 041

图书在版编目 (CIP) 数据 满堂花醉 / 沈胜衣著. 南京 : 江苏教育出版社, ( 沈郎文字 ) ISBN Ⅰ. 满... Ⅱ. 沈... Ⅲ. 作家 - 人物研究 - 世界 Ⅳ.K815.6 中国版本图书馆 CIP 数据核字 (2005) 第 041 图书在版编目 (CIP) 数据 满堂花醉 / 沈胜衣著. 南京 : 江苏教育出版社, 2005.4 ( 沈郎文字 ) ISBN 7-5343-6512-0 Ⅰ. 满... Ⅱ. 沈... Ⅲ. 作家 - 人物研究 - 世界 Ⅳ.K815.6 中国版本图书馆 CIP 数据核字 (2005) 第 041843 号 出版者社址网址出版人 南京市马家街 31 号邮编 :210009 http://www.1088.com.cn

More information

语言教程 1 C 语言概述 C 语言的发展过程 当代最优秀的程序设计语言 C 语言版本 C 语言的特点 面向对象的程序设计语言 C 和 C 简单的 C 程序介绍 输入和

语言教程 1 C 语言概述 C 语言的发展过程 当代最优秀的程序设计语言 C 语言版本 C 语言的特点 面向对象的程序设计语言 C 和 C 简单的 C 程序介绍 输入和 语言教程 1 C 语言概述...6 1.1 C 语言的发展过程...6 1.2 当代最优秀的程序设计语言...6 1.3 C 语言版本...7 1.4 C 语言的特点...7 1.5 面向对象的程序设计语言...7 1.6 C 和 C++...8 1.7 简单的 C 程序介绍...8 1.8 输入和输出函数...9 1.9 C 源程序的结构特点...10 1.10 书写程序时应遵循的规则...10

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 第二讲 C++ 编程基础 主要内容 C++ 语言概述 C++ 的发展 C++ 源程序结构与书写规范 C++ 编译器和集成开发环境 C++ 编程基础 数据的简单输入输出 2 C++ 语言概述 C++ 的发展 - C++ 是从 C 语言发展演变而来, 可以看成是 C 的超集 - 1980 年由 Bjarne Stroustrup 开发创建 - 1983 年正式取名为 C++,1989 年开始 C++ 的标准化工作

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

数据结构

数据结构 信息管理与信息系统专业 第 3 章变量与表达式 任课教师 : 吕雅丽 本章内容 3.1 C# 基本数据类型 3.2 常量与变量 3.3 创建并使用枚举类型 3.4 运算符与表达式类型 3.5 运算符的优先级与结合性 2 3.1 C# 基本数据类型 3.1.1 数值类型 1. 整数类型 整数类型又有有符号整数与无符号整数 有符号整数可以带正负号, 无符号整数不需带正负号, 默认为正数 有符号整数包括

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点 复习 : Java 类型 基本类型 boolean, char, 封装 (wrappers) 类 (class) 定义 class MyType { int i; double d; 数据 (Fields) char c; void set(double

More information

C 1

C 1 C homepage: xpzhangme 2018 5 30 C 1 C min(x, y) double C // min c # include # include double min ( double x, double y); int main ( int argc, char * argv []) { double x, y; if( argc!=

More information

untitled

untitled Introduction to Programming ( 數 ) Lecture 3 Spring 2005 March 4, 2005 Lecture 2 Outline 數 料 If if 狀 if 2 (Standard Output, stdout): 料. ((Standard Input, stdin): 料. 類 數 數 數 說 printf 見 數 puts 串 數 putchar

More information

OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢

OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 复习 : Java 类型 基本类型 boolean, char, 封装 (wrappers) 类 (class) 定义 class MyType { int i;

More information

第一章三角函数 1.3 三角函数的诱导公式 A 组 ( ) 一 选择题 : 共 6 小题 1 ( 易诱导公式 ) 若 A B C 分别为 ABC 的内角, 则下列关系中正确的是 A. sin( A B) sin C C. tan( A B) tan C 2 ( 中诱导公式 ) ( ) B. cos(

第一章三角函数 1.3 三角函数的诱导公式 A 组 ( ) 一 选择题 : 共 6 小题 1 ( 易诱导公式 ) 若 A B C 分别为 ABC 的内角, 则下列关系中正确的是 A. sin( A B) sin C C. tan( A B) tan C 2 ( 中诱导公式 ) ( ) B. cos( 第一章三角函数 1. 三角函数的诱导公式 A 组 一 选择题 : 共 6 小题 1 ( 易诱导公式 ) 若 A B C 分别为 ABC 的内角 则下列关系中正确的是 A. sin( A B) sin C C. tan( A B) tan C ( 中诱导公式 ) B. cos( B C) cos A D. sin( B C) sin A sin60 cos( ) sin( 0 )cos( 70 ) 的值等于

More information

中国科学院优秀教材普通高等教育电气信息类应用型规划教材 C 语言程序设计 ( 第二版 ) 罗朝盛主编 张银南白宝钢魏英 副主编 北 京 内容简介 本书共 10 章, 包括 :C 语言程序设计概述, 数据类型与常用库函数, 运算符与表达式, 算法与控制结构, 数组 字符串与指针, 函数, 编译预处理, 结构体 共用体与枚举类型, 文件操作,C++ 程序设计初步 本书配有大量的例题和习题, 适合教师课堂教学和读者自学

More information

C/C++ 语言 - 循环

C/C++ 语言 - 循环 C/C++ Table of contents 7. 1. 2. while 3. 4. 5. for 6. 8. (do while) 9. 10. (nested loop) 11. 12. 13. 1 // summing.c: # include int main ( void ) { long num ; long sum = 0L; int status ; printf

More information

内容简介 本书根据全国计算机等级考试二级 C 语言程序设计考试大纲要求, 结合目前高等院校学生学习计算机程序设计课程的情况组织内容, 全面地介绍了 C 语言程序设计的基础知识, 系统地讲述了 C 语言程序设计的基本方法和技巧 本书以 ANSI C 语言标准为依据, 深入浅出地介绍了 C 语言的基本数

内容简介 本书根据全国计算机等级考试二级 C 语言程序设计考试大纲要求, 结合目前高等院校学生学习计算机程序设计课程的情况组织内容, 全面地介绍了 C 语言程序设计的基础知识, 系统地讲述了 C 语言程序设计的基本方法和技巧 本书以 ANSI C 语言标准为依据, 深入浅出地介绍了 C 语言的基本数 普通高等教育计算机系列规划教材 C 语言程序设计 ( 第二版 ) 姜海涛主编曹震中武楠王妍闫超刘红娟叶永凯卫娜副主编 副主编 科学出版社职教技术出版中心 www.aboo 北京 内容简介 本书根据全国计算机等级考试二级 C 语言程序设计考试大纲要求, 结合目前高等院校学生学习计算机程序设计课程的情况组织内容, 全面地介绍了 C 语言程序设计的基础知识, 系统地讲述了 C 语言程序设计的基本方法和技巧

More information

test

test C 语言程序设计教案 计算机科学技术学院基础教学部 前言 一. 教学目的 C 语言程序设计是高等学校本专科生计算机基础教学中的一门必修的公共基础课, 也是学习计算机的入门课 教学目的是通过理论教学和实验操作, 使学生掌握 C 程序编写及操作, 使学生具备在信息化社会里工作 学习和生活所必须的计算机编程知识与基本操作技能, 系统地 正确地建立计算机相关概念, 具备独立读写程序的能力, 并使学有余力的同学对

More information

Microsoft PowerPoint - C语言课件-9-结构体.pptx

Microsoft PowerPoint - C语言课件-9-结构体.pptx 第九章结构体 郎大鹏 第九章结构体 9.1 结构体类型的声明方法 9.2 结构体类型变量的定义与使用 9.3 结构体数组 9.4 编程举例 9.5 习题 9.1 结构体类型的声明方法 结构体声明的语法形式如下 : struct 结构体标识符 成员变量列表 ; }; 例如, 为了描述班级 ( 假设仅仅包括班级编号 专业 人数等信息 ), 可以声明如下的结构体类型 struct Class char Code[10];

More information

《C语言程序设计》教材习题参考答案

《C语言程序设计》教材习题参考答案 教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN: 978-7-302-13599-9, 红色封面答案制作时间 :2011 年 2 月 -5 月一 选择题 1. 以下数组定义中, 错误的是 :C)int a[3]=1,2,3,4; 2. 以下数组定义中, 正确的是 :B) int a[][2]=1,2,3,4; 3. 设有定义 int a[8][10];,

More information

大侠素材铺

大侠素材铺 编译原理与技术 词法分析 Ⅱ 计算机科学与技术学院李诚 13/09/2018 主要内容 记号 (token) 源程序 词法分析器 getnexttoken 语法分析器 符号表 词法分析器的自动生成 正则表达式 NFA DFA 化简的 DFA 词法分析器的生成器 Lex: flex jflex Fst lexicl nlyzer genertor 2/51 Regulr Expr to NFA 正则表达式

More information

<4D F736F F D20CBB6CABFD1D0BEBFC9FAC8EBD1A7BFBCCAD4B4F3B8D92D383835B3CCD0F2C9E8BCC62E646F63>

<4D F736F F D20CBB6CABFD1D0BEBFC9FAC8EBD1A7BFBCCAD4B4F3B8D92D383835B3CCD0F2C9E8BCC62E646F63> 目录 I 考查目标... 2 II 考试形式和试卷结构... 2 III 考查内容... 2 IV. 题型示例及参考答案... 7 1 全国硕士研究生入学统一考试程序设计考试大纲 I 考查目标 全国硕士研究生入学统一考试计算机技术 软件工程专业学位硕士 程序设计 考试是为江苏大学招收以上硕士生设置的具有选拔性质的考试科目 其目的是科学 公平 有效地测试考生是否具备攻读计算机技术 软件工程专业学位硕士所必须的基本素质

More information

任务 3 加法运算练习游戏 019 这就需要用到 C# 语言的基础语法, 如数据类型 运算符和控制语句, 还需要其他的常用控件 在此任务的完成过程中, 读者可以接触到 C# 的数据类型 变量常量 运算符 控制语句等基础语法, 掌握以上知识点及其在软件开发中的应用 3.2 相关知识 预定义

任务 3 加法运算练习游戏 019 这就需要用到 C# 语言的基础语法, 如数据类型 运算符和控制语句, 还需要其他的常用控件 在此任务的完成过程中, 读者可以接触到 C# 的数据类型 变量常量 运算符 控制语句等基础语法, 掌握以上知识点及其在软件开发中的应用 3.2 相关知识 预定义 任务 3 加法运算练习游戏 3.1 情境描述 选择了开发环境并理解了事件驱动机制以后, 要开发项目, 还需掌握 C# 语言的语法 本任务的目标是完成如图 3.1 和图 3.2 所示的小学生加法运算练习游戏 这个小软件的功能是在窗体中的 + 两边出现 2 个 10 以内的随机数, 让用户 ( 适合于小学生 ) 在文本框内输入其和, 然后单击 OK 按钮 若输入的和是正确的, 则跳出一个红色的图片, 同时提示答对了,

More information

untitled

untitled 不 料 料 例 : ( 料 ) 串 度 8 年 數 串 度 4 串 度 數 數 9- ( ) 利 數 struct { ; ; 數 struct 數 ; 9-2 數 利 數 C struct 數 ; C++ 數 ; struct 省略 9-3 例 ( 料 例 ) struct people{ char name[]; int age; char address[4]; char phone[]; int

More information

untitled

untitled 图书在版编目 (CIP) 数据 家居美化中的巧 / 陈赞等编著. 北京 : 中国林业出版社,2003.4 ISBN 7-5038-3399-8 I. 家 II. 陈 III. 住宅 室内装饰 基本知识 IV.TU241 中国版本图书馆 CIP 数据核字 (2003) 第 022376 号 版权所有翻印必究 1 2002.10 1 ...1...1...2...2...3...4...5...6...7...8...8...10...10...11...12...12...13...13...15...15...16...17...18...19...20...20...20...21...22

More information

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit 6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C51 6.1 C51 6.1.1 C51 C51 ANSI C MCS-51 C51 ANSI C C51 6.1 6.1 C51 bit Byte bit sbit 1 0 1 unsigned char 8 1 0 255 Signed char 8 11 128

More information

4.C ( 详细解析见视频课程 绝对值 01 约 21 分 15 秒处 ) 5.E ( 详细解析见视频课程 绝对值 01 约 32 分 05 秒处 ) 6.D ( 详细解析见视频课程 绝对值 02 约 4 分 28 秒处 ) 7.C ( 详细解析见视频课程 绝对值 02 约 14 分 05 秒处 )

4.C ( 详细解析见视频课程 绝对值 01 约 21 分 15 秒处 ) 5.E ( 详细解析见视频课程 绝对值 01 约 32 分 05 秒处 ) 6.D ( 详细解析见视频课程 绝对值 02 约 4 分 28 秒处 ) 7.C ( 详细解析见视频课程 绝对值 02 约 14 分 05 秒处 ) [ 说明 ] 1. 以下所指教材是指朱杰老师的 管理类联考综合能力数学套路化攻略 2. 该文档中所标答案和参见的教材答案, 与视频有冲突的, 以视频答案为准! 基础篇 第 1 章 数 1.2.1 整数例题答案 : 1. A ( 详细解析见教材 P7 例 2) 2. D ( 详细解析见视频课程 数的性质 约 10 分 53 秒处 ) 3. C ( 详细解析见教材 P7 例 3) 4.E ( 详细解析见视频课程

More information

图书在版编目 (CIP) 数据 文学与现代性批判 / 邵建著. 南京 : 江苏教育出版社, ISBN Ⅰ. 文... Ⅱ. 邵... Ⅲ. 当代文学 - 文学研究 - 中国 Ⅳ.I206.7 中国版本图书馆 CIP 数据核字 ( 2005 ) 第 04185

图书在版编目 (CIP) 数据 文学与现代性批判 / 邵建著. 南京 : 江苏教育出版社, ISBN Ⅰ. 文... Ⅱ. 邵... Ⅲ. 当代文学 - 文学研究 - 中国 Ⅳ.I206.7 中国版本图书馆 CIP 数据核字 ( 2005 ) 第 04185 图书在版编目 (CIP) 数据 文学与现代性批判 / 邵建著. 南京 : 江苏教育出版社, 2005.4 ISBN 7-5343-6528-7 Ⅰ. 文... Ⅱ. 邵... Ⅲ. 当代文学 - 文学研究 - 中国 Ⅳ.I206.7 中国版本图书馆 CIP 数据核字 ( 2005 ) 第 041850 号 出版者社址网址出版人 南京市马家街 31 号邮编 :210009 http://www.1088.com.cn

More information

<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1ADBBB7>

<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1ADBBB7> 能源与动力工程学院 结构化编程 结构化程序设计 循环 循环结构 确定性循环 非确定性循环 I=1 sum=sum+i I = I +1 陈 斌 I>100 Yes No 目录 求和 :1+2+3++100 第四节循环的应用 PROGRAM GAUSS INTEGER I, SUM 计数器 SUM = 0 DO I = 1, 100, 1 SUM = SUM + I print*, I, SUM DO

More information