第三单元 数据的输入、赋值处理与输出 从现在开始,将详细讲述C语言的方方面面。第一章中的所有疑惑,都将一一消灭。

Slides:



Advertisements
Similar presentations
第6章 基本的程序语句 6.1 基本数据类型及取值范围 6.2 标识符、变量和常量 6.3 基本运算符、表达式及运算的优先级
Advertisements

第三章 数据的使用.
课前回顾 数据类型 基本类型 构造类型 指针类型 空类型 常量与变量 常量及常量的类型 变量 标识符及有关规定 变量声明格式 赋值运算符.
C/C++语言程序设计 第二章 数据类型和表达式 龚尚福,贾澎涛主编 《C/C++语言程序设计》 西安电子科技大学出版社.
没有规矩,不成方圆。.
第二章 基本数据类型及运算 数据类型 常量与变量 不同类型数据间的转换 运算符和表达式.
民法总论 北京师范大学珠海分校 法律与行政学院 白 非.
C++程序设计 第二章 数据类型与表达式.
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语言中三种常见的基本类型及其使用方法 掌握常见的算术运算符和表达式的使用
走进编程 程序的顺序结构(二).
QQ: 李祥 QQ: 欢迎多种方式的学习交流,祝大家学有所成.
C语言程序设计 第四章 顺序程序设计.
C语言是结构化程序设计语言,提供了功能丰富的控制语句,本章开始陆续介绍C语言的控制语句:顺序结构、选择结构和循环结构。本章主要介绍三种结构化设计的基本概念,格式输入输出函数printf()和scanf(),字符输入输出函数putchar()和getchar()等内容,要求重点掌握顺序结构设计的基本思想及程序编写方法,熟练掌握常见输入、输出库函数的调用。
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
程序设计基础 第 二 章 谌 卫 军 清华大学软件学院 2008年秋季.
1.2 MATLAB变量表达式与数据格式 MATLAB变量与表达式 MATLAB的数据显示格式
C语言程序设计基础 刘新国.
第二章 Java语言基础.
第2章 数据类型、运算符和表达式.
程序设计基础 谭浩强 著 清华大学出版社.
C卓越工程师班 授课老师:龚涛 信息科学与技术学院 2016年9月 教材:《C程序员成长攻略》 网络课程网址:
C语言大学实用教程 第三章 简单的C程序设计 西南财经大学经济信息工程学院 刘家芬
第三章 顺序结构程序设计 主讲教师 贾月乐 电话:
目录 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语言的运算符和表达式
第三章 数据类型、运算符与表达式.
第4章 顺序程序设计.
第三章 顺序结构程序设计 计算机科学学院.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
C语言程序设计 主讲教师:陆幼利.
JAVA 程式設計 資訊管理系 - 網路組.
C语言程序设计.
C程序设计.
C程序设计.
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
第4章 Excel电子表格制作软件 4.4 函数(一).
C语言程序设计 李祥 QQ:
C++程式設計入門 變數與運算子 作者:黃建庭.
第九节 赋值运算符和赋值表达式.
第2章 基本数据及其运算 本章学习的目标: 1、掌握基本数据的各种表示,基本数据常数的书写方法;
第二章 类型、对象、运算符和表达式.
C语言程序设计 李祥 QQ:
第2章 数据类型与表达式 学习目的与要求: 掌握C 语言的基本数据类型及使用方法 掌握C程序中常用的运算符和表达式 了解数据类型的转换.
第二章 基本数据类型 ——数据的表示.
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
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 类型转换
基本知识 数据类型、变量、常量、运算符.
第二章 数据类型、运算符和表达式 §2.1 数据与数据类型 §2.2 常量、变量和标准函数 §2.3 基本运算符及其表达式 目 录 上一章
C/C++基礎程式設計班 C語言入門、變數、基本處理與輸入輸出 講師:林業峻 CSIE, NTU 3/7, 2015.
鸡兔同笼(续) ——选择结构.
第二章 数据类型与表达式 丘志杰 电子科技大学 计算机学院 软件学院.
本节内容 指针类型 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第二章 简单数据类型 §2.1 数据类型概述 §2.2 变量和常量 §2.3 简单数据类型 §2.4 简单数据类型的相互转换
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

晏文靖 yanwenjing@wxic.edu.cn 第三单元 数据的输入、赋值处理与输出 从现在开始,将详细讲述C语言的方方面面。第一章中的所有疑惑,都将一一消灭。 本章将讲述类型、变量、常量、数组等。这些概念的建立是进行进一步C语言学习的必要条件。同时,这些概念也是各种高级语言的共通概念。 晏文靖 yanwenjing@wxic.edu.cn

算术运算符 +,-,*,/ 加、减、乘、除运算 四则混合运算中,先算乘除,后算加减, 按从左向右的顺序计算,左结合 % 求余运算 只能整数求余

现场编程 编程将1000分钟转换成小时和分钟进行输出。

