第五章:循环结构程序设计(练习题)

一、阅读理解

文字描述,流程图,代码执行图

20、1.声明整型变量n和I,并把0的值赋值给n;

        2.定义for循环,把0的值赋值给i;

        3.判断i是否小于3,是进行下一步,否则进行第9步;

        4.定义一个Switch循环,n++之后为几;

        5.n++为0时,执行空语句;

        6.继续执行n++为1时,执行空语句;
 
        7.继续执行n++为2时,执行空语句;

        8.继续执行n++为3时,输出n++的值,返回第3步之和,进行i++;

        9.结束。

#include<stdio.h>
int main()
{
	int n = 0, i;
	for(i=0;i<3;i++)
		switch (n++)
		{
		case 0:
		case 1:
		case 2:
		case 3:printf("%2d", n++);
		}
	return 0;
}

 

 

 二、完善程序题

5、1.声明整型变量n,i,k,j,p,sum;

      2.定义for循环,把1的值赋值给i;

      3.判断i是否小于k除以2,是执行下一步,否则执行第13步;

      4.定义for循环,把1的值赋值给j,把0的值赋值给sum;

      5.判断sum是否小于k,是进行下一步,否则进行第3步;

      6.把sum加j的值赋值给sum,返回第5步,j自加2;

      7.判断sum是否等于k,是进行下一步,否则进行第3步;

      8.输出n,n,n,sum的值;

      9.定义for循环,把i的值赋值给p;

      10.判断p是否小于j减2,是进行下一步,否则进行第3步;

      11.输出p的值,返回第10步,p自加2;

      12.输出p的值,返回第3步;

      13.结束。

#include<stdio.h>
int main()
{
	long n, i, k, j, p, sum;
	for (n = 2; n <= 10; n++)
	{
		k = n * n * n;
		for (i = 1;i < k / 2; i += 2)
		{ 
			for(j=i,sum=0;sum<k;j+=2)
			sum += j;
			if (sum == k)
			{
				printf("\n%ld*%ld*%ld=%ld=", n, n, n, sum);
				for (p = i; p < j - 2; p += 2)printf("%ld+", p);
				printf("%ld", p);
				break;
			}
		}
	}
	return 0;
}

 

 6、1.声明长整型m,n,k,s,flag并把0的值赋值给flag;

      2.输出普通字符;

      3.输入k的值;

      4.把k的值赋值给n;

      5.把n的值赋值给m;

      6.把表达式的值赋值给s;

      7.判断s乘以s是否等于1,是进行下一步,否则进行第9步;

      8.把1的值赋值给flag;

      9.m自加1;

      10.判断m是否大于0和是否不等于flag,是进行下一步,否则返回第6步;

      11.判断m是否等于0,是进行下一步否进行第13步;

       12.判断n是否大于0和步等于flag,是进行下一步,否则返回第5步;

       13.输出m和n的值;

       14.结束。

#include<stdio.h>
int main()
{
	long m, n, k, s, flag = 0;
	printf("input k:");
	scanf_s("%ld", &k);
	n = k;
	do
	{
		m = n;
		do
		{
			s = n * (n - m) - m * m;
			if (s * s == 1)flag = 1;
			else--m;
		} while (m > 0 && !flag);
		if (m == 0)n--;
	} while (n > 0 && !flag);
	printf("m=%ld,n=%ld", m, n);
	return 0;
}

 

 8、1.声明整数变量i,j,line,并把0的值赋值给line,声明长整型n;

       2.判断n是否小于等于1,是进行下一步,否则进行第5步;

       3、输出普通字符;

       4.输入n的值;

       5.定义for循环,把2的值赋值给i,

       6.判断i是否小于等于n,是进行下一步,否则进行第12步;

       7.定义for循环,把2的值赋值给j;

       8.判断j是否小于i,是进行下一步,否则进行第6步;

       9.判断i取余j是否等于0,是进行第6步,否则进行下一步;

      10.判断j是否等于i和i取余10是否不等于9,是进行下一步,否则进行第6步;

      11.输出i的值;

      12.line自加1;

      13.判断line是否等于10,是进行下一步,否则进行第6步;

      14.输出”\n”,并且把0的值赋值给line;

      15.结束。

#include<stdio.h>
int main()
{
	int i, j, line = 0; long int n;
	printf("Please enter n:");
	scanf_s("%ld", &n);
	while (n <= 1)
	{
		printf("Enter ettor,enter again");
		scanf_s("%ld", &n);
	}
	for (i = 2; i <= n; i++)
	{
		for (j = 2; j <= n; i++)
			if (i % j == 0)break;
		if (j == i && i % 10 != 9)
		{
			printf("%d\t", i);
			line++;
				if (line == 10) { printf("\n"); line = 0; }
		}
	}
	return 0;
}

 

 9、1.声明整数变量i,j,n,声明长整型变量temp和sum,并把0的值赋值给sum;

       2.输出普通字符;

       3.输入n的值;

       4.判断n是否小于1,或者n是否大于10,是进行下一步,否则进行第7步;

       5.定义for循环,把0的值赋值给I;

       6.判断i是否小于n,是进行下一步,否则进行第12步;

       7.把0的值赋值给temp;

       8.定义for循环,把0的值赋值给j;

       9.判断j是否小于等于i,是进行下一步,否则进行第6步i自加1;

       10.把表达式的值赋值给temp,返回第9步,j自加1;

       11.把sum加temp的值赋值给sum,返回第6步,i自加1;

       12.结束。

