《高级语言程序设计C++》平时作业Word下载.doc
《《高级语言程序设计C++》平时作业Word下载.doc》由会员分享,可在线阅读,更多相关《《高级语言程序设计C++》平时作业Word下载.doc(14页珍藏版)》请在冰豆网上搜索。
endl;
voidfun()
{staticinta;
intb=2;
a+=2;
cout<
a+b<
'
\t'
4 6810
3.#include<
intfun(intn)
{if(n==0)return1;
return2*fun(n-1);
{inta=5;
fun(a)<
32
4.#include<
{char*cp="
word"
for(inti=0;
4;
cout<
cp+i<
'
wordordrdd
二、.根据程序功能填空。
1.程序把10个数存储到一维数组a中,并求该数组中最大值。
{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;
"
max="
max<
2.下面程序的功能是输出1至100之间每位数字的乘积大于每位数的和的数。
例如,45两位数字的乘积为4×
5=20,和为4+5=9。
{intn,k=1,s=0,m;
for(n=1;
n<
=100;
n++)
{k=1;
s=0;
1m=n;
while(2m)
{k*=m%10;
s+=m%10;
3m/=10;
}
if(k>
s)cout<
n<
}
3.程序对输入的n求s=1+1/23+1/33+…+1/n3。
{doubles;
inti,n;
n="
cin>
>
n;
s=0;
for(i=1;
i<
n;
i++)
s=s=s+(1.0/(n*n*n);
s="
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>
q->
next=NULL;
deletep;
}}
5.以下程序求方程的全部整数解:
3x+2y-7z=5 (0≤x,y,z≤100)
{intx,y,z;
for(x=0;
x<
x++)
for(y=0;
y<
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="
<
x<
y="
y<
z="
z<
endl;
}
三、程序设计
1.编写函数输出以下形状的图形,其中构成图形的数字和输出的行数通过参数传送。
1
222
33333
4444444
{
inti,n;
for(i=0;
i++){
for(n=0;
2*i-1;
n++){
cout<
i;
2.请编程序,输入两个正整数啊a和b(a<
b),输出a、b之间所有整数的因数(除1和本身)。
每行输出数据不超过10个。
例如,若输入a为6,b为8,则输出格式要求如下:
thefactorsof6:
23
thefactorsof7:
nofactor
thefactorsof8:
24
#include<
iostream>
usingnamespacestd;
voidprintFactor(inti);
intnumA,numB;
InputTwoNumbers:
numA>
numB;
for(inti=numA;
=numB;
i++)
{
printFactor(i);
voidprintFactor(inti)
FACTORSOF"
:
int*fact=newint();
intn=0;
for(intk=2;
k<
k++)
if(i%k==0)
{
fact[n]=k;
n++;
}
if(n==0)
cout<
NOFACTOR"
else
for(intj=0;
j<
j++)
fact[j]<
if((j+1)%10==0)
{
cout<
}
}3.请编程序,找出1至99之间的全部同构数。
同构数是这样一组数:
它出现在平方数的右边。
例如:
5是25右边的数,25是625右边的数,所以5和25都是同构数。
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<
y<
flag=0;
i=10;
return0;
}4.编写一个程序,实现如下功能:
(1)从键盘输入aopb。
其中a,b为数值;
op为字符,限制为+、-、*、/。
(2)调用函数count(op,a,b),计算表达式aopb的值。
由主函数输出结果。
template<
typenameT>
TCOUNT(charop,Ta,Tb)
switch(op)
{
case'
+'
return(a+b);
break;
-'
return(a-b);
*'
return(a*b);
/'
return(a/b);
default:
cout<
Error."
endl;
inta,b;
charop;
cin>
a>
op>
b;
if(op=='
&
b==0)
cout<
InputError."
cout<
Resultis"
COUNT(op,a,b)<
system("
pause"
);
return0;
5.编写一个程序,实现如下功能:
(1)输入k(<
100)个整数到数组x[100]中;
(2)计算k个数的平均值及大于平均值的元素个数。
floataverage(int[],int);
intnum(int[],int);
voidmain()
intk,i,x[100];
floatave;
for(k=0;
k++)
{
cin>
if(i==0){
break;
x[k]=i;
}
ave=average(x,k);
cout<
平均值"
ave<
大于平均值的元素个数"
num(x,k)<
}
floataverage(intu[],intk)
inta,sum=0;
for(a=0;
a<
k;
a++)
sum+=u[a