Microsoft Word - 扉页

Size: px
Start display at page:

Download "Microsoft Word - 扉页"

Transcription

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

2 普通高等教育 十一五 规划教材 ( 第二版 ) 刘加海朱云其等编著 北 京

3 内容简介 本书系统地介绍了 C 语言程序的设计思路 设计方法及开发流程, 通过大量的程序设计实例及与实例相仿的思考题, 能使读者尽快提高 C 语言程序设计能力 本书结构合理, 概念清楚, 由浅入深, 实用性强, 程序中的函数 循环 数组与基本算法 ( 如查找 排序 删除等 ) 融为一体 全书从字符串输出开始, 到菜单的显示与选择 记录的输入与显示 记录的查找 排序 删除 文件存储等, 程序设计的思想贯穿全书 本书是一本技能型 工程型的教材, 非常适合于 C 语言程序员及软件工程技术人员使用, 也可以作为计算机类 电子信息类相关专业本 专科学生的教材 图书在版编目 (CIP) 数据 C 语言程序设计 ( 第二版 )/ 刘加海, 朱云其等编著. 2 版. 北京 : 科学出版社,2010 ( 普通高等教育 十一五 规划教材 ) ISBN Ⅰ.C Ⅱ.1 刘 2 朱 Ⅲ. C 语言 - 程序设计 Ⅳ. TP312 中国版本图书馆 CIP 数据核字 (2009) 第 号责任编辑 : 孙露露 / 责任校对 : 柏连海责任印制 : 吕春珉 / 封面设计 : 耕者设计工作室出版北京东黄城根北街 16 号邮政编码 : 印刷科学出版社发行各地新华书店经销 * 2003 年 8 月第一版开本 : / 年 2 月第二版印张 : 年 2 月第十次印刷字数 : 印数 : 定价 :28.00 元 ( 如有印装质量问题, 我社负责调换 < >) 销售部电话 编辑部电话 版权所有, 侵权必究举报电话 : ; ; 科学出版社职教技术出版中心

4 C 语言是一种优秀的结构化程序设计语言, 它结构严谨 数据类型完整 语句简练灵活 运算符丰富 自从应用 C 语言编写 UNIX 操作系统获得成功以来, 它一直受到计算机业内人士的好评 即使在面向对象的语言广泛使用的今天,C 语言仍然是高校计算机专业的一门专业基础课 几乎每一所高校都开设 C 语言这门课, 然而真正易教易学的教学却不多, 这是笔者在浙江大学教授近 100 轮次的 C 语言教学课后的深刻体会 目前大多数 C 语言教材先讲授数组, 在课程快结束时才讲指针 很多学生对指针的概念感到难以理解, 对于它的灵活应用更是困难 从 1996 年开始, 笔者根据多年的教学经验, 尝试在每一章就讲授指针与数组, 把数组和指针有机地结合起来, 并且全书贯穿指针与数组的概念, 使学生一开始就对 C 语言有总体上的清晰认识, 这种方法在后来的教学中取得了很大的成功, 从心理学的角度来看这也是完全符合人类的心理学习规律 近来笔者对这种教学方法进行了反复的研究, 并进行多次改进和进一步完善, 结合高职高专的教学特点, 编著了这本 C 语言程序设计 我们不敢说哪种方法最好, 但必须尝试一种教学方法, 它不但要符合此课程的教学特点, 使学生在学习过程中感到轻松, 更要符合人们学习的心理学习规律, 花更少的时间, 能更好地掌握知识, 希望这本书能让广大师生达到此目的 尽管笔者修改再三, 但无论书的结构还是书的内容都难免有不足的地方, 真切地希望广大师生批评指正, 以便在下一版中订正 本书由刘加海担任主编, 齐幼菊 孔美云 周文革任副主编, 参加本书编写的还有戚海燕 朱光忠 张翔 期进 郑正建 徐寿芳, 在这里对他们的辛苦工作表示感谢

5 C 语言是目前使用最为广泛的计算机高级语言, 发展如此迅速, 已成为最受欢迎的 语言之一 C 语言功能丰富, 表达能力强, 使用灵活方便, 应用面广, 目标程序效率高, 可移植性好, 既具有高级语言的优点, 又具有低级语言的许多特性 归纳起来,C 语言 具有下列特点 1)C 语言是中级语言 它把高级语言的基本结构和语句与低级语言的实用性结合 起来 C 语言可以像汇编语言一样对位 字节和地址进行操作, 而这三者是计算机最基 本的工作单元 2)C 语言是结构式语言 结构式语言的显著特点是代码及数据的分隔化, 即程序 的各个部分除了必要的信息交流外彼此独立 这种结构化方式可使程序层次清晰, 便于使用 维护以及调试 C 语言是以函数形式提供给用户的, 这些函数可方便地调用, 并具有多种循环 条件语句控制程序流向, 从而使程序完全结构化 3)C 语言功能齐全 C 语言具有各种各样的数据类型, 并引入了指针概念, 可使程序效率更高 另外,C 语言也具有强大的图形功能, 支持多种显示器和驱动器, 而且计算功能 逻辑判断功能也比较强大, 可以实现决策目的 4)C 语言适用范围广 C 语言还有一个突出的优点就是适合于多种操作系统, 如 DOS Windows UNIX Linux, 也适用于多种机型 本书共分 12 章, 各章主要内容介绍如下 第 1 章主要讲述了程序的概念, 对提出的某个问题, 如何分析, 解决问题的方法与步骤 即算法是什么, 为什么要采用这种算法? 掌握程序的顺序 分支和循环这三种结构, 正确理解对程序过程的描述 流程图的结构及流程图的画法 对本章中的源程序只作一般性的了解即可, 例如了解大致的程序结构, 如 main 函数, 程序从什么地方开始 到什么地方结束, 什么是语句,C 语言中书写的格式及是否区分大小写等 也可以暂时不学习源程序, 而把学习的重点放在对问题的描述 解决问题的方法以及程序的调试过程上 能够掌握整型常量的表示方法, 变量的定义方法,int char float double 等各种基本数据的输入 / 输出方法, 能够运用算术运算符 关系运算符和逻辑运算符构成各种表达式 第 2 章主要讲述了 C 语言程序设计中程序的格式化输入与输出, 输入 / 输出中各种不同类型变量的格式控制, 尤其是从键盘输入时是输入到变量的地址上, 能够输出文本菜单与文本构成的各种图形 第 3 章主要讲述了 C 语言程序设计中的 while 循环语句 通过本章的学习, 能够应用 while 循环解决实际工程问题, 掌握 while 循环的程序执行流程, 能正确应用 continue 与 break 语句, 掌握循环嵌套的程序设计 建议重点掌握 while 语句 for 语句的格式 for 语句中的两个分号 ; 及三个表达式的变化形式以及 do-while 语句的格式,while 语句的执行过程, 应用 while 语句来编写程序, 在程序编写过程中应注意循环变量的变化情况及循环体的模块结构 ; 掌握 break 与 continue 的区别 ; 掌握如何应用 for 语句来 科学出版社职教技术出版中心

6 ii C 语言程序设计 编写程序 ; 初步掌握 for 循环的嵌套程序设计 第 4 章主要论述了 C 程序设计中的 if 语句的用法 要正确理解 if 语句中表达式的用法, 此表达式通常采用的是逻辑表达式 关系表达式等, 但有时也采用算术表达式, 甚至有时使用赋值表达式 在实际应用中,if 语句通常与循环语句一起使用 switch 语句的用法虽然简单, 但使用过程中也容易犯错, 建议在学习过程中着重理解 break 语句的使用, 注意 case 后面的常量或表达式, 注意关系运算表达式 逻辑运算表达式所引起的错误, 注意 switch 中表达式的类型与常量的类型必须一致 同时, 要注意在 case 分支后是否有 break 语句所引起的程序走向 第 5 章主要论述了数组在程序设计中的应用 数组是一种常用的数据类型, 数组的应用非常广泛, 例如数组的操作往往涉及到元素的排序 查找 插入 删除等 数组元素的查找中涉及到顺序查找与二分法查找, 数组元素的插入涉及插入到某位置与按序插入 当插入元素时, 插入点后面的每一个元素先向后移一个位置, 在空出的位置插入此数 在数组元素删除中, 首先定位到删除的元素, 从删除元素的后一元素开始, 依次向前移一个位置 在数组的操作过程中, 应注意元素下标值的变化情况 第 6 章主要论述了函数的基本概念 系统函数的调用 函数的定义及函数的应用 函数有系统函数与自定义函数, 系统函数调用时要包含相应的库函数, 自定义函数时一定要认真关注此函数的返回值类型 函数名 函数的参数及参数的适用范围 函数调用中的实参与函数定义中的形参的对应关系, 希望读者多实践, 编写程序上机调试 第 7 章主要论述了不同存储类型的变量在不同函数 不同文件中生存期与作用范围的不同 理解变量的存储类型与变量的作用范围 生存期之间的关系, 掌握自动变量的作用范围, 掌握内部静态变量与外部静态变量作用范围及生存期, 外部变量在多文件系统中的应用 第 8 章主要论述了文件的基本概念与应用 在操作系统中, 外部存储器中的数据 文档或程序, 都是以文件的形式保存, 甚至对目录和各种设备的操作也都等同于文件的操作 本章让读者初步掌握 C 程序设计中文件的基本操作, 读者在学习过程中应关注打开的是文本文件还是二进制文件, 打开操作前文件是否已存在, 如何判断文件的结束, 以什么样的格式读写文件, 用什么函数来读写 第 9 章主要论述了指针的概念与应用 指针在 C 语言中是非常重要的概念, 指针可以指向变量的地址, 指针使用灵活, 可以使用 移动指针来获取指针所指的地址上的内容, 因而把指针应用在数组上非常灵活 C 语言利用指针变量统一地处理变量的地址和数组的下标, 因而提高了 C 语言的描述能力, 并可获得较高的编译质量 指针变量被广泛使用, 它和数组 字符串 函数间数据的传递等有着密不可分的联系, 学习中应注意 : 虽然指针变量是指向变量在内存中的存储地址的, 而实际上更关心的是指针变量所指的地址上的内容 第 10 章主要论述了指针和函数的关系 主要包括四个方面的内容 : 一是指针可以作为函数的参数进行传递 ; 二是某种指针可以指向函数的入口地址, 即指向函数指针 ; 三是调用一个函数后, 函数的返回值可以是指针, 即指针函数 ; 四是字符类型的指针数组可以作为 main 函数的参数, 在程序执行时从命令行传入, 即所谓的命令行参数 在

7 前言 iii 本章中涉及的概念较多, 要区分各种类型的定义形式与应用方法 第 11 章主要论述了结构体类型的概念及应用 结构体是一种自定义的数据类型, 结构体在增强程序语言功能方面有不可替代的作用, 特别是涉及到一些结构化的且有大量数据处理的程序, 常常要借助结构体变量特别是结构体数组变量的使用 本章从结构体类型的定义 初始化 赋值开始, 讲解结构体变量的输入 / 输出 增加 显示 查找 删除 排序, 利用结构体数组与文件之间的操作实现了一个结构化的通讯录程序 第 12 章主要论述了链表的定义 栈的基本操作的实现 队列的基本操作的实现 链表属于动态空间分配, 主要优点是可以根据程序数据的存储需要随时扩充或缩小数据结点, 这样不会浪费存储空间, 不过链表中相邻的结点其存储地址是不相邻的 链表的建立过程是用指针把前后结点连接起来, 程序设计中应注意是队列结构还是栈结构, 队列是先进先出的存储结构, 而栈是先进后出的存储结构 队列的建立过程中头指针不动, 而尾指针不断指向新产生的结点 ; 栈的建立过程中尾指针不动, 而头指针不断指向新产生的结点 本书在讨论以上这些主题时, 首先给出实例, 通过实例介绍程序设计的方法, 通过大量的实例与清晰的程序流程使读者迅速掌握相关知识 编程技能与技巧, 然后给出相关联的思考题, 通过思考题迅速提高读者对程序设计概念的理解 ; 通过给出的相应的上机实践, 提高读者的程序设计能力和掌握程序设计技巧 本书的作者对 C 语言教学有着丰富的实践与教学经验, 本书由浙江大学城市学院刘加海 浙江工商大学朱云其 辽宁工程技术大学黄金波 河南工业大学李周其编著 本书可提供相应的教学大纲 教学课件 习题答案及所有的源程序, 可到科学出版社网站 (k.cn) 下载 由于时间仓促及作者水平有限, 书中难免存在疏漏和不妥之处, 敬请广大读者批评和指正, 批评与建议请发到邮件 Ljhqyyq@yahoo.com.cn, 非常感谢 科学出版社职教技术出版中心

8 1 1.1 程序的概念 算法与流程图 结构化程序的结构 顺序结构 分支结构 循环结构 C 程序的构成 C 函数 C 语句 保留字与标识符 保留字 标识符 常量 整型常量 实型常量 字符常量 变量 变量的数据类型及其定义 整型变量 实型变量 字符变量与字符串 运算符 算术运算符 关系运算符 逻辑运算符 位运算符 编辑 C 程序时应注意的问题 28 习题 字符串的输入与输出 字符串的输出 字符串的输入 整型数的输入与输出 35

9 viii C 语言程序设计 整型数的输出 整型数的输入 字符的输入与输出 实型数的输入与输出 40 习题 循环的概念 while 循环 do-while 循环 for 循环 break 语句和 continue 语句 循环嵌套 60 习题 if 语句的应用 if-else 语句的应用 if-else if 语句的应用 if 嵌套语句的应用 switch 的应用 79 习题 一维数组 一维数组的定义 一维数组的引用方法 一维数组的初始化与赋值 字符数组 二维数组 二维数组的定义 97 科学出版社职教技术出版中心 二维数组的表示 初始化与赋值 数组元素的查找 无序数组的查找 有序数组的查找 数组元素的插入 绝对位置的插入 有序数据的插入 数组元素的删除 数组的排序 冒泡排序 111

10 目录 ix 选择排序 114 习题 函数的基本概念 函数的参数 系统函数的应用 数学函数 字符串处理函数 字符操作函数与转换函数 自定义函数 函数的应用 函数的嵌套与递归调用 函数的嵌套调用 函数递归调用 141 习题 变量的存储类型 auto 存储类型的变量与作用范围 static 存储类型的变量与作用范围 register 存储类型的变量与作用范围 extern 存储类型的变量与作用范围 多文件系统中的函数调用 外部变量在多文件系统中的应用 161 习题 文件概述 文件打开与关闭函数 文件打开函数 fopen 文件关闭函数 fclose 文件中字符的读 / 写函数 文件中格式化读 / 写函数 文件中数据块读 / 写函数 文件中位置定位函数 176 习题 指针的基本概念 相同类型指针间的基本运算 一维数组与指针 字符串与字符指针变量 191

