- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)