#include<stdio.h>
#include<math.h>
int main()
{
	int i, j,n ; long temp, sum = 0;
	printf("Please input terms numbers.");
	scanf_s("%d", &n);
	while (n < 1 || n>10)
	{
		printf("Enter error,enter again.");
		scanf_s("%d", &n);
	}
	for (i = 0; i < n; i++)
	{
		temp = 0;
		for (j = 0; j <= i; j++)
			temp += (long int)pow(10, j) * (i + 1);
		sum += temp;
	}
	printf("sum=%ld\n", sum);
	return 0;
}

 

 三、编程题

1、1.声明整数变量i,j,a,并把0的值赋值给a;

      2.输出普通字符;

      3.定义for循环,把1的值赋值给i;

      4.判断i是否小于等于1000,是进行下一步,否则进行第15步;

      5.把0的值赋值给整数sum;

      6.定义for循环,把1的值赋值给j;

      7.判断j是否小于i,是进行下一步,否则i自加1进行第4步;
 
      8.判断i是否取余j等于0,是进行下一步否则进行第10步;

      9.把sum加j的值赋值给sum;1进行第4步;

     10.判断i是否取余j等于0,是进行下一步否则进行第10步;

     11.输出i的值;

     12.a自加1;

     13.a取余5是否等于0,是进行下一步,否则i自加1进行第4步;

     14.输出“n”, i自加1进行第4步;

     15.输出的值;

     16.结束。

#include<stdio.h>
int main()
{
	int i, j, a = 0;
	printf("1000以内的所有完数分别是:");
	for (i = 1; i <= 1000; i++)
	{
		int sum = 0;
		for(j=1;j<i;j++)
		{
		if (i % j == 0)
        sum = sum + j;

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

		}
	}
    printf("\n1000以内完数个数为:%d", a);
	return 0;
}

 

 2、1.声明整型变量i和j,并把0的值赋值给j;

       2.定义for循环,把1900的值赋值给i;

       3.判断i是否小于等于2000,是进行下一步否则进行第9步;

       4.判断i是否为闰年的数;

       5.输出i的值;

       6.j自加1;

       7.判断j取余3是否等于0,是进行下一步,否则i自加1,返回第3步;

       8.输出“\n”,返回第3步,并且i自加1;

       9.结束。

#include<stdio.h>
int main()
{
	int i, j = 0;
	for (i = 1900; i <= 2000; i++) {
		if ((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0)) {
			printf("%d", i);
			++j;
			if (j % 3 == 0)printf("\n");
		}
	}
	return 0;
}

 

 3、1.声明整数变量number,a,b,c,I,并且把0的值赋值给i;

       2.定义for循环,把100的值赋值给number;

       3.判断number是否小于等于999,是进行下一步,否则进行第12步;

       4.把number除以100的数赋值给a;

       5.把number取余100除以10的值赋值给b;

       6.把number取余10的值赋值给c;

       7.判断number是否等于表达式的值,是进行下一步,否则返回第3步,number自加1;

       8.输出number的值;

       9.i自加1;

       10.判断i取余2是否等于0,是进行下一步,否则返回第3步,number自加1;

       11.输出“\n”,返回第3步,number自加1;

       12.结束。

#include<stdio.h>
int main()
{
	int number, a, b, c, i = 0;
	for (number = 100; number <= 999; number++)
	{
		a = number / 100;
		b = number % 100 / 10;
		c = number % 10;
		if (number == a * a * a + b * b * b + c * c * c){
			printf("%d\t", number);
			i++;
			if (i % 2 == 0)printf("\n");
		}
	}
	return 0;
}

 

4、1.声明整数变量k,i,n,t;

      2.声明单精度浮点型变量e和s,并把1的值分别赋值给e和s;

      3.输入n的值;

      4.把1的值赋值给t;

      5.定义for循环,把1的值赋值给i;

      6.判断i是否小于等于k,是进行下一步,否则进行第 步;

      7.把t乘以i的值赋值给t;

      8.把表达式的值赋值给e;

      9.k自加1;

     10.判断k是否小于等于n,是进行下一步,否则返回第4步;

     11.输出e的值;

     12.结束。

#include<stdio.h>
int main()
{
	int k = 1, i, n, t;
	float e = 1, s = 1;
	scanf_s("%d", &n);
	do
	{
		t = 1;
		for (i = 1; i <= k; i++)
			t = t * i;
		e = e + 1.0 / t;
		k++;
	} while (k <= n);
	printf("%.2f\n", e);
	return 0;
}


 

 

 5、1.声明单精度浮点型变量y,s,x,xx,a,i,并把1的值赋值给s,xx,a,i;

       2.输入x的值;

       3.把-a的值赋值给a;

       4.i自加1;

       5.把xx乘以x的值赋值给xx;

       6.把i除以xx的值赋值给y;

       7.把s加a乘以y的值赋值给s;

       8.判断y是否大于0.00001,是进行下一步,否则进行第3步;

       9.输出s的值,

       10.结束。

#include<stdio.h>
int main()
{
	float y, s = 1, x, xx = 1, a = 1, i = 1;
	scanf_s("%f", &x);
	do
	{
		a = -a;
		i++;
		xx = xx * x;
		y = i / xx;
		s = s + a * y;
	} while (y > 0.00001);
	printf("%f", s);
	return 0;
}

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值