合法的C语言赋值语句是 A)a=b=99 B)i++; C)a=99,b=35 D)k=int(a+b);

silm 2001-11-30 07:50:16
合法的C语言赋值语句是
A)a=b=99
B)i++;
C)a=99,b=35
D)k=int(a+b);
请在ABCD中选择
...全文
5072 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
love_snoopy 2001-12-01
  • 打赏
  • 举报
回复
假设K为float,A,B也为float,
那么k=int(a+b);
和k=float(int(a+b));
比如下面:
#include <stdio.h>
main(){
float a=1.1,b=2.2,k;
k=int(a+b);
printf("%f,%f\n",a,b);
printf("%f",k);
return 0;
}
输出为(bc++3.1)
1.100000,2.200000
3.000000

假设b为char b='b';并且该为printf("%f,%d",a,b);
输出为(bc++3.1)
1.100000,98
99.000000
也就是说k=int(a+b);
等价于k=(type of k)(int(a+(type of a)b));


duck_yuan 2001-12-01
  • 打赏
  • 举报
回复
B
勉励前行 2001-12-01
  • 打赏
  • 举报
回复
如果認為:
i++;
合法的話,
定義:
struct MyTest
{int K
}i;
你看看
i++;
是怎么回事? 如果定義: const int *i ;
i++; 一樣過不了編譯。
而且,i++;這叫不叫賦值,i = i+1;這是賦值語句沒錯! i++,++i,嘛,大家說說了。
如果變量值改變就叫賦值的話,一條賦值語句可以給無限多個變量賦值(用++--) ,而且:
int x=1,y=1;
const int i = 0 ;
const int j = 0 ;
x = x +i-j ; 內容沒被改變,這不是合法賦值語句。? //編譯器會忽略這條語句。
x = x +i-j+y++;這是一條給y賦值的合法的賦值語句?
拋開變量定義來談結果,總是那么無聊。
chulizhi 2001-11-30
  • 打赏
  • 举报
回复
答案为b.
a没有;号,
c为a=99;b=35;
d 为k=(int)(a+b);
love_snoopy 2001-11-30
  • 打赏
  • 举报
回复
当然选D.
不管a,b是什么类型,他们的临时运算结果会被转换为int型的,然后转换后的int型结果再转换为K的类型,付值给K.
ttzzgg_80713 2001-11-30
  • 打赏
  • 举报
回复
b
flylzz 2001-11-30
  • 打赏
  • 举报
回复
当然是D了!
关键是你要弄清楚什么叫赋值,
最重要的是赋值的必有等号!
hz129 2001-11-30
  • 打赏
  • 举报
回复
d中的int(a+b)是可以在c++中运用的强制类型转换,在C里好象是不对的
sleky 2001-11-30
  • 打赏
  • 举报
回复
无聊!
shornmao 2001-11-30
  • 打赏
  • 举报
回复
烂泥巴说得很对。
勉励前行 2001-11-30
  • 打赏
  • 举报
回复 1
a,句未沒;
b,沒賦值
c,句未沒;
d,
有左值,有賦值符"="號,有右值,還有表達式結束標志";"所以是一個合法的賦值表達式,
至于變量是否合法,能否通過編譯又是另一回事了。


kingfish 2001-11-30
  • 打赏
  • 举报
回复
c
wuood 2001-11-30
  • 打赏
  • 举报
回复
c
heimeng 2001-11-30
  • 打赏
  • 举报
回复
B 给分

70,028

社区成员

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

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