C语言赋值表达式问题:若定义有语句:int a=3,b=2,c=1; 以下选项
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/21 15:40:12
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又为什么对?
若定义有语句: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!
楼主好运!
#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语言赋值表达式问题:若定义有语句:int a=3,b=2,c=1; 以下选项
若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是
计算机C语言7.有以下定义语句double a,b;int w; long c;若各变量已正确赋值,则下列选项中正确的表
有以下定义语句double a,b;int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是____
C语言,若有说明:int *p1,*p2,m=5,n; 以下是正确赋值语句的选项是
c语言 若有定义语句 int b = 2; 则表达式 ( b
大一基础C语言问题有以下定义语句double a,b; intw; long c;若各变量已正确赋值,则下列选项中正确的
1. 若以下选项中的变量已正确定义,则正确的赋值语句是 . A) x1=26.8%3; B) 1+2=x2; C) x3
若变量已正确定义并赋值,下面符合C语言语法的表达式是( ).A.a:=b+1 Ba=b=c+2 C.int 18.5%3
若有定义:int x ,* p ; 则以下正确的赋值表达式是______ A.p = &x B.p = x C.*p =
若变量已正确定义并赋值,下面符合C语言语法的表达式是( ).(1分) A、a:=b+1 B、a=b=c+2 C、int
(15) 有以下定义语句 double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表