c++ 例题.docx

上传人:b****6 文档编号:13347451 上传时间:2023-06-13 格式:DOCX 页数:159 大小:67.85KB
下载 相关 举报
c++ 例题.docx_第1页
第1页 / 共159页
c++ 例题.docx_第2页
第2页 / 共159页
c++ 例题.docx_第3页
第3页 / 共159页
c++ 例题.docx_第4页
第4页 / 共159页
c++ 例题.docx_第5页
第5页 / 共159页
c++ 例题.docx_第6页
第6页 / 共159页
c++ 例题.docx_第7页
第7页 / 共159页
c++ 例题.docx_第8页
第8页 / 共159页
c++ 例题.docx_第9页
第9页 / 共159页
c++ 例题.docx_第10页
第10页 / 共159页
c++ 例题.docx_第11页
第11页 / 共159页
c++ 例题.docx_第12页
第12页 / 共159页
c++ 例题.docx_第13页
第13页 / 共159页
c++ 例题.docx_第14页
第14页 / 共159页
c++ 例题.docx_第15页
第15页 / 共159页
c++ 例题.docx_第16页
第16页 / 共159页
c++ 例题.docx_第17页
第17页 / 共159页
c++ 例题.docx_第18页
第18页 / 共159页
c++ 例题.docx_第19页
第19页 / 共159页
c++ 例题.docx_第20页
第20页 / 共159页
亲,该文档总共159页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c++ 例题.docx

《c++ 例题.docx》由会员分享,可在线阅读,更多相关《c++ 例题.docx(159页珍藏版)》请在冰点文库上搜索。

c++ 例题.docx

c++例题

第一章

例1.1输出一行字符:

“ThisisaC++program.”。

程序如下:

#include//包含头文件iostream

usingnamespacestd;//使用命名空间std

intmain()

{

cout<<"ThisisaC++program.";

return0;

}

例1.2求a和b两个数之和。

可以写出以下程序:

//求两数之和(本行是注释行)

#include//预处理命令

usingnamespacestd;//使用命名空间std

intmain()//主函数首部

{//函数体开始

inta,b,sum;//定义变量

cin>>a>>b;//输入语句

sum=a+b;//赋值语句

cout<<"a+b="<

return0;//如程序正常结束,向操作系统返回一个零值

}//函数结束

例1.3给两个数x和y,求两数中的大者。

在本例中包含两个函数。

#include//预处理命令

usingnamespacestd;

intmax(intx,inty)//定义max函数,函数值为整型,形式参数x,y为整型

{//max函数体开始

intz;//变量声明,定义本函数中用到的变量z为整型

if(x>y)z=x;//if语句,如果x>y,则将x的值赋给z

elsez=y;//否则,将y的值赋给z

return(z);//将z的值返回,通过max带回调用处

}//max函数结束

intmain()//主函数

{//主函数体开始

inta,b,m;//变量声明

cin>>a>>b;//输入变量a和b的值

m=max(a,b);//调用max函数,将得到的值赋给m

cout<<"max="<

return0;//如程序正常结束,向操作系统返回一个零值

}

例1.4包含类的C++程序。

#include//预处理命令

usingnamespacestd;

classStudent//声明一个类,类名为Student

{private:

//以下为类中的私有部分

intnum;//私有变量num

intscore;//私有变量score

public:

//以下为类中的公用部分

voidsetdata()//定义公用函数setdata

{cin>>num;//输入num的值

cin>>score;//输入score的值

}

voiddisplay()//定义公用函数display

{cout<<"num="<

cout<<"score="<

};

};//类的声明结束

Studentstud1,stud2;//定义stud1和stud2为Student类的变量,称为对象

intmain()//主函数首部

{stud1.setdata();//调用对象stud1的setdata函数

stud2.setdata();//调用对象stud2的setdata函数

stud1.display();//调用对象stud1的display函数

stud2.display();//调用对象stud2的display函数

return0;

}

第二章

例2.1将字符赋给整型变量。

#include

