A2数据类型、运算符和表达式.ppt_第1页
A2数据类型、运算符和表达式.ppt_第2页
A2数据类型、运算符和表达式.ppt_第3页
A2数据类型、运算符和表达式.ppt_第4页
A2数据类型、运算符和表达式.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计,THE OPEN UNIVERSITY OF FUJIAN,第二章,数据类型、运算符和表达式,课前回顾,描述C程序基本结构 什么是算法,本节目标,理解变量和常量的含义 熟悉基本数据类型 理解表达式概念 掌握C语言各种运算符的用法 掌握C语言运算符优先级,程序,指令,C语言中的基本元素,标识符 关键字 常量 运算符 分隔符 等,常量是在程序中保持不变的量,常量用于定义具有如下特点的数据: 在程序中保持不变 在程序内部频繁使用 需要用比较简单的方式替代某些值,定义常量: #define variablename value,变量,100,321,在程序运行过程中,其值可以被改变的量称之为变量,#include “stdio.h“ void main() int p ; p=100 ; printf(“%dn“,p); p=321; printf(“%dn“,p); ,使用变量,给变量赋值,除了给一个直接的值以外,还可以通过计算获得,声明变量: Datatype variablename; 定义时初始化变量: Datatype variablename = value; 定义后初始化变量: variablename = value;,在程序运行过程中,其值可以被改变的量称之为变量,变量举例,#include “stdio.h“ main() int i, j; i=5; j=i*6; printf(“i= %dn“,i); printf(“j = i*6 = %dn“,j); ,定义两个变量 int i ,j: 要求:给 i赋值为 5 ,给j赋值为i乘以6,打印输出i与j的值,变量命名规则,问题,你注册邮箱时候的规则是什么?,C语言中的变量命名规则,在 C 语言中,变量命名需要遵循一定的规则,变量的命名规则: 变量名可以由字母、数字和 _(下划线)组合而成 变量名不能包含除 _ 以外的任何特殊字符,如:%、# 、逗号、空格等 变量名必须以字母或 _(下划线)开头 变量名不能包含空白字符(换行符、空格和制表符称为空白字符) C 语言中的某些词(例如 double 和 float 等)称为保留字,具有特殊意义,不能用作变量名 C 语言区分大小写,因此变量 price 与变量 PRICE 是两个不同的变量,基本数据类型,数据属于不同类别,Africa,The quick brown fox,TRUE,数据,非数值,数值,整型,非整型,9002.12,999,9/12/2003,2.175,123,Jackie Chan,数据类型,非数值,数值,整型,非整型,变量的树状结构,char,数据类型,非数值,数值,整型,short int,long int,double,float,非整型,整型,整型变量,声明: int page_number; long int population; 可按如下方式初始化: page_number0; int max_marks = 100;,在同一语句中可以声明多个类型相同的变量: int page_number, copies, paper_width;,单精度浮点型,声明: float selling_price; 初始化: float selling_price = 11.3; selling_price = 65.90;,float,32 位,10-38 至 10+38 ,7位有效数字,float 在 C 语言中用于存储单精度浮点数,双精度浮点型,声明: double pressure_level; 初始化: pressure_level = 213.5671435568967; double dvalue = 35.4;,在线保险单 年龄:_ 保险总额:_ 性别:_,字符型,23,98.34, M ,数值型,字符型,int/float,char,字符型规则, 5 p $,有效的字符型值,“2“,2,正确,2 + 2 = 4,X,注意:汗 汉字是不是字符类型?为什么?,字符型特征与使用,占 8 位内存,signed 或 unsigned,Signed -128 至 +127,unsigned 0 至 255,示例:,char gender; gender=m;,char gender=m;,知识补充,#include “stdio.h“ main() char i =a; int j = i-32 ; printf(“%c“,j); ,ASCII码-ASCII码中,小写字母的范围是:97122大些字母范围是6590;小写字母得到相应大写字母需要-32; 编写程序:1. 打印出字母 a 的ASCII号 2. 将字母a转化为字母A,Z = ( X * 2 ) + ( 5 Y ),表达式,表达式的定义,表达式由_和_的组合而成 表达式中的操作数可以是_、_或者_ 运算符的主要类型有: 算术运算符 赋值运算符 关系运算符 逻辑运算符,变量=表达式;,赋值运算符,Height = 177.5; Weight = 78; Gender = m; x = a+b; w = sin(a)+sin(b); y = i+ -j;,复合赋值运算,复合赋值运算符是在赋值运算符之前再加一个双目运算符所构成的,打印出书籍的价格并且将数据的价格增加12.5后也打印输出,算术运算符,#include void main () float book_price = 60.75; printf(“n 书的价格 = %f“,book_price); book_price += 12.50; printf(“n 书的新价格 =%fn“,book_price); ,book_price=book_price+12.50;,输出: 书的价格 = 60.750000 书的新价格 = 73.250000,自增自减运算符,前置运算变量完成自增或者自减,之后完成其他运算 后置运算变量先参与运算,然后再将变量自增或者自减,int i,j; i=4 ; j=+i + 5 ; printf(“j的值是: %dn“,j); printf(“i的值是: %dn“,i);,int i,j; i=4 ; j=i+ + 5 ; printf(“j的值是: %dn“,j); printf(“i的值是: %dn“,i);,使用自增自减运算符,贪心法则 : 每一个符号应该包含尽可能多的字符.也就是说,编译器将程序分解成符号的方法是:从左到右一个一个字符地读入,如果此字符可能组成一个符号,那么再读入下 一个字符,判断已经读入的两上字符组成的字符组成的字符串是否可能是一个符号的组成部分,如果可能,继续读入下一个字符,重复上述判断,直到读入的字符组 成的字符串已不再可能组成一个有意义的符号.这个处理的策略被称为“贪心法“.,int j=7,q,a=2; q=a+j; printf(“%d“,q);,打印出来的P为多少?,注意,自增自减运算符不能用于常量与表达式 在表达式中使用同一变量进行自增自减,很容易出错,最好避免这种用法。,关系运算符,关系运算符用于测试两个操作数或两个表达式之间的关系,其中操作数可以是变量、常量或表达式。 关系运算符种类 =、=、=、!= 关系表达式的计算结果为逻辑值(真或假) 在C语言中,“0”表示“假”,“非0”表示“真”,关系运算符使用,num1=10; num2=5;num3=20;num4=10; (num1 + num2) (num3 num4),num=40; num/10 != 2,gender = m,真,假,=,如果 gender = f,如果 gender = m,逻辑运算符,逻辑运算符用于连接一个或多个条件,判断这些条件是否成立,逻辑“与”运算符 &,所有学科及格,考勤率达到 75%,留级,留级,留级,升级,Yes,No,No,No,No,Yes,Yes,Yes,逻辑“或”运算符 |,无法支付,可支付,可支付,可支付,Yes,No,No,No,No,Yes,Yes,Yes,购物帐单,信用卡,逻辑“非”运算符 !,不带伞,带伞,No,Yes,天气 NOT 阴天,逻辑运算符总结,&,只有当两个条件都为真时才执行操作,只要任何一个条件为真时就执行操作,对原条件取反,即: 如果原条件为假时就执行操作,|,!,问题描述: 要求用户输入一个字符,用程序判断该字符是否为小写字母 ,并输出相应的信息。,#include void main() char a; printf(“n请输入一个字符:“); scanf(“%c“, ,使用&运算符,T,请输入一个字符:T,您输入的字符不是小写字母,问题描述: 接受用户输入的三种商品的价格。如果购买的三种商品中至少有一种商品的价格大于 50 或者三种商品的总额大于 100,则折扣率为15,否则折扣率为,计算并显示用户应付的钱数。,使用 | 运算符,#include void main() float rate1,rate2,rate3; double discount,total; printf(“n请输入第一种商品的价格:“); scanf(“%f“, ,if(rate150)|(rate250)|(rate350)|(total100),输出: 请输入第一种商品的价格:34 请输入第二种商品的价格:42 请输入第三种商品的价格:38 折后总价为:96.90,问题描述: 确定用户输入的数字是否可以被5整除,并输出相应的消息。,#include void main() int num; printf(“n 请输入一个数:“); scanf(“%d“, ,使用 ! 运算符,请输入一个数:90,该数能被 5 整除,sizeof 运算符,使用 sizeof 运算符可以获得数据类型占用内存空间的大小。其一般形式为: sizeof(type_name) sizeof 运算符的结果以字节为单位显示,sizeof(int);,float num; sizeof(num);,注意:在32位计算机中,int类型的变量占4字节的内存大小,和long类型的大小一样,所以现在基本上可以直接使用int类型,而不需要使用long类型。,运算符优先级 1,当我们遇到一个复杂表达式时,需要确定先 执行哪种运算,此时就需要考虑运算符的优 先级,z = x + y g * h * (t/20)+ 65 r % 2,先算哪部分 加? 减? 取余? 除? 括号?,要解决此问题,需要使用: 运算符优先级,运算符优先级2,问题描述: 判定给定的年份是否为闰年。 提示:闰年的判定规则为:能被 4 整除但不能被 100 整除的年份,或能被 400 整除的年份。,#include void main() int year; printf(“n 请输入年份:“); scanf(“%d“, ,综合示例1,请输入年份:2005,2005 年不是闰年,问题描述: 输入一个5位数,判断它是不是回文数。 例如:12321是回文数,个位与万位相同,十位与千

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论