C Primer Plus 第6版 第三章 编程练习参考答案
编译环境VS Code+WSL GCC 源码在文末下载
/*第1题*************************/
#include<stdio.h>
int main()
{
int i = 2147483647;
unsigned int ui = 0;
double e = 8.8e38;
double e2 = 3.0;
printf("64位操作系统\n");
printf("int整型 i = %d,+1溢出:%d\n",i,i+1);
printf("无符号int整型 ui = %d,-1溢出:%d\n",ui,ui-1);
printf("浮点型 e = %e,乘99999溢出:%f\n",e,e*99999);
printf("浮点型 e2 =%0.1f,除以0溢出:%f\n",e2,e2/0);
getchar();
return 0;
}
/*第2题*************************/
#include<stdio.h>
int main()
{
char c;
//int number;
printf("请输入一个ASCII码值:\n");
scanf("%d",&c);
printf("你输入的字符串是:'%c'\n",c);
getchar();
return 0;
}
/*第3题*************************/
#include<stdio.h>
int main()
{
printf("\aStartled by sudden sound, Sally shouted,\n");
printf("\"By the Great Pumpkin, what was that!\"\n");
getchar();
return 0;
}
/*第4题*************************/
#include<stdio.h>
int main()
{
double f;
printf("请输入一个浮点数:");
scanf("%lf",&f);
printf("这个浮点数用小数点表示成:%f\n",f);
printf("这个浮点数用指数表示成:%e\n",f);
printf("这个浮点数用十六进制表示成:%a\n",f);
getchar();
return 0;
}
/*第5题*************************/
#include<stdio.h>
int main()
{
double one_year_s = 3.156e7;
int user_age;
printf("请输入你的年龄:\n");
scanf("%d",&user_age);
printf("你年龄对应的秒数是:%0.0f秒\n",user_age*one_year_s);
getchar();
return 0;
}
/*第6题*************************/
#include<stdio.h>
int main()
{
long double water_fz_num;//水分子数
int water_qt_num;//水的夸脱数
printf("请输入水的夸脱数:\n");
scanf("%d",&water_qt_num);
water_fz_num = water_qt_num * 950 / 3.0e-23;//水分子数 = 水的夸脱数 * 1夸脱的质量 ÷ 一个水分子的质量
printf("对应的水分子数量是:%Le\n",water_fz_num);
/******************************************************
**printf()中ld,lld表示long int;long long int *
**Lf,Le分别表示用十进制计数法和指数计数法表示long double *
**因此要严格区分'L'大小写 *
*******************************************************/
getchar();
return 0;
}
/*第7题*************************/
#include<stdio.h>
#define inch2cm 2.54
int main()
{
double user_height;
printf("请输入你的身高(单位/英寸):");
scanf("%lf",&user_height);
printf("你的身高是:%f(单位/厘米)\n",user_height * inch2cm);
getchar();
return 0;
}
/*第8题*************************/
#include<stdio.h>
#define cup2pint 0.5
#define cup2ounce 8.0
#define ounce2big_spoon 2.0
#define big_spoon2tea_spoon 3.0
int main()
{
double cup,pint,ounce,big_spoon,tea_spoon;
printf("请输入杯数:");
scanf("%lf",&cup);
pint = cup * cup2pint;
ounce = cup * cup2ounce;
big_spoon = ounce * ounce2big_spoon;
tea_spoon = big_spoon * big_spoon2tea_spoon;
printf("%f杯等于:%f品脱或%f盎司或%f大汤勺或%f茶勺\n",cup,pint,ounce,big_spoon,tea_spoon);
getchar();
return 0;
}
/*为什么该程序使用浮点类型比整数更好? **
**因为在杯转换到品脱时使用了浮点,为了后续 **
**计算能保留相应的精度,因此使用了浮点。 */