C语言初阶错题整理

简介: C语言初阶错题整理

一、

题目

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

image.png

四、

题目:求两个数的最大公倍数

解析:

直接求两个数其中任意一个数的倍数,进行循环,直到找到那个最大公倍数

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;
}
相关文章
|
28天前
|
C语言
【C语言】错题本(3)
【C语言】错题本(3)
12 0
|
4月前
|
存储 编译器 C语言
c语言进阶部分详解(指针初阶)
c语言进阶部分详解(指针初阶)
55 0
|
4月前
|
存储 编译器 C语言
『C语言初阶』第六章-操作符详解
『C语言初阶』第六章-操作符详解
|
4月前
|
存储 IDE 编译器
『C语言初阶』第五章-数组
『C语言初阶』第五章-数组
|
4月前
|
程序员 Serverless 编译器
『C语言初阶』第四章-函数
『C语言初阶』第四章-函数
|
4月前
|
C语言
『C语言初阶』第三章-分支语句和循环语句
『C语言初阶』第三章-分支语句和循环语句
|
4月前
|
人工智能 算法 编译器
C语言初阶测评题:测试你的基础知识和编程技能!!
C语言初阶测评题:测试你的基础知识和编程技能!!
51 1
|
4月前
|
C语言
『C语言初阶』第一章-初识C语言(1)
『C语言初阶』第一章-初识C语言(1)
|
4月前
|
C语言
c语言初阶 -- 分支语句
c语言初阶 -- 分支语句
43 0
|
4月前
|
存储 Java 编译器
c语言初阶 -- 初识c语言篇(上)
c语言初阶 -- 初识c语言篇(上)
55 0