数据和C
示例程序
#include<stdio.h> int main(void) { float weight; float value; printf("are you worth your weight in platinum? "); printf("Let's check it out. "); printf("please enter your weight in pounds: "); scanf("%f",&weight); //获取用户输入 value=1700.0*weight*14.5833; printf("your weight in platinum is worth $%.2f. ",value); printf("you are easily worth that!if platinum prices drop, "); printf("eat more to maintain your value. "); return 0; }
输出结果:
基本数据类型
1. int类型
声明多个变量,变量名之间用逗号隔开
初始化变量,初始化可以直接在声明中完成,只需要在变量名后面加上=和待赋的值即可
int hogs = 21; int cow =32 ,goats = 14;
注意:最好不要把初始化变量和未初始化的变量放在同一条声明中
声明为变量创建和标记存储空间,并为其制定初始值
打印int值
%d指明了在一行中打印整数的位置,叫做转换说明,每个%d都与待打印变量列表中相应的int值匹配
在使用printf()函数时,切记检查每个待打印值都有对应的转换说明,还要检查转换说明的类型是否与待打印的类型相匹配
#include<stdio.h> int main(void) { int ten = 10; int two = 2; printf("doing it right:"); printf("%d minus %d is %d ",ten,2,ten-two); printf("doing it wrong:"); printf("%d minus %d is %d ",ten);//遗漏2个参数 return 0; }
输出结果
第二次打印的被减数和结果是任意值,大部分函数都需要制定数目的参数,编译器会检查参数的数目是否正确,要确保转换说明的数量与待打印的值数量相等
其他整数类型
2. char类型
C语言把1字节定义为char类型占用的位数,因此无论是16位还是32位系统,都可以使用char类型
字符常量和初始化
char grade='A';
在C语言中,用单引号括起来的单个字符被称为字符常量,字符是以数值形式储存的,所以也可使用数字代码来赋值
转义序列
#include<stdio.h> int main(void) { char ch; printf("please enter a character. "); scanf("%c",&ch); printf("the code for %c is %d. ",ch,ch); return 0; }
输出结果:
please enter a character.
C
the code for C is 67.
注意:printf()函数中的转化说明决定了数据的显示方式,而不是数据的储存方式
3. _Bool类型
用于表示布尔值,1表示true,0表示false,所以_Bool类型实际上也是一种整数类型,但原则上它仅占用1位存储空间
4. 浮点型常量
printf()函数使用 %f 转换,用 %e 打印指数计数法的浮点数
打印long double类型要使用%Lf、%Le或%La转换说明
特殊浮点值NAN(not a number)
编程练习
1. 编写一个程序,要求提示输入一个ASCII码值,如66,然后打印输入的字符
#include<stdio.h> int main(void) { char a; scanf("%d",&a); printf("%c ",a); return 0; }
2. 一年大约有3.156*10^7秒,编写一个程序,提示用户输入年龄,然后显示该年龄对应的秒数
#include<stdio.h> int main(void) { float a; printf("please input your age: "); scanf("%f",&a); printf("your age is %eseconds ",a*3.156E7); return 0; }
3. 1英寸相当于2.54厘米,编写一个程序,提示用户输入身高(/英寸)。然后以厘米为单位显示身高
#include<stdio.h> int main(void) { float h; printf("please input your height: "); scanf("%f",&h); printf("your height is %.2fcm",h*2.54); return 0; }