3.1 示例程序
#include
int main(int argc, char *argv[])
{
float weight; //你的体重
float value; //相等重量的白金价值
printf("Are you worth your weight in platinum?\n");
printf("Let's check it out.\n");
scanf("%f",&weight); //获取用户输入
value = 1700.0 * weight * 14.5833;
printf("Your weight in platinum is worth $%.2f.\n",value);
printf("You are easily worth that! If platinum prices drop,\n");
printf("eat more to maintain your value.\n");
return 0;
}
3.2 C语言基本数据类型
1.int 型
int 类型是有符号整形,即int类型的值必须是整数,可以是正整数,负整数,0.一般而言,储存一个int要占用一个机器字长。
ISO C规定int的取值范围最小为-32768~32767
2.其他整数类型
short int 类型,占用存储空间比int小。
long int 类型,占用存储空间比int 大。
long long int 类型, C99标准加入,占用存储空间比long类型大。
unsigned int 类型,无符号整形,用于存储非负值。
在任何有符号类型前添加关键字signed,可以强调使用有符号类型的意图。
3.使用字符:char类型
char类型用于存储字符,如字母、标点符号,但是从技术层面看,char是整数类型。因为char类型实际上存储的是整数而不是字符。
计算机使用数字编码来处理字符,即用特定的整数表示特定的字符。最常用的编码是ASCII码。
4.bool类型
C99标准添加了bool类型,用于表示布尔值,即逻辑true和false。因为C语言用值1表示true,0表示false,所以bool类型实际上也是一种整数类型。
5.可移植类型:stdint.h和inttype.h
C语言提供了许多有用的整数类型。但是,某些类型名在不同系统中的功能不一样。C99新增了两个头文件,以确保C语言的类型在各个系统中
的功能相同。C99和C11不仅提供可移植的类型名,还提供了相应的输入和输出。
6.浮点型float,double和long double
浮点类型能表示包括小数在内的更大范围的数。
7.复数和虚数
float _Complex
double _Complex
long double _Complex
float _Imaginary
double _Imaginary
long double _Imaginary
运行下列程序,会列出当前系统的各类型的大小
#include
int main(int argc, char *argv[])
{
printf("Type int has a size of %u bytes.\n",sizeof(int));
printf("Type char has a size of %u bytes.\n",sizeof(char));
printf("Type long has a size of %u bytes.\n",sizeof(long));
printf("Type long long has a size of %u bytes.\n",sizeof(long long));
printf("Type double has a size of %u bytes.\n",sizeof(double));
printf("Type long double has a size of %u bytes.\n",sizeof(long double));
return 0;
}
编写程序时,应注意合理选择所需的变量及其类型。
3.3 复习题
1.在什么情况下要用long型的变量 代替int型变量?
在系统中表示的数超过了int可表示的范围,这时要用long型。如果要处理更大的值,那么使用一种在所有系统中
都保证至少是32位的类型,可提高程序的可移植性。
3.4 编程练习
1.编写一个程序,要求提示输入一个ASCII码值(如66),然后打印输入的字符.
2.一年大约有3.156*10(7次方)秒。编写一个程序,提示用户输入年龄,然后显示该年龄对应的秒数。