C++习题Word格式文档下载.docx

上传人:b****1 文档编号:1478203 上传时间:2023-04-30 格式:DOCX 页数:16 大小:18.64KB
下载 相关 举报
C++习题Word格式文档下载.docx_第1页
第1页 / 共16页
C++习题Word格式文档下载.docx_第2页
第2页 / 共16页
C++习题Word格式文档下载.docx_第3页
第3页 / 共16页
C++习题Word格式文档下载.docx_第4页
第4页 / 共16页
C++习题Word格式文档下载.docx_第5页
第5页 / 共16页
C++习题Word格式文档下载.docx_第6页
第6页 / 共16页
C++习题Word格式文档下载.docx_第7页
第7页 / 共16页
C++习题Word格式文档下载.docx_第8页
第8页 / 共16页
C++习题Word格式文档下载.docx_第9页
第9页 / 共16页
C++习题Word格式文档下载.docx_第10页
第10页 / 共16页
C++习题Word格式文档下载.docx_第11页
第11页 / 共16页
C++习题Word格式文档下载.docx_第12页
第12页 / 共16页
C++习题Word格式文档下载.docx_第13页
第13页 / 共16页
C++习题Word格式文档下载.docx_第14页
第14页 / 共16页
C++习题Word格式文档下载.docx_第15页
第15页 / 共16页
C++习题Word格式文档下载.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C++习题Word格式文档下载.docx

《C++习题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++习题Word格式文档下载.docx(16页珍藏版)》请在冰点文库上搜索。

C++习题Word格式文档下载.docx

#include<

voidmain()

{

intsum=0;

//sum变量为3的倍数的和

for(inti=1;

=100;

if(i%3==0)//判断i是否是3的倍数

sum+=i;

1到100中所有3的倍数的数的和为:

sum<

3.//用户输入一些整数,该程序分别计算出所有奇数和所有偶数之和,并输出它们。

intsum_odd=0;

//变量为所有奇数的和

intsum_even=0;

//变量为所有偶数的和

intb;

//变量为输入的数字

intN;

//变量为数字个数

输入数字的总的个数为"

;

cin>

>

N;

请输入数字(数字以空格隔开)"

for(inti=0;

cin>

b;

if(b%2==0)//判断数字是否为偶数

sum_even+=b;

else

sum_odd+=b;

所有奇数的和为"

sum_odd<

所有偶数的和为"

sum_even<

4.//输入4个字母,并反向显示这些字母。

chara[4];

//输入4个字符

请输入4个字符:

4;

a[i];

反向输出4个字符为:

for(i=3;

i>

=0;

i--)

cout<

5.//求1!

+2!

+…+50!

intsum1=1;

//记录i!

的结果

intsum2=0;

累加的结果

for(inti=1;

=50;

for(intj=1;

=i;

j++)//计算i!

sum1*=j;

sum2+=sum1;

1!

="

sum2<

6.//编写程序求一元二次方程ax*x+bx+c=0的解。

math.h>

floata,b,c;

//方程的系数

floats1,s2;

//解

floattemp;

Inputa,b,c:

a>

b>

c;

if(a==0)

不是一元二次方程!

}else

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

if(temp<

0)//无根的情况

cout<

无实根!

elseif(temp==0)//只有一个实根的情况

{

s1=-b/(2*a);

方程有一个实根,为"

s1<

}

else//两个实根的情况

s1=(-b+sqrt(temp))/(2*a);

s2=(-b-sqrt(temp))/(2*a);

方程有两个实根,为"

和"

s2<

7.//编写程序,由用户输入x值,计算函数值并输出y。

函数如书中所示:

intx,y;

InputX(int):

x;

if(x<

0)//x<

0的情况

y=x;

elseif(x>

10)//x>

10的情况

y=4*x*x*x-x*x;

else//其余的情况

y=x*x;

函数结果y为:

y<

8.//鸡兔同笼问题。

若鸡兔共有100只脚,利用循环计算鸡兔各几只。

intrabbit,chicken;

for(rabbit=100/4;

rabbit>

rabbit--)//兔子最多有25只,最少没有

chicken=(100-rabbit*4)/2;

兔子有"

rabbit<

只,鸡有"

chicken<

只"

9.//编写一个函数,计算直角坐标系中点a(x0,y0)到点b(x1,y1)的距离。

floatlength(floatx0,floaty0,floatx1,floaty1)//求两点距离的子函数

returnsqrt((x0-x1)*(x0-x1)+(y0-y1)*(y0-y1));

floatx0,x1,y0,y1;

Inputxandyofapoint:

x0>

y0;

Inputxandyofbpoint:

x1>

y1;

Thelengthfromatobis"

length(x0,y0,x1,y1)<

10.//求a!

+b!

+c!

的值,其中求n!

要用一个函数实现,通过主函数输入a、b和c的值,并在主函数中输出计算的结果。

intfactorial(intn)//求n!

的子函数

intsum=1;

=n;

sum*=i;

returnsum;

inta,b,c;

a!

factorial(a)+factorial(b)+factorial(c)<

11.//编写一个函数。

该函数读入一个整数,并判断这个整数是否为一个回文数字。

例如4,44,434,4334,43534都是回文数字。

intnumber;

Inputthenumber:

number;

if(palindrome(number))

number<

isapalindrome."

else

isnotapalindrome."

boolpalindrome(intn)//判断n是否为回文的子函数

inta[20];

intm=n;

inti=0;

inttemp,num;

while(m>

0)//将数字的各位反向放置在数组a中

a[i]=m%10;

m=m/10;

i++;

temp=i/2;

//需要比较的次数

num=--i;

//数字的最高位存储在a[num]中

for(intj=0;

temp;

if(a[j]!

=a[num-j])returnfalse;

//如果出现不相等的情况立即退出

returntrue;

//若比较的各个位置都相等,则为回文

12.//编写一个程序,为选修3、4和5门课程的学生计算平均分,其中求平均分要用重载函数实现

floataverage(floata,floatb,floatc)//求三门课程平均分子函数

return(a+b+c)/3;

floataverage(floata,floatb,floatc,floatd)//求四门课程平均分子函数

return(a+b+c+d)/4;

floataverage(floata,floatb,floatc,floatd,floate)//求五门课程平均分子函数

return(a+b+c+d+e)/5;

floats1,s2,s3,s4,s5;

Thetotalofstudent'

scoursesis"

if(number==3)

Inputthreescoreofstudent:

s1>

s2>

s3;

Theaverageis"

average(s1,s2,s3)<

elseif(number==4)

Inputfourscoreofstudent:

s3>

s4;

average(s1,s2,s3,s4)<

s4>

s5;

average(s1,s2,s3,s4,s5)<

13.//编写一个函数。

该函数读入一个整数,然后将这个整数上每个位的数字按照相反的顺序输出。

voidreverse(intn)//反向显示整数n

//存储n的各位,最多20位

0)//提取n的各位

reversednumberis"

=i-1;

j++)//反向输出各位

a[j];

"

reverse(number);

14.//编写函数,完成指定二维数组(3*3)的转置,即行列对换。

iomanip.h>

inti,j,temp,row=0,colum=0;

inta[3][3];

输入一个3×

3的整型矩阵:

for(i=0;

=2;

i++)//从第0行~第2行

for(j=0;

j++)//从第0列~第2列

cin>

a[i][j];

//输入矩阵元素

temp=a[i][j];

//将a[i][j]与a[j][i]的值互换

a[i][j]=a[j][i];

a[j][i]=temp;

i++)

j++)

