自增自减
1、下列关于单目运算符++、--的叙述中正确的是
A)它们的运算对象可以是任何变量和常量
B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D)它们的运算对象可以是char型变量、int型变量和float型变量
2、设有以下定义
int a=0;
double b=;
char c=’A’;
#define d 2
则下面语句中错误的是
A) a++; B) b++; C) c++; D) d++;
3、以下选项中,与k=n++完全等价的表达式是
A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1
4、设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是
printf("%d,%d\n",x--,--y);
A) 10,3 B) 9,3 C) 9,2 D)10,2
5、设有 int x=11; 则表达式 (x++ * 1/3) 的值是
A) 3 B) 4 C) 11 D) 12
6、以下程序的输出结果是。
#include
main()
{int i=010 ,j = 10;
printf("%d,%d\n",+ +i , j - -); }
A) 11,10 B) 9,10 C) 010,9 D) 10,9
7、有以下程序
main()
{int m=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);
}
程序运行后的输出结果是
A) B)
C) D)
8、有以下程序
main()
{ int m=3,n=4,x;
x=-m++;
x=x+8/++n;
printf("%d\n",x);
}
程序运行后的输出结果是
A) 3 B) 5 C) -1 D) -2
9、设a、b、c为整型数,且a=2、b=3、c=4,则执行完以下语句:
a*=16+(b++)-(++c);后,a的值是
知识点
++ -- 只能用于变量,不能用于常量和表达式,如5++,(a+b)++,(-i)++ 都是错误的
结合方向:自右向左。-i++ 默认的是i++先结合,等价于 -(i++)
i++ 先用后加当前表达式中使用i原来的值运算,使用完以后再使i自增1,程序中第二次遇到i时就要使用增1以后的值了。
++i 先加后用先使变量i自增1,然后再参加当前表达式的运算,程序中第二次遇到i时也是使用增1以后的值。
答案
1--5、DDADA 6--8、BAD 9、28