C++平时作业.docx

上传人:b****7 文档编号:9061939 上传时间:2023-02-03 格式:DOCX 页数:15 大小:17.95KB
下载 相关 举报
C++平时作业.docx_第1页
第1页 / 共15页
C++平时作业.docx_第2页
第2页 / 共15页
C++平时作业.docx_第3页
第3页 / 共15页
C++平时作业.docx_第4页
第4页 / 共15页
C++平时作业.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C++平时作业.docx

《C++平时作业.docx》由会员分享,可在线阅读,更多相关《C++平时作业.docx(15页珍藏版)》请在冰豆网上搜索。

C++平时作业.docx

C++平时作业

一、分析程序,写输出结果

1.#include

#include

voidmain()

{intm,k,i;

for(m=1;m<=10;m+=2)

{k=m/3;

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

if(m%i)cout<

}

}

79

2.#include

voidfun();

voidmain()

{inti;

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

cout<

}

voidfun()

{staticinta;

intb=2;

a+=2;

cout<

}

46810

3.#include

intfun(intn)

{if(n==0)return1;

return2*fun(n-1);

}

voidmain()

{inta=5;

cout<

}

32

4.#include

voidmain()

{char*cp="word";

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

cout<

}

wordordrdd

二、.根据程序功能填空。

1.程序把10个数存储到一维数组a中,并求该数组中最大值。

#include

voidmain()

{intmax;

inta[10]={76,55,95,87,85,83,65,90,77,85};

int*p=a;

max=*p;

for(;p<&a[10];p++)

if(*p>max)max=*p;

cout<<"max="<

}

2.下面程序的功能是输出1至100之间每位数字的乘积大于每位数的和的数。

例如,45两位数字的乘积为4×5=20,和为4+5=9。

#include

voidmain()

{intn,k=1,s=0,m;

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

{k=1;s=0;

lm=n;

while(2m)

{k*=m%10;

s+=m%10;

3m/=10;

}

if(k>s)cout<

}

}

3.程序对输入的n求s=1+1/23+1/33+…+1/n3。

#include

voidmain()