setw(8)<

15.//编写一个程序,要求当输入一个数字月份时,程序输出该月的英文名称。

例如输入5时,程序输出"

May"

,要求用指针数组实现。

string>

//定义指针数组

char*month[12]={"

January"

"

February"

March"

April"

June"

July"

August"

September"

October"

November"

December"

};

intn;

Inputthemonth(1-12):

n;

while((n>

12)||(n<

1))

Inputthemonth(1-12):

Themonthis"

*(month+n-1)<

16.//编写一个程序,要求分别输入5个学生的3科成绩,并输出平均成绩最高的学生的姓名及各科成绩。

要求用结构体数组实现。

structstudent

{charname[20];

//姓名

floatcourse1;

//第一科成绩

floatcourse2;

//第二科成绩

floatcourse3;

//第三科成绩

floataverage;

//平均成绩

structstudentstu[5];

floattemp=-100.0;

intj,k=0;

charc;

{

InputNO."

i+1<

student'

sname:

stu[i].name;

sthreescores:

stu[i].course1>

stu[i].course2>

stu[i].course3;

//输入三科成绩

stu[i].average=(stu[i].course1+stu[i].course2+stu[i].course3)/3;

//求平均成绩

stu[i].average)

temp=stu[i].average;

//temp存放最高平均分

k=i;

//k存放该同学的序号

Thestudentis"

stu[k].name<

threescoresare"

stu[k].course1<

"

stu[k].course2<

and"

stu[k].course3<

17.//编写一个函数,利用指针将一个字符串反向输出。

编写相应的主函数对其进行调用,在主函数中完成原始数据的输入和结果输出。

voidreverse(char*a,intn)//a为字符串首地址,n+1为字符串长度

chartemp;

for(intk=0;

((n+1)/2);

k++)//a[k]和a[n-k]交换数据

{temp=*(a+k);

*(a+k)=*(a+n-k);

*(a+n-k)=temp;

chara[100];

//最多输入100个字符

Inputthestring:

cin.getline(a,100);

a[i]!

=‘\0’;

)//求字符串的长度

reverse(a,i-1);

Thereversedstringis:

for(intj=0;

j++)/输出反向后的字符串

*(a+j);

18.//编写一个函数,统计并返回一行文字中所有字母、数字、空格及其他字符的个数,同时编写相应的主函数,在主函数中能接收用户输入的一行文本,然后调用上面定义的函数,并在主函数中输出各种字符的个数。

intnum[4]={0,0,0,0};

//分别存储数字、空格、字母和其它字符的个数

while(a[i]!

=‘\0’)//求字符串的长度

if((a[i]>

=48)&

(a[i]<

=57))//数字

num[0]+=1;

elseif(a[i]==32)//空格

num[1]+=1;

elseif(((a[i]>

=65)&

=90))||((a[i]>

=97)&

=122)))//大小写字母

num[2]+=1;

else//其它字符

num[3]+=1;

TheStatisticresultis:

//输出统计结果

number:

num[0]<

blank:

num[1]<

character:

num[2]<

other:

num[3]<

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

当前位置:首页 > 人文社科 > 法律资料

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

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