C程序设计 第三章 简单的c程序——顺序结构

Slides:



Advertisements
Similar presentations
第一章 C语言概述 计算机公共教学部.
Advertisements

没有规矩,不成方圆。.
C语言实验 第一课 标题:学号+姓名.
第三章 C语言基础 学习目标: 熟练掌握:C语言的基本数据类型、运算符及表达式 掌握:常见的输入、输出函数使用方法;
第3章 顺序结构程序设计 本章要点: 格式化输出函数──printf() 格式输入函数——scanf() 字符输出函数——putchar()
第3章 最简单的C程序设计 3.1 顺序程序设计举例 3.2 数据的表现形式及其运算 3.3 C语句 3.4 数据的输入输出.
数据类型 第3章 3.1 C数据类型概述 3.2 常量 3.3 变量 3.4 基本输入与输出.
基础篇 基础知识 —C语言程序设计 学习目标 掌握C语言中三种常见的基本类型及其使用方法 掌握常见的算术运算符和表达式的使用
走进编程 程序的顺序结构(二).
C语言程序设计 第三章 数据类型、运算符与表达式
QQ: 李祥 QQ: 欢迎多种方式的学习交流,祝大家学有所成.
C语言程序设计 第四章 顺序程序设计.
C语言是结构化程序设计语言,提供了功能丰富的控制语句,本章开始陆续介绍C语言的控制语句:顺序结构、选择结构和循环结构。本章主要介绍三种结构化设计的基本概念,格式输入输出函数printf()和scanf(),字符输入输出函数putchar()和getchar()等内容,要求重点掌握顺序结构设计的基本思想及程序编写方法,熟练掌握常见输入、输出库函数的调用。
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第二章 基本数据类型与输入输出.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
C语言程序设计基础 刘新国.
第二章 Java语言基础.
第2章 数据类型、运算符和表达式.
程序设计基础 谭浩强 著 清华大学出版社.
C语言大学实用教程 第三章 简单的C程序设计 西南财经大学经济信息工程学院 刘家芬
第三章 顺序结构程序设计 主讲教师 贾月乐 电话:
第3章 顺序结构程序设计 为了让计算机处理各种数据,首先就应该把源数据输入到计算机中;计算机处理结束后,再将目标数据信息以人能够识别的方式输出。C语言中的输入输出操作,是由C语言编译系统提供的库函数来实现。 3.1 格式化输出——printf()函数 3.2 格式化输入——scanf()函数.
目录 3.1结构化程序设计 3.2传统流程图及N-S结构化流程图 3.3C语句概述 3.4赋值语句 3.5数据输入输出函数调用语句
3 数据类型、运算符 和表达式.
第二章 数据类型、运算符与表达式.
第三章 数据类型、运算符与表达式.
2.1 C语言的数据类型 2.2 常量与变量 2.3 变量赋初值 2.4 各类数值型数据间的混合运算 2.5 C语言的运算符和表达式
第三章 数据类型、运算符与表达式.
第2章 数据的存储与运算 2.1 数据在计算机中是怎样存储的 2.2 整型数据的运算与分析 2.3 实型数据的运算与分析
第4章 顺序程序设计.
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
第三章 顺序结构程序设计 计算机科学学院.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
C语言程序设计 主讲教师:陆幼利.
C语言概述 第一章.
第1讲 C语言基础 要求: (1) C程序的组成 (2) C语言的标识符是如何定义的。 (3) C语言有哪些基本数据类型?各种基本数
目录 2.1数据类型 2.2常量 2.3变量 2.4库函数 2.5运算符及表达式 1.
第3章 變數、算術運算、 數學函數及輸入輸出.
C程序设计.
程序设计基础A(C语言) 主讲教师: 许 康 教师主页:
第 二 章 数据类型、运算符与表达式.
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
第4章 Excel电子表格制作软件 4.4 函数(一).
C语言程序设计 李祥 QQ:
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第3章 数据类型、运算符与表达式.
第九节 赋值运算符和赋值表达式.
第2章 数据类型、运算符与表达式 本章要点: 基本数据类型 常量和变量 算术运算符和算术表达式 关系运算符和关系表达式
第2章 基本数据及其运算 本章学习的目标: 1、掌握基本数据的各种表示,基本数据常数的书写方法;
第二章 类型、对象、运算符和表达式.
C语言程序设计 李祥 QQ:
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
2.6 字符型数据 一、 字符常量 1、字符常量的定义 用一对单引号括起来的单个字符,称为字符常量。 例如,‘A’、‘1’、‘+’等。
第4章 顺序结构程序设计 为了让计算机处理各种数据,首先就应该把源数据输入到计算机中;计算机处理结束后,再将目标数据信息以人能够识别的方式输出。C语言中的输入输出操作,是由C语言编译系统提供的库函数来实现。 4.1 格式化输出——printf()函数 4.2 格式化输入——scanf()函数.
C程序设计 实验二 数据类型、运算符和表达式 第6讲
第3章 最简单的C程序设计 3.1 顺序程序设计举例 3.2 数据的表现形式及其运算 3.3 C语句 3.4 数据的输入输出.
第二章 Java基本语法 讲师:复凡.
程序设计基础A(C语言) 第一章 C语言概述 主讲教师: 许 康
Chap 6 数据类型和表达式 6.1 数据的存储和基本数据类型 6.2 常量和变量 6.3 数据的输入和输出 6.4 类型转换
复习 标签(label)、文本框(text)控件 按钮:点击事件
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
基本知识 数据类型、变量、常量、运算符.
第二章 数据类型、运算符和表达式 §2.1 数据与数据类型 §2.2 常量、变量和标准函数 §2.3 基本运算符及其表达式 目 录 上一章
C/C++基礎程式設計班 C語言入門、變數、基本處理與輸入輸出 講師:林業峻 CSIE, NTU 3/7, 2015.
鸡兔同笼(续) ——选择结构.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
第二章 简单数据类型 §2.1 数据类型概述 §2.2 变量和常量 §2.3 简单数据类型 §2.4 简单数据类型的相互转换
Presentation transcript:

