c语言很多问题要问 懂的进 谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/22 11:41:38
1 下列优先级最低的算符是() A:&& B:& C:|| D:=
2 已知int j,i=a;执行语句"j=i++;"后,变量i的值是() A:1 B:2 C:-1 D:-2
3 已知int i,a;执行语句"i=(a=2*3,a*5), a+6;"后,变量i的值是()A:6 B:12 C:30 D:36

①选D。运算符的优先级是指不同的运算符在表达式中进行运算的先后次序。如,算术运算符*、/的优先级高于+、-的优先级。在【例2.2】中“c=a>b?a:b;”语句中运算符按优先级由高到低排列顺序为“>” 、“?:” 、“=”。
②填a+1。自增(++)和自减(--)运算符是单目运算符,其功能是使运算对象(变量)的值增1或减1。它们既可以作前缀运算符(位于运算对象的前面),如++i,--i;也可以作后缀运算符(位于运算对象的后面),如i ++,i --。前缀和后缀运算的数据处理方法有明显的差异。对于前缀形式表示在用该表达式之前先使变量值增(减)1;对于后缀形式表示在用该表达式的值之后使n的值增(减)1。++j,--j 在使用j之前,先使j的值加(减)1。j++,j— 在使用j之后,使j的值加(减)1。
③选C。如下。
#include <stdio.h>
main()
{
int i,a;
i=(a=2*3,a*5), a+6;
printf("%d\n",i);
}
说明如下:
i=(a=2*3,a*5), a+6;中,
i=(a=2*3,a*5)是一个语句,a+6是一个语句。
前者是赋值语句,后者只是单纯的运算语句。后者可忽略。
括号里,a运算后得30,赋值给i,所以最后i=30。

1:D
2:a+1
3:?