C语言入门习题训练Word文档格式.docx
《C语言入门习题训练Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言入门习题训练Word文档格式.docx(51页珍藏版)》请在冰点文库上搜索。
,sum);
}
}
/*【程序2】
判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:
判断素数的方法:
用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
*/
inta,amount;
for(amount=0,a=101;
100<
a&
a<
201;
a++)
if(a%2!
=0)
amount=amount+1;
a=%d\t"
a);
/*【程序3】
打印出所有的"
水仙花数"
,所谓"
是指一个三位数,其各位数字立方和等于该数本身。
例如:
153是一个"
,因为153=1的三次方+5的三次方+3的三次方。
利用for循环控制100-999个数,每个数分解出个位,十位,百位。
inta,b,c,i;
for(i=100;
i>
99&
i<
1000;
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)
i=%d\n"
i);
/*【程序4】
将一个正整数分解质因数。
输入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的值,重复执行第一步。
inta,i,j;
Pleaseenteryournumber:
\n"
a);
%d=1"
for(i=2,j=0;
=a;
for(;
a%i==0;
)
j=i;
*%d"
j);
a=a/j;
/*
【程序5】
利用条件运算符的嵌套来完成此题:
学习成绩>
=90分的同学用A表示
,60-89分之间的用B表示,60分以下的用C表示。
(a>
b)?
a:
b这是条件运算符的基本例子。
intscore;
Pleaseenterthescore:
score);
(score>
=90)?
printf("
A\n"
):
(score>
=60&
score<
=89)?
B\n"
C\n"
【程序8】
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
例如2+22+222+2222+22222(此时共有5个数相加)
,几个数相加有键盘控制。
关键是计算出每一项的值。
*/
inta,b,i,j,e,sum;
Pleaseenterthea:
Pleaseenterthetimes:
b);
for(i=1,sum=0;
=b;
for(j=1,e=1;
j<
=i;
j++)
e=e*10+1;
sum=e*a+sum;
sum=%d\n"
Clanguage入门习题训练
(二)
2010-12-0400:
29:
53|
分类:
|字号
订阅
/*1已知银行整存整取存款不同期限的月息利率分别为:
已知银行整存整取存款不同期限的月息利率分别为:
%期限一年
%期限二年
%期限三年
%期限五年
%期限八年
要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。
floatmoney,year;
floata=;
inti;
Pleaseenteryourmoney:
%f"
money);
Pleaseenteryouryear:
year);
a=+a+*year;
for(i=1;
year;
money=a*money;
money=%f"
money);
键盘输入十个整数,用插入法对输入的数据按照从小到大的顺序进行排序,将排序后的结果输出。
intmain()
inta[10];
inti,j,t;
for(i=0;
10;
Pleaseenterthenumber:
a[i]);
for(j=0;
j++)
{(注意,在此处j是数组的下标,i是其后剩余的需要被一一进行比较的数的个数)
i+j<
if(a[j]>
a[j+i])
t=a[j];
a[j]=a[j+i];
a[j+i]=t;
%d\n"
a[i]);
return(0);
42、输入一个正整数,要求以相反的顺序输出该数。
例如输入12345,输出位54321。
.
#include<
intsplitcircle(intn)
doublek,y2;
for(i=0,k=,y2=;
i<
n;
++i,k*=)
printf("
sides=%d,pi(%d)=%.24f\n"
3*(1<
<
i),i,k*sqrt(y2));
y2=2-sqrt(4-y2);
returni;
intmain()
returnsplitcircle(12);
48、A、B、C、D、E五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。
日上三竿,A第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。
B第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。
C、D、E依次醒来,也按同样的方法拿鱼。
编写程序求出他们合伙至少捕了多少条鱼。
B第二个醒来,
也将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。
intyu(inti)
inta,b,c,d,e;
intj;
if((i-1)%5==0)
a=0;
else
if(((i-1)/5-1)*(4/5)%5==0)
b=0;
if((((i-1)/5-1)*(4/5)/5-1)*(4/5)%5==0)
c=0;
c=1;
if(((((i-1)/5-1)*4/5/5-1)-1)*(4/5)%5==0)
d=0;
d=1;
if(
(((((i-1)/5-1)/5-1)-1)-1)%5==0)
e=0;
e=1;
if(a==0&
b==0&
c==0&
d==0&
e==0)
j=0;
j=1;
return(j);
inti,j=5;
for(i=5;
yu(i)!
=0;
j=j+1;
return(0);
49、一辆卡车违犯交通规则,撞人逃跑。
现场三人目击事件,但都没记住车号,只记下车号的一些特征。
甲说:
牌照的前两位数字是相同的;
乙说:
牌照的后两位数字是相同的;
丙是位数学家,他说:
四位的车号刚好是一个整数的平方。
请根据以上线索求出车号。
/*49、一辆卡车违犯交通规则,撞人逃跑。
四位的车
号刚好是一个整数的平方。
intche(inti)
inta,b,c;
intk,l=0;
if(i/1000==i%1000/100&
i%100/10==i%10)
for(k=0;
k<
100;
k++)
if(k*k==i)
b==0)
return(c);
intmain()
inti,j=1;
for(i=1000;
che(i)!
50、若一个口袋中放有12个球,其中有3个红的,3个白的和6个黑的,每次从中任取8个球,编写程序求出共有多少种不同的颜色搭配。
/*50、若一个口袋中放有12个球,其中有3个红的,3个白的和6个黑的,每次从中任取8个球,
编写程序求出共有多少种不同的颜色搭配。
intred;
intwrite;
intblack;
inti=0;
for(red=0;
red<
=3;
red++)
for(write=0;
write<
write++)
for(black=0;
black<
=6;
black++)
if(red+write+black==8)
i++;
red=%d,write=%d,black=%d\n"
red,write,black);
51、100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。
试编写程序计算大、中、小马的数目。
/*bighouse+normalhouse+smallhouse==100;
试编写程序计算大、
中、小马的数目。
intbighouse,normalhouse,smallhouse;
for(bighouse=0;
bighouse<
=100;
bighouse++)
for(normalhouse=0;
normalhouse<
normalhouse++)
for(smallhouse=0;
smallhouse<
smallhouse++)
if(bighouse+normalhouse+smallhouse==100&
bighouse*3+normalhouse*2+smallhouse==100)
bighouse=%d,normalhouse=%d,smallhouse=%d"
bighouse,normalhouse,smallhouse);
52、编写程序,输出用一元人民币兑换成1分、2分和5分硬币的不同兑换方法。
示200以内的完全平方数和它们的个数。
(完全平方数:
A2+B2=C2,求A、B、C)
intd=0;
for(a=0;
=200;
for(b=0;
b<
b++)
for(c=0;
c<
c++)
if(a*a+b*b==c*c)
a=%d,b=%d,c=%d\n"
a,b,c);
d++;
number=%d\n"
d);
54、设N是一个四位数,它的9倍恰好是其反序数(例如:
123的反序数是321),求N的值。
inta,b,c,d,e,f,g,h,i,j,sum1,sum2;
Entertennumber:
%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(a>
0)
sum1=sum1+a;
elseif(a<
sum2=sum2+a;
if(b>
sum1=sum1+b;
elseif(b<
sum2=sum2+b;
if(c>