求教c语言基础题

weixin_44091029 2019-05-21 05:41:20
char w;int x;float y;double z;则表达式w*x+(int)(z-y)的结果类型为() A。float B。char C。int D。double
...全文
103 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_44091029 2019-05-23
  • 打赏
  • 举报
回复
引用 3 楼 诉说丶淡黑色的回复:
double吧,double 的等级比int高,int会向double转换
好像强制类型转换会把后边转换成int
诉说丶淡黑色 2019-05-23
  • 打赏
  • 举报
回复
对,我看错了
自信男孩 2019-05-22
  • 打赏
  • 举报
回复
应该是C了,注意一下强制类型转换,把后面的看成int,前面char转int,所以最后是int
  • 打赏
  • 举报
回复
int,C,(int)强制转换
六道佩恩 2019-05-22
  • 打赏
  • 举报
回复
C 呀。如果你确定不了,就用 sizeof(w*x+(int)(z-y))看看,结果为4就是int。 如果非要说4字节也有可能是unsigned int,我有办法验证这个常量是int还是unsigned,前提是你需要的话。
bbcvb 2019-05-21
  • 打赏
  • 举报
回复
引用 楼主 weixin_44091029 的回复:
char w;int x;float y;double z;则表达式w*x+(int)(z-y)的结果类型为()
A。float
B。char
C。int
D。double

(int)(z-y)中无论(z-y)转成什么类型最后都被int强制截断
所以C
chen_wenyue 2019-05-21
  • 打赏
  • 举报
回复
选择C int类型
拥抱Linux 2019-05-21
  • 打赏
  • 举报
回复
应该是C,int型。
(1)隐式类型转换,也叫自动类型转换,纯粹由编译器自主完成,转换的方向是从小的数据类型向大的数据类型转换。
(2)显式类型转换,也叫强制类型转换,是由用户(程序员 / 代码)主动发起的类型转换行为,转换的方向与隐式类型转换正好相反:从大的数据类型向小的数据类型转换,否则也没必要进行显式转换了。
CaptainXue 2019-05-21
  • 打赏
  • 举报
回复
选C;原因如下:
w*x中w是char型,x是int型,当char型变量用于运算的时候,一般都是用字符对应的ASCII码值参与运算的,而ASCII码值是int型,所以w*x也是int型;
(int)(z-y)是把z-y的计算结果强制转化为int型。
所以最终结果是int型
诉说丶淡黑色 2019-05-21
  • 打赏
  • 举报
回复
double吧,double 的等级比int高,int会向double转换
weixin_44091029 2019-05-21
  • 打赏
  • 举报
回复
引用 1 楼 hzh_Beyond的回复:
第一眼看过去,C
我也觉得是C但是室友说肯定是D,互相说服不了所以来问问大家
浮一大白开水 2019-05-21
  • 打赏
  • 举报
回复
第一眼看过去,C

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