一、语句
C++程序是由一条条语句组成,程序运行过程就是语句逐条执行的过程,而语句执行的次序称之为流程。
(1)分类
C++语句分为简单语句、复合语句和控制语句。
①简单语句
1.表达式语句。
//如:
x=a+b;
t=a,a=b,b=t;
2.函数调用语句。
//如:
printf("a,b");
3.空语句。
②复合语句(语句块,简称块)
用一对大括号({ })将若干条语句括起来形成一个语句块。
例:
{
double s,a=5,b=10,h=8; //局部声明
s=(a+b)*h/2.0;
cout<<"area = "<<s<<endl;
} //复合语句不需要分号结尾
③控制语句
如:if语句、switch语句、循环语句。
(2)注释
形式:
// 注释内容 后一整行
/* 注释内容 内部全部为注释 */
(3)语句的写法
1.多数情况下,在一个程序行里只写一个语句。
2.注意使用空格或TAB来合理的间隔、缩进、对齐。
3.C++语言允许在一行里写多个语句。
#include<iostream>
using namespace std;
int main()
{
cout<<"hello world\n"<<endl;
reutrn 0;
}
二、输入与输出
所谓输入是指从外部输入设备(键盘、鼠标等)向计算机输入数据,输出是指从计算机向外部输出设备(显示器、打印机等)输出数据。
(1)C++语言中输入输出
C++语言输入输出操作使用流对象(stream)实现的。若在程序中使用流对象cin和cout,应该将标准输入输出流库的头文件<iostream>包含在源文件中。
#include<iostream>
using namespace std;
(2)cout(流插入运算符)与cin(流提运算符)的使用
//表达式
cout<< 表达式1 << 表达式2 <<.......;
cin<< 表达式1 << 表达式2 <<.......;
int x,y;
cin>>x>>y; //从键盘输入
cout<<"x="<<x<<" "<<"y="<<y<<endl; //输出到显示器上
注:使用cin输入时,为了分隔多项数据,默认要求在键盘输入数据之间使用空格、TAB键、回车作为分隔符。
例:
#include<iostream>
using namespace std;
int main()
{
int c1,c2,c3;
cin>>c1>>c2>>c3;
cout<<"c1="<<c1<<",c2="<<c2<<",c3="<<c3<<endl;
return 0;
}
(3)输入输出的格式控制
可以在输入输出流中使用控制符进行格式控制。使用这种方法,须在源文件中添加<iomanip>头文件。
控制符 | 描述 |
dec | 置基数为10 |
hex | 置基数为16 |
oct | 置基数为8 |
setfill(‘c’) | 设填充字符为c |
setprecision(n) | 设显示小数精度为n位 |
setw(n) | 设域宽为n个字符 |
fixed | 固定的浮点显示 |
secientific | 科学计数法表示 |
left | 左对齐 |
right | 右对齐 |
skipws | 忽略前导空白 |
uppercase | 十六进制数大写输出 |
lowercase | 十六进制数小写输出 |
showpoin | 显示小数点 |
showpos | 显示符号(+ -) |
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
bool v;
int a,m,n;
double x,y,z,p,f;
float f1;
cin>>boolalpha>>v; //输入: true
cin>>oct>>a>>hex>>m>>dec>>n; //输入:144 46 -77
cin>>p>>f>>f1>>x>>y>>z;//输入;3.14 3.14 3.14 3.14159 0.1 0.1e1
cout<<v<<" "<<boolalphac <<v<<" "<<noboolalpha<<v<<endl; //输出:1 true 1
cout<<a<<" "<< p <<" "<< a * p << endl;//输出:100 3.14 314
cout<<hex<< m <<" "<<oct<< m <<" "<< dec << m <<endl; //输出:4610670
cout<<showbase<<hex << m <<" "<< oct << m <<" "<< dec << m <<endl; //输出;0x46 0106 70
//ox代表16进制 0代表8进制
cout.precision (5);
cout<< x <<" "<< y<<" "<< z << endl; //输出:3.1416 0.1 1
cout << fixed << x <<" "<< y <<" "<< z << endl ;//输出:3.14159 0.10000 1.00000
cout << scientific << x <<" "<< y <<" "<< z << endl; //输出:3.14159e+000 1.00000e-001 1.00000e+000 scientific代表科学计数法表示
cout << left << setw(6)<< n << endl; //输出:-77
cout.width (6);
cout << right << n < cendl; //输出:_ _ _-77
cout << setw(10)<<77<<" " <<setfill('0')<<setw(10)<<<77<<endl;
//输出 _ _ _ _ _ _ _ _77 0000000077
cout << fixed << setprecision(5)<< f <<" "<< setprecision(9)<< f <<endl;
//输出:3.14000 3.140000000
cout << showpos << 1 <<" "<< 0 <<" "<< -1 << endl;
//输出:+1 +0 -1
cout << showpoint << 10/5 <<endl;
//输出:2.000
return 0;
}
注:
1. 使用setprecision(n)可控制输出显示的有效数字。
2.setprecision(n)与fixed合用,可以控制小数点右边的数字个数。
3.setprecision(n)与scientific合用可以控制指数表示法的小数位数。
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
double amount =22.0/7;
cout<<amount<<endl;
cout<<setprecision(0)<<amount<<endl;
cout<<setprecision(1)<<amount<<endl;
cout<<setprecision(2)<<amount<<endl;
cout<<setprecision(3)<<amount<<endl;
cout<<setprecision(4)<<amount<<endl;
cout<<fixed<<setprecision(8)<<amount<<endl;
coout<<scientific<<amount<<endl;
cout<<setprecision(6);// 重新设为默认值
return 0;
}
//结果:
/*
3.14286
3
3
3.1
3.14
3.143
3.14285714
3.14285714e+00
*/
4.C++默认6位有效数字。
5.C++中默认右对齐。
6.使用setw(n),若数据宽度超过定义的n,则控制符无效。
float a=3.1415926;
cout<<setw(4)<<a<<endl;
//输出3.1415926
7.为指明有效位数,则沿用上一次设置的值。(******)
8.setw(n),仅仅能影响下一个数值的输出。
cout<<setw(8)<<10<<20;
//结果为:
/*
_ _ _ _ _ _ 1020;
*/
cout<<setw(8)<<10<<setw(8)<<20;
//结果为:
/*
_ _ _ _ _ _ 10_ _ _ _ _ _20;
*/
9.setfill可以修饰setw的间隔字符。
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
cout<<setfill('*')
<<setw(2)<<21
<<setw(3)<<21
<<setw(4)<<21<<endl;
cout<<setfill(' '); //恢复默认设置 ******
return 0;
}
//结果
/*
21
*21
**21
*/
(4)顺序结构
语句以其出现的顺序执行。
一个语句执行完会自动转到下一个语句开始执行,这样的执行称为顺序执行。
#include<iostream>
using namespace std;
#define PI 3.1415926
int main()
{
double r,area;
cin>>r;
area=PI*r*r;
cout<<"area ="<<area<<endl;
return 0;
}