您好,欢迎来到独旅网。
搜索
您的当前位置:首页C语言 循环结构程序设计模拟题

C语言 循环结构程序设计模拟题

来源:独旅网

编程题
1.编写程序,求两个整数的最大公约数。1级)
#include<stdio.h>
main()
{
int a,b,temp,r;

scanf("%d,%d",&a,&b);
if(a<b)
{
temp= a;
a= b;
b= temp;
}

r=a%b;
while(r>0)
{
b=r;
a=b;
r=a%b;
}

printf("最大公约数为%d\n",b);
return 0;
}

2.把输入的整数(最多不超过5位)按输入顺序的反方向输出,例如,输入数是12345,要求输出结果是54321,编程实现此功能。1级)
#include<stdio.h>
main()

{
long int x,z,m;
inty,i=0;
scanf("%ld",&x);
m=x;
while(m>0)
{
y=m%10;
m=m/10;
i=i+1;
}
if(i==1)

{
z=x;
printf("%d",z);
}
if(i==2)
{
z=10*(x%10)+x/10;
printf("%d",z);
}
if(i==3)
{
z=100*(x%10)+10*(x%100/10)+x/100;
printf("%d",z);
}
if(i==4)
{
z=1000*(x%10)+100*(x%1000%100/10)+10*(x%1000/100)+x/1000; printf("%d",z);
}
if(i==5)
{

z=10000*(x%10)+1000*(x%10000%1000%100/10)+100*(x%10000%1000/100)+10*(x%10000/1000)+x/10000;
printf("%d",z);
}
return 0;
}

或者
#include<stdio.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("%ld%ld%ld%ld%ld\n",e,d,c,b,a);

elseif (b!=0)
printf("%ld%ld%ld%ld\n",e,d,c,b);
elseif (c!=0)
printf("%ld%ld%ld\n",e,d,c);
elseif (d!=0)
printf("%ld%ld\n",e,d);
elseif (e!=0)
printf("%ld\n",e);
return0;
}

3.中国古代数学家张丘建提出的“百鸡问题”:一只大公鸡值五个钱,一只母鸡值三个钱,三个小鸡值一个钱。现在有100个钱,要买100只鸡,是否可以?若可以,给出一个解,要求三种鸡都有。请写出求解该问题的程序。1级)
#include<stdio.h>
main()

{
intx,y,z;

for(x=1;x<20;x++)
{
for(y=1;y<33;y++)
{
for(z=1;z<300;z++)
{
if((x+y+z==100)&&(5*x+3*y+z/3==100)&&(z%3==0)) printf("x=%d,y=%d,z=%d\n",x,y,z);
}
}
}
return0;
}

4100~200 间的全部素数。1 级)

#include<stdio.h>

main()

{
inti,j;

for(i=100;i<=200;i++)
{
for(j=2;j<i;j++)
{
if(i%j!=0)
printf("%d\t",i);
break;
}
}
return0;
}

5整元换零钱问题。把1元兑换成1分,2分,5分的硬币,共有多少种不同换法,请编写求解此问题的程序。1级)
#include<stdio.h>

main()

{
inti,j,k;

for(i=0;i<=100;i++)
{
for(j=0;j<=50;j++)
{
for(k=0;k<=20;k++)
{
if(i+2*j+5*k==100)
printf("一分%d,两分%d,五分%d\n",i,j,k);
}
}
}

return0;
}

6有一分数序列:2/13/25/38/513/821/13...,编写程序求这个数列的前20项之和。1级)
#include<stdio.h>

main()

{
inti,j,t;
float term1,term2,term,sum;
sum=0;
term1=2;
term2=1;

for(i=1;i<=20;i++)
{
sum=sum+term1/term2;
t=term1;
term1=term1+term2;
term2=t;
}
printf("%f\n",sum);
return0;
}

7.编写程序,利用公式e=1+1/1!+1/2!+1/3!+....+1/n!求出e的近似值,其中n的值由用户输入(用于控制精确度)。1级)
#include<stdio.h>

main()

{
inti;
floate,term1,term;
e=0;
term=1;

for(i=1;i<=10;i++)
{
term1=1/term;
e=e+term1;
term=term*i;
}
printf("e=%f",e);
return0;
}

