《基本程序语句》PPT课件.ppt

上传人:sh****n 文档编号:8641499 上传时间:2020-03-30 格式:PPT 页数:51 大小:540KB
返回 下载 相关 举报
《基本程序语句》PPT课件.ppt_第1页
第1页 / 共51页
《基本程序语句》PPT课件.ppt_第2页
第2页 / 共51页
《基本程序语句》PPT课件.ppt_第3页
第3页 / 共51页
点击查看更多>>
资源描述
第2章基本的程序语句 2 1C的数据类型及取值范围2 2标识符 常量与变量2 3整型数据2 4实型数据2 5字符型数据2 6变量赋初值 2 7各类数值型数据间的混合运算2 8算术运算符和算术表达式2 9赋值运算符和赋值表达式2 10逗号运算符和逗号表达式2 11 关系运算符和关系表达式2 12C语句结构2 13数据的输入 输出 2 1C的数据类型及取值范围1 一个C程序包括的内容程序 算法 数据结构 程序设计方法 语言工具和环境2 C的数据类型 数据类型 基本类型 构造类型 指针类型 空类型 void 字符型 char 数值类型 枚举类型 enum 数组类型 结构体类型 struct 共用体类型 union 整型 short int long unsigned 实型 单精度型 float 双精度型 double 基本数据类型的长度及取值范围见p15 p16表2 3 表2 5ANSIC标准中的数据类型和长度见p16表2 6整型类型的简写形式见p17表2 7 标识符就是一个名字 用于标志某个事物 由字母 数字 下划线组成 由字母或下划线开头的字符串 标识符可用来命名变量及作为常量名 函数名 类型名 标号和其他各种用户定义的对象命名 一个程序内不得有重复名 不允许使用与C语言系统关键字 保留字 相同的标识符 如 sum sum stu name price30等为合法的标识符 标识符 2 2标识符 常量与变量 下面的标识符是不合法的 Number of moves 含有非法字符 pieceflag 含有非法字符空格 5 6 7 数字开头 在定义标识符时应注意以下几点 1 为了增加可读性 应尽量 见名知意 如 sum area day name等等 2 对标识符的命名应 常用取简 专用取繁 3 应尽量避免使用容易混淆的字符 例如 O 大写字母 o 小写字母 0 数字 I 大写字母 l 小写字母 1 数字 Z 大写字母 z 小写字母 2 数字 不要使用C语言关键字作为标识符C语言关键字列表 autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile 1 常量和符号常量在程序运行过程中其值不能被改变的量称为常量 例2 1定义符号常量 definePRICE30main intnum total num 10 total num PRICE printf total d total 用define命令定义PRICE代表常量30 则在整个程序中出现的PRICE都代表30 可以和常量一样进行运算 1 C语言区分大小写 如 Price和price 系统会认为是两个不同的标识符 2 标识符的长度一般不超过8个字符 具体情况视不同系统而定 设允许8个字符 则 student name student number 为同一名字 在程序运行过程中其值可以被改变的量称为变量 变量名的命名符合标识命名规则 由字母开头 由字母 数字和下划线三种字符组成 长度不限制 如 sum aver class day为合法变量名 123 33 3ds均为非法变量名 sum Sum与SUM是三个不同的变量名 在C中 习惯用大写字母标识符号常量 用小写字母标识变量 变量必须先定义后使用 变量一经定义 就确定了类型 2 变量 1 整型常量整型常量即整常数 整常数有三种表示形式 十进制数如 123 456 八进制数以数字0开头 如 0123 011 十六进制数以0 x开头 如 0 x123 0 x122 整型常量的类型 其值在 32768 32767时为int型 其值在 2147483648 214748647时为longint型 常量中无unsigned型 但非负值的整型量可以赋值给unsigned型整变量 只要不产生溢出 在整型常量后面跟一个字母l或L 则认为是longint型常量 2 3整型数据 1 整型变量的分类 基本型以int表示 32768 32767 215 215 1 短整型以shortint或short表示 长整型以longint或long表示 2147483648 2147483647 231 231 1 无符号型用全部二进制位 bit 存放数据 不能存放负数 unsignedint与unsignedshort 0 65535 0 216 1 unsignedlong 0 4294967295 0 232 1 2 整型变量的定义inta b unsignedshortc d longe f 3 整型变量 1 实型常量 十进制数形式 0 123 123 123 123 0 指数形式 123e3或123E3都代表123 103 2 实型变量单精度float 占用4Bytes 7位有效数字 10 38 1038 双精度double 占用8Bytes 15 16位有效数字 10 308 10308 如 floatx y 只能接收7位有效数字 doublez 2 4实型数据 1 字符常量字符常量是用单引号括起的1个字符 如 a A 以 开头的字符序列在printf函数中控制输出格式 转义字符常量 见书p22表2 12 n换行 t横向跳格 下一个输出区 v竖向跳格 b退格 r回车 f走纸换页 反斜杠字符 单引号 ddd1到3位8进制数所代表的字符 如 101 A xhh1到2位16进制数所代表的字符 2 5字符型数据 P23 例2 6例2 2输出格式控制 main printf ab c t de rf tg n printf h ti b bj k 在打印机上输出 f ab c gdeh ji k在屏幕上输出 f gdeh j k 2 字符变量字符变量只能存放1个字符 charc1 c2 c1 a c2 b 3 字符数据在内存中的存储形式及使用方法例2 3 在C中 字符型数据与整型数据可以相互赋值和运算 字符串常量是用双引号括起来的字符序列 如 Howdoyoudo CHINA a 123 45 注意 a 是字符常量 而 a 是字符串常量 不能将一个字符串赋给一个字符变量 字符串其内部有结束标志 0 C中没有字符串变量 需要用字符数组存放字符串 4 字符串常量 inta 3 floatf 3 56 charc a inta b c 5 只给c赋初值 inta 3 b 3 c 3 不能写成inta b c 3 2 6变量赋初值 整型 单精度型 双精度型数据可以混合运算 不同类型的数据要先转换成同一类型 然后进行运算 转换规则如下 2 7各类数值型数据间的混合运算 C规定 可以在定义变量的同时给变量赋初值 如 注 箭头只表示转换方向 并不是依次转换 转换过程是自动完成的 例 10 a i f d e运算过程为 a 转换成整数97与10相加 结果为107 i和f转换成double型 运算结果为double型 将107转换成double型与i和f的积相加 结果为double型 将e转换成double型 d e的结果为double型 10 a i f的结果与d e的商相减 结果为double型 1 C运算符简介在C中 除了控制语句和输入输出以外的基本操作都作为运算符处理 C的运算符有如下几类 算术运算符 关系运算符 赋值运算符 2 8算术运算符和算术表达式 逗号运算符 指针运算符 和 求字节数运算符sizeof 强制类型转换运算符 类型 分量运算符 或 下标运算符 其它如函数调用运算符 条件运算符 初等运算符 单目运算符 类型 算术运算符 关系运算符 逻辑运算符 条件运算符 赋值运算符 逗号运算符 C中各类运算符的优先级 1 基本的算术运算符 为求余 模运算 的两边必须为整型数据 其中 在除法中 整数相除取整 且大多数机器采取 向零取整 方法 即取整后向零靠拢 实数相除为double型 如 5 3 1 5 3 1 5 3 0 1 66666666666667 2 算术表达式和运算符的优先级与结合性算术表达式是用算术运算符和括号将运算对象 常量 变量 函数等 连接起来的 符合C语法规则的式子 C的各种运算符的结合性为 自左向右 2 算术运算符和算术表达式 当自动类型转换不能达到目的时 可以用强制类型转换 强制类型转换运算符可以将一个变量或一个表达式转换成所需的类型 如 double a将a转换成double类型 int x y 将x y的值转换成int型 float 5 3 将5 3的值转换成float类型例2 4main floatx inti x 3 6 i int x printf x f i d x i 运行结果 x 3 600000 i 3 3 强制类型转换 自增 自减运算符的作用是使变量的值增加1或减少1 i ii的值先增加 减少 1 然后再使用i i i 先使用i的值 然后i再增加 减少 1 注意 和 只能用于变量 不能用于常量和表达式 和 的结合方向 自左至右 如 i 相当于 i i j按 自左向右 的原则解释为 i j 而不是i j printf d d i i 若 自左至右 则为 3 3 若 自右至左 则为 4 3 标准C VC DEVC 遵循 自右至左 原则 包括函数调用时参数表中变量的求值顺序也是如此 4 自增 自减运算符 若i 3 j i 则j是值为3 i的值为4 若i 3 k i i i 则k的值为9 i的值为6 可以将 解释为 i 3 k i i i i i i 若i 3 k i i i 则k为18 i为6 turboc 标准C不允许 可以将 解释为 i 3 i i i k i i i 若i 3 j i 则j的值为4 i的值为4 1 的作用是将一个数据或一个表达式赋给其左边的变量 2 若 两边的类型不一致 当同为数值型或字符型时 在赋值时要进行类型转换 1 将实型数据赋给整型变量时 舍弃实数的小数部分 2 将整型数据赋给实型变量时 其数值不变 但以浮点数形式存储 3 将字符型数据赋给整型变量时 由于字符只占1个字节 而整型变量占2个字节 因此 将字符数据放到整型变量的低8位中 将字符处理为unsignedchar时 高8位补0 如将变量c 字符 376 赋给整型变量i 将字符处理为带符号的量时 高8位全补1 称为 符号扩展 2 9赋值运算符和赋值表达式 5 将unsignedint型数据赋给longint型变量时 不存在符号扩展问题 6 将非unsigned型数据赋给unsigned型变量时 原样照赋 3 复合的赋值运算复合赋值等价于a 3a a 3x y 8x x y 8 4 将带符号的int型数据赋给longint型变量时 进行符号扩展 即将数据送到低16位中 高16位补0或补1 不得写成 x x y 8 x 3x x 3 在C中可以使用的复合赋值运算符有 x y 3x x y 3 不得写成 x x y 3 其中 又可以是一个赋值表达式 a b 5 a的值为5a b c 5a b c的值均为5a 5 c 6 a的值为11a b 4 c 6 a的值为10a b 10 c 2 a的值为5 赋值表达式可以包含复合的赋值运算符 如 a a a a若a 12 则上式的求解步骤为 先进行a a a的运算 即a a a a 12 144 132 再进行a 132的运算 即a a 132 132 132 264 4 赋值表达式的一般形式 逗号表达式的一般形式 表达式1 表达式2 表达式n求解过程为 从左至右求各表达式的值 结果取最右边表达式的值 如 a 3 5 a 4表达式值为60 a 3 5 a 4 a 5表达式值为20 x a 3 6 3 x的值为18x a 3 6 ax的值为3例2 5main intm n i 5 j 6 m i n j printf d d d d n i j m n 2 10逗号运算符和逗号表达式 运行结果 6 7 6 6 例2 6 include stdio h main inti 1 printf d d d d n i i i i 运行结果 4 3 2 1 函数调用时 函数参数的求值顺序从右至左 2 11 关系运算符和关系表达式1 关系运算符及其优先顺序C有6种关系运算符 优先级相同 低 优先级相同 高 关系表达式是用关系运算符将两个以上算术 关系 逻辑 赋值或字符表达式连接起来的式子 关系表达式的值是一个逻辑值 真 非0 或 假 0 例如 c a b等效于c a b a b c a b ca bca b c 2 关系表达式 1 逻辑运算符及其优先顺序 C的三种逻辑运算符 逻辑与 逻辑或 逻辑非 和 为双目运算符 为单目运算符 a b若a b均为真 则a b为真 否则为假 a b若a b均为真 或之一为真 则a b为真 否则为假 a若a为真 则 a为假 否则为真 优先顺序 a b x y a b x y a b x y a b x y a a b a a b m a b n c d m a b n c d 3逻辑运算符和逻辑表达式 逻辑表达式是用逻辑运算符将关系表达式或逻辑量连接起来的式子 逻辑表达式的值是一个逻辑量 真 非0 或 假 0 3 逻辑表达式求解a b c若a为假 则表达式值为假 a b c若a为真 则表达式值为真 5 3 2 83 2 为真 则表达式值为真 2 逻辑表达式 2 12C语句结构C的五类语句 控制语句共9种 ifswitchforwhile 函数调用语句printf ThisisaCstatement c max a b 表达式语句任何表达式的末尾加上分号 就构成语句 空语句 复合语句用 括起来的一组语句称为复合语句 C本身不提供输入输出语句 输入和输出操作是由函数实现的 1 putchar函数 字符输出函数 putchar函数的作用是向终端输出1个字符 putchar c 输出字符变量或整型变量c的值 使用标准I O库函数时 必须在程序开头加上 include stdio h 命令 2 13数据的输入 输出 例2 7 include stdio h main chara b a o b k putchar a putchar b putchar n putchar a putchar n putchar b putchar n 运行结果 okok 1 printf函数的一般格式printf 格式控制 输出项表 其中 格式控制 为双引号括起来的 转换控制字符串 输出项表 为需要输出的一项或多项数据 变量 表达式 例 若a 3 b 4 则 printf d d n a b printf a d b d n a b 输出结果 3 4a 3 b 4 2 printf函数 格式输出函数 d以十进制输出整数 o以八进制输出整数 x以十六进制输出整数 u以十进制输出unsigned数据 c用来输出1个字符 s用来输出一个字符串 ms按m宽度输出字符串 若串长 m 则照字符串原样输出 若串长 m 则左边补空格 ms类似 ms 若串长 m 则字符串向左靠 右边补空格 m ns靠右输出字符串左边的n个字符 左补空格 n m m ns靠左输出字符串左边的n个字符 右补空格 n m f以小数形式输出实数 m nf输出宽度为m 其中小数为n位 若数值长度 m 则靠右输出 左边补空格 m nf同 类似 表示靠左输出 右边补空格 e以指数形式输出实数 m ne和 m ne此处m n 同f格式 g根据数值大小自动选择f格式或e格式中占用宽度小的一种输出实数 且不输出无意义的零 2 格式字符 例2 8main unsignedinta 65535 intb 2 printf a d o x u n a a a a printf b d o x u n b b b b 例2 9main charc a inti 97 printf c d n c c printf c d n i i printf 3c c 输出结果为 a 97a 97 a 例2 10main printf s 3s n CHINA CHINA printf 7 2s 4s 5 3s n CHINA CHINA CHINA 输出结果为 例2 11若f 123 456 下列语句 输出结果为 CHINA CHINA CH CHIN CHI getchar函数从终端输入1个字符 例2 12 include stdio h main charc c getchar putchar c 3 getchar函数 字符输入函数 此两句可改为 putchar getchar 或printf c getchar 4 scanf函数 格式输入函数 scanf函数可以用来输入任何类型的多个数据 1 scanf函数的一般形式scanf 格式控制 地址表列 其中 格式控制 的含义同printf函数 地址表列 是由若干个变量的地址或字符串的首地址组成的表列 例2 13main inta b c scanf d d d 变量名前不得加 注 为地址运算符 用 d d d 输入数据时 数据项之间不能用逗号而只能用空格 回车或Tab键作分隔符 运行结果 3 4 5 3 4 5 scanf函数的格式说明类似于printf函数 在标准C中用 d或 o x格式输入unsigned型数据 可以指定输入数据所占列数 系统自动按其截取所需数据 如 scanf 3d 3d 输入12 345 67时 a的值为12 b的值为67 输入数据时不能规定精度 2 格式说明 格式控制 后面应当是变量地址 而不应是变量名 如果在 格式控制 字符串中有除格式说明以外的其它字符 则在输入数据时应输入与这些字符相同的字符 如 scanf d d 若输入a b c时 则c1的值为 a c2的值为 c3的值为 b scanf函数执行中应注意的问题 例2 14从键盘输入一个大写字母 要求改用小写字母输出 例2 15求方程的根 a b c的值由键盘输入 设d 0 include math h main floata b c d x1 x2 p q scanf a f b f c f 运行情况 a 1 b 3 c 2 表示按Enter键 注意按格式输入数据 若此句改成 scanf f f f 则输入格式为 132 x1 1 00 x2 2 00 本章习题 P34一 填空2 72 82 182 192 202 22二 选择2 242 262 302 312 342 352 362 38三 上机题2 412 422 43
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!