c语言第二章-项目二
全国计算机等级考试实用应试教程二级C语言 第2章 C程序设计初步知识 ppt课件
※重点提示:标识符的命名规则:(1)C语言 规定标识符只能由字母(大小写均可,但区分大 小写)、数字和下划线3种字符组成(2)第1个 字符必须为字母或下划线(3)已被C语言本身使 用,不能用作变量名、常量名、函数名等。
第2章 C程序设计初步知识
本章要点:
➢2.1 C语言程序的构成和格式
➢2.2 常量、变量和标识符
➢2.3 整型数据
➢2.4 实型数据
➢2.5 算术表达式
➢2.5 算术表达式
➢2.6 赋值表达式
➢2.7 自加、自减运算符和逗号运算符
2020/12/2
1
2.1 简单C语言程序的构成和格式
以下是一个简单求解两数之和的C程序, 程序如下: #include “stdio.h” main()
(4)字符常量在机器内以整型常量的形式存放,因 此字符常量与整型常量等价。
2020/12/2
12
4.字符串常量
字符串常量是由一对双引号括起来的字符序列, 如“hello”、“how are you”等。C语言中没有专 门存放字符串的字符串变量,因此存放时需要放 在一个字符型数组中。
5.转义字符常量
3.每个语句和变量定义的最后必须要有一个分号 (即使是程序的最后一个语句也应包含分号)。 分号是C语句的必要组成部分。
2020/12/2
5
4.C语言用“/*……*/对程序进行注释。注意“/”和“*”之 间不能有空格。注释可以出现在程序中任意合适的地方, 必须成对出现,它对程序的运行不起作用,但在注释中可 以说明变量的含义、程度段的功能等。一个好的C程序应 有必要的注释,以便阅读。
C语言程序设计课件 第二章
2.4 运算符、表达式和计算
2.4.1 运算符、表达式和计算
运算符:C语言中用于描述数据运算的特殊符号。 表达式:用运算符将C语言的各种运算对象连接起来,组成符合C语法要 求的式子,称表达式。运算对象包括常量、变量、函数等。 计算:表达式的求值过程称计算。 C的运算符主要分为四大类: 算术运算符 (+ - × / % ++ --) 关系运算符与逻辑运算符 (> < == >= <= !=)(!&& || ) 位运算符 (<< >> ~ | & ) 特殊运算符 :赋值运算符(=)、条件运算符(? :) 逗号运算符(,)、指针运算符(* &)、 求字节运算符(sizeof)、 强制类型转换运算符((类型))、 分量运算符(. ->)、下标运算符([ ])、 函数调用(( ))等。
2.2 C语言数据类型
2.2.3 字符型数据 ——— 类型名是char
1. 字符类型 字符内部表示占用一个字节,用对应ASCII编码的二进制形式存储。 例:字符‘A’的ASCII代码为65,则内存中字符‘A’表示形式为65的二进 制表示‘01000001’。 C语言把字符类型看作一种特别短的整数类型。允许参与算术运算。 例:‘A’+ 2 表示将‘A’的ASCII码65加2,结果67是字符‘C’的ASCII码。 转义字符:‘\’,具有控制含义的转义字符,在输入输出时会引起设备完 成相应的动作。 2.字符串 —— 双引号括起来的一串字符 字符串结束标志:‘\0’ 字符串的内部表示方法:使用一片连续的字节空间,依次存放字符串的 每一个字符,在结尾处加特殊字符‘\0’,表示字符串结束。 注意:字符和字符串表示形式的区别,’a’和”a”有什么不同? 数字和数字字符的区别,1和’1’有什么不同? 空字符‘\0’和空格字符‘ ’的区别,它们的ASCII码值有什么不 同?
c语言大一上第二章知识点
c语言大一上第二章知识点C语言作为一门编程语言,在计算机科学领域有着广泛的应用。
对于大一学生来说,C语言是他们进入程序设计的第一步。
在大一上学期的第二章,学生们将学习一些重要的C语言知识点,包括变量、数据类型、运算符等。
本文将为大家总结这些知识点,以帮助他们更好地学习和理解。
首先,我们来谈谈变量。
在C语言中,变量是用于存储数据的一种方式。
在使用变量之前,我们需要先声明它们的数据类型。
常见的数据类型包括整型、字符型、浮点型等。
在声明变量时,我们需要指定变量的名称和数据类型。
例如,int a;就声明了一个整型变量a。
接下来,我们来具体讨论每种数据类型。
整型是用于表示整数的数据类型。
在C语言中,int表示整型。
例如,int a = 5;就将整数5赋值给了变量a。
字符型用于表示一个字符。
在C语言中,用单引号' '表示字符型。
例如,char c = 'A';就将字符'A'赋值给了变量c。
浮点型用于表示小数。
在C语言中,float表示单精度浮点型,而double表示双精度浮点型。
例如,float f = 3.14;就将小数3.14赋值给了变量f。
除了基本的数据类型,C语言还提供了一些复合的数据类型。
数组是其中的一种。
数组用于存储多个相同类型的元素。
在声明数组时,我们需要指定数组的名称、数据类型和元素个数。
例如,int numbers[5];就声明了一个包含5个整数的数组numbers。
数组中的每个元素都有一个索引,从0开始递增。
我们可以通过索引来访问数组中的元素。
例如,numbers[0]表示数组中的第一个元素。
除了数组,C语言还提供了结构体这一复合数据类型。
结构体可以用于表示一组相关的数据。
在声明结构体时,我们需要指定结构体的名称和成员变量。
例如,我们可以用一个名为student的结构体来表示学生的姓名、年龄和成绩。
结构体的成员变量可以是不同的数据类型。
我们可以通过结构体名称和成员变量来访问结构体中的数据。
计算机二级C语言PPT第2章
否则算法结束。
在步骤S1中先预设sign(代表级数中各项的符 号,它的值为1或-1)。在步骤S2中使sum等于 1 ,相当于已将级数中的第一项放到了sum中。 在步骤S3中使分母的值为2。在步骤S4中使sign 的值变为-1。在步骤S5中求出级数中第2项的值 -1/2。在步骤S6中将刚才求出的第二项的值-1/2 累加到sum中。至此,sum的值是1-1/2。在步骤 S7中使分母deno的值加1(变成3)。执行S8步 骤,由于deno≤100,故返回S4步骤,sign的值 改为1,在S5中求出term的值为1/3,在S6中将 1/3累加到sum中。然后S7再使分母变为4。按此 规律反复执行S4到S8步骤,直到分母大于100为 止。一共执行了99次循环,向sum累加入了99 个分数。sum最后的值就是级数的值。
对同一个问题,可以有不同的解题方法和 步骤。方法有优劣之分。有的方法只需进行很 少的步骤,而有些方法则需要较多的步骤。一 般说,希望采用简单的和运算步骤少的方法。 因此 ,为了有效地进行解题,不仅需要保证算 法正确, 还要考虑算法的质量, 选择合适的算法
我们所关心的当然只限于计算机算法,即计算 机能执行的算法。
计算机算法可分为两大类别:数值算法和 非数值算法。数值运算的目的是求数值解 。非 数值运算包括的面十分广泛,最常见的是用于 事务管理领域。目前,计算机在非数值运算方 面的应用远远超过了在数值运算方面的应用。 由于数值运算有现成的模型,可以运用数值分 析方法,因此对数值运算的算法研究比较深入, 算法比较成熟。对各种数值运算都有比较成熟 的算法可供选用。人们常常把这些算法汇编成 册(写成程序形式),或者将这些程序存放在磁 盘或磁带上,供用户调用。
C语言第2版(第2章基本语句)
(5)空类型:用void表示。
对整数型,有四种修饰:
①signed(有符号) ②unsigned(无符号)
③long(长型)
④short(短型)
数据类型决定了数据的大小、数据可执行的操作 以及数据的取值范围。
整理ppt1章 引言
8
2.2 基本数据类型及取值范围
数据类型的长度和取值范围会随着机器的CPU类型 和编译器的不同而不同。
命名。建议取有实际意义的标识符来命名。
标识符的第1个字符必须是字母或下划线,标识符的长度可以是一 个或多个字符,最长不允许超过32个字符。
例如:
score、number12、student_name等均为正确的标识符;
8times、price/tea、low!valume等均不为正确的标识符。
注意:
±1.112 537×10−308
最大值
±3.402 824×1038 ±1.797 693×10308
整理ppt1章 引言
7
2.2 基本数据类型及取值范围
1. C语言提供5种基本数据类型。
(1)字符型:用char表示。
(2)整数型:用int表示。
(3)单精度实数型:用float表示。
(4)双精度实数型:用double表示。
C 语言规定:变量必须在使用之前定义。
变量定义的一般形式是:
<类型名> <变量列表>;
∙<类型名>必须是有效的C数据类型,如:int、 float等,类型名规定了变量的存储空间和取值范围。
∙ <变量列表>可以由一个或多个由逗号分隔的多个 标识符名构成。
整理ppt1章 引言
12
2.3 标识符、变量和常量
C语言第二章PPT课件
64位
4字节
7精度
4字节
16精度
从低精度转换到高精度,会使精度损失 float a=0.1234567890123456789013456 printf(“%f/n”,a); //精度损失
19
第19页/共27页
限定词const
• const将变量限定为“只读”,无法改变其值 const int a=3; a++; //对只读变量自加,编译报错
• 定义const变量时,必须初始化(赋初值) const int a; //未初始化,报错 const int a=3;//初始化为3,正确
20
第20页/共27页
限定词volatitle
• 修饰的变量必须每次重新读取这个变量值
21
第21页/共27页
小结
• 说出整形、浮点型、字符型的字节长度 • 说出数字71转换成字符型,结果是多少 • 说出=与==的含义 • 说出&&与||的含义 • 换行符是什么?
25
第25页/共27页
26
第26页/共27页
感谢您的欣赏!
27
第27页/共27页
16
第16页/共27页
字符型和整形转换 int a=67; char b=‘A’;
printf(“%c”,a); //让a输出成%c,即输出成字符 printf(“%d”,b); //让b输出成%d,即输出成整数
注意啦: 1、字符型转换为整形,输出对应的ASCII码 2、整形转换为字符型,则将该数字当ASCII码处理 31、7 由于ASCII码只有127位,所第以17数页/共字27大页 小不能超过127
22
第22页/共27页
上机实验
51单片机技术应用教程(C语言版)项目二 模拟汽车左右转向灯控制系统的设计与制作
51单片机技术应用活页式教程(C语言版)
项目二:模拟汽车左右转向灯控制系统的设计与制作
【项目描述】
为完成项目“模拟汽车左右转向灯控制系统的设计与制作”的任务,在前面任务1已经搭 接好最小系统电路的情况下,单片机由于没有接外围电路,其本身无法独立工作。换句话说 ,理解硬件电路的原理,是单片机编程的前提条件。任务一中了解了单片机产品设计与制作 过程,要实现“模拟汽车左右转向灯控制系统的设计与制作”工作任务,需要有相应的硬件和 软程序。涉及到软程序的调试,就要学会用 Keil C调试程序,要想减小制作实物时的损耗, 我们就要应用开发板(或者学会用Proteus ISIS硬件仿真),掌握这两个开发工具的联调,最 后才能低损耗的开发出单片机产品。本任务将深度掌握MCS-51硬件基本结构及熟练操作Keil C与Proteus ISIS两个调试与仿真软件。
2.请您通过查找资料说说89C51单片机的4个并行I/O口的作用。 3.在项目制作之前,首先要了解单片机应用系统的开发过程,请写出单片机产 品的开发过程。 4.请查找资料并画出“模拟汽车左右转向灯控制系统的设计与制作”的硬件电 路图,并解释其能实现功能的原理。
51单片机技术应用活页式教程(C语言版)
(PC) (PC) (PC)
写数据,后
128个单元被
专用寄存器占
用。
1、AT89C51单片机的基本组成
1. 中央处理器CPU:8位,运算和控制功能 2. 内部RAM:共256个RAM单元,用户使用前128个单元,用
于存放可读写数据,后128个单元被专用寄存器占用。 3. 内部ROM:4KB掩膜ROM,用于存放程序、原始数据和表
51单片机技术应用活页式教程(C语言版)
项目二:模拟汽车左右转向灯控制系统的设计与制作
C语言程序设计2PPT课件
\ddd 3位8进制数代表的字Fra bibliotek \xhh含义 水平制表
退格 换页 反斜线 双引号 2位16进制数代表的字符
2020/11/13
《C与C++程序设计教程》-第二章
10
[例2.4]转义字符举例。 main() {
printf("\t Hello!"); printf("\n1234567890"); printf("\bHello!"); }
area=PI*radius*radius;
printf("circumference is %f\n",circum);
printf("area is %f\n",area);
}
键盘 3
circumference is 18.849556
显示器 area is 28.274334
返回
2020/11/13
《C与C++程序设计教程》-第二章
9
2.2.4 换码序列常量(转义字符)
是特殊字符常量。以一个反斜杠”\”开头的字符序列, 只代表某个特定的ASCII码字符。用单引号括起。
常见的转义字符常量表(p27表2.2) :
转义字符
\n
\v
\r
<
\0 \‘
含义 换行 垂直制表 回车 空字符 单引号
转义字符 \t \b \f \\ \“
2.2.1 数值常量 2.2.2 字符常量和字符串 2.2.3 标识符命名的常量 2.2.4 换码序列常量
2020/11/13
《C与C++程序设计教程》-第二章
返回
C语言程序设计 项目二
三、相关知识
(一) 关系运算符与关系表达式 1. 关系运算符及优先级 < (小于) > (大于) 优先级相同(高) < = (小于或等于) >= (大于或等于) == (等于) 优先级相同(低) != (不等于) 1)前4种运算符(<,<=,>,>=) 优先级相同,后两种也相同。前4种 高于后2种。 (2)关系运算符的优先级低于算术 运算符。 (3)关系运算符的优先级高于赋值 运算符。
(二) 逻辑运算符与逻辑表达式
1. 逻辑运算符及优先级
&& 逻辑与 || 逻辑或 ! 逻辑非
优先级低
优先级高 例如:10岁以下的小孩而且是女的 例如:10岁以下的小孩或者是女的
其中“&&”相当于而且,要求有两个运算 量。 “||”相当于或者,要求有两个运算量。
“!”相当于否定 。 除了10岁以下的女小孩。 优先级:“!”运算符高于算术运算符,关系运算符高于逻辑运算符 逻辑运算符的“真值表”
(三) 条件语句
1. 单分支语句 【语法】 if(表达式)语句组 【流程图】
/*表达式值为非0时,执行语句组,为0时,不执行语句组*/
【例如】若a=3,b=4,c=5, 1)则执行语句if(a>b) c=a;后c的值为5,因为a>b不成立,则表达式的值为0,不执行 后面的语句c=a,所以c的值不变,还是为5; 2)执行语句if(a<b)c=a;后c的值为3。 3)执行语句if(a>b) {t=a;a=b;b=t;}后a的值为3, b的值为4; 4)执行语句if(a<b){t=a;a=b;b=t;}后a的值为4, b的值为3。 其中的t=a;a=b;b=t;完成了变量a和b的值的交换,当语句组的语句有1句以上时,要 用{ }把语句组括起来,注意在{ }外面不需要再加分号。因为{ }内是一个完整的复合语 句,不需要另附加分号。
计算机教材 C语言第二章重要内容
变量1.变量变量是存储数据的容器见到的容器:盘子碗内存卡U盘2.变量名的命名规则声明变量给变量赋值a=10 b=2变量名只能由以下开头●字母 a b c●下划线int_a●$ $a●数字a1 a2 a33.变量不能用%,# ,空格,关键字来命名4.常量常量是不变化的量,比如圆的半径,数字5.数据类型Int(整数)对应%dInt占4个字节Float(小数)double(小数)对应%f Float占4个字节double占8个字节Float和double的区别:Double比较精准float是8位有效数字,第7位数字将会四舍五入单精度浮点数(float)与双精度浮点数(double)Char(字符集)对应%c (比如a--z 或者A--Z)Char占一个字节字节:字节是有效输入单位(在计算机语言中一个英文字母(不分大小)占1个字节,一个汉字占2个字节,数字占一个字节)6.scanf 从键盘上输入7.二进制0 1只有0 1 两个符号它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。
当前的计算机系统使用的基本上是二进制系统1表示开0表示关加法:0+1=11+0=11+1=107. ASCLL码(美国标准信息交换代码,一套电脑编码系统。
使用7 位二进制数来表示所有的大写和小写字母,数字0 到9、标点符号,以及在美式英语中使用的特殊控制字符。
)A---Z 对应的是65--90a--z 对应的是97--122ASCII码,简称asc码,多用于加密,就是一个将字符与数字联系的表格如('a')=98 ('A')=65。
《C程序设计项目教程》课件 项目二
printf("格式控制字符串",输出项列表);
输出项可以是常量、变量、表达式,其类型、个数必须与控制字 符串中格式字符的类型个数一致,当有多个输出项时,各项之间用逗 号分隔。控制字符串必须用双引号括起,由格式说明和普通字符两局 部组成。
〔一〕格式说明 一般格式为:%[<修饰符>]<格式字符>
字面本身就 是它的值
符号常量是一个标识符,对应着一个和 它类型一致的存储空间,该存储空间中 保存的数据就是该符号常量的值。
1.常量类型
C语言中的常量包括整型常量、实型常量、字符常量、字符串常 量和布尔型常量。
〔1〕整型常量 整型常量表示通常意义上的整数,如2、0、-7等。整型常量可
以用十进制、八进制和十六进制表示。 〔2〕实型常量 实型常量是指通常意义上的实数,也称浮点数。实型常量有两种
表示形式:十进制小数形式和指数形式。
〔3〕字符常量 字符型常量分为普通字符常量和转义字符常量。
用单引号括起来的一个字符,例如'A'、'g'等。
转义字符常量是由“\〞 开头的一个或多个字符 的序列,用于表示一些 无法显示的字符,如回 车符、换行符、制表符 等。常用的转义字符常 量及其含义如下表所示。
〔8〕指针运算符
〔4〕位运算符
〔9〕求字节数运算符
〔5〕赋值运算符
〔10〕特殊运算符
〔一〕算术运算符
〔二〕赋值运算符
一般形式为: 变量名=数值/表达式
例如
a=5 a=sin(2.0) a=b+c
i=i+2;等价于“i+=2;〞 ,“+=〞称为复合的赋值运算符。
C提供的复合赋值运算符包括: +=、-=、*=、/=、%=、<<=、>>=、&=、^=和|=
C语言程序设计PPT课件(第2版)第2章-简单程序设计
2.2.1 用printf()函数输出数据
在“%”和格式控制符之间插进数字,表示输出项的最大域 宽。
例如: %3d 表示输出一个整数,域宽为3,当输出的 整数不足3位时,按右对齐显示。 %05d 表示输出一个整数,域宽为5,当输出 的整数不足5位时,在高位用0补充。 %9.2f 表示输出一个实数,域宽为9,保留2位 小数,整体长度不足9位时,按右对齐显示。 %8s 表示输出一个字符串,域宽为8,不足8个 字符时,按右对齐显示。
输出一个十进制无符号整数
否
%e
输出一个指数形式的浮点数
否
%x或%X
输出一个以十六进制表示的无符号整数
否
%O
输出一个以八进制表示的无符号整数
否
%g
自动选择%f或%e格式中输出宽度较短的一种形式
否
语言程序设计-理论方法与实践(第2版)
2.2.1 用printf()函数输出数据
printf()函数的转义字符及其功能
scanf()函数的参数由“"%d%d"”和 “&a,&b”两部分构成:“"%d%d"” 规定输入数据的格式,表示输入两 个整数;“&a,&b”指定接收数据的 变量分别是a和b。
语言程序设计-理论方法与实践(第2版)
2.2.2 用scanf()函数输入数据 scanf()是格式化输入函数,从标准输入设备为变
unsigned long
(2)实数型变量
float double
(3)字符型变量 char
float double char
类型名称
存储数据
有符号基本整型
有符号短整型
C语言程序设计第二章课件PPT课件
一个简单的C程序例子
#include <stdio.h>
/*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值: 整型数a和b之和
*/ int Add(int a, int b) {
return (a + b); }
/*主函数*/ main() {
int x, y, sum = 0;
• 不要对变量所占的内存空间字节数想当然
• 用sizeof获得变量或者数据类型的长度
• 现象与危害 • 在平台间移植时会出现问题,导致数据丢失或者溢出
第19页/共26页
sizeof到底是什么?
• C语言的关键字,并非函数 • 计算类型占用的字节数
• 两种语法形式 sizeof(类型)
• 结果为类型占用的字节数 sizeof(表达式)
• 运算符(Operator) • 详见附录C
• 分隔符(Separator) • 空格、回车/换行、逗号等
• 其他符号 • {和}标识函数体或语句块 • /*和*/是程序注释的定界符
• 常量(Constant)
第5页/共26页
2.1.1常量(Constant)
• 在程序中不能改变其值的量 • 包括:
第17页/共26页
2.4如何计算变量或数据类型 所占内存空间的大小
• 一个位有多大? • 只能是0或者1,二进制
• 一个字节有多大? • 可以表示0~255之间的整数
第18页/共26页
不同类型占用的内存字节数不同
• 同种类型在不同的平台其占字节数不尽相同 • 如int在16位、32位和64位系统上分别占2、4和8个字节
bit(b) Byte(B) Kilobyte(KB)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
任务2 输入学生成绩转化为等级
一、问题情景
输入一个学生的成绩,若是合法成绩,则输出相应的等级,否 则输出不合法的提示信息。
方法一:首先判断输入的成绩是否合法,不合法的话,输出 “输入的成绩不合法”的提示信息;合法的话再判断成绩是否 在90分到100分之间,是的话,将变量y赋好相应的值;同样 再判断成绩是否在80分到90分之间,是的话,将变量y赋好相 应的值等等。
方法二:判断该年 份是否满足闰年的 条件,满足的话输 出是闰年的提示信 息,否则输出不是 闰年的提示信息。
#include "stdio.h" main( ) { int year,t; printf("请输入年份"); scanf("%d",&year); if(year%4==0&&year%100!=0||year %400==0) printf("%d年是闰年\n",year); else printf("%d年不是闰年\n",year); }
若x=5,则x>=0&&x<3的值为0, 表达式x>=0的结果为1,表达 式x<3的结果为0, 1&&0的结果为0。 若x=5,则x>=0||x<3的值为1,因为1||0的结果为1。 若x=5,则!(x>=0||x<3)的值为0。
练习:写出表达式的值:(a=2,b=0,c=-2.5) (1) a*b||c (2) !b&&c (3) 0||a (4)1&&!a/c
【例2-2】 输入一个年份,判断它是否是闰年。
某一年是闰年的条件是:能被4整除并且不能被100整除,或者 能被400整除的年份是闰年。写成表达式是 year%4==0&&year%100!=0||year%400==0。 方法一:先设一个变量t=0, 然后判断该年份是否满足闰 年的条件,满足的话将t的值 修改为1,然后我们可以根据t 的值来判断该年是否是闰年, t为0的话不是闰年,t为1的话 是闰年。
#include "stdio.h" main( ) {int year,t=0; printf("请输入年份"); scanf("%d",&year); if(year%4==0&&year%100!=0||yea r%400==0) t=1; if(t==0) printf("%d年不是闰年 \n",year); if(t==1) printf("%d年是闰年 \n",year);}
方法一:
用一个变量min来暂时存放所有比较过数中的最小值。第一次将某个数赋给 min,然后用min跟没有比较过的数一一进行比较,发现新的数比min的值还 小的话,就修改min的值为新比较的数,直到所有的数都比较过为止。 #include "stdio.h" main( ) { int a,b,c,min; printf("请输入三个数"); scanf("%d,%d,%d",&a,&b,&c); min=a; if(min>b) min=b; if(min>c) min=c; printf("%d,%d,%d中最小的数为 %d\n",a,b,c,min); }
【例2-1】输入任意三个整数a、b、c,输出其中最小的数。
方法二:
分析:我们首先将a、b两个数进行比较,把两者中最小的数放到a中,然后 用两者中最小的数a跟c进行比较,同样的把两者中最小的数放到a中,最后 a中的值就是三者中最小的值。 #include "stdio.h" main( ) { int a,b,c,t; printf("请输入三个数"); scanf("%d,%d,%d",&a,&b,&c); if(a>b) {t=a;a=b;b=t;} if(a>c) {t=a;a=c;c=t;} printf("%d,%d,%d中最小的数 为%d",a,b,c,a); }
同样地,语句组1和语句组2的语句不止一句时,要用{ }将 语句组括起来,作为一个复合语句。
【例如】若a=3,b=4,c=5, 执行语句
if(a<b){t=a;a=b;b=t;}
else {t=a;a=c;c=t;}后a、b、c的值分别为4,3,5。
练习
1、若x、y、z均已正确定义且x=3,y=2,z=1,则执行以下if语句后x、y、z的 值分别是 。 if(x>z) y=x;x=z;z=y;
2. 关系表达式 用关系运算符将两个表达式连接起来的式子,称为关系表达式。 例如:a>b,a!=b,a+b>a+c,’a‟>‟b‟
关系表达式的值是一个逻辑值,即“真”或“假”,在C语言中用1代表 “真”,以0代表“假”。
【例如】若a=1,b=4,则:
(1)a>b的值为0。因为a=1,b=4,所以a>b的值为假,即表达式 a>b的值为0。
优先级:“!”运算符高于算术运算符,关系运算 符高于逻辑运算符
2. 逻辑表达式
逻辑表达式的值是一个逻辑值,即“真”或“假”, C语言编译系统在 给出运算结果中,以数值1代表“真”,以0代表“假”,但在判断一个量是 【例如】 否为“真”时,以0代表“假”,以非0代表“真”。
若a=2,b=4,则a&&b的值为1。因为a,b的值均为非0,被认 为是“真”,因此a&&b的值为“真”,表达式a&&b的值为1。 若x=5,则x>=0&&x<10的值为1。因为“>=”和“<”的优先级比 “&&”的优先级高,先算x>=0和x<10表达式,结果都为1,而 1&&1的结果为1,因此x>=0&&x<10的值为1。
(2)a!=b的值为1。
(3)a==b>=0的值为1。先做b>=0,结果为1;再做==运算符, a==1成立,所以整个表达式的值为1。
(4)b>=0==a的值为1。
练习:当a=5,b=3,c=2时,求下列表达式的值: 1、a>b
2、a-b= =c
3、a>b>c
4、d=a= =b+c
5、a!=b<c
参考程序: #include "stdio.h" main() {float x; char y; printf("请输入1-100内的一个成绩"); scanf("%f",&x); if( x>=0 && x<=100 ) {if(x>=90 && x<=100) y='A'; if(x>=80 && x<90) y='B'; if(x>=70 && x<80) y='C'; if(x>=60 && x<70) y='D'; if(x>=0 && x<60) y='E'; printf("该学生的等级为%c\n",y);} else printf("输入的学生成绩不合法 \n");}
2、若x、y、z均已正确定义且x=1,y=2,z=3,则执行以下if语句后x、y、z的 值分别是 。
if(x>z) y=x;x=z;z=y; 3、执行以下程序段后的输出是 int i=-1; if(i<=0) printf(“*”); else printf(“$”); 。
【例2-1】输入任意三个整数a、b、c,输出其中最 小的数。
2. 双分支语句
【语法】 if(表达式)语句组1 else 语句组2 /*表达式值为非0时,执行语句组1,为0 时,执行语句组2*/ 【流程图】
【例如】若a=3,b=4,c=5, 则执行语句 if(a>b)c=a; else c=b; 后c的值为4。 执行语句 if(a<b)c=a; else c=b; 后c的值为3。
(二) 逻辑运算符与逻辑表达式
1. 逻辑运算符及优先级
&&
|| !
逻辑与
逻辑或 逻辑非
优先级低
优先级高
例如:10岁以下的小孩而且是女的
其中“&&”相当于而且,要求有两 个运算量 。 “||”相当于或者,要求有两个 运算量。 “!”相当于否定 。
例如:10岁以下的小孩或者是女的
除了10岁以下的女小孩。
项目二 输入学生成绩转化为等级
项目要求 一个班进行了一次考试,教师打的是百分制成绩,现在学 校要求打五级制,即90~100 分的转变为A,80~89 的转变为 B,70~79的转变为C,60~69的转变为D,60以下的转变为E。 项目分析 要完成对成绩的转换输出: 所以0-100分都是合法的,此范围外输入的成绩是有问题的;
练习:写出C语言的表达式 (1) |x|>2 (2) x 1+a并且y<b (3) 1<x<2 (4) f ( x) ( x 1)( x 2) 的定义域
x
(三) 条件语句
1. 单分支语句 【语法】 if(表达式)语句组 时,不执行语句组*/ 【流程图】
【例如】若a=3,b=4,c=5, 1)则执行语句if(a>b) c=a;后c的值为5,因为a>b不成立,则表达式的值为 0,不执行后面的语句c=a,所以c的值不变,还是为5; 2)执行语句if(a<b)c=a;后c的值为3。 3)执行语句if(a>b) {t=a;a=b;b=t;}后a的值为3, b的值为4;