常用的标准数学函数 函数名 功 能 sqrt(x) 计算x的平方根,x应大于等于0 exp(x) 计算ex的值 fabs(x) 功 能 sqrt(x) 计算x的平方根,x应大于等于0 exp(x) 计算ex的值 fabs(x) 计算x的绝对值 pow(x,y) 计算xy的值 log(x) 计算lnx的值 sin(x) 计算sinx的值,x为弧度值 log10(x) 计算lgx的值 cos(x) 计算cosx的值,x为弧度值

现场编程 已知三角形的三边长 a=5,b=6,c=7 要求用下述公式计算三角形的面积: sqrt(s(s-a)(s-b)(s-c)) 其中 s=(a+b+c)/2

增一和减一运算符 n++,n--,++n,--n ++让参与运算的变量加1,--让参与运算的变量减1 m = n++; 等价于 m=n; n++; m = ++n; 等价于

5 6 已知 n=5 (1)m=n++; m=? n=? (2)m=++n; m=? n=? 6 6

赋值运算符 简单的赋值就是把一个表达式的值赋给一个变量。 例如: i = 5 i = j + 1

赋值运算符 在赋值符“=”之前加上其它运算符,可以构成复合的运算符。 下面两个语句是等价的 +、-、*、/、%运算符都可以按此种方式处理 i = i + 2; i += 2; +、-、*、/、%运算符都可以按此种方式处理

逗号运算符 表达式1, 表达式2, ….., 表达式n 例如 整个逗号表达式的值为29。 a=4*6,b=a+5 整个逗号表达式的值为29。 多数情况下,并不使用整个逗号表达式的值,更常见的情况是要分别得到各表达式的值 主要用在循环语句中,同时对多个变量赋初值等 for (i = 0 , j = 0; i < j; i++, j++)

类型转换 高 double float long unsigned 低 int char, short 在进行赋值操作时,会发生类型转换 在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。 高 double float long unsigned 低 int char, short

自动类型转换 同种数据类型的运算结果,还是该类型 不同种数据类型的运算结果,是两种类型中取值范围更大的那种 long double > double > float > long > int > short > char 把数据赋值给另外一种类型变量也会发生自动类型转换 从小到大,顺利转换 从大到小,可能丢失信息(好的编译器会发出警告)

类型转换 将取值范围小的类型转为取值范围大的类型是安全的 反之是不安全的

类型强转(Casting) 可以通过“(类型)表达式”的方式把表达式的值转为任意类型 若x原为实型变量且值为2.6,在执行 i=(int)x 后得到一个整数2,并把它赋给整型变量i,但x仍为实型,值为2.6。

优先级 ( ) ++ -- + - * / % + - = += -= *= /= %= ,

优先级 能背下优先级表的人凤毛麟角 用括号来控制运算顺序更直观、方便,并减少出错的概率

结合性 多数运算符为左结合 少数为右结合: 一元运算符 赋值运算符 条件运算符

输入输出函数 如何进行数据的输入输出? 输入:从标准输入设备上输入数据到计算机内存 输出:将计算机内存中的数据送到标准输出设备 C语言中输入输出操作通过调用标准库函数来实现

格式输出函数 输 函数名 出 表 列 格式说明 普通字符 格式输出函数 printf(格式控制字符串, 输出项表列); 输出若干个任意类型的数据 printf("a=%d b=%d", a, b); 格式说明 输 出 表 列 函数名 普通字符

printf格式字符 d 以带符号十进制整数输出 o 以八进制无符号整数输出(无前导0) x 以十六进制无符号整数输出(无前导0x) u 以十进制无符号整数输出 c 以字符形式输出单个字符 f 以小数形式输出浮点数(6位小数) e 以标准指数形式输出(6位小数) g 选用%f,%e中输出宽度较小的一种格式 s 输出一个字符串

printf附加格式说明符 l 长整型整数,加在d、o、x、u前 L long double型数,加在f、e、g前 m 表示数据占用的最小宽度 数据宽度大于m,按实际宽度输出 数据宽度小于m时,补空格 n 对实数表示输出n位小数 对字符串表示最多输出的字符个数 - 改变输出内容的对齐方式 缺省为右对齐

例 #include <stdio.h> main() { float f1 = 100.15799, f2 = 12.55, f3 = 1.7; int n1 = 123, n2 = 45, n3 = 6; printf("printf WITHOUT width or precision specifications:\n"); printf("%f\n%f\n%f\n", f1, f2, f3); printf("%d\n%d\n%d\n", n1, n2, n3); printf("printf WITH width and precision printf("%5.2f\n%6.1f\n%3.0f\n", f1, f2, f3); printf("%5d\n%6d\n%3d\n\n", n1, n2, n3); }

