1-5.代码:
#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;
}
执行结果:
文字描述法:
1.定义整数k,x;
2.k=0,x=0
3.判断k<=9&&x!=10,若k<=9&&x!=10,执行3,4,5否则转6;
4.x=x+2
5.k++转3
5.输出k,x的值
流程图
1-6.代码:
#include<stdio.h>
int main()
{
char c;
for (c = getchar(); getchar() != '#'; c = getchar())
putchar(c);
return 0;
}
执行结果:
文字描述法
1.定义字符c
2.c = getchar()
3.判断getchar() != '#',若getchar() != '#',执行3,4,5否则转6
4.putchar(c)
5.c = getchar()
6.输出c
流程图
2-14代码:
#include<stdio.h>
int main()
{
char ch;
for (; (ch = getchar()) != '\n';) {
printf("%c", ch);
}
return 0;
}
执行结果:
文字描述法
1.定义字符ch
2.判断ch = getchar()) != '\n',若ch = getchar()) != '\n',执行2,3否则转3
3.输出ch
流程图
2-5代码:
#include<stdio.h>
int main()
{
int i, a = 1;
unsigned j;
for (i=15;i>0;i-=2)
a++;
printf("输出a=%d", a);
return 0;
}
执行结果:
文字描述法
1.定义int i, a = 1;unsigned j;
2.i=15
3.判断i>0,若i<0,执行3,4否则转5
4.a++转3
5.输出a
流程图
3-1 代码:
#include<stdio.h>
int main()
{
int i;
for (i = 1; i < 6; i++) {
if (i % 2) {
printf("*");
}
else {
printf("#");
}
}
return 0;
}
执行结果:
文字描述法
1.定义int i
2.i=1
3判断i<6,若i<6执行3,4,5否则转6
4.如果i%2,输出*
5.否则输出#
6.结束
流程图
3-2 代码:
#include<stdio.h>
int main()
{
int m = 1, n, i;
for (i = 0; i < 5; i++) {
int m = 1;
m++;
if (i == 4) {
n = m;
}
}
printf("%d,%d", m, n);
return 0;
}
执行结果:
文字描述法
1.定义m=1,n,i
2.i=0
3.判断i<5,若i<5执行3,4,5,6否则转7
4.整数m=1
5.m++
6.如果i=4,n=m
7.输出m,n
流程图
3-3 代码:
#include<stdio.h>
int main()
{
int i;
for (i = 'a'; i < 'f'; i++, i++) {
printf("%c", i - 'a' + 'A');
}
return 0;
}
执行结果:
文字描述法
1.定义整数i
2.i='a'
3.判断i<'f'若i<'f'执行3,4,5否则转6
4.输出i - 'a' + 'A'的值
5.i++,i++
6.结束
流程图
3-4 代码:
#include<stdio.h>
int main()
{
int f, f1, f2, i;
f1 = 1; f2 = 1;
printf("%2d %2d", f1, f2);
for (i = 3; i <= 5; i++) {
f = f1 + f2;
printf("%2d", f);
f1 = f2;
f2 = f;
}
return 0;
}
执行结果:
文字描述法
1.定义整数f,f1,f2,i
2.f1=1,f2=1
3.输入f1,f2的值
4.i=3
5.判断i<=5若i<=5执行5,6,7,8,9否则转10
6.f=f1+f2
7.输入f的值
8.f1=f2;f2=f
9.i++
10.结束
流程图
3-5代码:
#include<stdio.h>
int main()
{
int n = 5;
do
{
switch (n % 2) {
case 0:
n--;
break;
case 1:
n--;
continue;
}
n--;
printf("%2d", n);
} while (n > 0);
return 0;
}
执行结果:
文字描述法
1.定义整数n=5
2.当n%2时
3.case0:n--,转7
4.case1:n--执行2,3,5,6,7
5.n--
6.输出n的值
7.判断n>0,若n>0执行2,3,4,5,6,7否则转8
8.结束
流程图
3-7代码:
#include<stdio.h>
int main()
{
int x = 10;
while (x--);
printf("x=%d\n", x);
return 0;
}
执行结果:
文字描述法
1.定义整数x=10
2.计算x--
3.输出x的值
流程图
3-9代码:
#include<stdio.h>
int main()
{
int m = 9;
for (; m > 0; m--) {
if (m % 3 == 0) {
printf("%d", --m);
}
}
return 0;
}
执行结果:
文字描述法
1.定义整数m=9
2.判断m>0,若m<0,执行2,3,4否则转5
3.如果m%3==0
4.输出--m的值否则转5
5.结束
流程图
3-10代码:
#include<stdio.h>
int main()
{
int x = 8;
for (; x > 0; x--) {
if (x % 3 == 0) {
printf("%d,", x--);
continue;
}
printf("%d", --x);
}
return 0;
}
执行结果:
文字描述法
1.定义整数x=8
2.判断x>0,若x<0,执行2,3,4否则转5
3.如果x%3==0
4.输出x--的值转2,3,5
5.输出--x的值
流程图
3-11代码:
#include<stdio.h>
int main()
{
int x = 3;
do {
printf("%3d", x = x - 3);
} while (!x);
return 0;
}
执行结果:
文字描述法
1.定义整数x=3
2.输出x=x-3
3.判断!x,若!x执行2,3否则转4
4.结束
流程图
3-12代码:
#include<stdio.h>
int main()
{
int x = 2;
do {
printf("%3d", !x - 2);
} while (--x);
return 0;
}
执行结果:
文字描述法
1.定义整数x=2
2.输出!x-2
3.判断--x,若--x执行2,3否则转4
4.结束
流程图
3-13代码:
#include<stdio.h>
int main()
{
int n = 12345, d;
while (n != 0) {
d = n % 10;
printf("%d", d);
n = n / 10;
}
return 0;
}
执行结果:
文字描述法
1.定义整数n=12345,d
2.当n!=0
3.d=n%10
4.输出d的值
5.n=n/10
6.结束
流程图
3-14代码:
#include<stdio.h>
int main()
{
int m = 0, sum = 0;
char c, oldc = '+';
do
{
c = getchar();
if (c <= '9' && c >= '0')m = 10 * m + c - '0';
else
{
if (oldc == '+')sum += m;
else sum -= m;
m = 0;
oldc = c;
printf("%3d", sum);
}
} while (c != '=');
return 0;
}
执行结果:
文字描述法
1.定义整数m=0,sum=0,字符c,oldc='+'
2.c=getchar()
3.如果c<='9'&&c>='0',执行m=10*m+c-'0'
4,否则如果oldc=='+',执行sum+=m
5.否则sum-=m
6.m=0
7.oldc=c
8.输出sum的值
9.判断c!='='执行2,3,4,5,6,7,8,9否则转10
10.结束
流程图
3-16代码:
#include<stdio.h>
int main()
{
int t = 1, n = 235;
do {
t *= n % 10;
n /= 10;
} while (n);
printf("%d\n", t);
return 0;
}
执行结果:
文字描述法
1.定义整数t=1,n=235
2.t*=n%10
3.n/=10
4.判断n执行2,3,4否则转5
5.输出t的值
6.结束
流程图
3-17代码:
#include<stdio.h>
int main()
{
int m = 5, n = 0;
while (m > 0) {
switch (m) {
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.整数m=5,n=0
2.当m>0
3.判断m
4.执行case1:
5.执行case3:
n+=1,m--,若n+=1转9
6.默认n=0,m--
7.执行case2:
8.执行case4:
n+=2,m--,若n+=2转9
9.输出n的值
10.结束
流程图
3-18代码:
#include<stdio.h>
int main()
{
int i, m = 0;
for (i = 0; i < 5; i++) {
switch (i) {
case 0:
case 1:m++;
case 3:m++;
case 4:m--; break;
}
}
printf("%d\n", m);
return 0;
}
执行结果:
文字描述法
1.定义整数i,m=0
2.i=0
3.判断i否则转10
4.执行case0:
5.执行case1:
m++
6.执行case3:
m++
7.执行case4:m--,若m--转8
8.输出m的值
9.i++转3
10.结束
流程图
3-19代码:
#include<stdio.h>
int main()
{
int i, b = 0, c = 2;
for (i = 0; i < 2; i++) {
switch (++b, b * c) {
case 1:printf("1");
case 2:printf("2");
case 3:printf("3"); break;
default:printf("other\n");
}
}
return 0;
}
执行结果:
文字描述法
1.定义整数b=0,c=2
2.i=0
3.判断i<2否则转10
4.当++b,b*c
5.执行case1:
输出1
6.执行case2:
输出2
7.执行case3:
输出3
8.默认输出other
9.i++转3
10.结束
流程图
3-21代码:
#include<stdio.h>
int main()
{
char c;
while ((c = getchar()) != '?')
putchar(--c);
return 0;
}
执行结果:
文字描述法
1.定义字符c
2.当c = getchar()) != '?'
3.putchar(--c);
4.结束
流程图
4-1代码:
#include<stdio.h>
int main()
{
int denominator, flag, i, n;
double item, sum;
printf("请输入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;
}
执行结果:
文字描述法
1.定义整数denominator, flag, i, n,小数item, sum
2.输入n的值
3.flag = 1
4.denominator = 1
5.sum = 0
6.i=1
7.判断i<=n,执行7,8,9,10,11,12否则转13
8.item = flag * 1.0 / denominator;
9.sum = sum + item
10.flag = -flag
11.denominator += 2
12.i++
13.输出sum的值
14.结束
流程图
4-2代码:
#include<stdio.h>
int main()
{
int i, n;
float sum = 0, flag = 1;
scanf_s("%d", &n);
for (i = 1; i <= n; i++) {
sum = sum + (flag * i) / (2 * i - 1);
flag = -flag;
}
printf("Sum=%f\n", sum);
return 0;
}
执行结果:
文字描述法
1.定义整数i,n,小数sum = 0, flag = 1
2.输出n的值
3.i=1
4.判断i <= n若i <= n执行4,5,6,7否则转8
5.sum = sum + (flag * i) / (2 * i - 1)
6.flag = -flag
7.i++
8.输出sum的值
9.结束
流程图
4-3代码:
#include<stdio.h>
int main()
{
int n, s;
printf("Enter a number:");
scanf_s("%d", &n);
printf("Output:");
do {
s = n % 10;
printf("%d", s);
n /= 10;
} while (n != 0);
return 0;
}
执行结果:
文字描述法
1.定义整数n,s
2.请输入一个数字给n
3.输出Output
4.s = n % 10;
5.printf("%d", s);
6.n /= 10;
7.判断n != 0若n != 0执行4,5,6,7否则转8
8.结束
流程图
4-4代码:
#include<stdio.h>
int main()
{
int k,n;
double s;
s = 1.0;
k = 1;
scanf_s("%d", &n);
while (k <= n) {
s = s + 1.0 / (k * (k + 1));
k++;
}
printf("s=%f\n\n", s);
return 0;
}
执行结果:
文字描述法
1.定义整数k,n;小数s
2.s = 1.0;
3.k = 1;
4.输入n的值
5.判断k <= n,若k <= n执行5,6,7否则转8
6.s = s + 1.0 / (k * (k + 1))
7.k++
8.输出s的值
9.结束
流程图
4-10代码:
#include<stdio.h>
int main()
{
int i;
for (i = 100; i < 200; i++)
if ((i - 2) % 4 == 0)
if (!((i - 3) % 7))
if ((i - 5) % 9 == 0)
printf("%d", i);
return 0;
}
执行结果:
文字描述法
1.定义整数i
2.i=100
3.判断i<200,若i<200执行3,4,5,6,7,8否则转9
4.如果(i - 2) % 4 =0)执行5否则i++转3
5.如果!((i - 3) % 7执行6否则i++转3
6.如果(i - 5) % 9 == 0执行7否则i++转3
7.输出i的值
8.i++转3
9.结束
流程图
4-11代码:
#include<stdio.h>
int main()
{
int count, i, n;
double grade, total;
printf("Enter n:");
scanf_s("%d", &n);
total = 0;
count = 0;
for (i = 1; i <= n; i++)
{
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;
}
执行结果:
文字描述法
1.定义整数count, i, n,小数grade, tota
2.输入Enter n的值
3.total = 0
4.count = 0
5.i=1
6.判断i <= n,若i <= n执行6,7,8,9,10否则转11
7.输出grade的值
8.total = total + grade
9.如果grade < 60执行count++
10.i++转6
11.输出total的值
12.输出count的值
13.结束
流程图
4-12代码:
#include<stdio.h>
int main()
{
int i, j;
for (i = 0; i < 10; i++)
{
j = i * 10 + 6;
if (j % 3 == 0)
printf("%3d", j);
}
return 0;
}
执行结果:
文字描述法
1.定义整数i,j
2.i=0
3.判断i < 10若i < 10执行否则转
4.j = i * 10 + 6
5.如果j % 3 =0执行6
6.输出j的值
7.i++转3
8.结束
流程图