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

#include<stdio.h>
#include<float.h>
#include<limits.h>int main(void)
{int big_int=2147483647;/*有符号整型数据最大值2的31次方减1*/float big_float=3.4e38;/*浮点型数据的最大值一般为3.4E38*/float small_float=10.0/3;/*浮点数据的有效位数,为6位*/printf("The big int data is $d\n",big_int+1);/*整型数据最大值加1,会产生越界,结果为-2147483648*/printf("The big float data is %f\n",big_float*10);/*浮点型最大数据乘10产生越界,输出inf。如果浮点数据只是加一个*小数据,由于其精确度限制,不会产生越界效果。*/printf("The big float data is %f\n",small_float);/*打印结果3.333333,精度损失。*/printf("The MAX int data is %d\n",INT_MAX);/*打印结果:2147483647*/return 0;
}

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

#include<stdio.h>
int main(void)
{int input;printf("Enter a value of char int ASCII:");scanf_s("%d",&input);/*通过scanf()函数读取用户输入,并存储在input变量中。*/printf("You input value is %d,and char is %c\n",input,input);/*通过转换说明%d,打印整型数值和字符.*/return 0;
}

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

Startled by the sudden sound, Sally shouted,
“By the Greet Pumpkin, what was that!”

#include <stdio.h>int main(void)
{char ch = '\a';printf("%c",ch);/* 输出字符 '\a' 该字符表示警报,但部分系统可能无法发声。*/printf("Starled by the sudden sound, Sally shouted, \n");printf("\"By the Great Pumpkin, what was that!\"\n");return 0;
}

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 input;printf("Enter a floating-point value:");scanf("%f",&input);/* 读取用户的输入,存储至input变量。 */printf("fixed-point notation: %f \n",input);/* 打印普通形式,转换说明符使用 %f */printf("exponential notation: %e \n",input);/* 打印指数形式,转换说明符使用 %e */printf("p notation: %a \n",input);/* 打印P计数法形式,转换说明符使用 %a */return 0;
}

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

#include <stdio.h>
#define SEC_PER_YEAR 3.156e7
/* 通过预编译指令定义每年的秒数。*/
int main(void)
{float second,year;/* 由于数值需要,年龄也使用浮点型数据。*/printf("Enter how many years old you are:");scanf("%f",&year);/* 读取用户输入的年龄数。 */second = year*SEC_PER_YEAR;/* 计算用户年龄对应的秒数*/printf("You are: %.1f years old.\n",year);printf("And you are %e seconds old, too.\n",second);return 0;
}

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

#include <stdio.h>
#define MASS_PER_MOLE 3.0e-23
#define MASS_PER_QUART 950
/* 使用预编译指令定义了 水分子质量,一夸脱质量 */
int main(void)
{float quart,quantity;printf("Enter how many quart:");scanf("%f",&quart);/* 读取用户输入的夸脱数。 */quantity = quart*MASS_PER_QUART/MASS_PER_MOLE;/* 计算水分子数量 */printf("There are %e  molecule.\n",quantity);return 0;
}

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

#include <stdio.h>
#define INCH_TO_CM 2.54
/* 英寸到厘米的转换系数。 */
int main(void)
{float inch,cm;printf("Enter the inch of your heigh:");scanf("%f",&inch);cm = inch*INCH_TO_CM;/* 将英寸转换成厘米。*/printf("Hi ,your are %0.2f inch ,or %.2f cm heigh\n",inch,cm);/* 打印计算结果。*/return 0;
}

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

#include <stdio.h>
#define PINT_CUP 2
#define CUP_OUNCE 8
#define OUNCE_SPOON 2
#define SPOON_TEA 3
/* 进制转换的明示常量定义 */int main(void)
{float pint,cup,ounce,spoon,tea_spoon;printf("Enter how many cups:");scanf("%f",&cup);pint = cup/PINT_CUP;ounce = cup*CUP_OUNCE;spoon = ounce*OUNCE_SPOON;tea_spoon = spoon*SPOON_TEA;/* 进制转换计算 */printf("%.1f cup equals %.1f pint, %.1f ounce, %.1f spoon, %.1f tea_spoon.\n",cup,pint,ounce,spoon,tea_spoon);/* 进制转换结果打印*/return 0;
}

