C++第五章:顺序结构的程序设计

一、语句

        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)实现的。若在程序中使用流对象cincout,应该将标准输入输出流库的头文件<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;
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值