C++程序设计基础程序源代码.docx

上传人:b****4 文档编号:11560114 上传时间:2023-03-19 格式:DOCX 页数:102 大小:47.20KB
下载 相关 举报
C++程序设计基础程序源代码.docx_第1页
第1页 / 共102页
C++程序设计基础程序源代码.docx_第2页
第2页 / 共102页
C++程序设计基础程序源代码.docx_第3页
第3页 / 共102页
C++程序设计基础程序源代码.docx_第4页
第4页 / 共102页
C++程序设计基础程序源代码.docx_第5页
第5页 / 共102页
点击查看更多>>
下载资源
资源描述

C++程序设计基础程序源代码.docx

《C++程序设计基础程序源代码.docx》由会员分享,可在线阅读,更多相关《C++程序设计基础程序源代码.docx(102页珍藏版)》请在冰豆网上搜索。

C++程序设计基础程序源代码.docx

C++程序设计基础程序源代码

《C++程序设计基础》例题电子稿

第一章

【例1.1】一个简单的控制台程序

#include

usingnamespacestd

intmain()

{

cout<<"Hello,World!

"<

return0;

}

第二章

【例2.1】一个简单的C++程序

#include

usingnamespacestd;

intmain()

{

cout<<"欢迎学习VisualStudioC++2005!

";

return0;

}

第三章

【例3.1】输入一个年份,判断是否为闰年。

分析:

假定年份为year,闰年的条件是:

year%4==0&&year%100!

=0||year%400==0。

#include

usingnamespacestd;

voidmain(){

intyear;

cout<<"输入年份:

"<

cin>>year;

if(year%4==0&&year%100!

=0||year%400==0)cout<

elsecout<

}

【例3.2】从键盘上输入三个整数,输出其中的最大数。

分析:

读入三个数,先求出两个数中较大者,再将该大数与第三个数比较,求出最大数。

#include

usingnamespacestd;

voidmain(){

inta,b,c,max;

cout<<"输入三个整数:

";

cin>>a>>b>>c;

cout<<"a="<

if(a>b)max=a;

elsemax=b;

cout<<"最大数为:

";

if(c>max)cout<

elsecout<

}

【例3.3】用嵌套if语句完成【例3.2】的任务。

方法1:

采用第二种嵌套形式

#include

usingnamespacestd;

voidmain(){

inta,b,c,max;

cout<<"输入三个整数:

";

cin>>a>>b>>c;

cout<<"a="<

if(a>b)if(a>c)max=a;//a>b且a>c

elsemax=c;//a>b且a

elseif(b>c)max=b;//b>=a且b>c

elsemax=c;//b>=a且b

cout<<"最大数为:

max="<

}

方法2:

采用第一种嵌套形式

#include

usingnamespacestd;

voidmain(){

inta,b,c,max;

cout<<"输入三个整数:

";

cin>>a>>b>>c;

cout<<"a="<

if(a>b&&a>c)max=a;

elseif(b>a&&b>c)max=b;

elsemax=c;

cout<<"最大数为:

max="<

}

【例3.4】某商场优惠活动规定,某商品一次购买5件以上(包含5件)10件以下(不包含10件)打9折,一次购买10件以上(包含10件)打8折。

设计程序根据单价和客户的购买量计算总价。

#include

usingnamespacestd;

voidmain(){

floatprice,discount,amount;//单价、折扣、总价

intcount;//购买件数

cout<<"输入单价:

"<

cin>>price;

cout<<"输入购买件数:

"<

cin>>count;

if(count<5)discount=1;

elseif(count<10)discount=0.9;

elsediscount=0.8;

amount=price*count*discount;

cout<<"单价:

"<

cout<<"购买件数:

"<

"<

cout<<"总价:

"<

}

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

其中系数a(a≠0)、b、c的值由键盘输入。

#include

#include

usingnamespacestd;

voidmain(){

floata,b,c;

floatdelta,x1,x2;

constfloatzero=0.0001;//定义一个很小的常数

cout<<"输入三个系数a(a!

=0),b,c:

"<

cin>>a>>b>>c;

cout<<"a="<

delta=b*b-4*a*c;

if(fabs(delta)

cout<<"方程有两个相同实根:

";

cout<<"x1=x2="<<-b/(2*a)<

}

elseif(delta>0){

delta=sqrt(delta);

x1=(-b+delta)/(2*a);

x2=(-b-delta)/(2*a);

cout<<"方程有两个不同实根:

";

cout<<"x1="<

}

else//delta<0

cout<<"方程无实根!

"<

}

【例3.6】运输公司对所运货物实行分段计费。

#include

#include

usingnamespacestd;

