admin 管理员组

文章数量: 887021


2024年2月24日发(作者:bootstrap代码)

一、 认识C语言

C语言程序的基本框架结构

#include

main()

{

}

1、 一个c语言必须要有一个main()

2、 main()可以在一个c语言程序当中的任何位置,程序从main()开始也是从main()结束;

3、 在C语言程序中,一条语句以“;”结束,在函数当中语句是按照从上到下的顺序依次执行

4、 main()默认为void(空类型),也就是说不需要返回值。假如说我们在做题过程中遇到

int main(),我们在函数体的末尾需要加上 “return 0;”

#include

int main()

{

语句1;

语句2;

return 0;

}

5、 ”#include”是引用外部文件的关键字。

6、 “stdio.h”是标准输入输出头文件,其中包括了我们之后用到的输入函数(scanf()、getchar())、输出函数(printf()、puchar())等一些函数的定义。

语句1;

语句2;

二、 C语言中变量、常量的定义

1、 概念:简单的来说,(1)变量指在程序运行过程中值可以发生变化的量 ;(2)常量指在程序运行过程中值不能被改变的量

2、 变量的定义,其形式如下:

数据类型 变量名称

3、 用户标识符的命名规则

(1)、不能为系统关键字;

(2)、只能由数字、字母、下划线;

(3)、第一个字符只能是字母或者下划线,不能够位数字。

4、数据类型:我们需要掌握的就是整型、浮点型、字符型三大类型

(1)整型:基本整型(int)、短整型(short)、长整型(long)

(2)浮点型:单精度类型(float)、双精度(double);

(3)字符型:char(也就是ASCII表中存在的字符)

5、常量定义

(1)有名的常量

①局部常量:const 数据类型 常量名=常量值

②全局常量:#define 常量名 常量值

(2)无名的常量,其实就是常量的具体值

①数值常量:

以“0”表示八进制常量;

以“0x”表示十六进制常量;

表示长整型常量时在常量末尾加“l”或“L”;

以指数形式表示常量时,形式如下:men或者mEn,其中m可以是任何非零实数常量,n只能为整数常量。

e) 实数常量表示关键在于小数点“.”,例如“5.0”可以写成“5.”;“0.5”可以写成“.5”

②字符常量:

a) 在表示字符常量需要用单引号(‘’)将单个字符括起来.

b) 在进行字符常量赋值还可以用整数常量赋值,此时的整数常量代表是字符所对应的ASCII值

a)

b)

c)

d)

三、 C语言中的输入输出

1、 printf()输出函数

形式:printf(“输出内容 格式控制符列表”,输出项列表);

(1) 按原样输出的内容是双引号中除“”、、%之外的内容;

(2) 格式控制符:%d(输出引号后面输出项列表中对应顺序的变量值、表达式值、常量值)、%ld(输出长整型值)、%f(输出浮点型数值)、%lf(输出double数值)、%c(输出字符)、%o(输出八进制数值)、%X(输出十六进制值,并且十六进制字母按大写字母输出)、%x(输出十六进制值,并且十六进制字母按小写字母输出)、%u(输出无符号整数)、%e(按照指数输出)

(3) 输出项列表需要注意是有多个输出,输出项需要和前面格式控制符的先后顺序保持一致。例如:printf(“%d%f%c%o”,INT,FLOAT,CHAR);

2、 putchar()字符输出函数

形式:puchar(输出项)

说明:该函数只有一个输出项,用于单个字符输出

3、 scanf()输入函数

scanf(“格式控制符列表”,输入项列表)

(1) 输入项必须是变量并且变量前需要加上“&”

(2) 在格式控制列表中如果除了格式控制符之外还有别的内容在输入时,必须按原样输入相应内容。例如:scanf(“输入a=%d”,&a);假如需要输入a的值为“8”,那么在输入数据时就应该输入“输入a=8<回车>”

(3) 格式控制符列表之间如果没有分隔符,在输入数据时在数据之间输入空格、或者制表符(按tab键);如果说有分隔符,必须输入分隔符。

