admin 管理员组

文章数量: 1184232

常识类、操作系统和编译器

内容会与当前的实事和计算机的内容相结合进行考试。(答案尽量靠进计算机或人工智能这一块)

电子计算机的定义:

电子计算机是一种能按照人们事先编好的程序连续、自动工作,并能对输入的数据信息进行加工、存储、传送的电子设备

计算机的特点:

  • 运算速度高

  • 计算精度高

  • 记忆力强

  • 具有逻辑判断能力

  • 能自动执行程序

  • 可靠性高、通用性强

计算机可以分为:

  • 巨型机

  • 大型机

  • 小型机

  • 微型机:微机和PC机

  • 工作站:专门用于处理某种类特殊事务的高档微机

  • 服务器:提供网络服务的高档微机

  • 单片机:单片微型计算机,民用和工业控制领域

计算机的发展: 

  • 1822年 英国数学家巴贝奇提出了计算机的基本概念(输入器、输出器、存储、运算器、控制器)

  • 1884年 美国工程师霍雷斯创造了第一台电动计算机,用于人口普查(是IBM雏形)

  • 1906年 美国人 Lee De Forest 发明了电子管,为计算机的发展奠定了基础

  • 计算机的理论奠基人英国数学家逻辑学家图灵 ,被称为人工智能之父,提出了计算抽象模型,被后人称为图灵机-有限状态自动机,为可计算性理论奠定了基础,是整个现代计算机的理论基础,与”冯诺依曼机“齐名,被永远载入计算机的发展史。图灵奖—是ACM设立计算机界最高奖项

  • 1944年 美国哈佛大学数学教授霍华德 阿肯 提出设计思想 由IBM 承建 的 自动程序控制计算机,耗资10万美元,重5吨,约有10万个零件,可以进行加减乘除

    1945年 电子计算机的奠基人 籍匈牙利科学家 冯诺依曼 提出了程序内存式计算机的设计思路:以二进制为运算基础;采用“存储程序”方式工作,解决了计算机的运算自动化的问题和速度配合问题,为计算机的逻辑结构设计奠定了基础。

世界上第一台可编程的电子计算机为ENIAC(1946年2月美国宾西法尼亚大学诞生) 

冯诺依曼结构是现代计算机体系结构的基础,也称为存储程序式计算机

  • 分为五部分:输入设备、输出设备、运算器、控制器、存储器

计算机系统的祖成部分:

  • 计算机可以分为:硬件系统和软件系统

  • 硬件分为:输入设备、输出设备、运算器、控制器、存储器

  • 软件分为:系统软件和应用软件

计算机操作系统的分类:

常见的操作系统实例包括Microsoft Windows、macOS、Linux、Google Chrome OS、iOS、Android和华为鸿蒙系统等。 

编程环境:dev_C++

常见的C++源文件扩展名包括.cpp.cxx,而头文件通常使用.h.hpp

C++程序的执行流程:编辑,预处理,编译,汇编,链接,运行

  • 编辑:写入代码
  • 预处理:在预处理阶段,会进行宏替换,条件编译,头文件展开,去掉注释
  • 编译:会进行语法语义检错,无错后转化为汇编文件
  • 汇编:把汇编文件转换成可执行的机器指令
  • 链接:把所有的目标文件以及我们所依赖的库文件链接到一起生成可执行程序

简单来说就是:先编译(翻译成机器语言)后运行(执行程序)

计算机常见快捷键:

  • Ctrl + C:复制选定内容

  • Ctrl + V:粘贴复制的内容

  • Ctrl + X:剪切选定内容

  • Ctrl + Z:撤销上一步操作

  • Ctrl + A:全选

  • Ctrl + Y:返回撤销前

对应题目:

2024/12

​ 

2025/03 

2025/06 

变量的创建和使用:

变量的概念:

 变量其实只不过是程序可操作的存储区的名称。在 C++ 中,有多种变量类型可用于存储不同种类的数据。C++ 中每个变量都有指定的类型,类型决定了变量存储的大小和布局。

