一、
题目
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int a = 1;//定义全局变量
void test()
{
int a = 2;//定义局部变量
a += 1;
}
int main()
{
test();
printf("%d\n", a);
return 0;
}
请问输出结果是什么?
答案:
a=1
解析:定义a两次,一个是全局变量,另一个是局部变量。
当局部变量和全局变量名冲突时,局部变量优先。(局部优先)
所以a+=1,对局部变量使用,且局部变量出定义区间时,会自动销毁。
二、
C语言规定,在一个源程序中,main函数的位置()
A、必须在开始
B、必须在系统调用的库函数的后面
C、可以任意
D、必须在最后
答案:C
因此,main函数的位置就是任意的。
三、
题目:C语言本身没有输入输出函数。
答案:正确
解析:C语言只规定了语法规则,而库函数和C语言的语法规则是独立的。
四、
题目:求两个数的最大公倍数
解析:
直接求两个数其中任意一个数的倍数,进行循环,直到找到那个最大公倍数。
int main()
{
int a, b;
scanf("%d %d", &a, &b);
int m = a > b ? a : b;//求两个数的最大值直接用三目操作符
int m_ = m;
int cnt = 0;
while (1)
{
cnt++;
if (m % a == 0 && m % b == 0)
{
printf("%d\n", m);
break;
}
else
{
m = m_ * cnt;
}
}
return 0;
}