11 x C 语言程序设计 字符数组与字符串 指针变量与字符串 指向二维数组的指针 二维数组的表示及应用 指向二维数组的数组指针 指针数组 二级指针 201 习题 指针与函数参数 指向函数的指针 返回值为指针的函数 命令行参数 225 习题 结构体的基本概念 结构体类型定义 结构体变量的定义 结构体变量占据的内存空间 结构体变量对结构体成员的引用 结构体变量的赋值 结构体类型的数组 结构体变量的输入 / 输出与存储 结构体变量查找与删除 结构体变量的排序 247 习题 链表的定义 堆栈 258 科学出版社职教技术出版中心 12.3 队列 链表的插入 链表的删除 链表的应用 267 习题 附录一 ASCII 表 276 附录二运算符及其优先级汇总表 277 附录三 C 语言的保留字 278 附录四 C 语言部分常用库函数 278

12 目录 xi 附录五 Linux 环境下 C 程序编辑 编译 285 附录六 Visual C 上机步骤

13 第 1 章 C 语言程序的基本构成 本章重点 程序的概念 结构化程序的结构 算法的概念 流程图的表示 程序的框架 本章难点 C 语言程序的结构 源文件 目标文件 可执行文件的概念 算法的理解 流程图的画法 本章学习建议 把握针对提出的某个问题, 如何分析, 解决问题的方法与步骤 即算法是什么, 为什么要采用这种算法? 掌握程序的顺序 分支和循环这三种结构, 正确理解对程序过程的描述 流程图的结构及流程图的画法 对本章中的源程序只作一般性的了解即可, 例如了解大致的程序结构, 如 main 函数, 程序从什么地方开始 什么地方结束, 什么是语句,C 语言中书写的格式及是否区分大小写等 也可以暂时不学习源程序, 而把学习的重点放在对问题的描述 解决问题的方法以及程序的调试过程上 科学出版社职教技术出版中心

14 2 C 语言程序设计 1.1 程序的概念 程序是指人们将需要计算机做的工作写成一定形式的指令, 并把它们存储在计算机的内部存储器中 当人们给出命令之后, 计算机就按指令操作顺序自动进行, 这种可以连续执行的一条条指令的集合被称为 程序 目前, 正在使用的计算机程序设计语言有上百种, 有些语言是面向机器的, 如二进制语言, 而多数是面向问题的语言 面向问题的语言被称为计算机的 高级语言, 如 C C++ 语言等 目前的程序设计一般可分为非结构化程序设计 结构化程序设计和面向对象程序设计,C 语言是结构化程序设计语言, 而 C++ 是面向对象的程序设计语言 这些语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式, 人们学习和操作起来十分方便 程序设计的过程一般包括 : 1) 问题的提出 要求及所采用的数据结构 2) 算法的确定 程序的编制 3) 程序的调试及修改 4) 整理并写出文档资料 程序是为了某方面的应用而设计的, 用 C 语句所写的序列称为 C 源程序, 它的后缀为.c C 源程序经过编译 (compile) 后生成一个目标文件 (.obj), 链接库函数后生成可执行文件 (.exe) 因而,C 程序的设计过程如图 1.1 所示 问题的提出及 确定该问题的 用 C 语言描述算法 编译生成.obj 分析 算法 建立 C 语言源程序 文件 链接有关库函数后 运行程序并输出 生成.exe 文件 正确的结果 图 1.1 C 程序的设计过程 结构化程序设计由三种结构组成 : 顺序结构 选择结构和循环结构 (1) 顺序结构顺序结构的程序是一条语句接一条语句顺序往下执行 例如, 在图 1.2 中, 先执行语句 1, 然后执行语句 2, 最后执行语句 3 顺序结构的程序是最简单的程序 (2) 分支结构在程序执行过程中, 程序的流程可由多路分支组成, 根据不同的条件去执行不同的任务 例如, 在图 1.3 中程序执行到条件表达式时, 首先判断条件是否为 真, 如为真, 则执行语句 1, 否则执行语句 2 (3) 循环结构在程序中需要根据某项条件重复地执行某项任务若干次或直到满足或不满足某条件为止, 这就构成循环结构 例如, 在图 1.4 中程序执行到循环条件表达式时, 首先判断循环条件是否为 真, 如循环条件为 真, 则执行循环语句, 循环语句执行完成后,

15 C 语言程序的基本构成第 1 章 3 又转去判断循环条件, 如循环条件仍为真, 再次执行循环语句, 如此反复, 直到循环条件为假, 退出此循环 语句 1 假 条件 真 语句 2 语句 2 语句 1 语句 3 图 1.2 顺序结构的程序段 图 1.3 分支结构的程序段 假 循环条件 真 循环语句 图 1.4 循环结构的程序段 某同学起床后, 先穿衣 洗脸 吃饭, 然后看看课表, 根据课表安排带上所需的课本, 去教室, 上午上五节课, 先上一节课, 还没到五节课, 再上一节课, 还没到五节课, 再上一节课 直到五节课上完, 早上的学习任务结束 根据此段描述, 若用程序流程来分析, 经历了哪些程序结构? 算法与流程图 科学出版社职教技术出版中心 算法是指解决问题所使用的一系列合乎逻辑的解题步骤, 可以把算法定义为解一类确定问题的任意一种特殊的方法 在计算机科学中, 算法要用计算机算法语言描述, 算法代表用计算机解一类问题的精确 有效的方法 算法 + 数据结构 = 程序, 求解一个给定的可计算或可解的问题, 不同的人可以编写出不同的程序 制定一个算法, 一般要经过设计 确认 分析 编码 测试 调试 计时等阶段 要解决一个复杂的问题, 需要仔细的分析与研究此问题, 并进行精确的逻辑分析, 找到解

16 4 C 语言程序设计 决问题的方法, 再用计算机实现 例如, 判断一个整数的奇偶性, 大致可分成以下几步 : 1) 计算机读入该数 2) 将该数除以 2 3) 判断余数是否为 0 4) 如果为 0, 则该数为偶数 5) 否则为奇数 这些解决数的奇偶性问题的一系列步骤就是算法, 并且可以用 C 语言编写成程序 2. 流程图是一种用图解方式来说明解决一个方案所需完成的一系列操作 流程图比文字更容易理解, 更加直观, 流程图中的符号及含义如表 1.1 所示 表 1.1 流程图的符号及含义 常用基本组件含义程序的入口和出口加工 处理 条件判断控制流连接符输入 / 输出 1.3 结构化程序的结构 下面通过实例向大家讲解顺序结构 选择结构和循环结构的程序设计方法 顺序结构的程序是一条语句接一条语句顺序地往下执行, 直到程序结束 - 设计一个程序, 显示下列图形 : ************************* C 语言的学习要努力! ************************* 这是一个典型的顺序执行的程序设计, 输出三个字符串, 输出字符串应用函数 printf 来完成, 程序设计具体的过程描述如下 : 开始 显示 :************************* 换行后再显示 :C 语言的学习要努力! 换行后再显示 :************************* 程序结束

17 C 语言程序的基本构成第 1 章 5 此程序设计用流程图表示如图 1.5 所示 开始 输出 :******************* 输出 :C 语言的学习要努力! 输出 :******************** 结束 用 C 语言写成的源程序如下 : 图 1.5 程序设计流程图 #include<stdio.h> /* 包含标准输入 / 输出库预处理命令 */ int main() /* 主函数开始 */ /* 程序从此开始执行 */ printf("***********************\n"); /* 输出一行星号 */ printf("c 语言的学习要努力!\n"); /* 输出一行字符 */ printf("***********************\n"); /* 输出一行星号 */ return 0; /* 与 main 函数中的 int 相对应 */ /* 程序结束 */ 注意 :C 语言程序设计中往往要用到输入与输出函数 scanf printf, 因而要包含预处理命令 #include<stdio.h> 程序从 main 函数开始执行, 一个能运行的 C 语 言程序必须要有一个 main 函数, 并且只能有一个 main 函数,printf 为系统输出函数, 语句后要有 ; 号, 细节问题请读者通过第 2 章来学习 步骤 1: 在 Visual C++ 环境下新建文件, 可单击菜单 开始 程序 Microsoft Visual C Microsoft Visual C 如果出现每日提示, 如图 1.6 所示, 即单击 关闭 按钮 科学出版社职教技术出版中心 图 1.6 每日提示 对话框 步骤 2: 单击菜单 文件 新建 文件 C++ Sourse File, 输入文件名 1-1.c, 如

18 6 C 语言程序设计 图 1.7 所示, 单击 确定 按钮 图 1.7 新建 对话框 步骤 3: 在编辑区内输入 C 源程序, 如图 1.8 所示 图 1.8 在编辑区输入 1-1.c 源程序步骤 4: 在 Visual C++ 环境下单击工具图标, 出现如图 1.9 所示的对话框, 在图 1.9 中单击 是 按钮, 建立一个工程文件 然后在图 1.10 中单击 是 按钮, 将改动保存到文件 在图 1.11 中单击 是 按钮, 建立应用程序文件 图 1.9 创建工程 对话框 图 1.10 将改动保存到文件 步骤 5: 单击执行图标, 执行程序 1-1.exe, 程序运行结果如图 1.12 所示 图 1.11 建立应用程序 图 1.12 程序运行结果

19 C 语言程序的基本构成第 1 章 7 1) 在例 1-1.c 中, 如果没有 main, 编译程序后出现的错误提示是什么? 在 C 程序设计中要注意什么问题? 2) 在例 1-1.c 中, 如把 main 写成了 Main, 编译程序后出现的错误提示是什么? 在 C 程序设计中要注意什么问题? 3) 在例 1-1.c 中, 如语句 printf("***********************\n"); 后少了 ; 号, 编译程序后出现的错误提示是什么? 在 C 程序设计中要注意什么问题? 4) 在例 1-1.c 中, 如没有写上预处理命令 #include<stdio.h>, 编译程序后出现的错误提示是什么? 这是为什么? 5) 在例 1-1.c 中, 任何一行的输出语句中少了符号 \n, 程序运行后的结果有什么变化? 在 C 语言中符号 \n 的作用是什么? 6) 在例 1-1.c 中, 如语句 printf("***********************\n"); 中少了双引号, 编译程序后出现的错误提示是什么? 7) 程序执行前为什么一定要经过编译? 提示 : 计算机只能执行机器语言, 即二进制语言, 而编辑好的源程序代码是由 ASCII 码组成的文本 在程序执行过程中, 程序的流程可由多路分支组成, 根据不同的条件去执行不 同的任务 假如判断从键盘输入的两个数的大小, 如果 x>y, 提 示 x 大于 y ; 如果 x<y, 提示 x 小于 y 此时将会用 到如图 1.13 所示的流程图 - 从键盘输入两个整数, 用程序判断两 个数的大小, 根据数的大小输出 x 大于 y 或 x 小 于 y 如下 : 这是一个分支程序设计, 具体的过程描述 程序开始 分配数的存储空间 输入两个数给 x y 如果 x 大于 y 输出 :x 大于 y 否则 输出 :x 小于 y 程序结束根据上述描述, 所设计程序流程图如图 1.14 所示 假 x 小于 y x>y 做下一步 真 图 1.13 分支结构形式 x 大于 y 科学出版社职教技术出版中心

20 8 C 语言程序设计 开始 分配数的存储空间 输入两个数 x y 假 x>y? 真 x 大于 y x 小于 y 结束 图 1.14 两数中求最大值流程图 用 C 语言写成的源程序如下 : #include<stdio.h> /* 包含标准输入 / 输出库预处理命令 */ int main() /* 主函数开始 */ /* 程序从此开始执行 */ int x,y; /* 定义两个变量 */ scanf("%d %d",&x,&y); /* 读入两个整型数给变量 x y,%d 为整型数的格式符 */ if(x>y) /* 如果 x 大于 y*/ printf("x 大于 y\n"); /* 输出 :x 大于 y */ else /* 否则 */ printf("x 小于 y\n"); /* 输出 :x 小于 y */ return 0; 步骤 1: 在 Visual C++ 环境下新建文件, 可单击菜单 开始 程序 Microsoft Visual C Microsoft Visual C++ 6.0, 关闭 每日提示 步骤 2: 单击菜单 文件 新建 文件 C++ Sourse File, 输入文件名 1-2.c, 单击确定按钮 步骤 3: 在编辑框内输入 C 源程序 1-2.c, 如图 1.15 所示 图 1.15 源程序编辑区

21 C 语言程序的基本构成第 1 章 9 步骤 4: 在 Visual C++ 环境下单击工具图标, 编译源程序 1-2.c, 产生可执行文件 1-2.exe 步骤 5: 单击执行图标, 执行程序 1-1.exe, 程序运行结果如图 1.16 所示 (a) 程序运行时输入 , 然后按回车键 (b) 程序运行时输入 , 然后按回车键 图 1.16 程序运行结果 1) 在例 1-2.c 中, 如果没有语句 int x,y; 编译程序后出现的错误提示是什么? 在 C 程序设计中要注意什么问题? 2) 在例 1-2.c 中, 如把语句 scanf("%d %d",&x,&y); 写成 :scanf("%d %d",x,y); 用来读入两个整型数给变量 x y, 程序的运行结果会如何? 3) 在例 1-2.c 中, 如程序在运行时输入为 :1000,500, 程序能否得出正确的运行结果? 4) 在例 1-2.c 中, 如果在 if(x>y) 后加上 ; 号, 编译程序后出现的错误提示是什么? 想想这是为什么? 5) 在例 1-2.c 中, 输入源程序后,int if else 为什么会变颜色, 在 C 程序设计 中有什么特殊的意义? 如果在程序中需要根据某项条件重复地执行某项任务若干次, 直到满足或不满足某条件为止, 这就构成循环结构 例如, 要做一个加法运算, 从 1 加到 100, 算法是 : 先把总和 sum 设为 0, 然后变 量 i 从 1 开始, 把 1 加入总数 ; 然后 i 增加 1,i 为 2, 把 i 加入总数 ; 然后 i 再增加 1, i 为 3, 再把 i 加入总数 ; 一直加, 当 i 为 100 加入总数后,i 还要增加 1, 到 i 的值为 101, 此时条件不满足, 循环不再进行 最后的总数就是 1 加到 100 的和 - 计算 的值, 用循环的方法画出程序的流程图 科学出版社职教技术出版中心 和的初始值 sum 为 0, 循环变量 i 的变化从 1 到 100 当 i 值为 1 时, 判 断 i 的值是否小于 100, 如果是, 把 i 加入 sum, 然后 i 增加 1, 再判断 i 的值是否小于 100, 如此反复循环, 当 i 的值大于 100 时, 停止循环, 最后输出 sum 具体的过程描述如下 : 程序开始 给 sum i 分配存储空间, 并分别赋值 0 1 判断 i 是否小于等于 100 如果是, 把 i 加入 sum,i 增加 1

22 10 C 语言程序设计 否则停止循环 输出 sum 程序结束程序的流程图如图 1.17 所示 开始 sum i 分配空间 i<= sum=sum+i i=i+1 输出 sum 结束 用 C 语言写成的源程序如下 : 图 1.17 求从 1 加到 100 和的程序流程图 #include<stdio.h> int main() int i=1,sum=0; while(i<=100) sum=sum+i; i++; printf(" 从 1 加到 100 的和为 %d \n",sum); return 0; 步骤 1: 在 Visual C++ 环境下新建文件, 可单击菜单 开始 程序 Microsoft Visual C Microsoft Visual C++ 6.0, 关闭 每日提示 步骤 2: 单击菜单 文件 新建 文件 C++ Sourse File, 输入文件名 1-3.c, 单击 确定 按钮 步骤 3: 在编辑框内输入上述 C 源程序 1-3.c

