资源描述
【次第1】
题目:有1、2、3、4个数字,能形成多少多个互不一样且无反双数字的三位数?全然上多少多?
1.次第分析:可填在百位、十位、个位的数字全然上1、2、3、4。形成所有的摆设后再去
丢掉不称心条件的摆设。
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
inti,j,k;
printf("\n");
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)/*确保i、j、k三位互不一样*/
printf("%d,%d,%d\n",i,j,k);
}
getch();
}
==============================================================
【次第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,求应发放奖金总数?
1.次第分析:请使用数轴来分界,定位。留心定义时需把奖金定义成长整型。
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
longinti;
intbonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%ld",&i);
bonus1=100000*0.1;
bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
if(i<=100000)
bonus=i*0.1;
elseif(i<=200000)
bonus=bonus1+(i-100000)*0.075;
elseif(i<=400000)
bonus=bonus2+(i-200000)*0.05;
elseif(i<=600000)
bonus=bonus4+(i-400000)*0.03;
elseif(i<=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
printf("bonus=%d",bonus);
getch();
}
==============================================================
【次第3】
题目:一个整数,它加上100后是一个完好平方数,再加上168又是一个完好平方数,请征询该数是多少多?
1.次第分析:在10万以内揣摸,先将该数加上100后再开方,再将该数加上268后再开方,假定开方后
的结果称心如下条件,即是结果。请看具体分析:
2.次第源代码:
#include"math.h"
#include"stdio.h"
#include"conio.h"
main()
{
longinti,x,y,z;
for(i=1;i<100000;i++)
{
x=sqrt(i+100);/*x为加上100后开方后的结果*/
y=sqrt(i+268);/*y为再加上168后开方后的结果*/
if(x*x==i+100&&y*y==i+268)/*假定一个数的平方根的平方即是该数,这阐明此数是完好平方数*/
printf("\n%ld\n",i);
}
getch();
}
==============================================================
【次第4】
题目:输出某年某月某日,揣摸这一天是这一年的第多少多天?
1.次第分析:以3月5日为例,应领先把前两个月的加起来,然后再加上5天即往年的第多少多天,特不
状况,闰年且输出月份大年夜于3时需考虑多加一天。
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
intday,month,year,sum,leap;
printf("\npleaseinputyear,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)/*先打算某月平常月份的总天数*/
{
case1:sum=0;break;
case2:sum=31;break;
case3:sum=59;break;
case4:sum=90;break;
case5:sum=120;break;
case6:sum=151;break;
case7:sum=181;break;
case8:sum=212;break;
case9:sum=243;break;
case10:sum=273;break;
case11:sum=304;break;
case12:sum=334;break;
default:printf("dataerror");break;
}
sum=sum+day;/*再加上某天的天数*/
if(year%400==0||(year%4==0&&year%100!=0))/*揣摸是不是闰年*/
leap=1;
else
leap=0;
if(leap==1&&month>2)/*假定是闰年且月份大年夜于2,总天数该当加一天*/
sum++;
printf("Itisthe%dthday.",sum);
getch();
}
==============================================================
【次第5】
题目:输出三个整数x,y,z,请把这三个数由小到大年夜输出。
1.次第分析:我们想办法把最小的数放到x上,先将x与y停顿比较,假定x>y那么将x与y的值停顿交换,
然后再用x与z停顿比较,假定x>z那么将x与z的值停顿交换,如斯能使x最小。
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
intx,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if(x>y)
{t=x;x=y;y=t;}/*交换x,y的值*/
if(x>z)
{t=z;z=x;x=t;}/*交换x,z的值*/
if(y>z)
{t=y;y=z;z=t;}/*交换z,y的值*/
printf("smalltobig:%d%d%d\n",x,y,z);
getch();
}
==============================================================
【次第6】
题目:用*号输出字母C的图案。
1.次第分析:可先用'*'号在纸上写出字母C,再分行输出。
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
printf("HelloC-world!\n");
printf("****\n");
printf("*\n");
printf("*\n");
printf("****\n");
getch();
}
==============================================================
【次第7】
题目:输出特不图案,请在c状况中运行,看一看,VeryBeautiful!
1.次第分析:字符共有256个。差异字符,图形不一样。
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
chara=176,b=219;
printf("%c%c%c%c%c\n",b,a,a,a,b);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",a,a,b,a,a);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",b,a,a,a,b);
getch();
}
==============================================================
【次第8】
题目:输出9*9口诀。
1.次第分析:分行与列考虑,共9行9列,i把持行,j把持列。
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
inti,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");/*每一行后换行*/
}
getch();
}
==============================================================
【次第9】
题目:恳求输出国际象棋棋盘。
1.次第分析:用i把持行,j来把持列,按照i+j的跟的变卦来把持输出黑方格,仍然白方格。
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
inti,j;
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
if((i+j)%2==0)
printf("%c%c",219,219);
else
printf(" ");
printf("\n");
}
getch();
}
==============================================================
【次第10】
题目:打印楼梯,同时在楼梯上方打印两个愁容。
1.次第分析:用i把持行,j来把持列,j按照i的变卦来把持输出黑方格的个数。
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
inti,j;
printf("\1\1\n");/*输出两个愁容*/
for(i=1;i<11;i++)
{
for(j=1;j<=i;j++)
printf("%c%c",219,219);
printf("\n");
}
getch();
}
.:.:经典c次第100例==11--20:.:.
经典c次第100例==11--20
【次第11】
题目:古典征询题:有一对兔子,从降生后第3个月起每个月都生一对兔子,小兔子长到第三个月
后每个月又生一对兔子,假定兔子都不去世,征询每个月的兔子总数为多少多?
1.次第分析: 兔子的法那么为数列1,1,2,3,5,8,13,21....
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
longf1,f2;
inti;
f1=f2=1;
for(i=1;i<=20;i++)
{
printf("%12ld%12ld",f1,f2);
if(i%2==0)printf("\n");/*把持输出,每行四个*/
f1=f1+f2;/*前两个月加起来赋值给第三个月*/
f2=f1+f2;/*前两个月加起来赋值给第三个月*/
}
getch();
}
==============================================================
【次第12】
题目:揣摸101-200之间有多少多个素数,并输出所有素数。
1.次第分析:揣摸素数的办法:用一个数分不去除2到sqrt(谁人数),假定能被整除,
那么阐明此数不是素数,反之是素数。
2.次第源代码:
#include"stdio.h"
#include"conio.h"
#include"math.h"
main()
{
intm,i,k,h=0,leap=1;
printf("\n");
for(m=101;m<=200;m++)
{
k=sqrt(m+1);
for(i=2;i<=k;i++)
if(m%i==0)
{
leap=0;
break;
}
if(leap)
{
printf("%-4d",m);
h++;
if(h%10==0)
printf("\n");
}
leap=1;
}
printf("\nThetotalis%d",h);
getch();
}
==============================================================
【次第13】
题目:打印出所有的“水仙花数〞,所谓“水仙花数〞是指一个三位数,其各位数字破方跟即是该数
本身。比如:153是一个“水仙花数〞,因为153=1的三次方+5的三次方+3的三次方。
1.次第分析:使用for循环把持100-999个数,每个数分析出个位,十位,百位。
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
inti,j,k,n;
printf("'waterflower'numberis:");
for(n=100;n<1000;n++)
{
i=n/100;/*分析出百位*/
j=n/10%10;/*分析出十位*/
k=n%10;/*分析出个位*/
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
printf("%-5d",n);
}
getch();
}
==============================================================
【次第14】
题目:将一个正整数分析质因数。比如:输出90,打印出90=2*3*3*5。
次第分析:对n停顿分析质因数,应先寻到一个最小的质数k,然后按下述步伐完成:
(1)假定谁人质数恰即是n,那么阐明分析质因数的过程已经终了,打印出即可。
(2)假定n<>k,但n能被k整除,那么应打印出k的值,并用n除以k的商,作为新的正整数你n,
重复实行第一步。
(3)假定n不克不迭被k整除,那么用k+1作为k的值,重复实行第一步。
2.次第源代码:
/*zhengintisdividedyinshu*/
#include"stdio.h"
#include"conio.h"
main()
{
intn,i;
printf("\npleaseinputanumber:\n");
scanf("%d",&n);
printf("%d=",n);
for(i=2;i<=n;i++)
while(n!=i)
{
if(n%i==0)
{
printf("%d*",i);
n=n/i;
}
else
break;
}
printf("%d",n);
getch();
}
==============================================================
【次第15】
题目:使用条件运算符的嵌套来完成此题:深造效果>=90分的同学用A表示,60-89分之间的用B表示,
60分以下的用C表示。
1.次第分析:(a>b)?a:b这是条件运算符的全然例子。
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
intscore;
chargrade;
printf("pleaseinputascore\n");
scanf("%d",&score);
grade=score>=90?'A':(score>=60?'B':'C');
printf("%dbelongsto%c",score,grade);
getch();
}
==============================================================
【次第16】
题目:输出两个正整数m跟n,求其最大年夜公约数跟最小公倍数。
1.次第分析:使用辗除法。
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
inta,b,num1,num2,temp;
printf("pleaseinputtwonumbers:\n");
scanf("%d,%d",&num1,&num2);
if(num1<num2)/*交换两个数,使大年夜数放在num1上*/
{
temp=num1;
num1=num2;
num2=temp;
}
a=num1;b=num2;
while(b!=0)/*使用辗除法,直到b为0为止*/
{
temp=a%b;
a=b;
b=temp;
}
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
getch();
}
==============================================================
【次第17】
题目:输出一行字符,分不统计出其中英文字母、空格、数字跟不的字符的个数。
1.次第分析:使用while语句,条件为输出的字符不为'\n'.
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
charc;
intletters=0,space=0,digit=0,others=0;
printf("pleaseinputsomecharacters\n");
while((c=getchar())!='\n')
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letters++;
elseif(c=='')
space++;
elseif(c>='0'&&c<='9')
digit++;
else
others++;
}
printf("allinall:char=%dspace=%ddigit=%dothers=%d\n",letters,
space,digit,others);
getch();
}
==============================================================
【次第18】
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。比如2+22+222+2222+22222(现在
共有5个数相加),多少多个数相加有键盘把持。
1.次第分析:关键是打算出每一项的值。
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
inta,n,count=1;
longintsn=0,tn=0;
printf("pleaseinputaandn\n");
scanf("%d,%d",&a,&n);
printf("a=%d,n=%d\n",a,n);
while(count<=n)
{
tn=tn+a;
sn=sn+tn;
a=a*10;
++count;
}
printf("a+aa+...=%ld\n",sn);
getch();
}
==============================================================
【次第19】
题目:一个数假定偏偏即是它的因子之跟,谁人数就称为“完数〞。比如6=1+2+3.编程
寻出1000以内的所有完数。
1.次第分析:请参照次第<--上页次第14.
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
staticintk[10];
inti,j,n,s;
for(j=2;j<1000;j++)
{
n=-1;
s=j;
for(i=1;i<j;i++)
{
if((j%i)==0)
{
n++;
s=s-i;
k[n]=i;
}
}
if(s==0)
{
printf("%disawanshu",j);
for(i=0;i<n;i++)
printf("%d,",k);
printf("%d\n",k[n]);
}
}
getch();
}
==============================================================
【次第20】
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
第10次落地时,共经过多少多米?第10次反弹多高?
1.次第分析:见下面注释
2.次第源代码:
#include"stdio.h"
#include"stdio.h"
main()
{
floatsn=100.0,hn=sn/2;
intn;
for(n=2;n<=10;n++)
{
sn=sn+2*hn;/*第n次落地时共经过的米数*/
hn=hn/2;/*第n次反跳高度*/
}
printf("thetotalofroadis%f\n",sn);
printf("thetenthis%fmeter\n",hn);
getch();
}
.:.:经典c次第100例==21--30:.:.
经典c次第100例==21--30
【次第21】
题目:猴子吃桃征询题:猴子第一天摘下假定干个桃子,破即吃了一半,还不瘾,又多吃了一个
来日诰日早上又将剩下的桃子吃丢掉一半,又多吃了一个。以后每天早上都吃了前一天剩下
的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少多。
1.次第分析:采纳逆向思维的办法,从后往前揣摸。
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
intday,x1,x2;
day=9;
x2=1;
while(day>0)
{
x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/
x2=x1;
day--;
}
printf("thetotalis%d\n",x1);
getch();
}
==============================================================
【次第22】
题目:两个乒乓球队停顿比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定
比赛名单。有人向队员打听比赛的名单。a说他跟睦x比,c说他跟睦x,z比,请编次第寻出
三队赛手的名单。
1.次第分析:揣摸素数的办法:用一个数分不去除2到sqrt(谁人数),假定能被整除,
那么阐明此数不是素数,反之是素数。
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
chari,j,k;/*i是a的对手,j是b的对手,k是c的对手*/
for(i='x';i<='z';i++)
for(j='x';j<='z';j++)
{
if(i!=j)
for(k='x';k<='z';k++)
{
if(i!=k&&j!=k)
{
if(i!='x'&&k!='x'&&k!='z')
printf("orderisa--%c\tb--%c\tc--%c\n",i,j,k);
}
}
}
getch();
}
==============================================================
【次第23】
题目:打印出如以下图案〔菱形〕
*
***
*****
*******
*****
***
*
1.次第分析:先把图形分成两部分来看待,前四行一个法那么,后三行一个法那么,使用双重
for循环,第一层把持行,第二层把持列。
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
inti,j,k;
for(i=0;i<=3;i++)
{
for(j=0;j<=2-i;j++)
printf("");
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");
}
for(i=0;i<=2;i++)
{
for(j=0;j<=i;j++)
printf("");
for(k=0;k<=4-2*i;k++)
printf("*");
printf("\n");
}
getch();
}
==============================================================
【次第24】
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出谁人数列的前20项之跟。
1.次第分析:请抓住分子与分母的变卦法那么。
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
intn,t,number=20;
floata=2,b=1,s=0;
for(n=1;n<=number;n++)
{
s=s+a/b;
t=a;a=a+b;b=t;/*这部分是次第的关键,请读者猜猜t的感染*/
}
printf("sumis%9.6f\n",s);
getch();
}
==============================================================
【次第25】
题目:求1+2!+3!+...+20!的跟
1.次第分析:此次第只是把累加变成了累乘。
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
floatn,s=0,t=1;
for(n=1;n<=20;n++)
{
t*=n;
s+=t;
}
printf("1+2!+3!...+20!=%e\n",s);
getch();
}
==============================================================
【次第26】
题目:使用递归办法求5!。
1.次第分析:递归公式:fn=fn_1*4!
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
inti;
intfact();
for(i=0;i<5;i++)
printf("\40:%d!=%d\n",i,fact(i));
getch();
}
intfact(j)
intj;
{
intsum;
if(j==0)
sum=1;
else
sum=j*fact(j-1);
returnsum;
}
==============================================================
【次第27】
题目:使用递归函数调用办法,将所输出的5个字符,以相反次第打印出来。
1.次第分析:
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
inti=5;
voidpalin(intn);
printf("\40:");
palin(i);
printf("\n");
getch();
}
voidpalin(n)
intn;
{
charnext;
if(n<=1)
{
next=getchar();
printf("\n\0:");
putchar(next);
}
else
{
next=getchar();
palin(n-1);
putchar(next);
}
}
==============================================================
【次第28】
题目:有5集团坐在一起,征询第五集团多少多岁?他说比第4集团大年夜2岁。征询第4集团年纪,他说比第
3集团大年夜2岁。征询第三集团,又说比第2人大年夜两岁。征询第2集团,说比第一集团大年夜两岁。最后
征询第一集团,他说是10岁。请征询第五集团多大年夜?
1.次第分析:使用递归的办法,递归分为回推跟递推两个阶段。要想清楚第五集团年纪,需清楚
第四人的年纪,依次类推,推到第一人〔10岁〕,再往回推。
2.次第源代码:
#include"stdio.h"
#include"conio.h"
age(n)
intn;
{
intc;
if(n==1)c=10;
elsec=age(n-1)+2;
return(c);
}
main()
{
printf("%d",age(5));
getch();
}
==============================================================
【次第29】
题目:给一个未多少多于5位的正整数,恳求:一、求它是多少多位数,二、逆序打印出各位数字。
1.次第分析:学会分析出每一位数,如下阐明:(这里是一种庞杂的算法,师专数002班赵鑫供应)
2.次第源代码:
#include"stdio.h"
#include"conio.h"
main()
{
longa,b,c,d,e,x;
scanf("%ld",&x);
a=x/10000;/*分析出万位*/
b=x%10000/1000;/*分析出千位*/
c=x%1000/100;/*分析出百位*/
d=x%100/10;/*分析出十位*/
e=x%10;/*分析出个位*/
if(a!=0)printf("thereare5,%ld%ld%ld%ld%ld\n",e,d,c,b,a);
elseif(b!=0)printf("thereare4,%ld%ld%ld%ld\n",e,d,c,b);
elseif(c!=0)printf("thereare3,%ld%ld%ld\n",e,d,c);
elseif(d!=0)printf("thereare2,%ld%ld\n",e,d);
elseif(e!=0)printf("thereare1,%
展开阅读全文