计算机基础知识和C++格式化输入输出

计算机基础知识

第一台电子计算机:ENIAC, Electronic Numerical Integrator And Calculator

计算机发展的几个阶段:

计算机硬件基本组成:

计算机系统的组成:

进制的概念

二进制优势:

1.信息复制的精确性

2.运算规则简单

3.使电子线路制造计算机成为可能

程序和指令

指令是对计算机进行程序控制的最小单位

所有的指令的集合称为计算机的指令系统

程序是为完成一项特定任务而用某种语言编写的一组指令序列。

信息的存储单位

位(Bit):计算机的最小单位

字节(Byte):计算机的基本单位

计算机语言

自然语言:人与人之间用来表达意思,交流思想的工具。是由语音、词 汇和语法构成的一定系统。

程序设计语言 :人指挥计算机工作的工具。是由字、词和语法规则构成的指令系统

机器语言:面向机器的指令系统

汇编语言:以类英语缩写来编程序

高级语言:不面向机器,用接近人类语言的描述方式构成的指令系统

翻译程序

汇编程序:把汇编源程序转换为机器语言的程序

编译器:把高级语言程序转换为机器语言或汇编语言的翻译程序

指令比较

以下指令实现把表达式 3a - 2b + 1 的计算结果放到变量 a 中:

C++程序的执行过程

C++格式化输出

八进制、十进制、十六进制 C++ 表示与输出。

int a = 100;
cout << a << endl; // 默认十进制
cout << dec << a << endl;
cout << oct << a << endl;
cout << hex << a << endl;

输出:
100
100
144
64
int a = 100, b = 0144, c = 0x64;
cout << a << " " << b << " " << c << endl;

输出:
100 100 100

设置域宽:需要引入库 #include

cout << "cat" << endl;
cout << setw(10) << "cat" << endl;
cout << setfill('*') << setw(10) << "cat" << endl;
cout << setfill('*') << setw(10) << "blackcat1995" << ".com" << endl;
cout << setfill('*') << setw(2) << "blackcat1995.com" << endl;

输出:
cat
       cat
*******cat
blackcat1995.com
blackcat1995.com

保留指定小数位数:需要引入库 #include

const double PI = 3.14;

cout << PI << endl;
cout << setprecision(6) << PI << endl;
cout << setprecision(6) << 3.14159265358 << endl;

cout << fixed << setprecision(6) << PI << endl;

输出:
3.14
3.14
3.14159
3.140000

注意:

1.必须加 fixed,否则实际输出位数可能会小于指定保留位数。

2.以上所有格式化控制符只对紧跟在其后的数据有作用

C语言风格格式化输出

当输入数据范围较大时,比如超过100万,cin 读取数据就会明显变慢导致超时,这时,就可以采用C语言风格进行输入输出。

首先我们来看一下什么是C语言编程。

C语言就是以 .c 为后缀的文本文件,例如,创建一个 main.c 文件:

#include   

int main(){

	int n;
	scanf("%d", &n);
	printf("a = %d\n", n);
	printf("Hello cat.");
	
	return 0;
}

使用 gcc 进行编译:

如果变为 C++ 文件,只需更改后缀为 main.cpp,然后,将 stdio.h 变为 cstdio。

#include   

int main(){

	int n;
	scanf("%d", &n);
	printf("a = %d\n", n);
	printf("Hello cat.");
	
	return 0;
}

格式化输入

scanf(格式控制字符串,变量1地址,变量2地址...)。

格式控制符对应后面的变量地址。

注意:传入的是变量地址,变量前要有&,表示取地址。%d 和 %d 之间可以加空格也可以不加空格。

格式化输出

printf(格式控制字符串,表达式1,表达式2...)

格式控制字符串中的普通字符会保留,格式控制符会被后面对应的参数替代,构成字符串。

注:换行符为 '\n',例 "123\n456\n789"。

int a;
float b;
double c;
char d;

scanf("%d%f%lf\n%c", &a, &b, &c, &d);
printf("a=%d b=%f c=%.3lf d=%c d=%d\n", a, b, c, d, d);

注意:读取完变量 c 后,换行再读取 d,需要在 scanf 中过滤掉换行符。

疯狂刷题

  • P195 对齐输出
  • P668 反向输出三位数
  • P99 保留3位小数的浮点数
  • P100 保留12位小数的浮点数
  • P112 计算分数的浮点数值
  • P203 计算浮点数相除的余
原文链接:,转发请注明来源!