23 C 语言程序的基本构成第 1 章 11 步骤 4: 在 Visual C++ 环境下单击工具图标, 编译源程序 1-3.c, 产生可执行文件 1-3.exe 步骤 5: 单击执行图标, 执行程序 1-3.exe, 程序运行结果如图 1.18 所示 图 1.18 程序运行结果 1) 在例 1-3.c 中, 为什么语句 int i=1,sum=0; 中的 sum 要赋初值 0? 如果不赋 值, 程序运行时会有什么结果? 2) 在例 1-3.c 中, 如语句 while(i<=100) 后有 ; 号, 程序的运行结果会如何? 3) 在例 1-3.c 中, 如语句段 while(i<=100) sum=sum+i; i++; 中无大括号, 程序的运行结果会如何? 4) 在例 1-3.c 中, 如上述程序段中少了语句 i++; 程序能否得出正确的运行结果? 1.4 C 程序的构成 C 语言是结构化的程序设计语言, 一个 C 源程序可以由一个或多个文件组成,C 源 文件的扩展名一般为.c( 或.cpp), 下面通过实例来学习多文件系统中的函数调用 注意 : 文件是指存放在存储器上以文件名进行管理的一组信息, 函数指具有独立功 能 按一定格式构成的代码段 - 在 Visual C++ 环境下新建两个文件, 其文件名分别为 c 和 c, 其中 c 文件定义一个做乘法的函数 f, 以及定义另一个主调函数 main, 在主调函数 中调用函数 f 以及调用存放在 c 中的 disp 函数, 在 main 函数中输出 f 的返回值 程序的模块结构图如图 1.19 所示 文件 c 由两个函数构成, 文件 c 由一个函数构成, 程序的执行从 main 函数开始,main 函数调用 f 函数, 然后再调用 disp 函数 在此类程序设计中要注意是否在同一文件夹下建立 C 源程序 文件的包含 include c 文件 f 函数 c 文件 科学出版社职教技术出版中心 main 函数 disp 函数 图 1.19 C 程序的多文件构成

24 12 C 语言程序设计 函数的调用等问题 步骤 1: 在 Visual C++ 环境下新建文件, 可单击菜单 开始 程序 Microsoft Visual C Microsoft Visual C 步骤 2: 单击菜单 文件 新建 文件 C++ Sourse File, 输入文件名 c, 如图 1.20 所示, 单击 确定 按钮 图 1.20 输入文件名 步骤 3: 在如图 1.21 所示的编辑框内输入代码 图 1.21 文件 c 的程序源代码 步骤 4: 单击保存按钮, 保存 c 文件 注意 : c f main main main c #include "1-4-2.c" disp c main disp

25 C 语言程序的基本构成第 1 章 13 步骤 5: 单击菜单 文件 新建 文件 C++ Sourse File, 输入文件名 c, 源 程序代码如下 单击 int disp( ) printf("******************\n"); return 0; 按钮, 保存 c 文件 步骤 6: 单击菜单 文件 打开, 选择刚才创建的 c 文件 步骤 7: 在 Visual C++ 环境下单击工具图标, 出现对话框, 在图 1.22 中单击 是 按钮, 建立一个工程文件, 然后在图 1.23 中单击 是 按钮 图 1.22 创建工程对话框 图 1.23 建立.exe 与.obj 文件 步骤 8: 单击执行图标, 执行程序 exe, 程序运行结果如图 1.24 所示 这是读者所编辑与调试的第一个 C 程序, 这个 C 源程序 由两个.c 文件构成, 这两个文件分别是 c 和 c 因 此可以说 : 一个 C 程序是由一个或多个文件构成的 注意 : 1 printf stdio.h 2 main disp disp c main c 3 4 ; 5 C 6 int return include C disp f a b 图 1.24 程序运行结果 科学出版社职教技术出版中心 在例 1-4 中, 修改函数 disp 为 display, 显示两排星号, 函数 f 改为 func, 做两个数 的加法运算,main 函数调用这两个函数, 请编写程序并编译调试

26 14 C 语言程序设计 在文件 c 中去掉 #include<stdio.h> 这一行, 观察编译程序时有什么提示 上机调试程序例 1-4 在文件 c 中去掉 #include"1-4-2.c" 这一行, 观察编译程序时有什么提示 1.5 C 函数 C 程序由一个或多个文件构成, 而文件可由一个或多个函数组成, 如在文件 c 中, 由两个函数 main 和 f 构成, 文件 c 由一个函数 disp 构成,C 函数的定义结构如图 1.25 所示 函数的调用形式如下 : 函数名 ( 参数 ); 函数的原型如下 : 函数返回值函数名 ( 形式参数表 ); 注意 : main disp f printf printf C main main main main 类型函数名 ( 形式参数声明 ) 函数体 数据声明部分 语句部分 - 函数结构的例子 图 1.25 C 函数定义的结构示意图 int add(int x,int y) /* 函数返回值类型 函数名及形式参数的声明 */ /* 函数体开始 */ int z; /* 数据定义部分, 给变量分配内存空间 */ z=x+y; /* 执行语句 */ return z; /* 函数结束前返回一个整型值 */ /* 函数体结束 */ 其中, 和 分别表示函数执行的起点与终点或程序块的起点与终点, 函数的返

27 C 语言程序的基本构成第 1 章 15 回值类型为 int, 函数名为 add, 函数的形式参数定义为 int x int y 所谓参数定义, 是 指为变量在内存中分配空间 注意 : C int z; z 执行函数 add 后, 返回值 z 为整型数 同样道理, 在文件 c 中, 函数 f 的返回 值 c 也为整型数 一般认为, 函数是构成 C 程序最基本的单位 1.6 C 语句 C 程序由函数构成, 函数由语句构成, 语句的结束符用 ; 表示 在文件 c 中的 main 函数, 由 5 条语句构成, 每条语句均用 ; 表示语句的结束 int x=3,y=4,z; disp( ); z=f(x,y); printf(" %d * %d = %d\n",x,y,z); disp( ); 其中, 语句 int x=3,y=4,z; 表示在内存给 x y z 分配空间, 并给 x y 分别赋予一个最 初的值 3 与 4, 在定义变量的同时给变量赋初值, 也可叫作变量的初始化 语句 disp( ); 表示调用函数 disp 输出 :****************** 语句 z=f(x,y); 表示调用函数 f, 在调用函数 f 时, 把实参 x y 的值分别传给形参 a b, 把 a b 的乘积赋给 c, 函数 f 把返回值 c 赋给 main 函数中的 z 语句 printf(" 式为 :3*4=12 %d * %d = %d\n",x,y,z); 表示调用系统函数 printf 输出, 其输出形 语句 disp( ); 表示调用函数 disp 输出 :****************** 注意 : 1.7 保留字与标识符 语句由保留字 标识符 运算符和表达式构成 保留字是指 C 语言中有特殊含义的字, 只能用于 C 语言中特定的场合 例如 : int: 用于定义整型变量 float: 用于定义实型变量 double: 用于定义双精度变量 char: 用于定义字符变量或字符串变量 if: 用于判断 for: 用于循环 科学出版社职教技术出版中心

28 16 C 语言程序设计 while: 用于循环 在 C 语言中, 其他的保留字见附录, 其含义在以后的章节中将会陆续学到 注意 : int 与 Int 含义是否相同? 为什么? 标识符分为系统命名的标识符与用户自命名标识符 系统标识符通常用于系统函数的命名, 如 printf strlen scanf fabs malloc 等 用户自命名标识符是用户为命名变量或定义函数而取名, 通常用户自定义标识符以字母或下划线开头, 由字母 数字和下划线组成 注意 :a_12 _12 Int sqrt ab12 12a char a/b 1) 是否可用 int do=5; 定义一个整型变量? 为什么? 2) 下列哪些标识符是合法的? a-b-c,new.dat,bcda123,f(x),for,3x,_2x,x_2 1.8 常量 在程序运行过程中, 其值不能被改变的量, 称为常量 在 C 语言中, 常量有不同的类型, 有整型常量 (int) 实型常量(float 或 double) 字符常量(char) 和字符串常量 整型常量又可分为短整型 (short int) 长整型(long int) 和无符号型 (unsigned int) 等 或 整型常量的定义格式如下 : int const 常量名 = 常量值 ; const int 常量名 = 常量值 ; 例如 : int const x=10; 整型常量只用数字表示, 不能带小数点, 如 12 -l 0 等都是合法的整型常量 应该注意常量的值一旦指定, 在程序中就不能再改变, 在上例程序中如果试图改变 x 的值, 编译器就会报错

29 C 语言程序的基本构成第 1 章 17 整型常量通常可分为十进制 八进制和十六进制常量 十进制常量用一串连续的数字来表示, 如 等 八进制常量用数字 0 开头, 如 都是八进制数, 它们分别代表十进制数 十六进制常量用数字 0 和字母 x( 或大写字母 X) 开头, 如 0x10 0xff 0X8 均是十六进制数, 它们分别代表十进制数的 注意 : 1 a b c d e f 2 在 C 语言中, 错误的 int 类型的常数是 ( ) A. 32 B. 078 C. 037 D. 0xAF 提示 : 选项 A 为 int 型数 ; 选项 B 应该为八进制数, 而八进制数中无 8; 选项 C 为八进制数 ; 选项 D 为十六进制数 有下列程序段, 请组成一个完整的程序, 在 Visual C++ 环境下进行调试, 观察有什么错误的提示? 请思考错误是由什么原因引起的 const int x=0; int y=6; x=y*y; 实型常量定义如下 : float const 常量名 = 常量值 ; 例如 : float const x=2.1; 实型常量也称数值型常量, 它们有正值和负值的区分 实型常量通常用带小数点的 数字及指数形式表示, 如 e2 等 科学出版社职教技术出版中心 字符常量定义如下 : char const 常量名 = 常量值 ; 例如 : char const ch='a'; 字符常量用单引号括起来, 例如 'A' 是字符型常量, 而字符串常量用双引号括起来, 例如 '' asfgtyn'' 是合法的无名字符串常量

30 18 C 语言程序设计 由此可见, 常量的类型从字面形式即可区分是整型常量 字符型常量还是实型常量 C 编译程序就是以此来确定数值常量的类型 可以用一个符号名来代表一个常量, 但是这个符号名必须在程序中进行特别的 指定, 即符号常量 1) 下列常量中, 不能作为 C 语言常量的是 ( ) A. 0xA5 B. 2.5e-2 C. 57 D. '\b' 提示 :D 用单引号的应为字符常量, 字符常量只能是单个字符, 但 D 包含了 2 个字符 2) 下列形式的常数, 在 C 程序中不允许出现的是 ( ) A. 45 B. ±123 C. 25.6e-2 D. 4e3 提示 :C 程序允许出现的常数为一个确定的整数 实数 ( 可用小数形式或指数形式 ) 等 ±123 不允许出现 1.9 变量 变量是指在程序运行过程中, 其值可以发生变化的量 变量通常用来保存程序运行过程中的输入数据 计算获得的中间结果和最终结果 变量的取名规则与用户标识符相同, 给变量取名时, 为了便于阅读和理解程序, 一般都采用代表变量含义或用途的标识符 当程序运行时, 每个变量都要占用连续的若干个字节, 所占用的字节数由变量的数据类型及机器确定 其中第 1 个字节的地址称为变量的地址 C 语言规定, 程序中变量的地址是用 & 变量名 来表示的 C 语言规定, 变量可以是任何一种数据类型, 例如, 整型 短整型 长整型 无符号整型 无符号短整型 无符号长整型 单精度型 双精度型 字符型等基本类型, 也可以是数组型 结构型 共用体型等构造类型和指针型 枚举型 通常把具有某种数据类型的变量叫做该类型变量 例如, 短整型变量 长整型变量 单精度型变量 双精度型变量 字符型变量等 基本数据类型符及其含义如表 1.2 所示 表 1.2 中, 整型和无符号整型所占用的字节数是随计算机的不同而不同的, 在大部分计算机中都是和短整型占用相同的字节数 需要注意的是, 字符串只能是常量,C 语言中没有字符串变量 被定义为整型数的变量, 若其值在 之间, 可以当作字符型变量使用 每个变量在使用前都必须定义, 定义变量的含义是给变量分配存储空间

31 C 语言程序的基本构成第 1 章 19 定义变量的格式如下 : 数据类型符变量名 1, 变量名 2,, 变量名 n; Visual C 数据类型数据类型符占用字节数 整型 int 4 短整型 short 2 长整型 long 4 无符号整型 unsigned int 4 无符号短整型 unsigned short 2 无符号长整型 unsigned long 4 单精度实型 float 4 双精度实型 double 8 字符型 char 1 例如 : int x ; int y; 或等效为 int x, y ; 注意 : 1 ; 2 例如, 定义两个整型变量及一个字符变量可写为 int x,y; char ch; 在 C 语言中不带小数的变量表示整型变量, 整型变量所表示的整数有一定的范围 - 整型变量的定义及输出的例子 #include<stdio.h> void main( ) int x=2,y; /* 定义 x y 为整型变量, 并赋 x 的初值为 2 */ y=3; /* 赋 y 的初值为 3 */ printf("x=%d,y=%d\n",x,y); 在 C 语言中, 可以用两种形式表示一个实型变量或实型常量 科学出版社职教技术出版中心

32 20 C 语言程序设计 1. 即在数学中常用的实数形式, 由数字和小数点组成 ( 注意 : 必须要有小数点 ), 如 等都是合法的实型常量 2. 这种形式类似数学中的指数形式 在数学中, 一个数可以用幂的形式来表示, 如 可以表示为 e1, 可以表示为 2.345e-4 等形式 C 语言的语法规定, 字母 e( 或 E) 前后必须要有数字, 且 e( 或 E) 后面的指数必须为整数 如果写成 e3.5e3..e3 e 等都是不合法的指数形式 需注意的是, 在字母 e( 或 E) 的前后以及数字之间不得插入空格 C 语言中实型变量分为单精度型和双精度型两类, 分别用类型名 float 和 double 进行定义 注意 : C 语言中, 一个字符常量代表 ASCII 字符集中的一个字符, 在程序中用单引号括起来作为字符常量 例如 :'A' 'C' 't' '!' '?' 都是合法的字符常量 C 语言中, 字符变量用关键字 char 进行定义, 在定义的同时可以赋初值 1. 定义形式如下 : char 变量名 1, 变量名 2,, 变量名 n; 例如 : char ch; 注意 : 例如 : char c1, c2; c1= a ; c2= b ; 字符变量的值是该变量所代表的字符 ASCII 代码, 与整数的存储形式相似, 如字符 'a' 的 ASCII 代码为 97, 其存储形式为 同理,98 也可代表字符 'b', 它的存储形式为二进制的 因而, 在 范围内的字符与整型数可以互相赋值, 并且所有字符常量都可作为整型量来处理 - 字符与整型数互相赋值的例子