C Primer Plus 第3章 数据和C-编程练习相关推荐

  1. C Primer Plus 第三章 数据和C 阅读笔记

    第3章 数据和C 3.1 示例程序 3.1.1 程序中的新元素 3.2 变量与常量数据 3.3 数据:数据类型关键字 3.4 C语言基本数据类型 3.4.1 int类型 3.4.2 其他整数类型 3. ...

  2. 【C++ primer】第七章 函数-C++的编程模块

    1,函数的基本知识        C++对于返回值的类型有一定的限制:不能是数组,但可以使其他任何类型,甚至可以使结构和对象.        有趣的是,虽然数组不可以作为返回对象,但是数组可以作为结构 ...

  3. C primer plus 学习笔记_第三章 数据和C

    第3章 数据和C 关键字:int .short.long.unsigned.char.float.double._Bool. _Complex._Imaginary 运算符:sizeof() 函数:s ...

  4. 《C++ Primer》第9章 9.3节习题答案

    <C++ Primer>第9章 顺序容器 9.3节顺序容器操作习题答案 练习9.18:编写程序,从标准输入读取string序列,存入一个deque中.编写一个循环,用迭代器打印deque中 ...

  5. c primer plus 第五章编程练习

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 文章目录 前言 ##1.编写一个程序,把用分钟表示的时间转换成用小时和分钟表示的时间.使用#define或const创 ...

  6. C++ Primer Plus 第七章编程题练习

    C++ Primer Plus 第七章编程题练习 第一题 题目描述 编写一个程序,不断要求用户输入两个数,直到其中的一个为0.对于每两个数,程序将使用一个 函数来计算它们的调和平均数,并将结果返回给m ...

  7. 《C++ Primer》第12章 12.3节习题答案

    <C++ Primer>第12章 动态内存 12.3节使用标准库:文本查询程序 习题答案 练习12.27:TextQuery和QueryResult类只使用了我们已经介绍过的语言和标准库特 ...

  8. C++ Primer系列 第17章 标准库特殊设施

    C++ Primer系列 第17章 标准库特殊设施 17.1 tuple类型 17.1.1 定义和初始化tuple 17.1.2 使用tuple返回多个值 17.2 bitset类型 17.2.1 定 ...

  9. 《C++Primer》第十七章 标准库特殊设施

    第十七章 标准库特殊设施 tuple类型 tuple是类似pair的模板,每个pair的成员类型都不相同,但是每个pair恰好有两个成员.我们希望将一些数据组合成单一对象,但又不想麻烦地定义一个新数据 ...

最新文章

  1. Java魔法堂:注解用法详解——@SuppressWarnings
  2. CentOS 6.3下rsync服务器的安装与配置[转]
  3. android新浪微博sdk登录获取用户名_多账户的统一登录方案
  4. tensorrt轻松部署高性能dnn推理_基于TensorRT车辆实时推理优化
  5. java 唯一id生成算法_唯一ID生成算法剖析
  6. asp.net如何解决传递中文参数乱码问题
  7. 将多个集合合并成没有交集的集合
  8. 每天多采一半油!中东联手中国阿里云的研究有望降低国际油价
  9. Atitit.ati dwr的原理and设计 attilax 总结 java php 版本
  10. 多元函数的牛顿迭代法
  11. R语言使用aov函数执行单因素方差分析、使用TukeyHSD函数分析单因素方差分析的结果并解读TukeyHSD函数的输出结果
  12. 最直白的编译原理-基础知识(清华-王书3版)
  13. cad2016批量修改相关字体,统一文字样式
  14. 【爬虫】链接二手房信息爬取
  15. angular2 mysql_零起步学习angular2_angularjs教程_汇智网
  16. JAVA+Appium 自动化实现手机屏幕滑动点击操作
  17. 一文总结经典卷积神经网络CNN模型
  18. android+usb+摄像头+app+开源,Android 使用摄像头拍照
  19. js 生成四位随机数
  20. Chrome通过ARChon插件加载运行Android应用

热门文章

  1. 看了这篇干货,再也不怕Mac内存不足了!
  2. Zhong__Linux系统安装MongoDB数据库
  3. 机械革命台式计算机,机械革命台式机怎么样
  4. java 前端模板_前端模板引擎入门
  5. java-天气预报的接口
  6. 使用Hexo搭建个人博客-保姆级教程
  7. 三菱fx2nPLC自学笔记01
  8. 2013年08月威海之旅
  9. 怎样清除手机上的微信小程序的缓存?
  10. [kaggle]华盛顿单车数据预测