C语言期末考试编程题.pdf
文本预览下载声明
1. 打印出所有的“水仙花数”,并
按照一行5个的格式输出。所谓“水
仙花数”是指一个三位数,其各位
数字立方和等于该数本身。例如:
153是一个“水仙花数”,因为
153=1*1*1+5*5*5 +3*3*3 。
#include
voidmain()
{
inta,b,c,s,i=0;
for(s=100;s1000;s++)
{
c=s%10;
b=s/10%10;
a=s/100;
if(s==a*a*a+b*b*b+c*c*c)
{
printf(%d\t,s);
++i;
if(i%5==0)
printf(\n);
}
}
}
2. 求1+2!+3!+...+20! 的和
#include
voidmain()
{
doublefact=,sum=;
inti,j;
for(i=1;i=20;i++)
{
for(j=1;j=i;j++)
fact*=j;
sum+=fact;
fact=1;
}
printf(%.0f\n,sum);
}
3. 输入一个 5位数,判断它是不是回
文数。即 12321是回文数,个位与万
位相同,十位与千位相同。
#include
#include
voidmain()
{
longnum;
inta,b,c,d;
printf(Pleaseinputthenumber:)
;
scanf(%d,num);
if(num=9999||num=100000)
{
printf(%Thenumberiserror!\n);
exit(0);
}
a=num/10000;
b=num/1000%10;
c=num/10%10;
d=num%10;
if(a==db==c)
printf(\nYes,the%ldispalindrom
e!\n,num);
else
printf(\nNo,the%ldisnotpalindr
ome!\n,num);
}
4. 求出 1 到 1000 之内能被 7 或 11 整
除、但不能同时被 7 和 11 整除的所
有整数并并按照一行 5 个的格式输
出。
#include
voidmain()
{
intnum,i=0;
for(num=1;num=1000;num++)
if(((num%7||num%11)==1)((num%
7num%11)==0))
{
printf(%d\t,num);
++i;
if(i%5==0)
printf(\n);
}
}
5. 编程列出 200 以内所有的素数,按
照一行 10 个的格式输出,并求出所
有素数的平均值,
#include
#include
voidmain()
{
inti,j,k=0,sum=0,avg=0;
for(i=2;i200;i++)
{
for(j=2;j=sqrt(i);j++)
if(i%j==0)
break;
if(jsqrt(i))
{
printf(%d\t,i);
++k;
sum+=i;
if(k%10==0)printf(\n);
}
}
avg=sum/k;
printf(\nTheaverageis%d\n,avg
);
}
6、编写一个函数,输入 n 为偶数
时,调用函数求 1/2+1/4+...+1/n,
当输入 n 为奇数时,调用函数
1+1/3+1/5...+1/n
#include
voidmain()
{
voidodd(intn);
voideven(intn);
intn;
printf(Pleaseinputthenumber:)
;
scanf(%d,n);
if(n%2)
odd(n);
else
even(n);
}
voidodd(intn)
{
floatsum=;
floatj;
inti;
for(i=1;i=n;i+=2)
{
j=i;
sum+=j;
}
printf(%f\n,sum);
}
voideven(intn)
{
floa
显示全部