例1.1

演示使用结构对象的示例程序。

 //功能:将结构对象的两个域值相加,乘以2再加50
#include <iostream>//包含头文件 using namespace std;//使用命名空间 int result(int, int);//result函数的原型声明
const int k = ;//定义常量
struct Point//定义结构point
{
int x, y;//定义结构成员x和y
};
//空行
int main()//主程序
{//主程序开始
int z(), b();//初始化整数对象
Point a;//定义结构对象a cout << "输入两个整数(以空格区分):";//输出提示信息
cin >> a.x >> a.y;//接受输入数值 z = (a.x + a.y)*k;//计算结果
z = result(z, b);//计算结果 cout << "计算结果如下:" << endl;//输出信息并换行
cout << "((" << a.x << "+" << a.y//输出信息
<< ")*" << k << ")+" << b//输出信息
<< "=" << z//输出结果
<< endl;//换行 return ;//主函数main的返回值
}
//*********************
//函数:result
//参数:整型对象a和b
//返回值:整型对象
//*********************
int result(int a, int b)
{
return a + b;//返回a+b
}

例1.2

函数重载产生多态性的例子。

 #include <iostream>

 using namespace std;

 int max(int, int);//2个整型参数的函数原型
int max(int, int, int);//3个整型参数的函数原型 int main()
{
cout << max(, ) << "," << max(, , ) << endl; system("pause");
} int max(int m1, int m2)
{
return (m1 > m2) ? m1 : m2;
} int max(int m1, int m2, int m3)
{
int t = max(m1, m2);
return max(t, m3);
}

例1.3

演示使用new和delete的例子。

 #include <iostream>

 using namespace std;

 void main()
{
double *p;//声明double型指针 p = new double[];//分配3个double型数据的存储空间 for (int i = ; i < ; i++)//定义对象i的初值为0
{
cin >> *(p + i);//将输入数据存入指定地址
} for (int i = ; i < ; i++)
{
cout << *(p + i) << " ";//将地址里的内容输出
} delete p;
}

例1.4

演示引用的例子。

 #include <iostream>

 using namespace std;

 void main()
{
int x = ;//定义并初始化x
int& a = x;//声明a是x的引用,a和x的地址相同
int& r = a;//声明r是x的引用,r和x的地址相同,即和x的地址也相同 cout << "x=" << x << ",&x=" << &x << ",a=" << a << ",&a=" << &a
<< ",r=" << r << ",&r=" << &r << endl; r = ;//改变r,则a和x都同步变化 cout << "x=" << x << ",&x=" << &x << ",a=" << a << ",&a=" << &a
<< ",r=" << r << ",&r=" << &r << endl;
}

例1.6

演示数组升幂排序、复制、逆向和输出等操作的例子。

 #include <iostream>
#include <algorithm>
#include <iterator> using namespace std; void main()
{
double a[] = { 1.1,4.4,3.3,2.2 }, b[]; copy(a, a + , ostream_iterator<double>(cout, " "));//正向输出数组a,以空格隔开
cout << endl; reverse_copy(a, a + , ostream_iterator<double>(cout, " "));//逆向输出数组a,以空格隔开
cout << endl; copy(a, a + , b);//原样复制到数组b copy(b, b + , ostream_iterator<double>(cout, " "));//正向输出数组b,以空格隔开
cout << endl; sort(a, a + );//对数组a进行升幂排序 copy(a, a + , ostream_iterator<double>(cout, " "));//输出数组a
cout << endl; reverse_copy(a, a + , b);//将a的内容按逆向复制给数组b copy(b, b + , ostream_iterator<double>(cout, " "));//输出数组b
cout << endl;
}

例1.7

演示数组降幂排序、查找和输出等操作的例子。

 #include <iostream>
#include <algorithm>
#include <functional>
#include <iterator> using namespace std; void main()
{
double a[] = { 1.1,4.4,3.3,2.2 }; sort(a, a + );//升幂排序 copy(a, a + , ostream_iterator<double>(cout, " "));
cout << endl; sort(a, a + , greater<double>());//降幂排序 copy(a, a + , ostream_iterator<double>(cout, " "));
cout << endl; double *x = find(a, a + , 4.4);//查找 if (x == a + )
{
cout << "没有值为4.4的数组元素";
}
else
{
cout << "有值为" << *x << "的数组元素";
} cout << endl; x = find(a, a + , );//x是double类型的指针 if (x == a + )
{
cout << "没有值为8的数组元素";
}
else
{
cout << "有值为" << *x << "的数组元素";
}
}

