C语言应试笔记。

int main()
{
	int a, b, c, d, m, n;
	a = b = c = d = m = n = 0;
	if ((m = a == b) || (n = c == d))
	{
		a = b = c = d = 3;
	}
printf("%d,%d“,m,n); return 0; }

  先看以上代码,本题 的考点为 if ((m = a == b) || (n = c == d)) 。在||逻辑运算中如果前面的(m=a==b)=1了,其后面的(n=c==d)不会再进行运算。这也是著名的C语言中的(短路原则)!

2、对于+=、-=、*=、/=、%=

首先看几个例子

score+=20;  等价于 socre=score+20;

dimes-=2;    等价于 dimes=dimes-2;

bunnies*=2; 等价于bunnies=bunnies*2;

time/=2.73;  等价于time=time/2;

reduce%=3;等价于reduce=reduce%3;

来看一道题目

int main()
{
	int a = 5;
	a -= a * a;
	printf("%d", a);//a - (a * a);
	return 0;
}

  这个地方的a-=a*a;我们可以直接堪称a=a-(a*a)后面的a*a看成一个整体括起来再做答案为-20;

3

int main()
{
	float y = 0;
	float x = 1.0;
	y = x + 5 / 2;
	printf("%.3f", y);
	return 0;
}

  5/2按照C语言中的规则5/2=2,由于x为1.0所以y为3.0,但是printf需要输出三位小数所以答案为3.000;

4 应试最常考的题目:辗转相除法(求最大公约数)

//核心算法不失一般性令a>b;
if(a<b){
		tmp=a,a=b,b=tmp;
	}
p=a*b;//求最小公倍数备用 while(b){//直到b为0时停止循环 tmp=a%b,a=b,b=tmp; }
max=a;//最大公约数
Min=p/a;//最小公倍数

 请看例子:a=20 b=8;

第一个循环:tmp=4;a=8;b=4;

第二个循环:tmp=0;a=4;b=0;

停止。

输出最大公约数为:a=4。 

求最小公倍数可以在求最大公约数上进行运算

5、普及一个概念什么是完全数。

from Baidu百科

完全数(Perfect number),又称 完美数 或 完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
如果一个数恰好等于它的因子之和,则称该数为“完全数”。第一个完全数是6(1,2,3),第二个完全数是28(1,2,4,7,14),第三个完全数是496,后面的完全数还有8128、33550336等等。

 6

原文地址:https://www.cnblogs.com/Alei777/p/12181092.html