C程序设计 第三章 简单的c程序——顺序结构 主讲教师: 鲁 萍 西安建筑科技大学 理学院

第三章 简单的C程序设计——顺序 3.1 顺序程序设计举例 3.2 数据的表现形式及其运算 3.3 C语句——赋值语句 3.1 顺序程序设计举例 3.2 数据的表现形式及其运算 常量、变量 整形、字符型、浮点型 运算符及表达式 3.3 C语句——赋值语句 3.4 数据的输入和输出 scanf 和 printf getchar 和 putchar 小 结 习 题

顺序程序设计举例 A0301 华氏温度(如68℉)转为摄氏温度(如20℃) #include<stdio.h> 输入 f 的值 int main() { float f,c; f=68.0; c=( 5 / 9 ) * ( f – 32 ); printf("f=%f\nc=%f\n",f,c); return 0; } 输入 f 的值 输出 c 的值 5.0 F=68.000000 C=0.000000 C=20.000000

顺序程序设计举例 A0302例: 根据圆半径,求圆周长和圆面积。 键盘输入 #define PI 3.1416 int main() { float r, a,b; r=2; a=2*PI*r; b=PI*r*r; printf(“半径=%f\n周长= %f\n面积= %f\n", r, a, b); return 0; } 输入半径r 的值 周长 a=2*pi*r 面积 b=pi*r*r scanf("%f",&r); 输出 a、b 的值 半径=2.000000 周长=18.849600 面积=28.274400

3.2 数据的表现形式及其运算 一、数据的概念 在计算机科学中,数据是指能由程序处理的对象。 姓名 Alice 性别 F 年龄 20 英语 80 数学 85 平均 82.5 字符串 字符 整型 实型 一、数据的概念 在计算机科学中,数据是指能由程序处理的对象。 日常生活中的数字、字符、图形图象及声音等,在计算机中均作为数据看待。 二、数据的类型 在高级语言中,每一个数据都属于一个特定的类型。 不同类型的数据的表示、存储及操作不相同。

3.2.1 常量与变量 3.3.1 常量和符号常量 1、常量: 在程序运行过程中,其值不能被改变的量。 常量说明关键字:const。 2、常量的分类: 1)整型常量。如:1234,56 2)实型常量。如:123.23 3)字符常量。如:‘A’,‘a’,‘m' 4)字符串常量。如:"A","China" 5)转义字符。如:'\n','\t','\123','\xF9' 6)符号常量。如:#define PI 3.1415926 #define N 30