usingnamespacestd;

intmain()

{inti,j;//i和j是整型变量

i='A';//将一个字符常量赋给整型变量i

j='B';//将一个字符常量赋给整型变量j

cout<

return0;

例2.2字符数据与整数进行算术运算。

下面程序的作用是将小写字母转换为大写字母。

#include

usingnamespacestd;

intmain()

{charc1,c2;

c1='a';

c2='b';

c1=c1-32;

c2=c2-32;

cout<

return0;

}

例2.3符号常量的使用。

#definePRICE30//注意这不是语句,末尾不要加分号

intmain()

{intnum,total;

num=10;

total=num*PRICE;

cout<<"total="<

return0;

}

例2.4强制类型转换。

#include

usingnamespacestd;

intmain()

{floatx;

inti;

x=3.6;

i=(int)x;

cout<<"x="<

return0;

}

例2.5将有符号数据传送给无符号变量。

#include

usingnamespacestd;

intmain()

{unsignedshorta;

shortintb=-1;

a=b;

cout<<"a="<

return0;

}

第三章

例3.1各行小数点对齐。

#include

#include

usingnamespacestd;

intmain()

{

doublea=123.456,b=3.14159,c=-3214.67;

cout<

(2);

cout<

cout<

cout<

return0;

}

例3.10求1+2+3+…+100。

用流程图表示算法,见图3.10。

根据流程图写出程序:

#include

usingnamespacestd;

intmain()

{inti=1,sum=0;

while(i<=100)

{sum=sum+i;

i++;

}

cout<<"sum="<

}

例3.11用do-while语句求1+2+3+…+100。

先画出流程图,见图3.12。

可编写出下面的程序:

#include

usingnamespacestd;

intmain()

{inti=1,sum=0;

do

{sum=sum+i;

i++;

}while(i<=100);

cout<<"sum="<

return0;

}

例3.12用下面公式求π的近似值。

π/4≈1-1/3+1/5-1/7+…直到最后一项的绝对值小于10的-7次方为止。

根据给定的算法很容易编写程序如下:

#include

#include

#include

usingnamespacestd;

intmain()

{ints=1;

doublen=1,t=1,pi=0;

while((fabs(t))>1e-7)

{pi=pi+t;

n=n+2;

s=-s;

t=s/n;

}

pi=pi*4;

cout<<"pi="<

return0;

}

例3.13求Fibonacci数列前40个数。

这个数列有如下特点:

第1、2个数为1、1。

从第3个数开始,每个数是其前面两个数之和。

F1=1(n=1)

F2=1(n=2)

Fn=Fn-1+Fn-2(n≥3)

这是一个有趣的古典数学问题:

有一对兔子,从出生后第3个月起每个月都生一对兔子。

小兔子长到第3个月后每个月又生一对兔子。

假设所有兔子都不死,问每个月的兔子总数为多少?

可以从书中表3.4看出兔子数的规律。

根据给出的每月兔子总数的关系,可以编写程序如下:

#include

#include

usingnamespacestd;

intmain()

{longf1,f2;

inti;

f1=f2=1;

for(i=1;i<=20;i++)

{cout<

//设备输出字段宽度为12,每次输出两个数

if(i%2==0)cout<

//每输出完4个数后换行,使每行输出4个数

f1=f1+f2;

//左边的f1代表第3个数,是第1、2个数之和

f2=f2+f1;

//左边的f2代表第4个数,是第2、3个数之和

}

return0;

}

例3.14找出100~200间的全部素数。

编写程序如下:

#include

#include

#include

usingnamespacestd;

intmain()

{intm,k,i,n=0;

boolprime;//定义布尔变量prime

for(m=101;m<=200;m=m+2)//判别m是否为素数,m由101变化到200,增量为2

{prime=true;//循环开始时设prime为真,即先认为m为素数

k=int(sqrt(m));//用k代表根号m的整数部分

for(i=2;i<=k;i++)//此循环的作用是将m被2~根号m除,检查是否能整除

if(m%i==0)//如果能整除,表示m不是素数

{prime=false;//使prime变为假

break;//终止执行本循环

}

if(prime)//如果m为素数

{cout<

n=n+1;//n用来累计输出素数的个数

}

if(n%10==0)cout<

}

cout<

return0;

}

例3.15译密码。

为使电文保密,往往按一定规律将电文转换成密码,收报人再按约定的规律将其译回原文。

例如,可以按以下规律将电文变成密码:

将字母A变成字母E,a变成e,即变成其后的第4个字母,W变成A,X变成B,Y变成C,Z变成D。

见图3.20。

字母按上述规律转换,非字母字符不变。

如"Wonderful!

"转换为"Asrhivjyp!

"。

输入一行字符,要求输出其相应的密码。

图3.20

程序如下:

#include

usingnamespacestd;

intmain()

{charc;

while((c=getchar())!

='\n')

{if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))

{c=c+4;

if(c>'Z'&&c<='Z'+4||c>'z')c=c-26;

}

cout<

}

