《C Primer Plus》(第六版)答案(3.11)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_43219615/article/details/99874174

为使用《C Primer Plus》学习C的初学者准备的。

  1. 通过测试(编写有问题的程序)观察系统如何处理整数上溢、浮点数上溢和浮点数下溢的情况。
#include <stdio.h>
int main(int argc, char const **argv) {
	/*32位的有符号整型的上界是2^32-1(4294967295) 再加一就溢出了(想要深入了解可以看看计算机组成原理)*/
	int a = 4294967295;
	a = a + 1;
	printf("%d\n", a);
	
	/*10e100次方上溢 0.00000000012下溢*/
	float b = 10e100;
	printf("%f", b);
	b = 0.00000000012; 
	printf(" %f", b); 
	 
	return 0;
} 
  1. 编写一个程序,要求提示输入ASCII码,然后打印输入的字符。
#include <stdio.h>
int main(int argc, char const **argv) {
	char c;
	printf("Input a number:");
	scanf("%d", &c);
	//%c表示字符格式输出 
	printf("%d in ASCII is %c.", c, c);
	return 0;
} 
  1. 编写一个程序,发出一声警报。然后打印下面的文本。
    文本图片
#include <stdio.h>
int main(int argc, char const **argv) {
	/*转义字符\a代表警报*/
	printf("\a");
	
	printf("Started by the sudden sound, Sally shouted,\n");
	/*想要输出"得使用转义字符*/ 
	printf("\"By the Great Pumpkin, what was that!\"");
	
	return 0;
} 
  1. 编写一个程序,读取一个浮点数,先打印成小数点形式,再打印成指数形式。然后,如果系统支持,再打印成p计数法(十六进制计数法)。按以下格式输出(实际显示指数位数可能因系统而异)。
    输出格式
#include <stdio.h>
int main(int argc, char const **argv) {
	float f;
	
	printf("Enter a float-point value:");
	scanf("%f", &f);
	
	printf("fixed-point notation:%f\n", f);
	printf("exponential notation:%e\n", f);
	printf("p notation:%a\n", f);
	
	return 0; 
} 
  1. 一年大约有3.156*107秒。编写一个程序,提示用户输出年龄,然后输出对应的秒数。
#include <stdio.h>
int main(int argc, char const **argv) {
	/*用float可能会溢出(我没多想,你可以试试)*/ 
	double d = 3.165e7;
	int age;
	
	printf("Input your age:");
	scanf("%d", &age);
	
	/*整型和浮点型进行运算会自动转成浮点型*/
	printf("The result is %.0lfs.", age*d);
	
	return 0;
} 
  1. 1个水分子的质量约为3.0*10-23克。1夸脱水大约是950克。编写一个程序,提示用户输入水的夸脱数,并显示水分子的数量。
#include <stdio.h>
int main(int argc, char const **argv) {
	double d = 3.0e-23;
	double a;
	
	printf("输入水的夸脱数:");
	scanf("%lf", &a);
	
	printf("%lf夸脱水中水分子的数量是:%.0lf", a, (a*950)/d);
	
	return 0;
} 
  1. 1英寸相当于2.54厘米。编写一个程序,提示用户输入身高(英寸),然后以厘米为单位显示身高。
#include <stdio.h>
int main(int argc, char const **argv) {
	float f;
	
	printf("输入身高(英寸):");
	scanf("%f", &f);
	
	printf("你的身高是%.2f(cm)", f*2.54);
	
	return 0;
} 
  1. 在美国的体积测量系统中,1品脱等于2杯,一杯等于8盎司,1盎司等于2大汤勺,1大汤勺等于3茶勺。编写一个程序,提示用户输入杯数,并以品脱、盎司、汤勺、茶勺显示等价容量。
#include <stdio.h>
int main(int argc, char const **argv) {
	float f;
	
	printf("输入杯数:");
	scanf("%f", &f);
	
	float pint = f / 2;//品脱 
	float ounce = f * 8;//盎司 
	float spoon = ounce * 2;//汤勺 
	float s = spoon * 3;//药勺 不知道英文是什么 就这样命名吧
	printf("品脱:%.1f	盎司:%.1f	汤勺:%.1f	药勺:%.1f", pint, ounce, spoon, s);
	
	return 0;
} 

猜你喜欢

转载自blog.csdn.net/weixin_43219615/article/details/99874174