第五章实程教训作业

9

一、

5.

文字描述

1声明两个整型变量k,x;

2.k=0,x=0;

3.判断k <= 9 && x != 10真假;

4.真  执行x=x+2    然后k++,再回到第三步判断

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

截图

 6.

文字描述

1.声明一个字符型变量c;

2.从键盘上获取一个字符赋值给c;

3.判断获取的字符是否为‘#’;

4.字符为‘#’直接输出  不是‘#'输出一个字符  

流程图

代码

#include<stdio.h>
int main()
{
    char c;
    for (c = getchar(); getchar() != '#'; c = getchar())
    putchar(c);
    return 0;
}

截图

二、

14.

文字描述

1.声明一个字符型变量ch;

2.从键盘上获取一个数赋值给ch  ,

3.判断ch是否不等于‘\n’;

4.ch为‘\n’直接输出,不是‘\n’输出ch

流程图

     

代码

#include<stdio.h>
int main()
{
    char ch;
    for (;ch = getchar() != '\n';)
    printf("%c", ch);
    return 0;
}

截图

 15.

文字描述

1.声明一个整型变量i,常量a=1;

2.声明一个无符号整型变量j;

3.j=15;判断j>0真假;为真执行a++ 再计算j-=2;

4.为假直接输出a;

流程图

代码

#include<stdio.h>
int main()
{
    int i, a = 1;
    unsigned j;
    for (j = 15; j >0; j -= 2)
        a++;
    printf("%d", a);
    return 0;
}

截图

 三、

1.

文字描述

1.声明一个整型变量i;

2.i=1;判断i<6真假;为真再判断i%2真假      真输出‘*’  ,假输出‘#’;

3.为假结束;

流程图

代码

#include<stdio.h>
int main()
{
    int i;
    for (i = 1; i < 6; i++)
    {
        if (i % 2)
            printf("*");
        else
            printf("#");
    }
    return 0;
}

截图

 2.

文字描述

1.声明一个常量m=1,两个变量n,i;

2.i=0;判断i<5真假   为真执行int m=1;  m++; 判断i==4真假  为真n=m;再i++  ,为假i++;

3.为假输出m,n的值;

流程图

代码

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

截图

3.

文字描述

1.声明一个整型变量i;

2.i=‘a’;

3.判断i<'f';真假  

4.为真输字符i-‘a’+‘A’的值; i++,i++; 回到第三步进行循环;

5.为假结束

流程图

代码

#include<stdio.h>
int main()
{
    int i;
    for (i = 'a'; i < 'f';i++,i++)
        printf("%c", i - 'a' + 'A');
    return 0;
}

截图

4.

文字描述

1.声明四个整型变量f, f1, f2, i;

2.f1=1,f2=2;

3.输出f1,f2的值;

4.i=3;

5.判断i<5真假

6.为真执行f1=f1+f2;输出f的值;f1=f2;f2=f;i++;再回到第五步循环

7.为假结束;

流程图

代码

#include<stdio.h>
int main()
{
    int f, f1, f2, i;
    f1 = 1, f2 = 2;
    printf("%2d%2d", f1, f2);
    for (i = 3; i <= 5; i++)
    {
        f = f1 + f2;
        printf("%2d", f);
        f1 = f2; f2 = f;
    }
    return 0;
}

截图

5.

文字描述

1.声明一个整型常量n=5;

2.用Switch判断n%2为以下哪种情况

3.为0;n--;结束整个循环  为1;n--;结束本次循环进行下一次循环;

4.n--

5.输出n的值

6.判断n是否大于0;大于0,回到第二部进行循环;不大于0,结束;

流程图

代码

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

截图

7.

文字描述

1.声明一个整型常量x=10;

2.用while循环x--;

3.输出x,再回到第二步循环;

4.当x<0,则结束

流程图

代码

#include<stdio.h>
int main()
{
    int x = 10;
    while (x--)
        printf("x=%d\n", x);
    return 0;
}

