科创大赛——知识点复习【c++】——第一篇

目录

输入

一、cin

二、scanf

三、gets

四、getchar

五、fgets

输出

一、cout

二、printf

基本数据类型

一,数据类型有哪些?

二,整型(Integer Types)

1,修饰符

2,整型数据的数据范围

三,浮点型(Floating-point Types)

1,浮点型数据在计算机中存储长度和数据范围

四,布尔型(Boolean Type)

1,bool型数据在计算机中存储长度

2,bool型数据的数据范围

五,字符型(Character Type)

1,字符型数据在计算机中存储长度和数据范围

控制语句结构

一,多条件分支结构

1,if型

1)单if型

2)if—else型 

3)if-else-else if型

2,switch型:switch-case-default

二,循环结构

1,while型

1)while

2)do-while

2,for循环

基本运算 

一、算术运算符

1,加法运算符(+)

2,减法运算符(-)

3,乘法运算符(*)

4,除法运算符(/)

5,取模运算符(%)

6,自增运算符(++)

7,自减运算符(--)

8,复合赋值运算符

二,关系运算符

1,等于运算符(==)

2,不等于运算符(!=)

3,大于运算符(>)

4,小于运算符(<)

5,大于等于运算符(>=)

6,小于等于运算符(<=)

三、逻辑运算符

1,逻辑与运算符(&&)

2,逻辑或运算符(||)

3,逻辑非运算符(!)


输入

一、cin

cin是C++的输入,是C++里面最常用的一种输入。既可以输入数字,也可以输入字符、字符串。注意,cin输入字符串时,当遇到空格、回车、Tab都会结束。当需要输入空格时,那要用什么,后面会讲解。当输入空格字符时,cin不会把空格读入进去。

#include<iostream>
#include<cstring>
using namespace std;
int n;
string s;
char a,b,c;
int main(){cin>>n;cin>>s;cin>>a>>b>>c;cout<<"数字为:"<<n<<endl;cout<<"字符串为"<<s<<endl;cout<<"字符为"<<a<<" "<<b<<" "<<c<<endl;return 0;
}

二、scanf

用于从标准输入读取格式化的输入,例如整数、浮点数、字符串等,sacnf是C语言的输入,但是广泛应用于C++程序里面,这是因为C语言的scanf比C++的cin快3~4倍,这是因为scanf是用指针操作的,没有类型的安全机制,比如char类型scanf可以用%f输入,而不会报错,但是运行时会出现异常。cin是自动判断你的变量类型,比如char类型,他会用默认的char方法(%c)取数据。这就会影响的效率。

scanf遇到空格、Tab、回车都会结束输入

当我们看别人程序时前面会出现一行代码,可以用这两行代码实现scanf与cin同步,时间几乎是一样的。

ios::sync_with_stdio(false);
cin.tie(0);

scanf在输入时,就比较个体化了,不同的类型都有不同的输入表示。

             格式字符                              说明
d用来输入十进制整数
o用来输入二进制整数
x用来输入十六进制整数
c用来输入单个字符
s用来输入字符串
f用来输入实数
e用来输入实数
#include<iostream>
#include<cstring>
using namespace std;
int n1;
float n2;
double n3;
char ch[100],a,b;
int main(){scanf("%3d%f%lf",&n1,&n2,&n3);//%3d接受三位数字 scanf("%s",ch);//不接受空格、Tab、回车 scanf("%c%c",&a,&b);printf("数字为:%d %.3f %.2f\n",n1,n2,n3);//%f自动转成%lf printf("字符数组为:%s\n",ch);//ch.c_str()printf("字符为:%c %c\n",a,b);//%c可以吃空格 return 0;
} 

 注:在C语言中,scanf函数可以用于字符数组,但是在C++中,scanf函数不能直接用于string类。因为string是C++中的一个类,而scanf函数是C语言的函数,并不支持C++的类类型。

三、gets

gets() 函数的功能是从输入缓冲区中读取一行字符串存储到字符指针变量 str 所指向的内存空间。可以接受空格、Tab,但是不接受回车

#include<iostream>
#include<cstring>
using namespace std;
int n1;
float n2;
double n3;
char ch[100],a,b;
int main(){gets(ch); printf("%s",ch);return 0;
} 

四、getchar


getchar()用于从标准输入流获取一个字符。getchar()函数每次从输入流中读取一个字符,并返回该字符的ASCII码值(整数类型)。读取的字符可以是任意可打印字符、控制字符或特殊字符。常用于吃掉回车。

使用getchar()函数时,程序会等待用户从键盘输入一个字符,然后按下回车键确认。之后,函数会将输入的字符返回给程序,并继续执行后续的代码。