转义字符 例:在屏幕上输出一个笑脸(ASCII码值为2) #include<stdio.h> void main() { printf("%c\n", 2); /*输出"笑脸"字符*/ } 通过程序,理解转义字符,同时 上机复习 程序调试方法1 通过程序调试方法1,学习其他转义字符 增加一个转义字符的图

符号常量 #include<stdio.h> 概念:用一个标识符表示常量 #define PI 3.1416 main() { float r,area; printf(" please enter r:"); scanf("%f",&r); area=PI*r*r; printf("The area is %f", a); } 概念:用一个标识符表示常量 #define 标识符 常量表达式 例: #define PI 3.1415926 注意:1)标识符一般用大写 2)不能给符号常量赋值 例:PI=6; 错误 常用于: (1) 把有意义的常数定义为符号常量 (2)在程序中多次出现的常数,定义为符号常量 优点:含义清晰;一改全改

符号常量的应用 例2.3 录入50个学生的成绩,统计100~90,89~80,79~70,69~60,59~0个分数段学生的人数,并显示统计结果(统计结果 记为count) 30 #define N 50 30 S1.1:使i=1 S1.2:输入 ni 学生的成绩 S1.3:i=i+1 S1.4:如果i≦50,执行S1.2 自顶向下: 1: 录入50个学生的成绩 2:统计个分数段学生的人数 3:显示统计结果 N 30 S2.1:使i=1 S2.2:判断ni学生的属于哪个分数段,该分数段人数+1 S2.3:i=i+1 S2.4:如果i≦50,执行S2.2 30 N S3.1:使i=1 S3.2:显示counti S3.3:i=i+1 S3.4:如果i≦5,执行S3.2

3.2.2 标示符与变量 1、变量 变量:在程序执行过程中其值可以改变的存储单元,该存储单元的名字称为变量名。 变量有不同的类型,存放不同类型的数据。 注意:变量要 先定义再使用 定义变量 : 类型 变量名表; a b c 变量名 变量值 int a,b,c; a=3; b=8; c=a+b; a=5; 变量是程序在运行期间用来存放数据的装置[容器],当程序将一个数据放入变量时,变量中原来存放的数据被新的数据取代,而当从变量中取出一个数据时,变量中的数据不会发生变化 存储单元 3 5 8 11

变量的命名规则 标示符 (1)标示符是以字母或下划线开头,由字母、数字及下划线等组成的字符序列,如:abc,_x1,AB67,NAME2; 用于命名程序中的实体对象(如变量,符号常量函数,数组等) (1)标示符是以字母或下划线开头,由字母、数字及下划线等组成的字符序列,如:abc,_x1,AB67,NAME2; (2)序列长度最大值依编译系统而定; (3) 区分大小写字母,如 abc 和Abc是不同的变量 (4)不允许使用关键字作变量名。 例: 123d r +43 auto 5A *2 #88 (错误) _123d r_43 Auto (正确)

C语言的数据类型图 构造类型 数组 结构(struct) 共用体(union) 其它类型 指针(point) 空类型(void) 基本数 数值型 整 型 基本型(int) 短整型(short) 长整型(long) 无符号型(unsigned) 浮点型 单精度(float) 双精度(double) 长双精度(long double) 枚举型(enum) 字符型(char) 字符 字符串 在C语言中,数据类型用相应的关键字表示

3.2.3 整型 类型 存储大小 取值范围 int 2字节 -215~215-1 -32768 ~ 32768 类型 存储大小 取值范围 int 2字节 -215~215-1 -32768 ~ 32768 short 2字节 -215~215-1 -32768 ~ 32768 long 4字节 -231~231-1 long long 8字节 -263~263-1 1 15 身份证号,学号? ------没有负数! 数值位 符号位

C语言的unsigned和signed数 符号位 数值位 1 15 对整型和字符型 1、signed:有符号数 可以存放正数和负数 2、unsigned:无符号数 只能存放正数 (实数没有unsigned和signed的区分) 如:身份证号,学号等。 取消符号位,与右边的各位一起用来表示数值本身。 数值位 16 整型默认有符号型

