把一个数补码输入数组c语言,C语言程序设计笔记(三)

1.做点计算

printf("%d", 23+46);

printf("23+46=%d", 23+46);

printf("100-23=%d", 100-23);

2.如何在程序运行的时候输入那个数字,然后计算, 输出结果?

有地方放输入的数字;

有办法输入数字;

输入的数字能参与计算;

上一份笔记中有个change.c

非C99必须把变量的定义放在前面

#include

int main()

{

int price = 0;

printf("请输入金额(元):");

scanf("%d", &price);

int change = 100 - price;

//非C99必须把change放在前面定义

printf("找您%d元。\n", change);

return 0;

}

3.如何输入

输入也是在终端窗口(黑乎乎的console)中

输入是一行为单位进行的,行的结束标志就是你按下了回车键。在你按下回车之前,你的程序部会读到任何东西

读整数

scanf(“%d”, &price);

这是一个系统库函数

要求scanf这个函数读入下一个整数,读到的结果赋值给变量price

注意price前面的&(取地址符)

4.变量

int price = 0;这一行,定义了一个变量,变量名是price,;类型是int,初始值是0。

变量代表计算机内存的一个存储单元。

变量具有以下特性:

变量名 —>“标识符(indentifier)”

变量值(value)

变量的数据类型

变量存储的地址

变量的存储属性

变量定义的一般形式

例子:

int price;

int amount;

int price,amount;

标识符可以由字母、数据和下划线构成,且必须由字符或下划线开头,其中字母为26个字母,可以是大写或者小写。

C语言还规定,关键字(保留字)不能作为变量名

5.赋值

和数学上不同,a=b在数学中表示关系,即a等于b,而在程序设计语言中,a=b表示要求计算机做一个动作,把b的值赋值给a。关系是静态的,动作是动态的。

变量初始化

当赋值发生在定义变量的时候,就像int price = 0;这样,就是变量的初始化。虽然C语言没有强制要求所有的变量都在定义的地做初始化,但是所有的变量都必须在第一次被使用(出现在赋值运算符的右边或者输出)之前被初始化。

例如:=;

int price = 0;

int amount = 100;

//组合变量定义的时候,可以定义的时候,单独给单个变量赋初值

int price = 0, amount = 100;

如果变量没有初始化,变量的值是随机。会造成你的程序出现莫名其妙的数据或者出错

6.变量类型

C语言是强类型的语言,所有的变量在使用之前必须先定义或声明后使用,变量定义类型后不可改变其数据类型。

注:

ANSI C 变量只能在代码开头的地方定义变量

C99 可以在代码中定义变量

turbo c 的基本类型以及存储类型和数值范围

类型

类型标识符

长度(字节)

数值范围

整型

有符号整型[signed] int

2

-32768~32767

有符号短整型 [signed] short [int]

2

-32768~32767

无符号短整型unsigned short [int]

2

0~65535

有符号整型[signed] int/signed [int]

2

-32768~32767

无符号整型 unsigned [int]

2

0~65535

有符号整型 unsigned long [int]

4

-2147483648~2147483647

字符型

有符号字符型[signed] char

1

-127~128

无符号字符型unsigned char

1

0~255

浮点型

单精度浮点型 float

4

绝对值3.4e-38~3.4e+38

双精度浮点型double

8

1.7e-308~1.7e+308

长双精度浮点型long double

10

3.4e-4932~3.4e+4932

具体的字节数和编译器有关,不同的编译器,字节数不一样,不过可以用sizeof()函数去获取

6.常量

代码中 int change = 100 - price;

- 固定不变的数,是常数。直接写在程序里,我们称作直接量(literal)

- 我们把这种出现在程序中莫名其妙的数字叫做神秘数。

- 更好的方式,是定义一个常量:

- const int AMOUNT = 100;(这是C99的做法)

- #define AMOUNT 100 (这是标准C的写法,微软喜欢这么干,宏定义)

例子:

#include

int main()

{

const int AMOUNT = 100;//这是C99的做法

int price = 0;

printf("请输入金额(元):");

scanf("%d", &price);

int change = AMOUNT - price;

printf("找您%d元。\n", change);

return 0;

}

//标准C定义常量的方法。

#include

#define AMOUNT 100

int main()

{

int price = 0;

printf("请输入金额(元):");

scanf("%d", &price);

int change = AMOUNT - price;

printf("找您%d元。\n", change);

return 0;

}

const是一个修饰符,加在int的前面,用来给这个变量加上一个const(不变的)属性。这个const属性表示这个变量的值一旦被初始化(必须被初始化),就不能被修改了。

#include

int main()

{

int amount = 100;

int price = 0;

printf("请输入金额(元):");

scanf("%d", &price);

printf("请输入票面(元):");

scanf("%d", &amount);

int change = AMOUNT - price;

printf("找您%d元。\n", change);

return 0;

}

使用符号常量是一种良好的编程风格

1、一般用小写字母表示变量名,大写字母表示符号常量名,这样有利于增加程序的可读性。

2、程序便于维护,能够做到一改全改。

2、提高可读性

8.常量的类型

整型常量

十进制整数,由0~9的数字组成,前面带+或-表示正数或者负数,如123、-345、+123

八进制整数,以0(零)开头,由0~7的数字组成,前面带+或-表示正数或者负数,如0123(等于十进制的83)

十六进制整数,以0x或者0X开头(0为零),由0-9和A~F(a~f)组成,A~F(a~f)表示10~15,前面带+或-表示正数或者负数。

后缀,加上l或L表示长整型常量,加上U或者u表示无符号整型常量

LU可以同时使用,顺序可以任意,表示无符号长整型

整数在机内的存储形式

在大多数的机器中,整数是以补码的形式存储。补码的表示法中,最高位为符号位,0代表正数,1代表负数。

一个负数的补码可以使用按位取反加1的方法来计算

浮点型常量

1)十进制小数,由0~9、小数点和+、-号组成

2)指数形式 由0~9、字母e或E和+、-号组成。它的形式为aEn(aen),意为a*10n.a为十进制整数或者小数,n是十进制整数

注意:1.以指数形式表示实数的时,an都不能省略,n必须为整数

2.以十进制小数表示实数的时,整数部分和小数部分可以省略其中一个。例如:.35(0.35),26. 。

3.浮点型常量默认是double,如果在后面加了F(f)则类型是float

字符常量

使用单引号括起来的字符。

使用转义字符表示方法表示的字符。如’\n’,’\0’,’\012’,’\x42’

字符串常量

字符串常量是有一对双引号括起来的字符序列,字符串可以包含任何字符。双引号不属于字符串,起界定作用。C语言中没有字符串类型,而是用字符数组来存储字符串。字符串在计算机内存储,所占的字节数等于字符串字符个数加1。增加1个‘\0’作为字符串结束标志

9.练习

1.plus.c

#include

int main()

{

int a;

int b;

printf("请输入两个整数:");

scanf("%d %d", &a, &b);

printf("%d + %d = %d\n", a, b, a + b);

return 0;

}

2.height2.c

#include

int main()

{

printf("请分别输入身高的英尺和英寸,"

"如输入\"5 7\"表示5英尺7英寸:");

double foot;

double inch;

scanf("%lf %lf", &foot, &inch);

printf("身高是%f米。\n",

((foot + inch / 12) * 0.3048));

return 0;

}

注:C语言中整数除法,如果两个数相处是浮点数,其结果是取整数部分。例如1/2=0,而浮点数除法1.0/2=0.5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值