有关C语言2

来源:百度知道 编辑:UC知道 时间:2024/06/17 06:05:51
1、设a,b,c,m和n均为int型变量,且a=3,b=6,c=5,d=8,m=0和n=7,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值是多少?

2、运行以下程序段后的输出结果是多少?
int a,b,x;
x=((a=3)>(b=5))? sizeof(a*4): sizeof(b*4);printf(“%d”,x);
帮忙解决一下这两条题目,O(∩_∩)O谢谢~~

1、设a,b,c,m和n均为int型变量,且a=3,b=6,c=5,d=8,m=0和n=7,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值是多少?

m = a>b 因为a不大于b 所以m=0

&&两侧只要有一个是0就是0
所以n的值就不变了 所以n的值为7

2、运行以下程序段后的输出结果是多少?
int a,b,x;
x=((a=3)>(b=5))? sizeof(a*4): sizeof(b*4);printf(“%d”,x);

3不大于5所以执行:后半句
b是int型 占两个字节 *4后为8
x = 8

m=a>b 因为a为3 b为6 a肯定小于b 所以a>b返回0 m=0 因为是与的关系 前面是0 后面是什么与完还是0 所以系统将不在运算后面的值 所以n值不变为7
x=a>b?a:b 这时三维运算 可以认为是if(a>b) x=a;else x=b; 所以
x=((a=3)>(b=5))? sizeof(a*4): sizeof(b*4); 因为3<5 x=sizeof(b*4);他与sizeof(b)没有区别
这时 就看你的编译平台是什么样的了 如果是TC的 默认int为16位 2字节
那么 x=2
如果是vs vc++ 的话 int为32位 4字节 那么x=4
如果这样x=sizeof(b)*4; 要在sizeof(b)基础上乘4 也就是说 TC得8 VC得16