大家好,欢迎来到IT知识分享网。
纸上得来终觉浅, 绝知此事要躬行。 读者应该试着编写一两个简单的程序, 体会一下编写程序是否和阅读本篇内容介绍的这样轻松。
先从一个程序例子开始吧:
#include <stdio.h>
int main(void)
{
float weight; /* 你的体重 */
float value; /* 相等重量的白金价值 */
printf(“Are you worth your weight in platinum?\n”);
printf(“Let’s check it out.\n”);
printf(“Please enter your weight in pounds: “);/* 获取用户的输入 */
scanf(“%f”, &weight);
/* 假设白金的价格是每盎司$1700 */
/* 14.5833用于把英镑常衡盎司转换为金衡盎司[1]*/
value = 1700.0 * weight * 14.5833;
110printf(“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;
}
细心的读者会发现实例程序中多了一些新的C语言元素,注意, 代码中使用了一种新的变量声明。 前面的例子中只使用了整数类型的变量(int) , 但是本例使用了浮点数类型(float) 的变量, 以便处理更大范围的数据。 float 类型可以储存带小数的数字。为了打印新的浮点型变量,我们可以使用”%f”格式说明符来在printf()函数中进行处理。通过使用”%.2f”,我们可以精确控制输出,将浮点数的小数部分限制为两位。
另外,scanf()函数可以用于从键盘接收输入。通过使用”%f”格式说明符,我们可以指示scanf()函数读取用户从键盘输入的浮点数,并将其赋值给名为”weight”的变量。在scanf()函数中,加上”&“符号表示找到”weight”变量的地址。关于”&”符号的更多细节我们将在后面进行详细讨论,但目前你可以按照上述方法编写代码来处理浮点数的输入。
在C语言中, 用int关键字来表示基本的整数类型。 后3个关键字(long、short和unsigned) 和C90新增的signed用于提供基本整数类型的变式, 例如unsigned short int和long long int。 char关键字用于指定字母和其他字符(如,#、 $、 %和*) 。 另外, char类型也可以表示较小的整数。 float、 double和long double表示带小数点的数。 _Bool类型表示布尔值(true或false) ,_complex和_Imaginary分别表示复数和虚数。(PS:这些内容读者可以从网站或资料查阅得到,关于C语言的一些数据类型、如何声明等基础问题,作者不作赘述,仅一笔带过)。
目前我们只需要一个基本函数也是最常见函数打印printf();可以使用printf()函数打印int(整数)类型的值。 %d指明了在一行中打印整数的位置。 %d称为转换说明, 它指定了printf()应使用什么格式来显示一个值。下面给出一个实例,请读者自行体会,并找出错误之处。
#include <stdio.h>
int main(void)
{
int ten = 10;
int two = 2;
printf(“Doing it right: “);
printf(“%d minus %d is %d\n”, ten, 2, ten – two);
printf(“Doing it wrong: “);
printf(“%d minus %d is %d\n”, ten); // 遗漏2个参数
return 0;
}
编译并运行该程序, 输出如下:
Doing it right: 10 minus 2 is 8
Doing it wrong: 10 minus 16 is 1650287143
事实上在printf函数里,每一个d%后面都需要一个数与其对应,由于没有给后两个%d提供任何值, 所以打印出的值是内存中的任意值。
下面将介绍一些数据类型:
一、整数和浮点数
整数类型? 浮点数类型? 如果觉得这些术语非常陌生, 别担心, 下面先简述它们的含义。 如果不熟悉位、 字节和字的概念, 刚开始学习时, 不必了解所有的细节, 就像学习开车之前不必详细了解汽车内部引擎的原理一样。 但是, 了解一些计算机或汽车引擎内部的原理会对你有所帮助。 和数学的概念一样, 在C语言中, 整数是没有小数部分的数。 例如,2、 -23和2456都是整数。 而3.14、 0.22和2.000都不是整数。 计算机以二进制116数字储存整数, 例如, 整数7以二进制写是111。 因此, 要在8位字节中储存该数字, 需要把前5位都设置成0, 后3位设置成1(如图所示)。
在一个值后面加上一个小数点, 该值就成为一个浮点值。 所以, 7是整数, 7.00是浮点数。 显然, 书写浮点数有多种形式。 稍后将详细介绍e记数法, 这里先做简要介绍: 3.16E7 表示3.16×107(3.16 乘以10 的7次方) 。 其中, 107=10000000, 7被称为10的指数。
二、C语言基本数据类型
(1)int类型:int类型是有符号整型, 即int类型的值必须是整数, 可以是正整数、 负整数或零。前面已经用int声明过基本整型变量。 先写上int, 然后写变量名, 最后加上一个分号。 要声明多个变量, 可以单独声明每个变量, 也可在int后面列出多个变量名, 变量名之间用逗号分隔。 下面都是有效的声明:
int erns;
int hogs, cows, goats;
在C程序中, 既可以使用和显示不同进制的数。 不同的进制要使用不同的转换说明。 以十进制显示数字, 使用%d; 以八进制显示数字, 使用%o;以十六进制显示数字, 使用%x。 另外, 要显示各进制数的前缀0、 0x和0X,必须分别使用%#o、 %#x、 %#X。例如:
#include <stdio.h>
int main(void)
{
int x = 100;
printf(“dec = %d; octal = %o; hex = %x\n”, x, x, x);
printf(“dec = %d; octal = %#o; hex = %#x\n”, x, x, x);
return 0;
}
输出结果:
dec = 100; octal = 144; hex = 64
dec = 100; octal = 0144; hex = 0x64
(2)char类型
char类型变量的声明方式与其他类型变量的声明方式相同。 下面是一些例子:
char response;
char itable, latan;
以上声明创建了3个char类型的变量: response、 itable和latan。
char broiled;/* 声明一个char类型的变量 */
broiled = ‘T’;/* 为其赋值, 正确 */
broiled = T;/* 错误! 此时T是一个变量 */
broiled = “T”;/* 错误! 此时”T”是一个字符串 */
如上所示, 如果省略单引号, 编译器认为T是一个变量名; 如果把T用双引号括起来, 编译器则认为”T”是一个字符串。
(3)_BOOL类型
_Bool类型, 用于表示布尔值, 即逻辑值true和false。 因为C语言用值1表示true, 值0表示false, 所以_Bool类型实际上也是一种整数类型。
(4)float、 double
浮点型变量的声明和初始化方式与整型变量相同, 下面是一些例子:
float noah, jonah;
double trouble;
float planck = 6.63e-34;
long double gnp;
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/58556.html