1.1.1 C++语言入门

2025-04-11 18:30:00
2026-04-11 18:30:00

信息与公告

0.绪论

本节为学习 语言的初始章节,大部分的内容为记忆内容。

1.代码模板

在相当长的一段时间里,我们会将代码写在一个统一的模板中(须要背诵和熟练敲打):

#include<bits/stdc++.h>
using namespace std;

int main(){
    /*完全删去这一行的内容后,再写上你的代码*/
    return 0;
}

2.数据类型

(1)定义

不像 一样可以自动识别你的输入是什么数据类型, 需要你精确的告诉它,你当前输入的或者是将要输出的数据,是什么类型。类型包括:

数据类型 代码 解释
整型(整数) int 存储一个整数,如-5、0、9等。
双精度浮点数(小数) double 存储一个小数,如1.5、-2.3等。
字符型 char 存储一个字符,如 'a'、'B'、'#'等。

数据类型有很多种,这里先举例三种,供大家前期使用。

(2)数据的声明

当我们要使用一个整数时,不管是对它输入或者将它输出,都需要提前进行声明,这样计算机才知道将你输入的内容按照什么类型存储或者将存储的内容按照什么类型输出。

数据的声明,就像你找了一个盒子,告诉计算机这个盒子只能存储一种特定的数据类型。

int a;	//声明了一个整型变量,变量名为 a,可以存入一个整数。
double b;	//声明了一个双精度浮点变量,变量名为 b,可以存入一个小数。
char c;	//声明了一个字符型变量,变量名为 c,可以存入一个字符。

【变量】:其值可能会发生改变的量,如 x、y、z、a、b、c 等,与之相对的是常量。

【常量】:其值不会发生改变的量,如 5、9、3.14、10000、'a' 等,其值在程序运行中不会发生改变。

(3)数据的定义

当数据完成声明后,我们就可以对他进行赋值了,赋值包括用赋值运算符 "=" 进行赋值,还可以使用 cin 语句()和 scanf 语句(C)在程序运行时,从键盘上进行输入,这里先讲第一种方法:赋值运算符 "="

赋值运算符 "=",其作用是将其右边的值赋给其左边的变量

int a;	//声明了一个整型变量为 a
a = 5;	//将 "=" 右边的 5 赋给 "=" 左边的 a
double b;	//每一条语句都要以 ";" 作为结束
b = 3.14;
char c;	
c = 'p';	//字符常量需要用单引号''标记

这两句话也可以写在一起,但是都要遵守先声明后定义的规则:

int a = 5;	//声明了一个整型变量为 a, 将其值赋为 5
double b = 3.14;	//声明了一个双精度浮点变量为 b, 将其值赋为 3.14
char c = 'p';

当然,也可以通知声明并定义多个相同数据类型的变量,用 "," 隔开即可:

int a = 3, c = 6;

3.数据的输入

语言是 语言的衍生语言,两者在极大程度是相同的。比赛的编程语言虽然是 语言,但 语言也同样支持,而且很多时候 语言的语法也会为编程带来方便,这个便利主要体现在输入输出方面,故 语言的输入输出语法我们都要熟练掌握。

有些时候,某些变量的值不是在程序里面就定义好了的,而是在程序运行时,通过某些输入设备(如键盘)进行输入的,这里就需要使用到输入语句了, cin 语句()和 scanf 语句():

(1)cin 语句
int a;
cin >> a;	//通过cin语句,将我们从键盘上键入的内容,通过输入数据流符号 ">>" 输入至变量 a
int b, c;
cin >> b >> c;	//可以输入多个变量的值,需要在键入时用 "空格" 或 "回车" 隔开
  • 【优势】:编写简单,逻辑性强。

  • 【劣势】:数据输入速度慢。

(2)scanf 语句
int a;
scanf("%d", &a);	//将键入的内容以 "%d" 占位符的形式,通过寻址符 "&",存储到变量 a 中
//这里的 "%" 是引导符,"d" 是以十进制整数的形式,"&" 是寻址符
int b, c;
scanf("%d %d", &b, &c);	//也可以输入多个变量,注意先后顺序,以空格隔开
  • 【优势】:①数据输入速度快,适合大量数据的输入;②可以让数据按照特定的格式输入。

  • 【劣势】:编写略显复杂。

数据类型 占位符
int %d
double %lf
char %c

4.数据的输出

