第2章 C语言的基本数据类型与表达式习题解答.docVIP

第2章 C语言的基本数据类型与表达式习题解答.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 C语言的基本数据类型与表达式习题解答 1.指出下列常数中哪些是符合C语法规定的? ‘\’ ‘101’ “\\” e3 019 0xle “ab\n” 1 符合C语法规定的常数有: “\\” 019 0xle “ab\n” 1.e5 ‘\’ 转义字符不能作字符常量 ‘101’字符串要双引号,字符要转义字符: ‘\ e3 浮点常数在e之前应有尾数 (2+3)e(4-2) 浮点常数的尾数和指数部分均不能是表达式 5.2e2.5 浮点常数的指数部分不能是小数。 2.请找出下列程序中的错误,改正后写出程序运行结果。 ⑴ #includestdio.h void main() { int x,y=z=5,aver; //定义变量时不能连续赋值,aver为正数不能存储带小数的平均数 x=7 //以“;”语句结束 AVER=(x+y+z)/3 //行末差“;”,AVER为小写, 除数应有小数部分,商才有小数部分 printf(AVER=%d\n,aver) //行末差“;” } 正确的程序如下: #includestdio.h void main() { int x,y=5,z=5; float aver; x=7; aver=(x+y+z)/3.0; printf(AVER=%f\n,aver); } 运行结果:AVER=5.666667 ⑵ #includestdio.h void main() { char c1=a;c2=b;c3=c;//连续定义变量有“,”分隔 int a=3.5;b=A; printf(a=%d b=\%c\\end\n,a,b); //输出语句无语法错,但格式不清晰 printf(a%c b%c\bc%c\tabc\n,c1,c2,c3); } 正确的程序如下: #includestdio.h void main() { char c1=a,c2=b,c3=c; int a=3.5,b=A; printf(a=%d b=\%c\ \end\\n,a,b); printf(a%c b%c \bc%c \tabc\n,c1,c2,c3); } 运行结果: a=3 b=A end aa bbcc abc 3.写出下列赋值的结果,表格中写了数值的是要将它赋给其他类型的变量,将所有的空格真上赋值后的数据(实数保留到小数后两位)。 int 99 104 66 55 68 -1 char ‘c’ ‘h’ ‘B’ ‘7 ‘D’ -1 Unsigned int 99 104 66 55 68 ffffffff Float 99.00 104.00 66.00 55.78 68.00 -1.00 Long int 99 104 66 55 68 -1 4.写出程序运行结果 ⑴ #includestdio.h void main() { int i,j; i=8,j=10; printf(%d %d %d %d\n,i,j,++i,j++); } 运行结果: 9 10 9 10 ⑵ #includestdio.h void main() { int a=1,b=2,c=3; printf(%d %d %d %d\n,a=b=c,a=b==c,a==(b=c),a==(b==c)); } 运行结果: 3 1 0 0 ⑶ #includestdio.h void main() { int a=10,b=20,c=30,d; d=++a=10||b--=20||c++; printf(%d %d %d %d\n,a,b,c,d); } 运行结果: 11 19 30 1 注:在表达式:“d=++a=10||b--=20||c++;”中有三个或项,从左到右依次进行运算,第一个或项结果为0,第二个或项结果为1,因此最终的或结果肯定为1,程序没有进行第三个或项的计算,所以c++没有执行,该行运行结束时,c仍为30。 5.写出下面表达式的值(设a=10,b=4,c=5,d=1,x=2.5,y=3.5). ⑴a%=(b%=3) #includestdio.h void main() { int a=10,b=4; printf(%d \n,a%=(b%=3)); } 结果为:0 注:连续赋值操作从右向左进行: c=b%=3; //c=1 a%=c; //10/1的余数为0,向a赋0 ⑵a+=a-=a*=a #includestdio.h void main() { int a=10; printf(%d \n,a+=a-=a*=a); } 结果为:0 注:连续赋值操作从右向左进

文档评论(0)

_______ + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档