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

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

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

PowerPoint 演示文稿

Microsoft PowerPoint - 01_Introduction.ppt

<4D F736F F D205A572D2D A1AAA1AAD4ACE7F42D43D3EFD1D4CAB5D1B5BDCCB3CC2E646F6378>

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

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

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

网C试题(08上).doc

Microsoft Word - 正文.doc

没有幻灯片标题

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

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

C/C++ - 函数

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

chap07.key

Microsoft Word - YYCXfm.DOC

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

山东师大数学科学学院

C/C++ 语言 - 循环

新版 明解C言語入門編

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

没有幻灯片标题

手册 doc

3.1 num = 3 ch = 'C' 2

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9

C C

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

Guava学习之Resources

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

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

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

C

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

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

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

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

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

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

C

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

ch02_Basic

PowerPoint 演示文稿

PowerPoint 演示文稿

CC213

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

nooog

Microsoft PowerPoint - 07 派生数据类型

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

Microsoft Word - 01a

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

untitled

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


CC213

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

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

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

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

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

C/C++ - 文件IO

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

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

PowerPoint 演示文稿

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

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

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

CHAPTER VC#

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

Microsoft Word - VB全文.doc

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

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

<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1ADBBB7>

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

Microsoft Word - 扉页

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

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

2013 C 1 #include <stdio.h> 2 int main(void) 3 { 4 int cases, i; 5 long long a, b; 6 scanf("%d", &cases); 7 for (i = 0; i < cases; i++) 8 { 9 scanf("%

F515_CS_Book.book

Microsoft Word - 新1-12.doc

运算符重载 为什么要 运算符重载 那些运算符可以重载, 哪些不可以 如何实现运算符重载 实现方式 : 成员函数与非成员函数 类型转换 怎样实现对象与基本数据类型数据的运算 2

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

FY.DOC

期中考试试题讲解

<C8EBC3C5C6AAA3A8B5DA31D5C2A3A92E696E6464>

Microsoft Word - CX1000-HMI_程序开发_PLC通讯

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

Microsoft Word - 第3章.doc


一、单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项)

C 1

untitled

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

Microsoft PowerPoint - C_Structure.ppt

PowerPoint Presentation

<4D F736F F D20B3CCD0F2C9E8BCC6CAB5BCF9BDCCB3CC2843D3EFD1D4C3E8CAF629>

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

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

第3章 Java语言基础

ExcelUtility 类库使用说明 ( 续 ) 开发 / 设计 : 左文俊 第一个新增功能, 列宽自适应, 当超过 30 个字符则将单元格内容设为换行 任意一个无模板的导出方法均支持该功能, 示例代码如下 : /// <summary> /// 测试方法

Transcription:

第 1 章 C 语言基础与顺序结构 学习目标 1. 掌握 C 语言程序的结构 2. 合理选用数据类型 3. 掌握算术运算符和赋值运算符 4. 掌握控制数据的输入 输出方法 5. 掌握顺序结构以及顺序结构的流程 6. 掌握 Visual C++ 6.0 集成环境的使用方法 7. 掌握转换大小写字母的方法 8. 掌握产生随机整数的方法 计算机由硬件系统和软件系统组成, 其中硬件是物质基础, 而软件是计算机的灵魂 没有软件的计算机是什么也干不了的 裸机 所有软件要用计算机语言编写 计算机语言是人和计算机交换信息的工具 随着计算机技术的发展, 计算机语言逐步得到完善 最初使用的计算机语言是用一串串 0 和 1 组成的数字表达的语言 机器语言, 后来使用的计算机语言是用简洁的英文字母或符号串表达的语言 汇编语言 机器语言和汇编语言都是低级语言, 用这种语言编写的程序执行效率高, 但程序代码很长, 又都依赖于具体的计算机, 因此编码 调试 阅读程序都很困难, 通用性也差 目前使用最广泛的计算机语言是用接近于人们自然语言表达的语言 高级语言 用高级语言编写的程序完全不依赖于计算机硬件, 编码相对短, 可读性强 C 语言属于高级语言 用高级语言编写的程序叫作源程序 1.1.1 了解 C 语言程序的构成 1.1 认识 C 语言程序 任何一个 C 语言程序都是由若干个函数构成的, 所以编写一个程序的过程, 就是根据功能要求并按照 C 语言语法规则逐个编写各函数的过程 下面给出一个较完整的程序, 以便读者尽早了解 C 语言程序 程序中的各行含义将在后续章节中详细介绍, 在实例 6.1 中给出其执行过程 实例 1.1 观察下面的程序, 认识一个完整的 C 语言程序, 了解 C 语言程序的结构 // 下面 3 行是预处理命令部分 #include <stdio.h> #include <math.h>

