C Primer Plus编程练习 第三章(C语言打卡学习)

3-1.通过试验(即编写带有此类问题的程序)观察系统如何处理整数上溢、浮点数上溢和浮点数下溢的情况。

3-1 Code

#include <stdio.h>
int main(void)
{
	float f_max, f_min;
	double d_max, d_min;
	long double ld_max, ld_min;
	printf("The \"float\" max = %f ,min = %f\nmax+1= %f ,max+2= %f\nmin-1= %f ,min-2= %f .", f_max, f_min, f_max + 1, f_max + 2, f_min - 1, f_min - 2);
	printf("The \"double\" max = %f ,min = %f\nmax+1= %f ,max+2= %f\nmin-1= %f ,min-2= %f .", d_max, d_min, d_max + 1, d_max + 2, d_min - 1, d_min - 2);
	printf("The \"long double\" max = %lf ,min = %lf\nmax+1= %lf ,max+2= %f\nmin-1= %lf ,min-2= %lf .", ld_max, ld_min, ld_max + 1, ld_max + 2, ld_min - 1, ld_min - 2);
}

3-2.编写一个程序,要求提示输入一个ASCII码值(如,66),然后打印输入的字符。

3-2 Code

#include <stdio.h>
int main(void)
{
	int ASCII;
	printf("请输入一个ASCCII码值:\n");
	scanf_s("%d", &ASCII);//PTA中需要把scanf_s中的_s删去,只打scanf
	printf("ASCII码值:\"%d\" 对应的ASCII字符是:\"%c\"", ASCII, ASCII);
	return 0;
}

3-3.编写一个程序,发出一声警报,然后打印下面的文本:

3-3 Code

#include <stdio.h>
int main(void)
{
	printf("\aStartled by the sudden sound, Sally shouted,\n");
    printf("\"By the Great Pumpkin, what was that!\"");
	return 0;
}

3-4.编写一个程序,读取一个浮点数,先打印成小数点形式,再打印成指数形式。然后,如果系统支持,再打印成p记数法(即十六进制记数法)。按以下格式输出(实际显示的指数位数因系统而异):

3-4 Code 

#include <stdio.h>
int main(void)
{
	float enter;
	printf("请输入一个浮点数:");
	scanf_s("%f", &enter);//PTA中需要把scanf_s中的_s删去,只打scanf
	printf("它的小数点形式是:%f\n", enter);
	printf("按照e计数法(指数)它的形式是%e\n", enter);
	printf("p计数法(十六进制)它的形式是:%a\n", enter);
	getchar();
	getchar();//两个getchar可删,只是前文所学,此题用来练手
	return 0;
}

3-5.一年大约有3.156×10^7秒。编写一个程序,提示用户输入年龄,然后显示该年龄对应的秒数。

3-5 Code

#include <stdio.h>
int main(void)
{
	float age;
	printf("请你的年龄(只输入年份即可):");
	scanf_s("%f", &age);//PTA中需要把scanf_s中的_s删去,只打scanf
	printf("你已经存活了%.0f秒\n", age*3.156e7);
	return 0;
}

3-6.1个水分子的质量约为3.0×10−23克。1夸脱水大约是950克。编写一个程序,提示用户输入水的夸脱数,并显示水分子的数量。

3-6 Code

#include <stdio.h>
int main(void)
{
	float water;
	printf("请输入水的夸脱数:");
	scanf_s("%f", &water);//PTA中需要把scanf_s中的_s删去,只打scanf
	printf("%f夸脱水E计数法水分子的数量是%e\n", water,water*3.0e-23);
	return 0;
}

3-7.1英寸相当于2.54厘米。编写一个程序,提示用户输入身高(/英寸),然后以厘米为单位显示身高。

3-7 Code

#include <stdio.h>
int main(void)
{
	float high;
	printf("请输入你的身高(英寸):");
	scanf_s("%f", &high);//PTA中需要把scanf_s中的_s删去,只打scanf
	printf("你的身高是%.2f厘米\n", high*2.54);
	return 0;
}

3-8.在美国的体积测量系统中,1品脱等于2杯,1杯等于8盎司,1盎司等于2大汤勺,1大汤勺等于3茶勺。编写一个程序,提示用户输入杯数,并以品脱、盎司、汤勺、茶勺为单位显示等价容量。思考对于该程序,为何使用浮点类型比整数类型更合适?

[1] 欧美日常使用的度量衡单位是常衡盎司(avoirdupois ounce),而欧美黄金市场上使用的黄金交易计量单位是金衡盎司(troy ounce)。国际黄金市场上的报价,其单位“盎司”都指的是金衡盎司。常衡盎司属英制计量单位,做重量单位时也称为英两。相关换算参考如下:1常衡盎司 = 28.3495231克,1金衡盎司 =31.1034768克,16常衡盎司 = 1磅。该程序的单位转换思路是:把磅换算成金衡盎司,即28.3495231÷31.1034768×16≈14.5833。——译者注

[2] 即,size_t类型。——译者注

3-8 Code

当杯数小于2时,无法表示整数的品脱则品脱为浮点数,在计算机运算中,浮点数应与浮点数计算

#include <stdio.h>
int main(void)
{
	float num;
	printf("请输入需要转换的体积(杯数):");
	scanf_s("%f", &num);//PTA中需要把scanf_s中的_s删去,只打scanf
	printf("%f杯可转换为:\n", num);
	printf("%f 品脱\n", num / 2.0);
	printf("%f 杯\n", num );
	printf("%f 盎司\n", num *8);
	printf("%f 汤勺\n", num *16);
	printf("%f 茶勺\n", num * 48);
	return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值