cout<

return0;

}

例3.2输出单个字符。

#include//或者包含头文件stdio.h:

#include

usingnamespacestd;

intmain()

{chara,b,c;

a='B';b='O';c='Y';

putchar(a);putchar(b);putchar(c);putchar('\n');

putchar(66);putchar(79);putchar(89);putchar(10);

return0;

}

例3.3输入单个字符。

#include

usingnamespacestd;

intmain()

{charc;

c=getchar();putchar(c+32);putchar('\n');

return0;

}

例3.4用scanf和printf函数进行输入和输出。

#include

usingnamespacestd;

intmain()

{inta;floatb;charc;

scanf("%d%c%f",&a,&c,&b);//注意在变量名前要加地址运算符&

printf("a=%d,b=%f,c=%c\n",a,b,c);

return0;

}

例3.5求一元二次方程式ax2+bx+c=0的根。

a,b,c的值在运行时由键盘输入,它们的值满足b2-4ac≥0。

根据求x1,x2的算法。

它可以编写出以下C++程序:

#include

#include//由于程序要用到数学函数sqrt,故应包含头文件cmath

usingnamespacestd;

intmain()

{floata,b,c,x1,x2;

cin>>a>>b>>c;

x1=(-b+sqrt(b*b-4*a*c))/(2*a);

x2=(-b-sqrt(b*b-4*a*c))/(2*a);

cout<<"x1="<

cout<<"x2="<

return0;

}

例3.6求三角形的面积。

#include

#include//使用数学函数时要包含头文件cmath

#include//使用I/O流控制符要包含头文件iomanip

usingnamespacestd;

intmain()

{

doublea,b,c;

cout<<"pleaseentera,b,c:

";

cin>>a>>b>>c;

if(a+b>c&&b+c>a&&c+a>b)

{//复合语句开始

doubles,area;//在复合语句内定义变量

s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));

cout<

cout<<"area="<

}//复合语句结束

elsecout<<"itisnotatrilateral!

"<

return0;

}

例3.7输入一个字符,判别它是否为大写字母,如果是,将它转换成小写字母;如果不是,不转换。

然后输出最后得到的字符。

#include

usingnamespacestd;

intmain()

{

charch;

cin>>ch;

ch=(ch>='A'&&ch<='Z')?

(ch+32):

ch;//判别ch是否大写字母,是则转换

cout<

return0;

}

例3.8编写程序,判断某一年是否为闰年。

#include

usingnamespacestd;

intmain()

{intyear;

boolleap;

cout<<"pleaseenteryear:

";//输出提示

cin>>year;//输入年份

if(year%4==0)//年份能被4整除

{if(year%100==0)//年份能被4整除又能被100整除

{if(year%400==0)//年份能被4整除又能被400整除

leap=true;//闰年,令leap=true(真)

elseleap=false;}//非闰年,令leap=false(假)

else//年份能被4整除但不能被100整除肯定是闰年

leap=true;}//是闰年,令leap=true

else//年份不能被4整除肯定不是闰年

leap=false;//若为非闰年,令leap=false

if(leap)

cout<

else

cout<

cout<<"aleapyear."<

return0;

}

