C语言------表达式、语句、函数
- 一、表达式
-
- [1.1 定义](#1.1 定义)
- [1.2 数学运算符和数学表达式](#1.2 数学运算符和数学表达式)
- [1.3 关系运算符和关系表达式](#1.3 关系运算符和关系表达式)
- [1.4 逻辑运算符和逻辑表达式](#1.4 逻辑运算符和逻辑表达式)
- [1.5 赋值运算符和赋值表达式](#1.5 赋值运算符和赋值表达式)
- [1.6 表达式优先级顺序](#1.6 表达式优先级顺序)
- [1.7 字符型数据](#1.7 字符型数据)
- 二、语句
-
- [2.1 表达式语句](#2.1 表达式语句)
- [2.2 复合语句](#2.2 复合语句)
- [2.3 选择语句](#2.3 选择语句)
-
- [2.3.1 if-else语句](#2.3.1 if-else语句)
- [2.3.2 switch语句](#2.3.2 switch语句)
- [2.4 循环结构语句](#2.4 循环结构语句)
-
- [2.4.1 while语句](#2.4.1 while语句)
- [2.4.2 do-while语句](#2.4.2 do-while语句)
- [2.4.3 for语句](#2.4.3 for语句)
- 三、函数
一、表达式
1.1 定义
- 表达式由运算符、操作数和括号组成,是计算和求值的基本单位
- 操作数包括常数、 变量、函数调用和表达式
- 典型的操作数和表达式
- 数学运算符和数学表达式
- 有理运算符和有理表达式
- 逻辑运算符和逻辑表达式
- 赋值运算符和赋值表达式
1.2 数学运算符和数学表达式
- 数学运算符:+ - * / %等
- 数学表达式:(2+8.2/3)*4 10%4
- 在C语言中,数学运算符的操作数可以是整数、字符串、浮点数
- 如果表达式中的操作数都是字符或者整数的话,表达式的结果也是整数
- 如果至少一个操作数式浮点数的话,表达式的结果也是浮点数
- 字符数据总是先转换为整型数据,再进入运算操作
- 在C中整型、字符串、浮点数可以混合,如:
- 5+1.0+'A'=71.000000
1.3 关系运算符和关系表达式
- 关系运算符常用作比较两个数据之间的关系
- 关系表达式是用关系运算符链接起来的两个表达式,关系表达式的结果是'true'或者'false'
- 'true'是1,'false'是0
- 包括==,!=,>,<,>=,<=
1.4 逻辑运算符和逻辑表达式
- 包括&&和,||或,!非
- 逻辑表达式的结果是'true'或者'false'
- 在C中3<5<2需要分开写,写成3<5&&5<2
1.5 赋值运算符和赋值表达式
- 赋值运算符:用来将值存入变量
- 赋值表达式:有赋值运算符的表达式
- 赋值是将右边的值赋给左边的变量
| 运算符 | 例子 | 含义 |
|---|---|---|
| = | num=5 | 将5存入变量num |
| += | num+=5 | 相当于num=num+5 |
| -= | num-=5 | 相当于num=num-5 |
| *= | num*=5 | 相当于num=num*5 |
| /= | num/=5 | 相当于num=num/5 |
| %= | num%=5 | 相当于num=num%5 |
1.6 表达式优先级顺序
- 算术>关系>逻辑>赋值
- i=a>20&&a%5==0等价于i=((a>20)&&((a%5)==0))
1.7 字符型数据
- 1和'1'的区别
- 1是一个整数,是数值本身,用于数学计算
- 在内存中为整数值1
- '1'是一个字符,是一个符号,在程序中用单引号表示,对应键盘上的字符1
- 在内存中储存的是其ASCII值,'1'的ASCII码值是49
- 如何相互转换
c
//从字符得到数字
char ch='1';
int num=ch-'0'; //利用ASCII值差,'1'-'0'=1
//从数字得到字符
int num =1;
char ch=num+'0';// 1+'0'='1'
二、语句
- 语句用于向计算机下达指令
- 语句通过编译可以生成一条或多条机器指令
- C语言的六种语句
- 表达式语句(Expression Statements)
- 复合语句 (Compound Statement)
- 选择语句 (Selection Statements)
- 循环语句 (Loop Statements)
- 标记语句 (Marked Statements)
- 跳转语句 (Jump Statements)
2.1 表达式语句
- 在每个表达式后边加上 ";"分号,就是表达式语句了
2.2 复合语句
- 复合语句是一个代码片段,包含0或多个语句,也称作语句块
- 在C中复合语句由左括号和右括号组成 { }
2.3 选择语句
- 在C中的选择语句有
- if-else语句
- switch语句
2.3.1 if-else语句
- if-else语句中的"表达式"必须用"("和")"括起来;表达式可以是任一种表达式,关系表达式和逻辑表达式较常见
- else子句是if语句的一部分,必须与if配对使用,不能单独使用
- 可以没有else子句(但必须有if子句)
- 练习:输入一个字符,如果是小写字母,则输出为:this is a lower-case letter;如果是大写字母,则输出为: this is a upper-case letter;如果是数字,则输出为: this is a digit;若是其他,则输出为:this is neither a letter nor a digit.
c
#include<stdio.h>
int main()
{
char ch;
printf("请输入:");
scanf("%c",&ch);
if(ch>='a'&&ch<='z')
{
printf("this is a lower-case letter");
}else if(ch>='A'&&ch<='Z')
{
printf(" this is a upper-case letter");
}else if(ch>='0'&&ch<='9')
{
printf("this is a digit");
}else
{
printf("this is neither a letter nor a digit");
}
return 0;
}
2.3.2 switch语句
- 利用switch语句可以实现多路选择
- 常量表达式必须是C语言中的整型、字符型或者枚举类型
c
switch(表达式){ //方括号表示其内的语句可选
case 常量表达式1:
语句1[break;]
case 常量表达式2:
语句2[break;]
............
case 常量表达式n:
语句n[break;]
default:
语句n+1
}
- 例子
c
switch (sex){
case 0:printf("hello, boy!");break;
case 1:printf(" hello, girl!");break;
default:printf("invalid sex");
}
2.4 循环结构语句
- 程序中需要多次运行同一段代码(重复做相同的事情),这种控制结构称为循环结构
- 三种用于实现循环结构的语句
- while
- do-while
- for
2.4.1 while语句
c
while(表达式)
语句;
- 运行逻辑:先判断表达式中的结果是否为真,为真则执行下边的语句,为假则退出循环
- 例子:使用while语句输出0~N之间的整数
c
#include<stdio.h>
int main()
{
int N;
scanf("%d",&N);
int i=0;
while(i<=N)
{
printf("%d ",i);
i++;
}
return 0;
}
- 关键点
c
循环初始化;
while(循环条件){
本次循环本职工作;
修改相关变量,为下一次循环做准备;
}
- 练习2:打印三角形
c
#include<stdio.h>
int main()
{
int lines;
printf("请输入要打印的三角形行数:");
scanf("%d",&lines);
int count =1;
int i=1;
while(count<=lines)
{
int k=1;
while(k<=i)
{
printf("*");
k++;
}
printf("\n");
i++;
count++;
}
return 0;
}
- 练习3:输入起止年份,输出这两年之间的闰年。用while结构实现。闰年的条件是:a)能被4整除但不能被100整除;或b)能被100整除且能被400整除;
c
#include<stdio.h>
int main()
{
int y1,y2;
printf("请输入两个年份:");
scanf("%d %d",&y1,&y2);
int tempYear=y1;
printf("这两个年份中间的闰年年份为:") ;
while(tempYear<=y2)
{
if(tempYear%4==0&&tempYear%100!=0||tempYear%400==0)
{
printf("%d ",tempYear);
}
tempYear++;
}
}
2.4.2 do-while语句
c
do
语句
while (表达式);
- 练习1:利用do-while语句输出0~N之间的整数(N>0)
c
#include<stdio.h>
int main()
{
int N;
printf("请输入一个一个整数:");
scanf("%d",&N);
int count=0;
int i=0;
do
{
count+=i;
i++;
}while(i<=N);
printf("%d",count);
}
2.4.3 for语句
- for(表达式1;表达式2;表达式3)
- 练习
c
#include<stdio.h>
#define N 10
int main()
{
int i;
for(i=0;i<=N;i=i+1)
printf("%d",i);
return 0;
}
三、函数
- 定义:函数是封装并给以命名的一段程序代码,完成明确的功能,可供调用
- 函数是C语言程序设计的基本单位,一个C语言程序是由一个主函数(main)和其他若干个函数组成的
- 程序的运行都从主函数开始,也是由主函数结束。主函数可以调用其他函数(子函数)来完成特定任务,而子函数还可以调用其他子函数
- 主函数由操作系统调用,其他函数由主函数调用,当主函数执行结束,控制便交还给操作系统