数据的输出同样也有 语言之分。

(1)cout 语句
cout << 5;
cout << "hello, world.";	//直接输出常量
int a = 5;
cout << a;	//将 a 的值通过输出数据流符号 "<<",显示在输出设备上,如屏幕
  • 【优势】:编写简单,逻辑性强。

  • 【劣势】:①数据输出速度慢;②当对输出的数据有格式要求时(如保留几位小数),会比较复杂。

(2)printf 语句
printf("5");
printf("hello, world.");	//直接输出常量
int a = 5;
printf("%d", a);	//将变量 a 的值,以 "%d" 的格式进行输出
int b = 3, c = 6;
printf("%d %d", b, c);	//输出 b 和 c 的值,以空格隔开,有先后顺序。
  • 【优势】:①数据输入速度快,适合大量数据的输入;②可以让数据按照某种特定的格式输出。

  • 【劣势】:编写略显复杂。

【注意】scanf 语句中有 "&",printf 语句中无 "&"。

5.简单的算数运算

在计算的世界里, 是我们再熟悉不过的符号,那么在计算机里面又如何实现呢?首先,我们要知道在计算机里面如何运用这些符号:

数学符号 算数运算符

结合我们学过的赋值运算符 "",就可以进行算数运算了。

(1)""运算
int a;
a = 3 + 5;	//可以直接将两个常量相加后的值赋给变量 a
int a, b = 5, c = 3;
a = b + c;	//也可以将两个变量相加后的值赋给变量 a
a = b + 5;	//也可以混着来
(2)""运算
int a;
a = 5 - 3;	//可以直接将两个常量相减后的值赋给变量 a
int a, b = 5, c = 3;
a = b - c;	//也可以将两个变量相减后的值赋给变量 a
a = b - 3;	//也可以混着来
(3)""运算
int a;
a = 5 * 3;	//可以直接将两个常量相乘后的值赋给变量 a
int a, b = 5, c = 3;
a = b * c;	//也可以将两个变量相乘后的值赋给变量 a
a = b * 3;	//也可以混着来
(4)""运算

任意两个整数通过 "" 这三个运算,得到的结果均为整数,但两个整数通过 运算符得到的结果却不一定为整数,如 等等,那么通过 "" 运算符,又会得到什么结果呢?

执行下面的代码自行探究:

#include<bits/stdc++.h>
using namespace std;

int main(){
    int a, b, c;
    b = 5, c = 3;
    a = b / c;
    cout << a << endl;
    //到底是 b / c 的值赋给 a 的时候变为了整数呢?还是 b / c 直接就是整数呢?
    cout << b / c;
    return 0;
}

根据输出结果可知, 直接就是整数,且:

int a = 9 / 10;
cout << a;	//输出结果为 0,故 "/" 运算符是向下取整,直接舍弃小数部分

故:两个整数进行 "" 运算,结果也为整数,而且向下取整(即直接舍弃小数部分,非四舍五入)。

请你自行敲写代码并总结():

  • double 数据类型在 运算符中的结果和规律;
  • intdouble 两种数据类型进行 时,会产生什么样的结果;
  • 如果将 double 变量或 char 变量以 int 的占位符 %d 输出,会有什么结果:
  • double b = 3.14;
    char c = 'y';
    printf("%d\n", b);
    printf("%d", c);
    
  • 如果将 int 变量以 char 的占位符 %c 输出,又会有什么结果;
  • "\n" 的作用是什么;

6.习题练习

(1)认真梳理例题 ~,完成课后习题 ~,并认真总结,整理成文件,可发布在自己的自媒体(公众号、博客园、等,选择一个即可),打造属于自己的学习社区(实用为主,提高学习趣味度,不要花哨,分清主次);

(2)规划自己的信奥目标、学习态度、阶段性目标;

(3)课后及时购买教材、笔记本等文具,利用自己或家长的手机号码注册相关网站并记住账号和密码;

需要注册的网站有:

(4)课后了解相关信奥生涯的知识,和同学交流,课上及课后持续成长。

71001 【例1.1】 计算机输出

71002 【例1.2】 梯形面积

71003 【例1.3】 电影票

71004 【例1.4】 牛吃牧草

71005 【习1.1】 Hello,World!

71006 【习1.2】 输出第二个整数

71007 【习1.3】 对齐输出

71008 【习1.4】 字符三角形

71009 【习1.5】 地球人口承载力估计