例1.8

演示对一维数组进行局部操作的例子。

 #define _SCL_SECURE_NO_WARNINGS

 #include <iostream>
#include <algorithm>
#include <functional>
#include <iterator> using namespace std; void main()
{
double a[] = { 1.1,4.4,3.3,2.2 }, b[] = { }; copy(a + , a + , ostream_iterator<double>(cout, " "));//输出a[2]和a[3]
cout << endl; reverse_copy(a + , a + , ostream_iterator<double>(cout, " "));//输出a[3]~a[1]
cout << endl; copy(a, a + , &b[]);//将数组赋值到数组b的尾部 copy(b, b + , ostream_iterator<double>(cout, " "));//输出数组b
cout << endl; sort(a + , a + );//对部分数组元素升幂排序 copy(a, a + , ostream_iterator<double>(cout, " "));//输出数组a
cout << endl; sort(b, b + , greater<double>());//对部分数组元素降幂排序 copy(b, b + , ostream_iterator<double>(cout, " "));//输出数组a
cout << endl;
}

例1.9

演示对字符数组进行操作的例子。

 #define _SCL_SECURE_NO_WARNINGS

 #include <iostream>
#include <algorithm>
#include <functional>
#include <iterator> using namespace std; void main()
{
char a[] = "wearehere!", b[]; reverse(a, a + );//数组元素逆向 copy(a, a + , ostream_iterator<char>(cout));//输出逆向后的数组内容
cout << endl; copy(a, a + , b);//原样复制到数组b sort(a, a + );//默认升幂排序 cout << a << endl;//输出排序结果
cout << b << endl;//输出数组b的内容 reverse_copy(a, a + , b);//逆向复制到数组b cout << b << endl;//输出逆向后的数组b的内容 reverse(b + , b + );//数组b部分逆向 copy(b + , b + , ostream_iterator<char>(cout));//输出数组b逆向后的部分内容
cout << endl; sort(a, a + , greater<char>());//降序排序 cout << a << endl;//输出排序后的数组a
cout << (*find(a, a + , 'e') == 'e') << " "
<< (*find(a, a + , 'O') == 'O') << endl;
}

例1.10

使用setw设置输出宽度的例子。

 #define _SCL_SECURE_NO_WARNINGS

 #include <iostream>
#include <iomanip> using namespace std; void main()
{
int a = , b = ; cout << a << setw() << b << endl;
cout << setw() << a << b << endl;
}

例1.11

在下面的程序中,当要求输入时,均输入100,给出程序的输出结果。

 #define _SCL_SECURE_NO_WARNINGS

 #include <iostream>
#include <iomanip> using namespace std;
const double PI = 3.141592; void main()
{
cout << PI << endl
<< setprecision() << PI << endl
<< setprecision() << PI << endl
<< setprecision() << PI << endl
<< setprecision() << PI << endl
<< setprecision() << PI << endl; int b = ; cout << "Dec:" << dec << b << endl
<< "Hex:" << hex << b << endl
<< "Oct:" << oct << b << endl; cout << b << endl
<< << endl
<< "Input b="; cin >> b; cout << b << endl;
cout << dec << setiosflags(ios_base::showpos) << b << endl;
cout << "Input b="; cin >> b; cout << b << endl;
cout << resetiosflags(ios_base::showpos);
cout << b << endl;
}

例1.12

分析下面程序的输出。

 #define _SCL_SECURE_NO_WARNINGS

 #include <iostream>
#include <iomanip> using namespace std; void main()
{
cout << setfill('*')
<< setw() << << endl
<< setw() << << endl
<< setw() << << endl
<< setw() << << endl
<< setw() << << endl; cout << setw() << setfill('*') << " " << endl; cout << setiosflags(ios_base::right)
<< setw() <<
<< setw() <<
<< setw() << << endl; cout << resetiosflags(ios_base::right); cout << setiosflags(ios_base::left)
<< setw() <<
<< setw() <<
<< setw() << << endl;
}

