第7章变量及字符处理的几个问题

上传人:博****1 文档编号:580476730 上传时间:2024-08-29 格式:PPT 页数:12 大小:452.54KB
返回 下载 相关 举报
第7章变量及字符处理的几个问题_第1页
第1页 / 共12页
第7章变量及字符处理的几个问题_第2页
第2页 / 共12页
第7章变量及字符处理的几个问题_第3页
第3页 / 共12页
第7章变量及字符处理的几个问题_第4页
第4页 / 共12页
第7章变量及字符处理的几个问题_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《第7章变量及字符处理的几个问题》由会员分享,可在线阅读,更多相关《第7章变量及字符处理的几个问题(12页珍藏版)》请在金锄头文库上搜索。

1、2024/8/291第七章第七章 变量及字符处理的变量及字符处理的几个问题几个问题变量的存储模式变量的存储模式同名变量的分辨同名变量的分辨变量赋初值及初值问题变量赋初值及初值问题实型变量的存储及常见问题实型变量的存储及常见问题字符处理的结束标志问题字符处理的结束标志问题2024/8/292一、变量的存储模式一、变量的存储模式设有定义:设有定义:inta=1;则系统将在内存中给变量则系统将在内存中给变量a分配分配两个字节的空间,并将两个字节的空间,并将1存入。存入。存储时先存低字节还是先存高存储时先存低字节还是先存高字节取决于字节取决于CPU,图中所示的,图中所示的小端模式的存储方式。小端模式的

2、存储方式。0000000100000000a低地址高地址2024/8/293二、同名变量的分辨二、同名变量的分辨inta=1,b=2,c=3;intmain()inta,b;a=4;/?变量变量b=5;/?变量变量c=6;/?变量变量if(ab)intc;c=a;/?变量变量a=b;/?变量变量b=c;/以下代码以下代码略略2024/8/294三、变量赋初值及初值问题三、变量赋初值及初值问题赋初值时不能连等赋初值时不能连等inta=b=c=3;/错误错误变量不赋初值时,其值:变量不赋初值时,其值:全局变量:全局变量:清为清为0模式模式局部静态变量:局部静态变量:清为清为0模式模式局部自动变量(

3、含寄存器变量):局部自动变量(含寄存器变量):不确定不确定2024/8/295四、实型变量的存储及常见问题四、实型变量的存储及常见问题实型变量的存储遵循实型变量的存储遵循IEEE754格式,其存储规则格式,其存储规则是:任何一个实数都要表示成规定格式:是:任何一个实数都要表示成规定格式:(符号符号)M*2n其中其中1=M2如:如:30.0表示为表示为+1.875*24-0.3925表示为表示为-1.57*2-2然后计算机将然后计算机将符号、指数、小数符号、指数、小数三部分分别存储,三部分分别存储,如下表所示:如下表所示:符号位(符号位(0或或1)指数部分指数部分(n+127)纯纯小数小数部分部

4、分(M-1)占占1位位第第31位位占占8位位第第30位位第第23位位占占23位位第第22位位第第00位位2024/8/296对于对于30.0=+1.875*24符号位符号位:+表示为:表示为:0指数部分指数部分:4+127=131表示为:表示为:10000011纯小数部分纯小数部分:0.875表示为表示为:11100000000000000000000故故30.0存为存为4字节的字节的float型变量中时,其内存型变量中时,其内存存储状况是存储状况是(s7_1验证验证):01000001111100000000000000000000注意注意:实数的存储有时是不精确的实数的存储有时是不精确的如

5、:如:1.2的纯小数部分是的纯小数部分是0.2,化为二进制应为:,化为二进制应为:0011001100110011001100110011.但但IEEE754规定只存储前面规定只存储前面23位,位,23位之后的或者进位或者丢弃,位之后的或者进位或者丢弃,都将导致存储的值出现偏差。都将导致存储的值出现偏差。不要试图比较不要试图比较float型型的的变量变量与与常量是否相等常量是否相等,下面程,下面程序序(s7_2)的运行结果是:的运行结果是:不相等不相等floatx=0.2;if(x=0.2)printf(“相等相等n”);elseprintf(“不相等不相等n”);2024/8/297同样地,

6、下面的循环是同样地,下面的循环是无限循环,其输出结果是:无限循环,其输出结果是:0.10.20.30.40.50.60.70.80.91.01.11.2#includeintmain()floatx;for(x=0.1;x!=1.0;x+=0.1)printf(“%4.1f”,x);return0;2024/8/2982024/8/299五、字符处理的结束标志问题五、字符处理的结束标志问题例例7-3:键盘输入一行字符,统计大写字符的个数键盘输入一行字符,统计大写字符的个数方法一:方法一:#includeintmain()charc;intn=0;while(c=getchar()!=n)/遇到

7、换行符停止循环遇到换行符停止循环if(c=65&c=90)n+;printf(“%dn”,n);return0;2024/8/2910例例7-3:键盘输入一行字符,统计大写字符的个数键盘输入一行字符,统计大写字符的个数方法二:方法二:#include int main() char s80; int i, n = 0; gets(s); for(i = 0; si != 0; i+) /空字符作为结束标志空字符作为结束标志 if(si = 65 & si = 90) n+; printf(“%dn”, n); return 0;2024/8/2911键盘输入键盘输入:abcdabcdnabcd0键盘缓冲区执行gets(s)数组 s2024/8/2912问题和实训问题和实训习题:习题:2,3,4

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号