火龙信奥
  • 分享
  • 课程
  • 题库
  • CSES HARD
    • GESP
    • CSP
  • 打卡
    • 代码对战
    • 快速对战
  • 题单
  • e课堂
  • 团队
  • 荣誉墙
  • 商城
  • 登录 / 注册

第 5 课《基本数据类型与输入》

作者: 作者的头像   huolong , 时间:2026-09-07 13:59:55 , 所有人可见, 阅读  2

第 5 课:基本数据类型与输入

本课学习目标: 1. 理解 C++ 中为什么变量必须有“类型”,掌握整型、实数型、字符型、布尔型的基本用途。 2. 熟练掌握 C++ 风格的输入语句 cin 及其连续输入特点。 3. 熟练掌握 C 风格的输入函数 scanf("%d", &N),牢记变量名前必须加 &。 4. 攻克 GESP 一级高频易错题:整型变量输入遇到小数、算式(如 5+2)时的截断规则。


一、 为什么变量要有类型?

在定义变量时,我们必须明确写出它的类型。类型决定了变量能存什么样的数据,也决定了计算机该如何处理它。

int a = 10;          // 整型:保存整数
double b = 3.14;     // 实数型:保存小数
char c = 'A';        // 字符型:保存单个字符
bool d = true;       // 布尔型:保存真或假
  • 类型不同,命运不同:如果把一个小数赋给整型变量(如 int x = 3.14;),小数部分会被直接舍弃,x 的值最终只剩下 3。

二、 常用基本数据类型速查

类型名称 关键字 用途说明 示例
整型 int 保存正整数、负整数和 0(一级最常用) int a = -5;
长整型 long long 保存更大范围的整数 long long x = 10000000000;
单精度浮点型 float 保存小数 float x = 3.14;
双精度浮点型 double 保存小数(比 float 更精准,常用) double pi = 3.1415926;
字符型 char 保存单个字符(用单引号) char ch = 'A';
布尔型 bool 保存逻辑真 (true) 或假 (false) bool ok = true;

三、 使用 cin 进行输入(C++ 风格)

cin 是 C++ 中专职负责输入的语句,配合提取运算符 >> 使用。 * 基本写法:cin >> 变量名; * 连续输入多个变量: cpp int a, b; cin >> a >> b;

💡 核心考点(分隔符): cin 在读取数据时,会自动跳过并忽略空格、回车(换行)、制表符(Tab)等空白字符。 这意味着,输入 10 20(中间有空格)或者分两行输入 10 和 20,对 cin >> a >> b; 而言没有任何区别,都能完美读入。


四、 使用 scanf 进行输入(C 风格)

GESP 一级考试中非常喜欢考查 C 风格的输入函数 scanf。

1. 读入整数

int N;
scanf("%d", &N);
  • %d:格式控制符,代表要读取一个十进制整数。
  • &N:极其重要的符号! 变量名前面必须加取地址符 &,代表把输入进来的数字存到变量 N 的内存地址中。
  • 对比记忆:用 cin >> N; 时千万不要加 &;而用 scanf("%d", &N); 时千万别漏了 &。

2. 读入小数与字符

  • 读入 double 类型:double x; scanf("%lf", &x);(注意是 %lf)
  • 读入 float 类型:float x; scanf("%f", &x);
  • 读入 char 类型:char ch; scanf("%c", &ch);

五、 🚨 GESP 一级输入题四大高频陷阱(必考)

考试最喜欢考“当用户输入了奇怪的内容时,变量到底读到了什么”。

陷阱 1:整型变量输入遇到算式(如 5+2)

int i;
cin >> i;
  • 如果用户输入:5+2
  • 程序读到的结果:i 的值是 5。
  • 原因:i 是整型变量,cin >> i 会从前往后读取整数。当读到 5 之后遇到了 + 号,+ 不属于整数的合法字符,于是停止本次读取。程序不会把 5+2 当作数学表达式去计算。

陷阱 2:整型变量输入遇到小数(如 3.14)

int N;
cin >> N;
  • 如果用户输入:3.14
  • 程序读到的结果:N 的值是 3。
  • 原因:整型变量只吃整数部分,遇到小数点 . 直接停止读取。

陷阱 3:字符变量 char 的脾气

char ch;
cin >> ch;
  • 如果用户输入:10
  • 程序读到的结果:ch 的值是字符 '1'。
  • 原因:char 类型一次只读一个字符。输入 10 时,它先抓到了第一个字符 '1' 就收工了。

六、 GESP 一级真题与例题精讲

练一练 1:整型输入遇到算式

【题目】 下面程序输入 5+2 后,输出是( )。

int i;
cin >> i;
cout << i;

A. 7
B. 5
C. 程序报错
D. 输出不确定

正确答案:B 名师解析: i 是整型变量。cin 读整数时遇到 + 号会停止读取,因此只能成功提取出前面的 5。程序不会自动帮你做加法运算。


练一练 2:整型变量截断小数

【题目】 下面程序输入 3.14 后,输出通常是( )。

int N = 0;
cin >> N;
cout << N;

A. 3.14
B. 3
C. 0
D. 程序一定报错

正确答案:B 名师解析: 变量 N 是 int(整型),当输入 3.14 时,cin 读到整数部分的 3,遇到小数点 . 停止读取。所以 N 的值被赋值为 3。


练一练 3:cin 与 scanf 的语法辨析

【题目】 下面哪个写法可以用 scanf 读入一个整数到变量 N?( ) A. scanf("%d", &N); B. scanf("%d", N); C. scanf(N, "%d"); D. scanf("&N", %d);

正确答案:A 名师解析: C 风格输入函数 scanf 必须包含格式控制字符串(读整数用 "%d"),并且其后的变量名必须加上取地址符 &。因此只有 A 选项完全正确。

—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com

关于火龙

  • 关于我们
  • 学员获奖
  • 预约试听
  • ACM课程
  • CSP课程
  • 学习指南

帮助中心

  • 用户协议
  • 打字练习 HOT
  • 在线画图
  • DevC++下载
  • CSP报名
  • GESP官网

推荐课程

  • C++零基础入门(可试看)
  • C++进阶提升
  • GESP考级辅导
  • GESP打卡
  • CSP-J/S打卡

公众号

火龙信奥公众号二维码

© 2017-2026 义乌市睿码科技有限公司版权所有 浙ICP备2021013995号

火龙信奥
请输入登录信息


请完成安全验证
验证码底图 滑块
向右拖动滑块完成验证
请输入用户名 / 绑定的手机号码



请输入注册信息(手机号验证码注册)





验证码5分钟有效,60秒内不可重复获取,每日最多3次

微信登录

微信登录二维码

正在生成二维码...

账号已过期,请续期。
去续期

绑定手机号

📱

为了更好地保护您的账号安全,享受完整的平台服务

请您尽快绑定手机号码