{doubles;inti,n;

cout<<"n=";cin>>n;

s=0;

for(i=1;i

s=s+(1.0/(n*n*n);

cout<<"s="<

}

4.函数create从键盘输入整数序列,以输入0为结束。

按输入顺序建立一个以head为表头的单向链表。

structnode{intdata;node*next;};

create(node*head)

{node*p,*q;

p=newnode;

cin>>p->data;

q=p;

while(p->data)

{if(head==NULL)head=p;

elseq->next=p;;

q=p;

p=newnode;

cin>>p->data;

}

q->next=NULL;

deletep;

}

5.以下程序求方程的全部整数解:

3x+2y-7z=5(0≤x,y,z≤100)

#include

voidmain()

{intx,y,z;

for(x=0;x<=100;x++)

for(y=0;y<=100;y++)

{if((z=3*x+2*y-5)%7)

break;

z=3*x+2*y-5)/7;//求出z的值

if(z<=100&&z>=0)//检查z的范围

cout<<"x="<

}

}

三、程序设计

1.编写函数输出以下形状的图形,其中构成图形的数字和输出的行数通过参数传送。

1

222

33333

4444444

#include

voidmain()

{

inti,n;

for(i=0;i<5;i++){

for(n=0;n<2*i-1;n++){

cout<

}

cout<

}

}

2.请编程序,输入两个正整数啊a和b(a

每行输出数据不超过10个。

例如,若输入a为6,b为8,则输出格式要求如下:

thefactorsof6:

23

thefactorsof7:

nofactor

thefactorsof8:

24

thefactorsof6:

23

thefactorsof7:

nofactor

thefactorsof8:

24

#include

usingnamespacestd;

voidprintFactor(inti);

voidmain()

{

intnumA,numB;

cout<<"InputTwoNumbers:

"<

cin>>numA>>numB;

for(inti=numA;i<=numB;i++)

{

printFactor(i);

}

}

voidprintFactor(inti)

{

cout<<"FACTORSOF"<

"<

int*fact=newint();

intn=0;

for(intk=2;k

{

if(i%k==0)

{

fact[n]=k;

n++;

}

}

if(n==0)

{

cout<<"NOFACTOR"<

}

else

{

for(intj=0;j

{

3.请编程序,找出1至99之间的全部同构数。

同构数是这样一组数:

它出现在平方数的右边。

例如:

5是25右边的数,25是625右边的数,所以5和25都是同构数。

#include

usingnamespacestd;

intmain()

{

longx,y,i=10;

intflag=0;

for(x=1;x<100;x++)

{

y=x*x;

while(y/i!

=0)

{

if(y%i==x)

{

flag=1;

break;

}

i=i*10;

}

if(flag==1)cout<

flag=0;

i=10;

}

return0;

}

 

4.编写一个程序,实现如下功能:

(1)从键盘输入aopb。

其中a,b为数值;op为字符,限制为+、-、*、/。

(2)调用函数count(op,a,b),计算表达式aopb的值。

由主函数输出结果。

#include

usingnamespacestd;

template

TCOUNT(charop,Ta,Tb)

{

switch(op)

{

case'+':

return(a+b);break;

case'-':

return(a-b);break;

case'*':

return(a*b);break;

case'/':

return(a/b);break;

default:

cout<<"Error."<

}

}

intmain()

{

inta,b;

charop;

cin>>a>>op>>b;

if(op=='/'&&b==0)

{

cout<<"InputError."<

}

cout<<"Resultis"<

system("pause");

return0;

}

5.编写一个程序,实现如下功能:

(1)输入k(<100)个整数到数组x[100]中;

(2)计算k个数的平均值及大于平均值的元素个数。

#include

floataverage(int[],int);

intnum(int[],int);

voidmain()

{

intk,i,x[100];floatave;

for(k=0;k<100;k++)

{

cin>>i;

if(i==0){

break;

}

x[k]=i;

}

ave=average(x,k);

cout<<"平均值"<

cout<<"大于平均值的元素个数"<

}

floataverage(intu[],intk)

{

inta,sum=0;

for(a=0;a

sum+=u[a];

return(float)sum/k;

}

intnum(intu[],intk)

{

intb,c,m=0;

intave=average(u,k);

for(c=0;c

{

if(u[c]>ave)m++;}

returnm;

}

6.定义函数

voidreversion(intary[],intsize);

逆置数组ary的元素。

例如实参数组原来为[1,5,3,2,6,8,9,4],调用函数

reversion后变成为[4,9,8,6,2,3,5,1]。

voidreversion(intary[],intsize){

inti;

inttemp;

for(i=0;i

temp=ary[i];

ary[i]=ary[size-i];

ary[size-i]=temp;

}

}

7.数组a包含50个整数,把a中所有的后项除以前项之商取整后存入数组b(即b[i]=a[i]/a[i-1],并且b[50]=a[20]/a[1]),最后按每行5个元素的格式输出数组b。

#include

voidmain()

{inta[50],b[50];

inti,j=0;//j用来控制换行

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

{cout<<"\nInputa["<

";cin>>a[i];

}

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

{if(i!

=50)b[i]=a[i]/a[i-1];

elseb[i]=a[20]/a[1];

}

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

{if(j!

=5)cout<<"\n";

cout<<""<

}

}

8.编程输出所有不超过100的其平方具有对称性质的正整数(也称回文数)。

输出格式如下:

numbersquare

11

24

39

11121

22484

26676

#include

voidmain()

{inti;

longtext(inti);//判断i的i^2是不是回文数的函数

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

{if(text(i)!

=0)cout<<"\n"<

}

}

longtext(inti)

{longsum,k,sum1=0;

sum=i*i;

k=sum;

while(k>0)

{sum1=sum1*10+k%10;

k=k/10;

}

if(sum1==sum)returni*i;

elsereturn0;

}

9.编写程序,打印如下杨辉三角。

1

11

121

1331

14641

#include

voidmain()

{

inta[5][5],i,j;

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

{

for(j=5;j>=i;j--)

printf("%2c",'');/*两个空格*/

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

{

if(i==j||j==0)

a[i][j]=1;

else

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

printf("%3d",a[i][j]);/*%3d后一个空格*/

if(i==j)

printf("\n");

}

}

}

10.定义一个函数,计算长度为k的整型数组元素的平均值及大于平均值的元素个数。

调用函数的语句为:

count(a,k,ave,num);

其中a是数组名,k是数组元素个数,ave返回的平均值,num返回大于平均值的元素个数。

count(a,k,ave,num);

其中a是数组名,k是数组元素个数,ave返回的平均值,num返回大于平均值的元素个数。

voidcount(a,k,&ave,&num){

intcount=0,sum=0;

inti;

//求平均数

for(i=0;i

sum+=a[i];

}

ave=(float)sum/(float)a;

//求大于平均数的个数

for(i=0;i

if(a[i]>ave)count++;

}

num=count;

}

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

当前位置:首页 > PPT模板 > 艺术创意

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

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