C 语言程序设计 ( 第 33 版 )) #define PI 3.14159 // 下面 2 行是函数的原型说明部分 double sup_area(double r); double volume(double r); // 下面是主函数部分 { double a=-5,b,c,d; b=fabs(a); c=sup_area(b); d=volume(b); printf("c=%lf,d=%lf\n",c,d); // 下面是 sup_area 函数的定义部分, 该函数的功能是计算球的表面积 double sup_area(double r) { double s; s=4*pi*r*r; return s; // 下面是 volume 函数的定义部分, 函数功能是计算球的体积 double volume (double r) { double v; v=4.0/3.0*pi*r*r*r; return v; 1. 运行结果 2. 归纳分析 (1) 任何一个 C 语言程序都由若干个函数构成, 而且必须有且仅有一个主函数 ( 函数名必须是 main), 其他函数的多少由实际情况而定, 处理简单问题时也可以没有其他函数 本程序包括主函数 sup_area 函数和 volume 函数 (2) 程序中用 // 引导的部分叫作注释部分 注释部分对程序的运行不起作用 2

第 1 章 C 语言基础与顺序结构 在程序中加注释是为了便于阅读 (3)C 语言提供丰富的标准库函数以便直接使用, 但要求在程序的开头加上包含该函数信息的命令行 ( 参见附录 D) 本程序中使用了库函数 printf( 功能是输出数据, 是输出函数 ) 和 fabs( 功能是求绝对值, 是数学函数 ) C 语言系统将所有输入 输出函数的信息存放在 stdio.h 文件中, 而将所有数学函数的信息存放在 math.h 文件中, 所以程序的开头加了两个命令行 #include <stdio.h> 和 #include <math.h> (4) 程序的开头除了上述两个命令行外, 又有了命令行 #define PI 3.14159 有此命令行后, 程序中所用到的所有 PI 均用 3.14159 代替 (5) 程序中编写了 3 个函数, 除了主函数外, 在使用其他自定义的函数前, 应对这些函数逐一进行函数原型说明 因此程序中加了 double sup_area(double r); 和 double volume(double r); 1.1.2 熟悉主函数框架 在 C 语言中可以编写程序进行算术运算, 就像日常生活中人们使用计算器计算一样 实例 1.2 编写程序, 计算两个整数的和与差, 要求从键盘输入两个数 1. 编程思路 在 C 语言中, 数据的输入操作使用标准库函数 scanf 实现, 而通过标准库函数 printf 实现输出功能 加法操作和减法操作分别使用算术运算符 + 和 - 2. 程序代码 #include <stdio.h> { int x,y,a; // 定义三个变量 printf("input x and y:"); scanf("%d%d",&x,&y); a=x+y; printf("the sum of the two numbers:%d\n",a); // 显示提示信息 // 要求从键盘输入两个整数 // 计算两个数的和 // 输出两个数的和 a=x-y; printf("the difference:%d\n",a); // 计算两个数的差 // 输出两个数的差 3. 运行结果 3. 运行结果 4. 归纳分析 (1) 本程序只包含主函数, 主函数的一般框架是 : 3

