题目
有以下程序 int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; .
有以下程序
main()
{
int a=0,b=0,c=0,d=0;
if(a=1) b=1;c=2;
else d=3;
printf(“%d,%d,%d,%d ”,a,b,c,d);
}
程序输出
A)0,1,2,0 B) 0,0,0,3 C)1,1,2,0 D)编译有错
请告诉我哪里有编译错误
有以下程序
main()
{
int a=0,b=0,c=0,d=0;
if(a=1) b=1;c=2;
else d=3;
printf(“%d,%d,%d,%d ”,a,b,c,d);
}
程序输出
A)0,1,2,0 B) 0,0,0,3 C)1,1,2,0 D)编译有错
请告诉我哪里有编译错误
提问时间:2021-12-30
答案
if(a=1) b=1;c=2;
这一行有问题
if和else之间永远只能有一条语句,而b=1;c=2;是两条语句!
c语言一条语句可以写在多行,多条语句也可以写在一行,关键是就分号,一个分号到上一个分号(或者是{,左半花括号)之间的内容都被认为是一条语句
所以想在if和else之间执行多条语句的时候,必须用花括号{},使多条语句组成一条复合语句.
如果把b=1;c=2;改为b=1,c=2;就可以编译通过了,它的结果是1,1,2,0
原因是if(a=1)是先给a赋值,然后判断a的值,非0则执行if后紧跟的语句,若为0则执行else后跟的语句,这里给a赋值为1,非0,因此执行给b,c赋值的语句,所以结果是1,1,2,0
进一步,如果把if(a=1)改为if(a=0),程序执行流程跟刚才说的一样,但是由于a值为0,因此执行else后的语句,所以最后结果会是0,0,0,3
再进一步,如果把if(a=1)改为if(a==1),那么程序执行的时候,判断a是否等于1,若等于则给bc赋值,否则给d赋值,这里a==0,因此执行else后的语句,结果跟前一种情况一样,会是0,0,0,3
这一行有问题
if和else之间永远只能有一条语句,而b=1;c=2;是两条语句!
c语言一条语句可以写在多行,多条语句也可以写在一行,关键是就分号,一个分号到上一个分号(或者是{,左半花括号)之间的内容都被认为是一条语句
所以想在if和else之间执行多条语句的时候,必须用花括号{},使多条语句组成一条复合语句.
如果把b=1;c=2;改为b=1,c=2;就可以编译通过了,它的结果是1,1,2,0
原因是if(a=1)是先给a赋值,然后判断a的值,非0则执行if后紧跟的语句,若为0则执行else后跟的语句,这里给a赋值为1,非0,因此执行给b,c赋值的语句,所以结果是1,1,2,0
进一步,如果把if(a=1)改为if(a=0),程序执行流程跟刚才说的一样,但是由于a值为0,因此执行else后的语句,所以最后结果会是0,0,0,3
再进一步,如果把if(a=1)改为if(a==1),那么程序执行的时候,判断a是否等于1,若等于则给bc赋值,否则给d赋值,这里a==0,因此执行else后的语句,结果跟前一种情况一样,会是0,0,0,3
举一反三
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
1,人们染上烟瘾,最终因吸烟使自己丧命.
最新试题
- 1解方程组2x-y2+6y-11=0,x-2y-1=0
- 2在西游记里,唐僧师徒去西天取经,历经千辛万苦,途中遇火焰山阻挡,多亏孙悟空大站牛魔王,铁杉公主,三次知取芭蕉扇,才得以煽灭了火焰山的熊熊烈火,使得师徒四人顺利西进.
- 3加多大压力可以使水蒸气液化
- 4( ) 减数第( )次分裂
- 5AlCl3与NaOH
- 6行 为 美 环 境 结尾的成语
- 76sinx^2+sinxcosx-2cosx^2=0求sin(2x+π/3)
- 8掉在井里的狐狸和公山羊的主要内容,100字左右
- 9汽车在水平公路上匀速直线行驶,下列各对力中是平衡力的是( ) A.汽车受到的牵引力和重力 B.汽车的重力和车对路面的压力 C.汽车受到的牵引力和路面对车的阻力 D.汽车对路面的压力
- 10按要求写成语:日雕月啄
热门考点
- 1是 含烃的衍生物
- 2汽车从甲地开往乙地,原计划10小时到达,实际每小时多行15千米,行了8小时后,发现已经超过乙地20千米.原计划每小时行多少千米?
- 3a strange person 的中文翻译
- 4巾字旁.加个失去的失.念什么
- 5高中鲁人版语文必修一必背古诗词
- 6已知线段AB=20厘米,试探讨下列问题
- 7鸡比鸭多13只,鹅比鸡多12只,鹅的数量是鸭的两倍,问鸡鸭鹅各是多少只?
- 8简便计算 (2+4+6+8+……+100)-(1+3+5+7+9+……+99)
- 9三个连续的两位数除以五的余数之和是七,除以七的余数之和是九,除以九的余数之和是十五,
- 10甲乙两车分别从ab两地同时相对开出,相遇时甲车行了全程的3/1,当乙车到达A地时,甲车离B地还有l5千米.A