8.一个数如果恰好等于它的因子之和(除自身外),则称该数为完全数,例如:6=1+2+36就是完全数,请编写一程序,求出1000以内的整数中的所有完全数。其中10002级)由用户输入。

#include<stdio.h>

main()

{
inti,j,x,sum;

for(i=2;i<1000;i++)
{
sum=0;
for(j=1;j<i;j++)
{
if(i%j==0)
{
sum=sum+j;
}
}
if(sum==i)
printf("%d\t",i);
}

return0;
}

9.编一程序,将2000年到3000年中的所有闰年份输出并统计出闰年的总年数,要求每10个闰年放在一行输出。1级)

#include<stdio.h>

main()

{
inti,counter=0;

for(i=2000;i<=3000;i++)
{
if((i%400==0)||(i%4==0&&i%100!=0))
{
counter++;

printf("%d\t",i);
}
}
printf("\n%d\n",counter);
return0;
}

10.请编写一程序,打印出九九乘法口诀表(例:1*1=1)。1级)#include<stdio.h>
main()
{
inti,j,k;
for(i=1;i<=9;i++)
{

for(j=1;j<=9;j++)
{
k=i*j;
printf("%4d",k);
}
printf("\n");
}
return0;
}

11.请编写一程序,将所有“水仙花数”打印出来,并打印出其总数。“水仙花数”是一个其各位数的立方和等于该整数的三位数。(04~05第二学期试题)
#include<stdio.h>
#include<math.h>

int main()
{
int i,x,y,z,counter=0;

for(i=100;i<=999;i++)
{
x=i/100;
y=i%100/10;
z=i%10;
if(x*x*x+y*y*y+z*z*z==i)
{
printf("%d\t",i);

counter++;
}
}
printf("\n%d\n",counter);
return0;
}

12.编写一程序,求1-3+5-7+.........-99+101的值。1级)
#include<stdio.h>
#include<math.h>
int main()
{
int i,sum=0;

for(i=1;i<=51;i++)
{
sum=sum+(pow(-1,i-1))*(2*i-1);
}
printf("%d\n",sum);
return0;
}

13.编写程序,计算1!+2!+3!+.......+n!的值,其中n的值由用户输入。1级)#include<stdio.h>

main()
{
int i,n,sum=0,term=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=sum+term;
term=term*(i+1);
}
printf("%d\n",sum);
return0;
}

14.求sn=a+aa+aaa+aaaa+......+aa.....a的值,其中a是一个数字,例如:2+22+222+2222+22222(此时n=5)na的值由键盘输入,请编程实现以上和过程。1级) #include<stdio.h>

main()
{
int n,i,a,term=0,sum=0;

scanf("%d,%d",&n,&a);

for(i=1;i<=5;i++)
{
sum=sum+(10*term+a);
term=10*term+a;
}

printf("%d\n",sum);
return0;
}

15.编写程序,用迭代法求x=a的近似根。求平方根的迭代公式为:Xn+1=(Xn+a/Xn)/2。要求前后两次求出的x的差的绝对值小于0.000011级)

16.一个求从100米高度自由落下,每次落地后又反弹回原来高度的一半,再落下,求它在第10次落地时共经过多少米?第10次反弹多高?编写程序求解该问题。1级)

#include<stdio.h>

main()
{
float sn=100.0,hn=sn/2;
int n;
for(n=2;n<=10;n++)
{
sn=sn+2*hn;
hn=hn/2;
}
printf("thetotal of road is %f\n",sn);
printf("thetenth is %f meter\n",hn);
return0;
}

17.若有如下公式:

2

1


1



1



1


6


1 2

+

2

2

+

3

2

+。。。。。。。+

n

2

试根据上述公式编程计算

的近似值



(精确到10-6)。03 试题)

#include<stdio.h>
#include<math.h>
main()
{
int i,n;
float pi,term1,term,sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
term=i*i;
term1=(float)1/term;
sum=sum+term1;

}

pi=sqrt(6*sum);
printf("%f",pi);
return 0;
}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- dcrkj.com 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务