栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

第一部分—C语言基础篇

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第一部分—C语言基础篇

2.1 常量与变量 2.1.1 关键字

2.1.2 数据类型

数据类型的作用:编译器预算对象(变量)分配的内存空间大小。

2.1.3 常量

常量:

  1. 在程序运行过程中,其值不能被改变的量
  2. 常量一般出现在表达式或赋值语句中

整型常量

100,200,-100,0

实型常量

3.14 , 0.125,-3.123

字符型常量

‘a’,‘b’,‘1’,‘n’

字符串常量

“a”,“ab”,“12356”

2.1.4 变量

1) 变量

变量:

  1. 在程序运行过程中,其值可以改变
  2. 变量在使用前必须先定义,定义变量前必须有相应的数据类型

标识符命名规则:

  1. 标识符不能是关键字
  2. 标识符只能由字母、数字、下划线组成
  3. 第一个字符必须为字母或下划线
  4. 标识符中字母区分大小写

变量特点:

  1. 变量在编译时为其分配相应的内存空间
  2. 可以通过其名字和地址访问相应内存

2) 声明和定义区别

  1. 声明变量不需要建立存储空间;
  2. 定义变量需要建立存储空间。

一般的情况下,把建立存储空间的声明称之为“定义”,而把不需要建立存储空间的声明称之为“声明”。

2.1.5 使用示例

#include 
#define MAX 10           //声明了一个常量,名字叫MAX,值是10,常量的值一旦初始化不可改

int main()
{
	int a;	             //定义了一个变量,其类型为int,名字叫a

	const int b = 10;    //定义一个const常量,名为叫b,值为10
	//b = 11;            //err,常量的值不能改变

	//MAX = 100;	     //err,常量的值不能改变

	a = MAX;             //将abc的值设置为MAX的值
	a = 123;

	printf("%dn", a);   //打印变量a的值

	return 0;
}

2.2整型:int

2.2.1 整型变量的定义和输出

打印格式

含义

%d

输出一个有符号的10进制int类型

%o

输出8进制的int类型

%x

输出16进制的int类型,字母以小写输出

%X

输出16进制的int类型,字母以大写输出

%u

输出一个10进制的无符号数

2.2.2 整型变量的输入
#include 

int main()
{
	int a;
	printf("请输入a的值:");

	scanf("%d", &a);            //输入a的值          

	printf("a = %dn", a);      //打印a的值

	return 0;
}

2.2.3 short、int、long、long long所占字节数

数据类型

占用空间

short(短整型)

2字节

int(整型)

4字节

long(长整形)

Windows为4字节,Linux为4字节(32位),8字节(64位)

long long(长长整形)

8字节

打印格式

含义

%d

输出int类型

%ld

输出long类型

%lld

输出long long类型

2.2.4 有符号数和无符号数区别

1) 有符号数

有符号数是最高位为符号位,0代表正数,1代表负数。

2) 无符号数

无符号数最高位不是符号位,而就是数的一部分,无符号数是非负数。

3) 有符号和无符号整型取值范围

数据类型

占用空间

取值范围

short

2字节

-32768 到 32767 (-215 ~ 215-1)

int

4字节

-2147483648 到 2147483647 (-231 ~ 231-1)

long

4字节

-2147483648 到 2147483647 (-231 ~ 231-1)

unsigned short

2字节

0 到 65535 (0 ~ 216-1)

unsigned int

4字节

0 到 4294967295 (0 ~ 232-1)

unsigned long

4字节

0 到 4294967295 (0 ~ 232-1)

2.3 sizeof关键字
  1. sizeof不是函数,所以不需要包含任何头文件,它的功能是计算一个数据类型的大小,单位为字节
  2. sizeof的返回值为size_t
  3. size_t类型在32位操作系统下是unsigned int,是一个无符号的整数
#include 

int main()
{
	int a;
	int b = sizeof(a);           //sizeof得到指定值占用内存的大小,单位:字节
	printf("b = %dn", b);

	return 0;
}

2.4字符型:char 2.4.1 字符变量的定义和输出

字符型变量用于存储一个单一字符,在 C 语言中用 char 表示,其中每个字符变量都会占用 1 个字节。在给字符型变量赋值时,需要用一对英文半角格式的单引号(' ')把字符括起来。字符变量实际上并不是把该字符本身放到变量的内存单元中去,而是将该字符对应的 ASCII 编码放到变量的存储单元中。char的本质就是一个1字节大小的整型。

#include 