C 语言程序设计 ( 第 33 版 )) { 定义变量部分功能语句部分 定义变量和功能语句部分均可以是多条, 而且每条都以 ; 结束 说明 :C 99 标准提供两种主函数形式, 一种是不带参数的主函数 ; 另一种是带参数的主函数, 本书只介绍其中第一种主函数 (2) 在屏幕上显示内容要使用 printf 函数 此函数有两种形式 参见实例 1.8 语句 printf("input x and y:"); 的功能是屏幕上显示字符串 Input x and y:, 而语句 printf("the sum of the two numbers:%d\n",a); 的功能是在显示双引号中字符的同时, %d 的位置上用 a 的值替换 %d 是格式说明符, 在输出整数时使用, \n 是换行符 (3) 从键盘输入数据要使用 scanf 函数 参见实例 1.8 语句 scanf("%d%d",&x,&y); 的功能是要求用户从键盘输入两个整数, 并把它们分别存放在变量 x 和 y 中 在输入整数时也要使用格式说明符 %d (4) 编写程序后应上机验证 学习者可以按照如下顺序尝试上机 更多的上机操作方法将在后续章节中陆续介绍 5. 操作步骤第 1 步 : 安装 Visual C++ 6.0 如果已经安装, 则跳过此步 第 2 步 : 启动 Visual C++ 6.0 为了编写 C 语言程序, 首先应启动 Visual C++ 6.0 集成环境, 其方法是 : 在 Windows 的 开始 菜单中, 依次选择 程序 Microsoft Visual Studio 6.0 Microsoft Visual C++6.0, 此时弹出 Visual C++ 6.0 的主窗口 第 3 步 : 新建 C 源程序 在 Visual C++ 6.0 的主窗口选择 文件 新建 命令, 出现 新建 对话框, 在此选择 文件 选项卡下的 C++ Source File, 在右侧 位置 栏中输入 D:\C 语言 或通过单击按钮并选择 D 盘上的 C 语言 文件夹, 再在 文件名 栏中输入 实例 1_2.c ( 见图 1.1), 然后单击 确定 按钮, 便建立了新的 C 源程序, 如图 1.2 所示 该界面的右侧为编辑窗口, 这时编辑窗口是空的 图 1.1 新建 对话框 4

第1章 图 1.2 C语言基础与顺序结构 新建 C 源程序后的界面 第 4 步 编辑源程序 在编辑窗口中输入实例 1.2 的代码 可以不输入注释部分 第 5 步 保存文件 因为上机时经常会发生预料不到的事情 一定要养成随时存 盘的好习惯 单击工具栏中的 保存 按钮 按原名将文件存盘 第 6 步 编译和连接程序 C 源程序通过编译和连接之后才能运行 单击 编译 按钮 进行程序的编译 在出现的提示信息框中单击 是 按钮 系统在编译前会自 动将程序保存 然后进行编译 如果在编译的过程中发现错误 将在下方窗口中列出所 有错误和警告 附录 F 中提供中英文对照表 双击显示错误或警告的第 1 行 则光标 自动跳到代码的错误行 修改该错误后 对程序重新进行编译 若程序还有错误或警告 可继续修改和编译 直到没有错误为止 编译本实例时没有出现任何错误和警告 所以 错误和警告数都为 0 如图 1.3 所示 图 1.3 编译后的情况 5 zw1.indd 5 2016.7.1 1:41:16 PM

C 语言程序设计 ( 第 33 版 )) 如果在图 1.1 右侧 文件名 栏中输入文件名时省略扩展名, 则系统建立的文件不是 C 语言程序, 而是 C++ 语言程序 ( 默认扩展名为.cpp) 单击 连接 按钮后, 与编译时一样, 如果在连接的过程中系统发现错误, 将在下面窗口中列出所有错误和警告 修改错误后重新编译和连接, 直到编译和连接都没有错误为止 第 7 步 : 运行程序 单击 运行 按钮, 出现如图 1.4 所示的界面, 并要求用户输入 x 和 y 的值 输入 1200 和 180 后按 Enter 键, 看到实例 1.2 的运行情况, 如图 1.5 所示 运行程序时可以按 Shift 键切换中英文输入法 按任意键回到编辑窗口 图 1.4 实例 1.2 的运行界面 图 1.5 实例 1.2 的运行情况如果运行结果与预期的结果不相符, 则修改程序后重复第 6 步和第 7 步的操作, 直到结果正确为止 从以上操作步骤可以看到, 要得到 C 程序的运行结果, 首先选择一种集成环境, 将源程序输入计算机内, 然后把源程序翻译成机器能识别的目标程序, 再把目标程序和系统提供的库函数等链接起来产生可执行文件, 这时才可以运行程序 C 程序的编辑 编译 链接 运行过程如图 1.6 所示 图 1.6 C 程序的编辑 编译 链接 运行过程 C 程序的编辑 编译 链接 运行过程可以在不同的环境中进行, 而本书选用的是 Visual C++ 6.0 集成环境 附录 E 中补充介绍 Visual C++ 2010 环境 如果退出 Visual C++ 6.0 环境后需要重新打开已建立的 C 程序实例 1_2.c, 则在资源管理器中双击 实例 1_2.c, 或先启动 Visual C++ 6.0 环境后通过 文件 打开 菜单项打开文件 6

