明解C语言第四章习题

简介: 明解C语言第四章习题

第一节:do语句

练习4-1:代码清单3-9是判断所输入的整数符号的程序,请将其改写为可将输入显示这一过程循环任意次

#include <stdio.h>

int main()
{
    int a;
    int b;
    do {
        printf("请输入一个整数:");
        scanf("%d", &a);

        if (a == 0)
            puts("该整数为0。");
        else if (a > 0)
            puts("该整数为正数。");
        else
            puts("该整数为负数。");

        printf("要重复一次吗?【yes  0/No  1】:");
        scanf("%d", &b);
    } while (b == 0);

    return 0;
}

练习4-2:编写一段程序,像下面这样读取两个整数的值,然后计算出它们之间所有整数的和
请输入两个整数。
整数A:37
整数B:28
大于等于28小于等于37的所有整数的和是:325

#include<stdio.h>
int main()
{
    int a, b, c;
    int sum = 0;
    puts("请输入两个整数。");
    printf("整数A:"); scanf("%d", &a);
    printf("整数B:"); scanf("%d", &b);
    c = a;
    do
    {
        sum += c;
        c--;
    } while (c != b - 1);
    printf("大于等于%d小于等于%d的所有整数的和是:%d", b, a, sum);
    return 0;
}

第二节:while语句

练习4-3:对代码清单4-5中的程序进行修改,当输入的值为负数时不执行换行操作

#include<stdio.h>
int main()
{
    int no;
    printf("请输入一个正数.");
    scanf("%d", &no);
    while (no >= 0)
    {
        printf("%d ", no);
        no--;
    }
    if (no < 0)
        putchar('\n');
    return 0;
}

练习4-4:对代码清单4-6进行修改,使其:
递减到1而非递减到0;
当输入的值小于0时,不进行换行;

#include<stdio.h>
int main()
{
    int no;
    printf("请输入一个正整数:");
    scanf("%d", &no);
    while (no >= 1)
    {
        printf("%d  ", no--);
    }
    if (no < 0)
        putchar('\n');
    return 0;
}

练习4-5:对代码清单4-7的程序进行修改。
从1开始递增;
输入的值小于0时不换行;

#include<stdio.h>
int main()
{
    int i, no;
    printf("请输入一个正整数:");
    scanf("%d", &no);
    i = 1;
    while (i <= no)
    {
        printf("%d  ", i++);
    }
    if (no >= 0)
        putchar('\n');
    return 0;
}

练习4-6:编写一段程序,像下面按照升序显示出小于输入值的所有正偶数。
请输入一个整数:19
2 4 6 8 10 12 14 16 18

#include<stdio.h>
int main()
{
    int a = 0;
    int i = 1;
    printf("请输入一个整数:");
    scanf("%d", &a);
    while (i < a )
    {
        if (i % 2 ==0)
        {
            printf("%d ", i);
        }
        i++;
    }
    return 0;
}

练习4-7:编写一段程序,像下面这样显示出小于输入的整数的所有2的乘方
请输入一个整数:19
2 4 8 16

#include<stdio.h>
int main()
{
    int a = 0, i = 1;
    printf("请输入一个正整数:");
    scanf("%d", &a);
    while (i < a)
    {
        if (i < 19 && i % 2 == 0)
        {
            printf("%d  ", i);
        }
        i*=2;
    }
    return 0;
}

练习4-9:编写一段程序,交替显示+和-,总个数等于所输入的整数值。另外输入0以下的整数时,什么也不显示。

#include<stdio.h>
int main()
{
    int i = 0, no = 0;
    printf("请输入一个正整数:");
    scanf("%d", &no);
    while (i < no)
    {
        if (i % 2 == 0)
            printf("+");
        else
            printf("-");
        i++;
    }
    return 0;
}

练习4-10:编写一段程序,像下面一样练习显示 * 总个数等于输入数值的个数,当输入0以下的数值时什么也不显示

#include<stdio.h>
int main()
{
    int i = 0, no = 0;
    printf("请输入一个正整数:");
    scanf("%d", &no);
    while (i < no)
    {
        printf("*\n");
        i++;
    }
    return 0;
}

练习4-11:编写代码,显示下方效果;
请输入一个正整数:1963
1963的逆向结果是3691

#include<stdio.h>
int main()
{
    int i, j;
    do
    {
        printf("请输入一个正整数:");
        scanf("%d", &i);
        if (i <= 0)
            puts("请不要输入负数和0。");
    } while (i <= 0);
    j = i;
    printf("%d逆向显示的结果是:", j);
    while (j > 0)
    {
        printf("%d", j % 10);
        j /= 10;
    }
    puts("。");
    return 0;
}

练习4-12:读取一个整数,显示其位数。
请输入一个正整数:1963
1963的位数是:4

#include<stdio.h>
int main()
{
    int a = 0, b = 0, c = 0;
    printf("请输入一个正整数:");
    scanf("%d", &a);
    b = a;
    while (b > 0)
    {
        b /= 10;
        c++;
    }
    printf("%d的位数是%d", a, c);
    return 0;
}

