例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. nginx请求体读取

    上节说到nginx核心本身不会主动读取请求体,这个工作是交给请求处理阶段的模块来做,但是nginx核心提供了ngx_http_read_client_request_body()接口来读取请求体,另外 ...

  2. EasyUI 使用

    1.面板的使用 <div id="box" > <p>内容区域</p> </div> <div id="tt&quo ...

  3. 【stm32】实现STM32的串口数据发送和printf函数重定向

    在调试电机驱动程序的时候,是不能随便利用中断来进行一些寄存器或数据的查看的,不然你在运行的时候突然来一下,如果占空比大的话那可能直接就把MOS管给烧了,所以我们很多情况下只能使用USART(串口)来进 ...

  4. JVM启动过程——JVM之一

    JVM是Java程序运行的环境,同时是一个操作系统的一个应用程序进程,因此它有自己的生命周期,也有自己的代码和数据空间. JVM体系主要是两个JVM的内部体系结构分为三个子系统和两大组件,分别是:类装 ...

  5. 读<<代码整洁之道>>的感想

    花去了近一周的时间浏览一下这本书.总体感觉这本书写得不错. 我发现自己以前写的代码时多么的糟糕.有很多改进之处... 同时我也发现写出优秀的代码不易.优秀的代码不仅仅易读,并且易修改,易维护,程序易维 ...

  6. 14.3.5.1 Interaction of Table Locking and Transactions 表锁和事务的相互作用

    14.3.5.1 Interaction of Table Locking and Transactions 表锁和事务的相互作用 LOCK TABLES 和UNLOCK TABLES 交互实用事务如 ...

  7. (五)boost库之随机数random

    (五)boost库之随机数random boost库为我们提供了许多的日常随机数生成器: 1.uniform_smallint:在小整数域内的均匀分布 2.uniform_int:在整数域上的均匀分布 ...

  8. Unix/Linux环境C编程入门教程(27) 内存那些事儿

    calloc() free() getpagesize() malloc() mmap() munmap()函数介绍 calloc(配置内存空间) 相关函数 malloc,free,realloc,b ...

  9. 经典CSS颜色混合模式

    转自:http://www.webhek.com/css-blend-mode/ 注意:只有使用最新版的谷歌浏览器.火狐浏览器,才能正确的显示本文中的演示. Photoshop里最没有用处的一种功能— ...

  10. 【LeetCode练习题】Multiply Strings

    Multiply Strings Given two numbers represented as strings, return multiplication of the numbers as a ...