Summer 7

1.设m和n都是int类型,那么以下for 循环语句 循环体一次也不执行

int main()
{
	int m,n=-1;
	for (m = 0,n=-1; n=0; m++,n++)
	{
		n++;
	}
	system("pause");
	return 0;
}

n=0的值是0,也就是说条件一直为FALSE,所以一次也不会执行。

2.如下程序输出结果是什么

int a = 1;
void test()
{
	int a = 2;
	 a += 1;
}

int main()
{
	test();
	printf("%d\n", a); // 1
    system("pause");
    return 0;
}
int main()
{
	int y = 10,x;
	x = y++;
	printf("%d,%d", x, y); //10 11
	system("pause");
	return 0;
}
int main()
{
	int i = 0;
	int j = 0;
	if ((++i > 0) || (++j) > 0)
	{
		printf("i=%d ,j=%d\n", i, j);// i=1 j=0
	}
	system("pause");
	return 0;
}

++i,i=1>0,(++i>0)||(++j>0)为真,不再执行++j>0,j仍为0。

#define MOD(x,y) x%y
int main()
{
	int a = 13, b = 94;
	printf("%d\n", MOD(b, a + 4));//7     b%a+4
	system("pause");
	return 0;
}
int main()
{
	int x = 0;
	switch (++x)
	{
	case 0:++x;
	case 1:++x;
	case 2:++x;
	}
	printf("x=%d\n", x);//3
	system("pause");
	return 0;
}

1. switch结构分支没加break;跳出语句,开始执行后,程序由x=1调到case 1 分支 ++x,由于没有break语句,程序继续执行到case 2 分支 ++x,之后程序printf输出x=3

3. char a;int b;float c;double d;表达式a*b+d-c的类型为double。

自动向精度大的那个类型转换,doubule的精度最大。依次增大char ,int ,float ,double 。

上一篇:4.给定两个整形变量的值,将两个值的内容进行交换


下一篇:【NodeJS】设定post数据限制