4、 getchar()字符输入函数

形式:ch=getchar() //ch由用户根据自己需要定义变量

说明:

(1)getchar()它是一个无参函数,在使用的过程当中返回值不能直接保存,需要赋值给一个变量进行保存

(2)getchar()只能输入单个字符

四、 C语言中的运算符及运算符的优先级关系

1、 自增、自减运算

(1) 前置自增、自减运算:相应变量先做增1或者减1运算之后,再去参与别的运算。例如:i=3,b=++i;得到b的值是4。

(2) 后置自增、自减运算: 相应变量先参与别的运算,再做增1或者减1运算。例

如:i=3,b=i++;得到i的值是3。

2、 算术运算:

(1) 运算符有:+、-、*、/、%。

(2) 优先级关系:先乘除(包括%),后加减。同级运算按照从左到右的顺序一次计算。

3、 逻辑运算

(1) 运算符有:!(逻辑非)、&&(逻辑与)、||(逻辑或)。

(2) 优先级关系:!>&&>||。

(3) 逻辑非(!)它是属于单目运算符,只针对单个数进行计算。例如a=3,!a;此运算结果为0。其他属于双目运算,也就是要针对两个数来进行计算。

(4) 参与逻辑运算得到值只有两种:0或者1。

(5) 针对两个变量a、b进行逻辑运算

a值

0

0

非零值

非零值

b值

0

非零值

0

非零值

!a

1

1

0

0

!b

1

0

1

0

a&&b

0

0

0

1

a||b

0

1

1

1

注意:

①对于逻辑与运算,如果说与运算符左边表达式值为0,那么与运算符右边的表达式不执行。例如:int a=0,b=-1;++b&&++a;最后a的值还是0,b的值是0。

②对于逻辑非运算,如果说与运算符左边表达式值为1,那么与运算符右边的表达式不执行。例如:int a=0,b=0;++b||++a;最后a的值还是0,b的值是1。

4、 关系运算

(1) 运算符有:>(大于)、>=(大于等于)、==(等于)、<=(小于等于)、<(小于)。

(2) 优先级关系:各运算符的优先级相同,计算时按照从左到右的顺序依次计算

(3) 关系运算属于双目运算;运算结果只有两种:0或者1,当关系成立或者为真,那么运算结果就为1,反之则为0。

5、 赋值运算

(1) 运算符有:=、+=、-=、*=、/=、%=

(2) 赋值运算的赋值方式:按照从右到左的顺序赋值。

(3) 赋值运算符左边不能够为表达式或者常量。

(4) 对于+=、-=、*=、/=、%=,计算方式如下表

a

2

结果

b

2

a+=b

a=a+b

a=4

a-=b

a=a-b

a=0

a*=b

a=a*b

a=4

a/=b

a=a/b

a=1

a%=b

a=a%b

a=0

6、 逗号运算

(1) 运算符是:,

(2) 运算方式:按照从左到右的顺序进行计算,结果为逗号运算最后一个表达式的值。例如:a=3,b=5;c=(a++,a+b,b-a);此处先做a++结果a=4,然后做a+b,再去做b-a,最后将b-a的值赋值给c,所以最终c的值是1。

7、 七大运算符(加上括号运算)的运算优先级关系:

括号>逻辑非>算术运算>关系运算>逻辑与>逻辑或>赋值运算>逗号运算

8、 条件运算符

(1) 运算符:?:

(2) 形式:表达式1?表达式2:表达式3

(3) 解释:问号前的表达式是条件,冒号两边的表达式是选择表达式,当这个表达式1的值为非零值是执行表达式2,反之则执行表达式3。

五、 选择结构

1、 if选择结构

(1) 形式:①if(条件表达式)语句;②if(条件表达式)语句1;else 语句2;

(2) 条件表达式的值也只两种:条件为真值为1,条件为假值为0;

(3) 条件表达式形式可以是任意的有具体结果的表达式。这里特别需要注意关系运算“==”和赋值运算“=”。

