第一节:运算
练习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;
}