3.2.3 整型 类型 存储大小 取值范围 int 16bit -215~215-1 -32768 ~ 32768 类型 存储大小 取值范围 int 16bit -215~215-1 -32768 ~ 32768 shortint 16bit -215~215-1 -32768 ~ 32768 long int 32bit -231~231-1 unsigned int 0~216-1 0 ~ 65535 unsigned short int 0~216-1 0~ 65535 unsigned long int 0~232-1

3.2.4 字符型数据 A0303 例:字符数据的算术运算。 int main() { char c1,c2; c1='a'; c2=98; printf("%c %c\n",c1,c2); printf("%d %d\n",c1,c2); return 0; } 字符变量:关键字 char ,占1字节 字符常量:用单引号括起来的单个字符 (1)可以是转义字符 \n (2)存储: 字符的ASCII码 (3)输出: 整数 或 字符 (4)允许对字符进行算术运算(即对ASCII码值进行算术运算) 本页重点: (1)字符变量的定义及说明 (2)字符变量的存储及赋值 c1 c2 变量名 变量值 存储单元 97 a 98

3.2.4 字符型数据 A0303例:字符数据的算术运算。 int main() { char c1,c2; c1='a'; c2=98; 字符 ASCII码 a 97 b 98 c 99 A0303例:字符数据的算术运算。 int main() { char c1,c2; c1='a'; c2=98; printf("%c %c\n",c1,c2); printf("%d %d\n",c1,c2); return 0; } 以字符方式输出 变量值 c1 c2 变量名 c1+1; 'a'+1; 存储单元 97 a 本页重点: (1)字符和ASCII的关系 (2) %c 和 %d 98 以整数方式输出 运行结果: a b 97 98

3.2.4 字符型数据 课堂练习:给定一个小写字母,输出大写字母。 #include <stdio.h> int main() { char c1,c2; c1=‘a’; c2=c1-32; printf("%c",c2); return 0; } 基于前两页PPT知识,课堂完成本页例题 要求: (1) 观察ASCII码表,找出大写和小写字符的转换规律 (2) 画出流程图 (3) 写出程序 运行结果: Please input a char: a (输入) A (输出)

3.2.5 浮点型数据 实型变量分为三种: 1、单精度:float(有效数字7位) 2、双精度:double(有效数字16位) 3、长双精度:long double(有效数字19位) 。

3.4.2 舍入误差 return 0; A0304例:数据有效长度 int main() { float a,b; b=a+20; printf("%f\n",b); return 0; } 期望:12345678920.0000000 实际:12345678868.000000 double 错误原因: float有效数字7位,后面的数字无意义。 如何得到正确计算结果?

数据在内存中的存储方式 1.内存单元的地址: 内存单元的编号,与变量名对应。 2.内存单元的内容:变量的值。 例: 对如下定义: int a,b; char c; float x; 变量a,b,c,x的内存分配情况: a b x c

基本数据类型练习 1.以下正确的字符常量是( ) A) ‘A’ B)’\398’ C)"A" D)’\xgh’ 1.以下正确的字符常量是( ) A) ‘A’ B)’\398’ C)"A" D)’\xgh’ 2.以下正确的整数常量是( ) A)082 B)0xhf C)654 D)9.0 3.以下是正确的实型常量是( ) A)9.0 B)0.5e C)1.2e+2.6 D)e-2 4.设有char a= ‘a’;int i=2;printf("%c",a+i)的结果为 : A)‘c’ B)‘d’ C)‘r’ D)'g‘ 5、以下转义字符用于换行的是( ) 。 A)'\r' B)'\t' C)'\n' D)'\\'

3.2.7 运算符和表达式 1 基本算数运算符 + (加), - (减法/取负), * (乘), / (除), %(模运算,即求余数) 3.2.7 运算符和表达式 1 基本算数运算符 + (加), - (减法/取负), * (乘), / (除), %(模运算,即求余数) 运算符的优先级为: () *,/ 高 低 % +,-

关于除法运算"/"的说明 a/b: ① a,b 都是整数,其商取整数,小数部分舍弃 例: 5 / 2 = 2 结果取整商值 例: 5 / 2 = 2 结果取整商值 ‘a’/2=48  97/2 的整商值 ② a,b其一是实型,另一个自动转换为实型 例如:5. / 2 = 2.5 ; 5 / 2. = 2.5 例如:1 / 2 = 0 ; 1 / 2. = 0.5

