《明解C语言》第二章:运算和数据类型及课后试题代码示例

前言

以下代码实例为明解C语言入门版所述代码及自我注释解析。


提示:以下是本篇文章正文内容,下面案例可供参考

2-1 运算

一、运算符和操作数

//读取两个整数的值,并显示出它们的和,差,积,商和余数

#include <stdio.h>

int main()
{
	int vx = 0;
	int vy = 0;
	
	puts("请输入两个整数。");
	printf("整数vx:");
	scanf("%d",&vx);
	printf("整数vy:");
	scanf("%d",&vy);

	printf("vx + vy - %d\n",vx + xy);
	printf("vx - vy - %d\n",vx - xy);
	printf("vx * vy - %d\n",vx * xy);
	printf("vx / vy - %d\n",vx / xy);
	printf("vx %% vy - %d\n",vx % xy);
	
	return 0;
}
//显示读取处的整数的最后一位数字

#include <stdio.h>

int main()
{
	int no = 0;
	while(scanf("%d",&no) == 1)//用于测试多个例子是否成立
	{
		printf("请输入一个整数:");
		scanf("%d",&no);
		printf("最后一位是%d。\n",no % 10);
	}
	return 0;
}

二、除法运算的结果

//读取两个整数并显示它们的商和余数

#include <stdio.h>

int main()
{
	int a = 0;
	int b = 0;
	
	puts("请输入两个整数。");
	printf("整数a:");
	scanf("%d",&a);
	printf("整数b:");
	scanf("%d",&b);

	printf("a除以b得 %d 余 %d。\n",a / b, a % b);
	
	return 0;
}

以下两份代码示例为《明解C语言》第二章练习题2-1/2-2.

#include <stdio.h>

int main()
{
	int x = 0;
	int y = 0;
	puts("请输入两个整数。");
	printf("整数x:");
	scanf("%d", &x);
	printf("整数y:");
	scanf("%d", &y);
	printf("x的值是y的%.0lf%%。", ((double)x / y) *100);
	return 0;
}
//读取并输出它们的和与积

#include <stdio.h>

int main()
{
	int a = 0;
	int b = 0;
	
	puts("请输入两个整数。");
	printf("整数a:");
	scanf("%d", &a);
	printf("整数b:");
	scanf("%d", &b);
	
	printf("它们的和是%d,积是%d。\n", a + b , a * b);
	
	return 0;
}

三、单目运算符

//对读取到的整数进行符号取反并输出

#include <stdio.h>

int main()
{
	int num = 0;
	
	printf("请输入一个整数:");
	scanf("%d", &num);
	printf("符号取反之后的值是%d。\n"-num);
	
	return 0;
}
//读取两个整数并求出它们的平均值

#include <stdio.h>

int main()
{
	int a = 0;
	int b = 0;
	
	puts("请输入两个整数:");
	printf("整数1:");
	scanf("%d", &a);
	printf("整数2:");
	scanf("%d", &b);
	
	printf("它们的平均值是%d。\n",(a + b) / 2.0);
	//为了防止出现平均值为小数时精度丢失。整数/整数得到的是商,整数 / 浮点数
	//(浮点数 / 整数)(浮点数 / 浮点数)执行的是浮点数除法。
	return 0;
}

2-2 数据类型和运算

四、数据类型

//整数和浮点数

#include <stdio.h>

int main()
{
	int n = 9.9;
	//double类型的变量赋值给int类型会报错,若要忽视报错可在9.9前加上(int)强制类型转换。
	//得到整数9,忽视小数点后面部分。
	double x = 9.9;
	//后面不加f默认是double类型的浮点数,加了f则是float类型的浮点数
	
	printf("int   型变量n的值:",n);
	printf("         n / 2 :",n / 2);
	printf("double 型变量x的值:",x);
	scanf("          x / 2.0 :",x / 2.0);
	
	return 0;
}

五、double类型的计算

#include <stdio.h>

int main()
{
	double x = 0.0;
	double y = 0.0;
	
	puts("请输入两个数。");
	printf("实数vx:");
	scanf("%lf", &vx);
	printf("实数vy:");
	scanf("%lf", &vy);
	
	printf("vx + vy = %lf\n",vx + vy);
	printf("vx - vy = %lf\n",vx - vy);
	printf("vx * vy = %lf\n",vx * vy);
	printf("vx / vy = %lf\n",vx / vy);
	
	return 0;
}

以下代码示例为《明解C语言》第二章练习题2-3.

//编写程序显示实数值
#include <stdio.h>

int main()
{
	double num = 0.0;
	printf("请输入一个实数:");
	scanf("%lf",&num);
	printf("你输入的是%lf",num);
	return 0;
}

六、double类型的计算

//读取两个整数并用浮点数表示出平均值

#include <stdio.h>

int main()
{
  int a = 0;
  int b = 0;
  
	puts("请输入两个整数。");
	printf("%d",a);
	scanf("%d",&a);
	printf("%d",b);
	scanf("%d",&b);
  printf("他们的平均值是%lf。\n",(a + b) / 2.0);

	return 0;
}

以下代码示例为《明解C语言》第二章练习题2-4.

//读取两个整数并用浮点数表示出平均值

#include <stdio.h>

int main()
{
  int a = 0;
  int b = 0;
  
	puts("请输入两个整数。");
	printf("%d",a);
	scanf("%d",&a);
	printf("%d",b);
	scanf("%d",&b);
  printf("他们的平均值是%lf。\n",(double)(a + b) / 2.0);

	return 0;
}

以下代码示例为《明解C语言》第二章练习题2-5.

//读取两个整数显示出实数百分比

#include <stdio.h>

int main()
{
	int a = 0;
	int b = 0;
	
	puts("请输入两个整数。");
	printf("整数a:");
	scanf("%d",&a);
	printf("整数b:");
	scanf("%d",&b);
	printf("a是b的%lf%%。\n",(double)a / b * 100);
	
	return 0;
}
//读取三个整数显示合计值与平均值

#include <stdio.h>

int main()
{
	int a = 0;
	int b = 0;
	int c = 0;
	
	puts("请输入三个整数。");
	printf("整数a:");
	scanf("%d",&a);
	printf("整数b:");
	scanf("%d",&b);
	printf("整数c:");
	scanf("%d",&c);
	
	int sum =  a + b + c;
	printf("它们的合计值是 %d。\n",sum);
	double avg = sum / 3.0;
	printf("它们的平均值是 %lf。\n", avg);
	return 0;
}

以下代码示例为《明解C语言》第二章练习题2-6.

//读取身高计算出标准体重(保留一位小数)

#include <stdio.h>

int main()
{
	int height = 0;
	double weight = 0.0;
	
	printf("请输入您的身高:");
	scanf("%d",&height);
	printf("您的标准体重是%.1lf公斤。\n",(height -100) * 0.9);
	
	return 0;
}
//总结:求圆的面积

#include <stdio.h>

int main()
{
	int a = 0;
	int b = 0;
	double r = 0.0;
	
	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 = %d\n",(a + b) / 2);
	printf("平均值 = %lf\n\n",(a + b) / 2.0);
	
	printf("半径:");
	scanf("%lf",&r);
	printf("半径为%.3lf的圆的面积是%.3lf。\n",r,3.14 * r * r);
	
	return 0;
}

总结

数据类型只需关注以上所提及的注释部分即可,正确的使用会在不同情况下让程序更快达成想要的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mo_吉托的莫。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值