#include <stdio.h>int main() {int c;printf("请输入一个字符:");c = getchar();printf("\n你输入的字符是:");putchar(c);return 0;
}

 

五、fgets

fgets用于从文件流中读取一行字符串。它的原型如下:

char *fgets(char *str, int n, FILE *stream);

参数说明:
- str:用于存储读取字符串的缓冲区的地址。
- n:读取字符的最大数量(包括终止符'\0'),通常为缓冲区的长度。
- stream:文件流指针,指定从哪个文件流读取字符串。

fgets函数会从文件流中读取一行字符,直到遇到换行符'\n'、文件结束符EOF或者读取字符达到了最大数量n-1为止。读取到的字符会存储在str所指向的缓冲区中,并在末尾添加一个终止符'\0'。如果成功读取到字符,则返回str的地址,否则返回NULL。

#include<stdio.h>char ch1[10];
char ch2[10];
int main()
{fgets(ch1,5,stdin);fgets(ch2,5,stdin);printf("ch1=%s\n",ch1);printf("ch2=%s",ch2);return 0;
}

 

输出

一、cout

cout 是 C++ 标准库中的输出流对象,用于将数据输出到标准输出设备,默认情况下是输出到屏幕上。可以输出数字、字符、字符串等。

在用于四舍五入时可以用iomainp库中的setprecision和fixed函数来输出保留小数位数。

#include <iostream>
#include <iomanip>
using namespace std;int main() {int num = 123;double pi = 3.14159;// 输出整数cout << "The number is: " << num << endl;// 输出小数cout << "The value of pi is: " << pi << endl;cout << fixed << setprecision(2) << pi << endl;//保留两位小数 // 输出字符串cout << "Hello, World!" << endl;return 0;
}

二、printf


printf函数是C语言中的一个输出函数,用于将指定的格式化数据输出。跟scanf一样输出时要用%d等输出,在格式化输出上非常好用。

一般情况下,printf 比cout输出效率更高。

printf是C语言中的输出函数,而cout是C++中的输出流。是一个可变参数函数,可以接受任意数量和类型的参数,并按照格式化的方式输出。相比之下,cout是一个类型安全的输出流,它使用插入(<<)运算符来将数据插入到流中。printf的输出效率高主要是因为它是以低级别的系统调用方式来实现的。它直接使用底层的write函数将数据写入到文件描述符中,绕过了一些高级别的缓冲区和类型安全检查等操作。这使得printf可以更快地将数据输出到终端或文件。而cout则是一个面向对象的输出流,它使用了一些高级别的功能,如类型安全检查、缓冲区管理、输出流状态管理等。虽然这些功能为开发者提供了更多的灵活性和易用性,但也意味着在执行输出操作时需要更多的内存和处理时间。

#include<stdio.h>int main() {int num = 123;printf("The number is %d\n", num); // 输出:The number is 123float f = 3.1415;printf("The value of pi is %.2f\n", f); // 输出:The value of pi is 3.14char str[] = "Hello World";printf("The string is %s\n", str); // 输出:The string is Hello Worldreturn 0;
}

基本数据类型

一,数据类型有哪些?

C++中的基本类型是构建其他数据类型的基础,常见的基础类型包括整型,浮点型,字符型和布尔型:

整型:用于表示整数,如 intshortlong 等。
浮点型:用于表示带小数部分的数值,如 floatdouble 等。
字符型:用于表示单个字符,如 char
布尔型:用于表示逻辑值,只能取 truefalse
有了这些基本数据类型的定义,我们就有和计算机建立的联系,我们就能把显示世界中的数字,字符,标点符号很容易的用计算机来表达啦!

二,整型(Integer Types)


1,修饰符


修饰基本整型。可以以任何顺序混合。每个组中只能存在一个。

有符号性

signed — 目标类型将具有有符号表示(如果省略,这是默认值)

unsigned — 目标类型将具有无符号表示

大小

short — 目标类型将针对空间进行优化,其宽度至少为 16 位。

long — 目标类型将具有至少 32 位的宽度。

2,整型数据的数据范围


整型数据的存储长度已经知道了,那么就可以很容易计算出数据范围。

以int举例:一个占32位的int的数据范围改如何计算?

对于有符号整数(signed int): -2^16+1 ~ 2^16-1

对于无符号整数(unsigned int): 0 ~ 2^32-1

三,浮点型(Floating-point Types)


浮点型一般包括两种,float和double.

1,浮点型数据在计算机中存储长度和数据范围