voidmain(){

intc,s;

floatp,w,d,f;

cout<<"输入运输单价p,重量w和里程s:

"<

cin>>p>>w>>s;

c=s/250;

switch(c){

case0:

d=0;break;

case1:

d=0.02;break;

case2:

case3:

d=0.05;break;

case4:

case5:

case6:

case7:

d=0.08;break;

case8:

case9:

case10:

case11:

d=0.1;break;

default:

d=0.15;

}

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

cout<<"运输单价:

"<

"<

"<

cout<<"折扣:

"<

cout<<"运费:

"<

}

【例3.7】设计一个计算器程序,实现加、减、乘、除运算。

#include

usingnamespacestd;

voidmain(){

floatnum1,num2;

charop;

cout<<"输入操作数1,运算符,操作数2:

"<

cin>>num1>>op>>num2;

switch(op){

case'+':

cout<

case'-':

cout<

case'*':

cout<

case'/':

cout<

default:

cout<

";

}

}

【例3.8】这是一个古罗马数学家伦纳德×斐波那契提出的有趣的问题。

#include

#include

usingnamespacestd;

constintm=20;

voidmain(){

intfib0=0,fib1=1,fib2;

cout<

for(intn=3;n<=m;n++){

fib2=fib0+fib1;

cout<

if(n%5==0)cout<

fib0=fib1;fib1=fib2;

}

}

【例3.9】输入一个不超过9位的整数,将其反向后输出。

例如输入247,变成742输出。

#include

usingnamespacestd;

