明解C语言书中代码+课后习题chapter2

2-1 运算

1.读取两个整数值,并显示它们的和差积商和余数。

#include <stdio.h>

int main(void)
{
	int vx, vy;

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

	printf("vx + vy = %d\n",  vx + vy);
	printf("vx - vy = %d\n",  vx - vy);
	printf("vx * vy = %d\n",  vx * vy);
	printf("vx / vy = %d\n",  vx / vy);
	printf("vx %% vy = %d\n", vx % vy);

	return 0;
}

2.显示读取出的整数的最后一位数字。(灵活运用求余计算符)

#include <stdio.h>

int main(void)
{
	int no;

	printf("请输入一个整数:");
	scanf("%d", &no);						

	printf("最后一位是%d。\n", no % 10);

	return 0;
}


3.读取两个整数显示他们的商和余数。(多个转化说明)

#include <stdio.h>

int main(void)
{
	int a, b;

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

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

	return 0;
}

scanf函数也可:
scanf("%d%d",&a,&b); /*按顺序为a和b输入十进制数*/

4.读取两个整数,显示前者是后者的百分之几

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


5.单目运算符

/*
	对读取的整数值进行符号取反操作,并输出结果
*/

#include <stdio.h>

int main(void)
{
	int num;

	printf("请输入一个整数:");
	scanf("%d", &num);								/* 读取整数值 */

	printf("符号取反之后的值是%d。\n", -num);	/* 单目-运算符 */

	return 0;
}

2-2数据类型

1.读取两个整数,求他们的平均值

#include <stdio.h>

int main(void)
{
	int a, b;

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

	printf("它们的平均值是%d。\n", (a + b) / 2);

	return 0;
}

2.比较整数和浮点数

/*
	整数和浮点数
*/

#include <stdio.h>

int main(void)
{
	int n;			/* 整数 */
	double x;		/* 浮点数 */

	n = 9.99;
	x = 9.99;

	printf("int    型变量n的值:%d\n", n);			/*    9      */
	printf("             n / 2:%d\n", n / 2);		/*    9 / 2  */

	printf("double 型变量x的值:%f\n", x);			/* 9.99       */
	printf("             x/2.0:%f\n", x / 2.0);	/* 9.99 / 2.0 */

	return 0;
}


3.double类型的运算

/*
	读取两个实数值,用实数显示出它们的和、差、积、商
*/

#include <stdio.h>

int main(void)
{
	double vx, vy;		/* 浮点数 */

	puts("请输入两个数。");
	printf("实数vx:");   scanf("%lf", &vx);
	printf("实数vy:");   scanf("%lf", &vy);

	printf("vx + vy = %f\n",  vx + vy);
	printf("vx - vy = %f\n",  vx - vy);
	printf("vx * vy = %f\n",  vx * vy);
	printf("vx / vy = %f\n",  vx / vy);

	return 0;
}

4.练习

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

5.数据类型和运算

/*
	验证数据类型和运算
*/

#include <stdio.h>

int main(void)
{
	int    n1, n2, n3, n4;	/* 整数 */
	double d1, d2, d3, d4;	/* 浮点数 */

	n1 = 5   / 2;			/* n1 ← 2   */
	n2 = 5.0 / 2.0;			/* n2 ← 2.5 (赋值时舍弃小数点以后的部分)*/
	n3 = 5.0 / 2;			/* n3 ← 2.5 (赋值时舍弃小数点以后的部分)*/
	n4 = 5   / 2.0;			/* n4 ← 2.5 (赋值时舍弃小数点以后的部分)*/

	d1 = 5   / 2;			/* d1 ← 2    */
	d2 = 5.0 / 2.0;			/* d2 ← 2.5  */
	d3 = 5.0 / 2;			/* d3 ← 2.5  */
	d4 = 5   / 2.0;			/* d4 ← 2.5  */

	printf("n1 = %d\n", n1);
	printf("n2 = %d\n", n2);
	printf("n3 = %d\n", n3);
	printf("n4 = %d\n\n", n4);

	printf("d1 = %f\n", d1);
	printf("d2 = %f\n", d2);
	printf("d3 = %f\n", d3);
	printf("d4 = %f\n", d4);

	return 0;
}

6.1类型转换

/*
	读取两个整数并用浮点数显示出它们平均值
*/

#include <stdio.h>

int main(void)
{
	int a, b;

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

	printf("它们的平均值是%f。\n", (a + b) / 2.0);

	return 0;
}

6.2 利用类型转化运算符:

/*
	读取两个整数并用实数显示出它们的平均值(类型转换)
*/

#include <stdio.h>

int main(void)
{
	int a, b;

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

	printf("它们的平均值是%f。\n", (double)(a + b) / 2);	/* 类型转换 */

	return 0;
}

7.

#include<stdio.h>
 
int main(void)
{
	int x;
	int y;
	puts("请输入两个整数。");
	
	printf("整数x:");
	scanf("%d",&x);
	printf("整数y:");
	scanf("%d",&y);
	
	printf("x是y的%f%%。\n",(double)100*x/y);
	return 0;
}


8.转化说明*(难)*

/*
	读取三个整数,并显示出它们的合计值和平均值
*/

#include <stdio.h>

int main(void)
{
	int a, b, c;
	int sum;				/* 合计值 */
	double ave;				/* 平均值 */

	puts("请输入三个整数。");
	printf("整数a:");   scanf("%d", &a);
	printf("整数b:");   scanf("%d", &b);
	printf("整数c:");   scanf("%d", &c);

	sum = a + b + c;
	ave = (double)sum / 3;		/* 类型转换 */

	printf("它们的合计值是%5d。\n",   sum);		/* 输出99999 */
	printf("它们的平均值是%5.1f。\n", ave);		/* 输出999.9 */

	return 0;
}
/*
	格式化整数和浮点数并显示
*/

#include <stdio.h>

int main(void)
{
	printf("[%d]\n",      123);
	printf("[%.4d]\n",    123);
	printf("[%4d]\n",     123);
	printf("[%04d]\n",    123);
	printf("[%-4d]\n\n",  123);

	printf("[%d]\n",      12345);
	printf("[%.3d]\n",    12345);
	printf("[%3d]\n",     12345);
	printf("[%03d]\n",    12345);
	printf("[%-3d]\n\n",  12345);

	printf("[%f]\n",      123.13);
	printf("[%.1f]\n",    123.13);
	printf("[%6.1f]\n\n", 123.13);

	printf("[%f]\n",      123.13);
	printf("[%.1f]\n",    123.13);
	printf("[%4.1f]\n\n", 123.13);

	return 0;
}

#include<stdio.h>
 
int main(void)
{
	int height;
	printf("请输入您的身高:");
	scanf("%d",&height);
	printf("您的标准体重是%.1f公斤。\n",(height-100)*0.9);
	return 0;
}

Summary

/*
	第2章总结
*/

#include <stdio.h>

int main(void)
{
	int a;
	int 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 = %d\n",   (a + b) / 2);
	printf("平均值 = %f\n\n", (double)(a + b) / 2);

	printf("半径");
	scanf("%lf", &r);

	printf("半径为%.3f的圆的面积是%.3f。\n", r, 3.14 * r * r);

	return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值