04737_C++程序设计_第1章_认识C++的对象的更多相关文章

  1. ArcGIS for Desktop入门教程_第七章_使用ArcGIS进行空间分析 - ArcGIS知乎-新一代ArcGIS问答社区

    原文:ArcGIS for Desktop入门教程_第七章_使用ArcGIS进行空间分析 - ArcGIS知乎-新一代ArcGIS问答社区 1 使用ArcGIS进行空间分析 1.1 GIS分析基础 G ...

  2. ArcGIS for Desktop入门教程_第六章_用ArcMap制作地图 - ArcGIS知乎-新一代ArcGIS问答社区

    原文:ArcGIS for Desktop入门教程_第六章_用ArcMap制作地图 - ArcGIS知乎-新一代ArcGIS问答社区 1 用ArcMap制作地图 作为ArcGIS for Deskto ...

  3. ArcGIS for Desktop入门教程_第四章_入门案例分析 - ArcGIS知乎-新一代ArcGIS问答社区

    原文:ArcGIS for Desktop入门教程_第四章_入门案例分析 - ArcGIS知乎-新一代ArcGIS问答社区 1 入门案例分析 在第一章里,我们已经对ArcGIS系列软件的体系结构有了一 ...

  4. 04737_C++程序设计_第4章_类和对象

    例4.1 描述点的Point类. 例4.2 根据上面对Point类的定义,演示使用Point类的对象. #define _SCL_SECURE_NO_WARNINGS #include <ios ...

  5. 04737_C++程序设计_第3章_函数和函数模板

    例3.1 传对象不会改变原来对象数据成员值的例子. #define _SCL_SECURE_NO_WARNINGS #include <iostream> #include <str ...

  6. 04737_C++程序设计_第2章_从结构到类的演变

    例2.1 使用成员函数的实例. #define _SCL_SECURE_NO_WARNINGS #include <iostream> using namespace std; struc ...

  7. 04737_C++程序设计_第10章_面向对象设计实例

    10.6.2 使用包含的参考程序及运行结果. 头文件cpp10.h 源文件cpp10.cpp 源文件Find10.cpp 头文件cpp10.h #if ! defined(CPP10_H) #defi ...

  8. 04737_C++程序设计_第9章_运算符重载及流类库

    例9.1 完整实现str类的例子. #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> ...

  9. 04737_C++程序设计_第8章_多态性和虚函数

    例8.1 分析下面程序的输出结果. 例8.2 分别使用指针和引用的display函数. #include <iostream> using namespace std; const dou ...

随机推荐

  1. TCP协议: SYN ACK FIN RST PSH URG 详解

    TCP的三次握手是怎么进行的了:发送端发送一个SYN=1,ACK=0标志的数据包给接收端,请求进行连接,这是第一次握手:接收端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给 ...

  2. 【D3.V3.js系列教程】--(十四)有路径的文字

    [D3.V3.js系列教程]--(十四)有路径的文字 1. 在 svg 中插入一個 text // 在 body 中插入一個 svg var svg = d3.select('body').appen ...

  3. USACO2016 January Gold Angry Cows

    Angry Cows 题目描述:给出数轴上的\(n\)个整点\((a[i])\),现在要在数轴上选一个位置\(x\)(可以是实数),以及一个半径\(R\),在以\(x\)为中心,半径为\(R\)的范围 ...

  4. 【POJ 3614 Sunscreen】贪心 优先级队列

    题目链接:http://poj.org/problem?id=3614 题意:C头牛去晒太阳,每头牛有自己所限定的spf安全范围[min, max]:有L瓶防晒液,每瓶有自己的spf值和容量(能供几头 ...

  5. nagios插件之监控if8接口日志(新接口)

    vi check_if8_log.c #include <stdio.h> #include <stdlib.h> #include <string.h> #inc ...

  6. Linux下如何进行FTP安装与设置

    1. 先用rpm -qa| grep vsftpd命令检查是否已经安装,如果ftp没有安装,使用yum  -y  install vsftpd 安装,(ubuntu 下使用apt-get instal ...

  7. 《think in python》学习-8

    字符串 字符串是一个序列,可以用方括号操作符来访问字符串中的单独字符 fruit = 'banana' letter = fruit[1] 方括号中的表达式称为下标 下标从0 开始 任何表达式,包括变 ...

  8. Windows系统的安装

    一.写在前面        笔者最近因为换工作,在家待业甚感无聊,于是想要整理一些在Windows系统的一些安装方法和下载资源,一来给自己做个备忘,二来把一些不成熟的想法分享出去,希望大家予以指正. ...

  9. 浏览器操作html页面的width和height

    原文:http://www.cnblogs.com/dengshunping/archive/2009/06/15/1503803.html IE中: document.body.clientWidt ...

  10. Android 上多方式定位元素(python)

    Android 上多方式定位元素(python) 在学习实际UI自动化测试的时候,首先就需要定位元素,然而定位元素也是最头疼的地方,因为元素各种控件名称的缺失会影响元素的准确定位.下面针对Androi ...