1:1,2,3,4四个数字能组成多少个互不相同并且没有重复的三位数?
#include<reg51.h>
#include<stdio.h>
void main()
{
unsigned char i,j,k;
for(i=1;i<5;i++)
{
for(j=1;j<5;j++)
{
for(k=1;k<5;k++)
{
if(i!=k&&i!=j&&j!=k)
{
}
}
}
}
}
2:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10
万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60
万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100
万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数
#include<reg51.h>
void main()
{
unsigned long i;
unsigned int Bonus1,Bonus2,Bonus4,Bonus6,Bonus10,Bonus;
Bonus1=100000*0.1;
Bonus2=Bonus1+100000*0.075;
Bonus4=Bonus2+200000*0.05;
Bonus6=Bonus4+200000*0.03;
Bonus10=Bonus6+400000*0.015;
if(i<=100000) Bonus=i*0.1;
else if(i<=200000) Bonus=Bonus1+(i-100000)*0.075;
else if(i<=400000) Bonus=Bonus2+(i-200000)*0.05;
else if(i<=600000) Bonus=Bonus4+(i-200000)*0.03;
else if(i<=1000000) Bonus=Bonus6+(i-400000)*0.015;
else Bonus=Bonus10+(i-1000000)*0.01;
printf("Bonus is %d",Bonus);
}
3:一个整数,加上100以后可以开方,再加上168又可以开方,求此数的值!
#include<reg51.h>
#include<math.h>
void main()
{
unsigned long i;
unsigned int x,y;
for(i=1;i<100000;i++)
{
x=sqrt(i+100);
y=sqrt(i+268);
if(x*x==i+100&&y*y==i+268) /*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
{
printf("\n%ld\n",i);
}
}
}
4:输入某年某月某日,判断这天是这年的第几天?
#include<reg51.h>
#include<stdio.h>
void main()
{
unsigned int year,sum;
unsigned char month,day,leap;
printf("\nplease input month and day\n");
scanf("%d,%d",&month,&day);
switch(month)
{
case 1:sum=0;
case 2:sum=31;
case 3:sum=59;
case 4:sum=90;
case 5:sum=120;
case 6:sum=151;
case 7:sum=181;
case 8:sum=212;
case 9:sum=243;
case 10:sum=273;
case 11:sum=304;
case 12:sum=334;
defaut:printf("input wrong month");
}
sum+=day;
if((year%4==0&&year%100!=0)||(year%400==0)) leap=1;
else leap=0;
if(leap==1&&month>2) sum++;
printf("it is the %dday\n",sum);
}
5:输入三个数,把他们从小到大输出
void main()
{
unsigned int x,y,z,t;
printf("input three number:\n");
scanf("%d,%d,%",&x,&y,&z);
if(x>y)
{
t=x;x=y;y=t;
}
if(x>z)
{
t=x;x=z;z=t;
}
if(y>z)
{
t=y;y=z;z=t;
}
printf("small to big is:",x,y,z);
}
6:输出9*9口诀表
#include<reg51.h>
#include<stdio.h>
void main()
{
unsigned char i,j,result;
printf("\n");
for(i=1;i<10;i++)
{
for(j=1;j<10;j++)
{
result=i*j;
printf(("%d*%d=%-3d",i,j,result);//-3d表示左对齐,占3位
}
printf("\n");
}
}
7:输出国际象棋棋盘
#include<reg51.h>
#include<stdio.h>
void main()
{
unsigned char i,j;
for(i=0;i<8;i++)
{
for(j=0;i<8;j++)
{
if((i+j)%2==0) printf("%c%c",219,219);
else printf(" ");
}
printf("\n");
}
}
8:古典问题:有一对兔子,从第三个月开始生一对兔子,以后每个月同样生一对兔子。小兔子长到第三个月开始同
样开始生一对小兔子,假如二十个月内兔子都没有死掉,问每个月的兔子数是多少??(1,1,2,3,5,8,13.....)
#include<reg51.h>
void main()
{
unsigned char i,f[20];
f[1]=f[2]=1;
for(i=3;i<=20;i++)
{
f=f[i-1]+f[i-2];
if(i%4==0;)printf("\n");
}
}
9:判断m是否是素数
#include<reg51.h>
#include<math.h>
#include<stdio.h>
void main()
{
int m,i,k;
printf("input a number\n");
scanf("%d",&m);
k=sqrt(m+1);
for(i=2;i<=k;i++);
{
if(m%i==0)beak;
}
if(i>k) printf("%d is a prime number\n");
else printf("%d is not a prime number\n");
}
9:判断101到200之间有多少个素数,并将其输出。
#include<reg51.h>
#include<math.h>
void main()
{
unsigned char i,j,k,h,flag=1;
for(i=101;i<=200;i++)
{
k=sqrt(i+1);
for(j=2;j<=k;)
{
if(i%j==0)
{
flag=0;
break;
}
}
if(flag)
{
printf("%d",i);
h++;
if(h%10==0) printf("\n");
}
flag=1;
}
}
10: 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
#include<reg51.h>
void main()
{
unsigned char i,j,k,n;
for(n=100;n<1000;n++)
{
i=n%10;
j=(n/10)%10;
k=n/100;
if(n=i*i*i+j*j*j+k*k*k)
{
printf("%d",n);
}
}
}
11:题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,
60分以下的用C表示。
#include<reg51.h>
#include<stdio.h>
void main()
{
unsigned char score;
char grade;
printf("please input a score\n");
scanf("%d",&score);
grade=score>=90? 'A'score>60? 'B':'C');
printf("%d belong to %d",score,grade);
}
12:输入两个正整数m和n,求其最大公约数和最小公倍数。
#include<reg51.h>
void main()
{
unsigned int a,b,temp,num1,num2;
printf("please input two numbers\n");
scanf("%d,%d",&num1,&num2);
if(num1<num2)
{
temp=num1;
num1=num2;
num2=temp;
}
a=num1;b=num2;
while(b!=0)
{
temp=a%b;
a=b;
b=temp;
}
printf("最大公约数是",a);
printf("最小公倍数是",num1*num2/a);
}
13:题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
#include<reg51.h>
#include<stdio.h>
void main()
{
unsigned char i,n;
printf("input a number:\n");
scanf("%d",&n);
printf("n is %d",n);
for(i=0;i<=n;i++)
{
while(n!=i)
{
if(n%i==0)
{
printf("%d",i);
n=n/i;
}
}
}
printf("%d",n);
}
14:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
第10次落地时,共经过多少米?第10次反弹多高?
#include<reg51.h>
#include<stdio.h>
void main()
{
float sn=100,hn=sn/2;
unsigned char i;
for(i=2;i<=10;i++)
{
sn=sn+2*hn;
hn=hn/2;
}
printf("the total of road is %f\n",sn);
printf("the tenth is %f meter\n",hn);
}
15: 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下
的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
#include<reg51.h>
void main()
{
unsigned int x1,x2;
unsigned char day;
day=9;
x2=1
while(day>0)
{
x1=(x2+1)*2;
x2=x1;
day--;
}
printf("the total is %d\n",x1);
}
16:求1+2!+3!+...+20!的和
#include<reg51.h>
#include<stdio.h>
void main()
{
unsigned int t=1,sum=0;
unsigned char i;
for(i=1;i<20;i++)
{
t=t*i;
sum=sum+t;
}
printf("the total is %d\n",sum);
}
17:重入函数的简单使用
#include<reg51.h>
unsigned int JieCheng(unsgined char n) reentrant
{
unsigned int result;
if(n-1) result=n*JieCheng(n-1);
else result=1;
return result;
}
void main()
{
int result;
result=JieCheng(5);
while(1)
}
用户319049 2011-10-20 10:43