变量需要先定义后使用,使用时最好先初始化。

标识符:

标识符是用户编程时使用的名字,用于给变量、函数、类等命名。

标识符命名规则:

  • 由字母、数字、下划线(_)组成

  • 不能以数字开头

  • 不能是C++的关键词

  • 区分大小写

    int int = 0;//错误
	int 0in = 0;//数字 开头错误
	int ip1, =0;//特殊符号,错误
	int _123 = 0;//可以
	int Int = 0;//可以,区分大小写

C++的关键词: 

C++关键词的判定:如果创建变量取名时 如果是黑色的那就是关键词。 

变量的定义:

  • 单个定义

  • 多个一起定义,用逗号隔开

  • 变量的初始化:声明变量的时候同时赋值

  • 赋值:变量已经有值,擦除对象的值,并用新值替代

变量的输出:

基本数据类型的变量可以直接被cout输出,也可进行一些数学运算给后再输出。

int num=100;
int num2=200;
cout<<num<<endl;
cout<<num+num2<<endl;
cout<<num*500+100<<endl;

注释:

  • 对代码进行解释

  • 隐藏掉某些代码,方便某些调试

  • 单行注释: //

  • 多行注释:/* */

  • 注意:多行注释不可以嵌套多行注释,/* /* */ */是违规的

对应题目:

2024/12

2025/03

​​

2025/06

数据类型:

基本的数据类型:

类型关键字使用事项
布尔型booltrue(1) false(0)
字符型char

赋值时使用  ' '  使用范围    -128 到 127

整型int整数类型,输入小数会被取整  范围  -2147483648 到 2147483647
长整型long long整数类型,输入小数会被取整  范围  92亿亿
浮点型float单精度:    +/- 3.4e +/- 38 (~7 个数字)
双浮点型double双精度:+/- 1.7e +/- 308 (~15 个数字)
无类型void空类型

字符类型:

    char c=127;//最大值      范围 -128 到 127
	char d=128;//超过最大值  
	int e=d; 
	cout<<e<<endl; //输出-128 

使用注意事项:

float和double的区别:

(浮点数计算不准确)

  • float精度低 :小数点后7位

  • double精度高:小数点后16位

  • 小数后面加f 表示是float类型

布尔常量:

  • true 结果为真 相当于 1

  • false 结果为假 相当于 0

  • 未指定数据类型  整数和小数进行运算  会输出小数
  • 数据的优先级:小数>整>字符   优先级小的会转换为优先级大的
cout<<(100+10.66666)<<endl; //输出110.667
cout<<(100*'A');//输出6500  'A'=65

对应题目:

2025/03

2025/06

变量的自增和自减操作

有两种表示方式:前置++(--) 和 后置++(--)

  • ++X 返回的是X+1之后的数从(绑定X的值)

  • X++ 返回的是X原来的值是临时的值

  • X始终都会加1

详细讲解:a++ 和 a--  是立马返回当前的值(是临时的值)

#include<iostream>
using namespace std;
int main(){
	int p=100;
	int k=100;	
	int t=(p--)+(p--);
	int m=(k++)+(k++);
	cout<<"p的值为:"<<p<<endl;
	cout<<"k的值为:"<<k<<endl;
	cout<<"t的值为:"<<t<<endl;
	cout<<"m的值为:"<<m<<endl;
	return 0;
} 

 ++a和--a的解释:++a会指向a的地址,需要计算的时候在从该地址中拿出值使用:

#include<iostream>
using namespace std;
int main(){
	int p=100;
	int k=100;	
	int t=(--p)+(--p);
	int m=(++k)+(++k);
	cout<<"p的值为:"<<p<<endl;
	cout<<"k的值为:"<<k<<endl;
	cout<<"t的值为:"<<t<<endl;
	cout<<"m的值为:"<<m<<endl;
	return 0;
} 

对应题目:

2024/12

2025/06

C++运算符和表达式

数学运算符:从左往右运算

