- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1. i=2;printf("%d",i++);打印出来的数字为?
答案:2
解:i++和++i均为自增表达式,执行完后,i都会加1,均会有i+=1,也就是i=2+1=3的效果。不过,两个表达式的值不同。i++表达式的值为自增1之前i的值。这里也就是2。++i为只增1之后的i的值,也就是3。
因此,i=2;printf("%d",i++);打印出来的数字为2;
i=2;printf("%d",++i);打印出来的数字为3。
2. unsigned char i=0;i--;i为?
答案:255
unsigned char的为1个字节,数据范围从0~255。
i=0已经位于数据范围的下边界,如果再-1,会发生负溢出,溢出至255。
如果i=255,再加1,则会发生正溢出,溢出至0。
类似的情况参考下表
表1
类型说明符 数的范围 字节数 字符型 char -128~127
即-27~(27-1) 1 无符号
字符型 unsigned char 0~255
即0~(28-1) 1 短整量 hort[ int] -32768~32767
即-215~(215-1) 2 无符号
短整型 unsigned short 0~65535
即0~(216-1) 2 长整型
整型 long int -2147483648~2147483647
即-231~(231-1) 4 无符号长整型
无符号整型 unsigned long
unsigned int 0~4294967295
即0~(232-1) 4
3. signed char i=0;i--;此时i为?
答案:-1
解:参考表1
signed char数据范围从-128~127。
当i=0,i自减1,不会发生溢出。
因此,i=0-1=-1
4. int i;for(i=0;i<100;i);循环次数为?100
5. int i;for(i=0;i<100;i++);循环结束后,i=?100
解:参考表1
int的范围为-21亿~+21亿
因此,i在0~100的范围内的自增1操作,不会发生溢出。
循环次数计算考虑i的值的变化,i从0变到99,都满足i<100循环执行条件。
当i=99+1的时候,条件被打破,循环推出。
因此,循环推出后i=100
如果没有溢出,则通过以下公式计算
for(i=start;i<end;i++)
循环次数为(end-1)-start+1=end-start(使用等比数列公式:项数=(an-a0)/delta+1
循环结束后i=end
如果没有溢出,则通过以下公式计算
for(i=start;i<=end;i++)
循环次数为end-start+1
循环结束后i=end+1
6. unsigned short i;for(i=0;i<40000;i++);循环次数为?A.40000 B.无穷大
答案:选A
参考表1
unsigned short范围为0~65535,
该循环不会溢出。
等差数列公式
an=a0+(n-1)*delta
n为项数,也就是循环次数
an=39999,a0=0
delta=1
循环次数=(an-a0)/detla+1=(39999-0)/1+1=40000
7. signed short i;for(i=0;i<40000;i++);循环次数为? A.40000 B.无穷大
答案为B
参见表1
signed short数据范围从-32~32767
循环会溢出
当i=32767的时候,i++使得i溢出到-32,因此,i永远不可能达到40000。该循环为死循环。
8. float i;for(i=0.0F;i<400000.0F;i+=1.0F);循环次数为A.400000 B.无穷大,答案A
9.float i;for(i=0.0F;i<400000000.0F;i+=1.0F);循环次数为A.400000 B.无穷大,答案B
表2
类型说明符 比特数
(字节数) 有效数字 数的范围 单精度 float 32(4) 7 10-38~1038 双精度 double 64(8) 16 10-308~10308
float有效位数为7,当i=399999的时候,执行i++
399999
+ 1
----------------------------
1加在第6位有效数字上,在7位以内,则不会出现精度不够的情况。
如果是i=399999999.0F,同样执行i+=1.0F
1是加到第9位有效数字上的,会出现精度
您可能关注的文档
- 7071211109丁小刚 考试.doc
- 7年级思想品德期末试题.doc
- 7寸屏高压机使用维护说明(威纶通).doc
- 8 read 2004 真题 考研政治和解析.doc
- 7.11_信息技术促进城乡教师专业发展的工作研究—惠东县平山一小城乡联动工作研究_广州朱乙生(三期).doc
- 8 政治-南通中学2014-2015学年高二上学期期末考试政治(必修)试题.doc
- 8 西安交通大学教学中心二楼(第8组).doc
- 7组品质歌手将为融信十年献唱 汪涵确定主持演唱会.doc
- 8-优化等级结构,确保原料提供上水平.doc
- 8.24《并购志》国企混改丨严防mbo?试点意见:国企员工以岗定股,个人最多拿1%.doc
文档评论(0)