voidmain(){

intnum,subscript;

intdigit[9];

cout<<"输入一个整数:

"<

cin>>num;

cout<<"原来整数为:

"<

subscript=0;//数组下标初值

do{

digit[subscript]=num%10;

num=num/10;

subscript++;//修改下标

}while(num>0);

for(inti=0;i

num=num*10+digit[i];

cout<<"反向后整数为:

"<

}

【例3.10】用迭代法求

的近似值。

求平方根的迭代公式为:

#include

#include

usingnamespacestd;

voidmain(){

floatx0,x1,a;

cout<<"输入一个正数:

"<

cin>>a;

if(a<0)cout<

"<

else{//有实数解的情况

x1=a/2;//x1用作保存结果

do{

x0=x1;

x1=(x0+a/x0)/2;

}while(fabs(x1-x0)>=1e-5);

cout<

"<

}

}

【例3.11】输入一段文本,统计文本的行数、单词数及字符数。

假定单词之间以空格或跳格或换行符间隔,假定文本没有空行。

#include

usingnamespacestd;

voidmain(){

charch;

intnline=0,nword=0,nch=0;

intisword=0;

cout<<"输入一段文本(无空行):

"<

do{

ch=cin.get();

if(ch=='\n')nline++;//遇换行符行数+1

if(ch!

=''&&ch!

='\t'&&ch!

='\n'&&ch!

=EOF){//读到非间隔符

if(!

isword)nword++;//在单词的起始处给单词数+1

nch++;//字符数加+1

isword=1;

}

elseisword=0;//读到间隔符

}while(ch!

=EOF);//读到文本结束符为止

cout<<"行数:

"<

cout<<"单词数:

"<

cout<<"字符数:

"<

}

【例3.12】计算1+2+3+…+100的值。

#include

constintn=100;//采用常变量有利于修改程序

voidmain(){

inti=1,sum=0;//循环初始条件

while(i<=n){

sum+=i;

i++;//修改循环条件

}

cout<<"sum="<

}

【例3.13】给定正整数m,判定其是否为素数。

#include

#include

usingnamespacestd;

voidmain(){

intm,i,k;

cout<<"输入整数m:

"<

cin>>m;

if(m==2)cout<

else{

k=sqrt(m);

for(i=2;i<=k;i++)if(m%i==0)break;//只要有一个整除,就可停止

if(i>k)cout<

elsecout<

}

}

第四章

【例4.1】从键盘上输入一组数据,并按相反的顺序打印出来。

#include

usingnamespacestd;

voidmain()

{inti,a[10];

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

cin>>a[i];

for(i=9;i>=0;i--)

cout<

cout<

}

【例4.2】利用随机函数求一组数中的最大值及其位置。

#include

#include//调用系统时间

#include//调用随机数的函数

usingnamespacestd;

voidmain()

{inti,max,k,a[10];

srand((unsigned)time(0));//使每次产生的随机数不同

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

a[i]=rand()%1000;//保证产生的随机数在1000以内

max=a[0];

k=0;

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

if(a[i]>max){max=a[i],k=i;}

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

cout<

cout<

cout<<"Thelocationofthemaximumis:

"<

"<

cout<

}

【例4.3】输出数列中的前10项:

1,1,2,3,5,8,13,…….

#include

usingnamespacestd;

voidmain()

{inti,a[10];

a[0]=1;a[1]=1;

for(i=2;i<10;i++)

a[i]=a[i-1]+a[i-2];

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

cout<

cout<

}

【例4.4】求n×n矩阵中主对角线元素的乘积。

#include

usingnamespacestd;

constintn=4;

voidmain()

{inti,j,a[n][n];

intp=1;//初始化主对角线乘积变量

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

for(j=0;j<4;j++)

cin>>a[i][j];

for(i=0;i<4;i++)//求主对角线元素的乘积

p*=a[i][i];

cout<<"主对角线元素的乘积是"<

cout<

}

【例4.5】在一次选举学生会主席的大会上,有5名候选人,分别用1,2,3,4,5代表每位候选人的号码,统计出每人的得票数。

用-1作为终止输入的标志。

程序如下:

#include

usingnamespacestd;

voidmain()

{inti,a[6]={0};

cout<<"请输入每张票上所投候选人的代号";

cin>>i;

while(i!

=-1){

if(i>=1&&i<=5)a[i]++;

cin>>i;}

cout<

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

cout<

"<

}

【例4.6】某社区对居民用电情况进行统计,每隔50度为一个统计区域,当大于等于500度时不再统计,编一程序,分别统计各用电区间内的居民数。

include

usingnamespacestd;

constintn=100;

voidmain()

{inta[11]={0};

inti,x;

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

{cin>>x;

if(x<500)a[x/50]++;

elsea[10]++;

}

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

cout<<"a["<

}

【例4.7】已知有10个整数,采用选择法将这10个数按从小到大的顺序打印输出。

选择法排序:

#include

usingnamespacestd;

voidmain()

{inta[10]={33,61,43,74,86,92,11,35,64,25};

inti,j,k;

for(i=1;i<10;i++)//外循环控制次数

{k=i-1;//外循环每一遍时最小值的位置

for(j=i-1;j<10;j++)//外循环每一遍时需要比较数据的次数

if(a[j]

intx=a[i-1];a[i-1]=a[k];a[k]=x;将当前数与最小值互换

}

for(inti=0;i<10;i++)cout<

cout<

}

2.冒泡法排序:

【例4.8】有一组整数,采用冒泡法将这10个数按从小到大的顺序打印输出。

#include

usingnamespacestd;

constintn=10;

voidmain()

{inta[n];

inti,j,x;

for(i=1;i

for(j=0;j

if(a[j]>a[j+1]){x=a[j];a[j]=a[j+1];a[j+1]=x;}

for(inti=0;i

cout<

}

【例4.9】用插入法对上例中的数据进行排序

#include

usingnamespacestd;

voidmain()

{inta[10]={33,61,43,74,86,92,11,35,64,25};

inti,j,x;

for(i=1;i<10;i++)//外循环控制遍历次数,n个数从第2个数开始到最后进行n-1次插入

{x=a[i];//将待插入的数暂存于变量x中

for(j=i-1;j>=0&&x

a[j+1]=a[j];//若找到插入位置,则元素后移一个位置

a[j+1]=x;//找到插入位置,完成插入

}

for(inti=0;i<10;i++)cout<

cout<

}

【例4.10】在一组整数42,55,73,28,48,66,30,65,94,72中,查找数据为65的数据,并给出查找结果。

#include

usingnamespacestd;

voidmain()

{constintn=10;

inti,a[n]={42,55,73,28,48,66,30,65,94,72};

intx=65;

for(i=0;i

if(x==a[i]){cout<<"查找"<

"<

if(i>=n)cout<<"查找"<

}

【例4.11】假定一维数组中的n个元素是一个从小到大顺序排列的有序表,编一程序从a中用二分法查法,找出其值等于给定值为key的元素。

#include

usingnamespacestd;

constintn=10;

voidmain()

{inta[n]={15,26,37,45,48,52,60,66,73,90};

intkey=80;

intlow=0,high=n-1;intmid;

while(low<=high)

{mid=(low+high)/2;

if(key==a[mid]){cout<<"二分查找"<

elseif(key

elselow=mid+1;

}

if(key!

=a[mid])cout<<"二分查找"<

}

【例4.12】对学生期末考试成绩进行处理,统计每一位学生的平均成绩和每门课程的平均成绩(保留小数一位小数)

#include

#include//使用格式函数setw(n)

usingnamespacestd;

constintn=10,m=5;//定义10人,5门课

voidmain()

{inta[n][m];

doubleb[n]={0},c[m]={0};//初始化平均值变量

inti,j,sum1,sum2;//sum1,sum2分别表示每行的和,每列的和

for(i=0;i

for(j=0;j

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1