C语言复习_一

hello,各位我来复习C语言了,别管就是大一没学导致现在要狠补!!!

一 数据类型

1.1 基本数据类型

int char float double short long unsighed

1.2 数据类型

字符型数据
C语言32个关键字

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 命令。

浮点型 

单精度浮点型float 和双精度浮点型 float

数据类型

占用空间

有效数字范围

float

4字节

31位有效数字

double

8字节

6364位有效数字

运算符

运算符类型

作用

算术运算符

用于处理四则运算

赋值运算符

用于将表达式的值赋给变量

比较运算符

用于表达式的比较,并返回一个真值或假值

逻辑运算符

用于根据表达式的值返回真值或假值

位运算符

用于处理数据的位运算

sizeof运算符

用于求字节数长度

算术运算符

运算符

术语

示例

结果

+

正号

+3

3

-

负号

-3

-3

+

10 + 5

15

-

10 - 5

5

*

10 * 5

50

/

10 / 5

2

%

取模(取余)

10 % 3

1

++

前自增

a=2; b=++a;

a=3; b=3;

++

后自增

a=2; b=a++;

a=3; b=2;

--

前自减

a=2; b=--a;

a=1; b=1;

--

后自减

a=2; b=a--;

a=1; b=2;

赋值运算符

运算符

术语

示例

结果

=

赋值

a=2; b=3;

a=2; b=3;

+=

加等于

a=0; a+=2;

a=2;

-=

减等于

a=5; a-=3;

a=2;

*=

乘等于

a=2; a*=2;

a=4;

/=

除等于

a=4; a/=2;

a=2;

%=

模等于

a=3; a%2;

a=1;

比较运算符

运算符

术语

示例

结果

==

相等于

4 == 3

0

!=

不等于

4 != 3

1

<

小于

4 < 3

0

>

大于

4 > 3

1

<=

小于等于

4 <= 3

0

>=

大于等于

4 >= 1

1

逻辑运算符

运算符

术语

示例

结果

!

!a

如果a为假,则!a为真;

如果a为真,则!a为假。

&&

a && b

如果a和b都为真,则结果为真,否则为假。

||

a || b

如果a和b有一个为真,则结果为真,二者都为假时,结果为假。

运算符的优先级

优先级

运算符

名称或含义

使用形式

结合方向

说明

1

[]

数组下标

数组名[常量表达式]

左到右

--

()

圆括号

(表达式)/函数名(形参表)

--

.

成员选择(对象)

对象.成员名

--

->

成员选择(指针)

对象指针->成员名

--

2

-

负号运算符

-表达式

右到左

单目运算符

~

按位取反运算符

~表达式

++

自增运算符

++变量名/变量名++

--

自减运算符

--变量名/变量名--

*

取值运算符

*指针变量

&

取地址运算符

&变量名

!

逻辑非运算符

!表达式

(类型)

强制类型转换

(数据类型)表达式

--

sizeof

长度运算符

sizeof(表达式)

--

3

/

表达式/表达式

左到右

双目运算符

*

表达式*表达式

%

余数(取模)

整型表达式%整型表达式

4

+

表达式+表达式

左到右

双目运算符

-

表达式-表达式

5

<<

左移

变量<<表达式

左到右

双目运算符

>>

右移

变量>>表达式

6

>

大于

表达式>表达式

左到右

双目运算符

>=

大于等于

表达式>=表达式

<

小于

表达式<表达式

<=

小于等于

表达式<=表达式

7

==

等于

表达式==表达式

左到右

双目运算符

!=

不等于

表达式!= 表达式

8

&

按位与

表达式&表达式

左到右

双目运算符

9

^

按位异或

表达式^表达式

左到右

双目运算符

10

|

按位或

表达式|表达式

左到右

双目运算符

11

&&

逻辑与

表达式&&表达式

左到右

双目运算符

12

||

逻辑或

表达式||表达式

左到右

双目运算符

13

?:

条件运算符

表达式1?

表达式2: 表达式3

右到左

三目运算符

14

=

赋值运算符

变量=表达式

右到左

--

/=

除后赋值

变量/=表达式

--

*=

乘后赋值

变量*=表达式

--

%=

取模后赋值

变量%=表达式

--

