c语言中,如果a=1,b=2,问如何通过程序实现它输出12,即多个数据集合成

作者&投稿:商潘 (若有异议请与网页底部的电邮联系)
C语言中int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf~

C语言提供一种特殊的运算符——逗号运算符。用它将两个表达式连接起来。如:

  3+5,6+8

称为逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为

         表达式1,表达式2

逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。例如,上面的逗号表达式“3+5,6+8”的值为14。又如,逗号表达式
  a=3*5,a*4
对此表达式的求解,读者可能会有两种不同的理解:一种认为“3*5,a*4” 是一个逗号表达式,先求出此逗号表达式的值, 如果a的原值为3,则逗号表达式的值为12,将12赋给a, 因此最后a的值为12。另一种认为:“a=3*5”是一个赋值表达式”,“a*4”是另一个表达式,二者用逗号相连,构成一个逗号表达式。这两者哪一个对呢?赋值运算符的优先级别高于逗号运算符, 因此应先求解a=3*5(也就是把“a=3*5”作为一个表达式)。经计算和赋值后得到a的值为15,然后求解a*4,得60。整个逗号表达式的值为60。

32767=2^15-1,用16位二进制表示是:0111 1111 1111 1111,其中最高位表示符号,0为正,1为负。
#includeint main(){short int a=32767;char b;b=a;printf("%d
",b);return 0;}上面的程序的输出结果为:-1,为什么是-1呢?
char类型占一个字节的存储空间的,而short int类型占两个字节的存储空间,当执行 b=a; 语句后, 那么a的高8位部分就被截断了,存放到b变量的只有其低8位,即:1111 1111。而整形数值是以补码形式存放在内存当中的。-1的原码为:1000 0001,原码转变为补码的方法:符号位不变(即最高位1不变),数值部分取反加1,所以-1的补码为:1111 1111,所以输出结果自然是-1了咯,(原码、补码是计算机组成原理的内容,你可以查阅相关资料)。

#include <stdio.h>
int main(void){
int a=1;
int b=2;
int c=a*10+b
printf("%d",c);
return 0;
}

在C语言中,设有如下定义: int a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式...
答:n的值仍然为2,没有改变!过程:先计算a>b,值为0,赋给m的值为0,表达式m=a>b的值也是0。对于&&逻辑运算,不管后面(n=c>d)的值如何,都不影响(m=a>b)&&(n=c>d)的最终结果,因此,C语言不再对表达式n=c>d进行计算。因而n的值没有改变!!

在C语言中,运行main(){int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a+b...
答:逻辑或跟与||,&&有部完全运算的,比如在左边的表达式可以决定怎么个式子的值时,右边一个表达式讲不在执行。例如(表达式1)||(表达式2),当表达式1等于1时,就不在计算表达式二,会警告。(表达式)&&(表达式2)当表达式1等于0是,表达式二也不在执行,会警告 ...

c语言,一道题若a=1,b=2则a‖b的值是3。这个不是或的意思吗?为什么答案...
答:如果是|,则答案是对的。因为|是按位或运算,1以2进制表示是01,2以2进制表示是11,01|11=11(10进制的3)。如果是||,则答案错了,此时应该是1。

一道C语言的题?设int a=1,b=2,c=3,d=4;则表达式a++<b?a:c<d?--a...
答:它的值为 true(因为 a 在执行前为 1,小于 b 的值 2)。然后,根据三目运算符的语法,它会选择第一个值 a,即 1。接下来,对于表达式 c<d,它的值也为 true,所以会选择 --a,即 2。最后,结果为 2。请注意,在这里 a 被自增了一次,但是它的值并不会对后续的计算产生影响。

编程题:已知a=1, b=2,求a< b成立时,表达式的值?
答:选择答案A,执行条件表达式后的结果为1。执行的结果:首先比较a和b的大小,当a<b的情况下执行结果为a,当a>b为1的时候那么会执行表达式c<d?c:d,然后比较c和d的大小,如果c小于d那么表达式的结果就为c,如果c大于d,那么表达式的结果为d。因为a=1,b=2,所以a<b成立,那么表达式的结果直赋值...

C语言中,若a=1,b=2则表达式a<b?a:b+1的值是?
答:三元表达式啊,基础书籍都会讲的。问号前的表达式如果为真,那么就返回冒号前的值,否则返回冒号后的值。这里a<b为真,则返回a的值。

c语言求详尽分析:int a=1,b=2;b==a=2;判断真假?本人认为为0但与答案不...
答:int a=1,b=2;b==a=2; //这个是逻辑表达式,表示b==(a=2),判别b与a=2这两个表达式的值是否相等,因为相等,故结果为真,以整数输出是1。

c语言题 int a=1,b=2,c=3,d=4,e=5; k=a>b?c:d>e?d:e;求k
答:include <stdio.h>int main(void){ int a=1,b=2,c=3,d=4,e=5; printf("%d\n",a>b?c:d>e?d:e); return 0;}运行结果:5 include <stdio.h>int main(void){ int a=1,b=2,c=3,d=4,e=5; printf("%d\n",a<b?c:d>e?d:e); return 0;}运行结果...

c语言填空题若a=1,b=2,则a/b=
答:此题有问题,没有变量a与b是什么类型的:如果a与b都是int型,则a/b是整除,即结果要取整,a/b=0 如果a与b有一个是float或者double型,则结果是float或double型,a/b=0.500000

c语言中int a=1,b=2,c c=1.0/b*a 输出结果为什么
答:结果是c的值是0 因为1.0 / b 都会转换位浮点型,结果是0.5, 0.5 * a 也是会把a转为浮点型,结果是0.5 而c是整形,会对右边运算的结果取整,所结果就是0了。