1、在你的机器上,字符的范围有多大?有哪些不同的证书类型,它们的范围又是如何?
答:在main.c文件#include <limits.h>,进入limits.h文件即可看到各个数据类型的最大值最小值。
2、在你的机器上,各种不同的浮点数的范围是怎样的?
答:同1题。
3.假定你正编写一个程序,它必须运行于两台机器之上。这两台机器的缺省整型长度并不相同,一个是16位,另一个是32位。而这两台机器的长整型长度分别是32位和64位。程序所使用的的有些变量值并不太大,足以保存于任何一台机器的缺省整型变量中,但有些变量的值却较大,必须是32位的整型变量才能容纳它。一种可行的解决方案是用长整型表示所有的值,但在16位机器上,对于那些用16位足以容纳的值而言,时间和空间的浪费不可小视。在32位机上,也存在事件和空间的浪费问题。
如果想让这些变量在任何一台机器上的长度都合适的话,你该如何声明它们呢?正确的方法是不应该在任何一台机器中编译程序前对程序进行修改。提示:试试包含一个头文件,里面包含每台机器特定的声明。
答:新建一个名为DataType.h的头文件,在16位机和32位机上该头文件的代码分别如下:
//16位机
typedef unsigned char int8;
typedef int int16;
typedef long int int32;
// 32位机
typedef unsigned char int8;
typedef short int int16;
typedef int int32;
typedef long int int64;
4、假定你有一个程序,它把一个long整型变量赋值给一个short整型变量。当你编译程序时会发生什么情况?当你运行程序时会发生什么情况?你认为其它编译器的结果是否如此?
答:我使用的是Visual studio 2012,在上面编译和运行程序都没有问题。但是控制台显示一行警告信息,提醒可能丢失数据。
警告 2 warning C4244: “=”: 从“long”转换到“short”,可能丢失数据
其它编译器不一定会是同样的结果,有的可能编译不通过。
5、假定你有一个程序,它把一个double变量赋值给一个float变量。当你编译程序时会发生什么情况?当你运行程序时会发生什么情况?你认为其它编译器的结果是否如此?
答:和上题一样,编译和运行程序都没有问题。但是控制台显示一行警告信息,提醒可能丢失数据。
警告 1 warning C4244: “=”: 从“double”转换到“float”,可能丢失数据
6、编写一个枚举声明,用于定义硬币的值,请使用符号PENNY,NICKEL等。
enum MONEY{PENNY=1, NICKEL = 5, DIME = 10, QUARTER =