}
}
}
3、一个数如果恰好等于它的各因子(该数本身除外)子和,如:
6=3+2+1,则称其为“完数”;若因子之和大于该数,则称其为“盈数”。
求出2到60之间所有“完数”和“盈数”,并以如下形式输出:
E:
e1e2e3......(ei为完数)G:
g1g2g3......(gi为盈数)
#include
usingnamespacestd;
voidmain()
{
cout<<"E:
";
for(inti=2;i<=60;i++)
{
ints=0;
for(intj=1;j
{
if(i%j==0)
{
//s=0;
s+=j;
}
}
if(s==i)
{
cout<
}
}
cout<cout<<"G:
";
for(intk=2;k<=60;k++)
{
ints=0;
for(intj=1;j{
if(k%j==0)
{
s+=j;
}
}
if(s>k)
{
cout<}
}
cout<}
4、从键盘输入4个学生的数据(包括姓名、年龄和成绩),并存放在文件sf1上。
从该文件读出这些数据,按成绩从高到底排序,并输出其中成绩次高者的所有数据。
#include
#include
#include
usingnamespacestd;
structstudent
{
stringname;
intage;
intscore;
};
voidmain()
{
studentst[4];
students;
studentt;
inti=0;
ofstreamout("sf1.txt");
cout<<"请输入4个学生的姓名,年龄,成绩:
"<for(i=0;i<4;i++)
{
cin>>s.name>>s.age>>s.score;
out<}
ifstreamin("sf1.txt");
cout<<"name"<<"age"<<"score"<for(i=0;i<4;i++)
{
in>>st[i].name>>st[i].age>>st[i].score;
cout<}
for(i=0;i<4;i++)
for(intj=i+1;j<4;j++)
if(st[i].score{
t=st[i];
st[i]=st[j];
st[j]=t;
}
cout<<"name"<<"age"<<"score"<for(i=0;i<4;i++)
cout<}
2001年
(1):
1、编写程序,计算下列分段函数y=f(x)的值。
y=-x+2.50<=x<2y=2-1.5(x-3)(x-3)2<=x<4y=x/2-1.54<=x<6
#include
usingnamespacestd;
voidmain()
{
intx;
cout<<"请输入x(0-6):
";
cin>>x;
if(x<0&&x>=6)
cout<<"输入有误!
";
if(x>=0&&x<2)
cout<<"y="<<(-x+2.5)<elseif(x>=2&&x<4)
cout<<"y="<<2-1.5*(x-3)*(x-3)<elseif(x>=4&&x<6)
cout<<"y="<}
2、编写程序,读入一个整数N。
若N为非负数,则计算N到2N之间的整数和;若N为一个负数,则求2N到N之间的整数和。
#include
#include
usingnamespacestd;
voidmain()
{
intN;
cout<<"请输入一个整数:
";
cin>>N;
cout<<((N+2*N)*(abs(N)+1))/2<}
3、设N是一个四位数,它的9倍恰好是其反序数(例如:
1234的反序数是4321),求N的值。
#include
usingnamespacestd;
voidmain()
{
for(inti=1000;i<=9999;i++)
{
inta,b,c,d;
a=i/1000;
b=i/100-a*10;
c=(i/10)%10;
d=i%10;
if(9*i==d*1000+c*100+b*10+a)
cout<
}
}
4、N个人围成一圈顺序编号,从1号开始按1、2、3顺序报数,报3者退出圈外,其余的人再从1、2、3开始报数,报3的人再退出圈外,依次类推。
请按退出顺序输出每个退出人的原序号。
要求使用环行链表编程。
#include
#include
usingnamespacestd;
typedefstructnode
{
intnum;
structnode*next;
}LNode;
voidmain()
{
LNode*head,*p,*q;
intN;
cout<<"输入人数:
";
cin>>N;
p=(LNode*)(malloc(sizeof(LNode)));
p->num=1;
head=p;
for(inti=1;i{
p->next=(LNode*)(malloc(sizeof(LNode)));
p=p->next;
p->num=i+1;
}
p->next=head;
p=head;
cout<<"输出序列为:
"<while(p->next!
=p)
{
q=p->next;
p=q->next;
q->next=p->next;
cout<num<<"";
deletep;
p=q->next;
}
cout<num<deletep;
}
2001年
(2)
1、请输入高度h,输入一个高为h,上底边长为h的等腰梯形(例如h=4,图形如下)。
****
******
********
**********
#include
usingnamespacestd;
voidmain()
{
inth;
cout<<"请输入h:
";
cin>>h;
for(inti=0;i{
for(intj=0;jcout<<"";
for(intk=0;kcout<<"*";
cout<}
}
2、请编写一个程序,从键盘上输入n(n的范围是1~20),求n的阶乘。
#include
usingnamespacestd;
voidmain()
{
intn;
intsum=1;
//intt=0;
cout<<"请输入n(1-20):
";
cin>>n;
for(inti=1;i<=n;i++)
{
sum=sum*i;
}
cout<}
3、从键盘上任意输入一个长度不超过20的字符串,对所输入的字符串,按照ASCII码的大小从小到大进行排序,请输出排序后的结果。
#include
#include
#include
usingnamespacestd;
voidmain()
{
strings;
cout<<"Enterstring:
";
cin>>s;
sort(s.begin(),s.end());
cout<
}
2002年(A)
1、某人有8角的邮票5张,1元的邮票4张,1元8角的邮票6张,用这些邮票中的一张或若干张可以得到多少中不同的邮资?
#include
usingnamespacestd;
voidmain()
{
intsum=0;
for(inti=0;i<=5;i++)
for(intj=0;j<=4;j++)
for(intk=0;k<=6;k++)
{sum++;
cout<<0.8*i+j+1.8*k<<"";
}
cout<cout<}
2、输入n值,使用递归函数,求杨辉三角形中各个位置上的值,按照如下形式打印输出图形。
例如:
当n=6时。
11112113311464115101051
#include