+=

加后赋值

变量+=表达式

--

-=

减后赋值

变量-=表达式

--

<<=

左移后赋值

变量<<=表达式

--

>>=

右移后赋值

变量>>=表达式

--

&=

按位与后赋值

变量&=表达式

--

^=

按位异或后赋值

变量^=表达式

--

|=

按位或后赋值

变量|=表达式

--

15

逗号运算符

表达式,表达式,…

左到右

--

不同类型数据的转换与运算

转换的方法有两种

  1. 自动转换(隐式转换):遵循一定的规则,由编译系统自动完成。
    1. 强制类型转换:把表达式的运算结果强制转换成所需的数据类型                                                                                                                                                                                           类型转换的原则:占用内存字节数少(值域小)的类型,向占用内存字节数多(值域大)的类型转换,以保证精度不降低。                                                                                                                           

 二  基本语句

2.1表达式语句

C程序设计语言的表达式语句由表达式加上分号“;”组成。

分别由以下几种类:算术表达式、赋值表达式、逗号表达式、关系表达式、逻辑表达式 等...

其一般形式为:

表达式;

执行表达式语句就是计算表达式的值。

2.2 空语句
  1. 空语句是什么也不执行的语句,一般由分号“;”或大括号"{ }"组成
  2. 在程序中空语句可用来作空循环体。
  3. 一般推荐使用大括号"{ }"来表示空语句,这样更直观
2.3 复合语句
  1. 把多个语句用括号{}括起来组成的一个语句称复合语句。 在程序中应把复合语句看成是单条语句,而不是多条语句
  2. 复合语句内的各条语句都必须以分号“;”结尾;此外,在括号“}”外不能加分号。

        printf语句

打印格式

对应数据类型

含义

%d

int

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

%hd

short int

短整数

%hu

unsigned short

无符号短整数

%o

unsigned int

无符号8进制整数

%u

unsigned int

无符号10进制整数

%x,%X

unsigned int

无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF

%f

float

单精度浮点数

%lf

double

双精度浮点数

%e,%E

double

科学计数法表示的数,此处"e"的大小写代表在输出时用的"e"的大小写

%c

char

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

%s

char *

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

%p

void *

以16进制形式输出指针

%%

%

输出一个百分号

printf附加函数

字符

含义

l(字母l)

附加在d,u,x,o前面,表示长整数

-

左对齐

m(代表一个整数)

数据最小宽度

0(数字0)

将输出的前面补上0直到占满指定列宽为止不可以搭配使用-

m.n(代表一个整数)

m指域宽,即对应的输出项在输出设备上所占的字符数。n指精度,用于说明输出的实型数的小数位数。对数值型的来说,未指定n时,隐含的精度为n=6位。

四 选择结构程序设计

    4.1    if 语句

4.2 switch语句

4.3 嵌套条件判断语句

4.4三目运算符/三元运算符/条件运算符

五 循环结构设计

5.1 for循环

5.2do_while 循环和 while 循环

5.3 continue 语句和break语句

5.3.1 break语句

在switch条件语句和循环语句中都可以使用break语句:

  1. 当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。
  2. 当它出现在循环语句中,作用是跳出当前内循环语句,执行后面的代码。

当它出现在嵌套循环语句中,跳出最近的内循环语句,执行后面的代码

#include <stdio.h>
int main()
{
	int i=0;
//	死循环
	while(1)
	{
	printf("%d\n",i);
	i++;
	if(i == 10)
	{
		//如果满足条件跳出循环
		break;
	}
	}
	return 0;
}

5.3.2 continue语句

在循环语句中,如果希望立即终止本次循环,并执行下一次循环,此时就需要continue语句

#include<stdio.h>
int main()
{
	int i=0;
	while(i<=100)
	{
		//打印所有的偶数
		if(i % 2 !=0)
		{
			i++;
			continue;
		}
		printf("%d\n",i);
		i++;
	}
	return 0;
}

5.4 循环的嵌套