名称符号作用
加法+加法运算
减法-减法运算
乘法*除法运算
除法/乘法运算
求余%求余运算
括号( )最优先运算

两个数相除运算分析:

  • 整数和整数相除 结果输出整数
  • 整数和小数相除 有小数部分会输出小数,能整除就输出整数
  • 当分子为0时 一定输出0 不会输出(0.0)
#include <iostream>
using namespace std; 
int main() {
	cout<<100/20<<endl;  //输出5 
	cout<<100/20.0<<endl; //输出5 
	cout<<100/21.0<<endl;//输出4.7619
	cout<<0/20<<endl;//输出0 
	cout<<0/20.0<<endl;//输出0 
	return 0;
}

 

 复合赋值运算符:从右往左运算

名称符号作用先计算右边
赋值=把右边的值给左边
加等于+=相当于x=x+y
减等于-=相当于x=x-y
乘等于*=相当于x=x*y
除等于/=相当于x=x/y
求余等于%=相当于x=x%y

逗号运算符:

逗号运算符是一种用于将多个表达式组合在一起的运算符。逗号运算符的主要作用是按顺序执行一系列运算,整个逗号表达式的值为系列中最后一个表达式的值。

#include <iostream>
using namespace std;
int main() {
    int i, j;
    j = 10;
    i = (j++, j+100, 999+j); // 使用逗号运算符
    cout << i; // 输出1010
    return 0;
}
//运算结果为  j++后 j=11   计算j+100   计算999+j  结果为999+j=1010

逗号运算符的特点

  • 逗号运算符的优先级非常低,因此通常需要使用括号来确保运算的顺序。

  • 在逗号表达式中,除了最后一个表达式的值被用作整个表达式的值外,其他表达式的值都会被丢弃。

  • 逗号运算符可以在初始化多个变量或在循环中更新多个变量时非常有用。

 关系运算符:

名称符号作用

返回(0或1)

0为假 1为真

当判断条件是个数时

0代表假

正数、负数、小数都为真

大于>判断大于
小于<判断小于
大于等于>=判断大于等于
小于等于<=判断小于等于
小于等于!=判断小于等于
等于==判断等于

表达式的概念:

表达式是由操作数和操作符组成的语法结构,用于执行计算、赋值、逻辑判断等操作。表达式的结果是一个值,可以是数值、布尔值或对象的引用。

int x=10,y=20,z=30;
int result1 = x + y * z; // x+y*z是算术表达式
bool isEqual = (x == y);  // 关系表达式
bool isBothTrue = (x > 0) && (y > 0);  // 逻辑表达式

对应题目:

2024/12

 

2025/03

 

2025/06

链式比较在C++中不会按数学逻辑(x 同时大于3且小于5)执行,而是被拆解为两次独立比较。因此无论 x 的值是多少,(3 < x < 5) 的结果几乎总是 1(除非 x 极大导致第二步比较为假)。

逻辑运算符和优先级:

&&和||的介绍:

运算符描述
&&称为逻辑与运算符。如果两个操作数同时为真,则为真。
||称为逻辑或运算符。如果两个操作数中有任意一个为真,则条件为真。(两个为真也为真)
!称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。

&&和|| 采用短路原则

  • && :当左边为false时,表达式为false,右边则不会执行

  • || :当左边为true时,表达式为true,右边则不会执行

优先级:!> && > ||

基本运算优先级:

  1. ()
  2.  ++ --  -(负号)! 
  3. / * %  + -
  4. >  >=  ==  <=  <  ==  !=
  5. &&  ||
  6. =    +=    /=     *=     %=  -=
  7. ,(逗号)

对应题目:

2024/12

选择结构

if 单分支结构:

if(判断条件){

    //当为真时执行括号里的内容
    
}

	int a = 100;
	if (a > 200)//如果a>200 则输出a的值
	{
		cout << a << endl;
	}

if 双分支结构:

