c语言习题集(100题)+.doc

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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位有效数字上的,会出现精度

文档评论(0)

pkaokqunw + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档