32位浮点数格式被称为单精度浮点数(float),允许数值从约1.2e-38到3.4e38。

64位浮点数格式被称为双精度浮点数(double),允许数值从约1.7e-308到1.7e+308。

四,布尔型(Boolean Type)


bool 可以保存两个值之一:true/false。sizeof(bool) 的值是实现定义的,可能与 1 不同。

1,bool型数据在计算机中存储长度


采用一个字节存储,即8个比特位。

2,bool型数据的数据范围


只有两个值,false一般为0,true为非0。

五,字符型(Character Type)


1,字符型数据在计算机中存储长度和数据范围


在标准C++中,char 类型至少能够存储基本字符集(通常是ASCII字符集)中的字符。ASCII字符集包含128个字符,其范围从0到127。
char 类型可以是有符号的(signed char)或无符号的(unsigned char),但默认情况下,它的符号性是未指定的(即可能是有符号的,也可能是无符号的,这取决于编译器)。
如果char被当作有符号类型(signed char),那么它的值域通常是-128到127在采用补码表示法的系统中)。
如果char被当作无符号类型(unsigned char),那么它的值域是0到255。

控制语句结构

一,多条件分支结构

1,if型

1)单if型
int x=10;
if(x==10){printf("true");
}
2)if—else型 
int x=10;
if(x==10){printf("true");
}
else{printf("false");
}
3)if-else-else if型
int x=10;
if(x<=1){printf("x<=1");
}
else if(x<=4){printf("x>=1&&x<=4");
}
else if(x<=7){printf("x>=4&&x<=7");
}
else{printf("x>7");
}

2,switch型:switch-case-default

多重条件控制,要注意break的使用,如果你不用break,也不会报错,但是程序会顺着每一个case都执行一遍(包括default)

int x;//x可以被赋值
scanf("%d",&x);
switch(x){
case 1:printf("x=1");break;case 2:printf("x=2");break;case 3:printf("x=3");break;default:printf("x=%d",x);break;//此处break可加可不加
}

二,循环结构


1,while型


1)while


格式:

while(判断条件){

        执行语句

        终止条件的语句

}

2)do-while

do{

        执行语句

}

while(判断条件)

2,for循环

注:for循环适用于能确定好循环次数的,while循环适用于仅知道循环终止条件。

for(int i=0;i<10;i++){printf("a/n");
}

基本运算 

在C++编程中,运算符是构建表达式和逻辑的基础。它们用于执行各种操作,如算术计算、条件判断、逻辑运算和位操作。

一、算术运算符

算术运算符用于执行基本的数学运算,包括加法、减法、乘法、除法和取模等。

1,加法运算符(+)

 

int a = 5;
int b = 3;int sum = a + b; // sum = 8

2,减法运算符(-)

int diff = a - b; // diff = 2

3,乘法运算符(*)

int product = a * b; // product = 15

4,除法运算符(/)

double quotient = static_cast<double>(a) / b; // quotient = 1.66667

5,取模运算符(%)

int remainder = a % b; // remainder = 2

6,自增运算符(++)

a++; // 等同于 a = a + 1

7,自减运算符(--)

a--; // 等同于 a = a - 1

8,复合赋值运算符

a += b; // 等同于 a = a + b
a -= b; // 等同于 a = a - b
a *= b; // 等同于 a = a * b
a /= b; // 等同于 a = a / ba %= b; // 等同于 a = a % b

二,关系运算符

关系运算符用于比较两个值,并返回一个布尔值(true 或 false)。

1,等于运算符(==)

bool isEqual = (a == b); // isEqual = false

2,不等于运算符(!=)

bool isNotEqual = (a != b); // isNotEqual = true

3,大于运算符(>)

bool isGreater = (a > b); // isGreater = true

4,小于运算符(<)

bool isLess = (a < b); // isLess = false

5,大于等于运算符(>=)

bool isGreaterOrEqual = (a >= b); // isGreaterOrEqual = true

6,小于等于运算符(<=)

bool isLessOrEqual = (a <= b); // isLessOrEqual = false

三、逻辑运算符

1,逻辑与运算符(&&)

bool andResult = (a > 0 && b > 0); // andResult = true

2,逻辑或运算符(||)

bool orResult = (a > 0 || b < 0); // orResult = true

3,逻辑非运算符(!)

bool notResult = !(a < b); // notResult = true

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/212.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java学习之数据结构:四、树(代码补充)

这部分主要是用代码实现有序二叉树、树遍历、删除节点 目录 1.构建有序二叉树 1.1原理 1.2插入实现 2.广度优先遍历--队列实现 3.深度优先遍历--递归实现 3.1先序遍历 3.2中序遍历 3.3后序遍历 4.删除 4.1删除叶子节点 4.2删除有一棵子树的节点 4.3删除有两棵子树的节…