练习4-13:编写一段程序,求1到n的和。

#include<stdio.h>
int main()
{
    int n=0,i=0,sum=0;
    printf("请输入一个正整数:");
    scanf("%d", &n);
    for (i = 0; i <= n; i++)
    {
        sum += i;
    }
    printf("1到%d的和为:%d", n, sum);
    return 0;
}

练习4-14:编写一段程序,像下面这样根据输入的整数,循环显示1234567890,显示的位数和输入的数值相同
请输入一个正整数:25
1234567890123456789012345

#include<stdio.h>
int main()
{
    int i = 0, j = 0;
    printf("请输入一个正整数:");
    scanf("%d", &i);
    for (j = 1; j <= i; j++)
    {
        printf("%d", j%10);
    }
    return 0;
}

练习4-15:像下面一样显示身高和标准体重的对照表。显示的身高范围和间隔由输入的整数值进行控制,标准体重精准到小数点后两位。
开始数值(cm):155
结束数值(cm):190
间隔数值(cm):4
150cm 49.50kg
160cm 54.00kg
........(以下省略).........

#include<stdio.h>
int main()
{
    int begin = 0;
    int end = 0;
    int interval = 0;
    int i = 0 , j=0;
    printf("开始数值(cm):"); scanf("%d", &begin);
    printf("结束数值(cm):"); scanf("%d", &end);
    printf("间隔数值(cm):"); scanf("%d", &interval);
    j = begin;
    for (i = 0; i <= (end - j) / interval; i++)
    {
        printf("%dcm        %.2fkg\n", begin, (begin - 100) * 0.9);
        begin += interval;
    }
    return 0;
}

练习4-16:编写一段程序,输入一个整数值,显示该整数值以下所有奇数
整数值:15
1 3 5 7 9 11 13 15*

#include<stdio.h>
int main()
{
    int a = 0, i = 1;
    printf("请输入一个整数值:");
    scanf("%d", &a);
    while (i <= a)
    {
        printf("%d  ", i);
        i+=2;
    }
    return 0;
}

练习4-17:编写一段程序,像下面这样显示1~n的整数值的二次方。
n的值:3
1的二次方是:1
2的二次方是:4

#include<stdio.h>
int main()
{
    int n = 0, i = 0;
    printf("n的值为:"); scanf("%d", &n);
    for (i = 1; i < n; i++)
    {
        printf("%d的二次方是:%d\n", i, i * i);
    }
    i++;
    return 0;
}

练习4-18:编写一段程序,显示 * 每五个就进行一次换行,数字为几显示多少个。

#include<stdio.h>
int main()
{
    int i = 0, j = 0;
    printf("整数值:");
    scanf("%d", &j);
    for (i = 1; i <= j; i++)
    {
        printf("*");
        if (i % 5 == 0)
            putchar('\n');
    }
    return 0;
}

练习4-19:对代码清单4-15进行修改,在显示所有约数后显示约数个数
整数值:4
1
2
4
约数有:3个

#include<stdio.h>
int main(void)
{
    int i = 0, n = 0, m = 0;
    printf("整数值:");
    scanf("%d", &n);    
     for (i = 1; i <= n; i++)
        if (n % i == 0)
    {
         printf("%d ", i);
         printf("\n");
         m++;
    }
     printf("约数有%d个。", m);
     return 0;
}
相关文章
TU^
|
6月前
|
存储 C语言
C语言习题~day35
C语言习题~day35
TU^
34 1
|
4月前
|
机器学习/深度学习 C语言
【C语言篇】递归详细介绍(基础概念习题及汉诺塔等进阶问题)
要保持最小的步数,每一次汉诺塔问题(无论是最初还是递归过程中的),如果此时初始柱盘子数为偶数,我们第一步是把最上面的盘子移动到中转柱,如果为奇数,我们第一步则是将其移动到目标柱。
104 0
【C语言篇】递归详细介绍(基础概念习题及汉诺塔等进阶问题)
TU^
|
6月前
|
算法 程序员 C语言
C语言习题~day36
C语言习题~day36
TU^
44 1
TU^
|
6月前
|
存储 C语言
C语言习题~day34
C语言习题~day34
TU^
38 1
TU^
|
6月前
|
算法 C语言
C语言习题~day33
C语言习题~day33
TU^
31 1
TU^
|
6月前
|
C语言
C语言习题~day32
C语言习题~day32
TU^
19 1
TU^
|
6月前
|
C语言
C语言习题~day39
C语言习题~day39
TU^
24 0
C语言习题~day39
|
6月前
|
IDE 编译器 开发工具
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
47 0
TU^
|
6月前
|
存储 C语言
C语言习题~day38
C语言习题~day38
TU^
30 0
TU^
|
6月前
|
C语言
C语言习题~day37
C语言习题~day37
TU^
25 0