关于求余数运算符"%"的说明 a%b : 求a除以b的余数 。 ① a,b均为整型,或者单字符数据 例: 5 % 2 = 1 ‘a’%2=1  97%2 5. 0% 2 错

自增(++)、自减(- -)运算实例 } ++i  i=i+1,使i的值增1 --i  i=i-1,使i的值减1 A0305例:自增自减运算符 int main(){ int a,b,c,d; a=5; b=5; c=++a; d=b++; printf(" c=%d\n", c); printf(" d=%d\n", d); printf(" a=%d,b =%d \n",a,b); return 0; } 先将a值自加1,再将增加后的a值赋值给c 先将b的值赋给d,然后b再自加1 输出结果: c=6 d=5 a=6, b=6

自增(++)、自减(- -)运算 2、用法与运算规则 (1)前置运算:++i、--i;即先增减、后运算 先使 i 增(减)1, 再以增、减后的值参与其它运算 (2)后置运算:i++、i--。即先运算、后增减 变量先参与其它运算, 然后再使变量的值增、减1

【自增、自减运算的几点说明】 1) ++ 、--只能用于变量,不能用于常量和表达式。 例1:5++、--(a+b) 错误 2)其结合方向是从右到左,注意前置、后置问题。 例2:int a=5,b; b=-a++; 运算结果: a=6 b=-5 (a++: 后置运算,先引用变量的值,然后变量值加1) 3)在表达式中,避免这种用法 x+++x+++x++

算术表达式 例:a /* 简单表达式*/ 2 /* 简单表达式*/ (x + y) / 2 – 1 /*复杂算术表达式 */ 2 /* 简单表达式*/ (x + y) / 2 – 1 /*复杂算术表达式 */ (1)概念:用运算符和括号将运算对象(常量、变量和函数等)连接起来的、符合语法规则的式子,称为表达式。 (2)表达式求值:按运算符的优先级高低次序执行 例:设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式结果不同的是() A. (a+b)*h/2 B. (1/2)*(a+b)*h C. (a+b)*h*1/2 D. h/2*(a+b)

算术表达式 常用函数: 1)幂次方用函数pow() 3)平方根用函数sqrt()表示 使用以上数学函数需要#include<math.h> 例1: 代数式 3x3+x-2 算术表达式:3*pow(x,3)+x-2 例2 代数式 算术表达式:a/2-(6*y)/(5*x)

3.7 不同类型数据之间的转化 1.自动转化 2.类型强制转化 例: int i; float f; double d; long e 如何计算: 10+’a’+i*f-d/e ? 1.自动转化 2.类型强制转化

3.7 不同类型数据之间的转化 混合运算的转化规则 转化规则: 运算符两侧的操作数的数据类型不同,则系统 "先转换、后运算" ,首先将数据自动转换成同一类型,然后在同一类型数据间进行运算。 double ← float ↑ long unsigned int ← char , short 1) ← 表示必须的转换。char和short 型必须转换成 int 型,float型必须转换成double型。 2) ↑表示不同类型的转换方向。

类型强制转化和自动转化实例 int i; float f ; double d ; long e 10+’a’+i*f-d/e 计算机从左到右扫描 1)10+’a’ 10+97=107 i*f i, f 转为double运算 107转为double+i*f e转为double 上述类型转换为系统自动进行。 double ← float ↑ long unsigned int ← char , short

将3.5转化为整型数赋值给y,但x本身的类型和其值未改变 数据类型强制性转化 强制转换:转化为为指定的数据类型。 格式: (要转换成的数据类型)(被转换的表达式) A0306 例:取整运算 main() { float x=3.5; int y; y=(int)x; printf("y=%d",y) ; printf("x=%f",x) ; } 将3.5转化为整型数赋值给y,但x本身的类型和其值未改变 y=3 x=3.5 此处补充 关于 "四舍五入" int(x+0.5) 强制转换类型得到的是一个所需类型的中间量,原表达式类型并不发生变化。