基于 HTML 和 CSS 实现的 3D 翻转卡片效果

一、引言 在网页设计中&#xff0c;为了增加用户的交互体验和视觉吸引力&#xff0c;常常会运用一些独特的效果。本文将详细介绍一个基于 HTML 和 CSS 实现的 3D 翻转卡片效果&#xff0c;通过对代码的剖析&#xff0c;让你了解如何创建一个具有立体感的卡片&#xff0c;在鼠标…

PHP数组排序深度解析:sort()、rsort()、asort()、arsort()、ksort()、krsort() 的适用场景与性能对比

在PHP开发中&#xff0c;数组排序是日常操作的核心技能之一。无论是处理用户数据、产品列表&#xff0c;还是分析日志信息&#xff0c;合理的排序方法能显著提升代码的效率和可维护性。PHP提供了多种数组排序函数&#xff08;如 sort()、rsort()、asort() 等&#xff09;&#…

C++ 中二级指针的正确释放方法

C 中二级指针的正确释放 一、什么是二级指针&#xff1f; 简单说&#xff0c;二级指针就是指向指针的指针。 即&#xff1a; int** p;它可以指向一个 int*&#xff0c;而 int* 又指向一个 int 类型的变量。 常见应用场景 动态二维数组&#xff08;例如 int** matrix&#x…

Linux 进程基础(二):操作系统

目录 一、什么是操作系统&#xff1a;用户和电脑之间的「翻译官」&#x1f310; OS 的层状结构&#x1f9e9; 案例解析&#xff1a;双击鼠标的「跨层之旅」 二、操作系统的必要性探究&#xff1a;缺乏操作系统的环境面临的挑战剖析&#x1f511; OS 的「管理者」属性&#xff1…

SpringMVC详解

一&#xff1a;Maven 1.1 概述 &#xff08;1&#xff09;项目结构 所有IDE使用Maven创建的项目结构完全一样&#xff0c;maven项目可通用 &#xff08;2&#xff09;构建流程&#xff08;编译、测试、打包、发布&#xff09; &#xff08;3&#xff09;依赖管理 定义&#xff…

深入解析Linux进程间通信(IPC):机制、应用与最佳实践

引言 在多任务操作系统中&#xff0c;进程间通信&#xff08;Inter-Process Communication, IPC&#xff09;是协同工作的核心机制。Linux作为现代操作系统的典范&#xff0c;提供了8种主要IPC方式&#xff0c;从传统的管道到面向网络的套接字&#xff0c;每种方法都暗藏独特的…

linux 使用nginx部署ssl证书,将http升级为https

前言 本文基于&#xff1a;操作系统 CentOS Stream 8 使用工具&#xff1a;Xshell8、Xftp8 服务器基础环境&#xff1a; nginx - 请查看 linux 使用nginx部署vue、react项目 所需服务器基础环境&#xff0c;请根据提示进行下载、安装。 1.下载证书 以腾讯云为例&#xff…

深入了解Linux系统—— 环境变量

命令行参数 我们知道&#xff0c;我们使用的指令它本质上也是一个程序&#xff0c;我们要执行这个指令&#xff0c;输入指令名然后回车即可执行&#xff1b;但是对于指令带选项&#xff0c;又是如何实现的呢&#xff1f; 问题&#xff1a;main函数有没有参数&#xff1f; 在我…

Oracle OCP认证考试考点详解083系列07

题记&#xff1a; 本系列主要讲解Oracle OCP认证考试考点&#xff08;题目&#xff09;&#xff0c;适用于19C/21C,跟着学OCP考试必过。 31. 第31题&#xff1a; 题目 解析及答案&#xff1a; 从 Oracle 19c 开始&#xff0c;数据库配置助手&#xff08;DBCA&#xff09;在克…

word批量转pdf工具

word批量转pdf工具 图片 说到了办公&#xff0c;怎能不提PDF转换哦&#xff1f; 这是一款一键就可以批量word转换为PDF的小工具&#xff0c;简直是VB界的一股清流。 图片 操作简单到不行&#xff0c;只要把需要转换的word文件和这个工具放在同一个文件夹里&#xff0c;双击…

【网络原理】深入理解HTTPS协议

本篇博客给大家带来的是网络原理的知识点, 由于时间有限, 分三天来写, 本篇为线程第三篇,也是最后一篇. &#x1f40e;文章专栏: JavaEE初阶 &#x1f680;若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动…