第 1 章 C 语言基础与顺序结构 1.2 合理选用数据类型 在编写 C 语言程序时, 都需要处理大量的数据, 其中最常用的数据类型为整型 实型 字符型, 而常用的整型又有基本整型和长整型, 常用的实型有单精度实型和双精度实型 不同类型的数据有不同的特性和处理方法, 因此编写程序时合理选用相应的数据类型是至关重要的 1.2.1 合理选用整型数据在日常生活中我们经常需要处理整数, 即不带小数点的数 例如, 计算某人的年龄 统计学生人数等 在 C 语言中, 常用基本整型 (int) 或长整型 (long) 变量存放整型数据 由于在 Visual C++ 6.0 环境中, 基本整型和长整型所占字节数相同 (4 字节 ), 因此本书只介绍基本整型 定义变量时必须根据需要给出其类型 实例 1.3 编写程序, 计算正方形铁板的面积, 铁板边长为 150, 如图 1.7 所示 1. 编程思路利用公式 面积 = 边长 边长 计算正方形的面积, 而且定图 1.7 正方形铁板义变量 area 存放正方形的面积 由于需要处理的数据是整数, 所以选用 int 型 2. 程序代码 #include <stdio.h> { int area; // 定义基本整型变量 area area=150; area=area*area; printf("area=%d\n",area); // 把 150 赋给变量 area // 计算正方形的面积 // 输出正方形的面积 3. 运行结果 4. 归纳分析 (1) 程序中使用了变量 area, 所谓变量就是在程序执行过程中其值可以变化的量 C 语言将数据分为常量和变量, 常量是在程序执行过程中其值永远不变的量 变量的实质是内存中的一个存储单元, 因此在使用变量前应向系统申请存储单元, 这一过程就是定义变量的过程 本程序用 int area; 定义了变量 area 定义变量的一般形式是 : 7

C 语言程序设计 ( 第 33 版 )) 类型名变量名 1, 变量名 2,..., 变量名 n; 变量名由编程者自己给出, 但必须遵循如下变量名的命名规则 1 变量名中只能出现数字 大小写英文字母和下划线 2 变量名必须以字母或下划线开头 3 变量名与关键字不能相同 4 不提倡使用预定义字符 C 语言区分大小写, 所以变量 area 和 Area 是两个不同的变量 所谓关键字是 C 语言中已有特定用途的标识符 ( 参见附录 A), 如 int float 等 预定义符有 : 库函数名 ( 如 printf) 预编译处理命令 ( 如 include define) 等 如果把预定义符作为变量名, 则该预定义符将失去原有的含义 注意 : 变量必须先定义后使用, 定义变量后其中的值是不确定的 变量如同容器, 其中可以存放数据, 也可以从中取出数据使用 例如, 用 int area; 定义变量 area 后, 变量 area 中的值是不确定的, 但执行 area=150; 后,area 中的值变为 150, 再执行 area=area*area; 后,area 中的值又变为 22500, 如图 1.8 所示 图 1.8 变量 area 值的变化情况 编写程序时经常使用形如 area=area*area; 的语句, 其特点是运算符 = 两侧均出现相同的变量名 但两侧的变量名所代表的含义是不同的 例如, 该语句中, 运算符 = 右侧的 area 代表变量 area 中的值 ( 即 150), 而左侧的 area 代表存储单元 该语句的执行过程是先计算 area*area 的值 ( 即 150 150), 再把计算结果 ( 即 22500) 存放在运算符 = 左侧的 area 中 在 C 语言中 = 是赋值运算符, 参见 1.3.2 小节 (2) 输出基本整型数据时在 printf 函数中要使用格式说明符 %d 讨论题 1.1 在实例 1.3 的程序中, 如果需要计算任意一个边长的正方形铁板面积, 应该如何修改程序? 1.2.2 合理选用实型数据在日常生活中也经常需要处理实型数 例如, 计算学生的平均成绩 统计一年的销售额等 在 C 语言中, 常用 float 型或 double 型变量存放实型数据 实例 1.4 编写程序, 计算半径为 15.67 的圆面积 要求分别使用单精度型和双精度型数据计算 1. 编程思路通过求圆面积公式 πr 2 计算 单精度实型变量用 float 定义, 而双精度实型变量用 double 定义 8