33 C 语言程序的基本构成第 1 章 21 #include<stdio.h> void main() int i; /* 定义一个整型变量 */ char c; /* 定义一个字符变量 */ i= a ; /* 字符赋值给整型变量 */ c=97; /* 整型数赋值给字符变量 */ printf("%d %c\n",i,c); c=c+1; /* 加 1 后 c 为 98, 字符 'b' 的 ASCII 码为 98*/ printf("%d %c\n",c,c); /* 变量 c 分别以整型 字符型输出 */ i=i+1; /*'a'+1 为 'b'*/ printf("%d %c\n",i,i); /* 变量 i 分别以整型 字符型输出 */ 程序运行结果如图 1.26 所示, 请读者自行分析输出结果 图 1.26 程序运行结果 1 'B' 'b' 2 3 'abc' 4 ''a'' 5 ASCII ASCII 68 'A' 3 'A'+32 'a' '1' '0' 1 在 C 语言中, 字符常量也可以进行关系运算 如 'a'<'b', 由于在 ASCII 代码表中, 'a' 的值 97 小于 'b' 的值 98, 所以关系运算的结果为 1 输出 程序中定义一个字符变量 ch, 并初始化为 'a', 通过运算把 ch 的值转化为 'B' 提示 : 考虑表达式 ch=ch-32+1 科学出版社职教技术出版中心

34 22 C 语言程序设计 2 转义字符又称反斜线字符, 这些字符常量总是以一个反斜线开头, 后跟一个特定的字符来代表某一个特定的 ASCII 字符, 这些字符常量也必须括在一对单引号内 例如 : '\n' 表示换行符 表 1.3 列出了 C 语言中的转义字符 字符形式 功 能 \n 换行 \b 退格 \v 垂直跳格 \ 双引号 \\ 斜杠 \a 报警 \r 回车 \t 水平跳格 \f 换页 \' 单引号 \0 空字符 \ddd \xhh 三位八进制数 ddd 所代表的字符 二位十六进制数 hh 所代表的字符 注意 : '\n' '\101' '\141' 0 '\101' 'A' x X 0x 'x41' 'A' - 转义字符输出的例子 #include<stdio.h> void main() printf("my name is \a Liu"); 先显示 My name is, 然后 嘟, 再显示 Liu 编写一个程序, 屏幕输出字符串 "c:\visual C++ 文件 ", 要求应用转义字符 '\\' '\x20' '\t' 请考虑字符串"c:\\Visual\x20C++\t 文件 "