int main(){
int  i,j,k; //分别代表时针分针秒针
for(i=0;i<24;i++)
{
	for(j=0;j<60;j++){
		for(k=0;k<60;k++){
			printf("%d : %d :%d\n",i,j,k);
			Sleep(960); //系统延迟 //头文件是#include<Windows.h>
			system("cls");//清屏  //头文件是#include<stdlib.h>
		}
	}
}
}
//	打印九九乘法口诀
int main14()
{
//	外层控制行 内层控制列
	int i,j;
	for(i=1;i<=9;i++){
		for(j=1;j<=i;j++){
			printf("%d*%d=%d\t",j,i,i*j);
		}
		printf("\n");
	}
	return 0;
}

六 数组的定义和引用

数组的定义:在程序设计中为了方便处理数据把具有相同类型的若干变量按有序形式组织起来——称为数组。

数组就是在内存中连续的相同类型的变量空间。同一个数组所有的成员都是相同的数据类型,同时所有的成员在内存中的地址是连续的。

int main()
{
	//在定义数组时直接为数组赋值
	//int arr[10]={1,2,3,4,5,6,7,8,9,10};
	//int arr[10]={1,2,3,4,5};//	如果数组在定义时候为部分元素赋值,其余部分值为0
//	int arr[10]={1};
	int arr[]={1,2,3,4,5,6,7,8,9,10};
	//	printf("%d\n",arr[0]);
//	printf("%d\n",arr[1]);
//	printf("%d\n",arr[2]);
//	printf("%d\n",arr[3]);
	int i;
	for(i=0;i<10;i++){
		printf("%d\n",arr[i]);
	}
	return 0;
}

6.1 一维数组的定义

  1. 数组名字符合标识符的书写规定(数字、英文字母、下划线)
  2. 数组名不能与其它变量名相同,同一作用域内是唯一的
  3. 方括号[]中常量表达式表示数组元素的个数
  4. 定义数组时[]内最好是常量,使用数组时[]内即可是常量,也可以是变量
    1. #include<stdio.h>
      #define SIZE 10
      
      int main(){
      //	C语言不支持动态数组 数组必须在编译时定义长度
      //	int size;
      //	scanf("%d",&size);
      //	int arr[size];
      	//	int arr[10]={1,2,3,4,5,6,7,8,9,10};
      	int arr[SIZE];
      	arr[3]=50;
      	printf("%d\n",arr[3]);
      //	不能为数组名字赋值
      	return 0;
      }
                 冒泡排序    
      //	冒泡排序
      int main(void)
      {
      	int arr[10]={9,1,2,5,4,6,8,10,7,3};
      	int temp;
      	int i,j;
      	for(i=0;i<10-1;i++){
      //	每次内层循环可以确定一个有效的值
      		for(j=0;j<10-i-1;j++)
      		{
      //	在条件判断中如果是小于号是降序 
      //	如果是大于号是升序
      			if(arr[j]>arr[j+1])
      			{
      				temp=arr[j];
      				arr[j]=arr[j+1];
      				arr[j+1]=temp;
      			}
      		}
      	}
      	for(i=0;i<10;i++)
      	{
      		printf("%d\n",arr[i]);
      	}
      }
      

      二维数组的定义和使用

      int main()
      {
      	//	要求求出四名学生三门功课成绩和各个学科的总成绩
      		int arr[4][3] =
      	{
      		{88,89,99},
      		{36,66,56},
      		{60,56,66},
      		{88,88,88}
      	};
      //	求出每名学生的总成绩
      		int sum=0;
      		int i,j;
      		for(i=0;i<4;i++)
      		{
      			for(j=0;j<3;j++)
      			{
      				sum+=arr[i][j];
      			}
      			printf("第%d名学生的总成绩为:%d\n",i+1,sum);
      			sum=0;//重新初始化
      		}
      		sum=0;
      //	求出每个学科的总成绩
      //	将行和列颠倒
      		for(i=0;i<3;i++)
      		{
      			for(j=0;j<4;j++)
      			{
      			sum+=arr[j][i];
      			}
      				printf("第%d门学科的总成绩为: %d\n",i+1,sum);
      		sum=0;
      		}	
      return 0;
      }

      6.2 字符串和字符数组

      数字0(和字符‘\0’等价)结尾的char数组就是一个字符串,但如果char数组没有以数字0结尾,那么就不是一个字符串,只是普通字符数组,所以字符串是一种特殊的char的数组                        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​
  • 16
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值