第 1 章 C 语言基础与顺序结构 2. 程序代码 #include <stdio.h> #define PI 3.14159 { float s1; double s2; // 程序中的所有 PI 均用 3.14159 代替 s1=pi*15.67*15.67; s2=pi*15.67*15.67; printf("s1=%f,s2=%lf\n",s1,s2); 3. 运行结果 4. 归纳分析 (1) 在存储整型数据时没有误差, 但存储实型数据时就有误差 例如, 通过 a=5; 将 5 赋给整型变量 a 后,a 中存放的值就是 5, 但通过 b=345.6789; 将 345.6789 赋给单精度实型变量 b 后,b 中存放的值不是 345.6789, 而是带误差的值 ( 如 345.678894) 单精度实型数据的有效位是 6 ~ 7 位, 即只保证前 6 ~ 7 位是正确的, 而双精度实型数据的有效位是 15 ~ 16 位, 它能够保证前 15 ~ 16 位是正确的 从本程序的运行结果中也可以观察 (2) 在单精度实型和双精度实型中, 通常按如下原则选择使用具体数据类型 即 1 当要处理 -3.4 10-38 ~ 3.4 10 38 之间的实数时, 选用单精度实型 (float)( 也可以选用双精度实型, 但会浪费存储单元, 因为双精度实型占 8 字节, 单精度实型只占 4 字节 ) 2 当要处理 -1.7 10-308 ~ 1.7 10 308 之间的实数时, 选用双精度实型, 不能选用单精度实型 3 当要处理的实型数据精度要求高时, 选用双精度实型 注意 : 在整型变量中不能存放实型数 若有 int a; a=3.6;, 则执行该程序段后,a 中存放的值是 3, 而不是 3.6 (3) 输出单精度实型数据时在 printf 函数中要使用格式说明符 %f, 而输出双精 度实型数据时使用 %1f 用 %f 或 %1f 输出数据时, 小数点后总是输出六位, 若改用 %.3f 或 %.31f 形式, 则小数点后只输出三位, 若用 %.0f 或 %.01f 形式, 则不输出小数点后的数据 讨论题 1.2 假设一个学生的总评成绩由平时成绩和期末成绩构成 ( 平时 期末 和总评成绩均为整数 ), 其中平时成绩占总评成绩的 40%, 期末成绩占总评成绩的 60% 9

C 语言程序设计 ( 第 33 版 )) 计算总评成绩时可按如下步骤进行 1 输入平时成绩和期末成绩计算成绩 1 : 成绩 1= 平时成绩 0.4 计算成绩 2 : 成绩 2= 期末成绩 0.6 2 计算总评成绩总评成绩 = 成绩 1+ 成绩 2 3 输出总评成绩应需要定义哪些变量? 如何选择各变量类型? 1.2.3 合理选用字符型数据在日常生活中经常遇到一串串字符, 如姓名 性别 通信地址等, 在 C 语言中也同样需要处理大量的字符数据, 例如, 打字练习时计算正确率 连接两篇文章等 单个字符 ( 即字符常量 ) 要用 char 型变量存放 在程序中将字符常量用单引号括起来, 如 'a' 'B' 等 字符常量可以是 ASCII 码表 ( 参见附录 B) 中的任意一个字符, 它在内存中占一个字节 实例 1.5 假设变量 ch 中已存放字母 'H', 编写程序, 将 ch 中的字母转换成小写字母后重新存放在该变量中 1. 编程思路要处理字符, 必须使用字符型类型, 用 char 定义字符型变量 通过 'H'+32 可以得到字母 'H' 所对应的小写字母 2. 程序代码 #include <stdio.h> { char ch; ch='h'; ch=ch+32; printf("ch=%d,ch=%c\n",ch,ch); 3. 运行结果 4. 归纳分析 (1) 字符常量在内存中存放的是其 ASCII 码值, 所以像整型数据一样可以直接参与算术运算 如大写字母 'H' 在内存中存的是其 ASCII 码值 72, 因此 'H'+32 的值是 104, 即为小写字母 'h' 的 ASCII 码值 实际上, 所有大写字母和对应小写字母的 ASCII 码值都相差 32 (2) 按字符形式输出字符型数据时, 在 printf 函数中要使用格式说明符 %c, 在 10