计算机系C语言编程10题及答案
1)/* 输入10个数,分别统计其中正数、负数、零的个数。*/
#include "stdio.h"
#define N 10
main()
{
int i,zsum=0,fsum=0,lsum=0;
float x;
for(i=1;i<=N;i++)
{
printf("请输入第%d个数:",i);
scanf("%f",&x);
if(x>0)
zsum++;
else if(x==0)
lsum++;
else
fsum++;
}
printf("有%d个正数,%d个负数,%d个零",zsum,fsum,lsum);
}
2)/* 先随机产生N个三位自然数输出,然后再输出其中同时是3、5、7倍数的数。(设N为100)*/ #include "stdio.h"
#include "stdlib.h"
#include "time.h"
#define N 100
main()
{
int i,x;
randomize();
for(i=1;i<=N;i++)
{
x=random(900)+100;
printf("%d\t",x);
if(x%3==0&&x%5==0&&x%7==0)
printf("\n*%d*\n",x);
}
c编程必背100题}
3)/* 计算:1/2-2/3+3/4-4/5……,前100项和*/
#include "stdio.h"
main()
{
int i,t=1;
float sum=0;
for(i=1;i<=100;i++)
{
sum=sum+(t*i*1.0)/(i+1);
t=-t;
}
printf("%f",sum);
}
4)/* 打印出所有的"水仙花数",所谓"水仙花数"是指一个3位数,其各位数字立方之和等于该数本身*/
#include "stdio.h"
#include "math.h"
main()
{
int i,gw,sw,bw;
for(i=100;i<=999;i++)
{
gw=i%10;
sw=i/10%10;
bw=i/100%10;
if(i==pow(gw,3)+pow(sw,3)+pow(bw,3))
printf("%d\n",i);
}
}
5)/* 把100~200之间的不能被3整除的数输出。*/
#include "stdio.h"
main()
{
int i;
for(i=100;i<=200;i++)
if(i%3!=0)
printf("%d\t",i);
}
6)/* 18、一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。
甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,
但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索出车号。*/
#include "stdio.h"
#include "math.h"
main()
{
int x;/*x表示四位车号*/
int gw,sw,bw,qw;
for(x=0;x<=9999;x++)
{
gw=x%10; /*个位*/
sw=x/10%10; /*十位*/
bw=x/100%10; /*百位*/
qw=x/1000%10; /*千位*/
if(bw==qw&&gw==sw&&gw!=bw&&sqrt(x)==(int)sqrt(x))
printf("%d\t",x);
}
}
7)/* 31、随机产生N个两位自然数,降序排列后输出。(设N为20)*/
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#define N 20
main()
{
int x[N],i,j,temp;
randomize();
for(i=0;i<n;i++)< bdsfid="164" p=""></n;i++)<>
{
x[i]=random(90)+10;
}
for(i=0;i<n-1;i++)< bdsfid="169" p=""></n-1;i++)<>