int main()
{

	char A = 'A';
	char a = 'a';

	printf("a = %dn", a);		//97
	printf("A = %dn", A);	    //65

	printf("A = %cn", 'a' - 32); //小写a转大写A
	printf("a = %cn", 'A' + 32); //大写A转小写a


	return 0;
}

2.4.2 字符变量的输入
#include 

int main()
{

	char ch;
	scanf("%c", &ch);
	printf("ch = %cn", ch);     //打印ch的字符

	return 0;
}

2.4.2 ASCII对照表

ASCII值

控制字符

ASCII值

字符

ASCII值

字符

ASCII值

字符

0

NUT

32

(space)

64

@

96

1

SOH

33

!

65

A

97

a

2

STX

34

"

66

B

98

b

3

ETX

35

#

67

C

99

c

4

EOT

36

$

68

D

100

d

5

ENQ

37

%

69

E

101

e

6

ACK

38

&

70

F

102

f

7

BEL

39

,

71

G

103

g

8

BS

40

(

72

H

104

h

9

HT

41

)

73

I

105

i

10

LF

42

*

74

J

106

j

11

VT

43

+

75

K

107

k

12

FF

44

,

76

L

108

l

13

CR

45

-

77

M

109

m

14

SO

46

.

78

N

110

n

15

SI

47

/

79

O

111

o

16

DLE

48

0

80

P

112

p

17

DCI

49

1

81

Q

113

q

18

DC2

50

2

82

R

114

r

19

DC3

51

3

83

S

115

s

20

DC4

52

4

84

T

116

t

21

NAK

53

5

85

U

117

u

22

SYN

54

6

86

V

118

v

23

TB

55

7

87

W

119

w

24

CAN

56

8

88

X

120

x

25

EM

57

9

89

Y

121

y

26

SUB

58

:

90

Z

122

z

27

ESC

59

;

91

[

123

{

28

FS

60

<

92

/

124

|

29

GS

61

=

93

]

125

}

30

RS

62

>

94

^

126

