第五章 循环结构程序设计 习题

19(5),
文字描述:
1,定义整型 k,x
2,赋值k=0,x=0
3,判断k<=9&&x!=10
4,真执行x=x+2,再执行k++,再执行3
5,假执行输出k,x

代码:
#include<stdio.h>
int main()
{ int k, x;
for (k = 0, x = 0;k <= 9 && x != 10;k++)
x = x + 2;
printf("%d,%d", k, x);
return 0;}

流程图:

 

执行结果:
19(6),
文字描述:

定义字符型变量 c
赋值c=getchar()
判断getchar()!=’#’
真执行putchar(c),再执行c=getcahr()
假执行 结束
代码:
#include<stdio.h>
int main()
{undefined
char c;
for (c = getchar();getchar() != ‘#’;c = getchar())
putchar©;
}

流程图:

 

 

执行结果:
21(14),
文字描述:

设有字符型变量ch
输入ABCDEFG(左下箭头)
判断ch=getchar()!=’\n’
真执行输出ch
假结束
代码:
#include<stdio.h>
int main()
{ char ch;
for (;(ch = getchar()) != ‘\n’
printf("%c", ch);

}

流程图:

执行结果:
21(15),
文字描述:
1: 定义整型变量i
2:ch=getchar()!=’\n’
3:从键盘输入ABCDEFG代入2中
4:输出代入后字符类型ch的值

代码:#include<stdio.h>
int main()
{undefined
int i, a = 1;
unsigned j;
for (j = 15; j > 0; j -= 2)
{ a = a++;
printf(“a=%d\n”, a);
}
}

流程图:

 

执行结果;
21(1),
文字描述:

定义 int i
赋值i=1
判断i是否<=6
真执行 (判断i%2,真走输出*,假走输出#)
假执行结束
代码:#include<stdio.h>
int main()
{undefined
int i;
for (i = 1;i < 6;i++)
{undefined
if (i % 2)
printf("*");
else
printf("#");
}
return 0;
}

流程图:
执行结果:
21(2),
文字描述: 

 

定义 int m=1,n,i
赋值i=0
判断i<5
真执行(定义int m=1 ;m++;如果i==4,就赋值n=m,再执行i++,否则执行结束)
假执行结束
代码:#include<stdio.h>
int main ()
{undefined
int m = 1, n, i;
for (i = 0;i < 5;i++)
{undefined
int m = 1;
m++;
if (i == 4)n = m;
}
printf("%d,%d", m, n);
return 0;
}

流程图:

 

执行结果:

22 (3) ,
文字描述:

定义int i
赋值i=‘a’
判断i<‘f’
真执行 输出i-’a’+‘A’,再执行i++,i++,再回到3重复执行
假执行 结束
代码:#include<stdio.h>
int main()
{undefined
int i;
for (i = ‘a’;i < ‘f’;i++, i++)
printf("%c", i - ‘a’ + ‘A’);
return 0;
}

流程图:

 

执行结果:

22 (4) ,
文字描述:

定义 f,f1,f2,i
赋值 f1=1,f2=1
输入 f1,f2
赋值i=3
判断 i<5
真执行f=f1+f2,并输出f,再赋值f1=f2.f2=f,再执行i++再回到5
假执行结束
代码:
#include<stdio.h>
int main ()
{undefined
int f, f1, f2, i;
f1 = 1, f2 = 1;
printf("%2d%2d", f1, f2);
for (i = 3;i <= 5;i++)
{undefined
f = f1 + f2;
printf("%2d", f);
f1 = f2;f2 = f;
}
return 0;
}

流程图:
执行结果:
22(5),
文字描述:

 

定义 n=5
判断 n%2
执行 case=0:n–;真执行 结束2整个循环
执行结束
假执行 case1:n–;真 跳出这个循环执行5
赋值 n–
输出n
判断n>0
真执行结束
10.假 重复执行2
代码:#include<stdio.h>
int main()
{undefined
int n = 5;
do
{undefined
switch (n % 2)
{undefined
case 0: n–;
break;
case 1: n–;
continue;
}n–;
printf("%2d", n);
} while (n > 0);
return 0;
}

流程图:

 

执行结果:

23(7),
文字描述:

定义x=10
当x–时
输出赋值x=x时符合2的值时,执行4
否则直接执行4
输出x 并结束
代码:
#include<stdio.h>
int main()
{undefined
int x = 10;
while(x–);
printf(“x=%d\n”, x);
return 0;
}

流程图:

 

执行结果:
23(9),
文字描述:

定义m=9
判断m>0
真执行(如果m%3==0,输出–m,否则结束)
再执行m–,再回到2重复执行
假执行直接输出
代码:
#include <stdio.h>
int main ()
{undefined
int m = 9;
for (;m > 0;m–)
if (m % 3 == 0)
printf("%d", --m);
return 0;
}

流程图:
执行结果:

 

23(10),
文字描述:

定义 x=8
判断 x>0
真执行(如果x%3==0,输出x–,再跳出这个循环,执行5)
再执行x–,再回到2重复执行
输出–x
假执行直接输出
代码:#include <stdio.h>
int main ()
{undefined
int x = 8;
for(;x>0;x–)
{if(x%3==0)
{undefined
printf("%d", x–);
continue;
}
printf("%d", --x);
}
return 0;
}

流程图:

 


执行结果:
24(11),
文字描述:

定义x=3
执行 输出x=x-3
判断是否符合!x
真输出
假回到2重复执行
代码:
#include<stdio.h>
int main()
{undefined
int x = 3;
do
{undefined
printf("%3d", x = x - 3);
} while (!x);
return 0;
}

流程图:

 

执行结果:

24(12),
文字描述:

定义x=2
执行输出!x-2
判断是否符合–x
真执行输出并结束
假执行回到2重复执行
代码:
#include<stdio.h>
int main()
{undefined
int x = 2;
do
{undefined
printf("%3d", !x - 2);
} while (–x);
return 0;

}

流程图:

 

执行结果:

24(13),
文字描述;

定义n=12345,d
判断n!=0
执行d=n%10
执行输出 d
执行n=n/10
真执行输出
假执行回到2重复执行
代码:
#include<stdio.h>
int main()
{undefined
int n = 1234.5, d;
while (n != 0)
{undefined
d = n % 10;
printf("%d", d);
n = n / 10;
}
return 0;
}

流程图:
执行结果:

 

24(14),
文字描述:

定义int m=0,sum=0
定义char c, oldc=’+’
赋值c=getchar()
如果c<=‘9’&&c>=‘0’,执行m=10*m+c-‘0’
否则执行(如果oldc==’+’,执行sum+=m,否则执行sum-=m)
执行m=0,oldc=c
执行输出sum
判断c!=’=’
真执行输出结束
10.假执行回到3重复执行
代码:
#include<stdio.h>
int main()
{undefined
int m = 0, sum = 0;
char c, oldc = ‘+’;
do
{undefined
c = getchar();
if (c <= ‘9’ && c >= ‘0’)m = 10 * m + c - ‘0’;
else
{undefined
if (oldc == ‘+’)sum += m;
else sum -= m;
m = 0;
oldc = c;
printf("%3d", sum);
}
} while (c != ‘=’);
return 0;

}

流程图:

 

执行结果:

25(16),
文字描述:

定义t=1,n=235
执行t*=n%10
执行n/10
判断是否等于n
真则执行输出t并结束
假则执行回到2重复执行
代码:
#include<stdio.h>
int main()
{undefined
int t = 1, n = 235;
do
{undefined
t*=n % 10;
n /= 10;
} while (n);
printf("%d\n", t);
return 0;

}

流程图:

 


执行结果:

26(17),
文字描述:

定义 int m=5,n=0
判断m>0
真执行设m ,判断case 1情况是否符合,符合执行7 ,否则结束循环
判断case3:n+=1,m–,是否符合,符合执行 7 ,否则输出Default:n=0,m–
判断case2是否符合,符合执行7 ,否则结束循环
判断 case4:n+=2,m–是否符合,符合执行 ,否则结束循环
输出n并结束
代码:
#include<stdio.h>
int main()
{undefined
int m = 5, n = 0;
while (m > 0)
{undefined
switch (m)
{undefined
case 1:
case 3:n += 1; m–;break;
default:n = 0;m–;
case 2:
case 4:n += 2;m–;break;

    }
    printf("%2d", n);
}
return 0;
1
2
3
4
}
流程图:
执行结果:

 

26(18),
文字描述:

定义int i ,m=0
赋值i=0
判断i<5
执行(判断i的值,如果case0符合 执行输出m)
执行如果case1符合 ,执行输出m,否则执行6
执行如果case3符合,执行输出m,否则执行7
执行如果case4符合,执行输出m,否则执行8
输出m 并结束
代码:
#include<stdio.h>
int main()
{undefined
int i, m = 0;
for (i = 0;i < 5;i++)
{undefined
switch (i)
{undefined
case 0:
case 1:m++;
case 3:m++;
case 4:m–;
}
}printf("%d\n", m);
return 0;
}
流程图:

 

执行结果:

26(19),
文字描述:

定义i,b=0,c=2
赋值i=0
判断i<2
真执行判断值是否为++b,b*c,再执行5
若case1符合,执行输出1,否则执行6
若case2符合,执行输出2,否则执行7
若case3符合,执行输出3,并结束这个循环,否则执行8
输出错误输出other\n
执行i++,并回到3重复执行
10.结束
代码:
#include<stdio.h>
int main()
{undefined
int i, b = 0, c = 2;
for(i=0;i<2;i++)
switch (++b,b*c)
{undefined
case 1:printf(“1”);
case 2:printf(“2”);
case 3:printf(“3”);
break;
default:printf(“other\n”);
}
return 0;
}

流程图:

 

执行结果:
27(21),
文字描述:

定义 char c
输入 YDG?N?
判断(c=getchar())!=’?’
真执行5
假执行putchar(–c)并执行5
输出结束
代码:
#include<stdio.h>
int main()
{undefined
char c;
while((c = getchar() )!= ‘?’)putchar(–c);
return 0;

}

流程图:

 


执行结果:

27(1),
文字描述:

定义int denominator,flag,i,n;
定义double item,sum;
输出 请输入n
赋值 flag=1,denominator=1,sum=0,i=1
判断i<=n
真执行item=flag*1.0/denominator,sum=sum+item,flag=-flag;denominator+=2
再执行i++ ,再回到5重复执行
假执行输出sum,并结束
代码:
#include<stdio.h>
int main()
{undefined
int denominator, flag, i, n;
double item, sum;
printf(“Please input n”);
scanf_s("%d", &n);
flag = 1;
denominator = 1;
sum = 0;
for (i = 1;i <= n;i++)
{item = flag * 1.0 / denominator;
sum = sum + item;
flag = -flag;
denominator += 2;
}
printf(“sum=%f\n”, sum);
return 0;
}

流程图:

 

执行结果:
28(2),
文字描述:

定义int n,i
赋值float sum=0,flag=1.0,i=1
判断i<=n
真执行sum=sum+flagi/(2i-1),flag=-flag
再执行i++,再回到3重复执行
假执行输出sum并结束
流程图:

 


代码:
#include<stdio.h>
int main()
{undefined
int i, n;
float sum = 0, flag = 1.0;
scanf_s("%d", &n);
for (i = 1;i <= n;i++)
{undefined
sum = sum + flag * i / (2 * i - 1);
flag = -flag;
}printf(“Sum=%f\n”, sum);
return 0;
}

执行结果:

28(3),
文字描述:

定义int s,n
输出 输入一个三位正整数
输出 输入“输出”
赋值s=n%10
输出s
执行n/10;
判断n!=0
真执行回到4 重复执行
假执行结束
代码:
#include<stdio.h>
int main()
{undefined
int n, s;
printf(“Enter a number”);
scanf_s("%d", &n);
printf(“Output”);
do
{undefined
s = n % 10;
printf("%d", s);
n /=10;
} while (n != 0);
return 0;
}

流程图:

 

执行结果:

28(4),
文字描述:

定义s=1.0,k=1
判断k<=0
真执行s=s+1.0/(k*(k+1)),k++
再执行回到2重复执行
执行输出s=s
执行结束
代码:
#include<stdio.h>
int main()
{undefined
int k = 1;
double s = 1.0;
while (k <= 0)
{undefined
s = s + 1.0 / (k * (k + 1));
k++;
}
printf(“s=%f\n\n”, s);
return 0;
}

流程图:
执行结果:

 

31(10),
文字描述:

定义int i
赋值i=100
判断i<200
真执行(如果(i-2)%4==0,执行如果(i-3)%7,否则执行5;执行如果(i-5)%9=0,否则执行5;执行5
输出i
结束
代码:
#include<stdio.h>
int main()
{undefined
int i;
for(i=100;i<200;i++)
if((i-2)%40)
if(!((i-3)%7))
if((i-5)%90)
printf("%d",i);
return 0;
}

流程图:
执行结果:

 


32(11),
文字描述:

定义int count,i,n;double grade,total
执行输出 输入n
赋值 total=count=0,i=1
判断i<=n
真执行输出 成绩存到i,赋值total=total+grade,执行如果grade<60执行count++,再执行 i++.再回到4重复执行,否则执行6
假执行输出Grade average=total/n,再执行输出Number of failures=count
执行结束
代码:
#include<stdio.h>
int main(void)
{undefined
int count, i, n;
double grade, total;
printf(“Enter n”);
scanf_s("%d", &n);
total = 0;
count = 0;
for(i=1;i<=n;i++)
{undefined
printf(“Enter grade #%d”, i);
scanf_s("%lf", & grade);
total = total + grade;
if (grade < 60)
count++;
}
printf(“Grade average=%.2f\n”, total / n);
printf(“Number of failures=%d\n”, count);
return 0;
}

流程图:
执行结果:

 


32(12),
文字描述:

定义 int i,j
赋值i=0
判断 i<10
真执行j=i*10+6
执行如果 j%3==0,执行输出j,再执行i++,回到3重复执行。否则执行6
假执行结束
代码:
#include<stdio.h>
int main(void)
{undefined
int i, j;
for(i=0;i<10;i++)
{undefined
j = i * 10 + 6;
if (j % 3 == 0)
printf("%3d", j);
}
return 0;
}

流程图:

 


执行结果:

27,(20)
文字:

首先定义俩个整型变量n,i;
再给n,i分别赋值为0;
执行判断i<3;
真执行当n++时,有case0,case1,case2,case3为输出n++等四个结果;
并执行i++,回到第3步重复执行;
否则执行结束。
代码:
#include<stdio.h>
int main()
{undefined
int n = 0, i;
for (i = 0;i < 3;i++)
switch (n++)
{undefined
case 0:
case 1:
case 2:
case 3:printf("%2d", n++);
}

return 0;
1
}
流程图:

 

执行结果:


29,(5)
文字:

首先定义long n, i, k, j, p, sum;
再给n赋值2;
判断n<=10;
真则执行k = n * n * n,执行n++,回到上一步,重复执行;
赋值i=100
判断i<200
真执行(如果(i-2)%4==0,执行如果(i-3)%7,否则执行5;执行如果(i-5)%9=0,否则执行5;执行5
输出i
结束
代码:
#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%1d*%1d*%1d=%1d=", n, n, n, sum);
for (p = i;p <= j - 2;p += 2)printf("%1d+", p);
printf("%1d", p);
break;
}
}if (i >= k / 2)printf("\n error!");
}return 0;
}
流程图:

 

执行结果:


29,(6)
文字:

首先先定义long m, n, k, s, flag = 0;
输入k;
执行n = k;m = n;s = n * (n - m) - m * m;
判断(s * s == 1),真执行flag = 1,else m–;
当m > 0 && !flag,判断m == 0,n–;
当n > 0 && !flag;
输出m,n;
结束
代码:
#include<stdio.h>
int main()
{undefined
long m, n, k, s, flag = 0;
printf(“input k:”);
scanf_s("%1d", &k);
n = k;
do
{undefined
m = n;
do {undefined
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=%1d,n=%1d”, m, n);
return 0;
}
流程图:

 


执行结果:

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值