if(判断语句){

    //如果为真执行

}
else{

    //不为真执行

}


	int a = 100;
	if (a > 200)
	{
		cout << "yes" << endl; //a>200输出yes
	}
	else
	{
		cout << "no" << endl; //a<=200输出no
	}

if 多分支结构:

if(判断条件){


}
else if(){

}
...... //可以有多个else if() 语句

else{

}


	int a = 100;
	if (a > 200)
	{
		cout <<"a>200"  << endl;
	}
	else if (a > 150)
	{
		cout << "a>150" << endl;
	}
	else if(a>100){
		cout<<"a>100"<<endl;
	}
	else
	{
		cout << a << endl;
	}

if注意事项:

  • 当内容只有一句时 {}可以省略   else也是一样

  • 两行代码时 只有if语句 可以不加{} 但只有一行属于if           

  • if else  多行代码时一定要加{}

  • if语句可以进行嵌套

  • 嵌套判断时,else匹配离else最近且未匹配的if

#include<iostream>
#include<string>
using namespace std;
 
int main(){
	int a=0;
	cin>>a;
	if(a==100) cout<<"a=100"<<endl;//当内容只有一句时 {}可以省略
	else if(a==90) cout<<"a=90"<<endl;
	else cout<<"number"<<endl; 
	return 0; 
} 

switch分支结构

switch注意事项:

  • switch括号里面必须为:整型、字符型或枚举型
  • case中必须为常量表达式
  • case匹配成功的话,会一直往下运行直到遇到break(或往下运行完)
  • case都未匹配,执行default
  • default 可以放在任意位置
  • case和default 后面都跟有:
  • 如果需要在switch-case里面定义局部变量,case的语句需要加大括号
  • switch表达式通常是整数类型或枚举类型,浮点数和字符串类型是不可行的。

 当case匹配成功的话,会一直运行到遇到break(或运行到最后)

#include<iostream>
using namespace std;
int main()
{
	int a=0;
	cin>>a;
	switch(a){
		case 100:
			cout<<"满分"<<endl;
		case 90:
			cout<<"90分"<<endl;
		default:
			cout<<"不及格"<<endl;
			break; 
	}
	return 0; 
} 

当输入100时,会先输出匹配的数据,然后一直往下执行直到遇到break(或往下运行完)

default 可以放在任意位置

#include<iostream>
using namespace std;
int main()
{
	int a=0;
	cin>>a;
	switch(a){
		default:
			cout<<"不及格"<<endl;
		case 100:
			cout<<"满分"<<endl;
		case 90:
			cout<<"90分"<<endl;
			break; 
	}
	return 0; 
} 

输入80时,case中全都不匹配,执行default中的内容,直到遇到break(或往下运行完)

对应题目:

2024/12

2025/03

2025/06

循环结构:

for循环结构:

for(初始化;判断条件;循环控制){

    循环的内容;

}

for (循环初始; 循环条件; 循环控制) { 循环体; }

  • 三个表达式可部分或全部省略,但中间两个分号不能省略(死循环)

  • 可以只留循环条件,其他两个不写

  • 全都不写或中间不写是死循环

#include<iostream>
using namespace std;
int main()
{
//先创建一个变量,
//设置循环条件
//设置循环的控制
    //输出1~99
	for(int x=1;x<100;x++){//x从1开始,x<100的话执行语句,每次循环x都会+1
		cout<<x<<endl;
	} 
	return 0; 
} 
#include<iostream>
using namespace std;
int main()
{
	int x=1; //可以将循环初始拿出来
	for(;x<100;){
		cout<<x<<endl;
		x++;//可以将循环控制拿出来
	} 
	return 0; 
} 
#include<iostream>
using namespace std;
int main()
	for(;;){//会一直输出1234
		cout<<1234<<endl;
	} 

    for(int a=0;;a++){//没有循环的判断也是死循环
		cout<<1234<<endl;
	} 

	return 0; 
} 

 while循环结构:

变量初始化
while(循环判断){

    循环内容1;
    循环内容2;
    ......;  

    循环控制(自增、自减、......);//让循环结束
}