数据类型强制性转化说明 (1)类型名称必须用()括号括起来 (2)强制转换类型得到的是一个所需类型的中间量,原表达式类型并不发生变化。 (3)当被转换的表达式是一个简单表达式(如简单变量)时,外面的一对圆括号可以缺省。 (double)a (float)5/2 (float)(5/2)  (double)(a) (float)(5)/2 将5转换成实型再除以2;(=2.5) (float)(5/2) 将5整除2的结果转换成实型2.0

算数运算符练习(1) 1.设 int x,y=3;执行x=y++之后,x,y的值分别为: A)3,5 B)4,5 C)3 ,4 D)4,4 2.设有int m,i=5;执行m=++i之后,m,i的值分别为: A)5,5 B)5,6 C)6,6 D)6,5 3. 表达式7%5的值为: ( ) A)1 B) 2.5 C) 2 D) 0 4.设有a=2,b=5,x=3.5;表达式(float)a+b/2+(int)x%2的结果值为:( ) A)3 B)5 C)5.0 D)7

算数运算符练习(2) 5、float x=3.5,y=3.6,则表达式(int)(x+y)的结果值为:( ) A)6 B)4 C)3 D)7 7、设有char a= 'A';int i=a/2;printf("%d",i)的结果为: ( ) A)65 B)66 C)32 D)67

3.3 C语言的语句 1.控制语句: (1)选择结构控制语句: if()~else~, switch()~ (2)循环结构控制语句:do~while(), for()~, while()~, break, continue (3)其它控制语句: goto, return 2. 函数调用语句:由一次函数调用加一个分号构成。 例如,printf("This is a C function statement."); 3. 表达式语句:表达式后加一个分号构成。 例如: num=5; 是一个赋值语句。 4.空语句:仅由一个分号构成,不执行任何操作。 例: ;

3.2 C语言的语句 5. 复合语句:由大括号括起来的一组语句构成。 例如: main() { …… {……} /*复合语句。。*/ …… { …… {……} /*复合语句。。*/ …… } 注意:没有分号

赋值语句及赋值运算符 赋值运算符: = 变量 = 表达式 将表达式的值赋给变量 例1: t=x+5 p=q=r=9 赋值运算符: = 变量 = 表达式 将表达式的值赋给变量 例1: t=x+5 p=q=r=9 x=(y=1)-(z=2) P=9 x=-1 注意:赋值运算符按自右而左的结合顺序 例:float f; f=23; /*计算机中f=23.00000*/ 注意:将右边表达式类型转化为左边变量的类型

复合赋值运算 += -= *= /= %= <<= >>= &= ^= |= 例: a+=2  a=a+2 += -= *= /= %= <<= >>= &= ^= |= 例: a+=2  a=a+2 a*=3  a=a*3 x+=y+7  x=x+(y+7) a*=5+6  a=a*(5+6) a/=3*5  a=a/(3*5) 运算时要把整个表达式当做一个整体

3.4 数据输出/输入 1)C语言中本身不提供输入/输出语句,所有的输入/输出操作都是由函数来实现的。 printf, scanf, putchar, getchar 2)使用输入输出库函数时,必须 #include <stdio.h>

3.4 数据的输入输出 A0307例: 求 ax2+bx+c=0 方程的根。设b2-4ac>0 a, b, c 由键盘输入 #include<math.h> int main() { float a,b,c,disc,x1,x2,p,q; printf("输入a b c : "); scanf(“%lf%lf%lf”,&a,&b,&c); disc=b*b-4*a*c; p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf("x1=%7.2f \nx2=%7.2f\n", x1,x2); return 0; } 计算disc= b2-4ac 计算 p 和 q 本例题 复习: (1)算术表达式的C语言表示 (2) math.h (3) 键盘输入,输出 延伸:控制 小数点后位数 引出:输入输出函数及格式 讲解方式: 先在黑板上分析 二元一次方程的求根过程,给出p和q的定义 再演示幻灯片上的算法 计算根 x1 和 x2 输出x1,x2

printf 函数输出数据 例: printf("max= %d",c); printf("sum=%d " , a+b); 功能:向屏幕输出一个或 多个任意类型的数据。 语法: printf( 格式控制字符串, 输出项表列); 整形 实型 字符型 多用于提示信息 例: printf("max= %d",c); 原样输出的字符串 格式字符串 输出列表: 变量或表达式 printf("sum=%d " , a+b); printf("The area is %f " , a); printf("%c %c\n",c1,c2); printf("Please input a char:");

