赞
踩
- //根据半径计算圆的周长和面积
- #include <iostream.h>
- const float PI=3.1416; //声明常量(只读变量)PI为3.1416
- float fCir_L(float); //声明自定义函数fCir_L()的原型
- float fCir_S(float); //声明自定义函数fCir_S()的原型
-
- //以下是main()函数
- main()
- {
- float r,l,s; //声明3个变量
-
- cout<<"r="; //显示字符串
- cin>>r; //键盘输入
- l=fCir_L(r); //计算圆的周长,赋值给变量l
- s=fCir_S(r); //计算圆的面积,赋值给变量s
- cout<<"l="<<l; //显示计算结果
- cout<<"\ns="<<s;
- }
-
- //定义计算圆的周长的函数fCir_L()
- float fCir_L(float x)
- {
- float z=-1.0; //声明局部变量
- if (x>=0.0) //如果参数大于0,则计算圆的周长
- z=2*PI*x;
- return(z); //返回函数值
- }
-
- //定义计算圆的面积的函数fCir_S()
- float fCir_S(float x)
- {
- float z=-1.0; //声明局部变量
- if (x>=0.0) //如果参数大于0,则计算圆的面积
- z=PI*x*x;
- return(z); //返回函数值
- }
- /* Program: P1-2.CPP
- Written by: Hap
- Date written: 02:11:10
- */
-
-
- #include <iostream.h>
- void main(void)
- {
- double s1,s2,s3;
- s1=1.5; /* 对变量s1赋值*/
- cout<<"s1="<<s1<<endl;
- /* 对变量s2赋值*/ s2=2.5;
- cout<<"s2="<<s2<<endl;
- s3= /* 对变量s3赋值*/ 3.5;
- cout<<"s3="<<s3<<endl;
-
- cout<<"s1+s2+s3="<<s1+s2+s3<<endl; //计算并显示
- //计算并显示 cout<<"s1+s2+s3="<<s1+s2+s3<<endl;
- }
- #include <iostream.h>
- main()
- {
- double r=1.0;
- cout<<"r="<<r<<endl;
- double l;
- l=2*3.1416*r; //计算圆的周长,赋值给变量l
- cout<<"l="<<l<<endl; //显示圆的周长
- double s=3.1416*r*r; //计算圆的面积,赋值给变量s
- cout<<"s="<<s<<endl; //显示圆的面积
-
- cout<<"r="; //显示提示输入的信息
- cin>>r; //键盘输入
- l=2*3.1416*r; //计算圆的周长,赋值给变量l
- cout<<"l="<<l<<endl; //显示圆的周长
- s=3.1416*r*r;
- cout<<"s="<<s<<endl; //显示圆的面积
- }
- #include <iostream.h> //包含iostream.h头文件
- void main()
- {
- //输出字符常量、变量和字符串
- char c1='A';
- cout<<'W';
- cout<<c1<<endl;
- cout<<"This is a test."<<endl;
- cout<<"------------------"<<endl;
-
- //输出整型常量、变量和表达式
- int n=100;
- cout<<10;
- cout<<n;
- cout<<2*n<<endl; //输出整型表达式
- cout<<"------------------"<<endl;
-
- //输出浮点型常量、变量和表达式
- double pi=3.1415926,r=10.0,s=pi*r*r;
- cout<<pi<<endl;
- cout<<r;
- cout<<s;
- cout<<2*r*pi<<endl; //输出浮点型表达式
- cout<<"------------------"<<endl;
-
- //一个cout可以输出多项数据
- cout<<'W'<<" "<<c1<<endl;
- cout<<"This is a test."<<endl;
- cout<<"pi="<<pi<<" r="<<r<<" s="<<s<<endl;
- }
- #include <iostream.h> //包含iostream.h头文件
- main()
- {
- //输入输出字符
- char c;
- cin>>c;
- cout<<"c="<<c<<endl;
-
- //输入输出整型数据
- int n;
- cin>>n;
- cout<<"n="<<n<<endl;
-
- //输入输出浮点型数据
- double x;
- cin>>x;
- cout<<"x="<<x<<endl;
-
- //输入提示
- cout<<"n=";
- cin>>n;
- cout<<"n="<<n<<endl;
-
- //多项输入
- cout<<"c n x"<<endl;
- cin>>c>>n>>x;
- cout<<"c="<<c<<" n="<<n<<" x="<<x<<endl;
- }
- #include <iostream.h> //包含iostream.h头文件
- main()
- {
- //声明整型变量
- int a,b;
-
- //从键盘上为整型变量赋值
- cout<<"a=";
- cin>>a;
- cout<<"b=";
- cin>>b;
-
- //整型数的算术运算
- cout<<a<<"+"<<b<<"="<<a+b<<endl;
- cout<<a<<"-"<<b<<"="<<a-b<<endl;
- cout<<a<<"*"<<b<<"="<<a*b<<endl;
- cout<<a<<"/"<<b<<"="<<a/b<<endl;
- cout<<a<<"%"<<b<<"="<<a%b<<endl;
-
- //测试溢出
- short n=32767,m; //n取short类型的最大值
- cout<<"n="<<n<<endl;
- m=n+1; //引起溢出
- cout<<"n+1="<<m<<endl;
- }
- #include <iostream.h> //包含iostream.h头文件
- main()
- {
- //声明变量,并初始化
- int a=010,b=10,c=0X10;
-
- //以十进制形式显示数据
- cout<<"DEC:";
- cout<<" a="<<a;
- cout<<" b="<<b;
- cout<<" c="<<c<<endl;
-
- //以八进制形式显示数据
- cout<<"OCT:";
- cout<<oct; //指定八进制输出
- cout<<" a="<<a;
- cout<<" b="<<b;
- cout<<" c="<<c<<endl;
-
- //以十六进制形式显示数据
- cout<<"HEX:";
- cout<<hex; //指定十六进制输出
- cout<<" a="<<a;
- cout<<" b="<<b;
- cout<<" c="<<c<<endl;
-
- //八、十和十六进制数混合运算并输出
- cout<<"a+b+c=";
- cout<<dec; //恢复十进制输出
- cout<<a+b+c<<endl;
-
- //测试八、十和十六进制输入
- cout<<"DEC:a="; cin>>a;
- cout<<"OCT:b="; cin>>b;
- cout<<"HEX:a="; cin>>c;
- cout<<"DEC:"<<dec<<endl; //指定十进制输出
- cout<<"a="<<a<<endl;
- cout<<"b="<<b<<endl;
- cout<<"c="<<c<<endl;
- }
- #include <iostream.h> //包含iostream.h头文件
- #include<iomanip.h> // iomanip.h头文件包含setprecision()的定义
- main()
- {
- //float型变量的声明、输入、计算和输出
- float fx,fy;
- cout<<"fx=";
- cin>>fx;
- cout<<"fy=";
- cin>>fy;
- cout<<fx<<"+"<<fy<<"="<<fx+fy<<endl;
- cout<<fx<<"-"<<fy<<"="<<fx-fy<<endl;
- cout<<fx<<"*"<<fy<<"="<<fx*fy<<endl;
- cout<<fx<<"/"<<fy<<"="<<fx/fy<<endl<<endl;
- //cout<<fx<<"%"<<fy<<"="<<fx%fy<<endl; Error!
-
- //double型变量的声明、输入、计算和输出
- float dx,dy;
- cout<<"dx=";
- cin>>dx;
- cout<<"dy=";
- cin>>dy;
- cout<<dx<<"+"<<dy<<"="<<dx+dy<<endl;
- cout<<dx<<"-"<<dy<<"="<<dx-dy<<endl;
- cout<<dx<<"*"<<dy<<"="<<dx*dy<<endl;
- cout<<dx<<"/"<<dy<<"="<<dx/dy<<endl<<endl;
- //cout<<fx<<"%"<<fy<<"="<<fx%fy<<endl; Error!
-
- //测试float和double类型数据的有效位
- fx=10.0;fy=6.0;
- float fz=fx/fy;
- dx=10.0;dy=6.0;
- double dz=dx/dy;
- cout<<"fz=";
- cout<<setprecision(20)<<fx<<"/"<<fy<<"="<<fz<<endl;
- cout<<"dz=";
- cout<<setprecision(20)<<dx<<"/"<<dy<<"="<<dz<<endl<<endl;;
-
- //float型溢出
- float x=3.5e14;
- cout<<"x="<<x<<endl;
- cout<<"x*x="<<x*x<<endl;
- cout<<"x*x*x="<<x*x*x<<endl;
- }
- #include <iostream.h> //包含iostream.h头文件
- main()
- {
- //字符类型变量的声明
- char c1='A';
- char c2;
-
- //字符数据的运算及输出
- c2=c1+32;
- cout<<"c1="<<c1<<endl;
- cout<<"c2="<<c2<<endl;
-
- //输出字符及ASCII码
- cout<<c1<<" : "<<int(c1)<<endl;
- cout<<c2<<" : "<<int(c2)<<endl;
- cout<<'$'<<" : "<<int('$')<<endl;
-
- //输入字符
- cout<<"c1 c2"<<endl;
- cin>>c1>>c2;
- cout<<"c1="<<c1<<" c2="<<c2<<endl;
- }
- #include <iostream.h> //包含iostream.h头文件
- main()
- {
- char c1='\a',TAB='\t';
-
- //阵铃一声
- cout<<c1<<endl;
-
- //使用水平制表符
- cout<<1<<TAB<<2<<TAB<<3<<TAB<<4<<endl;
-
- //使用双引号
- cout<<"He said \"Thank you\"."<<endl;
-
- //使用回车换行
- cout<<"abc\n"<<"def"<<'\n';
- }
-
- #include <iostream.h> //包含iostream.h头文件
- main()
- {
- //声明bool变量,并初始化
- bool flag1=false,flag2=true;
-
- //输出布尔常量和变量
- cout<<"false:"<<false<<endl;
- cout<<"true: "<<true<<endl;
- cout<<"flag1="<<flag1<<endl;
- cout<<"flag2="<<flag2<<endl;
-
- //布尔变量的赋值和输出
- int x=1;
- flag1=x>0; //存放关系运算结果
- cout<<"flag1="<<flag1<<endl;
- flag2=flag1; //bool类型变量相互赋值
- cout<<"flag2="<<flag2<<endl;
-
- //布尔变量超界处理
- flag1=100;
- cout<<"flag1="<<flag1<<endl;
- flag2=-100;
- cout<<"flag2="<<flag2<<endl;
- }
- #include <iostream.h>
- const double PI=3.1416; //声明常量(const变量)PI为3.1416
- main()
- {
- //声明3个变量
- double r,l,s;
-
- //输入圆的半径
- cout<<"r=";
- cin>>r;
-
- //计算圆的周长
- l=2*PI*r;
- cout<<"l="<<l<<endl;
-
- //计算圆的面积
- s=PI*r*r;
- cout<<"s="<<s<<endl;
- }
-
- #include<iostream.h>
- main()
- {
- //定义枚举类型,并指定其枚举元素的值
- enum color {
- RED=3,
- YELLOW=6,
- BLUE=9
- };
-
- //声明枚举变量a和b,并为枚举变量a赋初值
- enum color a=RED;
- color b; //合法,与C语言不同
-
- // 输出枚举常量
- cout<<"RED="<<RED<<endl;
- cout<<"YELLOW="<<YELLOW<<endl;
- cout<<"BLUE="<<BLUE<<endl;
-
- //枚举变量的赋值和输出
- b=a;
- a=BLUE;
- cout<<"a="<<a<<endl;
- cout<<"b="<<b<<endl;
- //a=100; 错误!
- //a=6 也错误!
-
- //枚举变量的关系运算
- b=BLUE; // 枚举变量的赋值运算
- cout<<"a<b="<<(a<b)<<endl;
- }
- #include <iostream.h>
- const double PI=3.1416; //声明常量(const变量)PI为3.1416
- main()
- {
- //声明3个变量
- double r=3,l,s;
-
- //计算圆的周长
- l=2*PI*r;
- cout<<"l="<<l<<endl;
-
- //计算圆的面积
- s=PI*r*r;
- cout<<"s="<<s<<endl;
-
- //验证赋值误差
- int il,is;
- il=l;
- is=s;
- cout<<"il="<<il<<endl;
- cout<<"is="<<is<<endl;
- }
- #include <iostream.h>
- main()
- {
- //变量声明
- char c;
- double x,y;
-
- //测试自增
- cout<<"++E and E++ :"<<endl;
- c='B';
- cout<<"c="<<++c<<endl; //输出c=C
- c='B';
- cout<<"c="<<c++<<endl; //输出c=B
- x=1.5;
- y=5+ ++x; //加号后的空格不能少
- cout<<"y="<<y<<endl; //输出y=7.5
- x=1.5;
- y=5+x++;
- cout<<"y="<<y<<endl; //输出y=6.5
- cout<<"--------------------"<<endl;
-
- //测试自减
- cout<<"--E and E-- :"<<endl;
- c='B';
- cout<<"c="<<--c<<endl; //输出c=A
- c='B';
- cout<<"c="<<c--<<endl; //输出c=B
- x=1.5;
- y=5+--x;
- cout<<"y="<<y<<endl; //输出y=5.5
- x=1.5;
- y=5+x--;
- cout<<"y="<<y<<endl; //输出y=6.5
- }
- #include <iostream.h>
- main()
- {
- int a=3, b=2;
-
- //输出关系表达式
- cout<<a<b<<endl;
- cout<<(a<b)<<(a>b)<<(a>=b)<<(a==b)<<(a!=b)<<endl;
-
- bool flag=2*a<b+10;
- cout<<"flag="<<flag;
- }
- #include <iostream.h>
- main()
- {
- float a=3.5,b=2.1,c=0;
- cout<<"a="<<a<<" b="<<b<<" c="<<c<<endl;
-
- //与运算
- cout<<"a&&b="<<(a&&b)<<endl;//输出1
- cout<<"a&&c="<<(a&&c)<<endl;//输出0
-
- //或运算
- cout<<"a||b="<<(a||b)<<endl;//输出1
- cout<<"a||c="<<(a||c)<<endl;//输出1
-
- //非运算
- cout<<"!a="<<!a<<endl<<"!c="<<!c<<endl;//输出0 1
-
- //关系运算和逻辑运算
- bool flag=a>=0 && a<=5; //变量a在[0,5]区间内
- cout<<"a=>0 && a<=5="<<flag<<endl;//输出1
-
- //算术运算、关系运算和逻辑运算
- cout<<"a+5>2*b+2||a<b+3="<<(a+5>2*b+2||a<b+3)<<endl;//输出1
- }
- #include <iostream.h>
- main()
- {
- //按位与运算
- cout<<"24&12="<<(24&12)<<endl;
- //按位异或运算
- cout<<"24^12="<<(24^12)<<endl;
- //按位或运算
- cout<<"24|12="<<(24|12)<<endl;
- //按位取反运算
- cout<<"~24="<<(~24)<<endl;
-
- //左移位运算
- cout<<"5<<3="<<(5<<3)<<endl;
- cout<<"-5<<3="<<(-5<<3)<<endl;
-
- //右移位运算
- cout<<"5>>3="<<(5>>3)<<endl;
- cout<<"-5>>3="<<(-5>>3)<<endl;
- }
- #include <iostream.h>
- main()
- {
- int a=1,b=1,c=3;
- //显示a,b,c的值
- cout<<"a="<<a<<" b="<<b<<" c="<<c<<endl;
-
- //计算显示(1) b+=a+2*c%5; 的结果
- b+=a+2*c%5; //相当于表达式语句 b=b+(a+2*c%5);
- cout<<"(1) b="<<b<<endl;
-
- //计算显示(2) a<<=c-2*b; 的结果
- a=1,b=1,c=3;
- a<<=c-2*b; // 相当于表达式语句 a=a<<(c-2*b);
- cout<<"(2) a="<<a<<endl;
-
- //计算显示(3) a*=b=c=3;的结果
- a=1,b=1,c=3;
- a*=b=c=3; //相当于语句组 c=3;b=c;a=a*b;
- cout<<"(3) a="<<a<<" b="<<b<<" c="<<c<<endl;
-
- //计算显示(4) a+=b+=c;的结果
- a=1,b=1,c=3;
- a+=b+=c; //相当于语句组 b=b+c; a=a+b;
- cout<<"(4) a="<<a<<" b="<<b<<" c="<<c<<endl;
-
- //计算显示(5) a-=b=++c+2;的结果
- a=1,b=1,c=3;
- a-=b=++c+2; //相当于语句组 ++c;b=b+c+2;a=a-b;
- cout<<"(5) a="<<a<<" b="<<b<<" c="<<c<<endl;
- }
- #include <iostream.h>
- main()
- {
- //用 sizeof 计算各类种常量的字节长度
- cout<<"sizeof('$')="<<sizeof('$')<<endl;
- cout<<"sizeof(1)="<<sizeof(1)<<endl;
- cout<<"sizeof(1.5)="<<sizeof(1.5)<<endl;
- cout<<"sizeof(\"Good!\")="<<sizeof("Good!")<<endl;
-
- //用sizeof 计算各类型变量的字节长度
- int i=100;
- char c='A';
- float x=3.1416;
- double p=0.1;
- cout<<"sizeof(i)="<<sizeof(i)<<endl;
- cout<<"sizeof(c)="<<sizeof(c)<<endl;
- cout<<"sizeof(x)="<<sizeof(x)<<endl;
- cout<<"sizeof(p)="<<sizeof(p)<<endl;
-
- //用sizeof 计算表达式的字节长度
- cout<<"sizeof(x+1.732)="<<sizeof(x+1.732)<<endl;
-
- //用 sizeof 计算各类型的字节长度
- cout<<"sizeof(char)="<<sizeof(char)<<endl;
- cout<<"sizeof(int)="<<sizeof(int)<<endl;
- cout<<"sizeof(float)="<<sizeof(float)<<endl;
- cout<<"sizeof(double)="<<sizeof(double)<<endl;
-
- //用sizeof 计算数组的字节长度
- char str[]="This is a test.";
- int a[10];
- double xy[10];
- cout<<"sizeof(str)="<<sizeof(str)<<endl;
- cout<<"sizeof(a)="<<sizeof(a)<<endl;
- cout<<"sizeof(xy)="<<sizeof(xy)<<endl;
-
- //用sizeof 计算自定义类型的长度
- struct st {
- short num;
- float math_grade;
- float Chinese_grade;
- float sum_grade;
- };
- st student1;
- cout<<"sizeof(st)="<<sizeof(st)<<endl;
- cout<<"sizeof(student1)="<<sizeof(student1)<<endl;
- }
- #include <iostream.h>
- main()
- {
- //声明变量语句中使用顺序运算
- int x, y;
-
- //计算中使用顺序运算
- x=50;
- y=(x=x-5, x/5);
- cout<<"x="<<x<<endl;
- cout<<"y="<<y<<endl;
- }
- #include <iostream.h>
- main()
- {
- //测试表达式类型的转换
- int n=100,m;
- double x=3.791,y;
- cout<<"n*x="<<n*x<<endl;
-
- //赋值类型转换
- m=x;
- y=n;
- cout<<"m="<<m<<endl;
- cout<<"y="<<y<<endl;
-
- //强制类型转换
- cout<<"int(x)="<<int(x)<<endl;
- cout<<"(int)x="<<(int)x<<endl;
- cout<<"int(1.732+x)="<<int(1.732+x)<<endl;
- cout<<"(int)1.732+x="<<(int)1.723+x<<endl;
- cout<<"double(100)="<<double(100)<<endl;
- }
- #include <iostream.h>
- main()
- {
- float a,b,s;
-
- cout<<"a b"<<endl;
- cin>>a>>b; //利用cin从键盘上为变量 a,b 赋值
- s=a;
- if (a<b) {
- s=b; //if语句中只有这一个语句,可省略花括号
- }
- s=s*s; //变量s中保存a,b中较大的一个数的平方
- cout<<"s="<<s;
- }
-
- #include <iostream.h>
- main()
- {
- int x,y;
- cout<<"x=";
- cin>>x;
- if (x<=0) { //满足条件执行
- y=2*x;
- cout<<"y="<<y; //输出结果
- }
- else { //不满足条件执行
- y=x*x;
- cout<<"y="<<y; //输出结果
- }
- }
- #include <iostream.h>
- main()
- {
- int a,b,c;
- int smallest;
- cout<<"a b c"<<endl;
- cin>>a>>b>>c;
- if (a<=b) //外层条件语句
- {
- if (a<=c) //内层条件语句
- smallest=a;
- else
- smallest=c;
- }
- else
- {
- if (b<=c) //内层条件语句
- smallest=b;
- else
- smallest=c;
- }
- cout<<"Smallest="<<smallest<<endl;
- }
-
- #include <iostream.h>
- main()
- {
- int score;
-
- //从键盘上输入分数
- cout<<"score=";
- cin>>score;
-
- //用带else if的条件语句判断处理
- if (score<0 || score>100)
- {
- cout<<"The score is out of range!"<<endl;
- }
- else if (score>=90)
- cout<<"Your grade is a A."<<endl;
- else if (score>=80)
- cout<<"Your grade is a B."<<endl;
- else if (score>=70)
- cout<<"Your grade is a C."<<endl;
- else if (score>=60)
- cout<<"Your grade is a D."<<endl;
- else
- cout<<"Your grade is a E."<<endl;
- }
- #include <iostream.h>
- main()
- {
- int n;
- cout<<"n=";
- cin>>n;
- if (n>=0 && n<=100 &&n%2==0)
- cout<<"n="<<n<<endl;
- else
- cout<<"The "<<n<<" is out of range!"<<endl;
- }
-
- #include <iostream.h>
- main()
- {
- int a,b,Max;
- //输入数据
- cout<<"a=";
- cin>>a;
- cout<<"b=";
- cin>>b;
-
- //找出较大值
- Max=a>b?a:b;
- cout<<"Max="<<Max<<endl;
- }
-
- #include <iostream.h>
- main()
- {
- int a,b;
- //输入数据
- cout<<"a=";
- cin>>a;
- cout<<"b=";
- cin>>b;
-
- //除法判断
- if (b!=0 && a%b==0) {
- cout<<b<<" divides "<<a<<endl;
- cout<<"a/b="<<a/b<<endl;
- }
- else
- cout<<b<<" does not divide "<<a<<endl;
- }
-
-
- #include <iostream.h>
- main()
- {
- //x,y 为操作数,c为运算符
- int x,y,z;
- char c1;
- cin>>x>>c1>>y; //c1
-
- //多路选择语句选择不同表达式计算语句
- switch(c1) {
- case '+':cout<<x<<"+"<<y<<"="<<x+y<<endl;
- break;
- case '-':cout<<x<<"-"<<y<<"="<<x-y<<endl;
- break;
- case '*':cout<<x<<"*"<<y<<"="<<x*y<<endl;
- break;
- case '/':cout<<x<<"/"<<y<<"="<<x/y<<endl;
- break;
- case '%':cout<<x<<"%"<<y<<"="<<x%y<<endl;
- break;
- default :cout<<"Wrong !"<<endl; //当不符合上述情况时执行本子句
- }
- }
-
-
-
- #include<iostream.h>
- float x=365.5; //声明全局变量
- main() {
- int x=1,y=2;
- double w=x+y;
- {
- double x=1.414,y=1.732,z=3.14;
- cout<<"inner:x="<<x<<endl;
- cout<<"inner:y="<<y<<endl;
- cout<<"inner:z="<<z<<endl;
- cout<<"outer:w="<<w<<endl;
- cout<<"::x="<<::x<<endl; //访问重名的全局变量
- }
- cout<<"outer:x="<<x<<endl;
- cout<<"outer:y="<<y<<endl;
- cout<<"outer:w="<<w<<endl;
-
- //cout<<"inner:z="<<z<<endl;无效
- cout<<"::x="<<::x<<endl; //访问重名的全局变量
- }
- #include<iostream.h>
- main() {
- //显示1,2,3...10
- for(int i=1;i<=10;i++)
- cout<<i<<" ";
- cout<<endl;
-
- //显示10,9,8...1
- for(int j=10;j>=1;j--)
- cout<<j<<" ";
- cout<<endl;
-
- //显示1,3,5...9
- for(int k=1;k<=10;k=k+2)
- cout<<k<<" ";
- cout<<endl;
-
- //显示ABC...Z
- for(char c='A';c<='Z';c++)
- cout<<c;
- cout<<endl;
-
- //显示0,0.1,0.2...1.0
- for(float x=0;x<=1.0;x=x+0.1)
- cout<<x<<" ";
- cout<<endl;
-
- //显示0,0.1,0.2...1.0
- for(float x1=0;x1<=1.0+0.1/2;x1=x1+0.1)
- cout<<x1<<" ";
- cout<<endl;
-
- //计算s=1+2+3...+100
- int s=0;
- for(int n=1;n<=100;n++)
- s=s+n;
- cout<<"s="<<s<<endl;
- }
- #include<iostream.h>
- main()
- {
- //计算s=1+2+3...+100
- int s=0,n=1;
- while(n<=100) {
- s=s+n;
- n++;
- }
- cout<<"s="<<s<<endl;
-
- //累加键盘输入的数据
- double x,sum=0.0;
- cout<<"x=";
- cin>>x;
- while(x!=0) {
- sum+=x;
- cout<<"x=";
- cin>>x;
- }
- cout<<"sum="<<sum<<endl;
- }
- #include<iostream.h>
- main()
- {
- //计算s=1+2+3...+100
- int s=0,n=0;
- do {
- n++;
- s+=n;
- }while(n<100);
- cout<<"s="<<s<<endl;
-
- //累加键盘输入的数据
- double x,sum=0.0;
- do {
- cout<<"x=";
- cin>>x;
- sum+=x;
- } while(x!=0);
- cout<<"sum="<<sum<<endl;
- }
-
- #include<iostream.h>
- main()
- {
- //计算和打印打印乘法九九表
- for (int i=1;i<=9;i++) {
- cout<<i;
- for (int j=1;j<=9;j++)
- cout<<'\t'<<i<<"*"<<j<<"="<<i*j;
- cout<<endl;
- }
- }
-
- #include<iostream.h>
- main()
- {
- int x,sum=0;
- //定义标号L1
- L1: cout<<"x=";
- cin>>x;
- if (x==-1)
- goto L2; //无条件转移语句,转到L2语句处
- else
- sum+=x;
- goto L1; //无条件转移语句,转到L1语句处
- //定义标号L2
- L2: cout<<"sum="<<sum<<endl;
- }
-
-
- #include<iostream.h>
- main()
- {
- //累加键盘输入的数据
- double x,sum=0.0;
- while(1) {
- cout<<"x=";
- cin>>x;
- if (x<=0) break;
- sum+=x;
- }
- cout<<"sum="<<sum<<endl;
- }
-
- #include<iostream.h>
- main()
- {
- int i;
- for (i=1;i<=20;i++)
- {
- if (i%3==0) //能被 3 整除的整数,返回进行下次循环
- continue;
- cout<<i<<" ";
- }
- cout<<endl;
- }
- #include<iostream.h>
- main()
- {
- //声明数组和变量
- int a[5],i,sum;
- double avg;
-
- //从键盘上循环为数组赋值
- for (i=0;i<5;i++) {
- cout<<"a["<<i<<"]=";
- cin>>a[i];
- }
-
- //直接显示数组元素
- cout<<a[0]<<a[1]<<a[2]<<a[3]<<a[4]<<endl;
-
- //利用for循环显示数组各元素的值
- for (i=0;i<5;i++)
- cout<<a[i]<<" ";
- cout<<endl;
-
- //计算数组元素之和,并显示计算结果
- sum=a[0]+a[1]+a[2]+a[3]+a[4];
- cout<<"sum="<<sum<<endl;
-
- //利用循环计算数组的累加和
- for (sum=0,i=0;i<5;i++)
- sum+=a[i];
-
- //显示累加和及平均值
- cout<<"sum="<<sum<<endl;
- avg=sum/5.0;
- cout<<"avg="<<avg<<endl;
- }
- #include<iostream.h>
- main()
- {
- int i,max,index,a[5];
-
- //从键盘上为数组赋值
- for (i=0;i<=4;i++)
- {
- cout<<"a["<<i<<"]=";
- cin>>a[i];
- }
-
- // 利用循环遍历数组,找出最大值的元素及其下标
- max=a[0];
- for (i=0;i<=4;i++)
- {
- if (max<a[i])
- {
- max=a[i];
- index=i;
- }
- }
- cout<<"\nMax="<<max<<" index="<<index;
- }
- #include<iostream.h>
- #define size 5
- main()
- {
- //声明变量
- int i,j;
- float t,a[size];
-
- //从键盘上为数组赋值
- for (i=0;i<size;i++)
- {
- cout<<"a["<<i<<"]=";
- cin>>a[i];
- }
-
- //对数组按从小到大顺序排序
- for (i=0;i<size-1;i++)
- for (j=i+1;j<size;j++)
- if (a[i]>a[j])
- {
- t=a[i];
- a[i]=a[j];
- a[j]=t;
- }
-
- //显示排序结果
- for (i=0;i<size;i++)
- cout<<a[i]<<" ";
- cout<<endl;
-
- //输入要查找的数据
- int value;
- int found; //找到为1,否则为0
- int low,high,mid;
- for (i=1;i<=3;i++) {
- cout<<"value=";
- cin>>value;
-
- //二分法查找数组a
- found=0;
- low=0;
- high=size-1;
- while(low<=high)
- {
- mid=(high+low)/2;
- if (a[mid]==value)
- {
- found=1;
- break;
- }
- if (a[mid]<value)
- low=mid+1;
- else
- high=mid-1;
- }
- if (found)
- cout<<"The valu found at:a["<<mid<<"]="<<a[mid]<<endl;
- else
- cout<<"The "<<value<<" is not found!"<<endl;
- }
- }
- #include<iostream.h>
- main()
- {
- //声明变量
- int i,j;
- float t,a[5];
-
- //从键盘上为数组赋值
- for (i=0;i<=4;i++)
- {
- cout<<"a["<<i<<"]=";
- cin>>a[i];
- }
-
- //对数组按从大到小顺序排序
- for (i=0;i<=3;i++)
- for (j=i+1;j<=4;j++)
- if (a[i]<=a[j])
- {
- t=a[i];
- a[i]=a[j];
- a[j]=t;
- }
-
- //显示排序结果
- for (i=0;i<=4;i++)
- cout<<a[i]<<" ";
- }
- #include<iostream.h>
- main()
- {
- //声明二维数组及变量
- int a[2][3],i,j;
-
- //从键盘上为数组a赋值
- for (i=0;i<2;i++)
- for (j=0;j<3;j++)
- {
- cout<<"a["<<i<<"]["<<j<<"]=";
- cin>>a[i][j];
- }
-
- //显示数组a
- for (i=0;i<2;i++) {
- for (j=0;j<3;j++)
- {
- cout<<a[i][j]<<" ";
- }
- cout<<endl;
- }
-
- //找出该数组的最大元素及其下标
- int h,l,Max=a[0][0];
- for (i=0;i<2;i++) {
- for (j=0;j<3;j++)
- {
- if (Max<a[i][j]) {
- Max=a[i][j];
- h=i;
- l=j;
- }
- }
- }
- cout<<"Max:"<<"a["<<h<<"]["<<l<<"]="<<a[h][l]<<endl;
- }
- #include<iostream.h>
- main()
- {
- //声明字符数组和变量
- char str[6];
- int i;
-
- //从键盘上输入字符串
- cout<<"str=";
- cin>>str;
- cout<<str<<endl;
-
- //按数组和下标变量两种方式显示字符数组
- cout<<str<<endl;
- for (i=0;i<6;i++)
- cout<<str[i];
- cout<<endl;
-
- //字符串反向输出
- for (i=5;i>=0;i--)
- cout<<str[i];
- cout<<endl;
-
- //将字符数组变成大写字母后输出
- for (i=0;i<=5;i++)
- str[i]-=32; //小写字母转换成大写字母
- cout<<str<<endl; //显示字符串
- }
- #include<iostream.h>
- main()
- {
- //声明变量和指针变量
- int a,b,c,*ip;
-
- //指针变量ip指向变量a
- a=100;
- ip=&a; //使指针变量 ip 指向变量a
- cout<<"a="<<a<<endl;
- cout<<"*ip="<<*ip<<endl;
- cout<<"ip="<<ip<<endl;
-
- //指针变量ip指向变量b
- ip=&b; //使指针变量 ip 指向变量b
- b=200;
- cout<<"b="<<b<<endl;
- cout<<"*ip="<<*ip<<endl;
- cout<<"ip="<<ip<<endl;
-
- //指针变量ip指向变量c
- ip=&c; //使指针变量 ip 指向变量b
- *ip=a+b;
- cout<<"c="<<c<<endl;
- cout<<"*ip="<<*ip<<endl;
- cout<<"ip="<<ip<<endl;
- }
- #include<iostream.h>
- main()
- {
- //声明数组、变量和指针变量
- int a[2][3],i,j;
- int* ip;
-
- //从键盘上为数组a赋值
- for (i=0;i<2;i++) //为数组a赋值
- for (j=0;j<3;j++)
- {
- cout<<"a["<<i<<"]["<<j<<"]=";
- cin>>a[i][j];
- }
-
- //利用下标变量显示数组a
- for (i=0;i<2;i++) {
- for (j=0;j<3;j++)
- {
- cout<<a[i][j]<<" ";
- }
- cout<<endl;
- }
-
- //利用指针变量显示数组a
- ip=&a[0][0];
- for (i=0;i<2;i++) {
- for (j=0;j<3;j++)
- {
- cout<<"a["<<i<<"]["<<j<<"]=";
- cout<<ip<<" ";
- cout<<*ip<<endl;
- ip++;
- }
- }
- }
- #include<iostream.h>
- main()
- {
- //声明数组、变量和指针变量
- int a[]={1,2,3,4,5,6};
- int *ip1,*ip2;
-
- //测试指针的赋值运算
- ip1=a;
- ip2=ip1;
- cout<<"*ip1="<<(*ip1)<<endl;
- cout<<"*ip2="<<(*ip2)<<endl;
-
- //测试指针的自增自减运算和组合运算
- ip1++;
- ip2+=4;
- cout<<"*ip1="<<(*ip1)<<endl;
- cout<<"*ip2="<<(*ip2)<<endl;
-
- //测试指针变量之间的关系运算
- int n=ip2>ip1;
- cout<<"ip2>ip1="<<n<<endl;
- cout<<"ip2!=NULL="<<(ip2!=NULL)<<endl;
-
- //指针变量之间的减法
- n=ip2-ip1;
- cout<<"ip2-ip1="<<n<<endl;
- }
- #include<iostream.h>
- main()
- {
- //声明字符型数组和指针变量
- char str[10];
- char *strip=str;
-
- //输入输出
- cout<<"str=";
- cin>>str; //用字符数组输入字符串
- cout<<"str="<<str<<endl;
- cout<<"strip="<<strip<<endl;
- cout<<"strip=";
- cin>>strip; //用字符指针变量输入字符串
- cout<<"str="<<str<<endl;
- cout<<"strip="<<strip<<endl;
-
- //利用指针变量改变其指向字符串的内容
- *(strip+2)='l';
- cout<<"str="<<str<<endl;
- cout<<"strip="<<strip<<endl;
-
- //动态为字符型指针变量分配内存
- strip=new char(100);
- cout<<"strip=";
- cin>>strip; //用字符指针变量输入字符串
- cout<<"str="<<str<<endl;
- cout<<"strip="<<strip<<endl;
- }
- #include<iostream.h>
- main()
- {
- // 声明用于存放运动员号码的数组
- int h[]={1001,1002,1003,1004};
- // 声明用于存放运动员成绩的数组
- float x[]={12.3,13.1,11.9,12.1};
- //声明用于存放运动姓名的字符型指针数组
- char *p[]={"Wang hua","Zhang jian","Li wei","Hua ming"};
- //i,j,it是用做循环控制变量和临时变量
- int i,j,it;
- //ft 用做暂存变量
- float ft;
- //pt为字符型指针变量用做暂存指针变量
- char *pt;
-
- //用选择法对数组x进行排序,并相应调整数组h和p中的数据
- for (i=0;i<=3;i++)
- for (j=i+1;j<=3;j++)
- if (x[i]>=x[j]) {
- ft=x[i],x[i]=x[j],x[j]=ft;
- it=h[i],h[i]=h[j],h[j]=it;
- pt=p[i],p[i]=p[j],p[j]=pt;
- }
-
- //以下打印排序结果
- for (i=0;i<=3;i++)
- cout<<h[i]<<" ,"<<p[i]<<" ,"<<x[i]<<endl;
- }
- #include<iostream.h>
- main()
- {
- //声明指针数组
- char *colors[]={"Red","Blue","Yellow","Green"};
- //指向指针的指针变量
- char **pt;
-
- //通过指向指针的变量访问其指向的内容
- pt=colors;
- for (int i=0;i<=3;i++) {
- cout<<"pt="<<pt<<endl;
- cout<<"*pt="<<*pt<<endl;
- cout<<"**pt="<<**pt<<endl;
- pt++;
- }
- }
- #include<iostream.h>
- main()
- {
- //定义结构类型
- struct books
- {
- char title[20];
- char author[15];
- int pages;
- float price;
- } ;
-
- //声明结构变量
- struct books Zbk={"VC++ ","Zhang",295,35.5};
- books Wbk;
-
- //对结构变量的输出
- cout<<"Zbk:"<<endl;
- cout<<Zbk.title <<endl;
- cout<<Zbk.author<<endl;
- cout<<Zbk.pages<<endl;
- cout<<Zbk.price<<endl;
- cout<<"--------------------"<<endl;
-
- //对结构成员的运算
- Zbk.pages+=10;
- Zbk.price+=0.5;
- cout<<"Zbk.pages="<<Zbk.pages<<endl;
- cout<<"Zbk.price="<<Zbk.price<<endl;
- cout<<"--------------------"<<endl;
-
- //对结构变量的输入输出
- cout<<"Wbk.title =";
- cin>>Wbk.title;
- cout<<"Wbk.author=";
- cin>>Wbk.author;
- cout<<"Wbk.pages=";
- cin>>Wbk.pages;
- cout<<"Wbk.price=";
- cin>>Wbk.price;
- cout<<"Wbk:"<<endl;
- cout<<Wbk.title <<endl;
- cout<<Wbk.author<<endl;
- cout<<Wbk.pages<<endl;
- cout<<Wbk.price<<endl;
- cout<<"--------------------"<<endl;
-
- //结构变量之间的相互赋值
- books temp;
- temp=Wbk;
- cout<<"temp:"<<endl;
- cout<<temp.title<<endl;
- cout<<temp.author<<endl;
- cout<<temp.pages<<endl;
- cout<<temp.price<<endl;
- }
-
- #include<iostream.h>
- main()
- {
- int i;
- //定义结构类型
- struct student {
- int num;
- char name[10];
- float maths;
- float physics;
- float chemistry;
- double total;
- };
-
- //声明结构数组st
- student st[3];
-
- //从键盘上为结构数组输入值
- cout<<" num name maths physics chemistry "<<endl;
- for (i=0;i<3;i++)
- {
- cout<<i+1<<" ";
- cin>>st[i].num;
- cin>>st[i].name;
- cin>>st[i].maths;
- cin>>st[i].physics;
- cin>>st[i].chemistry;
- }
-
- //计算每个学生的总成绩
- for (i=0;i<3;i++)
- st[i].total=st[i].maths+st[i].physics+st[i].chemistry;
-
- //输出结构数组各元素的值
- for (i=0;i<3;i++)
- {
- cout<<"st["<<i<<"]: ";
- cout<<st[i].num<<'\t';
- cout<<st[i].name<<'\t';
- cout<<st[i].maths<<'\t';
- cout<<st[i].physics<<'\t';
- cout<<st[i].chemistry<<'\t';
- cout<<st[i].total<<endl;
- }
- }
- #include<iostream.h>
- main()
- {
- //定义结构类型
- struct human {
- char name[10];
- int sex;
- int age;
- };
-
- //声明结构变量和结构指针变量,并初始化
- struct human x={"WangPing",1,30},*p=NULL;
-
- //结构指针变量指向对象
- p=&x;
-
- //显示结构变量的值
- cout<<"x.name="<<x.name<<endl;
- cout<<"x.sex="<<x.sex<<endl;
- cout<<"x.age="<<x.age<<endl;
-
- //利用结构指针显示结构对象中的数据
- cout<<"(*p).name="<<(*p).name<<endl;
- cout<<"(*p).sex="<<(*p).sex<<endl;
- cout<<"(*p).age="<<(*p).age<<endl;
- cout<<"p->name="<<p->name<<endl;
- cout<<"p->sex="<<p->sex<<endl;
- cout<<"p->age="<<p->age<<endl;
-
- //通过结构指针为结构对象输入数据
- cout<<"name:";
- cin>>(*p).name;
- cout<<"sex:";
- cin>>(*p).sex;
- cout<<"age:";
- cin>>(*p).age;
-
- //显示结构变量的值
- cout<<"x.name="<<x.name<<endl;
- cout<<"x.sex="<<x.sex<<endl;
- cout<<"x.age="<<x.age<<endl;
- }
- include<iostream.h>
- main()
- {
- //定义结构类型
- struct human {
- char name[10];
- int sex;
- int age;
- };
-
- //声明结构变量和结构指针,并初始化
- struct human x={"WangPing",1,30},*p=&x;
-
- //利用结构指针显示结构中的数据
- cout<<"(*p).name="<<(*p).name<<endl;
- cout<<"(*p).sex="<<(*p).sex<<endl;
- cout<<"(*p).age="<<(*p).age<<endl;
- cout<<"-------------------------"<<endl;
-
- //利用new运算符为p分配内存
- p=new human;
-
- //从键盘上为p指向的结构对象赋值
- cout<<"p->name=";
- cin>>p->name;
- cout<<"p->sex=";
- cin>>p->sex;
- cout<<"p->age=";
- cin>>p->age;
- cout<<"-------------------------"<<endl;
-
- //显示p所指结构对象的值
- cout<<"p->name="<<p->name<<endl;
- cout<<"p->sex="<<p->sex<<endl;
- cout<<"p->age="<<p->age<<endl;
- cout<<"-------------------------"<<endl;
-
- //显示结构变量的值
- cout<<"x.name="<<x.name<<endl;
- cout<<"x.sex="<<x.sex<<endl;
- cout<<"x.age="<<x.age<<endl;
-
- //释放p指向的内存
- delete p;
- }
- #include<iostream.h>
- main()
- {
- //定义结构类型
- struct human {
- char name[10];
- int sex;
- int age;
- };
-
- //声明结构数组和结构指针变量,并初始化
- human x[]={{"WeiPing",1,30},{"LiHua",1,25},{"LiuMin",0,23}},*p=NULL;
-
- //用下标变量的输出结构数组的元素
- for (int i=0;i<3;i++)
- {
- cout<<x[i].name<<'\t';
- cout<<x[i].sex<<'\t';
- cout<<x[i].age<<endl;
- }
- cout<<"----------------"<<endl;
-
- //用结构指针输出结构数组的元素
- for (p=x;p<=&x[2];p++)
- {
- cout<<p->name<<'\t';
- cout<<p->sex<<'\t';
- cout<<p->age<<endl;
- }
- }
- #include<iostream.h>
- main()
- {
- //定义一个包含指针成员的结构类型
- struct test {
- char *str;
- int *ip;
- } x;
-
- //使用结构变量x中的整型指针ip
- x.ip=new int; //分配1个单元
- *(x.ip)=100;
- cout<<"x.ip:"<<x.ip<<'\t'<<*(x.ip)<<endl;
- cout<<"---------------"<<endl;
- delete x.ip;
- x.ip=new int[5]; //分配5个单元
- for(int i=0;i<5;i++)
- *(x.ip+i)=100+i;
- cout<<"x.ip:"<<endl;
- for(i=0;i<5;i++)
- cout<<x.ip+i<<'\t'<<(*(x.ip+i))<<endl;
- delete x.ip;
- cout<<"---------------"<<endl;
-
- //使用结构变量x中的字符型指针str
- x.str=new char('A'); //分配1个单元
- cout<<"x.str:"<<(*x.str)<<endl;
- cout<<"---------------"<<endl;
- delete x.str;
- x.str=new char[5]; //分配多个单元
- *x.str='G';
- *(x.str+1)='o';
- *(x.str+2)='o';
- *(x.str+3)='d';
- *(x.str+4)='\0';
- cout<<"x.str:"<<x.str<<endl;
- delete x.str;
- cout<<"---------------"<<endl;
-
- //在声明结构变量时初始化
- test y={"Very Good!",NULL};
- cout<<"y.str:"<<y.str<<endl;
- cout<<"y.ip:"<<y.ip<<endl;
- }
- #include<iostream.h>
- main()
- {
- //定义date结构
- struct date
- {
- int year;
- int month;
- int day;
- };
-
- //定义baby结构
- struct baby {
- int num;
- float weight;
- date birthday; // date为结构类型
- };
-
- //声明baby结构变量并初始化
- baby b1={10001,10,{2002,12,25}};
-
- //下列是baby结构变量b1的引用。
- cout<<"b1.num="<<b1.num<<endl;
- cout<<"b1.weight="<<b1.weight<<endl;
- cout<<"b1.birthday.year="<<b1.birthday.year<<endl;
- cout<<"b1.birthday.month="<<b1.birthday.month<<endl;
- cout<<"b1.birthday.day="<<b1.birthday.day<<endl;
- cout<<"--------------------------"<<endl;
-
- //声明baby结构变量temp,并进行赋值运算
- baby temp;
- temp=b1;
- cout<<"temp.num="<<temp.num<<endl;
- cout<<"temp.weight="<<temp.weight<<endl;
- cout<<"temp.birthday.year="<<temp.birthday.year<<endl;
- cout<<"temp.birthday.month="<<temp.birthday.month<<endl;
- cout<<"temp.birthday.day="<<temp.birthday.day<<endl;
- }
- #include<iostream.h>
- main()
- {
- //定义名为list的递归结构
- struct list {
- char name[10];
- int sex;
- int age;
- list *next; //成员next为指向其自身结构的指针
- };
-
- //使用递归结构变量
- list L1={"WeiPing",1,35.5,NULL};
- cout<<"L1:"<<endl;
- cout<<"name\t"<<L1.name<<endl;
- cout<<"sex\t"<<L1.sex<<endl;
- cout<<"age\t"<<L1.age<<endl;
- cout<<"next\t"<<L1.next<<endl;
- }
- #include<iostream.h>
- main()
- {
- int i;
- //定义名为student的递归结构
- struct student {
- char name[10];
- int math;
- int computer;
- float sum;
- student *next; //next成员是指向自身的结构指针
- };
-
- //用student声明3个结构指针变量
- struct student *head,*tail,*temp;
-
- //申请第1块数据,并设置各结构指针的初值
- temp=new struct student; //申请内存
- head=temp; // 头指针
- tail=head; // 尾指针
-
- //循环为链表输入数据
- cout<<"\tname Math Computer"<<endl;
- for (i=1;;i++) {
- cout<<i<<"\t";
- cin>>temp->name;
- if (temp->name[0]!='*')
- {
- cin>>temp->math>>temp->computer;
- temp->sum=temp->math+temp->computer;
- temp->next=NULL;
- tail=temp; //设置链表尾指针
- }
- else
- {
- // 以下是输入结束处理
- delete temp;
- tail->next=NULL;
- break;
- }
- //为下一个学生申请内存
- temp->next=new struct student;
- temp=temp->next; // 使处理指针temp指向新内存块
- }
-
- //将链表数据从头到尾打印出来
- cout<<"--------------------"<<endl;
- temp=head;
- while (temp!=NULL) {
- cout<<temp->name<<","<<temp->math<<",";
- cout<<temp->computer<<","<<temp->sum<<endl;
- temp=temp->next;
- }
- }
- #include<iostream.h>
- main()
- {
- int i;
- //定义名为student的递归结构
- struct student {
- char name[10];
- int math;
- int computer;
- float sum;
- student *forw; //forw成员是前指针
- student *next; //next成员是后指针
- };
-
- //用student声明3个结构指针变量
- struct student *head,*tail,*temp;
-
- //申请第1块数据,并设置各结构指针的初值
- temp=new struct student; //申请内存
- head=temp; // 头指针
- tail=head; // 尾指针
- head->forw=NULL;
-
- //循环为链表记录输入数据
- cout<<"\tname Math Computer"<<endl;
- for (i=1;;i++) {
- cout<<i<<"\t";
- cin>>temp->name;
- if (temp->name[0]!='*')
- {
- cin>>temp->math>>temp->computer;
- temp->sum=temp->math+temp->computer;
- temp->next=NULL;
- tail=temp; //设置链表尾指针
- }
- else
- {
- // 以下是输入结束处理
- delete temp;
- tail->next=NULL;
- break;
- }
- //为下一个学生申请内存
- temp->next=new struct student;
- temp->next->forw=temp; //设置前指针
- temp=temp->next; //使处理指针temp指向新内存块
- }
-
- // 将链表数据从头到尾打印出来
- cout<<"head------>tail:"<<endl;
- temp=head;
- while (temp!=NULL) {
- cout<<temp->name<<","<<temp->math<<",";
- cout<<temp->computer<<","<<temp->sum<<endl;
- temp=temp->next;
- }
-
- // 将链表数据从尾到头打印出来
- cout<<"tail------>head:"<<endl;
- temp=tail;
- while (temp!=NULL) {
- cout<<temp->name<<","<<temp->math<<",";
- cout<<temp->computer<<","<<temp->sum<<endl;
- temp=temp->forw;
- }
- }
- #include<iostream.h>
- main()
- {
- int i;
- //定义联合类型
- union utag {
- char c;
- int k;
- float x;
- };
-
- //声明联合变量
- union utag u;
-
- // 使用联合变量中的字符型成员
- u.c='*';
- cout<<"u.c="<<u.c<<endl;
-
- // 使用联合变量中的整型成员
- u.k=1000;
- cout<<"u.k="<<u.k<<endl;
-
- // 使用联合变量中的浮点型成员
- u.x=3.1416;
- cout<<"u.x="<<u.x<<endl;
-
- //声明联合变量时初始化
- utag u1={'A'};
-
- //同时引用联合变量的各成员
- cout<<"u1.c="<<u1.c<<endl;
- cout<<"u1.k="<<u1.k<<endl;
- cout<<"u1.x="<<u1.x<<endl;
- }
- #include<iostream.h>
- main()
- {
- //定义结构类型,并为声明的结构变量赋初值
- struct s_tag {
- short i;
- float x;
- } sx={100,3.1416};
-
- //定义联合类型,并为声明的联合变量赋初值
- union u_tag {
- short i;
- float x;
- } ux={1000};
-
- //输出结构类型和结构变量的有关信息
- cout<<"sizeof(struct s_tag)="<<sizeof(struct s_tag)<<endl;
- cout<<"sx.i="<<sx.i<<endl;
- cout<<"sx.x="<<sx.x<<endl;
- cout<<"sizeof(sx)="<<sizeof(sx)<<endl;
- cout<<"------------------------------"<<endl;
-
- //输出联合类型和联合变量的有关信息
- cout<<"sizeof(union u_tag)="<<sizeof(union u_tag)<<endl;
- ux.i=200;
- cout<<"ux.i="<<ux.i<<endl; //输出联合变量ux 的i成员
- ux.x=123.456;
- cout<<"ux.x="<<ux.x<<endl; //输出联合变量ux 的x成员
- cout<<"sizeof(ux)="<<sizeof(ux)<<endl;
- }
- #include<iostream.h>
- main()
- {
- //自定义类型
- typedef int ARRAY_INT[50];
- int i;
- ARRAY_INT a; //用自定义类型声明数组变量a
-
- //以下为数组a赋值,并打印
- for (i=0;i<50;i++) {
- if (i%10==0) //每10个数换一次行
- cout<<endl;
- a[i]=i;
- cout<<a[i]<<"\t";
- }
- cout<<endl;
- }
- #include<iostream.h>
- //定义结构类型
- struct student
- {
- int num;
- char name[20];
- float grade;
- };
- void main(void)
- {
- //声明数组
- int i,size;
- char str[]="This is a string.";
- int int_values[] = {51, 23, 2, 44, 45,0,11};
- float float_values[] = {15.1, 13.3, 22.2, 10.4, 1.5};
- student st_arr[]={101,"WangLin",92,102,"LiPing",85,103,"ZhaoMin",88};
-
- //显示char类型数组元素及其大小
- size=sizeof(str) / sizeof(char);
- cout<<"Number of elements in str: ";
- cout<<size<<endl;
- for(i=0;i<size;i++) {
- cout<<str[i];
- }
- cout<<endl;
-
- //显示int类型数组元素及其大小
- size=sizeof(int_values) / sizeof(int);
- cout<<"Number of elements in int_values: ";
- cout<<size<<endl;
- for(i=0;i<size;i++) {
- cout<<int_values[i]<<" ";
- }
- cout<<endl;
-
- //显示float类型数组元素及其大小
- size=sizeof(float_values) / sizeof(float);
- cout<<"Number of elements in float_values: ";
- cout<<size<<endl;
- for(i=0;i<size;i++) {
- cout<<float_values[i]<<" ";
- }
- cout<<endl;
-
- //显示student类型数组元素及其大小
- size=sizeof(st_arr) / sizeof(student);
- cout<<"Number of elements in st_arr: ";
- cout<<size<<endl;
- for(i=0;i<size;i++) {
- cout<<st_arr[i].num<<" ";
- cout<<st_arr[i].name<<" ";
- cout<<st_arr[i].grade<<endl;
- }
- }
- #include<iostream.h>
- //add()函数的定义,其有返回值
- double add(double x,double y)
- {
- double z;
- z=x+y;
- cout<<x<<"+"<<y<<"="<<z<<endl;
- return(z);
- }
-
- main()
- {
- double a=0.5,b=1.0;
-
- //以不同参数形式调用函数add()
- cout<<"add(1.5,2.5)="<<add(1.5,2.5)<<endl;
- cout<<"add(a,b)="<<add(a,b)<<endl;
- cout<<"add(2*a,a+b)="<<add(2*a,a+b)<<endl;
- cout<<"----------------------"<<endl;
-
- //以表达式方式调用函数add()
- double c=2*add(a,b);
- cout<<"c="<<c<<endl;
- cout<<"----------------------"<<endl;
-
- //以语句式方式调用函数add()
- add(2*a,b);
- cout<<"----------------------"<<endl;
-
- //用其他类型参数调用函数add()
- int n=1,m=2;
- cout<<"add("<<n<<","<<m<<")="<<add(n,m)<<endl;
- }
- #include<iostream.h>
- //定义符号函数sgn(),其返回值为int类型
- int sgn(double x)
- {
- if (x>0) return(1); //返回出口1
- if (x<0) return(-1); //返回出口2
- return(0); //返回出口3
- }
- //main()函数定义
- main()
- {
- double x;
- int i;
- for (i=0;i<=2;i++) {
- cout<<"x=";
- cin>>x;
- cout<<"sgn("<<x<<")="<<sgn(x)<<endl;
- }
- }
- #include<iostream.h>
- //函数原型语句可以在这里
- //定义main()函数
- main()
- {
- //max()函数原型声明语句
- float max(float,float);
-
- //变量声明语句
- float a,b,Max;
-
- //输入参数并计算
- cout<<"a=";
- cin>>a;
- cout<<"b=";
- cin>>b;
- Max=max(a,b); //调用max()函数
- cout<<"max("<<a<<","<<b<<")="<<Max<<endl;
- }
- //定义max()函数
- float max(float x,float y) //max()返回值类型为浮点型
- {
- float z;
- z=(x>y)?x:y;
- return(z);
- }
-
- #include<iostream.h>
- //定义f()函数
- f(int x,int y) //f()的参数以值方式传递
- {
- ++x;
- --y;
- cout<<"x="<<x<<",y="<<y<<endl;
- }
- main() {
- int a,b;
-
- //设置实际参数的值
- a=b=10;
- //以变量为参数调用f()函数
- f(a,b);
-
- //验证实际参数的值
- cout<<"a="<<a<<",b="<<b<<endl;
-
- //以表达式参数形式调用f()函数
- f(2*a,a+b);
- }
- #include<iostream.h>
-
- //定义公共结构类型
- struct student {
- int num;
- char name[10];
- float maths;
- float physics;
- float chemistry;
- double total;
- };
-
- //定义结构输入函数
- input_Rec(struct student *p) //参数为student类型的结构指针变量
- {
- cin>>p->num;
- cin>>p->name;
- cin>>p->maths;
- cin>>p->physics;
- cin>>p->chemistry;
- }
-
- //定义结构数据交换函数
- swap_Rec(struct student *p1,struct student *p2)
- {
- struct student x;
-
- //交换两个记录的数据
- x=*p1;
- *p1=*p2;
- *p2=x;
- }
-
- //输出结构的值
- put_Rec(struct student *p)
- {
- cout<<p->num<<'\t';
- cout<<p->name<<'\t';
- cout<<p->maths<<'\t';
- cout<<p->physics<<'\t';
- cout<<p->chemistry<<'\t';
- cout<<p->total<<endl;
- }
-
- //定义main()函数
- main()
- {
- int i,j;
- // 声明结构指针变量和结构数组
- struct student *p1,a[3];
-
- //输入3个学生的数据并计算总成绩
- cout<<"num\tname\tmaths\tphysics\tchemistry"<<endl;
- for (p1=a;p1<=a+2;p1++) {
- input_Rec(p1);
- p1->total=p1->maths+p1->physics+p1->chemistry;
- }
-
- //对3个学生的数据排序
- for (i=0;i<=2;i++)
- for (j=i+1;j<=2;j++)
- if (a[i].total<a[j].total)
- swap_Rec(&a[i],&a[j]); //交换两个结构变量中的数据
- cout<<"-------------------"<<endl; //输出一分界线
-
- //输出排序后的结构数组
- cout<<"num\tname\tmaths\tphysics\tchemistry\ttotal"<<endl;
- for (p1=a;p1<=a+2;p1++)
- put_Rec(p1);
- }
- #include<iostream.h>
- //定义结构
- struct student {
- char name[10];
- float grade;
- };
-
- //交换student类型的数据
- void swap(student &x,student &y) //swap的参数为引用传递方式
- {
- student temp;
- temp=x;
- x=y;
- y=temp;
- }
-
- //返回student类型的引用,求优者
- student& max(student &x,student &y) //swap的参数为引用传递方式
- {
- return (x.grade>y.grade?x:y);
- }
-
- //显示student类型的数据
- void show(student &x) //show的参数为引用传递方式
- {
- cout<<x.name<<" "<<x.grade<<endl;
- }
- void main()
- {
- student a={"ZhangHua",351.5},b={"WangJun",385};
-
- //显示a和b的数据
- cout<<"a:";
- show(a);
- cout<<"b:";
- show(b);
- cout<<"------------------"<<endl;
-
- //交换a和b的数据,并显示
- swap(a,b);
- cout<<"a:";
- show(a);
- cout<<"b:";
- show(b);
- cout<<"------------------"<<endl;
-
- //计算和显示成绩高者
- student t=max(a,b);
- cout<<"Max:";
- show(t);
- }
- #include <iostream.h>
- //参数带有默认值的函数
- disp(int x=1,int y=1,int z=1)
- {
- cout<<"参数1: "<<x<<endl;
- cout<<"参数2: "<<y<<endl;
- cout<<"参数3: "<<z<<endl;
- cout<<"------------------"<<endl;
- }
-
- //main()函数中测试参数带有默认值的函数disp()
- void main()
- {
- disp();
- disp(10);
- disp(10,20);
- disp(10,20,30);
- int a=1,b=2,c=3;
- disp(a,b,c);
- }
- #include <iostream.h>
- //计算字符串长度的函数
- int str_len(const char *string)
- {
- //char *temp=string; 编译报错!
- //*string='x'; 编译报错!
- int i=0;
- while (*(string+i)!=NULL)
- i++;
- return i;
- }
-
- //main()函数中测试str_len()
- void main()
- {
- char a[]="ABCDE";
- cout<<a<<"\t"<<str_len(a)<<endl;
- char *str="Hello!";
- cout<<str<<"\t"<<str_len(str)<<endl;
- cout<<"This is a test."<<"\t"<<str_len("This is a test.")<<endl;
- }
- #include<iostream.h>
- void disp(void); //这个函数声明语句不能少
-
- //定义main()函数的参数和返回值类型是void类型
- void main(void)
- {
- //调用void类型函数
- disp();
- }
- //以下定义disp()函数
- void disp(void) {
- cout<<" You are welcome."<<endl;
- }
- #include<iostream.h>
- //函数原型语句
- int abs(int x);
- long abs(long x);
- float abs(float x);
-
- //main()函数的定义
- void main(void)
- {
- //声明变量
- int i1=32767,i2=-32767;
- long l1=456789,l2=-456789;
- float x1=1.1234,x2=-1.1234;
-
- //直接在cout输出中调用函数
- cout<<abs(i1)<<","<<abs(i2)<<endl;
- cout<<abs(l1)<<","<<abs(l2)<<endl;
- cout<<abs(x1)<<","<<abs(x2)<<endl;
- }
-
- //定义int型的abs()函数
- int abs(int x) {
- if (x<0)
- return(-x);
- else
- return(x);
- }
-
- //定义long型的abs()函数
- long abs(long x) {
- if (x<0)
- return(-x);
- else
- return(x);
- }
-
- //定义float型 abs函数
- float abs(float x) {
- if (x<0.0)
- return(-x);
- else
- return(x);
- }
- #include<iostream.h>
- //max()为内联函数
- inline int max(int x,int y) //注意inline关键字
- {
- return x>y?x:y;
- }
-
- //定义main()函数
- main()
- {
- int a=3,b=5,c;
- c=max(a,b);
- cout<<"max("<<a<<","<<b<<")="<<c<<endl;
- cout<<"max("<<15<<","<<11<<")="<<max(15,11)<<endl;
- }
- #include<iostream.h>
- main()
- {
- //函数原型声明
- int fact(int x);
- int n,sn;
-
- //依次从键盘上输入3个正整型数据计算它们的阶乘
- for (int i=1;i<=3;i++)
- {
- cout<<i<<" n=";
- cin>>n;
- sn=fact(n);
- cout<<n<<"!="<<sn<<endl;
- }
- }
-
- //以下是采用递归方法定义的fact()函数
- int fact(int x)
- {
- if (x==0) return(1);
- return(x*fact(x-1)); //此处又调用了它自身
- }
- #include<iostream.h>
- //带参数的main()函数
- int main(int argc,char *argv[])
- {
- int i;
- for(i=0;i<argc;i++)
- cout<<i<<":"<<argv[i]<<endl;
- return 0;
- }
- #include<iostream.h>
- //用函数原型声明要使用的函数
- void show_array1(int*,int);
- void show_array2(int a[],int);
- void sort(int*,int);
- main()
- {
- //声明数组并初始化
- int a[]={2,4,6,1,3,5};
- int b[3][3]={{2,4,6},{1,3,5},{0,1,2}};
-
- //显示数组的值
- cout<<"show_array1(int*,int):"<<endl;
- show_array1(a,6);
- show_array1(&b[0][0],3*3);
-
- //用sort1排序并显示
- cout<<"sort(int*,int) and show_array1(int*,int): "<<endl;
- sort(a,6);
- show_array1(a,6);
- sort(&b[0][0],3*3);
- show_array1(&b[0][0],9);
-
- //显示数组的值
- cout<<"show_array2(int a[],int):"<<endl;
- show_array2(a,6);
- show_array2(&b[0][0],3*3);
- }
-
- //显示数组,用指针当参数
- void show_array1(int *p,int size) {
- for(int i=0;i<size;i++)
- cout<<*(p+i)<<" ";
- cout<<endl;
- }
-
- //显示数组,用数组当参数
- void show_array2(int a[],int size) {
- for(int i=0;i<size;i++)
- cout<<a[i]<<" ";
- cout<<endl;
- }
-
- //对数组按从大到小顺序排序
- void sort(int *p,int size) {
- int t;
- for (int i=0;i<size-1;i++)
- for (int j=i+1;j<size;j++)
- if (*(p+i)<=*(p+j))
- {
- t=*(p+i);
- *(p+i)=*(p+j);
- *(p+j)=t;
- }
- }
- #include<iostream.h>
- //定义结构
- struct student {
- char name[10];
- float grade;
- };
-
- //更改student数据的grade成员,参数形式为引用
- void change(student &x,float grade)
- {
- x.grade=grade;
- }
-
- //更改student数据的grade成员,参数形式为指针
- void change1(student *p,float grade)
- {
- p->grade=grade;
- }
-
- //更改student类型的数据,普通参数形式
- void change2(student x,float grade)
- {
- x.grade=grade;
- }
-
- //显示student类型的数据,参数形式为引用
- void show(student &x)
- {
- cout<<x.name<<" "<<x.grade<<endl;
- }
-
- //在main()函数中,测试对结构的处理函数
- void main()
- {
- student a={"ZhangHua",351.5};
-
- //显示a的数据
- show(a);
-
- //用change修改分数,并显示
- cout<<"change(student &x,float grade):"<<endl;
- change(a,360);
- show(a);
-
- //用change1修改分数,并显示
- cout<<"change1(student *p,float grade):"<<endl;
- change1(&a,375);
- show(a);
-
- //用change2修改分数,并显示
- cout<<"change2(student x,float grade):"<<endl;
- change2(a,380.5);
- show(a);
- }
- #include<iostream.h>
- //定义函数计算数组的和和平均值
- void calculate(int a[],int size,int& sum,float& average)
- {
- sum=0;
- for (int i=0;i<size;i++) {
- sum+=a[i];
- }
- average=sum/size;
- }
- //定义显示数组的函数
- void put_arr(int a[],int size)
- {
- for(int i=0;i<size;i++)
- cout<<a[i]<<" ";
- cout<<endl;
- }
- main()
- {
- //声明数组并初始化
- int asize,bsize;
- int a[]={2,4,6,1,3,5};
- int b[]={1,3,5,7,9,11,13,15};
-
- //显示数组的值
- asize=sizeof(a)/sizeof(int);
- cout<<"put_arr(a,asize):"<<endl;
- put_arr(a,asize);
- bsize=sizeof(b)/sizeof(int);
- cout<<"put_arr(b,bsize):"<<endl;
- put_arr(b,bsize);
-
- //计算数组的和和平均值
- float a_ave,b_ave;
- int a_sum,b_sum;
- cout<<"calculate(a,asize,a_sum,a_ave):"<<endl;
- calculate(a,asize,a_sum,a_ave);
- cout<<"a_sum="<<a_sum;
- cout<<" a_ave="<<a_ave<<endl;
-
- cout<<"calculate(b,bsize,b_sum,b_ave):"<<endl;
- calculate(b,bsize,b_sum,b_ave);
- cout<<"b_sum="<<b_sum;
- cout<<" b_ave="<<b_ave<<endl;
- }
- #include<iostream.h>
-
- //参数为函数指针的函数
- int get_result(int a, int b, int (*sub)(int,int))
- {
- int r;
- r=sub(a,b);
- return r;
- }
-
- //计算最大值
- int max(int a, int b)
- {
- cout<<"In max"<<endl;
- return((a > b) ? a: b);
- }
-
- //计算最小值
- int min(int a, int b)
- {
- cout<<"In min"<<endl;
- return((a < b) ? a: b);
- }
-
- //求和
- int sum(int a, int b)
- {
- cout<<"In sum"<<endl;
- return(a+b);
- }
-
- //测试指向函数的指针
- void main(void)
- {
- int a,b,result;
-
- //测试3次
- for (int i=1;i<=3;i++) {
- cout<<"Input a and b :";
- cin>>a>>b;
-
- cout<<i<<"\tget_result("<<a<<","<<b<<", &max):"<<endl;
- result =get_result(a, b, &max);
- cout<<"Max of "<<a<<" and "<<b<<" is "<<result<<endl;
-
- result = get_result(a, b, &min);
- cout<<"Min of "<<a<<" and "<<b<<" is "<<result<<endl;
-
- result = get_result(a, b, &sum);
- cout<<"Sum of "<<a<<" and "<<b<<" is "<<result<<endl;
- }
- }
- #include<iostream.h>
- #include<stdio.h>
- #define size 3
- //定义book结构类型
- struct book
- {
- char title[20];
- char author[15];
- int pages;
- float price;
- };
- //book结构的输入函数
- input_book(book& bk,char *name)
- {
- cout<<name<<":"<<endl;
- cout<<"title:";
- cin>>bk.title;
- cout<<"author:";
- cin>>bk.author;
- cout<<"pages:";
- cin>>bk.pages;
- cout<<"price:";
- cin>>bk.price;
- }
- //book结构的输出函数
- output_book(book& bk,char *name)
- {
- cout<<name<<": ";
- cout<<bk.title<<" ";
- cout<<bk.author<<" ";
- cout<<bk.pages<<" ";
- cout<<bk.price<<endl;
- }
- void main(void)
- {
- //声明变量和结构数组
- int i;
- char str[20];
- book bk[size];
-
- //输入结构数组
- for(i=0;i<size;i++) {
- sprintf(str,"bk[%d]",i+1);
- input_book(bk[i],str);
- }
-
- //显示结构数组
- for(i=0;i<size;i++) {
- sprintf(str,"bk[%d]",i+1);
- output_book(bk[i],str);
- }
- }
- #include<iostream.h>
- //声明全局变量并初始化
- extern int a[]={1,2,3};
- extern float p=3.14;
-
- //在show()函数中使用外部变量
- show() {
- int i;
- cout<<"In show():"<<endl;
- cout<<"p="<<p<<endl;
- cout<<"a[]: ";
- for (i=0;i<=2;i++)
- cout<<a[i]<<" ";
- cout<<endl;
- //cout<<"y="<<y<<endl; 编译出错!
- }
-
- //声明外部变量并初始化
- int y=5678;
-
- //在main()函数中使用外部变量
- main()
- {
- //声明局部变量
- int i,p=100;
-
- //显示重名变量
- cout<<"In main():"<<endl;
- cout<<"p="<<p<<endl;
-
- //显示全局变量
- cout<<"::p="<<::p<<endl;
- cout<<"a[]: ";
- for (i=0;i<=2;i++)
- cout<<a[i]<<" ";
- cout<<endl;
- cout<<"y="<<y<<endl; //编译正确!
-
- show(); //调用函数
- }
- #include <iostream.h>
- //使用静态变量的计数器函数
- count1()
- {
- //声明静态变量i,并置初值为0。i在count()中局部可见
- static int i=0;
- return(++i);
- }
- //使用局部变量的计数器函数
- count2()
- {
- int i=0;
- return(++i);
- }
- //在main()函数中调用count()函数
- main()
- {
- int i;
-
- //调用count1()10次
- cout<<"count1():"<<endl;
- for (i=1;i<=12;i++)
- cout<<count1()<<" ";
- cout<<endl;
-
- //调用count2()10次
- cout<<"count2():"<<endl;
- for (i=1;i<=12;i++)
- cout<<count2()<<" ";
- cout<<endl;
- }
- // p1-851.cpp 为main()函数文件
- #include<iostream.h>
- main()
- {
- int i,s=0;
- extern int fact(int x);
- for (i=2;i<=6;i=i+2)
- s+=fact(i);
- cout<<"s="<<s<<endl;
- }
- // p1-852.cpp为计算阶乘函数文件
- //定义fact()函数为外部(extern)函数
- extern int fact(int x)
- {
- int i,t=1;
- if(x==0) return(1);
- for(i=1;i<=x;i++)
- t*=i;
- return(t);
- }
- #include<iostream.h>
- #include<stdio.h>
- #include<string.h>
- #include<process.h>
- main() {
- //声明变量
- FILE *fp1;
- char str[80];
-
- //从键盘上任意输入一个字符串
- cout<<"Inupt a string:";
- cin.getline(str,80);
-
- //以写入方式打开d.dat文件
- if ((fp1=fopen("d.dat","w"))==NULL)
- {
- cout<<"\nCould not open the file."<<endl;
- cout<<"Exiting program."<<endl;
- exit(1); //结束程序执行
- }
-
- // 写"流"文件
- fputs(str,fp1);
- fputs("\n",fp1);
-
- fclose(fp1); //关闭文件
-
- // 以读方式打开d.dat文件
- if ((fp1=fopen("d.dat","r"))==NULL)
- {
- cout<<"\nCould not open the file."<<endl;
- cout<<"Exiting program."<<endl;
- exit(1); //结束程序执行
- }
-
- // 循环从"流"文件读取字符,并显示
- char ch;
- while ((ch=fgetc(fp1))!=EOF)
- cout<<ch;
- cout<<endl;
- fclose(fp1); //关闭文件
-
- }
- #include<iostream.h>
- #include <process.h>
- #include<stdio.h>
- #include<conio.h>
- void main(void) {
- //变量声明
- char ch;
- FILE *fp1;
-
- //以写入方式打开d.dat文件
- if ((fp1=fopen("d.dat","w"))==NULL) {
- cout<<"\nCould not open the file."<<endl;
- cout<<"Exiting program."<<endl;
- exit(1); //结束程序执行
- }
-
- //循环从键盘上读取字符,写入"流"文件
- cout<<"char:"<<endl;
- cin>>ch;
- while (ch!='*') {
- fputc(ch,fp1); //将字符写到fp1指向的"流"文件中
- cin>>ch;
- }
- fclose(fp1); //关闭文件
-
- // 以读方式打开d.dat文件
- if ((fp1=fopen("d.dat","r"))==NULL)
- {
- cout<<"\nCould not open the file."<<endl;
- cout<<"Exiting program."<<endl;
- exit(1); //结束程序执行
- }
-
- // 循环从"流"文件读取字符,并显示
- while ((ch=fgetc(fp1))!=EOF)
- cout<<ch<<" ";
- cout<<endl;
- fclose(fp1); //关闭文件
- }
- #include<iostream.h>
- #include<stdio.h>
- #include<string.h>
- #include<process.h>
- main() {
- //声明变量
- int i=0;
- char p[100]; // 声明输入缓冲区
- FILE *fp1; // 声明文件指针变量
-
- //以写入方式打开d.dat文件
- if ((fp1=fopen("d.dat","w"))==NULL)
- {
- cout<<"\nCould not open the file."<<endl;
- cout<<"Exiting program."<<endl;
- exit(1); //结束程序执行
- }
-
- // 写文件操作
- for (i=1;;i++) { //无条件循环
- cout<<i<<" string:";
- cin>>p; //从键盘上输入数据
- if (stricmp(p,"end")) { //如果输入的字符串为end,则结束循环
- fputs(p,fp1); //写入文件操作
- fputs("\n",fp1);
- }
- else
- break; //退出循环
- }
-
- fclose(fp1); //关闭文件
-
- // 以读方式打开d.dat文件
- if ((fp1=fopen("d.dat","r"))==NULL)
- {
- cout<<"\nCould not open the file."<<endl;
- cout<<"Exiting program."<<endl;
- exit(1); //结束程序执行
- }
-
- // 循环从文件读取字符,并显示
- while (fgets(p,100,fp1)!=NULL)
- cout<<p;
- fclose(fp1); //关闭文件
- }
- #include<iostream.h>
- #include<stdio.h>
- #include<string.h>
- #include<process.h>
- #include<stdlib.h>
- #define MAX 10
- main() {
- //声明变量
- int i,n;
- FILE *fp1; // 声明文件指针变量
-
- //以写入方式打开d.dat文件
- if ((fp1=fopen("d.dat","w"))==NULL)
- {
- cout<<"\nCould not open the file."<<endl;
- cout<<"Exiting program."<<endl;
- exit(1); //结束程序执行
- }
-
- // 写文件操作
- for (i=1;i<=MAX;i++) {
- n=rand(); //产生1个整数随机数
- putw(n,fp1);
- cout<<n<<" ";
- }
- cout<<endl<<"--------------------"<<endl;
-
- fclose(fp1); //关闭文件
-
- // 以读方式打开d.dat文件
- if ((fp1=fopen("d.dat","r"))==NULL)
- {
- cout<<"\nCould not open the file."<<endl;
- cout<<"Exiting program."<<endl;
- exit(1); //结束程序执行
- }
-
- // 循环从"流"文件读取字符,并显示
- while ((n=getw(fp1))!=EOF)
- cout<<n<<" ";
-
- fclose(fp1); //关闭文件
- }
- #include<iostream.h>
- #include<stdio.h>
- #include<string.h>
- #include<process.h>
- #include<stdlib.h>
- #define MAX 3
- main() {
- //定义结构类型
- struct student {
- int num;
- char name[10];
- float grade;
- };
-
- //声明数组和变量
- student st[3];
- int i;
- FILE *fp1; // 声明文件指针变量
-
- //以写入方式打开d.dat文件
- if ((fp1=fopen("d.dat","w"))==NULL)
- {
- cout<<"\nCould not open the file."<<endl;
- cout<<"Exiting program."<<endl;
- exit(1); //结束程序执行
- }
-
- //从键盘上读数据,写入文件
- cout<<" num name grade"<<endl;
- for (i=0;i<MAX;i++) {
- cout<<i+1<<" ";
- cin>>st[i].num;
- cin>>st[i].name;
- cin>>st[i].grade;
- fprintf(fp1,"%d %s %f\n",st[i].num,st[i].name,st[i].grade);
- }
-
- fclose(fp1); //关闭文件
-
- // 以读方式打开d.dat文件
- if ((fp1=fopen("d.dat","r"))==NULL)
- {
- cout<<"\nCould not open the file."<<endl;
- cout<<"Exiting program."<<endl;
- exit(1); //结束程序执行
- }
-
- // 循环从"流"文件读取字符,并显示
- student t;
- while ((fscanf(fp1, "%d %s %f",&t.num,t.name,&t.grade))!=EOF) {
- cout<<t.num<<" ";
- cout<<t.name<<" ";
- cout<<t.grade<<endl;
- }
-
- fclose(fp1); //关闭文件
- }
- #include<iostream.h>
- #include <process.h>
- #include <stdlib.h>
- #include <stdio.h>
- int main(void)
- {
- FILE *fpd,*fpw; // 声明FILE结构指针变量
- unsigned char dw;
- int i=0;
-
- //以二进制读方式打开Calc.exe文件
- if((fpd=fopen("C:\WINDOWS\Calc.exe", "rb"))==NULL)
- {
- cout<<"\nCould not open the file."<<endl;
- cout<<"Exiting program."<<endl;
- exit(1); //结束程序执行
- }
-
- // 以二进制写方式打开test.exe文件
- if((fpw=fopen("test.exe", "wb+"))==NULL)
- {
- cout<<"\nCould not open the file."<<endl;
- cout<<"Exiting program."<<endl;
- exit(1); //结束程序执行
- }
-
- // 二进制文件读写操作,每次指定读写1个字节
- while(!feof(fpd)) { //使用feof()判断文件尾
- fread(&dw, 1, 1, fpd);
- fwrite(&dw, 1, 1, fpw);
- }
- // 关闭文件
- fclose(fpd);
- fclose(fpw);
-
- //执行Calc.exe和Calc.exe文件
- cout<<"1 Run C:\WINDOWS\Calc.exe"<<endl;
- system("C:\WINDOWS\Calc.exe");
- cout<<"-------------------"<<endl;
- cout<<"2 Run test.exe!"<<endl;
- system("test.exe");
- }
- #include<iostream.h>
- #include <process.h>
- #include<stdio.h>
- #include<conio.h>
- void main(void) {
- //声明变量
- int i;
- char ch;
- FILE *fp1;
-
- //以写入方式打开d.dat文件
- if ((fp1=fopen("d.dat","w"))==NULL) {
- cout<<"\nCould not open the file."<<endl;
- cout<<"Exiting program."<<endl;
- exit(1); //结束程序执行
- }
-
- //循环从键盘上读取字符,写入文件
- cout<<"char:";
- cin>>ch;
- while (ch!='*') {
- fputc(ch,fp1); //将字符写到fp1指向的"流"文件中
- cin>>ch;
- }
- cout<<"--------------------"<<endl;
- fclose(fp1); //关闭文件
-
- //以读方式打开d.dat文件
- if ((fp1=fopen("d.dat","r"))==NULL)
- {
- cout<<"\nCould not open the file."<<endl;
- cout<<"Exiting program."<<endl;
- exit(1); //结束程序执行
- }
-
- //循环从文件读取字符,并显示
- while ((ch=fgetc(fp1))!=EOF)
- cout<<ch;
- cout<<endl<<"--------------------"<<endl;
-
- //以下按倒序方式读取文件中的字符,并显示
- for (i=-1;;i--) {
- fseek(fp1,i,2); //设置文件指针,偏移量为i,相对文件尾
- if ((ch=fgetc(fp1))!=EOF)
- cout<<ch;
- else
- break;
- }
- cout<<endl<<"--------------------"<<endl;
-
- //以下读取"流"文件中偶数位置上的字符,并打印
- long position;
- for (i=0;;i=i+2) {
- fseek(fp1,i,0); //设置文件指针,偏移量为i,相对文件头
- position=ftell(fp1);
- if ((ch=fgetc(fp1))==EOF) //遇到文件尾,则退出,否则打印读取的字符
- break;
- else {
- cout<<position<<" :"<<ch<<endl;
- }
- }
- cout<<endl;
-
- fclose(fp1); //关闭文件
- }
- #include<iostream.h>
- #include<stdio.h>
- #include<process.h>
- #include<stdlib.h>
- #define MAX 5
-
- //显示数组的数据
- void show_array(double x[],int size) {
- for(int i=0;i<size;i++)
- cout<<x[i]<<" ";
- cout<<endl;
- }
-
- //main函数测试数组数据的文件读写
- int main(void)
- {
- //声明变量
- FILE *fp; // 声明FILE结构指针变量
- int i;
- double a[MAX]={1.0,1.2,1.4,1.6,1.8};
-
- //显示数组a的数据
- cout<<"a:";
- show_array(a,MAX);
-
- //打开d.dat文件
- if ((fp=fopen("d.dat","wb+"))==NULL)
- {
- cout<<"\nCould not open the file."<<endl;
- cout<<"Exiting program."<<endl;
- exit(1); //结束程序执行
- }
-
- //以单个元素对数组进行文件读操作
- for(i=0;i<MAX;i++) {
- fwrite(&a[i], sizeof(double), 1, fp);
- }
-
- rewind(fp); //恢复读写指针的位置
-
- //以单个元素对数组进行文件读操作
- double b[MAX];
- for(i=0;i<MAX;i++) {
- if (!feof(fp)) //使用feof()判断文件尾
- fread(&b[i], sizeof(double), 1, fp);
- else
- break;
- }
- cout<<"b:";
- show_array(b,MAX);//显示数组b的数据
-
- fclose(fp); // 关闭文件
-
- //打开d1.dat文件
- if ((fp=fopen("d1.dat","wb+"))==NULL)
- {
- cout<<"\nCould not open the file."<<endl;
- cout<<"Exiting program."<<endl;
- exit(1); //结束程序执行
- }
-
- //将数组当成数据块写入文件
- fwrite(&a, sizeof(double), MAX, fp);
-
- rewind(fp); //恢复读写指针的位置
-
- //将数组当成数据块从文件中读取
- double c[MAX];
- if (!feof(fp)) //使用feof()判断文件尾
- fread(&c, sizeof(double),MAX,fp);
- cout<<"c:";
- show_array(c,MAX); //显示数组c的数据
-
- fclose(fp); // 关闭文件
- }
- #include<iostream.h>
- #include<stdio.h>
- #include<process.h>
- #include<stdlib.h>
- #define MAX 5
- //定义结构类型
- struct student {
- int num;
- char name[20];
- float grade;
- };
-
- //显示student结构数据
- void show_str(student a,char *name) {
- cout<<name<<":"<<endl;
- cout<<a.num<<" "<<a.name<<" "<<a.grade;
- cout<<endl;
- }
-
- //main函数测试结构数据的文件读写
- int main(void)
- {
- //声明变量
- FILE *fp;
- //声明FILE结构指针变量
- student st={1001,"ZhangBin",85.5};
-
- //显示st结构数据
- show_str(st,"st");
-
- //打开d.dat文件
- if ((fp=fopen("d.dat","wb+"))==NULL)
- {
- cout<<"\nCould not open the file."<<endl;
- cout<<"Exiting program."<<endl;
- exit(1); //结束程序执行
- }
-
- //用fprintf()函数写结构数据到文件
- fprintf(fp,"%d %s %f",st.num,st.name,st.grade);
-
- rewind(fp); //恢复读写指针的位置
-
- //用fscanf()函数读文件中的数据赋值给结构并显示
- student temp;
- fscanf(fp, "%d %s %f",&temp.num,temp.name,&temp.grade);
- show_str(temp,"temp");
- cout<<"-----------------------"<<endl;
-
- fclose(fp); // 关闭文件
-
- //将结构数据当成数据块进行读写
- if ((fp=fopen("d1.dat","wb+"))==NULL) //打开d1.dat文件
- {
- cout<<"\nCould not open the file."<<endl;
- cout<<"Exiting program."<<endl;
- exit(1); //结束程序执行
- }
-
- //声明结构数组并初始化
- int i;
- student starr[3]={{101,"WangPing",92},{102,"Li",85},{103,"LiuMin",97}};
-
- //显示结构数组
- for(i=0;i<3;i++)
- show_str(starr[i],"starr");
-
- //将结构数组当成数据块写入文件
- fwrite(starr, sizeof(student), 3, fp);
-
- rewind(fp); //恢复读写指针的位置
-
- //按数据块从文件中读取数据赋值给结构数组
- student temp_arr[3];
- if (!feof(fp)) //使用feof()判断文件尾
- fread(temp_arr, sizeof(student),3,fp);
- for(i=0;i<3;i++)
- show_str(temp_arr[i],"temp_arr");
-
- fclose(fp); // 关闭文件
- }
- #include<stdio.h>
- #include<stdlib.h>
- #include<iostream.h>
- int main(void)
- {
- //声明变量
- char ch;
- char str[20];
- int n;
- float x;
-
- //用stdin从键盘上输入数据
- fprintf(stdout,"ch str\n");
- fscanf(stdin,"%c %s",&ch,str);
- fprintf(stdout,"n x \n");
- fscanf(stdin,"%d %f",&n,&x);
- cout<<"----------------"<<endl;
-
- //输出显示
- fprintf(stdout,"ch=%c str=%s",ch,str);
- fprintf(stdout,"\nn=%d x=%f",n,x);
- cout<<endl;
- }
- #include <stdio.h>
- void main( void )
- {
- int c;
- /* Create an error by writing to standard input. */
- putc( 'A', stdin );
- if( ferror( stdin ) )
- {
- perror( "Write error" );
- clearerr( stdin );
- }
-
- /* See if read causes an error. */
- printf( "Will input cause an error? " );
- c = getc( stdin );
- if( ferror( stdin ) )
- {
- perror( "Read error" );
- clearerr( stdin );
- }
- }
- #include<iostream.h>
- #include<math.h> //此预处理指令不可少
- const double HD=3.1415926/180;
- main() {
- cout<<"x\tsin(x)"<<endl;
- for (int i=0;i<=180;i=i+30)
- cout<<i<<"\t"<<sin(i*HD)<<endl;
- }
- #include<iostream.h>
- //以下是几个简单宏替换预处理指令
- #define YES 1
- #define PI 3.1415926
- #define RAD PI/180
- #define MESG "This is a string."
-
- //以下是主程序
- main() {
- //以下各语句使用了宏替换
- cout<<"YES="<<YES<<endl;
- if (YES)
- cout<<"PI="<<PI<<endl;
- cout<<"RAD="<<RAD<<endl;
- cout<<MESG<<endl;
- }
- #include<iostream.h>
- //以下为带参数宏替换的预处理指令
- #define PRINT(k) cout<<(k)<<endl;
- #define MAX(a,b) ((a)>(b) ? (a):(b))
- main()
- {
- int i=3,j=2;
-
- //MAX(a,b)宏替换的使用
- cout<<"MAX(10,12)="<<MAX(10,12)<<endl;
- cout<<"MAX(i,j)="<<MAX(i,j)<<endl;
- cout<<"MAX(2*i,j+3)="<<MAX(2*i,j+3)<<endl;
-
- //PRINT(k)宏替换的使用
- PRINT(5);
- PRINT(MAX(7,i*j));
- }
- #include<iostream.h>
- #define PI 3.1416
- main() {
- int i=100;
- #if 1
- cout<<"i="<<i<<endl;
- #endif
-
- #ifdef PI
- cout<<"1 PI="<<PI<<endl;
- #endif
-
- #ifndef PI
- cout<<"2 PI="<<PI<<endl; //此语句不被编译执行
- #endif
- }
-
- #include<iostream.h>
- const int MAX=5; //假定栈中最多保存5个数据
-
- //定义名为stack的类,其具有栈功能
- class stack {
- //数据成员
- float num[MAX]; //存放栈数据的数组
- int top; //指示栈顶位置的变量
- public:
- //成员函数
- void init(void) { top=0; } //初始化函数
- void push(float x) //入栈函数
- {
- if (top==MAX){
- cout<<"Stack is full !"<<endl;
- return;
- };
- num[top]=x;
- top++;
- }
- float pop(void) //出栈函数
- {
- top--;
- if (top<0){
- cout<<"Stack is underflow !"<<endl;
- return 0;
- };
- return num[top];
- }
- }
-
- //以下是main()函数,其用stack类创建栈对象,并使用了这些对象
- main(void)
- {
- //声明变量和对象
- int i;
- float x;
- stack a,b; //声明(创建)栈对象
-
- //以下对栈对象初始化
- a.init();
- b.init();
-
- //以下利用循环和push()成员函数将2,4,6,8,10依次入a栈对象
- for (i=1; i<=MAX; i++)
- a.push(2*i);
-
- //以下利用循环和pop()成员函数依次弹出a栈中的数据并显示
- for (i=1; i<=MAX; i++)
- cout<<a.pop()<<" ";
- cout<<endl;
-
- //以下利用循环和push()成员函数将键盘输入的数据依次入b栈
- cout<<"Please input five numbers."<<endl;
- for (i=1; i<=MAX; i++) {
- cin>>x;
- b.push(x);
- }
-
- //以下利用循环和pop()成员函数依次弹出b栈中的数据并显示
- for (i=1; i<=MAX; i++)
- cout<<b.pop()<<" ";
- }
- #include<iostream.h>
- const int MAX=5; //假定栈中最多保存5个数据
-
- //定义名为stack的具有栈功能的类
- class stack {
- //数据成员
- float num[MAX]; //存放栈数据的数组
- int top; //指示栈顶位置的变量
- public:
- //成员函数
- stack(void) //初始化函数
- {
- top=0;
- cout<<"Stack initialized."<<endl;
- }
- void push(float x) //入栈函数
- {
- if (top==MAX){
- cout<<"Stack is full !"<<endl;
- return;
- };
- num[top]=x;
- top++;
- }
- float pop(void) //出栈函数
- {
- top--;
- if (top<0){
- cout<<"Stack is underflow !"<<endl;
- return 0;
- };
- return num[top];
- }
- }
-
- //以下是main()函数,其用stack类创建栈对象,并使用了这些对象
- main(void)
- {
- //声明变量和对象
- int i;
- float x;
- stack a,b; //声明(创建)栈对象并初始化
-
- //以下利用循环和push()成员函数将2,4,6,8,10依次入a栈
- for (i=1; i<=MAX; i++)
- a.push(2.0*i);
-
- //以下利用循环和pop()成员函数依次弹出a栈中的数据并显示
- for (i=1; i<=MAX; i++)
- cout<<a.pop()<<" ";
- cout<<endl;
-
- //以下利用循环和push()成员函数将键盘输入的数据依次入b栈
- cout<<"Please input five numbers."<<endl;
- for (i=1; i<=MAX; i++) {
- cin>>x;
- b.push(x);
- }
-
- //以下利用循环和pop()成员函数依次弹出b栈中的数据并显示
- for (i=1; i<=MAX; i++)
- cout<<b.pop()<<" ";
- cout<<endl;
- }
- #include<iostream.h>
- const int MAX=5; //假定栈中最多保存5个数据
-
- //定义名为stack的具有栈功能的类
- class stack {
- //数据成员
- float num[MAX]; //存放栈数据的数组
- int top; //指示栈顶位置的变量
- public:
- //成员函数
- stack(char c) //初始化函数
- {
- top=0;
- cout<<"Stack "<<c<<" initialized."<<endl;
- }
- void push(float x) //入栈函数
- {
- if (top==MAX){
- cout<<"Stack is full !"<<endl;
- return;
- };
- num[top]=x;
- top++;
- }
- float pop(void) //出栈函数
- {
- top--;
- if (top<0){
- cout<<"Stack is underflow !"<<endl;
- return 0;
- };
- return num[top];
- }
- }
-
- //以下是main()函数,其用stack类创建栈对象,并使用了这些对象
- main(void)
- {
- //声明变量和对象
- int i;
- float x;
- stack a('a'),b('b'); //声明(创建)栈对象并初始化
-
- //以下利用循环和push()成员函数将2,4,6,8,10依次入a栈
- for (i=1; i<=MAX; i++)
- a.push(2.0*i);
-
- //以下利用循环和pop()成员函数依次弹出a栈中的数据并显示
- for (i=1; i<=MAX; i++)
- cout<<a.pop()<<" ";
- cout<<endl;
- }
- #include<iostream.h>
- main()
- {
- //定义一个名为student的类
- class student {
- int num;
- char *name;
- float grade;
- public:
- //定义构造函数
- student(int n,char *p,float g): num(n),name(p),grade(g){}
- display(void) {
- cout<<num<<" ,"<<name<<","<<grade<<endl;
- }
- };
-
- student a(1001,"Liming",95),b(1002,"ZhangHua",96.5); //创建对象,并初始化
- //student c; 错误,没提供参数
-
- a.display(); //显示对象a中的数据
- b.display(); //显示对象b中的数据
- }
- #include <iostream.h>
- #include <stdlib.h>
- //定义timer类
- class timer{
- long minutes;
- public:
- //无参数构造函数
- timer(void) {
- minutes =0;
- };
- //字符指针参数的构造函数
- timer(char *m) {
- minutes = atoi(m);
- };
- //整数类型的构造函数
- timer(int h, int m) {
- minutes = 60*h+m ;
- };
- //双精度浮点型构造函数
- timer(double h) {
- minutes = (int) 60*h ;
- };
- long getminutes(void) { return minutes ; };
- };
- //main()函数的定义
- main(void)
- {
- //使用double类型的构造函数创建对象
- timer start(8.30),finish(17.30);
- cout<<"finish(17.30)-start(8.30)=";
- cout<<finish.getminutes()-start.getminutes()<<endl;
-
- //使用char指针类型的构造函数创建对象
- timer start0("500"),finish0("800"); //创建对象
- cout<<"finish0(\"800\")-start0(\"500\")=";
- cout<<finish0.getminutes()-start0.getminutes()<<endl;
-
- //使用无参数构造函数和整型构造函数创建对象
- timer start1;
- timer finish1(3,30);
- cout<<"finish1(3,30)-start1=";
- cout<<finish1.getminutes()-start1.getminutes()<<endl;
-
- return 0;
- }
- #include <iostream.h>
- //定义rect类
- class rect {
- int length;
- int width;
- int area;
- public:
- rect(int l=1,int w=1)
- {
- length=l;
- width=w;
- area=length*width;
- }
- void show_rect(char *name)
- {
- cout<<name<<":"<<endl;
- cout<<"length="<<length<<endl;
- cout<<"width="<<width<<endl;
- cout<<"area="<<area<<endl;
- }
- };
- //测试使用rect类
- void main(void)
- {
- //用rect类创建对象
- rect a;
- rect b(2);
- rect c(2,3);
-
- //调用对象的函数显示对象中的数据
- a.show_rect("a");
- b.show_rect("b(2)");
- c.show_rect("c(2,3)");
- }
- #include<iostream.h>
- const int MAX=5; //假定栈中最多保存5个数据
-
- //定义名为stack的具有栈功能的类
- class stack {
- //数据成员
- double num[MAX]; //存放栈数据的数组
- int top; //指示栈顶位置的变量
- public:
- //成员函数
- stack(char *name) //构造函数
- {
- top=0;
- cout<<"Stack "<<name<<" initialized."<<endl;
- }
- ~stack(void) //析构函数
- {
- cout << "Stack destroyed." << endl; //显示信息
- }
-
- void push(double x) //入栈函数
- {
- if (top==MAX){
- cout<<"Stack is full !"<<endl;
- return;
- };
- num[top]=x;
- top++;
- }
- double pop(void) //出栈函数
- {
- top--;
- if (top<0){
- cout<<"Stack is underflow !"<<endl;
- return 0;
- };
- return num[top];
- }
- }
-
- //以下是main()函数,其用stack类创建栈对象,并使用了这些对象
- main(void)
- {
- double x;
- //声明(创建)栈对象并初始化
- stack a("a"),b("b");
-
- //以下利用循环和push()成员函数将2,4,6,8,10依次入a栈
- for (x=1; x<=MAX; x++)
- a.push(2.0*x);
-
- //以下利用循环和pop()成员函数依次弹出a栈中的数据并显示
- cout<<"a: ";
- for (int i=1; i<=MAX; i++)
- cout<<a.pop()<<" ";
- cout<<endl;
-
- //从键盘上为b栈输入数据,并显示
- for(i=1;i<=MAX;i++) {
-
- cout<<i<<" b:";
- cin>>x;
- b.push(x);
- }
- cout<<"b: ";
- for(i=1;i<=MAX;i++)
- cout<<b.pop()<<" ";
- cout<<endl;
- }
- #include<iostream.h>
- #define MAX 5
- //定义stack类接口
- class stack{
- int num[MAX];
- int top;
- public:
- stack(char *name); //构造函数原型
- ~stack(void); //析构函数原型
- void push(int n);
- int pop(void);
- };
- //main()函数测试stack类
- main(void)
- {
- int i,n;
- //声明对象
- stack a("a"),b("b");
-
- //以下利用循环和push()成员函数将2,4,6,8,10依次入a栈
- for (i=1; i<=MAX; i++)
- a.push(2*i);
-
- //以下利用循环和pop()成员函数依次弹出a栈中的数据,并显示
- cout<<"a: ";
- for (i=1; i<=MAX; i++)
- cout<<a.pop()<<" ";
- cout<<endl;
-
- //从键盘上为b栈输入数据,并显示
- for(i=1;i<=MAX;i++) {
- cout<<i<<" b:";
- cin>>n;
- b.push(n);
- }
- cout<<"b: ";
- for(i=1;i<=MAX;i++)
- cout<<b.pop()<<" ";
- cout<<endl;
-
- return 0;
- }
- //-------------------------
- // stack成员函数的定义
- //-------------------------
- //定义构造函数
- stack::stack(char *name)
- {
- top=0;
- cout << "Stack "<<name<<" initialized." << endl;
- }
- //定义析构函数
- stack::~stack(void)
- {
- cout << "stack destroyed." << endl; //显示信息
- }
- //入栈成员函数
- void stack::push(int n)
- {
- if (top==MAX){
- cout<<"Stack is full !"<<endl;
- return;
- };
- num[top]=n;
- top++;
- }
- //出栈成员函数
- int stack::pop(void)
- {
- top--;
- if (top<0){
- cout<<"Stack is underflow !"<<endl;
- return 0;
- };
- return num[top];
- }
- #include<iostream.h>
- //定义一个全部为public:模式的类
- class ex
- {
- public:
- int value;
- void set(int n) {
- value=n;
- }
- int get(void) {
- return value;
- }
- };
- //测试使用ex类
- main()
- {
- ex a; //创建对象
-
- //以下通过成员函数访问对象数据
- a.set(100);
- cout<<"a.get()=";
- cout<<a.get()<<endl;
-
- //以下直接访问对象的数据成员
- a.value=200;
- cout<<"a.value=";
- cout<<a.value<<endl;
- }
- #include <iostream.h>
- // ex_class类接口定义
- class ex_class
- {
- private:
- int iv;
- double dv;
- public:
- ex_class(void);
- ex_class(int n,double x);
- void set_ex_class(int n,double x);
- void show_ex_class(char*);
- };
-
- //定义ex_class类的构造函数
- ex_class::ex_class(void):iv(1), dv(1.0) { }
- ex_class::ex_class(int n,double x):iv(n), dv(x) { }
-
- //定义ex_class类的成员函数
- void ex_class::set_ex_class(int n,double x)
- {
- iv=n;
- dv=x;
- }
- void ex_class::show_ex_class(char *name)
- {
- cout<<name<<": "<<endl;
- cout <<"iv=" <<iv<< endl;
- cout <<"dv=" <<dv<< endl;
- }
- //使用ex_class类
- void main(void)
- {
- ex_class obj1;
- obj1.show_ex_class("obj1");
- obj1.set_ex_class(5,5.5);
- obj1.show_ex_class("obj1");
-
- ex_class obj2(100,3.14);
- obj2.show_ex_class("obj2");
- obj2.set_ex_class(2000,1.732);
- obj2.show_ex_class("obj2");
- }
- #include<iostream.h>
- //定义一个含有static数据成员的类
- class ex
- {
- static int num; //static数据成员
- public:
- ex() {num++;}
- ~ex() {num--;}
- disp_count() {
- cout<<"The current instances count:";
- cout<<num<<endl;
- }
- };
- int ex::num=0; //设置static数据成员的初值
- //main()函数测试ex类
- main()
- {
- ex a;
- a.disp_count();
-
- ex *p;
- p=new ex;
- p->disp_count();
-
- ex x[10];
- x[0].disp_count();
-
- delete p;
- a.disp_count();
- }
- #include<iostream.h>
- //定义一个含有static数据成员的类
- class ex
- {
- static int num; //static数据成员
- public:
- ex() {num++;}
- ~ex() {num--;}
- static disp_count(void) //static成员函数
- {
- cout<<"The current instances count:";
- cout<<num<<endl;
- }
- };
- int ex::num=0; //设置static数据成员的初值
- //main()函数测试ex类
- main()
- {
- ex a;
- a.disp_count();
-
- ex *p;
- p=new ex;
- p->disp_count();
-
- ex x[10];
- ex::disp_count(); //直接用类作用域符引用静态成员函数
-
- delete p;
- ex::disp_count(); //直接用类作用域符引用静态成员函数
- }
- #include <iostream.h>
- class ex_class {
- int value;
- public:
- ex_class(int n) {
- value=n;
- cout << "Stack initialized." << endl;
- }
- ~ex_class() {
- cout << "The Object destroyed." <<endl;
- }
- void set_value(int n);
- void show_val(char *name);
- } ;
-
- //在类外定义内联成员函数
- inline void ex_class::set_value(int n) {
- value=n;
- }
- //在类外定义非内联成员函数
- void ex_class::show_val(char *name) {
- cout<<name<<": ";
- cout<<value<<endl;
- }
- //在main()函数中测试ex_class类
- main(void)
- {
- //创建对象x和y
- ex_class x(100),y(200);
-
- //显示对象的数据
- x.show_val("x");
- y.show_val("y");
-
- //设置新值给对象
- x.set_value(1);
- y.set_value(2);
-
- //显示对象的数据
- x.show_val("x");
- y.show_val("y");
-
- return 0;
- }
- #include <iostream.h>
- //定义空类empty
- class empty
- {
- };
- //在main()函数中用空类创建对象
- main()
- {
- empty a,*p; //编译通过
- cout<<"Test a empty class."<<endl;
- }
- #include<iostream.h>
- //用struct关键字定义ex_class类
- struct ex_class {
- ex_class(int n=1): value(n) {}
- void set_value(int n) {
- value=n;
- }
- show_obj(char *name) {
- cout<<name<<": "<<value<<endl;
- }
- private:
- int value;
- }
- //测试 ex_class类
- main()
- {
- //用ex_class创建对象
- ex_class a,b(3);
-
- a.show_obj("a");
- b.show_obj("b");
-
- a.set_value(100);
- b.set_value(200);
-
- a.show_obj("a");
- b.show_obj("b");
- }
- #include <iostream.h>
- #include<string.h>
- //定义双亲(parent)类
- class parent {
- char f_name[20];
- char m_name[20];
- char tel[10];
- public:
- // parent类的构造函数,其带有缺省值
- parent(char *p1="",char *p2="",char *p3="") {
- strcpy(f_name,p1);
- strcpy(m_name,p2);
- strcpy(tel,p3);
- }
- //显示parent对象的数据
- show_parent(void) {
- cout<<"The parent:"<<endl;
- cout<<" father's name:"<<f_name<<endl;
- cout<<" mother's name:"<<m_name<<endl;
- cout<<" tel:"<<tel<<endl;
- }
- };
- //定义student类
- class student {
- int num;
- char name[20];
- float grade;
- parent pt;
- public:
- // student类的构造函数
- student(int n,char *str,float g,class parent t) {
- num=n;
- strcpy(name,str);
- grade=g;
- pt=t;
- }
- //显示student对象的数据
- show_student(void) {
- cout<<"num:"<<num<<endl;
- cout<<"name:"<<name<<endl;
- cout<<"grade:"<<grade<<endl;
- pt.show_parent();
- }
- };
- //main()函数测试student类的对象
- main(void)
- {
- //创建双亲对象
- parent p1("ZhangHua","LiLan","83665215");
-
- //创建学生对象
- student st(10001,"ZhangHui",91.5,p1);
-
- //显示学生信息
- cout<<"p1:"<<endl;
- p1.show_parent();
-
- //显示学生信息
- cout<<"st:"<<endl;
- st.show_student();
- }
- #include <iostream.h>
- #include <stdlib.h>
- //定义timer类
- class timer{
- long minutes;
- public:
- //定义重载成员函数
- settimer(char *m) {
- minutes = atoi(m);
- };
- //定义重载成员函数
- settimer(int h, int m) {
- minutes = 60*h+m ;
- };
- //定义重载成员函数
- settimer(double h) {
- minutes = (int) 60*h ;
- };
- long getminutes(void) { return minutes; };
- };
- //main()函数的定义
- main(void){
- timer start,finish; //创建对象
-
- //使用重载成员函数
- start.settimer(8,30);
- finish.settimer(9,40);
- cout<<"finish.settimer(9,40)-start.settimer(8,30):";
- cout<<finish.getminutes()-start.getminutes()<<endl;
-
- //使用重载成员函数
- start.settimer(2.0);
- finish.settimer("180");
- cout<<"finish.settimer(\"180\")-start.settimer(2.0):";
- cout<<finish.getminutes()-start.getminutes()<<endl;
-
- return 0;
- }
- #include <iostream.h>
- //定义复数类
- class complex{
- float real; //实部
- float image; //虚部
- public:
- //重载的运算符"+"的原型
- complex operator+ (complex right);
- //重载赋值运算符"="的定义
- complex operator= (complex right);
- void set_complex(float re, float im);
- void put_complex(char *name);
- };
- //重载加法运算符"+"的定义
- complex complex::operator+ (complex right) {
- complex temp;
- temp.real = this->real + right.real;
- temp.image = this->image + right.image;
- return temp;
- }
- //重载加赋值运算符"="的定义
- complex complex::operator= (complex right) {
- this->real = right.real;
- this->image = right.image;
- return *this;
- }
- //定义set_complex()成员函数
- void complex::set_complex(float re, float im) {
- real = re;
- image = im;
- }
- //定义put_complex()成员函数
- void complex::put_complex(char *name) {
- cout<<name<<": ";
- cout << real << ' ';
- if (image >= 0.0 ) cout << '+';
- cout << image << "i\n";
- }
- //在main()函数中使用complex类的对象
- main(void)
- {
- complex A, B, C; //创建复数对象
-
- //设置复数变量的值
- A.set_complex(1.2, 0.3);
- B.set_complex(-0.5, -0.8);
-
- //显示复数数据
- A.put_complex("A");
- B.put_complex("B");
-
- //赋值运算,显示结果
- C = A;
- C.put_complex("C=A");
-
- //加法及赋值运算,显示结果
- C = A + B;
- C.put_complex("C=A+B");
- return 0;
- }
- // Example of the friend class
- #include <iostream.h>
- //定义YourClass类,
- class YourClass
- {
- //指定YourOtherClass是它的友元类
- friend class YourOtherClass;
- private:
- int num;
- public:
- YourClass(int n){num=n;}
- display(char *YCname){
- cout<<YCname<<".num :";
- cout<<num<<endl;
- }
- };
- //定义YourOtherClass,它是YourClass类的友元类
- class YourOtherClass
- {
- public:
- //使用YourClass类的私有成员
- void disp1(YourClass yc,char *YCname){
- cout<<YCname<<".num :";
- cout<<yc.num<<endl;
- }
- //使用YourClass类的公共成员
- void disp2(YourClass yc,char* YCname){
- yc.display(YCname);
- }
- };
- //在main()函数中创建和使用YourClass和YourOtherClass类对象
- main(void)
- {
- //声明YourClass类对象
- YourClass a(10),b(100);
-
- //显示a和b对象的值
- cout<<"YourClass:"<<endl;
- a.display("a");
- b.display("b");
-
- //声明YourOtherClass类对象
- YourOtherClass temp;
-
- //通过temp显示a和b对象的值
- cout<<"YourOtherClass:"<<endl;
- temp.disp1(a,"a");
- temp.disp2(b,"b");
- }
- #include<iostream.h>
- //Y类的不完全定义
- class Y;
-
- //X类的定义
- class X {
- public:
- void disp(Y py,char *name); //成员函数原型
- };
-
- //定义Y类
- class Y {
- //声明本类的友元函数
- //X类的disp()为本例的友元函数
- friend void X::disp(Y py,char *name);
- //普通函数putY() 为本例的友元函数
- friend void putY(Y& yc,char *name);
- private: //私有成员
- int num;
- dispY(char *name){
- cout<<name<<".num="<<num<<endl;
- }
- public: //公共成员函数
- Y(int n){
- num=n;
- }
- };
-
- //X类成员函数的实现部分
- void X::disp(Y py,char *name){
- cout<<"In X::disp():"<<endl;
- py.dispY(name); //访问Y类的私有函数
- }
-
- //普通函数putY()的定义
- void putY(Y& yc,char *name){
- cout<<"In getY:"<<endl;
- yc.dispY(name);
- cout<<name<<".num=";
- cout<<yc.num<<endl;
- }
-
- //在main()函数测试X和Y类的功能
- main()
- {
- //创建Y和X类的对象
- Y y1(100),y2(200);
- X x;
-
- //不可用Y类对象的私有成员函数显示
- //y1.dispY("y1");
- //y2.dispY("y2");
-
- //调用X类对象的友元函数显示
- x.disp(y1,"y1");
- x.disp(y2,"y2");
-
- //用getY函数显示Y类的对象显示
- putY(y1,"y1");
- putY(y2,"y2");
- }
- #include <iostream.h>
- //定义日期类
- class Date
- {
- //定义友元重载输入运算符函数
- friend istream& operator >> (istream& input,Date& dt );
- //定义友元重载输出运算符函数
- friend ostream& operator<< (ostream& output,Date& dt );
- int mo, da, yr;
- public:
- Date(void){ //无参数构造函数
- yr = 0;
- mo = 0;
- da = 0;
- }
- Date( int y, int m, int d ) //带参数构造函数
- {
- yr = y;
- mo = m;
- da = d;
- }
- };
- //定义">>"运算符重载函数
- istream& operator >> ( istream& input, Date& dt )
- {
- cout<<"Year:";
- input>>dt.yr;
- cout<<"Month:";
- input>>dt.mo;
- cout<<"Day:";
- input>>dt.da;
- return input;
- }
-
- //定义"<<"运算符重载函数
- ostream& operator<< ( ostream& output, Date& dt )
- {
- output<< dt.yr << '/' << dt.mo << '/' << dt.da<<endl;
- return output;
- }
-
- //在main()函数中测试Date类的插入(<<)和提取(>>)运算符
- void main()
- {
- //声明对象
- Date dt1(2002,5,1),dt2;
-
- //显示dt1对象
- cout<<dt1;
-
- //对dt2对象进行输入和输出
- cin>>dt2;
- cout<<dt2;
- }
- #include<iostream.h>
- //定义ex类
- class ex_class
- {
- int a;
- double b;
- public:
- ex_class(int n=1,double x=1.0):a(n),b(x) {}
- void show_value(char *name) {
- cout<<name<<" :"<<endl;
- cout<<"a="<<a<<endl;
- cout<<"b="<<b<<endl;
- }
- };
-
- //定义main()函数
- main()
- {
- //创建ex_class的对象并显示
- ex_class obj1,obj2(100,3.5);
- obj1.show_value("obj1");
- obj2.show_value("obj2");
-
- //创建ex_class的指针变量
- ex_class *p;
-
- //p指向obj1并显示
- p=&obj1;
- p->show_value("p->obj1");
-
- //p指向obj2并显示
- p=&obj2;
- (*p).show_value("(*p)obj2");
-
- //p指向动态创建的对象并显示
- p=new ex_class;
- p->show_value("p->new");
-
- delete p; //删除对象
-
- }
- #include<iostream.h>
- //基类Box
- class Box {
- int width,height;
- public:
- void SetWidth(int w) {
- width=w;
- }
- void SetHeight(int h) {
- height=h;
- }
- int GetWidth() {return width;}
- int GetHeight() {return height;}
- };
- //派生类ColoredBox
- class ColoredBox:public Box
- {
- int color;
- public:
- void SetColor(int c){
- color=c;
- }
- int GetColor() {return color;}
- };
- // 在main()中测试基类和派生类
- main(void)
- {
- //声明并使用ColoredBox类的对象
- ColoredBox cbox;
- cbox.SetColor(3); //使用自己的成员函数
- cbox.SetWidth(150); //使用基类的成员函数
- cbox.SetHeight(100); //使用基类的成员函数
-
- cout<<"cbox:"<<endl;
- cout<<"Color:"<<cbox.GetColor()<<endl; //使用自己的成员函数
- cout<<"Width:"<<cbox.GetWidth()<<endl; //使用基类的成员函数
- cout<<"Height:"<<cbox.GetHeight()<<endl; //使用基类的成员函数
- //cout<<cbox.width; Error!
- }
- #include<iostream.h>
- //基类First
- class First {
- int val1;
- public:
- SetVal1(int v) {
- val1=v;
- }
- void show_First(void) {
- cout<<"val1="<<val1<<endl;
- }
- };
- //派生类Second
- class Second:private First { //默认为private模式
- int val2;
- public:
- void SetVal2(int v1,int v2) {
- SetVal1(v1); //可见,合法
- val2=v2;
- }
- void show_Second(void) {
- // cout<<"val1="<<val1<<endl; 不能访问First私有成员
- show_First();
- cout<<"val2="<<val2<<endl;
- }
- };
- main() {
- Second s1;
- //s1.SetVal1(1); //不可见,非法
- s1.SetVal2(2,3); //合法
- //s1.show_First(); //不可见,非法
- s1.show_Second();
- }
- #include<iostream.h>
- //基类First
- class First {
- int val1;
- public:
- SetVal1(int v) {
- val1=v;
- }
- void show_First(void) {
- cout<<"val1="<<val1<<endl;
- }
- };
- //派生类Second
- class Second:public First { //默认为private模式
- int val2;
- public:
- void SetVal2(int v1,int v2) {
- SetVal1(v1); //可见,合法
- val2=v2;
- }
- void show_Second(void) {
- // cout<<"val1="<<val1<<endl; 不能访问First私有成员
- show_First();
- cout<<"val2="<<val2<<endl;
- }
- };
- main() {
- Second s1;
- //调用Second类定义的成员函数
- s1.SetVal2(2,3);
- cout<<"s1.show_Second():"<<endl;
- s1.show_Second();
-
- //调用First类定义的成员函数
- s1.SetVal1(10);
- cout<<"s1.show_First():"<<endl;
- s1.show_First();
- }
- #include<iostream.h>
- //定义最低层基类,它作为其他类的基类
- class First {
- int val1;
- public:
- First(void) {
- cout<<"The First initialized"<<endl;
- }
- };
- //定义派生类,它作为其他类的基类
- class Second :public First {
- int val2;
- public:
- Second(void) {
- cout<<"The Second initialized"<<endl;
- }
- };
- //定义最上层派生类
- class Three :public Second {
- int val3;
- public:
- Three() {
- cout<<"The Three initialized"<<endl;
- }
- };
- //定义各基类的对象,测试构造函数的执行情况
- //定义各基类的对象,测试构造函数的执行情况
- main() {
- cout<<"First f1;"<<endl;
- First f1;
- cout<<"Second s1;"<<endl;
- Second s1;
- cout<<"Three t1;"<<endl;
- Three t1;
- }
- #include<iostream.h>
- //定义基类First
- class First {
- int num;
- float grade;
- public:
- //构造函数带参数
- First(int n,float v ) : num(n),grade(v)
- {
- cout<<"The First initialized"<<endl;
- }
- DispFirst(void) {
- cout<<"num="<<num<<endl;
- cout<<"grade="<<grade<<endl;
- }
- };
-
- //定义派生类Second
- class Second :public First {
- double val;
- public:
- //无参数构造函数,要为基类的构造函数设置参数
- Second(void):First(10000,0) {
- val=1.0;
- cout<<"The Second initialized"<<endl;
- }
-
- //带参数构造函数,为基类的构造函数设置参数
- Second(int n,float x,double dx):First(n,x) {
- val=dx;
- cout<<"The Second initialized"<<endl;
- }
- Disp(char *name){
- cout<<name<<".val="<<val<<endl;
- DispFirst();
- }
- };
-
- //main()函数中创建和使用派生类对象
- main() {
- //调用派生类的无参数构造函数
- cout<<"Second s1;"<<endl;
- Second s1;
- cout<<"s1.Disp(\"s1\");"<<endl;
- s1.Disp("s1");
-
- //调用派生类的有参数构造函数
- cout<<"Second s2(10002,95.7,3.1415926); "<<endl;
- Second s2(10002,95.7,3.1415926);
- cout<<"s2.Disp(\"s2\");"<<endl;
- s2.Disp("s2");
- }
- #include<iostream.h>
- //定义最低层基类First,它作为其他类的基类
- class First {
- int val1;
- public:
- First() {
- cout<<"The First initialized"<<endl;
- }
- ~First() {
- cout<<"The First destroyed"<<endl;
- }
- };
- //定义派生类Second,它作为其他类的基类
- class Second :public First { //默认为private模式
- int val2;
- public:
- Second() {
- cout<<"The Second initialized"<<endl;
- }
- ~Second() {
- cout<<"The Second destroyed"<<endl;
- }
- };
- //定义最上层派生类Three
- class Three :public Second {
- int val3;
- public:
- Three() {
- cout<<"The Three initialized"<<endl;
- }
- ~Three() {
- cout<<"The Three destroyed"<<endl;
- }
- };
- //main()函数中测试构造函数和析构函数的执行情况
- main() {
- Three t1;
- cout<<"---- Use the t1----"<<endl;
- }
- #include<iostream.h>
- //基类
- class First {
- int val1;
- protected:
- void SetVal1(int v) {
- val1=v;
- }
- public:
- show_First(void) {
- cout<<"val1="<<val1<<endl;
- }
- };
- //派生类
- class Second:public First {
- int val2;
- protected:
- void SetVal2(int v) {
- SetVal1(v); //使用First 基类的保护成员
- val2=v;
- }
- public:
- show_Second(void) {
- show_First();
- cout<<"val2="<<val2<<endl;
- }
- };
- //派生类
- class Third:public Second {
- int val3;
- public:
- void SetVal3(int n) {
- SetVal1(n); //使用First 基类的保护成员
- SetVal2(n); //使用Second基类的保护成员
- val3=n;
- }
- show_Third(void) {
- show_Second();
- cout<<"val3="<<val3<<endl;
- }
- };
- //main()函数的定义
- main(void)
- {
- First f1;
- //f1.SetVal1(1); 不可访问
-
- Second s1;
- //s1.SetVal1(1); 不可访问
- //s1.SetVal2(2); 不可访问
-
- Third t1;
- //t1.SetVal1(1); 不可访问
- //t1.SetVal2(2); 不可访问
- t1.SetVal3(10);
-
- //显示t1对象的数据
- cout<<"t1.show_Third();"<<endl;
- t1.show_Third();
- cout<<"t1.show_Second();"<<endl;
- t1.show_Second();
- cout<<"t1.show_First();"<<endl;
- t1.show_First();
- }
- #include <iostream.h>
- enum Color {Red,Yellow,Green,White};
- //圆类Circle的定义
- class Circle {
- float radius;
- public:
- Circle(float r) {radius=r;}
- float Area() {
- return 3.1416*radius*radius;
- }
- };
- //桌子类Table的定义
- class Table {
- float height;
- public:
- Table(float h) {height=h;}
- float Height() {
- return height;
- }
- };
- //圆桌类RoundTable的定义
- class RoundTable:public Table,public Circle {
- Color color;
- public:
- RoundTable(float h,float r,Color c); //构造函数
- int GetColor() {
- return color;
- }
- };
- //圆桌构造函数的定义
- RoundTable::RoundTable(float h,float r,Color c):Table(h),Circle(r)
- {
- color=c;
- }
- //main()函数的定义
- main() {
- RoundTable cir_table(15.0,2.0,Yellow);
-
- cout<<"The table properties are:"<<endl;
- //调用Height类的成员函数
- cout<<"Height="<<cir_table.Height()<<endl;
-
- //调用circle类的成员函数
- cout<<"Area="<<cir_table.Area()<<endl;
-
- //调用RoundTable类的成员函数
- cout<<"Color="<<cir_table.GetColor()<<endl;
- }
- #include <iostream.h>
- //定义一个枚举类型
- enum Color {Red,Yellow,Green,White};
- //圆类Circle的定义
- class Circle {
- float radius;
- public:
- Circle(float r) {
- radius=r;
- cout<<"Circle initialized!"<<endl;
- }
- ~Circle() { //析构函数
- cout<<"Circle destroyed!"<<endl;
- }
- float Area() {
- return 3.1416*radius*radius;
- }
- };
- //桌子类Table的定义
- class Table {
- float height;
- public:
- Table(float h) {
- height=h;
- cout<<"Table initialized!"<<endl;
- }
- ~Table() { //构造函数
- cout<<"Table destroyed!"<<endl;
- }
- float Height() {
- return height;
- }
- };
- //圆桌类RoundTable的定义
- class RoundTable:public Table,public Circle {
- Color color;
- public:
- RoundTable(float h,float r,Color c); //构造函数
- int GetColor() {
- return color;
- }
- ~RoundTable() { //构造函数
- cout<<"RoundTable destroyed!"<<endl;
- }
- };
- //圆桌构造函数的定义
- RoundTable::RoundTable(float h,float r,Color c):Table(h),Circle(r)
- {
- color=c;
- cout<<"RoundTable initialized!"<<endl;
- }
- //测试多继承中构造函数和析构函数的执行方式
- main() {
- RoundTable cir_table(15.0,2.0,Yellow);
-
- cout<<"The table properties are:"<<endl;
- //调用Height类的成员函数
- cout<<"Height="<<cir_table.Height()<<endl;
-
- //调用circle类的成员函数
- cout<<"Area="<<cir_table.Area()<<endl;
-
- //调用RoundTable类的成员函数
- cout<<"Color="<<cir_table.GetColor()<<endl;
- }
- #include<iostream.h>
- //定义有两个虚函数的基类
- class Base {
- public:
- //定义两个虚函数
- virtual void aFn1(void){
- cout<<"aFnl is in Base class."<<endl;
- }
- virtual void aFn2(void) {
- cout<<"aFn2 is in Base class."<<endl;
- }
- //定义非虚函数
- void aFn3(void) {
- cout<<"aFn3 is in Base class."<<endl;
- }
- };
-
- //派生类Derived_1中重新定义了基类中的虚函数aFn1
- class Derived_1:public Base
- {
- public:
- void aFn1(void) { //覆盖aFn1()函数
- cout<<"aFnl is in First derived class."<<endl;
- }
- // void aFn3(void) { 语法错误
- // cout<<"aFn3 is in First derived class."<<endl;
- //}
- };
-
- //派生类Derived_2中重新定义了基类中的虚函数aFn2
- class Derived_2:public Base{
- public:
- void aFn2(void){ //覆盖aFn2()函数
- cout<<"aFn2 is in Second derived class."<<endl;
- }
- // void aFn3(void) { 语法错误
- // cout<<"aFn3 is in Second derived class."<<endl;
- //}
- };
- //main()函数的定义
- main(void)
- {
- //创建和使用基类Base的对象
- Base b;
- cout<<"Base:"<<endl;
- b.aFn1();
- b.aFn2();
- b.aFn3();
- cout<<"----------------------"<<endl;
-
- //创建和使用派生类Derived_1的对象
- Derived_1 d1;
- cout<<"Derived_1:"<<endl;
- d1.aFn1();
- d1.aFn2();
- d1.aFn3();
- cout<<"----------------------"<<endl;
-
- //创建和使用派生类Derived_2的对象
- Derived_2 d2;
- cout<<"Derived_2:"<<endl;
- d2.aFn1();
- d2.aFn2();
- d2.aFn3();
- }
- #include<iostream.h>
- //定义抽象类
- class Base {
- public:
- //定义两个纯虚函数
- virtual void aFn1(void)=0;
- virtual void aFn2(void)=0;
- };
-
- //派生类Derived_1中覆盖了基类中的纯虚函数
- class Derived_1:public Base
- {
- public:
- void aFn1(void) {
- cout<<"aFnl is in First derived class."<<endl;
- }
- void aFn2(void) {
- cout<<"aFn2 is in First derived class."<<endl;
- }
- };
-
- //派生类Derived_2中覆盖了基类中的纯虚函数
- class Derived_2:public Base{
- public:
- virtual void aFn1(void){
- cout<<"aFn1 is in Second derived class."<<endl;
- }
- void aFn2(void){
- cout<<"aFn2 is in Second derived class."<<endl;
- }
- };
-
- //main()函数中测试抽象类及其派生类的对象
- main(void)
- {
- //用抽象类不能创建对象
- // Base b; 语法错误
- // b.aFn1();
- // b.aFn2();
-
- //创建和使用Derived_1类的对象
- Derived_1 d1;
- cout<<"Derived_1 d1:"<<endl;
- d1.aFn1();
- d1.aFn2();
- cout<<"------------------"<<endl;
-
- //创建和使用Derived_2类的对象
- Derived_2 d2;
- cout<<"Derived_2 d2:"<<endl;
- d2.aFn1();
- d2.aFn2();
- }
- #include<iostream.h>
- int extract_int()
- {
- char ch;
- int n=0;
- while(ch=cin.get())
- if (ch>='0' && ch<='9')
- {
- cin.putback(ch);
- cin>>n;
- break;
- }
- return n;
- }
- //main()函数
- main(void)
- {
- //提取字符串中的数字
- int a=extract_int();
- int b=extract_int();
- int c=extract_int();
-
- //显示结果
- cout<<a<<"+"<<b<<"="<<c<<endl;
- }
- #include<iostream.h>
- //定义节点(数据对象)的接口
- class Node
- {
- //声明list类为本类的友元类
- friend class list;
- //私有成员
- private:
- int Data; //节点数据
- Node *previous; //前趋指针
- Node *next; //后继指针
- };
-
- //定义双向链表list的接口声明
- class list
- {
- //私有成员
- private:
- Node *Head; //链表头指针
- Node *Tail; //链表尾指针
- //定义接口函数
- public:
- //构造函数
- list();
- //析构函数
- ~list();
- //从链表尾后添加数据
- void Build_HT(int Data);
- //从链表前头添加数据
- void Build_TH(int Data);
- //从头到尾显示数据
- void list::Display_HT();
- //从尾到头显示数据
- void list::Display_TH();
- //清除链表的全部数据
- void Clear();
- };
-
- //main()函数测试双向链表
- int main(void)
- {
- list list1;
- int i;
-
- //从尾添加数据
- cout<<"Add to the back of the list1:"<<endl;
- for (i=1;i<=20;i=i+2) {
- list1.Build_HT(i);
- cout<<i<<" ";
- }
- cout<<endl;
-
- //从头添加数据
- cout<<"Add to the front of the list1:"<<endl;
- for (i=0;i<=20;i=i+2) {
- list1.Build_TH(i);
- cout<<i<<" ";
- }
- cout<<endl;
-
- //显示链表
- list1.Display_HT();
- list1.Display_TH();
-
- return 0;
- }
- //list类函数的定义
- //构造函数的定义
- list::list()
- {
- //初值
- Head=0;
- Tail=0;
- }
- //析构函数的定义
- list::~list()
- {
- Clear();
- }
- //从链表尾后添加数据
- void list::Build_HT(int Data)
- {
- Node *Buffer;
-
- Buffer=new Node;
- Buffer->Data=Data;
- if(Head==0)
- {
- Head=Buffer;
- Head->next=0;
- Head->previous=0;
- Tail=Head;
- }
- else
- {
- Tail->next=Buffer;
- Buffer->previous=Tail;
- Buffer->next=0;
- Tail=Buffer;
- }
- }
- //从链表前头添加数据
- void list::Build_TH(int Data)
- {
- Node *NewNode;
- NewNode=new Node;
- NewNode->Data=Data;
-
- if(Tail==0)
- {
- Tail=NewNode;
- Tail->next=0;
- Tail->previous=0;
- Head=Tail;
- }
- else
- {
- NewNode->previous=0;
- NewNode->next=Head;
- Head->previous=NewNode;
- Head=NewNode;
- }
- }
- //从头到尾显示数据
- void list::Display_HT()
- {
- Node *TEMP;
- TEMP=Head;
- cout<<"Display the list from Head to Tail:"<<endl;
- while(TEMP!=0)
- {
- cout<<TEMP->Data<<" ";
- TEMP=TEMP->next;
- }
- cout<<endl;
- }
- //从尾到头显示数据
- void list::Display_TH()
- {
- Node *TEMP;
- TEMP=Tail;
- cout<<"Display the list from Tail to Head:"<<endl;
- while(TEMP!=0)
- {
- cout<<TEMP->Data<<" ";
- TEMP=TEMP->previous;
- }
- cout<<endl;
- }
- //清除链表的全部数据
- void list::Clear()
- {
- Node *Temp_head=Head;
-
- if (Temp_head==0) return;
- do
- {
- Node *TEMP_NODE=Temp_head;
- Temp_head=Temp_head->next;
- delete TEMP_NODE;
- }
- while (Temp_head!=0);
- }
- #include <iostream>
- #include <string>
-
- using namespace std;
-
- //测试字符串(string)对象
- void main()
- {
- //创建string对象,并显示
- string s1;
- string s2="ABCDEFGHIJK";
- string s3=s2;
- string s4(20,'A');
- string s5(s2,3,3);
- cout<<"s1="<<s1<<endl;
- cout<<"s2="<<s2<<endl;
- cout<<"s3="<<s3<<endl;
- cout<<"s4="<<s4<<endl;
- cout<<"s5="<<s5<<endl;
-
- //为string对象输入数据,并显示
- cout<<"s1=";
- cin>>s1;
- cout<<"s2=";
- cin>>s2;
- cout<<"s3=";
- cin>>s3;
- cout<<"s4=";
- cin>>s4;
- cout<<"s5=";
- cin>>s5;
-
- cout<<"s1="<<s1<<endl;
- cout<<"s2="<<s2<<endl;
- cout<<"s3="<<s3<<endl;
- cout<<"s4="<<s4<<endl;
- cout<<"s5="<<s5<<endl;
- }
- #include <iostream>
- #include <string>
-
- using namespace std;
-
- //测试字符串(string)对象
- void main()
- {
-
- //创建string对象
- string s1,s2;
-
- //string对象的赋值运算
- s1="One";
- s2="Two";
- cout<<"s1="<<s1<<endl;
- cout<<"s2="<<s2<<endl;
-
- //string对象的连接运算
- string s3;
- s3=s1+" and "+s2;
- cout<<"s3="<<s3<<endl;
-
- //组合赋值连接运算
- s3+=" and Three";
- cout<<"s3="<<s3<<endl;
-
- //比较运算及其结果显示
- for (int i=1;i<=3;i++) {
- cout<<"---------------------"<<endl;
- cout<<"s1=";
- cin>>s1;
- cout<<"s2=";
- cin>>s2;
- if (s1<s2) //小于
- cout<<s1<<" < "<<s2<<endl;
- if (s1<=s2) //小于等于
- cout<<s1<<" <= "<<s2<<endl;
- if (s1==s2) //等于
- cout<<s1<<" == "<<s2<<endl;
- if (s1>s2) //大于
- cout<<s1<<" > "<<s2<<endl;
- if (s1>=s2) //大于等于
- cout<<s1<<" >= "<<s2<<endl;
- if (s1!=s2) //不等
- cout<<s1<<" != "<<s2<<endl;
- }
- }
- #include <iostream>
- #include <string>
-
- using namespace std;
-
- //测试字符串(string)对象
- void main()
- {
- //创建string对象,并显示
- string s1="This";
- string s2="book.";
- cout<<"s1: "<<s1<<endl;
- cout<<"s2: "<<s2<<endl;
-
- //使用length成员函数
- cout<<"s1.length()="<<s1.length()<<endl;
- cout<<"s2.length()="<<s2.length()<<endl;
-
- //使用append成员函数
- s1.append(s2);
- cout<<"s1: "<<s1<<endl;
-
- //使用find成员函数和下标运算
- int pos=s1.find('b');
- cout<<"s1["<<pos<<"]="<<s1[pos]<<endl;
-
- //使用insert成员函数
- s1.insert(pos," is a ");
- cout<<s1<<endl;
-
- //使用assign成员函数
- s1.assign("Good");
- cout<<s1<<endl;
-
- }
- //根据半径计算圆的周长和面积
- #include <iostream.h>
- const float PI=3.1416; //声明常量(只读变量)PI为3.1416
- float fCir_L(float); //声明自定义函数fCir_L()的原型
- float fCir_S(float); //声明自定义函数fCir_S()的原型
-
- //以下是main()函数
- main()
- {
- float r,l,s; //声明3个变量
-
- cout<<"R="; //显示字符串
- cin>>r; //键盘输入
- l=fCir_L(r); //计算圆的周长,赋值给变量l
- s=fCir_S(r); //计算圆的面积,赋值给变量s
- cout<<"l="<<l; //显示计算结果
- cout<<"\ns="<<s;
- }
-
- //定义计算圆的周长的函数fCir_L()
- float fCir_L(float x)
- {
- float z=-1.0; //声明局部变量
- if (x>=0.0) //如果参数大于0,则计算圆的周长
- z=2*PI*x;
- return(z); //返回函数值
- }
-
- //定义计算圆的面积的函数fCir_S()
- float fCir_S(float x)
- {
- float z=-1.0; //声明局部变量
- if (x>=0.0) //如果参数大于0,则计算圆的面积
- z=PI*x*x;
- return(z); //返回函数值
- }
- #include<iostream.h>
- #include<stdlib.h>
- #define MAX 30
- //main()的定义
- int main(void)
- {
- char str[MAX],*p;
-
- //从键盘上输入int数
- cout<<"Please input a int:"<<endl;
- int n;
- cin>>n;
-
- //将整型数n按十进制转换为字符串并输出
- p=itoa(n,str,10);
- cout<<"str="<<str<<endl;
- cout<<"p="<<p<<endl;
-
- //将整型数n按十六进制转换为字符串并输出
- p=itoa(n,str,16);
- cout<<"str="<<str<<endl;
- cout<<"p="<<p<<endl;
-
- //从键盘上输入double类型的数据
- cout<<"Please input a double:"<<endl;
- double x;
- cout<<"x=";
- cin>>x;
-
- //将浮点数x转换为字符串后输出
- p=gcvt(x,10,str);
- cout<<"str="<<str<<endl;
- cout<<"p="<<p<<endl;
-
- return 0;
- }
- #include<iostream.h>
- #include<stdlib.h>
- #define MAX 30
- //main()的定义
- int main(void)
- {
- char str[MAX];
-
- //字符串转换为int和long类型数据
- cout<<"Please input a string:"<<endl;
- cin>>str;
- int n=atoi(str);
- cout<<"n="<<n<<endl;
- long l=atol(str);
- cout<<"l="<<l<<endl;
-
- //字符串转换为double类型
- cout<<"Please input a string:"<<endl;
- cin>>str;
- double x=atof(str);
- cout<<"x="<<x<<endl;
-
- return 0;
- }
- #include<iostream.h>
- #include <stdlib.h>
- #include <time.h>
-
- //定义产生[n1,n2]范围int随机数的函数
- int rand(int n1,int n2) {
- if (n1>n2) return -1;
- if (n1==n2) return 0;
- int temp=n1+int((n2-n1)*double(rand())/RAND_MAX);
- return temp;
- }
-
- //main()函数的定义,加法练习程序
- void main( void )
- {
- int i;
-
- //使用当前的系统时间初始化随机数种子
- srand( (unsigned)time( NULL ) );
-
- //加法练习
- int a,b,c;
- do {
- a=rand(0,20);
- b=rand(0,20);
- L1: cout<<a<<"+"<<b<<"=";
- cin>>c;
- if (c==0) break;
- if (c!=a+b) {
- cout<<"Error! Try again!"<<endl;
- goto L1;
- }
- cout<<"OK!"<<endl;
- } while (1);
-
- }
- #include<iostream.h>
- #include <stdlib.h>
- #include <math.h>
- #define PI 3.1415926535
-
- //main()函数的定义
- void main( void )
- {
- int i;
- double x=PI/180;
- cout<<"X\tSIN(X)\t\tCOS(X)"<<endl;
- cout<<"---------------------------------------"<<endl;
- for (i=0;i<=360;i=i+30) {
- cout<<i<<"\t";
- cout.precision(2);
- cout<<sin(i*x)<<"\t\t";
- cout<<cos(i*x)<<endl;
- }
- }
- #include<iostream.h>
- #include <stdlib.h>
- #include <math.h>
- #define PI 3.1415926535
-
- //main()函数的定义
- void main( void )
- {
- int i;
- double d=180/PI;
-
- cout<<"X\tASIN(X)\t\tACOS(X)"<<endl;
- cout<<"---------------------------------------"<<endl;
- for (double x=0;x<=1.0+0.05;x=x+0.1) {
- cout<<x<<"\t";
- cout<<int(asin(x)*d)<<"\t\t";
- cout<<int(acos(x)*d)<<endl;
- }
- }
- #include<iostream.h>
- #include <stdlib.h>
- #include <math.h>
-
- //main()函数的定义
- void main( void )
- {
- _complex a={3,4},b={3,-4};
-
- double d=cabs(a);
- cout<<"cabs("<<a.x<<","<<a.y<<")="<<d<<endl;
- cout<<"cabs("<<b.x<<","<<b.y<<")="<<cabs(b)<<endl;
- }
- ##include<iostream.h>
- #include <stdlib.h>
- #include <math.h>
-
- //main()函数的定义
- void main( void )
- {
- double x;
-
- //循环输入数据计算对数
- do {
- cout<<"x=";
- cin>>x;
- if (x<=0) break;
- cout<<"log("<<x<<")="<<log(x)<<endl;
- cout<<"log10("<<x<<")="<<log10(x)<<endl;
- } while(1);
- }
- #include<iostream.h>
- #include <stdlib.h>
- #include <math.h>
-
- //main()函数的定义
- void main( void )
- {
- double y;
- for(double x=-5;x<=5;x++){
- y=exp(x);
- cout<<"exp("<<x<<")="<<y<<endl;
- }
- }
- #include<iostream.h>
- #include <stdlib.h>
- #include <math.h>
-
- //main()函数的定义
- void main( void )
- {
- double y;
- int N;
- //输入一个大于等于0的数
- do {
- cout<<"N=";
- cin>>N;
- if (N>=0) break;
- } while (1);
-
- //计算并显示
- for(int i=0;i<=N;i++){
- y=pow(2,i);
- cout<<"pow("<<2<<","<<i<<")="<<y<<endl;
- }
- }
- #include<iostream.h>
- #include <stdlib.h>
- #include <math.h>
-
- //main()函数的定义
- void main( void )
- {
- double y;
- for(int i=0;i<=10;i++){
- y=sqrt(i);
- cout<<"sqrt("<<i<<")="<<y<<endl;
- }
- }
- #include<iostream.h>
- #include <time.h>
-
- //时间延迟函数
- void Dtime(int dt) {
- time_t current_time;
- time_t start_time;
- // 得到开始时间
- time(&start_time);
- do
- {
- time(¤t_time);
- }
- while ((current_time - start_time) < dt);
- }
-
- //main()函数的定义
- void main(void)
- {
- cout<<"The First information!"<<endl;
- cout<<"About to delay 5 seconds"<<endl;
- Dtime(5);
- cout<<"The Second information!"<<endl;
- }
- #include<iostream.h>
- #include <time.h>
-
- //main()函数的定义
- void main(void)
- {
- //声明time_t类型的变量,其以秒为单位存放系统时间
- time_t current_time;
-
- //得到当前的系统时间(秒)
- time(¤t_time);
-
- //转换系统时间为tm结构的时间信息
- tm *ptime=gmtime(¤t_time);
-
- //显示time_t结构的时间
- cout<<"current_time:"<<current_time<<endl;
-
- //显示tm结构的时间信息
- cout<<"seconds after the minute:"<<(ptime->tm_sec)<<endl;
- cout<<"minutes after the hour:"<<(ptime->tm_min)<<endl;
- cout<<"hours since midnight:"<<(ptime->tm_hour)<<endl;
- cout<<"day of the month:"<<(ptime->tm_mday)<<endl;
- cout<<"months since January:"<<(ptime->tm_mon)<<endl;
- cout<<"years since 1900:"<<(ptime->tm_year)<<endl;
- cout<<"days since Sunday:"<<(ptime->tm_wday)<<endl;
- cout<<"days since January 1:"<<(ptime->tm_yday)<<endl;
- cout<<"daylight savings time flag:"<<(ptime->tm_isdst)<<endl;
- }
- #include<iostream.h>
- #include <time.h>
-
- //main()函数的定义
- void main(void)
- {
- //声明变量
- time_t current_time;
-
- //得到当前系统时间
- time(¤t_time);
-
- //转换系统时间为tm结构
- tm *ptime=gmtime(¤t_time);
-
- //转换time_t类型的时间字符串并显示
- char *timep=ctime(¤t_time);
- cout<<"ctime(¤t_time):"<<endl;
- cout<<timep;
-
- //转换tm类型的数据转换为时间字符串并显示
- char *tmp=asctime(ptime);
- cout<<"asctime(ptime):"<<endl;
- cout<<timep;
- }
- #include<iostream.h>
- #include<conio.h>
- #include <time.h>
-
- //定义时间延迟函数
- void Dtime(double dt) {
- time_t current_time;
- time_t start_time;
-
- //得到开始时间
- time(&start_time);
- //延迟处理
- do
- {
- time(¤t_time);
- }
- while (difftime(current_time,start_time)<dt);
- }
-
- //main()函数的定义
- void main(void)
- {
- //声明变量
- int i;
- time_t current_time;
- char *timep;
- //循环10次,每隔2秒显示一次时间
- for(i=0;i<10;i++) {
- time(¤t_time);
- timep=ctime(¤t_time);
- cputs(timep);
- Dtime(2);
- }
- }
- #include<iostream.h>
- #include<stdlib.h>
- #include<malloc.h>
- int main(void)
- {
- //定义结构类型
- struct student {
- int num;
- char name[20];
- float grade;
- };
-
- //声明结构指针变量
- struct student *sp;
- //计算申请的内存量
- int size=sizeof(struct student);
-
- //申请需要的存储空间并强制类型转换
- sp=(struct student*)malloc(size);
-
- //为结构对象输入数据
- cout<<"nmu:";
- cin>>(sp->num);
- cout<<"name:";
- cin>>(sp->name);
- cout<<"grade:";
- cin>>(sp->grade);
-
- //输出结构对象的数据
- cout<<"num:"<<(sp->num)<<endl;
- cout<<"name:"<<(sp->name)<<endl;
- cout<<"grade:"<<(sp->grade);
-
- //释放内存
- free(sp);
- }
- #include<iostream.h>
- #include<conio.h>
- #include <time.h>
-
- //定义时间延迟函数
- void Dtime(double dt) {
- time_t current_time;
- time_t start_time;
-
- // 得到开始时间
- time(&start_time);
- //延迟处理
- do
- {
- time(¤t_time);
- }
- while (difftime(current_time,start_time)<dt);
- }
-
- //控制台函数显示
- void cputs_show(int n) {
- time_t current_time;
- char *timep;
- cputs("Show time with cputs\n");
-
- for(int i=0;i<5;i++) {
- time(¤t_time);
- timep=ctime(¤t_time);
- cputs(timep);
- Dtime(n);
- }
- }
-
- //cout对象显示
- void cout_show(int n) {
- time_t current_time;
- char *timep;
- cout<<"Show time with cout"<<endl;
-
- for(int i=0;i<5;i++) {
- time(¤t_time);
- timep=ctime(¤t_time);
- cout<<timep;
- Dtime(n);
- }
- }
-
- //main()函数的定义
- void main(void)
- {
- cputs_show(1);
- cout_show(1);
- }
- #include<stdio.h>
- main()
- {
- //输出字符串
- printf("He said \"Hello!\"");
-
- //输出各进制整数
- int i=64;
- printf("\ni=%d",i); //以十进制格式输出
- printf("\ni=%o",i); //以八进制格式输出
- printf("\ni=%x",i); //以十六进制格式输出
- printf("\ni=%d,%o,%x",i,i,i); //各种格式混合输出
-
- //输出浮点数
- float x=3141.5926;
- printf("\nx=%f",x); //指定输出浮点数的格式为十进制形式
- printf("\nx=%e",x); //指定输出浮点数的格式为指数形式
-
- //控制输出项宽度
- int j=123;
- printf("\nj=%-10d",j); //任选项"-"指定左对齐,W 指定宽度为10
- printf("\nj=%10d\n",j); //W 指定宽度为10
-
- //控制输出精度
- float y=3.1415926;
- printf("y=%10.2f\n",y); //W 指定宽度为10,P指定小数点后保留2位
- printf("y=%10.5f\n",y); //W 指定宽度为10,P指定小数点后保留5位
- }
- #include<stdio.h>
- main()
- {
- //输入字符串
- char str[80];
- printf("str:"); //显示提示
- scanf("%s",str);
- printf("The string:%s",str);
-
- //输入各进制整数
- int a,b,c,sum;
- printf("\na\tb\tc\n"); //显示提示
- scanf("%d %o %x",&a,&b,&c); //以十进制、八进制、十六进制形式输入数据
- sum=a+b+c;
- printf("a=%d b=%d c=%d sum=%d",a,b,c,sum);
-
- //输入浮点数并计算显示
- float x,y; //声明变量
- printf("\nx\ty\n"); //显示提示
- scanf("%f %f",&x,&y); //对非空白字符"x= y="读入,不保存
- printf("sum=%f product=%f\n",x+y, x*y); //显示表达式的值
- }
- #include<iostream.h>
- #include<direct.h>
- #include<errno.h>
- #define MAX_PATH 250
- main()
- {
- //声明变量
- char *p,str[MAX_PATH];
-
- //设置新目录
- if (mkdir("d:\\ABC")){
- cout<<"mkdir Error!"<<endl;
- }
-
- //更该工作目录
- if (chdir("d:\\ABC")){
- cout<<"chdir Error!"<<endl;
- }
-
- //读取当前目录
- if ((p=getcwd(str,MAX_PATH))==NULL) {
- cout<<"getcwd Error!"<<endl;
- }
- else
- {
- cout<<"p:"<<p<<endl;
- cout<<"str:"<<str<<endl;
- }
-
- //更该工作目录
- if (chdir("d:\\")){
- cout<<"chdir Error!"<<endl;
- }
-
- //删除指定目录
- if (rmdir("d:\\ABC")==-1)
- cout<<"rmdir Error!"<<endl;
- }
- #include<iostream.h>
- #include <time.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <stdio.h>
-
- void main( void )
- {
- struct stat buf;
- int result;
-
- //获得c:\Windows\Calc.exe文件的状态信息
- result =stat( "c:\\windows\\Calc.exe", &buf );
-
- //显示Calc.exe文件的状态信息
- if( result != 0 )
- perror( "Problem getting information" );
- else
- {
- cout<<"Size of the file in bytes:"<<buf.st_size<<endl;
- cout<<"Drive number of the disk containing the file :";
- cout<<char(buf.st_dev + 'A')<<endl;
- cout<<"Time of creation of the file:"<<ctime(&buf.st_ctime);
- cout<<"Time of last access of the file:"<<ctime(&buf.st_atime);
- cout<<"Time of last modification of the file:"<<ctime(&buf.st_mtime);
- }
- }
- #include<iostream.h>
- #include <string.h>
-
- void main( void )
- {
- //设置字符串
- char string[] = "Fill the string with something";
- cout<<"string:"<<string<<endl;
- char *p=strset(string,'*');
- cout<<"p :"<<p<<endl;
- cout<<"string:"<<string<<endl;
-
- //按指定字符和指定数目设置字符数组
- char string1[] = "Fill the string with something";
- cout<<"string1:"<<string1<<endl;
- p=strnset(string1,'*',5);
- cout<<"p :"<<p<<endl;
- cout<<"string1:"<<string1<<endl;
- }
- #include<iostream.h>
- #include <string.h>
-
- void main( void )
- {
- //拷贝字符串常量到字符数组
- char string[80] = "Fill the string with something";
- cout<<"string:"<<string<<endl;
- cout<<"strcpy:"<<endl;
- char *p=strcpy(string,"abc");
- cout<<"p :"<<p<<endl;
- cout<<"string:"<<string<<endl;
- char str[80];
- cout<<"str:";
- cin>>str;
- p=strcpy(string,str);
- cout<<"p :"<<p<<endl;
- cout<<"string:"<<string<<endl;
-
- //拷贝前5个字符到string中
- cout<<"str:";
- cin>>str;
- cout<<"strncpy:"<<endl;
- p=strncpy(string,str,strlen(str));
- cout<<"p :"<<p<<endl;
- cout<<"string:"<<string<<endl;
- }
- #include<iostream.h>
- #include <string.h>
-
- void main( void )
- {
- //声明字符数组和字符型指针变量
- char string[80],*p;
-
- //拷贝字符串
- strcpy( string, "I'll see you");
- cout<<"string:"<<string<<endl;
-
- //追加字符串
- p=strcat( string, " in the morning.");
- cout<<"String: "<<string<<endl;
- cout<<"p : "<<p<<endl;
- }
- #include<iostream.h>
- #include <string.h>
-
- //字符串输入函数
- void str_input(char *p1,char *p2)
- {
- cout<<"string1:";
- cin>>p1;
- cout<<"string2:";
- cin>>p2;
- }
-
- //显示strcmp()函数的比较结果
- void strcmp_put(char *p1,char *p2)
- {
- cout<<"strcmp():"<<endl;
- int result=strcmp(p1,p2);
- if (result>0)
- cout<<p1<<" greater than "<<p2<<endl;
- if (result<0)
- cout<<p1<<" less than "<<p2<<endl;
- if (result==0)
- cout<<p1<<" identical to "<<p2<<endl;
- }
-
- //显示stricmp()函数的比较结果
- void stricmp_put(char *p1,char *p2)
- {
- cout<<"stricmp():"<<endl;
- int result=stricmp(p1,p2);
- if (result>0)
- cout<<p1<<" greater than "<<p2<<endl;
- if (result<0)
- cout<<p1<<" less than "<<p2<<endl;
- if (result==0)
- cout<<p1<<" identical to "<<p2<<endl;
- }
-
- //显示strncmp()函数的比较结果
- void strncmp_put(char *p1,char *p2,size_t count )
- {
- cout<<"strncmp():"<<endl;
- int result=strncmp(p1,p2,count);
- if (result>0)
- cout<<p1<<" greater than "<<p2<<endl;
- if (result<0)
- cout<<p1<<" less than "<<p2<<endl;
- if (result==0)
- cout<<p1<<" identical to "<<p2<<endl;
- }
-
- //main()函数
- void main( void )
- {
- //声明字符数组
- char str1[80],str2[80],p;
- int i;
-
- //测试测试各字符串比较函数
- for(i=1;i<=3;i++) {
- str_input(str1,str2);
- strcmp_put(str1,str2);
- stricmp_put(str1,str2);
- strncmp_put(str1,str2,3);
- cout<<"----------------------"<<endl;
- }
- }
- #include<iostream.h>
- #include <string.h>
-
- //main()函数
- void main( void )
- {
- //声明字符数组
- char string[80],*p;
- int i;
-
- //转换字符串中的小写字母为大写
- cout<<"Convert a string to uppercase:"<<endl;
- cout<<"string:";
- cin>>string;
- p=strupr(string);
- cout<<"p:"<<p<<endl;
- cout<<"string:"<<string<<endl;
- cout<<"----------------------"<<endl;
-
- //转换字符串中的大写字母为小写
- cout<<"Convert a string to lowercase:"<<endl;
- cout<<"string:";
- cin>>string;
- p=strlwr(string);
- cout<<"p:"<<p<<endl;
- cout<<"string:"<<string<<endl;
- }
- #include<iostream.h>
- #include <string.h>
-
- //main()函数
- void main( void )
- {
- //声明字符数组
- char string[]="This is a test.";
- int n;
-
- //获得字符串的长度
- cout<<"string:"<<string<<endl;
- n=strlen(string);
- cout<<"The length of "<<"\""<<string<<"\": "<<n<<endl;
-
- //输入字符并计算其长度
- cout<<"string:";
- cin>>string;
- n=strlen(string);
- cout<<"The length of "<<"\""<<string<<"\": "<<n<<endl;
- }
- #include<iostream.h>
- #include <string.h>
-
- //main()函数
- void main( void )
- {
- //声明字符数组
- char ch,string[80],*p;
- int n;
-
- //输入字符串和要查找的字符
- cout<<"Test strchr():"<<endl;
- cout<<"string:";
- cin>>string;
- cout<<"ch :";
- cin>>ch;
-
- //在string中查找ch中的字符并显示
- p=strchr(string,ch);
- cout<<"p :"<<p<<endl;
-
- //输入字符串和要查找的字符串并查找
- char substr[80];
- cout<<"Test strstr():"<<endl;
- cout<<"substr:";
- cin>>substr;
-
- //在string中查找substr中的字符串并显示
- p=strstr(string,substr);
- cout<<"p :"<<p<<endl;
- }
- #include<iostream.h>
- #include <string.h>
-
- //main()函数
- void main( void )
- {
- //声明字符数组
- char string[80],*p;
-
- //输入字符串并将其反转
- cout<<"string:";
- cin>>string;
- p=strrev(string );
- cout<<"p :"<<p<<endl;
- cout<<"string:"<<string<<endl;
- }
- #include<iostream.h>
- #include <string.h>
-
- char string[80];
- char seps[] = " ,\t\n";
- char *token;
-
- void main( void )
- {
- //从键盘上输入两个语句
- for (int i=1;i<3;i++) {
- cout<<"Please input a sentence:"<<endl;
- //整行输入
- cin.getline(string,80);
- cout<<"Tokens:"<<endl;
- //首次分离字符串
- token = strtok( string, seps );
- while( token != NULL ) //结束分离判断
- {
- cout<<token<<endl;
- //下次分离字符串
- token = strtok( NULL, seps );
- }
- }
- }
- #include<iostream.h>
- #include<stdio.h>
- #include <string.h>
-
- //main()函数
- void main( void )
- {
- //声明变量和数组
- char buffer[200], s[] = "computer", c = 'l';
- int i = 35, j;
- float fp = 1.7320534f;
-
- //格式化输出到buffer
- j = sprintf( buffer, "\tString: %s\n", s );
- j += sprintf( buffer + j, "\tCharacter: %c\n", c );
- j += sprintf( buffer + j, "\tInteger: %d\n", i );
- j += sprintf( buffer + j, "\tReal: %f\n", fp );
-
- cout<<"Output:"<<endl;
- cout<<buffer;
- cout<<"character count ="<<j<<endl;
- }
- //根据半径计算圆的周长和面积
- #include <iostream.h>
- const float PI=3.1416; //声明常量(只读变量)PI为3.1416
- float fCir_L(float); //声明自定义函数fCir_L()的原型
- float fCir_S(float); //声明自定义函数fCir_S()的原型
-
- //以下是main()函数
- main()
- {
- float r,l,s; //声明3个变量
-
- cout<<"R="; //显示字符串
- cin>>r; //键盘输入
- l=fCir_L(r); //计算圆的周长,赋值给变量l
- s=fCir_S(r); //计算圆的面积,赋值给变量s
- cout<<"l="<<l; //显示计算结果
- cout<<"\ns="<<s;
- }
-
- //定义计算圆的周长的函数fCir_L()
- float fCir_L(float x)
- {
- float z=-1.0; //声明局部变量
- if (x>=0.0) //如果参数大于0,则计算圆的周长
- z=2*PI*x;
- return(z); //返回函数值
- }
-
- //定义计算圆的面积的函数fCir_S()
- float fCir_S(float x)
- {
- float z=-1.0; //声明局部变量
- if (x>=0.0) //如果参数大于0,则计算圆的面积
- z=PI*x*x;
- return(z); //返回函数值
- }
- #include<iostream.h>
-
- //定义名为max_value的函数模板
- template <class T> T max_value (T a,T b)
- {
- return ((a> b)? a: b);
- }
-
- //在main()函数中测试max_value函数模板
- void main(void)
- {
- //double类型数据使用max_value模板函数
- double x = 1.2, y = 2.1;
- cout<<"x="<<x<<"\t";
- cout<<"y="<<y<<endl;
- double result=max_value(x,y);
- cout<<"max_value(x,y)="<<result<<endl;
- cout<<"max_value(2*3.0,2+3.0)="<<max_value(2*3.0,2+3.0)<<endl;
- cout<<"------------------"<<endl;
-
- //int类型数据使用max_value模板函数
- int n= 1, m= 6;
- cout<<"n="<<n<<"\t";
- cout<<"m="<<m<<endl;
- cout<<"max_value(n,m)="<<max_value(n,m)<<endl;
- cout<<"------------------"<<endl;
-
- //char类型数据使用max_value模板函数
- char ch1='A',ch2='a';
- cout<<"ch1="<<ch1<<"\t";
- cout<<"ch2="<<ch2<<endl;
- cout<<"max_value(ch1,ch2)="<<max_value(ch1,ch2)<<endl;
- cout<<"------------------"<<endl;
-
- //字符串数据使用max_value模板函数
- char str1[]="abc",str2[]="ABC",*p;
- p=max_value(str1,str2);
- cout<<"max_value("<<str1<<","<<str2<<")="<<p<<endl;
- }
- #include<iostream.h>
-
- //函数模板的原型
- template <class T1, class T2> void display(T1 x, T2 y);
-
- //在main()函数中测试display函数模板
- void main(void)
- {
- //声明变量
- char c='A';
- char str[]="This is a test";
- int n=10;
- float x=1.5;
- double z=3.1415926;
-
- //两个参数类型相同
- display(c, char(c+2));
- display(str, str);
- display(n, 2*n);
- display(x,2*x);
- display(z, 2*z);
- cout<<"------------------"<<endl;
-
- //两个参数类型不同
- display(c, str);
- display(str, c);
- display(n, str);
- display(str,2*x);
- display(z, n);
- }
-
- //定义名为display的函数模板
- template <class T1, class T2> void display(T1 x, T2 y)
- {
- cout << x << " " << y << endl;
- }
- #include<iostream.h>
-
- //声明引用参数的函数模板原型
- template <class T> void swap(T &x, T &y);
-
- //定义一个结构类型
- struct student {
- int n;
- char name[20];
- float grade;
- };
-
- //在main()函数中测试swap()函数模板
- void main(void)
- {
- //交换两个int型变量中的数据
- int m=3,n=5;
- cout<<"m="<<m<<" n="<<n<<endl;
- swap(m,n);
- cout<<"m="<<m<<" n="<<n<<endl;
- cout<<"-------------------"<<endl;
-
- //交换两个double型变量中的数据
- double x=3.5,y=5.7;
- cout<<"x="<<x<<" y="<<y<<endl;
- swap(x,y);
- cout<<"x="<<x<<" y="<<y<<endl;
- cout<<"-------------------"<<endl;
-
- //交换两个char型变量中的数据
- char c1='A',c2='a';
- cout<<"c1="<<c1<<" c2="<<c2<<endl;
- swap(c1,c2);
- cout<<"c1="<<c1<<" c2="<<c2<<endl;
- cout<<"-------------------"<<endl;
-
- //交换两个结构变量中的数据
- student s1={1001,"ZhangHua",90};
- student s2={1011,"LiWei",95.5};
- cout<<"s1: ";
- cout<<s1.n<<" "<<s1.name<<" "<<s1.grade<<endl;
- cout<<"s2: ";
- cout<<s2.n<<" "<<s2.name<<" "<<s2.grade<<endl;
- swap(s1,s2);
- cout<<"swap(s1,s2):"<<endl;
- cout<<"s1: ";
- cout<<s1.n<<" "<<s1.name<<" "<<s1.grade<<endl;
- cout<<"s2: ";
- cout<<s2.n<<" "<<s2.name<<" "<<s2.grade<<endl;
- }
-
- //定义名为swap的函数模板用于交换两个变量中的数据
- template <class T> void swap(T &x, T &y)
- {
- T temp;
- temp=x;
- x=y;
- y=temp;
- }
- #include<iostream.h>
-
- //声明函数模板的原型语句
- template <class T> void swap(T *x, T *y);
-
- //定义一个结构类型
- struct student {
- int n;
- char name[20];
- float grade;
- };
-
- //在main()函数中测试swap()函数模板
- void main(void)
- {
- //交换两个int型变量中的数据
- int m=3,n=5;
- cout<<"m="<<m<<" n="<<n<<endl;
- swap(&m,&n);
- cout<<"m="<<m<<" n="<<n<<endl;
- cout<<"-------------------"<<endl;
-
- //交换两个double型变量中的数据
- double x=3.5,y=5.7;
- cout<<"x="<<x<<" y="<<y<<endl;
- swap(&x,&y);
- cout<<"x="<<x<<" y="<<y<<endl;
- cout<<"-------------------"<<endl;
-
- //交换两个char型变量中的数据
- char c1='A',c2='a';
- cout<<"c1="<<c1<<" c2="<<c2<<endl;
- swap(&c1,&c2);
- cout<<"c1="<<c1<<" c2="<<c2<<endl;
- cout<<"-------------------"<<endl;
-
- //交换两个结构变量中的数据
- student s1={1001,"ZhangHua",90};
- student s2={1011,"LiWei",95.5};
- cout<<"s1: ";
- cout<<s1.n<<" "<<s1.name<<" "<<s1.grade<<endl;
- cout<<"s2: ";
- cout<<s2.n<<" "<<s2.name<<" "<<s2.grade<<endl;
-
- swap(&s1,&s2);
- cout<<"swap(s1,s2):"<<endl;
- cout<<"s1: ";
- cout<<s1.n<<" "<<s1.name<<" "<<s1.grade<<endl;
- cout<<"s2: ";
- cout<<s2.n<<" "<<s2.name<<" "<<s2.grade<<endl;
- }
-
- //定义名为swap的函数模板用于交换两个变量中的数据
- template <class T> void swap(T *x, T *y)
- {
- T temp;
- temp=*x;
- *x=*y;
- *y=temp;
- }
- #include<iostream.h>
-
- //定义输入函数模板
- template <class T> void input(char *str,T &x) {
- cout<<str<<"=";
- cin>>x;
- }
-
- //定义输出函数模板
- template <class T> void output(char *str,T x) {
- cout<<str<<"="<<x<<endl;
- }
-
- //在main()函数中测试输入输出函数模板
- void main(void)
- {
- //输入输出int型数据
- int a,b;
- input("a",a);
- output("a",a);
- b=3*a;
- output("3*a",b);
- output("a+b",a+b);
- cout<<"-------------------"<<endl;
-
- //输入输出double型数据
- double x,y;
- input("x",x);
- output("x",x);
- y=2*x;
- output("y",y);
- cout<<"-------------------"<<endl;
-
- //输入输出char型数据
- char c1;
- input("c1",c1);
- output("c1+2",char(c1+2));
- cout<<"-------------------"<<endl;
-
- //输入输出字符串数据
- char string[80];
- input("string",string);
- output("string",string);
- }
- #include<iostream.h>
- #include<string.h>
-
- //显示数组的函数模板
- template <class T> void arr_put(T arr[],int size) {
- for (int i=0 ;i<=size;i++)
- cout<<arr[i]<<" ";
- cout<<endl;
- }
-
- //选择排序数组的函数模板
- template <class T> void sort(T arr[],int size) {
- T temp;
- int i,j;
- for (i=0;i<size;i++)
- for (j=i+1;j<=size;j++)
- if (arr[i]<=arr[j])
- {
- temp=arr[i];
- arr[i]=arr[j];
- arr[j]=temp;
- }
- }
-
- //在main()函数中测试数组排序的函数模板
- void main(void)
- {
- //用排序函数模板处理int型数组
- cout<<"int:"<<endl;
- int a[]={1,5,2,7,9,0,10,-1};
- arr_put(a,7);
- sort(a,7);
- arr_put(a,7);
-
- //用排序函数模板处理double型数组
- cout<<"double:"<<endl;
- double x[]={1.2,2.1,1.414,1.732};
- arr_put(x,3);
- sort(x,3);
- arr_put(x,3);
-
- //用排序函数模板处理char类型数组
- cout<<"char:"<<endl;
- char str[80];
- cout<<"str:";
- cin>>str;
- int size=strlen(str);
- arr_put(str,size);
- sort(str,size);
- arr_put(str,size);
- }
- #include<iostream.h>
- #include<string.h>
-
- //显示数组的函数模板
- template <class T> void arr_put(T arr[],int size) {
- for (int i=0 ;i<size;i++)
- cout<<arr[i]<<" ";
- cout<<endl;
- }
-
- //选择法对数组排序的函数模板
- template <class T> void sort(T arr[],int size) {
- T temp;
- int i,j;
- for (i=0;i<size-1;i++)
- for (j=i+1;j<size;j++)
- if (arr[i]>arr[j])
- {
- temp=arr[i];
- arr[i]=arr[j];
- arr[j]=temp;
- }
- }
-
- //二分查找法的函数模板
- template <class T> int binary_search(T array[], T value, int size)
- {
- int found = 0;
- int high = size, low = 0, mid;
-
- mid = (high + low) / 2;
-
- cout<<"Looking for "<<value<<endl;
- while ((! found) && (high >= low))
- {
- if (value == array[mid])
- found = 1;
- else if (value < array[mid])
- high = mid - 1;
- else
- low = mid + 1;
- mid = (high + low) / 2;
- }
- return((found) ? mid: -1);
- }
-
- //main()函数中使用处理数组的函数模板
- void main(void)
- {
- //处理int型数组
- int array[10]={1,3,5,7,9,2,4,6,8,10};
-
- //显示数组初值
- arr_put(array,10);
-
- //对数组排序并显示
- sort(array,10);
- arr_put(array,10);
-
- //查找数组
- cout<<"Result of search: "<<binary_search(array, 3, 10)<<endl;
- cout<<"Result of search: "<<binary_search(array, 2, 10)<<endl;
- cout<<"Result of search: "<<binary_search(array, 9, 10)<<endl;
- cout<<"Result of search: "<<binary_search(array, 5, 10)<<endl;
- cout<<"------------------------------"<<endl;
-
- //处理字符串型数组
- char ch1,str[]="happy";
- int size=strlen(str);
-
- //显示数组初值
- arr_put(str,size);
-
- //对数组排序并显示
- sort(str,size);
- arr_put(str,size);
-
- //查找数组
- cout<<"Input a char:";
- cin>>ch1;
- cout<<"Result of search: "<<binary_search(str, ch1, size)<<endl;
- }
- #include<iostream.h>
-
- //定义名为ex_class的类模板
- template <class T> class ex_class
- {
- T value;
- public:
- ex_class(T v) { value=v; }
- void set_value(T v) { value=v; }
- T get_value(void) {return value;}
- };
-
- //main()函数中测试ex_class类模板
- void main(void)
- {
- //测试int类型数据
- ex_class <int> a(5),b(10);
- cout<<"a.value:"<<a.get_value()<<endl;
- cout<<"b.value:"<<b.get_value()<<endl;
-
- //测试char类型数据
- ex_class <char> ch('A');
- cout<<"ch.value:"<<ch.get_value()<<endl;
- ch.set_value('a');
- cout<<"ch.value:"<<ch.get_value()<<endl;
-
- //测试double类型数据
- ex_class <double> x(5.5);
- cout<<"x.value:"<<x.get_value()<<endl;
- x.set_value(7.5);
- cout<<"x.value:"<<x.get_value()<<endl;
- }
- #include <iostream.h>
- //定义栈的尺寸
- const int SIZE = 100;
-
- //定义处理栈的类模板接口
- template <class T> class stack {
- T stck[SIZE];
- int tos;
- public:
- stack(void) {
- tos = 0;
- cout << "Stack Initialized." << endl;
- }
- ~stack(void) {
- cout << "Stack Destroyed." << endl;
- }
- void push(T);
- T pop(void);
- };
-
- //定义栈的成员函数
- template <class T> void stack<T>::push(T i)
- {
- if(tos==SIZE)
- {
- cout << "Stack is full." << endl;
- return;
- }
- stck[tos++] = i;
- }
- template <class T> T stack<T>::pop(void)
- {
- if(tos==0)
- {
- cout << "Stack underflow." << endl;
- return 0;
- }
- return stck[--tos];
- }
-
- //main()函数中测试stack类模板
- void main(void)
- {
- //处理int类型数据的栈
- cout<<"stack<int> a :"<<endl;
- stack<int> a;
- a.push(1);
- a.push(2);
- cout << a.pop() << " ";
- cout << a.pop() << endl;
-
- //处理double类型数据的栈
- cout<<"stack<double> b :"<<endl;
- stack<double> b;
- b.push(99.3);
- b.push(-12.23);
- cout << b.pop() << " ";
- cout << b.pop() <<endl;
-
- //处理char类型数据的栈
- cout<<"stack<char> c :"<<endl;
- stack<char> c;
- for(int i=0; i<10; i++)
- c.push((char) 'A' + i);
- for(i=0; i<10; i++)
- cout <<c.pop();
- cout << endl;
- }
- #include<iostream.h>
-
- //定义名为ex_class的类模板
- template <class T1,class T2> class ex_class
- {
- T1 value1;
- T2 value2;
- public:
- ex_class(T1 v1,T2 v2) {
- value1=v1;
- value2=v2;
- }
- void set_value(T1 v1,T2 v2) {
- value1=v1;
- value2=v2;
- }
- void put_value(void) {
- cout<<"valu1="<<value1<<endl;
- cout<<"valu2="<<value2<<endl;
- }
- };
-
- //main()函数中测试ex_class类模板
- void main(void)
- {
- //测试int和double类型数据
- ex_class <int,double> a(5,1.5);
- cout<<"ex_class <int,double> a:"<<endl;
- a.put_value();
- a.set_value(100,3.14);
- a.put_value();
-
- //测试double和int类型数据
- ex_class <double,int> b(0.5,5);
- cout<<"ex_class <double,int> b:"<<endl;
- b.put_value();
- b.set_value(1.732,100);
- b.put_value();
-
- //测试char和int类型数据
- ex_class <char,int> c('a',5);
- cout<<"ex_class <char,int> c:"<<endl;
- c.put_value();
- c.set_value('B',100);
- c.put_value();
-
- //测试int和int类型数据
- ex_class <int,int> d(5,10);
- cout<<"ex_class <int,int> d:"<<endl;
- d.put_value();
- d.set_value(100,200);
- d.put_value();
- }
- #include <iostream>
- #include <list>
- #include <numeric>
- #include <algorithm>
-
- using namespace std;
-
- //创建一个list容器的实例LISTINT
- typedef list<int> LISTINT;
-
- //创建一个list容器的实例LISTCHAR
- typedef list<int> LISTCHAR;
-
- void main(void)
- {
- //--------------------------
- //用list容器处理整型数据
- //--------------------------
- //用LISTINT创建一个名为listOne的list对象
- LISTINT listOne;
- //声明i为迭代器
- LISTINT::iterator i;
-
- //从前面向listOne容器中添加数据
- listOne.push_front (2);
- listOne.push_front (1);
-
- //从后面向listOne容器中添加数据
- listOne.push_back (3);
- listOne.push_back (4);
-
- //从前向后显示listOne中的数据
- cout<<"listOne.begin()--- listOne.end():"<<endl;
- for (i = listOne.begin(); i != listOne.end(); ++i)
- cout << *i << " ";
- cout << endl;
-
- //从后向后显示listOne中的数据
- LISTINT::reverse_iterator ir;
- cout<<"listOne.rbegin()---listOne.rend():"<<endl;
- for (ir =listOne.rbegin(); ir!=listOne.rend();ir++) {
- cout << *ir << " ";
- }
- cout << endl;
-
- //使用STL的accumulate(累加)算法
- int result = accumulate(listOne.begin(), listOne.end(),0);
- cout<<"Sum="<<result<<endl;
- cout<<"------------------"<<endl;
-
- //--------------------------
- //用list容器处理字符型数据
- //--------------------------
-
- //用LISTCHAR创建一个名为listOne的list对象
- LISTCHAR listTwo;
- //声明i为迭代器
- LISTCHAR::iterator j;
-
- //从前面向listTwo容器中添加数据
- listTwo.push_front ('A');
- listTwo.push_front ('B');
-
- //从后面向listTwo容器中添加数据
- listTwo.push_back ('x');
- listTwo.push_back ('y');
-
- //从前向后显示listTwo中的数据
- cout<<"listTwo.begin()---listTwo.end():"<<endl;
- for (j = listTwo.begin(); j != listTwo.end(); ++j)
- cout << char(*j) << " ";
- cout << endl;
-
- //使用STL的max_element算法求listTwo中的最大元素并显示
- j=max_element(listTwo.begin(),listTwo.end());
- cout << "The maximum element in listTwo is: "<<char(*j)<<endl;
- }
- #include <iostream>
- #include <vector>
-
- using namespace std;
- typedef vector<int> INTVECTOR;
-
- //测试vector容器的功能
- void main(void)
- {
- //vec1对象初始为空
- INTVECTOR vec1;
- //vec2对象最初有10个值为6的元素
- INTVECTOR vec2(10,6);
- //vec3对象最初有3个值为6的元素
- INTVECTOR vec3(vec2.begin(),vec2.begin()+3);
-
- //声明一个名为i的双向迭代器
- INTVECTOR::iterator i;
-
- //从前向后显示vec1中的数据
- cout<<"vec1.begin()--vec1.end():"<<endl;
- for (i =vec1.begin(); i !=vec1.end(); ++i)
- cout << *i << " ";
- cout << endl;
-
- //从前向后显示vec2中的数据
- cout<<"vec2.begin()--vec2.end():"<<endl;
- for (i =vec2.begin(); i !=vec2.end(); ++i)
- cout << *i << " ";
- cout << endl;
-
- //从前向后显示vec3中的数据
- cout<<"vec3.begin()--vec3.end():"<<endl;
- for (i =vec3.begin(); i !=vec3.end(); ++i)
- cout << *i << " ";
- cout << endl;
-
- //测试添加和插入成员函数
- vec1.push_back(2);
- vec1.push_back(4);
- vec1.insert(vec1.begin()+1,5);
- vec1.insert(vec1.begin()+1,vec3.begin(),vec3.end());
- cout<<"push() and insert():" <<endl;
- for (i =vec1.begin(); i !=vec1.end(); ++i)
- cout << *i << " ";
- cout << endl;
-
- //测试赋值成员函数
- vec2.assign(8,1);
- cout<<"vec2.assign(8,1):" <<endl;
- for (i =vec2.begin(); i !=vec2.end(); ++i)
- cout << *i << " ";
- cout << endl;
-
- //测试引用类函数
- cout<<"vec1.front()="<<vec1.front()<<endl;
- cout<<"vec1.back()="<<vec1.back()<<endl;
- cout<<"vec1.at(4)="<<vec1.at(4)<<endl;
- cout<<"vec1[4]="<<vec1[4]<<endl;
-
- //测试移出和删除
- vec1.pop_back();
- vec1.erase(vec1.begin()+1,vec1.end()-2);
- cout<<"vec1.pop_back() and vec1.erase():" <<endl;
- for (i =vec1.begin(); i !=vec1.end(); ++i)
- cout << *i << " ";
- cout << endl;
-
- //显示序列的状态信息
- cout<<"vec1.capacity(): "<<vec1.capacity()<<endl;
- cout<<"vec1.max_size(): "<<vec1.max_size()<<endl;
- cout<<"vec1.size(): "<<vec1.size()<<endl;
- cout<<"vec1.empty(): "<<vec1.empty()<<endl;
-
- //vector序列容器的运算
- cout<<"vec1==vec3: "<<(vec1==vec3)<<endl;
- cout<<"vec1<=vec3: "<<(vec1<=vec3)<<endl;
- }
- #include <iostream>
- #include <deque>
-
- using namespace std;
- typedef deque<int> INTDEQUE;
-
- //从前向后显示deque队列的全部元素
- void put_deque(INTDEQUE deque, char *name)
- {
- INTDEQUE::iterator pdeque;
-
- cout << "The contents of " << name << " : ";
- for(pdeque = deque.begin(); pdeque != deque.end(); pdeque++)
- cout << *pdeque << " ";
- cout<<endl;
- }
-
- //测试deqtor容器的功能
- void main(void)
- {
- //deq1对象初始为空
- INTDEQUE deq1;
- //deq2对象最初有10个值为6的元素
- INTDEQUE deq2(10,6);
- //deq3对象最初有3个值为6的元素
- INTDEQUE deq3(deq2.begin(),deq2.begin()+3);
-
- //声明一个名为i的双向迭代器变量
- INTDEQUE::iterator i;
-
- //从前向后显示deq1中的数据
- put_deque(deq1,"deq1");
-
- //从前向后显示deq2中的数据
- put_deque(deq2,"deq2");
-
- //从前向后显示deq3中的数据
- put_deque(deq3,"deq3");
-
- //从deq1序列后面添加两个元素
- deq1.push_back(2);
- deq1.push_back(4);
- cout<<"deq1.push_back(2) and deq1.push_back(4):"<<endl;
- put_deque(deq1,"deq1");
-
- //从deq1序列前面添加两个元素
- deq1.push_front(5);
- deq1.push_front(7);
- cout<<"deq1.push_front(5) and deq1.push_front(7):"<<endl;
- put_deque(deq1,"deq1");
-
- //在deq1序列中间插入数据
- deq1.insert(deq1.begin()+1,3,9);
- cout<<"deq1.insert(deq1.begin()+1,3,9):"<<endl;
- put_deque(deq1,"deq1");
-
- //测试引用类函数
- cout<<"deq1.front()="<<deq1.front()<<endl;
- cout<<"deq1.back()="<<deq1.back()<<endl;
- cout<<"deq1.at(4)="<<deq1.at(4)<<endl;
- cout<<"deq1[4]="<<deq1[4]<<endl;
- deq1.at(1)=10;
- deq1[2]=12;
- cout<<"deq1.at(1)=10 and deq1[2]=12 :"<<endl;
- put_deque(deq1,"deq1");
-
- //从deq1序列的前后各移去一个元素
- deq1.pop_front();
- deq1.pop_back();
- cout<<"deq1.pop_front() and deq1.pop_back():"<<endl;
- put_deque(deq1,"deq1");
-
- //清除deq1中的第2个元素
- deq1.erase(deq1.begin()+1);
- cout<<"deq1.erase(deq1.begin()+1):"<<endl;
- put_deque(deq1,"deq1");
-
- //对deq2赋值并显示
- deq2.assign(8,1);
- cout<<"deq2.assign(8,1):"<<endl;
- put_deque(deq2,"deq2");
-
- //显示序列的状态信息
- cout<<"deq1.max_size(): "<<deq1.max_size()<<endl;
- cout<<"deq1.size(): "<<deq1.size()<<endl;
- cout<<"deq1.empty(): "<<deq1.empty()<<endl;
-
- //deqtor序列容器的运算
- cout<<"deq1==deq3: "<<(deq1==deq3)<<endl;
- cout<<"deq1<=deq3: "<<(deq1<=deq3)<<endl;
- }
- #include <iostream>
- #include <list>
-
- using namespace std;
- typedef list<int> INTLIST;
-
- //从前向后显示list队列的全部元素
- void put_list(INTLIST list, char *name)
- {
- INTLIST::iterator plist;
-
- cout << "The contents of " << name << " : ";
- for(plist = list.begin(); plist != list.end(); plist++)
- cout << *plist << " ";
- cout<<endl;
- }
-
- //测试list容器的功能
- void main(void)
- {
- //list1对象初始为空
- INTLIST list1;
- //list2对象最初有10个值为6的元素
- INTLIST list2(10,6);
- //list3对象最初有3个值为6的元素
- INTLIST list3(list2.begin(),--list2.end());
-
- //声明一个名为i的双向迭代器
- INTLIST::iterator i;
-
- //从前向后显示各list对象的元素
- put_list(list1,"list1");
- put_list(list2,"list2");
- put_list(list3,"list3");
-
- //从list1序列后面添加两个元素
- list1.push_back(2);
- list1.push_back(4);
- cout<<"list1.push_back(2) and list1.push_back(4):"<<endl;
- put_list(list1,"list1");
-
- //从list1序列前面添加两个元素
- list1.push_front(5);
- list1.push_front(7);
- cout<<"list1.push_front(5) and list1.push_front(7):"<<endl;
- put_list(list1,"list1");
-
- //在list1序列中间插入数据
- list1.insert(++list1.begin(),3,9);
- cout<<"list1.insert(list1.begin()+1,3,9):"<<endl;
- put_list(list1,"list1");
-
- //测试引用类函数
- cout<<"list1.front()="<<list1.front()<<endl;
- cout<<"list1.back()="<<list1.back()<<endl;
-
- //从list1序列的前后各移去一个元素
- list1.pop_front();
- list1.pop_back();
- cout<<"list1.pop_front() and list1.pop_back():"<<endl;
- put_list(list1,"list1");
-
- //清除list1中的第2个元素
- list1.erase(++list1.begin());
- cout<<"list1.erase(++list1.begin()):"<<endl;
- put_list(list1,"list1");
-
- //对list2赋值并显示
- list2.assign(8,1);
- cout<<"list2.assign(8,1):"<<endl;
- put_list(list2,"list2");
-
- //显示序列的状态信息
- cout<<"list1.max_size(): "<<list1.max_size()<<endl;
- cout<<"list1.size(): "<<list1.size()<<endl;
- cout<<"list1.empty(): "<<list1.empty()<<endl;
-
- //list序列容器的运算
- put_list(list1,"list1");
- put_list(list3,"list3");
- cout<<"list1>list3: "<<(list1>list3)<<endl;
- cout<<"list1<list3: "<<(list1<list3)<<endl;
-
- //对list1容器排序
- list1.sort();
- put_list(list1,"list1");
-
- //结合处理
- list1.splice(++list1.begin(), list3);
- put_list(list1,"list1");
- put_list(list3,"list3");
- }
- #include <iostream.h>
- #include <set>
-
- using namespace std;
-
- //创建set模板的实例
- typedef set<int> SET_INT;
-
- //put_HTset函数,从头向尾显示set容器的所有元素
- void put_HTset(SET_INT set1,char *name)
- {
- SET_INT::iterator it;
-
- cout<<name<<": ";
- cout<<"Head to Tail=";
- for (it=set1.begin();it!=set1.end();++it)
- cout<<(*it)<<" ";
- cout<<endl;
- }
-
- //put_THset函数,从尾向头显示set容器的所有元素
- void put_THset(SET_INT s1,char *name)
- {
- SET_INT::reverse_iterator i;
-
- cout<<name<<": ";
- cout<<"Tail to Head=";
- for (i=s1.rbegin(); i!=s1.rend();i++)
- cout <<(*i) <<" ";
- cout<<endl;
- }
-
- //测试set模板
- void main(void)
- {
- int i;
- //声明set的对象和迭代器
- SET_INT s1; //容器初始尾空
- SET_INT::iterator it;
-
- //向s1对象中插入值
- for (i=1;i<20;i=i+2) {
- s1.insert(i);
- }
-
- //正向显示s1中的数据
- put_HTset(s1,"s1");
-
- //反向显示s1中的数据
- put_THset(s1,"s1");
-
- //构造含有元素的序列并显示
- SET_INT s2(s1);
- put_HTset(s2,"s2");
-
- //删除s2的第2个元素并显示
- s2.erase(++s2.begin());
- put_HTset(s2,"s2");
-
- //向s2插入8和9并显示
- s2.insert(8);
- s2.insert(9);
- put_HTset(s2,"s2");
-
- //清空s2的序列
- s2.clear();
- put_HTset(s2,"s2");
-
- //按关键给定的区间显示序列中的元素
- cout<<"[s1.lower_bound(5),s1.upper_bound(15)] :";
- for (it=s1.lower_bound(4);it!=s1.upper_bound(16);it++)
- cout<<(*it)<<" ";
- cout<<endl;
-
- //显示s1的状态信息
- cout<<"s1.size():"<<s1.size()<<endl;
- cout<<"s1.max_size():"<<s1.max_size()<<endl;
- cout<<"s1.count(15):"<<s1.count(15)<<endl;
-
- //交换两个set容器的元素并显示
- s1.swap(s2);
- put_HTset(s1,"s1");
- put_HTset(s2,"s2");
-
- //关系运算
- s1.insert(5);
- cout<<"s1>s2 = "<<(s1>s2)<<endl;
- }
- #include <iostream.h>
- #include <set>
-
- using namespace std;
-
- //创建multiset模板的实例
- typedef multiset<int> MULTISET_INT;
-
- //put_HTset函数,从头向尾显示multiset容器的所有元素
- void put_HTset(MULTISET_INT set1,char *name)
- {
- MULTISET_INT::iterator it;
-
- cout<<name<<": ";
- cout<<"Head to Tail=";
- for (it=set1.begin();it!=set1.end();++it)
- cout<<(*it)<<" ";
- cout<<endl;
- }
-
- //put_THset函数,从尾向头显示multiset容器的所有元素
- void put_THset(MULTISET_INT s1,char *name)
- {
- MULTISET_INT::reverse_iterator i;
-
- cout<<name<<": ";
- cout<<"Tail to Head=";
- for (i=s1.rbegin(); i!=s1.rend();i++)
- cout <<(*i) <<" ";
- cout<<endl;
- }
-
- //测试multiset模板
- void main(void)
- {
- int i;
- //声明multiset的对象和迭代器
- MULTISET_INT s1; //容器初始尾空
- MULTISET_INT::iterator it;
-
- //向s1对象中插入值
- for (i=1;i<20;i=i+2) {
- s1.insert(i);
- }
-
- //正向显示s1中的数据
- put_HTset(s1,"s1");
-
- //反向显示s1中的数据
- put_THset(s1,"s1");
-
- //构造含有元素的序列并显示
- MULTISET_INT s2(s1);
- put_HTset(s2,"s2");
-
- //删除s2的第2个元素并显示
- s2.erase(++s2.begin());
- put_HTset(s2,"s2");
-
- //向s2插入8和9并显示
- s2.insert(8);
- s2.insert(9);
- put_HTset(s2,"s2");
-
- //清空s2的序列
- s2.clear();
- put_HTset(s2,"s2");
-
- //按键给定的区间显示序列中的元素
- cout<<"[s1.lower_bound(5),s1.upper_bound(15)] :";
- for (it=s1.lower_bound(4);it!=s1.upper_bound(16);it++)
- cout<<(*it)<<" ";
- cout<<endl;
-
- //显示s1的状态信息
- cout<<"s1.size():"<<s1.size()<<endl;
- cout<<"s1.max_size():"<<s1.max_size()<<endl;
- cout<<"s1.count(15):"<<s1.count(15)<<endl;
-
- //交换两个multiset容器的元素并显示
- s1.swap(s2);
- put_HTset(s1,"s1");
- put_HTset(s2,"s2");
-
- //关系运算
- s1.insert(2);
- put_HTset(s1,"s1");
- put_HTset(s2,"s2");
- cout<<"s1>s2 = "<<(s1>s2)<<endl;
- }
- #include <iostream>
- #include <string>
- #include <map>
-
- using namespace std;
-
- //创建map的实例,整数(int)映射字符串(string)
- typedef map<int, string> INT2STRING;
-
- //测试map容器
- void main()
- {
- //创建map对象theMap
- INT2STRING theMap;
- INT2STRING::iterator theIterator,it;
-
- //向theMap容器中添入数据,数字和字符串配对
- //每个元素是一个映射对
- theMap.insert(INT2STRING::value_type(0,"Zero"));
- theMap.insert(INT2STRING::value_type(2,"Two"));
- theMap.insert(INT2STRING::value_type(4,"Four"));
- theMap.insert(INT2STRING::value_type(6,"Six"));
- theMap.insert(INT2STRING::value_type(8,"Eight"));
-
- //显示map容器的所有对象
- cout<<"theMap.begin()--theMap.end():"<<endl;
- for (theIterator=theMap.begin();theIterator!=theMap.end();++theIterator){
- cout<<(*theIterator).first;
- cout<<","<<(*theIterator).second<<" ";
- }
- cout<<endl;
-
- //测试map容器key的惟一性
- theMap.insert(INT2STRING::value_type(0,"Zero"));
- theMap.insert(INT2STRING::value_type(1,"One"));
- theMap.insert(INT2STRING::value_type(2,"Two"));
- theMap.insert(INT2STRING::value_type(3,"Three"));
- theMap.insert(INT2STRING::value_type(4,"Four"));
- theMap.insert(INT2STRING::value_type(5,"Five"));
- theMap.insert(INT2STRING::value_type(6,"Six"));
- theMap.insert(INT2STRING::value_type(7,"Seven"));
- theMap.insert(INT2STRING::value_type(8,"Eight"));
- theMap.insert(INT2STRING::value_type(9,"Nine"));
- //下列语句将不能插入到map容器中
- theMap.insert(INT2STRING::value_type(5,"AAA"));
-
- //显示map容器的所有对象
- cout<<"theMap.begin()--theMap.end():"<<endl;
- for (theIterator=theMap.begin();theIterator!=theMap.end();++theIterator){
- cout<<(*theIterator).first;
- cout<<","<<(*theIterator).second<<" ";
- }
- cout<<endl;
-
- //按键给定的区间显示序列中的元素
- cout<<"[theMap.lower_bound(3),theMap.upper_bound(8)] :"<<endl;
- for (it=theMap.lower_bound(3);it!=theMap.upper_bound(8);it++) {
- cout<<(*it).first;
- cout<<","<<(*it).second<<" ";
- }
- cout<<endl;
-
- //显示theMap的状态信息
- cout<<"theMap.size():"<<theMap.size()<<endl;
- cout<<"theMap.max_size():"<<theMap.max_size()<<endl;
- cout<<"theMap.count(15):"<<theMap.count(15)<<endl;
-
- // 从键盘上输入数字,显示对应的字符串
- string theString = "";
- int index;
- for( ; ; )
- {
- cout << "Enter \"q\" to quit, or enter a Number: ";
- cin >> theString;
- if(theString == "q")
- break;
-
- for(index = 0; index < theString.length(); index++){
- theIterator = theMap.find(theString[index] - '0');
- if(theIterator != theMap.end() )
- cout << (*theIterator).second << " ";
- else
- cout << "[err] ";
- }
- cout << endl;
- }
- }
- #include <iostream>
- #include <string>
- #include <map>
-
- using namespace std;
-
- //创建multimap的实例,整数(int)映射字符串(string)
- typedef multimap<int, string> INT2STRING;
-
- //测试multimap容器
- void main()
- {
- //创建multimap对象theMap
- INT2STRING theMap;
- INT2STRING::iterator theIterator,it;
-
- //向theMap容器中添入数据,数字和字符串配对
- //每个元素是一个映射对
- theMap.insert(INT2STRING::value_type(90,"张卫"));
- theMap.insert(INT2STRING::value_type(85,"李华"));
- theMap.insert(INT2STRING::value_type(73,"赵明"));
- theMap.insert(INT2STRING::value_type(96,"郝名"));
-
- //显示multimap容器的所有对象
- cout<<"theMap.begin()--theMap.end():"<<endl;
- for (theIterator=theMap.begin();theIterator!=theMap.end();++theIterator){
- cout<<(*theIterator).second;
- cout<<"\t"<<(*theIterator).first<<endl;
- }
-
- //测试multimap容器key的非惟一性
- theMap.insert(INT2STRING::value_type(90,"李朋"));
- theMap.insert(INT2STRING::value_type(85,"钱德"));
- theMap.insert(INT2STRING::value_type(93,"赵刚"));
-
- //按成绩高低输出multimap容器的所有对象
- INT2STRING::reverse_iterator i;
- cout<<"theMap.rbegin()--theMap.rend():"<<endl;
- for (i=theMap.rbegin();i!=theMap.rend();++i){
- cout<<(*i).second;
- cout<<"\t"<<(*i).first<<endl;
- }
-
- //按关键给定的区间显示序列中的元素
- cout<<"[theMap.lower_bound(80),theMap.upper_bound(90)] :"<<endl;
- for (it=theMap.lower_bound(80);it!=theMap.upper_bound(90);it++) {
- cout<<(*it).second;
- cout<<"\t"<<(*it).first<<endl;
- }
-
- //显示theMap的状态信息
- cout<<"theMap.size():"<<theMap.size()<<endl;
- cout<<"theMap.max_size():"<<theMap.max_size()<<endl;
- cout<<"theMap.count(90):"<<theMap.count(90)<<endl;
-
- //清除90分以下的数据,并显示结果
- theMap.erase(theMap.lower_bound(60),theMap.upper_bound(89));
- cout<<"theMap.rbegin()--theMap.rend():"<<endl;
- for (i=theMap.rbegin();i!=theMap.rend();++i){
- cout<<(*i).second;
- cout<<"\t"<<(*i).first<<endl;
- }
- }
- #include <iostream>
- #include <valarray>
- #include <math.h>
-
- using namespace std;
-
- #define ARRAY_SIZE 3 //array size
-
- //测试valarray容器
- void main()
- {
- //创建具有3个元素的数组val_array
- valarray<double> val_array(ARRAY_SIZE);
-
- //设置数组的值为1, 4, 9
- for (int i = 0; i < ARRAY_SIZE; i++)
- val_array[i] = (i+1) * (i+1);
-
- //显示val_array数组的大小
- cout << "Size of val_array = " << val_array.size() << endl;
-
- // 显示val_array数组的值
- cout << "The values in val_array before calling sqrt() and pow():" << endl;
- for (i = 0; i < ARRAY_SIZE; i++)
- cout << val_array[i] << " ";
- cout << endl;
-
- //声明一个rev_valarray数组,其保存对数组val_array的取反
- valarray<double> rev_valarray(ARRAY_SIZE);
- for (i = 0; i < ARRAY_SIZE; i++)
- rev_valarray[i] = val_array[ARRAY_SIZE - i - 1];
-
- //显示rev_valarray数组的大小和元素
- cout << "Size of rev_valarray = " << rev_valarray.size() << endl;
- cout << "The values in rev_valarray:" << endl;
- for (i = 0; i < ARRAY_SIZE; i++)
- cout << rev_valarray[i] << " ";
- cout <<endl;
-
- // 声明rvalue_array数组,其存放调用sqrt()和pow()函数的返回值
- valarray<double> rvalue_array;
-
- //调用sqrt()函数并显示结果
- rvalue_array = sqrt(val_array);
- cout << "The result of rvalue_array after calling sqrt():" << endl;
- for (i = 0; i < ARRAY_SIZE; i++)
- cout << rvalue_array[i] << " ";
- cout <<endl;
-
- //对val_array数组元素计算幂函数并显示
- rvalue_array = pow(val_array, rev_valarray);
- cout << "The result after calling pow(val_array, rev_valarray):"
- << endl;
- for (i = 0; i < ARRAY_SIZE; i++)
- cout << rvalue_array[i] << " ";
- cout <<endl;
-
- //对val_array数组元素计算幂函数,指数均为2.0,并显示
- rvalue_array = pow(val_array, 2.0);
- cout << "The result after calling pow(val_array, 2.0):" << endl;
- for (i = 0; i < ARRAY_SIZE; i++)
- cout << rvalue_array[i] << " ";
- cout <<endl;
-
- //对2.0进行幂函数运算,指数均为数组val_array的各元素值
- rvalue_array = pow(2.0, val_array);
- cout << "The result after calling pow(2.0, val_array):" << endl;
- for (i = 0; i < ARRAY_SIZE; i++)
- cout << rvalue_array[i] << " ";
- cout <<endl;
-
- //对val_array和rvalue_array求和
- cout<<"val_array.sum()="<<val_array.sum()<<endl;
- cout<<"rvalue_array.sum()="<<rvalue_array.sum()<<endl;
-
- //求最大值并显示
- cout<<"val_array.max()="<<val_array.max()<<endl;
- cout<<"rvalue_array.max()="<<rvalue_array.max()<<endl;
- }
- #include <stack>
- #include <iostream>
-
- using namespace std ;
-
- typedef stack<int> STACK_INT;
-
- void main()
- {
- STACK_INT stack1;
- int i;
-
- //判断栈是否空
- cout << "stack1.empty() returned " <<
- (stack1.empty()? "true": "false") << endl;
-
- //0,2,4,6...入栈
- for (i=0;i<10;i=i+2)
- stack1.push(i);
-
- //top()函数
- if (!stack1.empty())
- cout << "stack1.top() returned " <<stack1.top() << endl;
-
- //计算栈的长度
- cout<<"stack1.size(): "<<stack1.size()<<endl;
-
- //改变栈顶的值 20.
- if (!stack1.empty()) {
- cout << "stack1.top()=20;" << endl;
- stack1.top()=20;
- }
-
- //弹出栈中所有的数据并显示
- cout<<"stack1: ";
- while (!stack1.empty()) {
- cout<<stack1.top()<<" ";
- stack1.pop();
- }
- cout<<endl;
- }
- #include <iostream>
- #include <list>
- #include <numeric>
-
- using namespace std;
- //创建一个list容器的实例LISTINT,其存放int型数据
- typedef list<int> LISTINT;
-
- void main(void)
- {
- //用LISTINT创建一个名为listOne的list对象
- LISTINT listOne;
- //指定i为迭代器变量
- LISTINT::iterator i;
- LISTINT::reverse_iterator ir;
-
- //从前面向listOne容器中添加数据
- listOne.push_front (2);
- listOne.push_front (1);
-
- //从后面向listOne容器中添加数据
- listOne.push_back (3);
- listOne.push_back (4);
-
- //从前向后显示listOne中的数据
- for (i = listOne.begin(); i != listOne.end(); ++i)
- cout << *i << " ";
- cout << endl;
-
- //从后向后显示listOne中的数据
- for (ir =listOne.rbegin();ir!=listOne.rend(); ++ir)
- cout << *ir << " ";
- cout << endl;
-
- //从键盘上输入数据
- for (i = listOne.begin(); i != listOne.end(); ++i) {
- cout<<"listOne :";
- cin>>(*i);
- }
-
- //从前向后显示listOne中的数据
- for (i = listOne.begin(); i != listOne.end(); ++i)
- cout << *i << " ";
- cout << endl;
-
- //bidirectional迭代器不允许加减运算
- // i=listOne.begin()+1;
- }
- #include <iostream>
- #include <iostream>
- #include <numeric>
- #include <vector>
- #include <list>
- #include <set>
-
- using namespace std;
-
- //利用类模板生成类实例
- typedef vector < int > IntArray;
- typedef list <int> LISTINT;
- typedef set<int> SET_INT;
- int add(int a, int b) {
- return a+b;
- }
- //在main()函数中测试accumulate算法
- void main ()
- {
- //--------------------------------------------
- // accumulate算法对于普通数组的计算
- //---------------------------------------------
- int x[]={1,3,5,7,9};
-
- cout<<"x[]:";
- for (int i=0;i<5;i++)
- cout<<x[i]<<" ";
- cout<<endl;
- cout<<"accumulate(x,x+5,0)=";
- cout<<accumulate(x,x+5,0)<<endl;
- int val=100;
- cout<<"val="<<val<<endl;
- cout<<"accumulate(x,x+5,val)=";
- cout<<accumulate(x,x+5,val)<<endl;
- //--------------------------------------------
- // accumulate算法对于vector容器的计算
- //---------------------------------------------
- //声明intvector容器和迭代器ii
- IntArray intvector;
- IntArray::iterator ii;
-
- //向intvector容器中插入元素
- for (i=1; i<=5; i++) {
- intvector.push_back(i);
- };
-
- //显示intvector容器中的元素值和累加结果
- cout << "intvector: "<<endl;
- for (ii=intvector.begin();ii !=intvector.end();++ii)
- cout<<(*ii)<<" ";
- cout<<endl;
- cout<<"accumulate(intvector.begin(),intvector.end(),0)=";
- cout<<accumulate(intvector.begin(),intvector.end(),0)<<endl;
- //--------------------------------------------
- // accumulate算法对于list容器的计算
- //---------------------------------------------
- //声明list容器对象和迭代器
- LISTINT::iterator iL;
- LISTINT list1;
-
- //向list1容器对象中插入元素并显示
- list1.push_front(1);
- list1.push_front(3);
- list1.push_front(5);
- list1.push_back(2);
- list1.push_back(6);
-
- //显示list1容器的元素值和累加结果
- cout << "list1: "<<endl;
- for (iL=list1.begin();iL !=list1.end();++iL)
- cout<<(*iL)<<" ";
- cout<<endl;
- cout<<"accumulate(list1.begin(),list1.end(),0)=";
- cout<<accumulate(list1.begin(),list1.end(),0)<<endl;
- //--------------------------------------------
- // accumulate算法对于set容器的计算
- //---------------------------------------------
- //声明set容器对象和迭代器
- SET_INT set1;
- SET_INT::iterator si;
-
- //向set1容器中插入元素
- set1.insert(5);
- set1.insert(20);
- set1.insert(10);
- set1.insert(15);
- set1.insert(25);
-
- //显示set1容器的元素值和累加结果
- cout <<"set1: "<<endl;
- for (si=set1.begin();si !=set1.end();++si)
- cout<<(*si)<<" ";
- cout<<endl;
- cout<<"accumulate(set1.begin(),set1.end(),0)=";
- cout<<accumulate(set1.begin(),set1.end(),0)<<endl;
- cout<<"accumulate(set1.begin(),set1.end(),100)=";
- cout<<accumulate(set1.begin(),set1.end(),100)<<endl;
- }
- #include <iostream>
- #include <algorithm>
- #include <vector>
- #include <list>
- #include <set>
- #define size 10
- using namespace std;
-
- //产生指定范围的整数随机数
- int getrand(int min,int max) {
- int m;
- m=(max-min);
- m=min+double(rand())/RAND_MAX*m ;
- return m;
- }
-
- //利用类模板生成实例
- typedef vector < int > IntArray;
- typedef list <int> LISTINT;
- typedef set<int> SET_INT;
-
- //在main()函数中测试accumulate算法
- void main ()
- {
- //--------------------------------------------
- // count算法对于普通数组的计算
- //---------------------------------------------
- int x[size];
-
- cout<<"x[]:";
- for (int i=0;i<size;i++) {
- x[i]=getrand(1,3);
- cout<<x[i]<<" ";
- }
- cout<<endl;
- cout<<"count(x,x+size,2)=";
- cout<<count(x,x+size,2)<<endl;
- cout<<"count(x+2,x+8,2)=";
- cout<<count(x+2,x+8,2)<<endl;
- //--------------------------------------------
- // count算法对于vector容器的计算
- //---------------------------------------------
- //声明intvector容器和迭代器ii
- IntArray intvector;
- IntArray::iterator ii;
-
- //向intvector容器中插入元素
- for (i=1; i<size; i++) {
- intvector.push_back(getrand(2,6));
- };
- //显示intvector容器中的元素值和统计结果
- cout << "intvector: ";
- for (ii=intvector.begin();ii !=intvector.end();++ii)
- cout<<(*ii)<<" ";
- cout<<endl;
- cout<<"count(intvector.begin(),intvector.end(),4)=";
- cout<<count(intvector.begin(),intvector.end(),4)<<endl;
- //--------------------------------------------
- // count算法对于list容器的计算
- //---------------------------------------------
- //声明list容器对象和迭代器
- LISTINT::iterator iL;
- LISTINT list1;
-
- //向list1容器对象中插入元素并显示
- for (i=1; i<size; i++) {
- list1.push_front(getrand(3,5));
- };
-
- //显示list1容器的元素值和统计结果
- cout << "list1: ";
- for (iL=list1.begin();iL !=list1.end();++iL)
- cout<<(*iL)<<" ";
- cout<<endl;
- cout<<"count(list1.begin(),list1.end(),3)=";
- cout<<count(list1.begin(),list1.end(),3)<<endl;
- //--------------------------------------------
- // count算法对于set容器的计算
- //---------------------------------------------
- //声明set容器对象和迭代器
- SET_INT set1;
- SET_INT::iterator si;
-
- //向set1容器中插入元素
- for (i=1; i<size; i++) {
- set1.insert(getrand(1,10));
- };
-
- //显示set1容器的元素值和统计结果
- cout <<"set1: ";
- for (si=set1.begin();si !=set1.end();++si)
- cout<<(*si)<<" ";
- cout<<endl;
- cout<<"count(set1.begin(),set1.end(),5)=";
- cout<<count(set1.begin(),set1.end(),5)<<endl;
- }
- #include <iostream>
- #include <algorithm>
- #include <string>
- #include <vector>
-
- using namespace std;
-
- //如果字符串以'S'开头,则返回true
- int MatchFirstChar( const string& str)
- {
- string s("S") ;
- return s == str.substr(0,1) ;
- }
-
- //测试count_if算法
- void main()
- {
- const int VECTOR_SIZE = 8 ;
-
- //生成成员类型为strings的vector容器类
- typedef vector<string > StringVector ;
-
- //定义迭代器类型
- typedef StringVector::iterator StringVectorIt ;
-
- //声明vector容器的对象
- StringVector NamesVect(VECTOR_SIZE) ;
-
- //声明迭代器
- StringVectorIt start, end, it ;
-
- int result = 0 ; // 存放统计数据
-
- //初始化vector容器NamesVect
- NamesVect[0] = "She" ;
- NamesVect[1] = "Sells" ;
- NamesVect[2] = "Sea" ;
- NamesVect[3] = "Shells" ;
- NamesVect[4] = "by" ;
- NamesVect[5] = "the" ;
- NamesVect[6] = "Sea" ;
- NamesVect[7] = "Shore" ;
-
- //设置容器的起始位置和终止位置
- start = NamesVect.begin() ;
- end = NamesVect.end() ;
-
- //显示NamesVect容器的元素
- cout << "NamesVect: " ;
- for(it = start; it != end; it++)
- cout << *it << " " ;
- cout <<endl ;
-
- //统计并显示NamesVect容器的所有元素中以'S'字符开头的字符串
- result = count_if(start, end, MatchFirstChar) ;
- cout << "Number of elements that start with letter \"S\" = "
- << result << endl ;
-
- //显示NamesVect容器[1,6]之间的元素
- cout <<"NamesVect[1]--NamesVect[6]: " ;
- for(it =&NamesVect[1]; it != &NamesVect[7]; it++)
- cout << *it << " " ;
- cout <<endl ;
-
- //统计并显示NamesVect容器的所有元素中以'S'字符开头的字符串
- result = count_if(&NamesVect[1], &NamesVect[7], MatchFirstChar) ;
- cout << "Number of elements that start with letter \"S\" = "
- << result << endl ;
- }
- #include <iostream>
- #include <algorithm>
- #include <vector>
-
- using namespace std;
- //利用类模板生成实例
- typedef vector < int > IntArray;
-
- //显示数组
- void put_array(int x[],int size) {
- for(int i=0;i<size;i++)
- cout<<x[i]<<" ";
- cout<<endl;
- }
- //显示vector容器中的元素
- void put_vector(IntArray v)
- {
- IntArray::iterator theIterator;
-
- for (theIterator=v.begin();theIterator!=v.end();++theIterator){
- cout<<(*theIterator)<<" ";
- }
- cout<<endl;
- }
-
- //在main()函数中测试fill和fill_n算法
- void main ()
- {
- //--------------------------------------------
- // fill和fill_n算法对普通数组的计算
- //---------------------------------------------
- int x[]={1,3,5,7,9};
- cout << "x[]: ";
- put_array(x,5);
- //填数处理
- fill(x+1,x+3,2);
- cout << "fill(x+1,x+3,2): "<<endl;
- put_array(x,5);
- fill_n(x,3,8);
- cout << "fill_n(x,3,8): "<<endl;
- put_array(x,5);
- //--------------------------------------------
- // fill和fill_n算法对于vector容器的计算
- //---------------------------------------------
- //声明intvector容器和迭代器ii
- IntArray intvector;
-
- //向intvector容器中插入元素
- for (int i=1; i<=10; i++) {
- intvector.push_back(i);
- };
- //显示intvector容器中的元素值和统计结果
- cout << "intvector: "<<endl;
- put_vector(intvector);
- //填数处理
- fill(intvector.begin(),intvector.begin()+3,2);
- cout << "fill(intvector.begin(),intvector.begin()+3,2): "<<endl;
- put_vector(intvector);
- fill_n(&intvector[5],3,8);
- cout << "fill_n(&intvector[5],3,8): "<<endl;
- put_vector(intvector);
- }
- #include <iostream>
- #include <algorithm>
- #include <vector>
- #define ARRAY_SIZE 10
- using namespace std;
-
- //利用类模板生成实例
- typedef vector < int > IntArray;
-
- //显示数组
- void put_array(int x[],int size) {
- for(int i=0;i<size;i++)
- cout<<x[i]<<" ";
- cout<<endl;
- }
-
- //显示vector容器中的元素
- void put_vector(IntArray v)
- {
- IntArray::iterator theIterator;
-
- for (theIterator=v.begin();theIterator!=v.end();++theIterator){
- cout<<(*theIterator)<<" ";
- }
- cout<<endl;
- }
-
- //在main()函数中测试find()算法
- void main ()
- {
- int i,value,*p;
- //--------------------------------------------
- // find()算法对于普通数组的处理
- //---------------------------------------------
- int x[ARRAY_SIZE]={1,3,5,7,9,2,4,6,8,10};
- cout << "x[]: ";
- put_array(x,ARRAY_SIZE);
-
- //find()算法查找,并显示查找结果
- for(i=0;i<=2;i++) {
- cout<<"value=";
- cin>>value;
- p=find(x,x+ARRAY_SIZE,value);
-
- if (p != x + ARRAY_SIZE) { //查到
- cout << "First element that matches " << value;
- cout<< " is at location " << p - x<< endl;
- }
- else { //未查到
- cout << "The sequence does not contain any elements";
- cout<< " with value " << value << endl ;
- }
-
- }
- //--------------------------------------------
- // find()算法对于vector容器的处理
- //---------------------------------------------
- //声明intvector容器对象
- IntArray intvector;
-
- //向intvector容器中插入元素
- for (i=1; i<=10; i++) {
- intvector.push_back(i);
- };
-
- //显示intvector容器中的元素值
- cout << "intvector: ";
- put_vector(intvector);
-
- //find()算法查找,并显示查找结果
- IntArray::iterator pos;
-
- for (i=0;i<=2;i++) {
- cout<<"value=";
- cin>>value;
- pos=find(intvector.begin(),intvector.end(),value);
- if (pos != intvector.end()) { //查到
- cout << "First element that matches " << value;
- cout<< " is at location " <<pos - intvector.begin()<< endl;
- }
- else { //未查到
- cout << "The sequence does not contain any elements";
- cout<< " with value " << value << endl ;
- }
- }
- }
- #include <iostream>
- #include <algorithm>
- #include <vector>
- #define ARRAY_SIZE 10
- using namespace std;
-
- //利用类模板生成实例
- typedef vector < int > IntArray;
-
- //显示数组
- void put_array(int x[],int size) {
- for(int i=0;i<size;i++)
- cout<<x[i]<<" ";
- }
-
- //显示vector容器中的元素
- void put_vector(IntArray v)
- {
- IntArray::iterator theIterator;
-
- for (theIterator=v.begin();theIterator!=v.end();++theIterator){
- cout<<(*theIterator)<<" ";
- }
- }
-
- //在main()函数中测试find()_end()算法
- void main ()
- {
- //--------------------------------------------
- // find_end()算法对普通数组的处理
- //---------------------------------------------
- int x[ARRAY_SIZE]={1,3,5,7,9,2,4,6,8,10};
- cout << "x[]: ";
- put_array(x,ARRAY_SIZE);
- cout<<endl;
- int y[]={5,7,9};
- cout << "y[]: ";
- put_array(y,3);
- cout<<endl;
-
- // find_end()算法查找,并显示查找结果
- int *p=find_end(x,x+ARRAY_SIZE,&y[0],&y[2]);
- if (p != x + ARRAY_SIZE) { //查到
- cout << "The first element that matches :" ;
- put_array(y,3);
- cout<< " is at location in x" << p - x<< endl;
- }
- else { //未查到
- cout << "The sequence does not contain any elements";
- cout<< " with value " ;
- put_array(&x[3],3);
- }
-
- //--------------------------------------------
- // find_end()算法对vector容器的处理
- //---------------------------------------------
- //声明intvector容器对象
- IntArray intvector;
-
- //向intvector容器中插入元素
- for (int i=1; i<=10; i++) {
- intvector.push_back(i);
- };
-
- //显示intvector容器中的元素值
- cout << "intvector: ";
- put_vector(intvector);
- cout<<endl;
-
- IntArray temp;
- temp.push_back(5);
- temp.push_back(6);
- temp.push_back(7);
- cout << "temp: ";
- put_vector(temp);
- cout<<endl;
-
- // find_end()算法查找,并显示查找结果
- IntArray::iterator pos;
- pos=find_end(intvector.begin(),intvector.end(),temp.begin(),temp.end());
-
- if (pos != intvector.end()) { //查到
- cout << "The first element that matches ";
- put_vector(temp);
- cout<< " is at location in intvector " <<pos - intvector.begin()<< endl;
- }
- else { //未查到
- cout << "The sequence does not contain any elements";
- cout<< " with value ";
- put_vector(temp);
- cout<< endl ;
- }
- }
- #include <iostream>
- #include <vector>
- #include <algorithm>
-
- using namespace std;
-
- //返回一个Fibonacci数,其由generate_n()算法调用
- int Fibonacci1(void)
- {
- static int r;
- static int f1 = 0;
- static int f2 = 1;
- r = f1 + f2 ;
- f1 = f2 ;
- f2 = r ;
- return f1 ;
- }
- //返回一个Fibonacci数,其由generate()算法调用
- int Fibonacci2(void)
- {
- static int r;
- static int f1 = 0;
- static int f2 = 1;
- r = f1 + f2 ;
- f1 = f2 ;
- f2 = r ;
- return f1 ;
- }
- //定义整型数的vector容器类
- typedef vector<int > IntVector ;
-
- //显示vector容器中的元素
- void put_vector(IntVector v,char *name)
- {
- IntVector::iterator theIterator;
- cout<<name<<":"<<endl;
- for (theIterator=v.begin();theIterator!=v.end();++theIterator){
- cout<<(*theIterator)<<" ";
- }
- cout<<endl;
- }
-
- //测试generate()和generate_n()算法
- void main()
- {
- const int VECTOR_SIZE = 15 ;
-
- //定义迭代器类
- typedef IntVector::iterator IntVectorIt ;
-
- //声明vector容器对象
- IntVector Numbers1(VECTOR_SIZE),Numbers2(VECTOR_SIZE);
- int i ;
-
- //初始化vector容器对象
- for(i = 0; i < VECTOR_SIZE; i++)
- Numbers1[i] = i ;
-
- //显示vector容器对象的元素
- cout << "Before calling generate_n:" << endl ;
- put_vector(Numbers1,"Numbers1");
-
- //利用generate_n算法用Fibonacci 数填充vector容器
- generate_n(Numbers1.begin(), VECTOR_SIZE, Fibonacci1) ;
-
- //显示vector容器对象的元素
- cout << "After calling generate_n:" << endl ;
- put_vector(Numbers1,"Numbers1");
-
- //利用generate算法用Fibonacci 数填充vector容器
- generate(Numbers2.begin(),Numbers2.end(), Fibonacci2) ;
-
- //显示vector容器对象的元素
- cout << "After calling generate:" << endl ;
- put_vector(Numbers2,"Numbers2");
- }
- #include <iostream>
- #include <algorithm>
- #include <vector>
-
- using namespace std;
-
- //利用类模板生成实例
- typedef vector < int > IntArray;
-
- //显示数组
- void put_array(int x[],int size) {
- for(int i=0;i<size;i++)
- cout<<x[i]<<" ";
- cout<<endl;
- }
-
- //显示vector容器中的元素
- void put_vector(IntArray v)
- {
- IntArray::iterator theIterator;
-
- for (theIterator=v.begin();theIterator!=v.end();++theIterator){
- cout<<(*theIterator)<<" ";
- }
- cout<<endl;
- }
-
- //在main()函数中测试reverse()和reverse_copy()算法
- void main ()
- {
- //--------------------------------------------
- // reverse()和reverse_copy()算法对普通数组处理
- //---------------------------------------------
- int x[]={1,3,5,7,9};
- cout<<"x[]:";
- put_array(x,5);
-
- //reverse()反转x数组并显示
- reverse(x,x+5);
- cout<<"x[]:";
- put_array(x,5);
-
- int y[]={2,4,6,8,10};
- cout<<"y[]:";
- put_array(y,5);
-
- //reverse_copy()反转y数组的部分元素并拷贝到x数组第2个元素位置
- reverse_copy(y+1,y+3,x+1);
- cout<<"x[]:";
- put_array(x,5);
- cout<<"y[]:";
- put_array(y,5);
- //--------------------------------------------
- // reverse()和reverse_copy()算法对vector容器的处理
- //---------------------------------------------
- //声明intvector容器和迭代器ii
- IntArray intvector;
-
- //向intvector容器中插入元素
- for (int i=1; i<=10; i++) {
- intvector.push_back(i);
- };
-
- //显示intvector容器中的元素值
- cout << "intvector: "<<endl;
- put_vector(intvector);
-
- //reverse()对于vector容器的处理
- reverse(intvector.begin(),intvector.end());
- cout << "intvector: "<<endl;
- put_vector(intvector);
-
- // reverse_copy对于vector容器的处理
- IntArray temp(5);
- reverse_copy(intvector.begin()+2,intvector.begin()+7,temp.begin());
- cout << "temp: "<<endl;
- put_vector(temp);
- }
- #include <iostream>
- #include <algorithm>
- #include <vector>
- #include <stdlib.h>
- #define ARRAY_SIZE 15
- using namespace std;
-
- //定义整型数的vector容器类
- typedef vector<int > IntVector ;
-
- //显示数组
- void put_array(int x[],int size) {
- for(int i=0;i<size;i++)
- cout<<x[i]<<" ";
- cout<<endl;
- }
-
- //显示vector容器中的元素
- void put_vector(IntVector v,char *name)
- {
- IntVector::iterator theIterator;
- cout<<name<<": ";
- for (theIterator=v.begin();theIterator!=v.end();++theIterator){
- cout<<(*theIterator)<<" ";
- }
- cout<<endl;
- }
-
- //产生指定范围的整数随机数
- int getrand(int min,int max) {
- int m;
- m=(max-min);
- m=min+double(rand())/RAND_MAX*m ;
- return m;
- }
-
- //在main()函数中测试sort()和partial_sort()算法
- void main ()
- {
- int i;
- //--------------------------------------------
- // sort()和partial_sort()算法对普通数组处理
- //---------------------------------------------
- //sort()算法处理数组,并显示
- int x[ARRAY_SIZE];
- for (i=0;i<ARRAY_SIZE;i++) {
- x[i]=getrand(1,20);
- }
- cout<<"x[]:";
- put_array(x,ARRAY_SIZE);
- sort(x,x+ARRAY_SIZE);
- cout<<"sort(x,x+ARRAY_SIZE):"<<endl;
- put_array(x,ARRAY_SIZE);
-
- //partial_sort()算法对于数组进行处理
- int y[ARRAY_SIZE];
- for (i=0;i<ARRAY_SIZE;i++) {
- y[i]=getrand(1,30) ;
- }
- cout<<"y[]:";
- put_array(y,ARRAY_SIZE);
- partial_sort(y+2,y+7,y+ARRAY_SIZE);
- cout<<"partial_sort(y+2,y+7,y+ARRAY_SIZE):"<<endl;
- put_array(y,ARRAY_SIZE);
- //--------------------------------------------
- // sort()和partial_sort()算法对vector容器的处理
- //---------------------------------------------
- IntVector Numbers1,Numbers2;
- for(i=0;i<15;i++) {
- Numbers1.push_back(getrand(1,30));
- Numbers2.push_back(getrand(1,30));
- }
- put_vector(Numbers1,"Numbers1");
- put_vector(Numbers2,"Numbers2");
-
- //sort()算法处理并显示
- sort(Numbers1.begin(),Numbers1.end());
- cout<<"After call sort():"<<endl;
- put_vector(Numbers1,"Numbers1");
-
- //partial_sort()算法处理并显示
- partial_sort(Numbers2.begin()+2,Numbers2.begin()+7,Numbers2.end());
- cout<<"After call partial_sort():"<<endl;
- put_vector(Numbers2,"Numbers2");
- }
- #include <iostream>
- #include <algorithm>
- #include <stdlib.h>
- #include <time.h>
-
- #define ARRAY_SIZE 15
- using namespace std;
-
- //显示数组
- void put_array(int x[],int size) {
- for(int i=0;i<size;i++)
- cout<<x[i]<<" ";
- cout<<endl;
- }
-
- //产生指定范围的整数随机数
- int getrand(int min,int max) {
- int m;
- m=(max-min);
- m=min+double(rand())/RAND_MAX*m ;
- return m;
- }
- //在main()函数中测试max_element()和 min_element()算法
- void main ()
- {
- //声明变量和数组
- int i;
- int x[ARRAY_SIZE];
-
- //用1到100的随机数初始化数组,并显示
- srand( (unsigned)time( NULL ) );
- for (i=0;i<ARRAY_SIZE;i++) {
- x[i]=getrand(1,100);
- }
- cout<<"x[]:";
- put_array(x,ARRAY_SIZE);
-
- //对数组x使用max_element()算法,并显示
- int *pMax=max_element(x,x+ARRAY_SIZE);
- cout<<"pMax ="<<pMax<<endl;
- cout<<"Location="<<(pMax-x)<<endl;
- cout<<"*pMax ="<<(*pMax)<<endl;
-
- //对数组x使用min_element()算法,并显示
- int *pMin=min_element(x,x+ARRAY_SIZE);
- cout<<"pMin ="<<pMin<<endl;
- cout<<"Location="<<(pMin-x)<<endl;
- cout<<"*pMin ="<<(*pMin)<<endl;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。