截图

9.

文字描述

1.声明一个整形常量m=9;

2.判断m>0真假;

3.为真在判断m%3==0真假;为假结束

4.判断m%3==0真假;为真输出--m的值,再m--,回到第二步继续循环;

5.为假执行m--;然后回到第二步继续循环;

流程图

代码

#include<stdio.h>
int main()
{
    int m = 9;
    for (; m > 0; m--)
        if (m % 3 == 0)
            printf("%d", --m);
    return 0;
}

截图

10

文字描述

1.声明一个整型常量x=8;

2.判断x>0真假

3.为真再判断x%3==0真假;为假结束;

4.判断x%3==0真假;为真输出x--的值;本次循环结束;回到第二步进行循环;

5.为假输出--x;再x--回到第二步进行循环;

流程图

代码

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

截图

11.

文字描述

1.声明一个整型常量x=3;

2.输出x=x-3的值;

3.判断(!x)真假

4.为真回到第二步进行循环;为假结束;

流程图

代码

#include<stdio.h>
int main()
{
    int x = 3;
    do
    {
        printf("%3d", x = x - 3);
    } while (!x);
    return 0;
}

截图

12.

文字描述

1.声明一个整型常量x=2;

2.输出!x-2的值;

3.判断(--x)真假

4.为真回到第二步进行循环;为假结束;

流程图

代码

#include<stdio.h>
int main()
{
    int x = 2;
    do
    {
        printf("%3d", !x - 2);
    } while (--x);
    return 0;
}

截图

13.

文字描述

1.声明一个常量n=12345,一个变量d;

2.判断(n!=10)真假;

3.为真执行  d=n%10;输出d的值;n=n/10;再回到第二步进行循环;

4..为假结束

流程图

代码

#include<stdio.h>
int main()
{
    int n = 12345, d;
    while (n != 0)
    {
        d = n % 10;
        printf("%d", d);
        n = n / 10;
    }
    return 0;
}

截图

14.

文字描述

1.声明两个整形常量m=0,sum=0;

2.声明两个字符c,oldc=‘+’

3.从键盘上获取一个数赋值给c;

4.判断(c <= '9' && c >= '0')真假

5.为真m = 10 * m + c - '0';为假判断(oldc == '+')真假

6.判断(oldc == '+')真假,为真sum+=m;为假sum-=m;

7.m=0;

8.oldc=c;

9.输出sum的值;

10.判断(c != '=')真假

11.真   回到第三步进行循环;假    结束;

流程图

代码

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

截图

16.

文字描述

1.声明两个整型常量t=1,n=235;

2.t *= n % 10;
3.  n /= 10;

4.判断n的真假

5.真回到第二步进行循环;假输出t的值;

流程图

代码

#include<stdio.h>
int main()
{
    int t = 1, n = 235;
    do
    {
        t *= n % 10;
        n /= 10;
    } while (n);
    printf("%d\n", t);
    return 0;
}

截图

17.

文字描述

1.声明两个整型常量m=5;n=0;

2.判断(m>0)真假;

3.为真在判断m属于以下哪种情况;为假结束;

4.判断m属于以下哪种情况;case 1:  case 3:  n = +1; m--;  结束整个循环

5.default:n = 0; m--;      case 2:  case 4:n = +2; m--; 结束整个循环

6.输出n的值;

 流程图

代码

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

截图

18.

文字描述

1.声明一个整型变量i,常量m=0;

2.i=0;

3.判断i<5真假

4.真  判断i属于以下哪种情况;假   输出m的值;

5.判断i属于以下哪种情况     i==0||i==1,m++,i++回到第三步判断; i==0||i==3,m++   i++回到第三步判断;i==0||i==4,m--;结束整个循环

流程图

代码

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

截图

19.

文字描述

1.声明一个整型变量i,常量b=0,c=2;

2.i=0;

3.判断i<2真假;