printf 函数输出数据 i=2,c=H,x=3.140000 输出结果 %d, 按整型数的实际长度输出十进制数 (1) 常用格式符之一 %s, 输出一个字符串 A0308 例:输出不同类型的数据 #include<stdio.h> void main(){ int i=2; char c= ′H ′; float x=3.14; printf("i=%d,c=%c,x=%f\n", i,c,x); } 输出结果 i=2,c=H,x=3.140000

printf格式字符说明 %f, 不指定字段宽度,整数全部输出,并输出6位小数 %m.nf, 指定输出共m列,其中小数n位 运行结果 333333.328125 例: 输出实数 #include<stdio.h> void main() { float x,y; x=111111.111; y=222222.222; printf(" %f \n", x+y); } 只有前7位有效 %8.1f 运行结果 333333.3

scanf函数输入数据 功能:从标准输入设备中读字符串 语法:scanf(控制字符串,参数1,参数2,…) 例:scanf("%d,%d",&a,&b); 1) 输入的数据存放在参数列表中,参数必须是地址(&变量) 若控制字符串中包含普通字符,则输入时必须与其对应 格式说明, 用"%d %d"格式输入时,不能用逗号作为数据分割符,可以用回车和tab键

输入函数 scanf 1.输入变量前要加符号& 2.输入函数格式要求严格 3.类型必须匹配 4.控制串中的普通字符必须原样一起输入 用系统默认的分隔符: 回车、tab键、空格 例452: int a,b; scanf("%d,%d",&a,&b); printf("a=%d,b=%d",a,b); 例452: int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d",a,b); float f f f f 输入: 100 , 200 输出: a=100 ,b=200 输入: 100 □ 200 输出: a=100 ,b=200 1.输入变量前要加符号& 2.输入函数格式要求严格 3.类型必须匹配 4.控制串中的普通字符必须原样一起输入 例如:scanf("a=%d,b=%d",&a,&b); 输入 a=2,b=3。

3.4.5 字符数据输出/输入 A0309例:从键盘输入一个小写字母,输出大写字母。 #include <stdio.h> int main() { char a,b; printf("Please input a char:"); scanf("%c",&a); /*键盘输入一个字符*/ b=a-32; printf("%c\n",b); /*屏幕输出一个字符*/ return 0; } a=getchar(); putchar(b); putchar(‘\n’); 运行结果: Please input a char: a (输入) A (输出)

字符的输入输出getchar和putchar 1. 单个字符的输出──putchar(c)函数 格式: putchar(c); 输出c: 字符变量、常量、转义字符 例: putchar(c); putchar(‘a’); putchar(‘\n’); 2. 单个字符的输入──getchar()函数 函数的格式: getchar(); 该函数没有参数 从键盘上输入一个字符,通过返回值带回程序。 ▲程序执行到该函数将暂停,等待从键盘输入数据 例:c= getchar();

3.4.5 字符数据输出/输入 A0310:从键盘输入三个字符,原样输出 #include <stdio.h> int main() { char a,b,c; printf("请输入三个字符: "); a=getchar(); b=getchar(); c=getchar(); putchar(a); putchar(b); putchar(c); putchar('\n'); return 0; }

小结——数据 数据类型 数据运算 数据 输入输出 %d, 整型 char c1, c2; 变量 常量 123 ‘a’ 123.5 整形: int,long int 字符型: char 浮点型: float , double c1 c2 变量名 数据类型 变量值 存储 单元 97 a 98 数据运算 + - * / % ++ -- = %d, 整型 %f, 浮点型 %c, 字符型 数据 输入输出 printf scanf 例: printf("max= %d",c); 例: scanf("%d,%d",&a,&b); putchar getchar 例: putchar(‘a’); putchar( c1); 例: c2=getchar();

习题 B0301 习题3.1 假如我国国民生产总值的年增长率为9%,计算10年后,我国国民生产总值与现在相比增长多少百分比。计算公式为 p=(1+r)n, 其中 r为年增长率,n为年数,p为与现在相比的倍数。 B0302 习题3.6 编写程序将“China”译成密码。规则:用字母后第4个字母代替原字母。例如“E” 代替“A”。 B0303 键盘输入三角形三边长,求三角形面积。 上机练习习题3.4