第五章循环结构程序设计实训教程第二次练习

阅读程序题20

 代码:

#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;
}

 执行结果:

文字描述

1.定义整数n=0,i
2.i=0
3.判断i<3为真执行4否则执行5
4.当(n++)时,计算:
    case 0:
    case 1:
    case 2:
    case 3:
输出·n++的值;
5.i++后转3

流程图

 

 完善程序题5

代码:

#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;
			}
		}
		if (i >= k / 2)printf("\n error!");
	}
	return 0;
}

执行结果:

文字描述

(1)定义六个整数变量,分别为n,i,k,j,p,sum;

(2)给n赋值,n=2;

(3)如果n<=10为真,则执行(4),否则循环结束;

(4)计算k=n*n*n;

(5)给i赋值,i=1;

(6)如果i<k/2为真,则执行(7)否则执行();

(7)给j和sum赋值,j=i,sum=0;

(8)如果sum<k为真,则执行(9),否则执行(16);

(9)计算sum+=j;

(10)如果sum==k为真,则输出n,n,n,sum;

(11)给p赋值,p=i;

(12)如果p<j-2为真,则输出p,否则执行(14);

(13)计算p+=2;

(14)输出p;

(15)计算j+=2;返回(8);

(16)如果i>=k/2为真,则执行(17),否则执行(18);

(17)输出error;

(18)计算i+=2,返回(6);

(19)计算n=n+1,返回(3);

流程图

 

完善程序题6

代码:

#include<stdio.h>
int main()
{
	long m, n, k, s, flag = 0;
	printf("input k:");
	scanf_s("%d", &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;
}

 执行结果:

 文字描述

(1)定义五个长整型常量,分别为m,n,k,s,flag;

(2)给flag赋值,flag=0;

(3)从键盘上获取一个数存入k;

(4)给k赋值,k=n;

(5)给m赋值,m=n;

(6)计算s=n*(n-m)-m*m;

(7)如果s*s==1为真,则执行(8),否则执行(9);

(8)给flag赋值,flag=1;

(9)计算m--;

(10)如果m>0&&!flag为真,则返回(6),否则执行(11);

(11)如果m==0为真,则执行n--;

(12)如果n>0&&!flag为真,则返回(5),否则执行(13);

(13)输出m,n;

流程图

 

完善程序题8

代码:

#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 error,enter again.");
		scanf_s
		("%ld", &n);
	}
	for(i=2;i<=n;i++)
	{
		for (j = 2; j < i; j++)
			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;
}

执行结果:

文字描述

(1) 定义三个整数变量和一个长整型变量,分别为i,j,line,n;

(2)从键盘上获取一个数存入n;

(3)如果n<=1,则执行(4),否则执行(5);

(4)重新输入一个数存入n;

(5)给i赋值,i=2;

(6)如果i<=n为真,则执行(7),否则循环结束;

(7)给j赋值,j=2;

(8)如果j<i为真,则执行(9),否则执行(11);

(9)如果i%j==0为真,则执行(10);

(10)计算j++,返回(8);

(11)如果j==i&&i%10!=9为真,则执行(12),否则执行();

(12)输出i,line++;

(13)如果line==10为真,则执行(14),否则执行(15);

(14)输出换行,line=0;

(15)计算i++,返回(6);

流程图

 

完善程序题9

代码:

#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)定义三个整数变量和两个长整型变量,分别为i,j,n,temp,sum;

(2)给sum赋值,sum=0;

(3)从键盘上获取一个数存入n;

(4)如果n<1||n>10为真,则执行(5),否则执行(6);

(5)重新从键盘上获取一个数存入n;

(6)i=0;

(7)如果i<n为真,则执行(8),否则执行(15);

(8)temp=0;

(9)j=0;

(10)如果j<=i为真,则执行(11),否则执行(13);

(11)计算temp+=(long int)pow(10,j)*(i+1);

(12)j++,返回(10);

(13)计算sum+=temp;

(14)i++,返回(7);

(15)输出sum;

流程图

编程题1

代码:

#include<stdio.h>
int main()
{
 int i, j, n = 0, sum;
 for (i = 3; i <= 1000; i++)
 {
  sum= 0;
  for (j = 1; j < n - 1; j++)
   if (n % j == 0)sum = sum + j;
  if (i == sum)
  {
   printf("%d", i);
   n++;
   if (n % 5 == 0)printf("\n");
  }
 }
 printf("\n%d\n", n);
 return 0;
}
 

执行结果: 

文字描述:

1.定义整数变量i,j,n=0,sum
2.i=3
3.i<=1000值为真走4,否则输出n,结束
4.sum=0
5.j=1
6.j<n-1值为真走7,否则转10
7.n%j==0值为真走9,否则转8
8.j++返回6
9.sum=sum+j返回8
10.i==sum值为真走12否则转11
11.i++返回13
12.输出i
13.n++
14.n%5==0值为真走15否则转11
15输出换行返回11

流程图:

编程题2

 

代码:

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

执行结果:

文字描述:

1.定义整数变量i,n=0
2.i=1900
3.i<=2000值为真走4,否则结束
4.i % 4 == 0 && i % 100 != 0 || i % 400 == 0值为真走6,否则转5
5.i++返回3
6.输出i
7.n++
8.n%3==0值为真输出换行返回5,否则返回5

流程图:

 编程题3

代码:

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

执行结果:

文字描述:

1.定义整数变量i,a,b,c,n=0
2.i=100
3.i<=999值为真走4,否则结束
4.a = i / 100
5.b = (i - a * 100) / 10
6.c = i % 10
7.a * a * a + b * b * b + c * c * c == i值为真走9,否则转8
8.i++返回3
9.输出i
10.n++
11.n%2==0值为真输出换行返回8,否则转8

流程图:

编程题4

代码:

执行结果:

文字描述:

流程图:

编程题5

代码:

执行结果:

文字描述:

流程图:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值