华电C语言题库(循环中等难度)

循环
在这里插入图片描述

#include <stdio.h>`
`#include <string.h>`
`void main()`
`{`
	`int  m, n,i,j,k=0,l;`
	`scanf_s("%d%d", &m, &n);`
	`if (m < 2)m = 2;`
	`for (i = m,l=0; i <= n; i++)`
	`{`
		`for (j = 2; j < i; j++)`
		`{`
			`if(i%j==0)`
			`{`
				`k = 1;`
				`break;`
			`}`
		`}`
		`if (k == 0)`
		`{`
			`printf("%5d", i);`
			`l++;`
			`if (l % 5 == 0)printf("\n");`
		`}`
		`else`
		`{`
			`k = 0;`
		`}`
	`}`
`}`


在这里插入图片描述

#include <stdio.h>
#include <string.h>
void main()
{
	int a,m,n,i;
	scanf_s("%d", &a);
	for (m = 1, n = 1,i=1; m < a||n<a;i++)
	{
		if (i % 2 == 1) 
		{ 
			printf("%d ", m);
			m = m + n;
		}
		if (i % 2 == 0)
		{
			printf("%d ", n);
			n = m + n;
		}
	}
}

在这里插入图片描述

#include <stdio.h>
int main()
{
 int i,j,z;
 for (i=1;i<=4;i++)
 {
 	for(j=1;j<=4;j++)
 	{
 		if (i==j)continue;
 		for(z=1;z<=4;z++)
 		{
 			if(i==z||j==z)continue;
 			printf("%d,%d,%d\n",i,j,z);
		 }
	 }
 }
 return 0;
}

在这里插入图片描述

#include<stdio.h>
int main(void)
{
 int car,i;
 int a[4];
 for(car=1;car<=4;car++)
 {
  a[0]=(car==2);
  a[1]=(car==4);
  a[2]=(car!=3);
  a[3]=(car!=4);
  if(a[0]+a[1]+a[2]+a[3]==1)
  {
   printf("最好赛车编号为%d\n",car);
   for(i=0;i<=3;i++)
   {
    if(a[i]) printf("说对的专家为%c",'A'+i);
   }
  }
 }
 return 0;
}

编写程序利用公式:ex=1+x+x2/2!+x3/3!+…+xn/n!求的近似值。

找出并改正以下源程序中错误,得出正确的运行结果。

源程序如下:

#include <stdio.h>

#include <math.h>

void main()

{

int i;

float a,e,x;

printf("请输入x的值:");

scanf("%d",&x);

e=0;

i=0;

a=1;

while(a>1e-6);

{

    a=a*x/i;

    e=e+a;

    i++;

}

printf("exp(x)=%f\n",exp(x));

printf("循环次数为:%d次,e的x次方为:%f\n",i,e);

}

程序正确的运行结果为:

1.0

exp(x)=2.718282

循环次数为:11次,e的x次方为:2.718282

Press any key to continue

#include <stdio.h>
#include <math.h>
int main()
{
    int i;
    float a,e,x;
   
    scanf("%f",&x);
    e=1;
    i=1;
    a=1;
    while(a>1e-6)
    {
        a=a*x/i;
        e=e+a;
        i++;
	
    }
    printf("exp(x)=%f\n",exp(x));
    printf("循环次数为:%d次,e的x次方为:%f\n",i,e);
	return 0;
}

在这里插入图片描述

#include <stdio.h>
#include <math.h>
int select(int i);
int main()
{
	int i,j,k,m;
	for(i=1;i<10000;i++)
	{
	j=i+100;
	k=i+268;
	m=select(j)+select(k);
	if(m==2)printf("%d\n",i);
	}
	return 0;
}
int select(int i)
{
	int c=0;
	int j;
	for(j=0;j<100;j++)
	{
		if(i==j*j)
		{
		c=1	;
		}
	}
	return c;
}

在这里插入图片描述

#include <stdio.h>
#include <string.h>
void main()
{
	int a, i,c, j, k, b[10] = { 0 };
	scanf_s("%d", &a);
	c = a;
	i = 2;
	j = 0;
	while (i<=a)
	{
		if (a % i == 0)
		{
			a = a / i;
			b[j] = i;
			
			j++;
			i = 2;
		}
		else { i++; }
		
	}
	for (k = 0; b[k] != 0; k++)
	{
		if (k== 0)printf("%d=%d",c, b[k]);
		else
		{
			printf("*%d", b[k]);
		}
	}
}

在这里插入图片描述

#include <stdio.h>
int main()
{
	int i, j, sum = 0;

	for (i = 2; i <= 1000; i++)  
	{
		for (j = 1; j < i; j++)    
		{
			if (i % j == 0)       
			{
				sum = sum + j;    
			}
		}

		if (sum == i)
		{
			printf("%d \n", i);
		}

		sum = 0;
	}

	return 0;

}

在这里插入图片描述

#include <stdio.h>
int main()
{
	int i, a,b,c, sum = 0;
	for (i=100;i<1000;i++)  
	{
		a = i % 10;
		b = (i - a) / 10 % 10;
		c = i / 100;
		if (i == a * a * a + b * b * b + c * c * c)printf("%d  ", i);
	}
	return 0;
}

在这里插入图片描述

#include <stdio.h>
#include<math.h>
int main()
{
	int a, n,i,j=0,num=0;
	scanf_s("%d%d", &a, &n);
	for (i = 1;log10(i)<n ; i*=10)
	{
		j += (a * i);
		num += j;
	}
	printf("sum=%d", num);
}

在这里插入图片描述

#include <stdio.h>
int main()
{
	int m, n,temp,r,p;
	scanf("%d,%d", &m, &n);
	
	if (m < n)
	{
		temp = m;
		m = n;
		n = temp;
	}
	r = m % n;
	p = m * n;
	while (r != 0)
	{
		m = n;
		n = r;
		r = m % n;
	}
	printf("最大公约数是%d\n", n);
	printf("最小公倍数是%d\n", p / n);
}

posted @ 2022-02-13 23:37  陌夜  阅读(92)  评论(0编辑  收藏  举报