格式输入函数 scanf("%d,%d”, &a,&b); 格式输入函数 scanf(格式控制字符串, 地址表列); 非格式字符 格式说明

scanf格式字符 d 以带符号十进制形式输入整型数据 o 以八进制无符号形式输入(无前导0) x 以十六进制无符号形式输入(无前导0x) e 以标准指数形式输入 s 输入字符串,以非空字符开始,遇第一个 空白字符结束

scanf附加格式说明符 l 加在d、o、x、u前:输入长整型 加在f、e 前:输入双精度型 L 加在f、e 前:输入long double型 h 加在d、o、x 前:输入短整型 m 表示数据占用的宽度 * 本输入项在读入后不赋给相应的变量

格式输入函数 输入数据时,遇以下情况时该数据认为结束 遇空格、回车、TAB 键 遇宽度 :%3d 遇非法输入

输入数据的格式控制 12 34↙ 问题1:当要求程序输出结果为 a = 12, b = 34 时,用户应该如何输入数据? #include <stdio.h> main() { int a, b; scanf("%d %d", &a, &b); printf("a = %d, b = %d\n", a, b); } 12 34↙ 问题1:当要求程序输出结果为 a = 12, b = 34 时,用户应该如何输入数据?

输入数据的格式控制 问题2:当限定用户输入数据以逗号为分隔符,即输入数据格式为: 12, 34↙ 时,应修改程序中的哪条语句?怎样修改? #include <stdio.h> main() { int a, b; scanf("%d %d", &a, &b); printf("a = %d, b = %d\n", a, b); } scanf("%d,%d", &a, &b); 问题2:当限定用户输入数据以逗号为分隔符,即输入数据格式为: 12, 34↙ 时,应修改程序中的哪条语句?怎样修改?

输入数据的格式控制 #include <stdio.h> main() { int a, b; a = 12, b = 34↙ scanf("%d %d", &a, &b); printf("a = %d, b = %d\n", a, b); } a = 12, b = 34↙ 问题3:语句scanf("%d %d", &a, &b);修改为scanf("a = %d, b = %d", &a, &b); 时,用户应该如何输入数据?

输入数据的格式控制 #include <stdio.h> main() { int a, b; scanf("%d %d", &a, &b); printf("a = %d, b = %d\n", a, b); } scanf("%d%*c%d", &a, &b); 问题4:设计程序使得用户可以以任意字符(回车、空格、制表符、逗号、其它)作为分隔符进行数据的输入

例 #include <stdio.h> main() { int a, b; printf("Please input a and b:"); scanf("%2d%*2d%2d", &a, &b); printf("a=%d, b=%d, a+b=%d\n",a,b,a+b); } Please input a and b: 123456↙ a=12, b=56, a+b = 68

例 #include <stdio.h> main() { int a, b; printf("Please input a and b:"); scanf("%2d%*2d%2d", &a, &b); printf("a=%d, b=%d, a+b=%d\n",a,b,a+b); } Please input a and b: 12345a↙ a=12, b=5, a+b = 17

这一章我们学习了 格式输入函数scanf() 运算符 算术运算符、增一/减一运算符、赋值运算符、类型强转运算符、逗号运算符 格式输出函数printf() 格式输入函数scanf() 格式控制问题——难点

练习题 若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是 A)read(a,b,c); B)scanf(“ %d%d%d” ,a,b,c); C)scanf(“ %D%D%D” ,&a,%b,%c); D)scanf(“ %d%d%d”,&a,&b,&c); 若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是 scanf(“ %f %f %f” ,&a,&b,&c); A)10 B)10.0,22.0,33.0 C)10.0 D)10 22 22 22.0 33.0 33 33 若从终端输入以下数据,要给变量c赋以283.19,则正确的输入语句是 A)scanf(“ %f”,c); B)scanf(“ %8.4f”,&c); scanf(“ %6.2f”,&c); D)scanf(“ %f”,&c);

练习题 C语言中运算对象必需是整型的运算符是 A)% B)/ C)! D)* 对以下数学式 a.b c int c1=1,c2=2,c3; c3=c1/c2; A)0 B)1/2 C)0.5 D)1

为表示关系x>=y>=z, 应使用的C语言表达式是 A) (x>=y)&&(y>=z) B) (x>=y)AND (y>=z) C) (x>=y>=z) D) (x>=y)&(y>=z) 设 a、b 和c 都是int 型变量,且a =3,b=4, c=5;则以下的表达式中,值为0的表达式是 A)a&&b B)a<=b C)a||b+c&&b-c D)!((a<b)&&!c||1) 将下列数学式改写成C语言的关系表达式或逻辑表达式A)______________和 B)__________ A) a=b 或 a<c B) |x|>4 请写出与以下表达式等价的表达式A)_________B)__________. A) !(x>0) B) !0

若有以下程序段,其输出结果是 int a=0,b=0,c=0; c=(a-=a-5),(a=b,b+3); A)3,0,-10 B)0,0,5 C)-10,3,-10 D)3,0,3