一、

题目

#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语言的语法规则是独立

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;
}