#include
void main()
{
int n=2,k=0;
while(k++&&n++>2);
printf("%d,%d\n",k,n);
}
运行结果:1,2
2.
#include
void main()
{
int x=23;
do
{
printf("%d\n",x–);
}while(!x);
}
运行结果:23
3.
#include
void main()
{
int x,y;
for(x=y=1;x<=100;x++)
{
if(y>=10)break;
if(y%31){y=y+3;continue;}
}
printf("%d\n",x);
}
运行结果:4
4.
#include
void main()
{
long data;
scanf("%ld",&data);
while(data)
{
printf("%ld",data%10);
data=data/10;
}
printf("\n");
}
程序运行后输入12345,则输出结果为54321.
5.
#include
void main()
{
int i,j,k=0;
for(j=50;j<=60;j++)
{
for(i=2;i
if(i>=j-1)
printf("%d\n",j);
}
}
6.
#include
void main()
{
int i=2,j=2;
if(j
{
i++;j++;
printf("\ni+j=%d",i+j);
}
else
{
i–;j–;
printf("\ni-j=%d",i-j);
}
for(j=1;j
else
printf("\nOK! \n");
}
运行结果:i+j=6
OK!
7.
#include
void main()
{
int i=0,j=10,k=2,s=0;
for(;
{
i+=k;
if(i>j)
{
printf("%d\n",s);
break;
}
s+=i;
}
}
写出语句“if(i>j)”共执行的次数和程序运行的结果。
答:执行的次数为6,运行的结果为30。
8.
#include
void main()
{
int i;
for(i=1;i<=8;i++)
{
if(i%3
else
printf("*");
}
printf("KaTeX parse error: Undefined control sequence: \n at position 1: \̲n̲"); } 运行结果:**#*…
#include
void main()
{
int i,j;
for(i=1;i<=5;i++)
{
for(j=1; j<=5-I ;j++)
printf(" “);
for(j=1; j<=2*i-1 ;j++)
printf(”%d",j);
printf("\n");
}
}
5. 输入两个正整数的,求其最大公约数。
#include
void main()
{
int m,n,r;
printf(“输入两个正整数m,n=”);
scanf("%d,%d",&m,&n);
r=m%n;
while( r!=0 )
{
m=n;
n=r;
r= m%n ;
}
printf(“最大公约数为:%d\n”,n);
}
6. 以下程序求公式
的前10项之和。
#include
void main()
{
float n,t, s=0 ;
float k=1,a=1,b=2;
for(n=1;n<=10; n++ )
{
s=s+k*b/a;
k= -k ;
t=a+b;
a=b;
b=t;
}
printf(“s=%f\n”,s);
}
7. 以下程序用标记变量法判断一个数是否为素数(质数),试完善以下程序,使之通过变量f来判断n是否素数。
#include
#include< math.h >
void main()
{
int n,k,f=1;
scanf("%d",&n);
for(k=2;k<=sqrt(n);k++)
if(n%k0){f=0;break;}
if( f1 )
printf("%d是素数\n",n);
else
printf("%d不是素数\n",n);
}
求这个序列的前20项之和。
源程序:
#include
void main()
{ float i,j,k,temp,s;
i=1;j=2;s=0;
for(k=1;k<=20;k++)
{
s+=i/j;
temp=j;j=i+j;i=temp;
}
printf(“1/2+2/3+3/5+5/8+8/13+…=%.4f\n”,s);
}
运行结果:1/2+2/3+3/5+5/8+8/13+…=12.2783
2. 编写程序,输入x的值,按下列公式计算 (精确到10-5)。
源程序:
#include
#include
void main()
{ float x,s,t,i;
printf(“输入(弧度制角)x=”);
scanf("%f",&x);
s=0;t=i=1;
while(fabs(t)>=1e-5)
{
s=s+t;
t=t*(-xx/(2i*(2*i-1)));
i++;
}
printf(“cos(%.2f)=%.5f\n”,x,s);
}
运行:输入(弧度制角)x= 1.57
结果:cos(1.57)=0.00000
3. 编写程序,按照下列的计算公式计算π值,精确
到10-6。
源程序:
#include
#include
void main()
{
float r,pi=2;
r=sqrt(2);
while(fabs(2/r-1)>=1e-6)
{
pi=pi2/r;
r=sqrt(2+r);
}
printf(“π=%.6f\n”,pi);
}
运行结果:π=3.141592
4. 要将一元钱换成1分、2分、5分的硬币,每种硬币的个数大于0且为5的倍数,编程计算并输出有多少种换法。
源程序:
#include
void main()
{
int x,y,z,s=0;
for(x=5;x<=65;x=x+5)
for(y=5;y<=35;y=y+5)
for(z=5;z<=17;z=z+5)
if(x+2
{s++;
printf(“1分:%d个 2分:%d个 5分:%d个\n”,x,y,z);
}
printf("\n满足条件的换法有:%d种。\n",s);
}
5. 求出所有三位整数100~999中同时满足除以5余2、除以7余3、除以11余7的所有整数的和及整数的个数。
源程序:
#include
void main()
{
int i,s=0,n=0;
for(i=100;i<=999;i++)
if(i%5
{
s=s+i;
n++;
printf("%6d",i);
}
printf("\n满足条件的所有整数有:%d个\n其和为:%d\n",n,s);
}
运行结果:
227 612 997
满足条件的所有整数有:3个
其和为:1836
6.用迭代法求x的平方根y,x由键盘输入,利用下列迭代公式计算。
初值y0=x/2,精确到|yn+1-yn|<10-4。
源程序:
#include
#include
void main()
{
float x,y1,y2,t;
printf(“输入一个正数:”);
scanf("%f",&x);
y1=x/2;
do
{
y2=(y1+x/y1)/2;
t=y1;
y1=y2;
}while(fabs(y2-t)>=1e-4);
printf("%.2f的平方根为%.4f\n",x,y2);
}
运行:输入一个正数:16
结果:16.00的平方根为4.0000
7.编写程序打印以下图形。
*
源程序:
#include
#include
void main()
{
int i,j;
for(i=1;i<=5;i++)
{
for(j=1;j<=fabs(i-3);j++)
printf(" “);
for(j=1;j<=5-2fabs(i-3);j++)
printf("”);
printf("\n");
}
}
8.编程测试整数n是否包含数字5(n由键盘输入),若包含数字5,则输出YES,否则输出NO。
#include
#include
void main()
{
long n;
printf(“请输入整数n=”);
scanf("%d",&n);
n=fabs(n);
while(n!=0&&n%10!=5)
n=n/10;
if(n==0)
printf(“NO\n”);
else printf(“YES\n”);
}
运行结果:
n=258
YES