C Primer Plus 第6版 第三章编程练习

文章探讨了编程中的数值溢出问题,涉及整数和浮点数,以及如何通过编程实现ASCII字符输入、警报与文本输出、不同数值表示法转换、年龄与时间换算,以及美国体积测量系统的转换,强调了浮点类型在某些场景的适用性。
摘要由CSDN通过智能技术生成

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

/*1.定义目标:设计问题使面对整数上溢、浮点数上溢和浮点数下溢的情况
    设计程序:设计题目,调用整数类型,浮点数类型,赋值超出位数,输出查看情况 */
/*某博物馆想请你设计可容纳最大访问人数为4294967295,
  超出最大访问人数从0开始(整数上溢).你的朋友想看看浮点数最大和最小,计算机会怎样*/
#include <stdio.h>
int main(void)
{
    unsigned int i =4294967295;
    float j= 3.4E38 * 100.0f;
    float k= 3.1415e9/10;
    printf("%u %u %u\n",i,i+1,i+2);
    printf("%f\n%f\n",j,k);
    return 0;
}

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

/*2.定义目标:输入一个ASCII码值,输出字符
    设计程序:使用char类型,scanf获取数据,以十进制输出 */
#include <stdio.h>
int main(void)
{
    char c;
    printf("请输入字母\n");
    scanf("%c",&c);
    printf("%c means %d.",c,c);
    return  0;
}

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

Startled by the sudden sound, Sally shouted,

"By the Great Pumpkin, what was that!"

/*3.定义目标:发出警报,打印文本
            Startled by the sudden sound, Sally shouted,
            "By the Great Pumpkin, what was that!"
    设计程序:使用转义字符,输出*/
#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;
}

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

/*4.定义目标:一个浮点数,打印成小数点形式,指数形式,p记数法(即十六进制记数法)
按以下格式输出:
Enter a floating-point value: 64.25
fixed-point notation: 64.250000
exponential notation: 6.425000e+01
p notation: 0x1.01p+6
 设计程序: 声明并初始化浮点数变量,以不同形式输出*/
#include <stdio.h>
int main(void)
{
 float six =64.25;
 printf("Enter a floating-point value:%2.2f\n",six);
 //%g也行   输出实数,自动选择合适的表示法(科学计数法与小数记数法)
 printf("fixed-point notation:%f\n",six);
 printf("exponential notation:%e\n",six);
 printf("p notation:%a\n",six);
 return 0;
}

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

/*5.定义目标:输入年龄,显示该年龄对应的秒数  3.156×10^7
 设计程序: 声明变量,printf询问年龄,scanf输入年龄,计算秒数,printf输出*/
#include <stdio.h>
int main(void)
{
 int age;
 printf("How old are you?\n");
 scanf("%d",&age);
 printf("Your age is agree with %.2f",age*3.156e7);
 return 0;
}

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

/*6.定义目标:输入水的夸脱数,显示水分子的数量
  1个水分子的质量约为3.0×10^−23克,1夸脱水大约是950克.
 设计程序: 声明变量,printf询问夸脱数,scanf输入夸脱数,计算水分子的数量,printf输出*/
#include <stdio.h>
int main(void)
{
 int num;
 printf("请问你想要几夸脱水\n");
 scanf("%d",&num);
 printf("这些水分子的质量是 %e",num*3.0e-23/950);
 //用%e打印指数记数法的浮点数。
 return 0;
}

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

/*7.定义目标:输入身高(/英寸),以厘米为单位显示身高  1英寸相当于2.54厘米
 设计程序: 声明变量,printf询问身高,scanf获取,printf计算输出*/
#include <stdio.h>
int main(void)
{
 float num;
 printf("请问您的身高是多少英寸\n");
 scanf("%f",&num);
 printf("这相当于%.2f厘米",num*2.54);
 return 0;
}

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

/*7.定义目标:输入杯数,并以品脱、盎司、汤勺、茶勺为单位显示等价容量

//整数类型在用户输入的单数时会有小数出现
    设计程序: 声明变量,printf询问杯数,scanf获取,printf计算输出*/
#include <stdio.h>
int main(void)
{
 float num;
 printf("请问您想要几杯?\n");
 scanf("%f",&num);
 printf("这相当于%.2f品脱\n",num/2);
 printf("这相当于%.2f盎司\n",num*8);
 printf("这相当于%.2f汤勺\n",num*8*2);
 printf("这相当于%.2f茶勺\n",num*8*2*3);
 return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值