while循环的特点:

  • 需要在循环外创建循环的变量
  • 循环判断不能为空(报错)
  • 需要在循环体内进行循环的控制
  • 当循环判断为0时退出循环,其他数字全为死循环
#include<iostream>
using namespace std;
int main()
{
	int x=100;
	while(x>0){ //输出100~1 
		cout<<x<<endl;
		x--;
	}
	
	while(1){ //死循环 
		cout<<"die"<<endl; 
	}

    while(-1){ //死循环 
		cout<<"die"<<endl; 
	}

	return 0; 
} 

 do while循环结构:

循环变量初始化
do{

    循环的内容;
    
    循环控制;


}while(循环判断);//注意不要漏掉 ;  

do while循环的特点:

  • 会先执行一次循环体,再进行循环判断。
  • 需要在循环外创建循环的变量
  • 循环判断不能为空(报错)
  • 需要在循环体内进行循环的控制
  • 当循环判断为0时退出循环,其他数字全为死循环
#include<iostream>
using namespace std;
int main()
{
	int x=100;
	do{
		cout<<x<<endl;
		x--; 
	}while(x>0); 
	return 0; 
} 

while和 do while 的区别:

  • while 先判断再循环 ,do while 先循环再判断

  • while 判断语句比循环语句多运行一次

  • do while 判断语句和循环语句运行次数相同

循环控制语句: 

continue结束本次循环,continue后的内容不会执行
break(跳出最靠近的一个循环)跳出循环
goto(一般不要使用)跳转
//求1-100的奇数和
int sum=0;//统计奇数的和
for(int i=1;i<=100;i++){
    if(i%2==0){//如果是偶数,退出本次循环,sum就不加上i
        contnue;
    }
    sum+=i;
}

//找到1-100中第一个符合 可以被7整除也可以被11整除的数
for(int i=1;i<=100;i++){
    if(i%7==0&&i%11==0){
        cout<<i<<endl;
        break;//找到就直接退出整个循环
    }
}

goto的格式: 标识: ..... goto 标识

 int main(){
 for(int i=0;i<20;i++)
 {
     if(i=5)
     goto P;//跳转
 }
 P: //确定位置
   cout<<"end"<<endl;
   system("pause");
   return 0;
 }

循环中使用选择语句:

循环中使用选择语句可以筛选我们想要的数据

#include<iostream>
using namespace std;
int main(){
	//求1-100的总和,奇数和,偶数和
	int num1=0;
	int num2=0;
	int num3=0;
	for(int i=1;i<=100;i++){
		//每次循环加上i
		num+=i;
		//判断是否为奇数 
		if(i%2==1){
			num2+=i; 
		} 
		else{ //不是奇数的话那一定是偶数 
			num3+=i;
		}
	} 
	 
	 return 0;
}

 对应题目:

2024/12

 

2025/03

2025/06

C中的基本的输入输出:

头文件:#include<cstdio>

scanf():进行格式化输入

printf():进行格式化输出

输出或输入格式:

%o无符号以八进制表示的整数
%d十进制有符号整数
%u十进制无符号整数
%f浮点数
%c单个字符
%s字符串
%p指针的值(地址)
%e指数形式的浮点数
%x, %X无符号以十六进制表示的整数
%g把输出的值按照 %e 或者 %f 类型中输出长度较小的方式输出
%%输出百分号字符本身

常见的转义字符及其含义:

  • \0: 空字符,用作字符串的结束标志。

  • \a: 警告字符,通常会触发系统的蜂鸣声。

  • \b: 退格符,将光标移回前一位置。

  • \t: 水平制表符,用于在文本中创建一个制表位。

  • \n: 换行符,用于开始新的一行。

  • \v: 垂直制表符,用于在文本中创建一个垂直制表位。

  • \f: 换页符,用于将当前位置移到下一页的开头。

  • \r: 回车符,将光标移回当前行的开头。

  • \’: 单引号,用于在字符或字符串中表示单引号字符。

  • \": 双引号,用于在字符串中表示双引号字符。

  • \\: 反斜杠,用于在字符串中表示反斜杠字符。

