1、C语言入门习题训练/*【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?兔子的规律为数列1,1,2,3,5,8,13,21*/#includevoid main() int a,b,t,p,sum,month; a=1; b=1; printf(Please enter the month:); scanf(%d,&month); printf(There are 2 rabbits.n); for(a=0,b=1,t=0,p=0,sum=0;month1&pmonth;p+) t=a+
2、b; a=b; b=t; sum=t*2; printf(There are %d rabbits.n,sum); /*【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。*/#includevoid main() int a,amount; for(amount=0,a=101;100a&a201;a+) if(a%2!=0) amount=amount+1; printf(a=%dt,a); /*【程序3】题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数
3、,其各位数字立方和等于该数本身。例如:153是一个水仙花数,因为153=1的三次方5的三次方3的三次方。1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。*/#includevoid main() int a,b,c,i; for(i=100;i99&i1000;i+) a=i/100; b=(i-a*100)/10; c=(i-a*100-b*10); if (a*a*a+b*b*b+c*c*c=i) printf(i=%dn,i); /* 【程序4】题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。程序分析:对n进行分解质因数,应先找
4、到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。*/#includevoid main() int a,i,j; printf(Please enter your number:n); scanf(%d,&a); printf(%d=1,a); for(i=2,j=0;i=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。1.程序分析:(ab)
5、?a:b这是条件运算符的基本例子。*/#includevoid main() int score; printf(Please enter the score:); scanf(%d,&score); (score=90)?printf(An):(score=60&score=89)?printf(Bn):printf(Cn);/*【程序8】题目:求s=a+aa+aaa+aaaa+aa.a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。1.程序分析:关键是计算出每一项的值。 */#includevoid main() int a,
6、b,i,j,e,sum; printf(Please enter the a:); scanf(%d,&a); printf(Please enter the times:); scanf(%d,&b); for(i=1,sum=0;i=b;i+) for(j=1,e=1;j=i;j+) e=e*10+1; sum=e*a+sum; printf(sum=%dn,sum);C language 入门 习题训练(二)2010-12-04 00:29:53|分类:|字号订阅/*1已知银行整存整取存款不同期限的月息利率分别为:已知银行整存整取存款不同期限的月息利率分别为:% 期限一年% 期限二年%
7、期限三年% 期限五年% 期限八年要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。*/#includevoid main() float money,year; float a=; int i; printf(Please enter your money:n); scanf(%f,&money); printf(Please enter your year:n); scanf(%f,&year); a=+a+*year; for(i=1;iyear;i+) money=a*money; printf(money=%f,money);键盘输入十个整数,用插入法对输入的数据按照从
8、小到大的顺序进行排序,将排序后的结果输出。#includeint main() int a10; int i,j,t; for(i=0;i10;i+) printf(Please enter the number:); scanf(%d,&ai); for(j=0;j10;j+) (注意,在此处j是数组的下标,i是其后剩余的需要被一一进行比较的数的个数) for(i=1;i+jaj+i) t=aj; aj=aj+i; aj+i=t; for(i=0;i10;i+) printf(%dn,ai); return (0);42、输入一个正整数,要求以相反的顺序输出该数。例如输入12345,输出位5
9、4321。.*/#include #include int splitcircle ( int n ) int i; double k, y2; for ( i = 0, k = , y2 = ; i n; + i, k *= ) printf ( sides = %d, pi(%d) = %.24fn, 3*(1i), i, k * sqrt(y2) ); y2 = 2 - sqrt ( 4 - y2 ); return i;int main () return splitcircle ( 12 );48、A、B、C、D、E五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡
10、觉。日上三竿,A第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。C、D、E依次醒来,也按同样的方法拿鱼。编写程序求出他们合伙至少捕了多少条鱼。/*48、A、B、C、D、E五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三竿,A第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。C、D、E依次醒来,也按同样的方法拿鱼。编写程序求出他们合伙至少捕了多少条鱼。*/#includeint yu(int i) int
11、a,b,c,d,e; int j; if(i-1)%5=0) a=0; else a=1; if(i-1)/5-1)*(4/5)%5=0) b=0; else b=1; if( ( ( (i-1)/5-1)*(4/5)/5-1)*(4/5)%5=0) c=0; else c=1; if( ( ( ( (i-1)/5-1)*4/5/5-1)-1)*(4/5)%5=0 ) d=0; else d=1; if( ( ( ( ( (i-1)/5-1)/5-1)-1)-1)%5=0 ) e=0; else e=1; if(a=0&b=0&c=0&d=0&e=0) j=0; else j=1; retur
12、n(j);int main() int i,j=5; for(i=5;yu(i)!=0;i+) j=j+1; printf(%d,j); return(0);49、一辆卡车违犯交通规则,撞人逃跑。现场三人目击事件,但都没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的;丙是位数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车号。/*49、一辆卡车违犯交通规则,撞人逃跑。现场三人目击事件,但都没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的;丙是位数学家,他说:四位的车号刚好是一个整数的
13、平方。请根据以上线索求出车号。 */#includeint che(int i) int a,b,c; int k,l=0; if(i/1000=i%1000/100&i%100/10=i%10) a=0; for(k=0;k100;k+) if(k*k=i) b=0; if(a=0&b=0) c=0; return(c); int main() int i,j=1; for(i=1000;che(i)!=0;i+) j=j+1; printf(%d,j); return(0);50、若一个口袋中放有12个球,其中有3个红的,3个白的和6个黑的,每次从中任取8个球,编写程序求出共有多少种不同的
14、颜色搭配。/*50、若一个口袋中放有12个球,其中有3个红的,3个白的和6个黑的,每次从中任取8个球,编写程序求出共有多少种不同的颜色搭配。*/#includeint main() int red; int write; int black; int i=0; for(red=0;red=3;red+) for(write=0;write=3;write+) for(black=0;black=6;black+) if(red+write+black=8) i+; printf(red=%d,write=%d,black=%dn,red,write,black); return(0);51、1
15、00匹马驮100担货,大马一匹驮担,中马一匹驮担,小马两匹驮担。试编写程序计算大、中、小马的数目。/*bighouse+normalhouse+smallhouse=100;51、100匹马驮100担货,大马一匹驮担,中马一匹驮担,小马两匹驮担。试编写程序计算大、中、小马的数目。*/#includeint main() int bighouse,normalhouse,smallhouse; for(bighouse=0;bighouse=100;bighouse+) for(normalhouse=0;normalhouse=100;normalhouse+) for(smallhouse=
16、0;smallhouse=100;smallhouse+) if(bighouse+normalhouse+smallhouse=100&bighouse*3+normalhouse*2+smallhouse=100) printf(bighouse=%d,normalhouse=%d,smallhouse=%d,bighouse,normalhouse,smallhouse); return(0);52、编写程序,输出用一元人民币兑换成1分、2分和5分硬币的不同兑换方法。示200以内的完全平方数和它们的个数。(完全平方数:A2+B2=C2,求A、B、C)#includeint main()
17、int a,b,c; int d=0; for(a=0;a=200;a+) for(b=0;b=200;b+) for(c=0;c=200;c+) if(a*a+b*b=c*c) printf(a=%d,b=%d,c=%dn,a,b,c); d+; printf(number=%dn,d); return(0);54、设N是一个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),求N的值。#includevoid main() int a,b,c,d,e,f,g,h,i,j,sum1,sum2; printf(Enter ten number:); scanf(%d%d%d%d%d%d%d%d%d%d,&a,&b,&c,&d,&e,&f,&g,&h,&i,&j); sum1=0; sum2=0; if(a0) sum1=sum1+a; else if(a0) sum1=sum1+b; else if(b
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1