一些C语言题目!求高手答疑!谢谢了!!!
1.任何不同的数据类型都不可以通用(正确){这句话为什么是正确的呢?整型和字符型不是可以通用吗?}2.已知inti;floatf;正确的语句是:A.int(f)%iB.(...
1.任何不同的数据类型都不可以通用(正确){这句话为什么是正确的呢?整型和字符型不是可以通用吗?}
2.已知int i; float f; 正确的语句是:A.int(f)%i B.(int)f%i {这题为什么选B?f不用括起来吗?)
3.设有以下变量定义,并以赋确定的值:char w;int x; float y;double z;则表达式w+x+z/y值得数据类型为:double {为什么?}
4.int x=3,y=5;printf("%d,%d\n",(x--,--y),x++); 输出为:4,3 {为什么不是4,2?}
5.int x=2,y=1; 则表达式(!x||y--)的值是:A.0 B.1 {为什么选B?} 展开
2.已知int i; float f; 正确的语句是:A.int(f)%i B.(int)f%i {这题为什么选B?f不用括起来吗?)
3.设有以下变量定义,并以赋确定的值:char w;int x; float y;double z;则表达式w+x+z/y值得数据类型为:double {为什么?}
4.int x=3,y=5;printf("%d,%d\n",(x--,--y),x++); 输出为:4,3 {为什么不是4,2?}
5.int x=2,y=1; 则表达式(!x||y--)的值是:A.0 B.1 {为什么选B?} 展开
4个回答
展开全部
我不是高手,但是我也把我的想法说出来看看。
1,int和char虽然可以转换,但是如果互相转换了,想得到的原值就不一样了。
2,第一条语句语法上应该是错误的;第二条把float类型的f模以int类型的i后,把他们的结果转换成(int)
3.double是占8个字节,folat和int都占4个字节,char占一个字节,所以double比她们高位,所以低位向高位进行自动类型提升、
4。
//输出以下结果
4,2
Press any key to continue
我输出的就是4,2
在括号中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。
例如:
int a,b,c;
如果这样 c=a,b;,c是a,如果是这样c=(a,b),c就是b
所以(x--,--y)是4
而x++是输出printf后再执行的,所以是2
5,(!x || y--),!x说明第一个是假了,x才是真,所以会判断下一个,y=1,所以或表达式中有一个语句是true,即整个表达式的逻辑值为true,所以你输出的是整个式子的逻辑值,1表示true,注意,y--是等整个式子运算完后再--不等同于--y;
1,int和char虽然可以转换,但是如果互相转换了,想得到的原值就不一样了。
2,第一条语句语法上应该是错误的;第二条把float类型的f模以int类型的i后,把他们的结果转换成(int)
3.double是占8个字节,folat和int都占4个字节,char占一个字节,所以double比她们高位,所以低位向高位进行自动类型提升、
4。
//输出以下结果
4,2
Press any key to continue
我输出的就是4,2
在括号中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。
例如:
int a,b,c;
如果这样 c=a,b;,c是a,如果是这样c=(a,b),c就是b
所以(x--,--y)是4
而x++是输出printf后再执行的,所以是2
5,(!x || y--),!x说明第一个是假了,x才是真,所以会判断下一个,y=1,所以或表达式中有一个语句是true,即整个表达式的逻辑值为true,所以你输出的是整个式子的逻辑值,1表示true,注意,y--是等整个式子运算完后再--不等同于--y;
展开全部
1.整型和字符型不是可以通用,只是可以相互转化,比如你可以说65是一个字符么?当然不可以,因为字符是被''引起来的,只能说65可以转换成字符'A';
2,.(inf)f表示强制类型转换,就是把float型的f强制转换成int型从而是它参与的运算合法。f不用括起来的,这只强制类型转换的固定格式;
3.一个表达式的最终结果的数据类型取决于参与运算的变量的类型的最高级别,在这double是最高级别的,参与运算的结果就是double、
4.你这里错了吧?本来就应该输出4,2!这里的(x--,--y)是逗号表达式,它的值取决于最后一个,也就是--y(先自身减一后输出),所以输出4,但是注意这里的x--,也就是说,现在x=2了,然后输出x++(先输出x的目前值,为2然后再自身加1);所以输出结果为4,2
5.(!x||y--)是或运算,有一个为真,结果就是1,!x=0,但是y--是先参与或运算,然后再减一的,所以参与运算的时候是1参与运算的,所以结果为1.
2,.(inf)f表示强制类型转换,就是把float型的f强制转换成int型从而是它参与的运算合法。f不用括起来的,这只强制类型转换的固定格式;
3.一个表达式的最终结果的数据类型取决于参与运算的变量的类型的最高级别,在这double是最高级别的,参与运算的结果就是double、
4.你这里错了吧?本来就应该输出4,2!这里的(x--,--y)是逗号表达式,它的值取决于最后一个,也就是--y(先自身减一后输出),所以输出4,但是注意这里的x--,也就是说,现在x=2了,然后输出x++(先输出x的目前值,为2然后再自身加1);所以输出结果为4,2
5.(!x||y--)是或运算,有一个为真,结果就是1,!x=0,但是y--是先参与或运算,然后再减一的,所以参与运算的时候是1参与运算的,所以结果为1.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1:如果可以通用,为什么还要设计两种类型呢,他们是不可以通用的,只是在混用的时候,编译器自动进行了类型的强制转换,转换为统一类型然后再用。
2:还是强制类型转换的问题,一般强制类型转换的格式"(你要转换到的类型)x"
3:这个你可以查一下自动类型转换的优先级
4:这个我看不懂(x--,--y)是啥意思?
5:你可以把他看成(!x||y);y--; (!x||y) == 1;
2:还是强制类型转换的问题,一般强制类型转换的格式"(你要转换到的类型)x"
3:这个你可以查一下自动类型转换的优先级
4:这个我看不懂(x--,--y)是啥意思?
5:你可以把他看成(!x||y);y--; (!x||y) == 1;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、数据类型不同是因为他们所占的内存空间不同,所表示的范围不同,
2、选择B是因为FLOAT类型的数据是不能用%运算符的。而B是将F转换为INT
3、这个是自动转换,在进行不同类型运算时,从所占内存小的类型转向内存占有多的类型
4、PRINGF里面的运算顺序是自右向左,所以先算X++,
5、!x||y-- 先算!x = 0再算y-- =1 ,1||0 == 1所以选B
2、选择B是因为FLOAT类型的数据是不能用%运算符的。而B是将F转换为INT
3、这个是自动转换,在进行不同类型运算时,从所占内存小的类型转向内存占有多的类型
4、PRINGF里面的运算顺序是自右向左,所以先算X++,
5、!x||y-- 先算!x = 0再算y-- =1 ,1||0 == 1所以选B
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询