`

31

US

63

?

95

_

127

DEL

ASCII 码大致由以下两部分组成:

  1. ASCII 非打印控制字符: ASCII 表上的数字 0-31 分配给了控制字符,用于控制像打印机等一些外围设备。
  2. ASCII 打印字符:数字 32-126 分配给了能在键盘上找到的字符,当查看或打印文档时就会出现。数字 127 代表 Del 命令。

2.4.3 转义字符

转义字符

含义

ASCII码值(十进制)

n

换行(LF) ,将当前位置移到下一行开头

010

\

代表一个反斜线字符""

092

'

代表一个单引号(撇号)字符

039

"

代表一个双引号字符

034

?

代表一个问号

063

数字0

000

2.5浮点型:float、double

浮点型变量是用来存储小数数值的。在C语言中, 浮点型变量分为两种: 单精度浮点数(float)、 双精度浮点数(double), 但是double型变量所表示的浮点数比 float 型变量更精确。

由于浮点型变量是由有限的存储单元组成的,因此只能提供有限的有效数字。在有效位以外的数字将被舍去,这样可能会产生一些误差。

#include 

int main()
{
	float a = 3.14; 
	double b = 3.149527;

	printf("a = %fn", a);
	printf("b = %lfn", b);

	return 0;
}

2.6 进制

进制也就是进位制,是人们规定的一种进位方法。  十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一。

十进制

二进制

八进制

十六进制

0

0

0

0

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

10

1010

12

A

11

1011

13

B

12

1100

14

C

13

1101

15

D

14

1110

16

E

15

1111

17

F

16

10000

20

10

2.6.1 二进制

二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”。

当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。

 十进制转化二进制的方法:用十进制数除以2,分别取余数和商数,商数为0的时候,将余数倒着数就是转化后的结果。

2.6.2 八进制

八进制,一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进1。一些编程语言中常常以数字0开始表明该数字是八进制。

八进制的数和二进制数可以按位对应(八进制一位对应二进制三位),因此常应用在计算机语言中。

2.6.3 十六进制

十六进制,同我们日常生活中的表示法不一样,它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9,A-F对应10-15。

十六进制的数和二进制数可以按位对应(十六进制一位对应二进制四位),因此常应用在计算机语言中。

2.6.4 C语言如何表示相应进制数

十进制

以正常数字1-9开头,如123

八进制

以数字0开头,如0123

十六进制

以0x开头,如0x123

二进制

C语言不能直接书写二进制数

#include 

int main()
{
	int a = 123;		           //十进制方式赋值
	int b = 0123;		           //八进制方式赋值, 以数字0开头
	int c = 0xABC;	               //十六进制方式赋值

	
	printf("十进制:%dn",a );
	printf("八进制:%on", b);	   //%o,为字母o,不是数字
	printf("十六进制:%xn", c);

	return 0;
}

2.7 计算机内存数值存储方式

2.7.1 原码

一个数的原码(原始的二进制码)有如下特点:

  1. 最高位做为符号位,0表示正,为1表示负
  2. 其它数值部分就是数值本身绝对值的二进制数

下面数值以1字节的大小描述:

十进制数

原码

+15

0000 1111

-15

1000 1111

+0

0000 0000

-0

1000 0000

2.7.2 反码
  1. 对于正数,反码与原码相同
  2. 对于负数,符号位不变,其它部分取反(1变0,0变1)

十进制数

反码

+15

0000 1111

-15

1111 0000

+0

0000 0000

-0

1111 1111

2.7.3 补码

在计算机系统中,数值一律用补码来存储。

补码特点:

  1. 对于正数,原码、反码、补码相同
  2. 对于负数,其补码为它的反码加1

十进制数

补码

+15

0000 1111

-15

1111 0001

+0

0000 0000

-0

0000 0000

2.7.5 数值溢出

当超过一个数据类型能够存放最大的范围时,数值会溢出。

数据类型

占用空间

取值范围

char

1字节

-128到 127(-27 ~ 27-1)

unsigned char

1字节

0 到 255(0 ~ 28-1)

#include 

int main()
{
	char ch;

	//符号位溢出会导致数的正负发生改变
	ch = 0x7f + 2;                         //127+2
	printf("%dn", ch);                    //结果为-127
	                                    

	//最高位的溢出会导致最高位丢失
	unsigned char ch2;
	ch2 = 0xff+1;                          //255+1
	printf("%un", ch2);                   //结果为0
	

	return 0;
}

2.8类型限定符

限定符

含义

extern

声明一个变量,extern声明的变量没有建立存储空间。

extern int a;//变量在定义的时候创建存储空间

const

定义一个常量,常量的值不能修改。

const int a = 10;

Volatile

防止编译器优化代码

register

定义寄存器变量,提高效率。register是建议型的指令,而不是命令型的指令,如果CPU有空闲寄存器,那么register就生效,如果没有空闲寄存器,那么register无效。

const 重点记住,其他了解即可。

2.9字符串格式化输出和输入 2.9.1 字符串常量
  1. 字符串是内存中一段连续的char空间,以''(数字0)结尾。
  2. 字符串常量是由双引号括起来的字符序列,如“china”、“C program”,“$12.5”等都是合法的字符串常量。

字符串常量与字符常量的不同:

 每个字符串的结尾,编译器会自动的添加一个结束标志位'',即 "a" 包含两个字符'a'和’’。

2.9.2 printf函数和putchar函数

     1.printf是输出一个字符串,

     2.putchar输出一个char。

printf格式字符:

打印格式

对应数据类型

含义

%d

int

接受整数值并将它表示为有符号的十进制整数

%f

float

单精度浮点数

%lf

double

双精度浮点数

%e

double

科学计数法表示的数

%c

char

字符型,也可以把输入的数字按照ASCII码相应转换为对应的字符

%s

char *

字符串,输出字符串中的字符直至字符串中的空字符(字符串以'‘结尾,这个''即空字符)

#include 
int main()
{
	int a = 100;
	printf("%d", a);


	char c = 'a';
	putchar(c);                //putchar只有一个参数,就是要输出的char
	

	double d = 12.3;
	printf("%lfn", d);

	return 0;
}

2.9.3 scanf函数与getchar函数
  1. getchar是从标准输入设备读取一个char。
  2. scanf通过%转义的方式可以得到用户通过标准输入设备输入的数据。
#include 

int main()
{
	char ch1;
	char ch2;
	char ch3;
	int a;

	printf("请输入ch1的字符:");
	ch1 = getchar();
	printf("%cn", ch1);

	getchar();                         //此处getchar()用于拿走“回车”

	printf("请输入ch2的字符:");
	ch2 = getchar();
	printf("'ch2 = %ctest'n", ch2);

	getchar();                         //此处getchar()用于拿走“回车”
	printf("请输入ch3的字符:");
	scanf("%c", &ch3);                 //这里第二个参数一定是变量的地址,而不是变量名
	printf("ch3 = %cn", ch3);

	printf("请输入a的值:");
	scanf("%d", &a);
	printf("a = %dn", a);

	return 0;
}

暑期编程PK赛 得CSDN机械键盘等精美礼品!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1015188.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号