C语言题选择题 求详解

1.有以下定义语句
double a,b;
int w;long c; 若个变量正确赋值,则以下正确的表达式是()
a)a=a+b=b++ b)w%((int)a+b) c)(c+w)%(int)a d)w=a==b
2.数字字符0的ASCII值为48,运行以下程序输出的结果是___ ___
main()
{
char a='1',b='2';
printf("%c",b++);
printf("%d\n",b-a);
}
3.以下能正确定义且赋值的语句是()
a)int n1=n2=10 b)char c=32 c)float f=f+1.1 d)double x=12.3E2.5
第一题怎么回事啊?

第一题选D
==(比较两数是否相等)的优先级高于=(赋值号),所以先计算a==b然后把结果赋给w。
第二题是3,2
第一个printf输出字符,b++后成了3的ascii码
第二个printf输出整数,b和a的ascii码的差此时b是3,a是1所以差是2
第三题选b
a在定义是不能连续赋值,c中赋值号是先计算右边的,右边的f还没有定义就用,不对
d中科学计数法不能这样表示
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-27
c
2,50
d
第2个回答  2011-08-27
1、D
2、2 2
3、B
第3个回答  2011-08-27
C
2 2
b
第4个回答  2012-03-20
哪里不懂?
相似回答