C语言赋值表达式问题:若定义有语句:int a=3,b=2,c=1; 以下选项若定义有语句:int a=3,b=2,c=1; 以下选项中错误表达式是()a)a=(b=4)=3;b)a=(b=4)+c;c)a=b=c+1;d)1+(b=c=4);A为什么错?谭浩强书中(a=3*5)=4*3

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 06:50:49

C语言赋值表达式问题:若定义有语句:int a=3,b=2,c=1; 以下选项若定义有语句:int a=3,b=2,c=1; 以下选项中错误表达式是()a)a=(b=4)=3;b)a=(b=4)+c;c)a=b=c+1;d)1+(b=c=4);A为什么错?谭浩强书中(a=3*5)=4*3
C语言赋值表达式问题:若定义有语句:int a=3,b=2,c=1; 以下选项
若定义有语句:int a=3,b=2,c=1; 以下选项中错误表达式是()
a)a=(b=4)=3;
b)a=(b=4)+c;
c)a=b=c+1;
d)1+(b=c=4);
A为什么错?
谭浩强书中(a=3*5)=4*3又为什么对?

C语言赋值表达式问题:若定义有语句:int a=3,b=2,c=1; 以下选项若定义有语句:int a=3,b=2,c=1; 以下选项中错误表达式是()a)a=(b=4)=3;b)a=(b=4)+c;c)a=b=c+1;d)1+(b=c=4);A为什么错?谭浩强书中(a=3*5)=4*3
测试代码:
#include "stdio.h"
#include "conio.h"
main()
{
int a=3,b=2,c=1;
a=(b=4)=3;
printf("a=%d,b=%d,c=%d\n",a,b,c);
a=(b=4)+c;
printf("a=%d,b=%d,c=%d\n",a,b,c);
a=b=c+1;
printf("a=%d,b=%d,c=%d\n",a,b,c);
1+(b=c=4);
printf("a=%d,b=%d,c=%d\n",a,b,c);
(a=3*5)=4*3;
printf("a=%d,b=%d,c=%d\n",a,b,c);
getch();
}
测试平台:
【Dev_C++】 顺利通过
结果:
a=3,b=3,c=1
a=5,b=4,c=1
a=2,b=2,c=1
a=2,b=4,c=4
a=12,b=4,c=4
【TC2.0测试】
a=(b=4)=3;
(a=3*5)=4*3;
2句话有语法错误!
这个怎么说呢?其实就是赋值等号从右往左看就可以了.主要的原因是【C的标准和编译器】的实现不同吧.C89,99,11都有很多变化.而且不同的编译器对一些处理是不同的.
比如一个函数的多个参数含有表达式的话,是从左往左呢还是从右往左计算都有差异的.
如:int fun1(int a,int b,int c)
调用的时候:fun1(i++,++i,i++) 不同的编译器有不同处理.
再说大一点:不同的语言对同一功能也是不同的.
就说求模函数.C,Java,Javascript ,VB,C#,C++,PHP,Go等在负数求余的时候选择的处理是不一样的.-7.2%-3.8 -7.8%-3.2,-7.8%-3.8,-7.2%-3.2 楼主可以好好测试和琢磨下.
总结:这种题目总的来说就考试无厘头的试题了.实际项目和开发中我们也会老老实实在分成多条语句来写.考试的时候楼主就不要纠结了.
选A吧.不能将常量3赋值给一个表达式(非变量),b=4已经是个表达式了,既然是表达式就只有真假(即True和False)
楼主还记得这样的考题吗:
int a=3,b=2,c=1;
if(b=3)
{
printf("True");
}
else
{
printf("False");
}
所以本题,考试就选A!
楼主好运!

大一基础C语言问题有以下定义语句double a,b; intw; long c;若各变量已正确赋值,则下列选项中正确的表达式是______.D、w=a=b; 错误若变量a已正确定义,合法的语句是______.C、a=a++=5错误若变量已正确 C语言赋值表达式问题:若定义有语句:int a=3,b=2,c=1; 以下选项若定义有语句:int a=3,b=2,c=1; 以下选项中错误表达式是()a)a=(b=4)=3;b)a=(b=4)+c;c)a=b=c+1;d)1+(b=c=4);A为什么错?谭浩强书中(a=3*5)=4*3 c语言 若有定义语句 int b = 2; 则表达式 ( b c语言:请问一下这几个表达式为什么不对?==是什么意思?有以下定义语句double a,b;int w;long c;若各变量已经正确赋值,则下列选择中正确的表达式是?A) a=a+b=b++B) w%((int)a+b)C) (c+w)%(int)aD) w=a==b所以有 若有定义:double a=22;int i=0,k=18;为什么(i=a%11)是不符合C语言规定的赋值语句. (15) 有以下定义语句 double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是 A) a=(15) 有以下定义语句 double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是A) C语言:有以下定义语句 double a,b; int w; long c;若个变量已经正确赋值,则下列选项中不正确的表达式是()A) a=a+b=b++B) w%(int)(a+b)C) (c+w)%(int)aD w=a==b 计算机C语言7.有以下定义语句double a,b;int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是______.(2分) A.a=a+b=b++ B.w%((int)a+b) C.(c+w)%(int)a D.w=a==b; C语言问题:一个if语句后面如何跟两个赋值语句?比如说:if (x1) d1 C语言题目:若变量已正确定义并赋值,为什么“a=a+7=c+b”不符合C语言语法的表达式? 求C语言题,我是初学者,若变量均已正确定义并赋值,以下合法的C语言赋值语句是A)x=y==5;B)x=n%2.5;C)x=n=1D)x=5=4=1;为啥C若作为一个表达式是否合法为啥A中那连续的两个赋值号是怎么回事 c语言 w=a==b哪错了?6.有以下定义语句 double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是(c ).A) a=a+b=b++ B) w%(int)a+b) C)(c+w)%(int)a D) w=a==b;10.执行语句for(i=1;i++ C语言中赋值计算的问题:定义int a=10,则表达式a+=a-=a*=a的值是多少?怎么算出来的? 关于C++问题,我是初学者.有以下定义语句:double a,b; int w; long c;若各变量已正确赋值,则下列选项中红正确的表达式是:A.a=a+b=b++ B.w%((int)a+b)C.(c+w)%(int)aD.w=a==b求辨析 C语言问题,我是小白,最好能够解释下..若有定义:int a,b,c;下列表达式中,那一个是合法的C语言赋值表达式( ).① a=7+b=c=7 ② a=b++=c=7 ③ a=(b=7,c=12) ④ a=3,b=a+5,c=b-2 C语言表达式跟C语言语句有什么区别? C语言n=(-x)++; 表达式中变量定义为int 类型并已赋值 上述表达式怎么错了? 求c语言选择题答案写好题号谢谢^-^1.已有定义 int a[10],*p; 则正确的赋值语句是( ).A.p=100; B.p=a[5]; C.p=a[2]+2; D.p=a+2;2.若有定义int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则不能表示a数组元素的表达式是 ( )A