4.真  判断(++b, b * c)的值属于哪种情况;假   结束

4.判断(++b, b * c)的值属于哪种情况;等于1,输出1,;等于2,输出2,等于3,输出3;结束整个循环;属于default,输出other;

5.i++回到第三步进行循环;

流程图

代码

#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.

文字描述

1.声明三个整型变量denominator, flag, i, n;

2.声明两个double类型变量item, sum;

3.输出Please input n:

4.输入n的值

5.flag = 1; denominator = 1;

6.sum=0;

7.i=1;

8.判断i<=n真假

9.真   计算item = flag * 1.0 / denominator;   sum = sum + item;     flag = -flag;     denominator += 2;   

10.假输出sum的值;

11.i++,回到第八步进行循环;

流程图

代码

#include<stdio.h>
int main()
{
    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;
}

截图

2.

文字描述

1.声明两个整型变量i,n;

2.声明两个小数类型常量sum = 0, flag = 1.0;

3.输入n的值;

4.i=1

5.判断i<=n真假

6.真 执行sum = sum + flag * 1 / (2 * i - 1);    flag = -flag;     i++然后回到第五步进行循环

7.假输出sum的值;

流程图

代码

#include<stdio.h>
int main()
{
    int i, n;
    float sum = 0, flag = 1.0;
    scanf_s("%d", &n);
    for (i = 1; i <= n; i++)
    {
        sum = sum + flag * 1 / (2 * i - 1);
            flag = -flag;

    }
    printf("sum=%f\n", sum);
    return 0;

}

截图

3.

文字描述

1.声明两个整型变量n,s;

2.输出Enter a number:

3.输入n的值;

4.输出Output:

5.s = n % 10;

6.输出s的值;

7.n/=10;

8.判断(n != 0)真假;

9.真   回到第五步进行循环;假   结束;

流程图

代码

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

截图

4.

文字描述

1.声明三个整型常量n=0,s = 1.0, k = 1;

2.判断(k <= n)真假;

3.真   执行s = s + 1.0 / (k * (k + 1));  k++;  假   输出s  ;  结束

流程图

代码

#include<stdio.h>
int main()
{
    int n=0,s = 1.0, k = 1;
    while (k <= n)
    {
        s = s + 1.0 / (k * (k + 1));
        k++;
    }
    printf("s=%f\n\n", s);
    return 0;
}

截图

10.

文字描述

1.声明一个整型变量i;

2.i=100;

3.判断i<100真假;

4. 真  再判断((i - 2) % 4 == 0)真假;  假,结束

5.判断((i - 2) % 4 == 0)真假 ;真再判断(!((i - 3) % 7))真假; 假,i++,返回第三步进行循环

6.判断(!((i - 3) % 7))真假;真,再判断((i - 5) % 9 == 0)真假; 假,i++,返回第三步进行循环

7.判断((i - 5) % 9 == 0)真假;真  输出i的值;假,i++,返回第三步进行循环

流程图

代码

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

}

截图

11.

文字描述

1.声明三个整型变量count, i, n;

2.声明两个小数变量grade, total;

3.输出Enter n:;

4.输入n的值

5.total = 0;   count = 0;  i=1;

6.判断i <= n真假;

7.为真,输出Enter grade #%d:;输入grade的值;计算total = total + grade; 再判断(grade < 60)真假 ,真为count++; ,i++然后返回第六步进行循环;假为i++然后返回第六步进行循环;

8.为假输出total / n的值

9.输出count的值;

10.结束

流程图

代码

#include<stdio.h>
int main(void)
{
    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;
}

截图

12.

文字描述

1.声明两个整型变量i,j;

2.i=0;

3.判断i < 10真假;

4.真,计算j = i * 10 + 6;再判断(j % 3 == 0)真假,真  ,输出j的值然后i++再回到第三步进行循环;假,直接i++,再回到第三步进行循环;

5.假,结束

流程图

代码

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

截图