scanf()格式输入 :

scanf("格式化1 格式化2 ....",&变量1,&变量2,...)  

  • 格式化:指定接收的数据类型(int 使用%d   浮点数使用%f)
  • 格式化与格式化之间的间隔,输入时也要使用一样的间隔
  • 指定输入的变量时需要使用& ,链接到变量的地址
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	int a;
    float b;
    char c;
	scanf("%d %f %c",&a,&b,&c);
    //输入时需要指定对应的输入的类型
    //格式化时使用空格进行间隔,输入数据时也需要使用空格间隔

    scanf("%d_%f_%c",&a,&b,&c);
    //格式化时使用_进行间隔,输入数据时也需要使用_间隔

	cout<<a<<" "<<b<<"  "<<c<<endl;
	return 0; 
} 

printf()格式输出:

printf("格式化1 格式化2 ....",变量1,变量2,(表达式)...)  

  • 可以直接在  " " 中直接写入想输出的字符(字母、数字、符号、中文)
  • 格式化:指定输出的数据类型(int 使用%d   浮点数使用%f)、
  • 输出时使用表达式也可以
#include <iostream>
#include<cstdio> 
using namespace std; 
int main() {
	int a=100;
	printf("ppppp 故人 失望 \n");//直接使用" "输出具体的内容
	printf(" 需要输出的数据为 %d   %d   %d",a,a+100,2000);//输出变量和一些值 
	return 0;
}

printf()格式控制

  • 标志(flags):如-表示左对齐,+表示右对齐,0表示用零填充等。

  • 宽度(width):指定最小输出宽度,如%5d表示最小宽度为5。

  • 精度(precision):如%.2f表示保留两位小数。

  • 长度(length):如l表示长整型,h表示短整型。

  • 类型(type):如d表示十进制整数,f表示浮点数,s表示字符串等。

printf  默认表示小数点6位(四舍五入)

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	int a = 1234;
	float f = 3.141592653589;
	double x = 0.12345678912345678;
	char c='A';
	//整数处理 
	printf("a=%d\n", a);//按照十进制整数格式输出,显示 a=1234
	printf("a=%d%%\n", a);//输出%号 结果 a=1234%
	printf("a=%6d\n", a);//输出6位十进制整数 左边补空格,显示 a= 1234
	printf("a=%06d\n", a);//输出6位十进制整数 左边补0,显示 a=001234
	printf("a=%2d\n", a);//a超过2位,按实际输出 a=1234
	printf("a=%-6d\n", a);///输出6位十进制整数 右边补空格,显示 a=1234
	//小数处理 
	printf("f=%f\n", f);//浮点数有效数字是7位,结果 f=3.141593
	printf("f=%6.4f\n", f);//输出6位,小数点后4位,结果 f=3.1416
	printf("x=%lf\n", x);//输出长浮点数 x=0.123457
	printf("x=%18.16lf\n", x);//输出18列,小数点后16位,x=0.1234567891234567
	//字符处理 
	printf("c=%c\n", c);     //输出字符 c=A
	printf("c=%x\n", c);//以十六进制输出字符的ASCII码 c=41
	return 0; 
} 

对应题目:

2024/12

2025/03

2025/06

C++中的基本输入输出:

cin输入:

cin>>变量1>>变量2>>变量3>>.......;

  • 可以连续输入输入,输入时需要用空格或回车隔开
  • cin不能读取空格
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	int a;
	double b;
	char c;
	cin>>a>>b>>c;
	cout<<a<<" "<<b<<" "<<c<<endl;
	return 0; 
} 

 cout输出:

