课程概况学时分配:课堂——48学时实验——计划内30学时内容摘要:

‟\a‟ ‟\7‟ ‟\x7‟ ≥ ‟\362‟ ‟\xF2‟ 例:在程序中表示字符序列 ABC、 123 ABC、 123 构成字符串常量 49 例:输出一个字符序列 (字符串 ) printf(How are you?\n)。 How are you? /*输出结果 */  /*光标位置 */ 例:输出包含控制字符的字符串 printf(abc\tde\rf\tg\n)。 printf(h\ti\b\bjk)。 fgde /*为空格 */ h jk 列: 123456789012345678901234567890… YS YS 50 2. 字符变量 ——有两种类型; 标识符 存储位 以 %d格式处理时的区别 char 8 bit 解释为定点补码数,高位符号位。 unsigend char 8 bit 解释为无符号数, 8位都视视做数据位。 51 3. 字符量的存储及引用 例: char c1, c2。 c1=‟A‟。 c2=c1。 存储: 字符的 ASCII编码 c1: 若: c1按字符解读 ——字符 A c1按整数解读 —— +65 0 1 0 0 0 0 0 1 52 C允许字符量与 0~ 255之间的整形量互相通用: 通用的范围包括: 1) 互相赋值 2) I/O格式符通用 3) 进行算术、关系运算 53 例:整型量、字符量互相赋值和格式符通用 main( ) { char c。 int i。 c=97。 /*c: 01100001*/ i=‟ b‟。 /*i:00000000 01100010*/ printf (”%c,%d\n”, c, c)。 printf (”%c,%d\n”, i, i)。 } a,97 b,98 54 例:字符量与整型量的算术运算 main( ) { char c1, c2。 c1=‟A‟。 c2=‟B‟。 c1=c1+32。 c2=c2+32。 printf(”%c%c”, c1, c2)。 } ab 55 例:字符量与整型量的关系运算 main( ) { char c1。 scanf(”%c”。 amp。 c1)。 if(c1=97amp。 amp。 c1=122) c1=c132。 pintf(”%c”, c1)。 } a↙ 输入 A 输出 56 例:不可键入字符的表示 main( ) { int a, b。 char c。 scanf(”%d,%d”, amp。 a,amp。 b)。 c=242。 /*or c=‟\xf2‟ */ if(a=b) printf(” %d%c%d”, a, c, b)。 else printf(” %d%d”, a, b)。 } 8, 5↙ 输入 8≥5 输出 57 例: unsigned char类型的使用 main( ) { char c。 c=254。 /*or c=‟\xfe‟ */ printf(” %c\t%d”, c, c)。 } ■ 2 为什么用 %d格式解读 c输出的不是 254。 因 %d是按有符号补码解读 c的。 c: 相当于 2的补码 1 1 1 1 1 1 1 0 58 上例改为: main( ) { unsigned char c。 c=254。 /*or c=‟\xfe‟ */ printf(” %c\t%d”, c, c)。 } ■ 254 即: %d输出 char型 ——按有符号数解读; %d输出 unsigned char型 ——按无符号数解读。 59 4. 字符串常量 1) 表示 ——由一对双引号括起来的字符序列; ” How do you do.” 长度: 14 ”” 长度: 7 ”a” 长度: 1 在程序中表示下列字符串: x≥y ”x\xf2y” 长度: 3 C:\DOS ”C:\\DOS” 长度: 6 ”OK!” ”\”OK!\” ” 长度: 5 60 2) 存储 ——双引号内每个字符占用一个字节,所有 字符按顺序连续存储,自动在最后加入字串 结束标志:空字符 例:   0010 0000 0000 0000 空字符 : 名为 NUL的控制字符 其 ASCII码值: 0 程序中表示:’ \0 ‟ 注意 : 空字符 与 空格字符 是不同的字符。 H o w  d o  y o u  d o . \0 61 3) 用途 ——给字符数组赋初值; 在 I/O函数中作为格式字符串。 例: printf(”Please Input a,b:”)。 scanf(”%d,%d,%d”, amp。 a, amp。 b)。 YS 62 3. 6 变量赋初值 在定义变量时给变量赋值叫做赋初值。 例: int a=10, b=5, c。 例: int x=y=z=0。 编译时将指出错误 可改为: int x, y, z=x=y=0。 或: int x, y, z。 x=y=z=0。 /*初始化变量 */ 63 3. 7 各类数值型数据间的混合运算 包括: 整型常量 / 变量 实型常量 / 变量 混合运算 字符型常量 / 变量 例:若有如下定义 int i。 float f。 long l。 double d。 且每个变量已赋值: 则混合表达式 8+2+39。 a39。 + i*f- d/l 合法。 64 混合运算规则: 1) 通常类型相同直接运算,结果保持原类型; 2) 类型不同,系统自动转换为同一类型再进行运 算,结果为转换后的类型。 不同类型运算时的自动转换规则: 高级 double float long unsigned 低级 int char、 short 转换方向 65 注意: 1) 因类型越高,数值范围越大、精度越高,因此这种转换无精度损失,是安全的; 2) 表达式中只要有一个实型量 (单或双 ),表达式 结果为双精度实型量; 3) 对变量而言,仅仅是将读出的变量值进行了转 换,变量的类型和变量存储内容保持不变。 i f i f : … … 10 66 3. 8 算术运算符和算术表达式 1. C算术运算符简介 34种、 13类、 15个优先级、 2个结合性; 1) 算术 6 ) 条件 11 ) 分量 2) 关系 7 ) 逗号 12 ) 下标 3) 逻辑 8 ) 指针 13 ) 函数调用 4) 位 9 ) 求字节数 5) 赋值 10 ) 强制类型转换 67 2. 算术运算符和算术表达式 1) 基本算术运算符 + 加 / 取正 (双目运算符 / 单目运算符) - 减 / 取负 (双目运算符 / 单目运算符) * 乘 (双目运算符) / 除 (双目运算符) % 整除取余 (双目运算符) 68 注意: 1) +、 为复用运算符; 如: int a, b, c。 a=5。 b=a3。 /*减:两个运算目标 */ c=a。 /*取负:一个运算目标 */ 2) 两整数相除结果仍为整数 如: 5/22 5/31 1/20 123/1012 要依实际应用情况加以利用或避免。 69 3) 求余运算要求两运算元素均为整型,余数仍 为整型; 如: int a, b, c。 a=11%3。 /*2 a*/ b=5%a。 /*1 b*/ c=b%a。 /*1  c*/ c=123%10。 /*分离出个位 3*/ 若有 : a=%3。 编译时将视为语法错。 70 2) 算术表达式 C表达式: 由运算符、括号将运算元素连接起来 的有值的式子。 算术表达式: 由算术运算符、括号将数值型的运算元素连 接起来,其值为数值量的式子。 其中: 运算元素可为常量、变量、函数调用等。 如: 28+a sin()*10+y 71 注意: 1) 为保证表达式运算关系的正确性,需加入必要的括号,并注意括号的层次及配对关系; 2) 乘号不得省略; 3) 应避免整型量相除可能带来的不良影响; 4) 函数调用是以函数的返回值来参与运算的。 72 3)算术运算符的运算优先级和结合性 C运算符优先级: 15个 结合性:两个 运算规则: C在处理表达式时,不同级别运算符的运算顺 序按优先级别由高到低进行。 同一级别运算符的运 算顺序按本级别的结合性进行。 结合性: 左结。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。