例3.9运输公司对用户计算运费。

路程(s)越远,每公里运费越低。

标准如下:

s<250km没有折扣

250≤s<5002%折扣

500≤s<10005%折扣

1000≤s<20008%折扣

2000≤s<300010%折扣

3000≤s15%折扣

设每公里每吨货物的基本运费为p(price的缩写),货物重为w(wright的缩写),距离为s,折扣为d(discount的缩写),则总运费f(freight的缩写)的计算公式为

f=p*w*s*(1-d)

图3.8

据此写出程序如下:

#include

usingnamespacestd;

intmain()

{intc,s;

floatp,w,d,f;

cout<<"pleaseenterp,w,s:

";

cin>>p>>w>>s;

if(s>=3000)c=12;

elsec=s/250;

switch(c)

{case0:

d=0;break;

case1:

d=2;break;

case2:

case3:

d=5;break;

case4:

case5:

case6:

case7:

d=8;break;

case8:

case9:

case10:

case11:

d=10;break;

case12:

d=15;break;

}

f=p*w*s*(1-d/100.0);

cout<<"freight="<

return0;

}

第四章

例4.1在主函数中调用其他函数。

#include

usingnamespacestd;

voidprintstar(void)//定义printstar函数

{

cout<<"******************************"<

}

voidprint_message(void)//定义print_message函数

{

cout<<"WelcometoC++!

"<

}

intmain(void)

{

printstar();//调用printstar函数

print_message();//调用print_message函数

printstar();//调用printstar函数

return0;

}

例4.10有5个人坐在一起,问第5个人多少岁?

他说比第4个人大两岁。

问第4个人岁数,他说比第3个人大两岁。

问第3个人,又说比第2个人大两岁。

问第2个人,说比第1个人大两岁。

最后问第1个人,他说是10岁。

请问第5个人多大?

可以写出以下C++程序,其中的age函数用来实现上述递归过程。

#include

usingnamespacestd;

intage(int);//函数声明

intmain()//主函数

{cout<

return0;

}

intage(intn)//求年龄的递归函数

{intc;//用c作为存放年龄的变量

if(n==1)c=10;//当n=1时,年龄为10

elsec=age(n-1)+2;//当n>1时,此人年龄是他前一个人的年龄加2

returnc;//将年龄值带回主函数

}

例4.11用递归方法求n!

有了例4.10的基础,很容易写出本题的程序:

#include

usingnamespacestd;

longfac(int);//函数声明

intmain()

{intn;//n为需要求阶乘的整数

longy;//y为存放n!

的变量

cout<<"pleaseinputaninteger:

";//输入的提示

cin>>n;//输入n

y=fac(n);//调用fac函数以求n!

cout<

="<

的值

return0;

}

longfac(intn)//递归函数

{longf;

if(n<0)

{cout<<"n<0,dataerror!

"<

f=-1;}

elseif(n==0||n==1)f=1;//0!

和1!

的值为1

elsef=fac(n-1)*n;//n>1时,进行递归调用

returnf;//将f的值作为函数值返回

}

例4.12静态局部变量的值。

#include

usingnamespacestd;

intf(inta)//定义f函数,a为形参

{autointb=0;//定义b为自动变量

staticintc=3;//定义c为静态局部变量

b=b+1;

c=c+1;

returna+b+c;

}

intmain()

{inta=2,i;

for(i=0;i<3;i++)

cout<

cout<

return0;

}

例4.13输出1~5的阶乘值(即1!

2!

3!

4!

5!

)。

#include

usingnamespacestd;

intfac(int);//函数声明

intmain()

{inti;

for(i=1;i<=5;i++)

cout<

="<

return0;

}

intfac(intn)

{staticintf=1;//f为静态局部变量,函数结束时f的值不释放

f=f*n;//在f原值基础上乘以n

ret

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2