cout<<内容1<<内容2<<内容3;

  • 输出小数时,默认会保留6位数(包括整数部分,优先输出整数部分)数据太多时会转化为 e的形式
  • 可以直接输出数字
  • 输出字符使用  ' '
  • 输出字符串使用  " "
  • 可以直接输出变量,可以输出变量计算的表达式
  • cout中也可以使用转义字符
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	float f1=666666.11111;
	double d1=666666.1111;
	cout<<f1<<endl;
	cout<<d1<<endl;
	return 0; 
} 

 

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	float f1=666666666.11111;
	double d1=666666666.1111;
	cout<<f1<<endl;
	cout<<d1<<endl;
	return 0; 
} 

cout<<endl;//回车
cout<<"\n";//回车

 cout批量输出数据:

cout<<R"(字符串)";(C++11添加:原始字符串字面值)

#include<iostream>
int main()
{
    std::cout<<R"(                ********
               ************
               ####....#.
             #..###.....##....
             ###.......######              ###            ###
                ...........               #...#          #...#
               ##*#######                 #.#.#          #.#.#
            ####*******######             #.#.#          #.#.#
           ...#***.****.*###....          #...#          #...#
           ....**********##.....           ###            ###
           ....****    *****....
             ####        ####)";
    return 0;
}

设置输出宽度

函数作用
cout.width()设置输出宽度(默认用空格填充)
cout.fill()设置宽度的填充
setw()cout<<中设置输出宽度(单次)头文件#include<iomanip>
setfill()cout<<中设置宽度填充(单词)头文件#include<iomanip>

cout.width():设置宽度

  • 大于0从左边填充(右对齐)

  • 小于0从右边填充(左对齐)

#include<iostream>
using namespace std;
int main()
{
	int a=0;
	int b=1;
	//设置正数宽度 
	cout.width(10);
	cout<<a<<endl;
	//设置负数宽度 
	cout.width(-10);
	cout<<b<<endl;
	return 0; 	
} 

cout.fill():设置填充字符

#include<iostream>
using namespace std;
int main()
{
	int a=0;
	int b=1;
	//设置正数宽度 
	cout.width(10); 
	cout.fill('*');//数据左边填充*
	cout<<a<<endl;
	return 0; 	
} 

setw():指定输出的宽度

setfill():指定宽度填充

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    int a=0;
    int b=1;
    int c=3;
    //指定单次输出的宽度 
    cout<<setfill('*')<<setw(5)<<a<<endl;
    cout<<b<<endl;
    cout<<setfill('&')<<setw(10)<<c<<endl; 
    return 0;     
} 

设置bool类型输出的值:

  • std::boolalpha 布尔值以 true/false 输出

  • std::noboolalpha 布尔值以 1/0 输出(默认)

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    bool p=true;
    cout<<p<<endl;//直接输出 值为1
    cout<<boolalpha<<p<<endl;//输出true 
    return 0;     
} 

设置精度:

头文件:#include<iomanip>

  • 利用 std::setprecision() 可以设置设置浮点数的有效位数

  • 浮点数默认精度为 6

直接设置有效位数:

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	double p=3.141592653589793;
	cout<<p<<endl;//直接输出,默认是6位有效数字 
	cout<<setprecision(5)<<p<<endl;//设置5的有效位数 
	cout<<setprecision(10)<<p<<endl;//设置10的有效位数 
	return 0; 	
} 

 

固定小数点:

  • 先使用std::fixed函数

  • 后面跟着std::setprecision()设置小数点后的位数

#include<iostream>
#include<iomanip> //精度控制文件,需要添加
using namespace std;
int main()
{
	double p=123.0;
	cout<<p<<endl;//直接输出
	//fixed和setprecision()使用可以设置小数点后的位数 
	cout<<fixed<<setprecision(2)<<p<<endl; 
	return 0; 	
} 

 对应题目:

2024/12

 

2025/03

2025/06

两道应用题:

第一道编程题:

算数运算、选择语句、关系运算符、输入输出

2024/12

2025/03

2025/06 

第二道编程题:

循环结构的使用、选择结构、逻辑运算符、关系运算符、算数运算符、输入和输出

2024/12

2025/03

2025/06

本文标签: 题型 GESP