例如:a=2,b=5;if(a==b)printf(“%d”,a);if(a=b)printf(“%d”,a);在此处前一个if中条件表达式是一个关系表达式,是判断a和b是否相等;第二if中条件表达式是一个赋值表达式,是将b的值赋值给a。前一个if语句条件值为0,而面一个条件表达式值为1。

(4) 注意else后不能像if一样直接跟一个条件表达式。如果说else再需要进行条件判断,可以在else后加一个if条件语句。

(5) 在if…else多层嵌套中,需要注意的是if…else配对问题,必须是外层对外层,内层对内层,不能够出现交叉。

if(表达式1)…

if(表达式2)…

if(表达式2)…

else…

else …

else …

(6) If(表达式1)表达式1;else 表达式2;结构相当于条件运算符表达式语句:表达式1?表达式2:表达式3

2、 switch选择结构

(1) 形式:

switch(表达式1)

{

case 常量表达式1:语句1;

case常量表达式2:语句2;

……

default:语句n;

(2) 表达式1:它是用来向switch语句传入一个常量值;

(3) case语句:它是代表选择的情况,选择要执行的内容。在书写case语句需要注意case和常量表达式之间要空格隔开,不可挨着一起写,常量表达所起到的作用是用于与表达式1传入的值进行比较,如果说表较结果相等,那就从本条case开始按照从上到下的执行顺序依次执行,直到执行完选择结构中最后一条语句。

(4) case常量表达式的值不需要按照数字或者字符顺序来写。

(5) default:指case例举之外的常量。它也可以放在siwtch语句中的任何位置。

(6) 如果说多条case执行相同算法,可以将这几个case写在一起,在最后一个case后,写算法表达式。

(7) 当我们在执行完一个case后,想要直接退出swtich语句,则可以在该case语句之后加一个break语句。

3、 循环语句结构

(1) 类型:while循环、do…while循环、for循环

(2) While循环

形式:

While(表达式1)

{

}

语句1;

语句2;

… …

① 当表达式1值为真(“1”)时,执行后面大括内的内容。

② 当表达式1值为假(“0”)时,结束这个循环。

(3) do…while循环

do

{

语句1;

语句2;

… …

}while(表达式1);

① 当表达式1值为真(“1”)时,执行后面大括内的内容。

② 当表达式1值为假(“0”)时,结束这个循环。

③ 该循环不论表达式1如何,循环体当中内容至少会执行1次。

④ 需要注意do…while()后面的分号“;”必须要有。

(4) for循环

for(表达式1;表达式2;表达式3)

{

}

语句1;

语句2;

… …

① 表达式1用于对循环控制变量的初始化,指定循环从什么地方开始执行。

② 表达式2用于控制进行循环的条件,值为1则继续执行循环体,否则结束循环。

③ 表达式3一般用于改变循环控制变量的值。

④ for循环执行顺序

⑤ for循环中的三个表达可以没有,但是两个分号必须保留,此时的循环是死循环,需要结束循环的话需要用到break语句。

六、 函数的定义和调用

1、 在C语言当中去定义函数的方法:

数据类型 函数名( 形式参数列表…)

{

}

函数功能的实现语句;

return 返回值;//即需要传回的变量值或者常量值

(1) 数据类型除了基本数据类型外,还可以式void类型等

(2) 函数名命名需遵守标识符的命名规则。

(3) 形式参数:是函数与外界实现信息交换的入口,多个形式参数之间要用逗号隔开

(4) 定义形式参数是:数据类型 形参名。

(5) 当无形式参数列表时叫做无参函数。

2、 函数的调用

(1) 调用的方式:函数名(实际参数列表…);

(2) 实际参数(简称实参),即指向形式参数传递的一个具体值的参数。

(3) 在调用函数时,可以实际参数可以是一个具体值,也可以是变量名。

(4) 书写函数调用声明时,可以有如下两种形式

函数类型 函数名(数据类型 形参名,数据类型 形参名…);

函数类型 函数名(数据类型 ,数据类型 …);


本文标签: 表达式 常量 运算 需要 函数