35 C 语言程序的基本构成第 1 章 23 3 字符串常量是由双引号括起来的一串字符, 如 ''string'' 就是字符串常量 在 C 语言中, 系统在每个字符串的最后自动加入一个字符 '\0' 作为字符串的结束标志 请注意字符常量和字符串常量的区别, 例如 'z' 是字符常量, 在内存中占一个字节 ; 而 ''abcd'',''z'' 是字符串常量, 前者占 5 个字节, 后者占两个字节的存储空间, 其中一个字节用来存放 '\0' 两个连续的双引号 '''' 也是一个字符串常量, 称作 空串 但要占一个字节的存储空间来存放'\0' 下列数据中, 为字符串常量的是 ( ) A. 'A' B. ''house'' C. How do you do. D. $abc 提示 : 字符串常量是用一对双引号括起来的字符序列 注意 : 1 '\0' 2 '\0' '\0' ''abc\067de'' 6 3 '\067' - 求字符串 ''m\x42\\\tp\101qy'' 的长度 分析 \x42 \\ \t \101 分别代表一个字符, 因而此字符串的长度为 8 可以用以 下程序在机器上测试此字符串的长度 : #include<stdio.h> #include<string.h> /* 字符串长度测试函数 strlen 在 string.h 库中 */ void main() int x; x=strlen("m\x42\\\tp\101qy"); printf("x=%d\n",x); 输出结果如下 : x= 运算符 在 C 程序中有极为丰富的运算符, 例如算术运算符 关系运算符 逻辑运算符 位运算符等 科学出版社职教技术出版中心 算术运算符用于加 减 乘 除 取余数等操作, 它们的表达方式及含义如表 1.4 所示

36 24 C 语言程序设计 运算符 含 义 例 备 注 + 加 5+2 结果 7 - 减 5-2 结果 3 * 乘 5*2 结果 10 / 除 5/2 结果 2 % 取余数 5%2 结果 1 只适用于整型数 ++ 自增运算 -- 自减运算 y=x++; 等同 y=x;x++; y=++x; 等同 x++;y=x; y=x--; 等同 y=x;x--; y=--x; 等同 x--;y=x; 适用于整型数 适用于整型数 注意 y=x++; y=x;x=x+1; y=++x; x=x+1;y=x; y=x--; y=x;x=x-1; y=--x; x=x-1;y=x; 1) 上机调试下列程序, 总结余数的符号与什么相关 #include<stdio.h> int main() printf("%d %d %d %d\n",5%2,5%-2,-5%2,-5%-2); return 0; 2) 上机调试下列程序, 分析程序输出的结果 #include<stdio.h> int main() int x,y,z; x=5; y=x++; z=++x; printf("y=%d z=%d x=%d\n",y,z,x); 3) 把上机调试 2) 程序中的 ++ 改为 --, 再次调试程序, 观察程序运行的结果 关系运算符主要用于比较, 它有大于 大于等于 小于 小于等于 判断等于 不等于, 它们的表达方式及含义如表 1.5 所示

37 C 语言程序的基本构成第 1 章 25 运算符含义举例 >= 大于等于 > 大于 < 小于 <= 小于等于 == 判断等于!= 不等于 20>=20 结果 1 10>=20 结果 0 20>20 结果 0 20>10 结果 1 20<30 结果 1 20<10 结果 0 20<=30 结果 1 20<=10 结果 0 20==20 结果 1 20==10 结果 0 20!=20 结果 0 20!=10 结果 1 注意 : 运算符的优先级 表达式 y=6<10==1 它等同于 y=(6<10)==1 还是 y=6<(10==1)? 逻辑运算符有逻辑与 逻辑或和逻辑非, 它们的表达方式及含义如表 1.6 所示 逻辑运算符含义举例! 逻辑非 : 对真取非结果为假, 对假取非结果为真 && 逻辑与 : 表示两个运算对象都为真结果才为真 逻辑或 : 表示两个运算对象中有一个为真结果就为真!20 结果 0!0 结果 1 20&&45 结果 1 20&&0 结果 结果 结果 0 1) 写出判断 x 大于 0 并且小于 10 的表达式 2) 写出判断 ch 为大写字母的表达式 3) 写出判断 ch 是字母的表达式 4) 写出判断整型数 a b c 能构成一个三角形的表达式 科学出版社职教技术出版中心 - 按照以下操作过程, 编辑下列程序, 并仔细阅读程序, 思考程序运行的

38 26 C 语言程序设计 结果, 并在 Visual C++ 环境下调试此程序 步骤 1: 文件 新建 文件 C++ Sourse File, 输入文件名 1-9.c, 源程序代码如下 : #include<stdio.h> int main() int x=20,y=3,z=0,a; a=x>y; printf("%d > %d=%d\n",x,y,a); a=x/y; printf("%d / %d=%d\n",x,y,a); a=x%y; printf("%d %% %d=%d\n",x,y,a); a=x==y; printf("%d == %d=%d\n",x,y,a); a=x!=y; printf("%d!= %d=%d\n",x,y,a); a=x&&y; printf("%d && %d=%d\n",x,y,a); a=x y; printf("%d %d=%d\n",x,y,a); a=!x>y; printf("!%d>%d=%d\n",x,y,a); 注意 : % printf % printf("%d %% %d=%d\n",x,y,a); printf("%d % %d=%d\n",x,y,a); 步骤 2: 编译程序, 然后执行程序 注意 : 图 1.27 程序运行结果程序运行结果如图 1.27 所示 1) 此程序中用到了哪几类运算符? 2) 此程序中用到了哪几个保留字 哪几个用户自定义标识符? 3) 此程序中定义了哪些变量? 为什么要定义这些变量? 位运算符及其含义如表 1.7 所示 - 从键盘输入一个整型数, 判断此数转化为二进制数后第 2 位是否为 1, 最低位为第 0 位 假定此整数为 12, 转化为二进制后为 1100( 可以用 Windows 中的计算器转换 ), 从右开始计数, 第 0 位为 0, 第 1 位为 0, 第 2 位为 1, 第 3 位为 1, 判断第 2 位是否为 1, 即此数只要与二进制数 0100 作 与 运算, 如结果不为 0, 即可判断此数的

39 C 语言程序的基本构成第 1 章 27 二进制数的第 2 位不为 0 对象为二进制数 运算符含义举例 ~ 按位反 ~1 结果 0 ~1010 结果 0101 & 按位与 1100&1010 结果 1000 按位或 结果 1110 ^ 按位异或 1100&1010 结果 0110 << 按位左移 1 位 0010 结果 0100 >> 按位右移 1 位 0010 结果 0001 程序设计代码如下 : #include<stdio.h> int main() int x,y; scanf("%d",&x); y=(x&4)!=0; printf(" 此数的二进制数的第 2 位为 :%d\n",y); 请读者自行调试, 如程序运行时分别输入 7 8, 输出是什么? 为什么? 1) 两个二进制数的 1100&1010 运算, 结果是多少? 2) 两个二进制数的 运算, 结果是多少? 模仿例 1-10, 从键盘输入一个整型数, 判断此数转化为二进制数后第 4 位是否为 1, 从 0 位开始计数 假设有下列变量定义与表达式 : int x=3,y=4,z; z=x&y; z=x y; z=x^y; z=x<<y; 在这 4 种情况下,z 的值分别是多少? 科学出版社职教技术出版中心

40 28 C 语言程序设计 1.11 编辑 C 程序时应注意的问题 编辑 C 程序时应注意的问题如下 : 1)C 程序中区分大小写字母, 书写格式自由, 一行内可写几个语句 2) 用 ; 作为语句的结束标记 3) 函数定义如 main() 命令#include<stdio.h > #define PI 不是语句, 后面不能用 ; 号 4) 注释用符号 /* 和 */ 来界定, / 和 * 之间不可以有空格 5) 可运行程序中必须有一个 main 函数, 且只能有一个 main 函数 6) 一个好的程序应该有详细的注释 习 题 1.( ) 是构成 C 语言程序的基本单位 A. 函数 B. 过程 C. 子程序 D. 文件 2.( ) 是 C 语言提供的合法的数据类型关键字 A. float B. signed C. integer D. char 3. 以下选项中不合法的用户标识符是 ( ) A. abc.c B. file C. Main D. printf 4. 以下选项中不合法的用户标识符是 ( ) A. l23 B. _12 C. A$ D. Dim 5. 合法的 C 语言字符常数是 ( ) A. '\084' B. "A" C. 'ab' D. '\x43' 6. 合法的 C 语言字符常数是 ( ) A. '\t' B. "A" C. 54 D. A 7. 合法的 C 语言长整型常数是 ( ) A. 0L B C D e10 8.C 语言中, 要求运算数必须是整型的运算符是 ( ) A. % B. / C. < D.! 9. 以下选项中正确的整型常量是 ( ) A. 12. B. -20 C. l,000 D 以下选项中正确的实型常量是 ( ) A. 0 B C D. ± 以下选项中不正确的实型常量是 ( ) A E-1 B e2 C D. 456e-2

41 C 语言程序的基本构成第 1 章 编辑 调试以下程序 : 在 Visual C++ 环境下新建文件, 单击菜单 开始 程序 Microsoft Visual C Microsoft Visual C 文件 新建 文件 C++ Sourse File, 输入文件名 ex1-1.c, 程序代码如下 : #include<stdio.h> /* 文件预处理, 包含标准输入 / 输出库, 程序可调用输入 / 输出函数 */ int add(int x,int y) int z; z=x+y; return z; int main( ) int add(int,int); /* 函数的说明, 告诉系统在主函数中要调用 add 函数 */ int a,b,c; /* 变量的定义 */ scanf("%d %d",&a,&b); c=add(a,b); /* 函数调用 */ printf("%d+%d=%d\n",a,b,c); /* 调用系统输出函数 printf,%d 为格式控制符, 依次用后面的变量值填充, 以整数形式输出 */ 1) 文件 ex1-1.c 由几个函数构成? 2) 调用了哪几个系统函数? 3) 此程序中用到了哪几个保留字 哪几个用户自定义标识符? : 编译并运行程序, 程序运行时输入两个整数 :20 40, 观察程序运行的结果 2. 编辑 调试以下程序 : 在 Visual C++ 环境下新建文件, 单击菜单 开始 程序 Microsoft Visual C Microsoft Visual C 文件 新建 文件 C++ Sourse File, 输入文件 名 ex1-2.c : 在文本编辑器中输入以下 C 程序 科学出版社职教技术出版中心 #include<stdio.h> /* 文件预处理, 包含标准输入 / 输出库, 程序可调用输入 / 输出函数 */ #include"ex1-2-2.c" int main( ) int and(int,int);/* 函数的说明, 告诉系统在主函数中要调用 and 函数 */ int or(int,int); /* 函数的说明, 告诉系统在主函数中要调用 and 函数 */ int a,b,c; /* 变量的定义 */ scanf("%d %d",&a,&b); /* a,b 的值从键盘读入 */ c=and(a,b); /* 函数调用 */ printf("%d && %d=%d\n",a,b,c); /* 调用系统输出函数 printf,%d 为格式控制符, 依次用后面的变量值填充, 以整数形式输出 */ c=or(a,b); /* 函数调用 */

42 30 C 语言程序设计 printf("%d %d=%d\n",a,b,c); : 单击菜单 文件 新建 文件 C++ Sourse File, 输入文件名 ex1-2-2.c, 源程序代码如下 : int and(int a,int b) int c; c=a&&b; return c; : 单击菜单 文件 新建 文件 C++ Sourse File, 输入文件名 ex1-2-3.c, 源程序代码如下 : int or(int a,int b) int c; c=a b; return c; : 单击编译图标, 编译程序 1-2.c : 单击执行图标, 执行程序 1-2.c, 当程序运行时, 键盘输入 20 40, 按回车键 && 40= =1 也可以输入其他的整数, 观察程序的执行结果 1) 此程序的功能是什么? 2) 此程序由几个文件组成? 文件名是什么? 3) 程序中调用了哪几个系统函数? 4) 此程序中用到了哪几个保留字 哪几个用户自定义标识符?

43 第 2 章输入 / 输出程序设计 本章重点 字符 字符串的输入与输出 整型数 实型数的输入与输出 输入与输出格式的控制 本章难点 实型数的输入与输出 字符的概念及转义字符 输入与输出格式的控制 本章学习建议 把握输入 / 输出中各种不同类型变量的格式控制, 尤其是从键盘输入时是输入到变量的地址中, 学习中要理解数组的概念及数组名的含义 科学出版社职教技术出版中心

44 32 C 语言程序设计 2.1 字符串的输入与输出 在计算机程序设计中最基本的就是输入与输出, 输入与输出与变量的类型有关, 例如用 printf scanf 的格式输入与输出中的控制符有 %d %lf %c %s 等 计算机屏幕上需要显示一行或多行文字, 甚至输出由字符组成的图形或规定格式的数据时, 在 C 语言中通常应用系统函数 printf puts 实现在屏幕上的输出 字符串的输出格式有如下形式 : 1)printf(" 输出字符串 "); 2)printf(" 输出字符串, 变量格式符 ", 变量 ); 3)puts( 字符串变量名 ); - 要求在屏幕上显示 :Hello,world 步骤 1: 在 Visual C++ 环境下新建文件可单击菜单 开始 程序 Microsoft Visual C Microsoft Visual C 文件 新建 文件 C++ Sourse File, 输入文件名 2-1.c 步骤 2: 编辑下列文件 /* 功能打印字符, 在屏幕上输出 :Hello,world */ #include<stdio.h> int main() printf("hello,world\n"); /* 调用系统函数 printf,\n 为换行符 */ return 0; 步骤 3: 编译程序 2-1.c 步骤 4: 单击执行图标, 执行程序 2-1.exe 此程序执行后在屏幕上输出结果如下 : Hello,world :printf stdio.h printf stdio.h '\0' \n 为换行符, 在 \n 后还有一些字符, 输出结果如何? 如果有多个 \n, 输出结果又如何? 编写一个程序在屏幕上显示 : ************************* C 语言的学习要努力! *************************

45 输入 / 输出程序设计第 2 章 33 字符串的输出还可以通过变量与格式控制的方式输出, 例 2-1 的程序还可以写成 : /* 功能打印字符, 在屏幕上输出 :Hello,world */ #include<stdio.h> int main() char string[80]="hello,world"; printf("%s\n",string); /* 调用有格式的系统函数 printf*/ return 0; 语句 char string[80]= "Hello,world"; 表示定义一个 char 类型的数组, 数组名为 string, 分配给这个数组 80 个字符的存储空间, 并在这个数组中存放一个字符串 "Hello,world", 字符串的存放从此存储空间的首地址开始 语句 printf("%s\n",string); 中 %s 为格式控制符, 表示输出从首地址 string 开始存放的 字符串, 直到此字符串结束 : '\0' 1) 在以上程序中把语句 printf("%s\n", string); 修改为 printf("%s\n", string+6); 观察程序的输出结果, 并思考为什么? 2) 定义 char string[80]="hello,world"; 此字符串的长度是多少? 提示 : 可用以下程序段进行测试 int x; char string[80]= "Hello,world"; x=strlen(string); printf("x=%d\n",x); 定义两个字符数组 :char string1[30]= "*************************" 和 string2[26]= "C 语言的学习要努力!", 用 printf 函数在屏幕上输出 : ************************* C 语言的学习要努力! ************************* 科学出版社职教技术出版中心 在程序设计中通常需要从键盘输入字符串, 字符串是存放在字符数组中, 因而此类程序设计首先要定义一个字符数组, 例如 char string[80]; 然后用函数 scanf 或 gets 从键盘读入 - 定义一个字符数组, 从键盘输入一字符串, 然后输出在屏幕上 先用 char string[80]; 定义一数组 string, 然后用函数 scanf 从键盘读入

46 34 C 语言程序设计 步骤 1: 在 Visual C++ 环境下新建文件可单击菜单 开始 程序 Microsoft Visual C Microsoft Visual C 文件 新建 文件 C++ Sourse File, 输入文件名 2-2.c 步骤 2: 编辑源程序代码如下 : #include<stdio.h> int main() char string[80]; /* 定义一个可以存放 80 个字符的数组, 存放的首地址为 string*/ printf(" 请输入您的姓名 :\n"); scanf("%s",string); printf(" 您好 :"); printf("%s\n",string); return 0; 步骤 3: 单击编译图标, 编译程序 2-2.c /* 输入字符串存放在首地址 string*/ 步骤 4: 单击执行图标, 执行程序 2-2.c 此程序执行后在屏幕上输出结果如下 : 请输入您的姓名 : 张美丽您好 : 张美丽 : scanf 例 2-2 中的源程序也可以用函数 gets 实现 /* 功能 : 从键盘输入一个字符串, 然后输出字符串的程序 */ #include<stdio.h> int main() char name[20] ; /* name 表示存放字符串的首地址, 可存放 20 个字符 */ printf(" 请输入您的姓名 \n"); /* 屏幕输出 */ gets("%s",name); /* 键盘读入字符串, 可以包含空格, 格式符为 %s */ printf(" 您好 :%s\n",name); /* 表示输出以 name 为首地址上的内容, 直到字符串结束 */ : printf scanf int printf(const char *,...); int scanf(const char *,...); gets puts char gets(char *) int puts(const char *) 张美丽山东济南

47 输入 / 输出程序设计第 2 章 35 我叫张美丽, 浙江大学的学生, 来自山东济南 2.2 整型数的输入与输出 在计算机程序设计过程中, 经常需要输入 / 输出整型数据 在 C 语言中, 整型数据有 : 1) 十进制整型数, 输入函数 scanf 输出函数 printf 中以格式符 %d 控制 2) 八进制整型数, 数据表示以 0 开头, 输入函数 scanf 输出函数 printf 中以格式 符 %o 控制 ; 3) 十六进制整型数, 数据表示以 0x 或 0X 开头, 输入函数 scanf 输出函数 printf 中以格式符 %x 控制 为完成整型数的输出任务, 首先需要定义一个整型变量, 然后按格式进行输出 输 出函数 printf 格式如下 : printf(" 整型数格式序列 ", 变量序列 ); - 定义整型变量 x y z 并赋值, 按不同格式的形式输出 步骤 1: 在 Visual C++ 环境下新建文件可单击菜单 开始 程序 Microsoft Visual C Microsoft Visual C 文件 新建 文件 C++ Sourse File, 输入文件名 2-3.c 步骤 2: 编辑源程序代码如下 /* 功能按不同格式输出整型数 */ #include<stdio.h> int main() int x=30,y=030,z=0x30; printf(" 十进制 八进制 十六进制 \n"); printf(" 十进制数 30 %d %o %x\n",x,x,x); printf(" 八进制数 30 %d %o %x\n",y,y,y); printf(" 十六进制数 30 %d %o %x\n",z,z,z); return 0; 步骤 3: 单击编译图标, 编译程序 2-3.c 步骤 4: 单击执行图标, 执行程序 2-3.c 此程序执行后在屏幕上输出结果如下 : 十进制 八进制 十六进制 十进制数 e 八进制数 十六进制数 定义两个 int 型变量并赋值, 求这两个数的乘积 科学出版社职教技术出版中心 : %5d %-5d 5 %-5d

48 36 C 语言程序设计 上机练习例 2-3, 格式控制符 % 后全部加负号与一整型数, 如 %-5d %-5x %-5o, 查看程序输出效果 整型数输入函数 scanf 格式如下 : scanf(" 整型数格式符序列 ", 变量地址序列 ); scanf 函数从键盘扫描数据并将数据存放在内存的地址中, 键盘输入与格式符序列应一致 - 从键盘输入一个整型数, 输出此数的平方 C 语言中用于格式输入的函数为 :scanf(" 格式符序列 ", 变量地址序列 ); 变量的地址表示为 :& 变量名 ; 程序的设计过程具体描述如下 : 程序开始 定义两个整型数 :int x,y; 从键盘输入一个整数给 x:scanf("%d",&x); 计算 :y=x*x; 输出 y 程序结束步骤 1: 在 Visual C++ 环境下新建文件可单击菜单 开始 程序 Microsoft Visual C Microsoft Visual C 文件 新建 文件 C++ Sourse File, 输入文件名 2-4.c 步骤 2: 编辑源程序代码如下 : #include<stdio.h> int main( ) int x,y; scanf("%d",&x); /* &x 表示变量 x 的地址 */ y=x*x; printf("y=%d\n",y); return 0; 步骤 3: 单击编译图标, 编译程序 2-4.c 步骤 4: 单击执行图标, 执行程序 2-4.c, 程序在运行时会出现一个空屏, 此时应输入一个数据, 如 20, 然后按回车键后在屏幕上输出结果 20 y= x y %d scanf("%d %d",&x,&y); 20 30

49 输入 / 输出程序设计第 2 章 37 scanf("%d#%d",&x,&y); 20#30 以下定义变量的方法正确吗? 为什么? 1)int x,int y; 2)int x;y; 编写一程序, 定义两个整型变量, 从键盘输入两个整数, 求这两个数的商 - 在屏幕上输出以下菜单, 可以通过键盘输入整数对菜单作出选择, 并输出对输入的反馈信息 1. 输入记录 2. 输出记录 3. 查询记录 4. 删除记录 0. 退出 输出菜单条可用 printf 函数, 键盘输入可用 scanf 函数 程序的设计过程具体描述如下 : 程序开始 定义一个整型数 :int x; 用 printf 输出 :1. 输入记录 用 printf 输出 :2. 输出记录 用 printf 输出 :3. 查询记录 用 printf 输出 :4. 删除记录 用 printf 输出 :0. 退出记录 从键盘输入一个整数给 x:scanf("%d",&x); 输出您所选择的结果 程序结束步骤 1: 在 Visual C++ 环境下新建文件可单击菜单 开始 程序 Microsoft Visual C Microsoft Visual C 文件 新建 文件 C++ Sourse File, 输入文件名 2-5.c 步骤 2: 编辑源程序代码如下 #include<stdio.h> int main() int x; printf("1. 输入记录 \n"); printf("2. 输出记录 \n"); printf("3. 查询记录 \n"); printf("4. 删除记录 \n"); 科学出版社职教技术出版中心

50 38 C 语言程序设计 printf("0. 退出 \n"); printf(" 请您选择 (0~4):"); scanf("%d",&x); printf(" 您选择的是 :%d\n",x); return 0; 步骤 3: 单击编译图标, 编译程序 2-5.c 步骤 4: 单击执行图标, 执行程序 2-5.c 假如您输入 3, 程序的执行情况如下 : 1. 输入记录 2. 输出记录 3. 查询记录 4. 删除记录 0. 退出请您选择 (0~4):3 您选择的是 :3 - 定义三个 int 型变量 x y z, 从键盘读入 x y, 把 x y 的乘积赋给 z, 并输出结果 键盘输入用 scanf 函数, 在此输入两个整型数, 可用语句 scanf("%d %d",&x,&y); 当程序执行时键盘输入格式为 20 30( 回车 ), 或用语句 scanf("%d,%d",&x,&y); 程序执行时键盘输入格式为 20, 30( 回车 ) 程序的设计过程具体描述如下 : 程序开始 定义一个整型数 :int x,y,z; 用 scanf 输入 x y:scanf("%d %d",&x,&y); 计算 z=x*y; 输出 y 程序结束步骤 1: 在 Visual C++ 环境下新建文件可单击菜单 开始 程序 Microsoft Visual C Microsoft Visual C 文件 新建 文件 C++ Sourse File, 输入文件名 2-6.c 步骤 2: 编辑源程序代码如下 : #include<stdio.h> int main() int x,y,z; scanf("%d %d",&x,&y); z=x*y; printf("%d * %d =%d\n",x,y,z); return 1; 步骤 3: 单击编译图标, 编译程序 2-6.c 步骤 4: 单击执行图标, 执行程序 2-6.c 假如您输入 12 34, 程序的执行情况如下 : * 34 =408

51 输入 / 输出程序设计第 2 章 39 定义三个 int 型变量 x y z, 从键盘读入 x y, 把 x 对 y 的余数赋给 z, 并输出结果 2.3 字符的输入与输出 在程序设计中经常涉及到字符的操作, 字符的格式输入函数为 scanf, 其格式符为 %c, 也可用函数 getchar 或 putchar 进行输入与输出 - 用字符选择的方法重新改写例 2-5 程序 步骤 1: 在 Visual C++ 环境下新建文件可单击菜单 开始 程序 Microsoft Visual C Microsoft Visual C 文件 新建 文件 C++ Sourse File, 输入文件 名 2-7.c 步骤 2: 编辑源程序代码如下 #include<stdio.h> int main() char ch; printf("a. 输入记录 \n"); printf("b. 输出记录 \n"); printf("c. 查询记录 \n"); printf("d. 删除记录 \n"); printf("e. 退出 \n"); printf(" 请您选择 (a~e):"); scanf("%c",&ch); printf(" 您选择的是 : %c\n",ch); return 0; 步骤 3: 单击编译图标, 编译程序 2-7.c 步骤 4: 单击执行图标, 执行程序 2-7.c 假如您输入 d, 程序的执行情况如下 : a. 输入记录 b. 输出记录 c. 查询记录 d. 删除记录 e. 退出请您选择 (a~e):d 您选择的是 :d : %5c % 5c 5 % 5c 上述程序也可使用函数 getchar 与 putchar 进行改写 #include<stdio.h> #include<ctype.h> int main() char ch; 科学出版社职教技术出版中心

52 40 C 语言程序设计 printf("a. 输入记录 \n"); printf("b. 输出记录 \n"); printf("c. 查询记录 \n"); printf("d. 删除记录 \n"); printf("e. 退出 \n"); printf(" 请您选择 (a~e):"); ch=getchar( ); printf(" 您选择的是 :"); putchar(ch); printf("\n"); return 0; : '\n' '\101' '\141' 0 '\101' 'A' x X 0x 'x41' 'A' ch 'a' ch 'B' ch=ch 32+1 模仿例 2-7.c, 显示一菜单, 用数字进行选择, 并屏幕显示您的选择 2.4 实型数的输入与输出 实型数的输入与输出可用格式符 %f 或 %lf,float 用格式符 %f,double 用格式符 %lf, 在输出时可以有输出控制 在输出时, 如 :%6.2f 表示总共 6 位输出, 小数部分 2 位, 小数点 1 位, 整数部分 3 位 ;%-8.3f 表示总共 8 位输出, 小数部分 3 位, 小数点 1 位, 整数部分 4 位, 左靠齐 : scanf("%6.2f",&x); - 从键盘输入一个 float 的实型数, 用格式控制符 %-8.3f 输出此数的平方 程序的设计过程具体描述如下 : 程序开始 定义两个实型数 :float x,y; 从键盘输入一个实数给 x:scanf("%f",&x); 计算 :y=x*x; 输出 y:printf("y=%-8.3f\n",y); 程序结束步骤 1: 在 Visual C++ 环境下新建文件可单击菜单 开始 程序 Microsoft Visual C Microsoft Visual C 文件 新建 文件 C++ Sourse File, 输入文件名 2-8.c

53 输入 / 输出程序设计第 2 章 41 步骤 2: 编辑源程序代码如下 #include<stdio.h> int main( ) float x,y; scanf("%f",&x); /* &x 表示变量 x 的地址 */ y=x*x; printf("y=%-8.3f\n",y); return 0; 步骤 3: 单击编译图标, 编译程序 2-8.c 步骤 4: 单击执行图标, 执行程序 2-8.c 程序在运行时会出现一个空屏, 此时应输入一个数据, 如 12.25, 然后按回车键后 在屏幕上输出结果 y= : y= 把语句 printf("y=%-8.3f\n",y); 改为 printf("y=%8.3f\n",y); 编译后运行程序, 并观察其输出结果 - 定义两个 double 型变量 x y, 从键盘读入 x, 把 x 的平方根赋给 y, 并输出结果 键盘输入可用 scanf 函数, 可用语句 scanf("%lf",&x); 求平方根可用函数 y=sqrt(x); 本例中由于要用到数学函数, 需要有包含语句 #include<math.h> 程序的设计过程具体描述如下 : 程序开始 定义两个 double 数 :double x,y; 用 scanf 输入 x y:scanf("%lf",&x); 计算 z=sqrt(x); 输出 y 程序结束步骤 1: 在 Visual C++ 环境下新建文件可单击菜单 开始 程序 Microsoft Visual C Microsoft Visual C 文件 新建 文件 C++ Sourse File, 输入文件名 2-9.c 步骤 2: 编辑源程序代码如下 #include<stdio.h> #include<math.h> int main() double x,y; scanf("%lf",&x); y=sqrt(x); printf("y=%-8.4lf \n",y); 科学出版社职教技术出版中心

54 42 C 语言程序设计 return 1; 步骤 3: 单击编译图标, 编译程序 2-9.c 步骤 4: 单击执行图标, 执行程序 2-9.c 假如您输入 59.25, 程序的执行如果如下 : y= 模仿例 2-9.c, 定义 4 个 double 类型的变量 x y c z, 从键盘读入 x y c, 求 z=x y +c 的值, 并输出结果 提示 : x y pow(x,y) 习 题 1. 用函数 printf 输出一个中空的三角星 2. 从键盘输入两个整型数, 实现两个整型数的互换 提示 :x1 x2 x=x1; x1=x2; x2=x; 3. 从键盘输入一个三位的整数, 分别输出它的个位数 十位数 百位数 提示 :x y1=x%10; x=x/10; y2=x%10; x=x/10; y3=x%10; 4. 写出以下程序的输出结果 #include<stdio.h> void main() int i=010,j=10; printf("%d,%d\n",++i,j-- ); 5. 编写程序, 屏幕提示 您是一个学生吗, 可输入 'y' 或 'n' 进行回答, 屏幕可输出您的选项 提示 : if(x=='y') printf(" 您是一个学生 \n"); else printf(" 您不是一个学生 \n"); 6. 从键盘输入一个角度 x, 求 10*sin(x) 的值 提示 : #include<math.h>

55 第 3 章 while 循环程序设计 本章重点 循环的概念 while 和 do-while 循环的执行过程 while 循环的应用 for 循环的执行过程 for 循环语句的变形及应用 循环的嵌套 本章难点 循环条件判断 while do-while for 循环的执行过程 for 语句的变形 循环嵌套的应用 本章学习建议 建议重点掌握 while 语句 for 语句的格式 for 语句中的两个分号 ; 及三个表达式的变化形式以及 do-while 语句的格式,while 语句的执行过程, 应用 while 语句来编写程序, 在程序编写过程中应注意循环变量的变化情况及循环体的模块结构 ; 掌握 break 与 continue 的区别 掌握如何应用 for 语句来编写程序 ; 初步掌握 for 循环的嵌套程序设计 科学出版社职教技术出版中心

56 44 C 语言程序设计 3.1 循环的概念 循环是程序设计中非常常见的格式之一, 所谓循环就是根据某个条件反复执行一系列指令 由于反复执行某一算法, 如不使用循环结构的话, 程序将变得很长 很烦琐 在实际应用中, 程序需要根据给定条件, 判断是否重复执行某程序段, 重复执行某程序段直到条件不满足为止, 或重复执行指定次数 C 语言提供了以下三种基本的循环语句 :while 语句 do-while 语句和 for 语句 对于 C 语言的三种循环语句, 有以下几点需加以注意 : 1)while 循环语句和 for 循环语句在初始时, 首先测试循环条件, 如果满足则执行循环体, 如不满足则退出循环语句 ;do-while 循环语句则是先执行循环体, 后测试循环条件, 所以循环体不管怎样都必然会被执行至少一次 2) 此三种循环语句都是根据循环条件来决定是否继续执行, 所以在循环体内部或循环条件中必须存在改变循环条件的动作 ; 否则, 可能会出现死循环等异常情况 3)C 语言的 for 语句并不同于一般的狭义计数循环语句, 其循环条件包含的内容可以不是单一的计数, 而可以有其他的形式和动作, 如 getch( ) 一类的取值动作 3.2 while 循环 while 循环通常叫做前判断循环, 意思是指首先判断循环的条件是否满足, 如条件满足则执行循环体, 条件不满足则退出循环体, 此种循环有可能循环体一次也不执行 while 循环的格式如下 : while( 条件表达式 ) 循环体 while 循环流程图如图 3.1 所示 条件表达式 假 (0) 真 ( 非 0) 循环体 图 3.1 while 循环流程图其中 : 1) 循环体 : 程序中反复执行的一段程序被称为循环体, 一般以 括起来 2) 循环条件 : 执行循环的条件, 一般为关系表达式或逻辑表达式

57 while 循环程序设计第 3 章 45 3)while 循环的执行过程如下 : 1 判断循环条件 ( 表达式 ) 2 如果条件为假 ( 即为 0),while 循环结束, 然后执行循环体后面的语句 3 如果条件为真 ( 即非 0), 则执行循环体中的语句 4 返回到第 1 步, 判断循环条件 - 计算 的和 计算 的和, 是重复做 100 次加法, 首先定义变量 sum 及用于循环变量 i, 每循环一次, 做一次 sum=sum+i 运算, 且循环变量 i 自增长 1, 当 i 增加到 101 时循环结束 程序流程图如图 3.2 所示 i=1,sum=0; 关键程序代码如下 : 真 i<=100 sum=sum+i; 假 i=1; sum=0; while(i<=100) sum=sum+i; i++ 图 3.2 流程图 i++; i 是这个循环结构的循环变量, 以它来控制循环的继续或者退出 编辑源程序代码 3-1.c: #include<stdio.h> int main( ) int i,sum=0; i=1; while(i<=100) sum=sum+i; i++; printf("sum=%d\n",sum); return 0; 科学出版社职教技术出版中心 注意 : while while ; 编译程序 3-1.c, 并执行程序 3-1.exe, 程序执行后在屏幕上输出 : sum=5050

58 46 C 语言程序设计 1) 若例 3-1 循环体大括号省略, 程序运行时会出现什么情况? 为什么? 2) 如果在 while(i<=100) 后加 ; 号, 请思考程序运行的结果是什么? 1) 求 的和 2) 求 的和 注意 : - 输出 1~100 之间的所有奇数 我们可以设置 i 从 1 开始, 每循环 1 次, 输出 i, 之后将 i 的值增 2, 循环的条件是 i<=100, 输出的 i 即为 1~100 之间的奇数 流程图如图 3.3 所示 i=1 i<=100 真 ( 非 0) 输出 i 的值 假 (0) 关键程序代码如下 : i=1; while(i<=100) printf("%d\n", i); i+=2; i+=2 图 3.3 输出 1~100 的所有奇数流程图 编辑源程序代码 3-2.c: #include<stdio.h> int main( ) int i=1; while(i<=100) printf("%4d ", i); i+=2; printf("\n"); return 0;

59 while 循环程序设计第 3 章 47 编译程序 3-2.c, 并执行程序 3-2.exe, 观察程序输出的结果 若要输出 1~100 之间的所有偶数, 程序该作何更改? 编写程序求 n~m 之间所有奇数和,n m 从键盘输入 - 求 5! 的值 (5!= ) 分析设乘积 t 的初始值为 1, 乘数项 i 的初试值也为 1, 每循环 1 次,i 与 t 相乘, 得到一个新的 t, 然后 i 的值增 1, 再与 t 相乘, 如此反复直到 i>5 退出循环后, 输出 t 即为所求值 流程图如图 3.4 所示 i=1,t=1 关键程序代码如下 : while(i<=5) i<=5 t=t*i i++ 真 假 编辑源程序代码 3-3.c: #include<stdio.h> int main() int i=1, t=1 ; while (i<=5) t*= i ; i++; printf("5! =%d\n", t); return 0; 输出 t 图 3.4 求 5! 的流程图 t*=i; i++; 科学出版社职教技术出版中心 编译程序 3-3.c, 并执行程序 3-3.exe, 程序执行后在屏幕上输出 : 5!=120

60 48 C 语言程序设计 如何求 的乘积 编写程序求 C,n m 从键盘输入 m n - 若 s=1+1/2+1/3+1/4+ +1/n, 求和 s 大于 3 为止时的 s 与 n 的值 设置变量 n, 每循环 1 次 n 的值增 1,s 变量用来存放各数的和, 当 s 的值大于 3 时, 循环结束 因此, 在 while 条件里设置 s<=3 流程图如图 3.5 所示 定义变量 s,n=1 s<=3 真 s=s+1/n n++ 输出 s 关键程序代码如下 : while (s<=3) s+=1.0/n; n++ ; 图 3.5 流程图 编辑源程序代码 3-4.c: #include<stdio.h> int main() int n=1 ; double s=0; while (s<=3) s+=1.0/n; n++ ; printf("s=%lf return 0; n=%d\n", s,n-1); 编译程序 3-4.c, 并执行程序 3-4.exe, 程序执行后在屏幕上输出 : s= n=11 注意 : 1 1.0/n 1/n 2 s+=1.0/n; s=s+1.0/n;

61 while 循环程序设计第 3 章 49 模仿例 3-4, 求 s=1-1/2+1/3-1/4+ 的值, 直到误差 < 求 Fibonacci 数列的前 20 项,Fibonacci 数列是前两项之和, 即 a n =a n -1+a n -2, 其中 a 1 =a 2 =1 分析将 a b c 分别表示连续的三项, 第一次计算之后, 将原来的 b 赋值给 a, 再将 c 赋值给 b, 再求出 c=a+b, 保证运算公式 c=a+b 每次循环都成立 每次求出的 c 加上第 1 2 项即为 Fibonacci 数列 第一次计算 :a(1) b(1) c(2) c=a+b 第二次计算 : a(1) b(2) c(3) c=a+b 第三次计算 : a(2) b(3) c(5) c=a+b 编辑源程序代码 3-5.c: #include<stdio.h> int main() int a, b, c, i; a=1;b=1;i=3; printf("%d,%d,",a,b); /* 先输出数列的 1 2 两项 */ while (i<=20) c=a+b; a=b; b=c; printf("%d,",c); i++; return 0; 科学出版社职教技术出版中心 编译程序 3-5.c, 并执行程序 3-5.exe, 程序执行后在屏幕上输出 : 1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765, 上例中语句 c=a+b; a=b; b=c 顺序不能调换, 为什么? 请读者思考 用数组的方法求解 Fibonacci 数列

62 50 C 语言程序设计 - 求 s=1!+2!+3!+4!+5! 的值 关于求阶乘, 此问题只是将每次阶乘的结果求和 阶乘的项依次以 变化 流程图如图 3.6 所示 i=1,s=0,t=1 i<=5 否 是 t=t*i; 输出 s 的值 s+=t i++ 编辑源程序代码 3-6.c: #include<stdio.h> int main() int i=1, t=1,s=0,j=1 ; while (i<=5) t=t*i; s=s+t; i++; printf("s=%d\n", s); return 0; 图 3.6 流程图 编译程序 3-6.c, 并执行程序 3-6.exe, 程序执行后在屏幕上输出 : 1!+2!+3!+4!+5!= do-while 循环 do-while 循环是后判断循环, 不论循环的条件是否满足, 循环体至少应执行一次, do-while 循环的语句格式如下 : do 循环体 while( 表达式 );

63 while 循环程序设计第 3 章 51 语句执行流程图如图 3.7 所示 循环体 真 ( 非 0) 表达式 假 (0) 图 3.7 语句执行流程图 do-while 语句是先执行后判断, 因此它至少要执行一次循环体 不同于 while 语句, 先判断后执行, 如果条件不满足, 循环体可以一次都不执行 注意 : 1 do-while while do-while 1 do-while 1 while 1 2 do-while while 大部分情况下, 能用 while 循环实现的也能用 do-while 循环实现, 但有的时候必须 用 do-while 循环, 具体要根据实际情况来判定 有时候用 while 循环和用 do-while 循环 会得到不同的结果 以下两个程序分别用了 while 循环和 do-while 循环 #include<stdio.h> int main() int sum=0, i; scanf ("%d", &i ); while(i<=10) sum+=i ; i++; printf("sum=%d\n",sum); return 0; #include<stdio.h> int main() int sum=0, i; scanf ("%d", &i ); do sum+=i ; i++; while(i<=10); printf("sum=%d\n",sum); return 0; 科学出版社职教技术出版中心 运行情况 1: 1 1 sum=55 sum=55 运行情况 2: sum=0 sum=11 - 输入任意一个正整数, 按低位开始输出它各个位置上的数字 例如 : 531 输出 135 先求出 531 除以 10 的余数, 得到 1; 将 531 除以 10 得到 53; 再求 53 除以

64 52 C 语言程序设计 10 的余数, 得到 3, 将 53 除以 10, 得到 5 这样将 全部分解出来 执行步骤 : 设被除数为 m, 余数为 n, 进行下列运算 : 1)n=m%10; 2)m=m/10; 3) 循环的条件为 m!=0 流程图如图 3.8 所示 定义变量 m,n 输入 m 的值 n=m%10 m=m/10 关键程序代码如下 : do n=m%10; m=m/10; printf("%ld, ", n); while(m); 输出 n 真 m 假 错误! 图 3.8 流程图 编辑源程序代码 3-7.c: #include<stdio.h> int main() long m, n; printf(" 请输入一个正整数 :"); scanf ("%ld",&m); do n=m%10 ; m=m/10 ; printf("%ld", n); while(m); return 0; 编译程序 3-7.c, 并执行程序 3-7.exe, 程序执行后在屏幕上输出 : 请输入一个正整数 : ) 模仿例 3-7, 求各个位数之和 例如 : 输入 531, 输出 9(1+3+5)

65 while 循环程序设计第 3 章 53 2) 输入任意一个正整数, 求出此数的相反数, 最后输出此数 例如输入 531, 输出 为 135, 要求一次输出 3.4 for 循环 C 语言中的 for 循环语句应用比较灵活, 虽然主要用于定数循环, 但也可以不定数 循环, 它完全可以替代 while 循环 for 语句格式如下 : for( 初始化表达式 ; 条件表达式 ; 增量表达式 ) 循环体 其中 : 1) 初始化表达式 : 通常用来给循环变量赋初值, 一般是赋值表达式 也允许在 for 语句外给循环变量赋初值, 此时可以省略该表达式 2) 条件表达式 : 通常是循环条件, 一般为关系表达式或逻辑表达式 3) 增量表达式 : 通常可用来修改循环变量的值, 一般是赋值语句 控制变量每循环一次后按什么方式变化 for 语句的执行过程如下 : 1) 计算初始化表达式的值 2) 计算条件表达式的值, 若值为真 ( 非 0) 则执行循环体中的语句, 转第 3) 步 ; 若值为假 (0) 则转第 4) 步 3) 计算增量表达式的值, 转第 2) 步重复执行 4) 结束循环 程序流程图如图 3.9 所示 初始化表达式 真 ( 非 0) 条件表达式 循环体 增量表达式 假 (0) 科学出版社职教技术出版中心 图 3.9 程序流程图 先用 for 语句来处理加法的问题 - 求 的和, 用 for 语句实现 在计算求和时, 采用循环的方法, 把 1 加到 s, 再把 2 加到 s, 一直加到 100,

66 54 C 语言程序设计 然后循环结束 程序设计中首先把存放结果的变量 s 置零, 循环变量 i 初值为 1, 把 i 加到 s 中, 每循环一次,i 增 1, 其流程图如图 3.10 所示 定义 i,sum 赋初值 i<=100 真 ( 非 0) sum+=i; 假 (0) 关键程序代码如下 : int i,sum=0; for(i=1;i<=100;i++) sum+=i; i++ 图 3.10 流程图 编辑源程序代码 3-8.c: #include<stdio.h> int main() int i,sum=0; for(i=1;i<=100;i++) sum+=i; printf(" =%d\n",sum); return 0; 编译程序 3-8.c, 并执行程序 3-8.exe, 程序执行后在屏幕上输出 : =5050 注意 :for for 1 int i=1,sum=0; for( ;i<=100;i++) sum+=i; 2 int i=1,sum=0; for( ;i<=100; ) sum+=i; i++; 3 int i=1,sum=0; for( ; ; ) sum+=i; i++;

67 while 循环程序设计第 3 章 55 if(i>100) break; 4 for(int i,sum=0 ;i<=100 ;sum+=i,i++ ) ; 1) 求 的和, 分别用以上几种形式在机器上调试通过 2) 求 的和 提示 : 把增量表达式改为 :i+=2 - 输入一个 1~10 间的自然数, 用 for 语句求这个数的阶乘 例如, 输入 5, 输出为 5! =120 5 的阶乘为 1*2*3*4*5, 设乘积 s 的初始值置为 1, 循环变量 i 初值也为 1, 运算 :s=s*i,i 的值从 1 每次循环增 1, 直到 5 其流程图如图 3.11 所示 int i=1, n,s=1; scanf("%d",&n); 真 ( 非 0) i<=n s*= i; i++; 假 (0) 图 3.11 流程图 关键程序代码如下 : scanf("%d",&n); for(i=1;i<=n;i++) s*=i; 编辑源程序代码 3-9.c: #include<stdio.h> int main() int i,n,s=1; scanf("%d",&n); for(i=1;i<=n;i++) s*=i; printf("%d!=%d\n",n,s); return 0; 编译程序 3-9.c, 并执行程序 3-9.exe, 程序执行后在屏幕上输出 : 5 5!=120 科学出版社职教技术出版中心

68 56 C 语言程序设计 输入一个 5~10 之间的整数 n, 求 1!+2!+3!+ +n! 例如, 输入 5, 输出为 1!+2!+3!+ +5!=153 分析 : 设阶乘的积存放在 s 中,s 的初始值置为 1, 循环变量 i 的初值也为 1, 各步阶乘的和存放在 sum 中,sum 的初值为 0, 循环的第 1 步可求得 1 的阶乘, 把 1 的阶乘加入 sum, 循环的第 2 步可求得 2 的阶乘, 把 2 的阶乘也加入 sum, i 的值从 1 每次循环增 1, 直到 n - 从键盘输入的正整数, 按逆序输出在屏幕上 例如, 输入 3456, 输出为 6543 分析从键盘输入的正整数对 10 取余数, 先输出最低位, 然后使这个正整数除 10, 再将余数输出, 再除 10, 直到这个数为 0 其流程图如图 3.12 所示 scanf("%d",&num); 关键程序代码如下 : 真 ( 非 0) num!=0 输出 num%10 假 (0) scanf("%d",&num); for(;num!=0; num=num/10) digit=num%10; printf("%d",digit); num=num/10 编辑源程序代码 3-10.c: 图 3.12 流程图 #include<stdio.h> int main() int num; int digit; printf("input a number\t"); scanf("%d",&num); for( ; num!=0; num=num/10) digit=num%10; printf("%d",digit); printf("\n"); return 0;

69 while 循环程序设计第 3 章 57 编译程序 3-10.c, 并执行程序 3-10.exe, 程序执行后在屏幕上输出 : input a number 在循环变量已赋初值时, 可省去初始化表达式 - 用循环体是空语句的 for 循环, 计算输入的一行字符的字符个数 分析 程序中的循环条件为 getchar( )!='\n', 判断从键盘输入的字符是不是回车 增 量表达式用于字符计数, 而不是用来修改循环变量, 所有的工作都在表达式中已完成, 循环体是空语句了, 注意此时空语句的分号不可少 流程图如图 3.13 所示 n=0 关键程序代码如下 : for(;getchar()!='\n';n++); Getchar( )!='\n' 0 1 n++ 图 3.13 流程图 编辑源程序代码 3-11.c: #include<stdio.h> int main() int n=0; printf(" 请输入一串字符 :\n"); for(;getchar()!='\n';n++); printf("%d\n",n); return 0; 编译程序 3-11.c, 并执行程序 3-11.exe, 程序执行后在屏幕上输出 : 请输入一串字符 : asdf123s 8 注意 : getchar( ) 3.5 break 语句和 continue 语句 科学出版社职教技术出版中心 break 语句可应用于循环体中或 switch 语句中 在循环中, 当程序执行到 break 语句后, 立即退出循环 ; 在多分支语句中, 程序遇到 break 语句时, 停止以下分支的执行 continue 语句只能位于循环体内, 执行 continue 语句后,continue 语句到循环体末尾之间的语句会被跳过, 但会接着执行下一次循环 break 语句和 continue 语句往往与

70 58 C 语言程序设计 if 一起使用 if 将在以后的章节中详细讲到,if 的其中一个格式如下 : if ( 条件 ) 语句 1 else 语句 2 当括弧中的条件 ( 逻辑值 ) 为真时, 程序执行语句 1; 条件为假时, 执行语句 2 - 若 s=1+1/2+1/3+1/4+ +1/n, 求和 s 大于 3 为止时的 s 与 n 的值, 用 break 语句跳出循环 分析设置一个无限循环, 当和 s 的值大于 3 时, 用 break 语句跳出循环 流程图如图 3.14 所示 定义变量 n,s 非 0( 永真 ) 真 s=s+1/n 关键程序代码如下 : while (1) /* 非 0, 无条件循环 */ s+=1.0/n ; if (s>3) /* 如 s>3 为真, 则 break*/ break ; n++ ; s>3 真 break 假 n++ 输出 s 图 3.14 流程图 编辑源程序代码 3-12.c: #include<stdio.h> int main() int n= 1; double s=0; while (1) /* 非 0( 永真 ), 无条件循环 */ s+=1.0/n ; if (s>3) /* 当 s>3 时, 执行 break 跳出循环 */ break; n++ ; printf("s=%f n=%d\n", s,n); return 0; 编译程序 3-12.c, 并执行程序 3-12.exe, 程序执行后在屏幕上输出 : s= n=11

71 while 循环程序设计第 3 章 59 求 s=1/1!+1/2!+1/3!+1/4!+, 要求误差 < 判断某整数 m 是否是素数,m 从键盘输入 分析 采用这样的算法 : 让 m 被 2~ m 除, 如果 m 能被 2~ m 之中任何一个整数整 除, 则提前结束循环, 此时 i 必然小于或等于 m ; 如果 m 不能被 2~ m 之间的任何一个整数整除, 则在完成最后一次循环后,i 再加上 1, 因此 i= m +1, 然后才终止循环 在循环之后判别 i 的值是否大于或等于 m +1, 若是, 则表明未曾被 2~ m 之间的任意整 数整除过, 因此输出是素数 程序流程图如图 3.15 所示 输入 m k= m i<=k 假真m 被 i 整除 编辑源程序代码 3-13.c: #include<stdio.h> #include<math.h> int main() int i, m, k; i=2; scanf("%d",&m); k=(int)sqrt(m); while (i<=k) if (m%i==0) break; i++; i++ 不是素数假图 3.15 判断是否是素数的流程图 i>=k+1 真break 假是素数 真科学出版社职教技术出版中心

72 60 C 语言程序设计 if (i>=k+1) printf("%d 是素数 \n",m); else printf("%d 不是素数 \n",m); return 0; 编译程序 3-13.c, 并执行程序 3-13.exe, 程序执行后在屏幕上输出 : 是素数 上例为什么只要判断 m 是否被 2~ m 之间的某一整数整除, 而不需要判断 2~ m-1, 请读者自行思考 求整数 100~1000 之间所有的素数 3.6 循环嵌套 for 语句一般用于具有明确循环次数的情况 如果事先不知道准确的循环次数, 只知道循环控制条件, 循环次数及控制条件要在循环过程中才能确定的情况, 一般用 while 或 do-while 语句来描述 当然循环可以嵌套, 且三种循环语句可以相互嵌套 如 for 语句可与 while do-while 语句相互嵌套, 构成多重循环 循环和循环一般是并列或嵌套的, 绝不能交叉 在循环中可用转移语句把流程转到循环体外, 但绝不能从外面转入循环体内 在循环程序中应避免出现死循环, 即应保证循环变量的值在运行过程中可以得到修改, 最后使循环条件变为假, 从而结束循环 - 用户输入一个正整数, 判断它是否是素数之后, 若用户还想判断其他数字是否为素数时, 需要重新运行程序, 非常麻烦 我们可以编写一个新的程序, 可以让用户多次重复输入 设计一个无限循环, 当输入 1 时继续测试数字, 输入 0 时则退出循环 流程图如图 3.16 所示 编辑源程序代码 3-14.c: #include<stdio.h> #include<math.h> int main( )

73 while 循环程序设计第 3 章 61 int i, m, k, c; do i=2; scanf("%d",&m); k=sqrt(m); while (i<=k) if (m%i= =0) break; i++; if (i>=k+1) printf("%d 是素数 \n",m); else printf("%d 不是素数 \n",m); printf(" 输入 1 继续, 输入其他数字退出 :"); scanf("%d",&c); if (c==1) continue; else break; while(1); /* 永真循环 */ 输入一个数 m 继续判断 退出程序 判断是否为素数 菜单选择 图 3.16 流程图 编译程序 3-14.c, 并执行程序 3-14.exe, 程序执行后在屏幕上输出 : 4 4 不是素数输入 1 继续, 输入其他数字退出 : 是素数输入 1 继续, 输入其他数字退出 :0 科学出版社职教技术出版中心 用双重循环的方式输出下列图形 :

74 62 C 语言程序设计 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - 输出一张乘法九九表 分析用两个嵌套 for 循环, 外 for 循环执行 9 次, 每一次包含一个内 for 循环, 用来打印 1 行 这样两个 for 循环打印 9 行 流程图如图 3.17 所示 i=1 i<10 0 i++ 1 j=1 0 j<=i 1 printf("%2d*%d=%-3d",i,j,i*j); j++ 退出 图 3.17 流程图 编辑源程序代码 3-15.c: #include<stdio.h> int main() int i,j; for (i=1;i<10;i++) printf("%4d",i); printf("\n \n"); for (i=1;i<10;i++) for (j=1;j<=i;j++) printf("%2d*%d=%-3d",i,j,i*j); printf("\n"); return 0; 编译程序 3-15.c, 并执行程序 3-15.exe, 程序执行后在屏幕上输出 :

75 while 循环程序设计第 3 章 63 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 - 编写程序, 打印如下所示的输出 * * * * * * * * * * * * * * * 分析外循环 5 次, 循环语句为 for(i=0;i<5;i++); 然后循环空格, 循环语句为 for(j=0;j<i;j++); 内层循环 5 次, 循环语句为 for(k=0;k<5-i;k++), 流程图如图 3.18 所示 i=0 i<5 0 1 j=0 j<i 1 printf(" ") j++ 0 k=0 k<5-i 1 printf(" *") k++ 程序结束 0 科学出版社职教技术出版中心 printf("\n") i++ 图 3.18 流程图 关键语句如下 : for(i=0;i<5;i++) for(j=0;j<i;j++)

网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

FJXBQ

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

More information

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

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

More information

<4D F736F F D205A572D2D A1AAA1AAD4ACE7F42D43D3EFD1D4CAB5D1B5BDCCB3CC2E646F6378>

<4D F736F F D205A572D2D A1AAA1AAD4ACE7F42D43D3EFD1D4CAB5D1B5BDCCB3CC2E646F6378> 第 1 部分 Visual Studio 6.0 开发环境介绍 本书以 Visual C++ 6.0 作为 C 源程序的实践开发环境, 本章将首先介绍 Visual C++ 6.0 环境的基本操作, 包括 Visual C++ 6.0 的安装和启动,C 源程序的编辑 运行与调试 1.1 安装与启动 Visual C++ 6.0 MSDN Visual C++ 6.0 1.1 Microsoft Visual

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

《计算概论》课程 第十九讲 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

《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

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

<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

新版 明解C言語入門編

新版 明解C言語入門編 328, 4, 110, 189, 103, 11... 318. 274 6 ; 10 ; 5? 48 & & 228! 61!= 42 ^= 66 _ 82 /= 66 /* 3 / 19 ~ 164 OR 53 OR 164 = 66 ( ) 115 ( ) 31 ^ OR 164 [] 89, 241 [] 324 + + 4, 19, 241 + + 22 ++ 67 ++ 73 += 66

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语言程序设计》第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

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

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

第一章 引言

第一章  引言 第四章 循环结构 上机问题 程序书写风格 缩入 : 例如, 统一缩入四个空格 复合语句中 {} 的对齐 适当的空行 变量名命名 变量名使用 2 上机问题 关系运算符 == 与赋值运算符 = n == 0 与 n = 0 的区别? 逻辑运算符 :&& 与 的区别? && : 两个条件均为真, 结果为真 : 有一个条件为真, 结果为真 for 语句 if-else 语句的逻辑错误 3 上机问题 scanf

More information

新・解きながら学ぶC言語

新・解きながら学ぶC言語 330!... 67!=... 42 "... 215 " "... 6, 77, 222 #define... 114, 194 #include... 145 %... 21 %... 21 %%... 21 %f... 26 %ld... 162 %lf... 26 %lu... 162 %o... 180 %p... 248 %s... 223, 224 %u... 162 %x... 180

More information

期中考试试题讲解

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

More information

FY.DOC

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

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

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

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

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

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

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

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

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

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

More information

没有幻灯片标题

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

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

More information

Microsoft Word - CXY.doc

Microsoft Word - CXY.doc 科学出版社职教技术出版中心 教育部 -LUPA 开源软件应用实训教材中国高等教育培训中心推荐教材 LUPA 开放源代码软件职业技能认证指定教材 Linux 程序员 (C 语言 ) 实用教程 LUPA 编著 北 京 错误! 文档中没有指定样式的文字 1 内容简介 本书系统地介绍了 Linux 环境下 C 语言程序的设计思路 设计方法及开发流程, 通过大量的程序设计实例与实例相仿的思考题, 帮助读者尽快提高

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

PowerPoint 演示文稿

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

More information

C

C C 2017 3 14 1. 2. 3. 4. 2/95 C 1. 3/95 C I 1 // talkback.c: 2 #include 3 #include 4 #define DENSITY 62.4 5 int main(void) 6 { 7 float weight, volume; 8 int size; 9 unsigned long letters;

More information

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

More information

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

More information

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

More information

没有幻灯片标题

没有幻灯片标题 第 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

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 - 01_Introduction.ppt

Microsoft PowerPoint - 01_Introduction.ppt Hello, World C 程序设计语言 第 1 章章观其大略 孙志岗 sun@hit.edu.cn http://sunner.cn prf("hello,, world\n"); 超级无敌考考你 : 如何把 hello 和 world 分别打印在两行? 2004-12-19 A Tutorial Introduction 2 hello.c 打印华氏温度与摄氏温度对照表 计算公式 : C=(5/9)(

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) 熟练掌握顺序 分支 循环三种结构 (2) 会使用流程控制结构编写程序 第三章程序的流程控制 实验要求 (1) 掌握 if-else swith-case 的使用 (2) 掌握 while do-while for 的使用 (3) 掌握分支嵌套和循环嵌套 (4) 分析理解如何避免死循

实验目的 (1) 熟练掌握顺序 分支 循环三种结构 (2) 会使用流程控制结构编写程序 第三章程序的流程控制 实验要求 (1) 掌握 if-else swith-case 的使用 (2) 掌握 while do-while for 的使用 (3) 掌握分支嵌套和循环嵌套 (4) 分析理解如何避免死循 实验目的 (1) 熟练掌握顺序 分支 循环三种结构 (2) 会使用流程控制结构编写程序 第三章程序的流程控制 实验要求 (1) 掌握 if-else swith-case 的使用 (2) 掌握 while do-while for 的使用 (3) 掌握分支嵌套和循环嵌套 (4) 分析理解如何避免死循环 实验范例 系统常用类 : 字符串类 (String) a) 从字符串 s 中截取一个字符串方法 s.substring()

More information

<4D F736F F D204A617661B3CCD0F2C9E8BCC6BBF9B4A1A3A8B5DA35B0E6A3A9CAB5D1E9D6B8B5BCD3EBCFB0CCE2BDE2B4F020B5DA33D5C22E646F63>

<4D F736F F D204A617661B3CCD0F2C9E8BCC6BBF9B4A1A3A8B5DA35B0E6A3A9CAB5D1E9D6B8B5BCD3EBCFB0CCE2BDE2B4F020B5DA33D5C22E646F63> 第 3 章 结构语句 本章知识点 : 流程控制语句是用来控制程序中各语句执行顺序的语句, 是程序中基本却又非常关键的部分 流程控制语句可以把单个的语句组合成有意义的 能完成一定功能的小逻辑模块 最主要的流程控制方式是结构化程序设计中规定的顺序结构 分支结构 ( 选择结构 ) 和循环结构三种基本流程结构 本章将指导读者掌握 Java 程序中的流程控制语句, 包括这些语句的语法结构和使用中需注意的要点

More information

C/C++ - 函数

C/C++ - 函数 C/C++ Table of contents 1. 2. 3. & 4. 5. 1 2 3 # include # define SIZE 50 int main ( void ) { float list [ SIZE ]; readlist (list, SIZE ); sort (list, SIZE ); average (list, SIZE ); bargragh

More information

Microsoft Word - 正文.doc

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

More information

试卷代号 :1075 座位号 rn 国家开放大学 ( 中央广播电视大学 )2015 年秋季学期 " 开放本科 " 期末考试 c+ 十语言程序设计试题 2016 年 1 月 t 问一 Urr-f 斗 士 1 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new

试卷代号 :1075 座位号 rn 国家开放大学 ( 中央广播电视大学 )2015 年秋季学期  开放本科  期末考试 c+ 十语言程序设计试题 2016 年 1 月 t 问一 Urr-f 斗 士 1 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new 试卷代号 :1075 座位号 rn 国家开放大学 ( 中央广播电视大学 )2015 年秋季学期 " 开放本科 " 期末考试 c+ 十语言程序设计试题 2016 年 1 月 t 问一 Urr-f 斗 士 1 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new D. long 2. 在每个 C 十 + 程序中都必须包含有这样一个函数, 该函数的函数名为 ) A.main

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

Microsoft Word - 第3章.doc

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

More information

试卷代号 ~1075 座位号 E 口 国家开放大学 ( 中央广播电视大学 )20]5 年秋季学期 " 开放本科 " 期末考试 C 十十语言程序设计 试题 同二二十斗 2016 年 1 月 巴叫一 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new D. l

试卷代号 ~1075 座位号 E 口 国家开放大学 ( 中央广播电视大学 )20]5 年秋季学期  开放本科  期末考试 C 十十语言程序设计 试题 同二二十斗 2016 年 1 月 巴叫一 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new D. l 试卷代号 ~1075 座位号 E 口 国家开放大学 ( 中央广播电视大学 )20]5 年秋季学期 " 开放本科 " 期末考试 C 十十语言程序设计 试题 同二二十斗 2016 年 1 月 巴叫一 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new D. long 2. 在每个 c++ 程序中都必须包含有这样一个函数, 该函数的函数名为 ( ) A. main

More information

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

《C语言程序设计》教材习题参考答案 教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN: 978-7-302-13599-9, 红色封面答案制作时间 :2011 年 2 月 -5 月一 选择题 1. 设有程序段 int k=10;while(k=0)k=k-1;, 则下面叙述正确的是 D 循环体语句一次也不执行 2. 设有程序段 int x=0,s=0;while(!x!=0)s+=++x;printf(

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

科学出版社职教技术出版中心 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

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

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 1 TEMPLATE 1 Template 描述 使用模板函数求最大值 使用如下 main 函数对程序进行测试 int main() { double a, b; cin >> a >> b; cout c >> d; cout

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

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

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

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

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

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

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

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

林子雨《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

( 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

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

PowerPoint 演示文稿

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

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

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

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

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

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

PowerPoint 演示文稿

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

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

Static Enforcement of Security with Types

Static Enforcement of Security with Types 例题 1 一个 C 语言程序及其在 X86/Linux 操作系统上的编译结 果如下 根据所生成的汇编程序来解释程序中四个变 量的存储分配 生存期 作用域和置初值方式等方面 的区别 static long aa = 10; short bb = 20; func( ) { } static long cc = 30; short dd = 40; static long aa = 10; func(

More information

普通高等教育 十二五 重点规划教材 C 语言程序设计习题集 刘立君主 编 王立武朱姬凤王锦 副主编 北 京

普通高等教育 十二五 重点规划教材 C 语言程序设计习题集 刘立君主 编 王立武朱姬凤王锦 副主编 北 京 社 心 版 中 出 版 学 科 术出 k.cn 技 boo 教.a 职 ww w 普通高等教育 十二五 重点规划教材 C 语言程序设计习题集 刘立君主 编 王立武朱姬凤王锦 副主编 北 京 ii C 语言程序设计习题集 内容简介 本书是为学习 C 语言程序设计的读者提供的参考书, 书中精心设计的例题和习题对读者深入掌握 C 语言极有参考价值 全书共分为 13 章, 书中的试题基本覆盖了 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

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 3 章 流程控制语句的应用 语句是程序中最小的程序指令, 即程序完成一次完整正操的基本单位 在 C# 中, 可以使用多种类型的语句, 每一种类型的语句又可以通过多个关键字实现 通过这些语句可以控制程序代码的逻辑, 提高程序的灵活性, 从而实现比较复杂的程序逻辑 本章主要内容 : 选择语句的应用 迭代语句的应用 跳转语句的应用 3.1 选择语句的应用 选择语句也叫作分支语句, 选择语句根据某个条件是否成立来控制程序的执行流程

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 语言程序设计 ( 第 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

图书在版编目 (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

Guava学习之Resources

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

More information

NOWOER.OM m/n m/=n m/n m%=n m%n m%=n m%n m/=n 4. enum string x1, x2, x3=10, x4, x5, x; 函数外部问 x 等于什么? 随机值 5. unsigned char *p1; unsigned long *p

NOWOER.OM m/n m/=n m/n m%=n m%n m%=n m%n m/=n 4. enum string x1, x2, x3=10, x4, x5, x; 函数外部问 x 等于什么? 随机值 5. unsigned char *p1; unsigned long *p NOWOER.OM /++ 程师能 评估. 单项选择题 1. 下 描述正确的是 int *p1 = new int[10]; int *p2 = new int[10](); p1 和 p2 申请的空间 的值都是随机值 p1 和 p2 申请的空间 的值都已经初始化 p1 申请的空间 的值是随机值,p2 申请的空间 的值已经初始化 p1 申请的空间 的值已经初始化,p2 申请的空间 的值是随机值 2.

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

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

chp3

chp3 Java 软件设计基础 3. 流程控制 3.1 语句控制结构 语句类型 变量声明语句 用来声明变量, 格式为 : 表达式语句 在一个表达式的最后加上一个分号构成的语句, 分号是语句不可缺少的部分, 格式为 : 变量 = 表达式 ; 复合语句 [ 修饰符 ] 类型名变量名 1[, 变量名 2][, ]; [ 修饰符 ] 类型名变量名 1[= 初值 1][, 变量名 2][= 初值 2][, ]; 将相关语句组合在一起就构成复合语句,

More information

第三篇 C 语言基础编程能力实训案例 编程练习题答案 1-1 程序例 #include<stdio.h> main( ) { printf("c Language Program\n"); } 结果 1. 变量及数据运算 1-2 程序例 #include<stdio.h> main( ) { pri

第三篇 C 语言基础编程能力实训案例 编程练习题答案 1-1 程序例 #include<stdio.h> main( ) { printf(c Language Program\n); } 结果 1. 变量及数据运算 1-2 程序例 #include<stdio.h> main( ) { pri 第三篇 C 语言基础编程能力实训案例 编程练习题答案 1-1 程序例 printf("c Language Program\n"); 1. 变量及数据运算 1-2 程序例 printf("mini-floppy disk\n"); printf("floppy disk\n"); printf("hard disk\n"); 1-3 程序例 /*printf test*/ printf("c Language\n");

More information

C/C++ - 字符输入输出和字符确认

C/C++ - 字符输入输出和字符确认 C/C++ Table of contents 1. 2. getchar() putchar() 3. (Buffer) 4. 5. 6. 7. 8. 1 2 3 1 // pseudo code 2 read a character 3 while there is more input 4 increment character count 5 if a line has been read,

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

内容简介 C 语言是一种结构化程序设计语言, 本书通过大量的实例讲解 C 语言程序设计的方法, 主要内容包括 C 语言程序的结构 数据类型 运算符和表达式 数据的输入和输出 选择结构 循环结构 数组 函数 指针 编译预处理 结构和共用体 位运算 文件等 每个单元包括小结 实验 习题等 本书可作为高等 普通高等教育 十二五 重点规划教材计算机系列中国科学院教材建设委员会 十二五 规划教材 C 语言程序设计 张秀萍主编闫丽王淑霞副主编 北 京 科学出版社职教技术出版中心 www.aboo 内容简介 C 语言是一种结构化程序设计语言, 本书通过大量的实例讲解 C 语言程序设计的方法, 主要内容包括 C 语言程序的结构 数据类型 运算符和表达式 数据的输入和输出 选择结构 循环结构 数组 函数 指针 编译预处理

More information

Microsoft Word - FM{new}.doc

Microsoft Word - FM{new}.doc Lanczos 方法 Louis Komzsik 著张伟廖本善译 演变与应用 清华大学出版社 北京 内容简介 Lanczos 方法是 20 世纪计算数学方向最有影响的方法之一, 并且已经在工程中得到了广泛应用. 本书兼顾了 Lanczos 方法的理论演变和工程中的实际应用, 其内容分为两部分 : 第一部分阐述了方法的演变, 并提供了具体算法 ; 第二部分讨论了工业中的实际应用, 包括常用的模态分析

More information

Microsoft Word - YYCXfm.DOC

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

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

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

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

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

More information

幻灯片 1

幻灯片 1 第一类换元法 ( 凑微分法 ) 学习指导 复习 : 凑微分 部分常用的凑微分 : () n d d( (4) d d( ); (5) d d(ln ); n n (6) e d d( e ); () d d( b); ); () d d( ); (7) sin d d (cos ) 常见凑微分公式 ); ( ) ( ) ( b d b f d b f ); ( ) ( ) ( n n n n d f

More information

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

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

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

zyk00168ZW.PDF

zyk00168ZW.PDF () 0 4 5 (km).5 4 5.5 7 8.5 () 0 4 5 (km) 4 4.5 5 5.5 6 6.5 y5x. y0. 5x4 x y 9 5x y x y 9 5x y x x 6 x y. 55 y5x. y0. 5x4 x 0 x x y y y 5 x x x 4 y y y 5 () x y () y x x 4y 0 4x y x 0 0.4 y 0.5 0 5x y

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

Microsoft Word - 综合试题2.doc

Microsoft Word - 综合试题2.doc 综合测试题二 一 选择题 ( 本大题共 10 小题, 每小题 1 分, 共 10 分 ) 1. C 语言中用于结构化程序设计的三种基本结构是 A. 顺序结构 选择结构 循环结构 B. if switch break C. for while do-while D. if for continue 2. 下列关于 C 语言用户标识符的叙述中正确的是 A. 用户标识符中可以出现下划线和中划线 B. 用户标识符中不可以出现中划线,

More information

<4D F736F F D C4EA33D4C2C8ABB9FABCC6CBE3BBFAB5C8BCB6BFBCCAD4B6FEBCB6B1CACAD4CAD4BEEDBCB0B2CEBFBCB4F0B0B82E646F63>

<4D F736F F D C4EA33D4C2C8ABB9FABCC6CBE3BBFAB5C8BCB6BFBCCAD4B6FEBCB6B1CACAD4CAD4BEEDBCB0B2CEBFBCB4F0B0B82E646F63> 2012 年 3 月全国计算机等级考试二级笔试试卷及参考答案 C 语言程序设计 ( 考试时间 90 分钟, 满分 100 分 ) 一 选择题 ((1)-(10) (21)-(40) 每题 2 分,(11)-(20) 每题 1 分, 共 70 分 ) 下列各题 A) B) C) D) 四个选项中, 只有一个选项是正确的 请将正确选项填涂在答题卡相应位置上答在试卷上不得分 1. 下列叙述中正确的是 A)

More information

第五讲 数组 一维数组 二维数组 数组作为函数参数

第五讲 数组 一维数组 二维数组 数组作为函数参数 第五讲 数组 一维数组 二维数组 数组作为函数参数 一维数组 2 数组 数组 : 具有一定顺序关系的若干相同类型变量的集合体 一维数组的声明 类型标识符变量名 [n] 声明一个长度为 n 的数组 ( 向量 ) 类型标识符 : 数组元素的数据类型 ; n: 数组的长度, 即元素的个数 ; 例 : int x[5] // 声明一个长度为 5 的一维数组 一维数组的引用 变量名 [k] // 注 : 下标

More information

<4D F736F F D20B5DA33D5C220CAFDBEDDB5C4CAE4C8EBCAE4B3F62E646F63>

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

More information

プログラムの設計と実現II

プログラムの設計と実現II UNIX C ls mkdir man http://www.tj.chiba-u.jp/lecture/prog2/ Ctrl+x, Ctrl+s ( )..[4]% gcc Wall o hoge hoge.c..[5]%./hoge 1 : 1 2 : 2 3 : 3 4 : 0 6..[6]% (! )..[4]% gcc Wall o hoge hoge.c..[5]%!g gcc Wall

More information