明解C语言第二章习题

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

第一节:运算

练习2-1:编写一段程序,像下方那样读取两个整数,然后显示出前者是后者的百分之几
请输入两个整数。
整数X:54
整数Y:84
X的值是Y的:64%

#include<stdio.h>
int main()
{
    int a, b;
    puts("请输入两个整数。");
    printf("整数X:");
    scanf("%d", &a);
    printf("整数Y:");
    scanf("%d", &b);
    printf("X是Y的%d%%", (a*100)/b);
    return 0;
}

练习2-2:编写一段程序,像下方那样读取两个整数,然后输出它们的和与积
请输入两个整数。
整数X:54
整数Y:12
它们的和是:66,积是648。

#include<stdio.h>
int main()
{
    int a, b;
    puts("请输入两个整数。");
    printf("整数X:");
    scanf("%d", &a);
    printf("整数Y:");
    scanf("%d", &b);
    printf("它们的和是:%d,它们的积是:%d",a+b,a*b);
    return 0;
}

第二节:数据类型

练习2-3:编写一段程序,像下面那样显示读取的实数值。
请输入一个实数:57.3
你输入的实数是:57.300000

#include<stdio.h>
int main()
{
    printf("请输入一个实数:");
    double a = 0;
    scanf("%lf", &a);
    printf("你输入的实数为:%lf", a);
    return 0;
}

练习2-4:编写程序对整型常量、浮点型常量、int型变量、double型变量进行乘除等各种运算,从来验证规律。
规律:double类型与int类型进行运算,结果会进行隐型转换,变为double型

#include <stdio.h>
int main()
{
    int n1 = 20;
    int n2 = 2;
    double d1 = 20.0;
    double d2 = 2.0;
    printf("整型常量乘以整型常量:%d\n", 20 * 2);
    printf("浮点型常量乘以浮点型常量:%f\n", 20.0 * 2.0);
    printf("int型常量乘以int型常量:%d\n", n1*n2);
    printf("double型常量乘以double型常量:%f\n", d1*d2);
    printf("double型常量乘以int型常量:%f\n", d1*n2);
    return 0;
}

在这里插入图片描述
**练习2-5:编写一段程序,像下面那样读取两个整数的值,计算出前者是后者的百分之几十,并用实数输出
请输入两个整数。**
整数A:54
整数B:84
A是B的:64.285714%

#include<stdio.h>
int main()
{
    puts("请输入两个实数。");
    double a, b;
    printf("实数A:"); scanf("%lf", &a);
    printf("实数B:"); scanf("%lf", &b);
    printf("A是B的%f%%", (a * 100) / b);
    return 0;
}

练习2-6:显示读取身高的整数值,像下面一样显示出标准体重的实数值。标准体重根据公式(身高-100)×0.9进行计算,所得结果保留一位小数。
请输入你的身高:175
你的标准体重为:67.5公斤

#include<stdio.h>
int main()
{
    double a = 0;
    printf("请输入你的身高:");
    scanf("%lf", &a);
    printf("你的标准体重是%.1f公斤", (a-100)*0.9);
    return 0;
}

总结板块

%操作符的操作数类型必须是整数
当一个运算中有不同的操作数时,就会进行隐式类型转换。较小的数据类型的操作数会转换为较大的数据类型的操作数。
printf函数来显示double类型的值时,转换说明是%f
scanf函数读取double类型的值时,转换说明是%lf
(double)5 就可以将int类型的操作数5转化为double类型的操作数5.0
转换说明由0标志,最小字段宽度、精度、转换说明组成

printf("09.2f");
0表示0标志,如果数值前面由空位,由0填充
9表示至少9为的浮点数
.2表示只显示小数点后两位

若要在printf函数中显示%号则写入%%就行

总结习题:将上述内容在一个程序中全部使用一遍。

#include<stdio.h>
int main()
{
    int a, b;
    double r;
    printf("整数a和b的值:");
    scanf("%d%d", &a, &b);
    printf("a+b=%d\n", a + b);
    printf("a-b=%d\n", a - b);
    printf("a*b=%d\n", a * b);
    printf("a/b=%d\n", a / b);
    printf("a%b=%d\n", a % b);

    printf("(a+b)/2\n", (a + b) / 2);
    printf("平均值:%f\n\n", (double)(a + b) / 2);
    printf("半径r:");
    scanf("%lf", &r);
    printf("半径为%.2f\n圆的面积为%.2f\n", r, 3.14 * r * r);
    return 0;
}
相关文章
TU^
|
5月前
|
存储 C语言
C语言习题~day35
C语言习题~day35
TU^
28 1
|
3月前
|
机器学习/深度学习 C语言
【C语言篇】递归详细介绍(基础概念习题及汉诺塔等进阶问题)
要保持最小的步数,每一次汉诺塔问题(无论是最初还是递归过程中的),如果此时初始柱盘子数为偶数,我们第一步是把最上面的盘子移动到中转柱,如果为奇数,我们第一步则是将其移动到目标柱。
81 0
【C语言篇】递归详细介绍(基础概念习题及汉诺塔等进阶问题)
TU^
|
5月前
|
算法 程序员 C语言
C语言习题~day36
C语言习题~day36
TU^
39 1
TU^
|
5月前
|
存储 C语言
C语言习题~day34
C语言习题~day34
TU^
32 1
TU^
|
5月前
|
算法 C语言
C语言习题~day33
C语言习题~day33
TU^
28 1
TU^
|
5月前
|
C语言
C语言习题~day32
C语言习题~day32
TU^
17 1
TU^
|
5月前
|
C语言
C语言习题~day39
C语言习题~day39
TU^
20 0
C语言习题~day39
|
5月前
|
IDE 编译器 开发工具
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
41 0
TU^
|
5月前
|
存储 C语言
C语言习题~day38
C语言习题~day38
TU^
25 0
TU^
|
5月前
|
C语言
C语言习题~day37
C语言习题~day37
TU^
20 0