( 一) 算术运算符( 加+、 减-、 乘*、 除/、 取模%)
【 注意】
1.算术运算符的计算需要掌握
2.各个运算符的功能要有基本的了解
1 除/
1) 左右都为整数,结果也为整数
2) 左右只要有实数,结果也是实数
【 例】 5/2=2; 5.0/2=2.5
2 取模%( 又称为取余)
1) 左右两边必须为整数,结果也为整数
【 例】 5%2=1
( 二) 自增++、 自减--运算符( 常在for循环考点中出现)
【 注意】
自增、 自减运算符使得变量加1或减1
使用规则:变量在前, 先用再加减;变量在后,先加减在使用
【 例】
【 解析】 j=++i, 先加再赋值; k=i--, 先赋值再加减
3.表达式—c语言语句:
( 一) 赋值语句
(1)赋值运算符 = 格式:变量=表达式, 如a=3( 将3赋值给a)
(2)复合的赋值运算符
a+=3 等价于 a=a+3
x* = y+8 等价于 x = x*(y+8)
【 注意】
赋值顺序从后向前赋值
(3)赋值表达式( 注意这里常出选择和填空题)
a初值为6, a+=a- =a*a 求最后a的值?
【 解析】
第①步: 计算a- =a*a, 即a=a-a× a=6-6× 6=-30
第②步: 计算a+ =-30, 即a=-30+a=-30+(-30)=-60
因此, 答案为-60
4.选择结构—关系运算符:
5.选择结构—逻辑运算符:
( 一) 逻辑运算符
与&&、 或||、 非!
【 口诀】 &&全1才1; ||全0才0; !相反
优先级: ! >算术>关系>&&>||( 非常重要的考点, 要重点记忆)
( 二) 逻辑表达式
值是一个逻辑值,即“ 真” 或“ 假” , 分别用1和0来表示。
【 例】
【 例】 逻辑运算符—练习
【 解析】
第①行: a=0; printf(“ 1.值=%d,a=%d\n” ,!4 && a++,a);
解: !4 =0; a++ 先赋值再计算 , 因此值=!4 && a++ = 0 && a++ = 0
&& 0++=0, a=0
第⑤行: a=0; printf(“ 5.值=%d,a=%d\n” ,!4 || a++,a);
解: !4 =0; a++ 先赋值再计算 , 因此值!4 || a++ = 0 || a++ = 0 ||
0++=0, a=0+1=1
【 注意】
&& 遇0就停止运行
|| 遇1就停止运行
!非零自然数=0
6.选择结构—条件运算符:
( 一) 格式
表达式1 ?表达式2 :表达式3
( 二) 使用规则
若表达式1的值为1( 真) ,则值为表达式2的值
若表达式1的值为0( 假) ,则值为表达式3的值
【 例】
【 解析】
解①: printf(“ %d\n” ,a>b?a:b), 因为a>b=3>4为假, 因此取b, 本行
输出4
解②: printf(“ %d\n” ,a<b?(a<c?a:c):(b<c?b:c)), 因为a<b=3<4为
真, 因此取(a<c?a:c), 又因为a<c=3<5为真, 因此取a=3,本行输出3
7.总结—表达式:
算术运算符
关系运算符
逻辑运算符
赋值运算符
【 注意】
&& , || 的优先级是考点, 需要重点记忆
8.数据的输入输出:
( 一) printf函数
【 注意】
格式控制这一块需要先加上双引号” ”
◆含义:向终端设备输出数据
◆格式: printf(格式控制 输出表列)
格式控制是用双引号括起来,由格式声明和普通字符两部分组成
◆常见的格式字符
◆数据宽度说明
如果实际数据小于宽度, 左补空格
如果实际数据大于宽度, 则按实际位数输出
如果缺省宽度说明, 则按实际宽度输出
【 例】
【 注意】
\n 是换行
[]代表数组, 从[0]开始
%f, 默认输出6位小数( 非常重要)
%6f,指定位数6<实际位数10, 按实际位数输出( 非常重要)
%15f,指定位数+15>实际位数10, 左补空格输出( 非常重要)
%-15f,指定位数-15>实际位数10, 右补空格输出( 非常重要)
( 二) scanf函数
含义:从标准输入设备输入的数据
格式: scanf(格式控制, 地址表列)
【 例】
Scanf(“ %d%d” ,&a&b)
说明:格式控制的含义同printf函数
【 注意】
地址列表开头必须是&
Double是双精度
scanf是输入函数, 一般位于printf输出函数之前
【 例】
( 三) 字符数据的输入输出
putchar函数:单字符输出函数
getchar函数:单字符输入函数
【 例】
【 解析】
①: 输入ABC, 因为getchar( ) 只能读取一个字符也就是A
②: c2=c1+32=A+32=a
因此, putchar( c2) 输出a
9.选择结构—if语句:
( 一) 形式一( 单分支)
流程图表示
格式: if( 表达式) {语句}
书写实例
【 解析】
①: if(grade<60)即59<60为真, 因此输出不合格
②: 直接打印: “ 考试辛苦啦! ”
( 二) 形式二( 双分支)
流程图表示
格式: if( 表达式) 语句1 else 语句2
书写实例
【 解析】
①: 因为grade=60,所以if(grade<60)为假, 因此输出else后面的语句, 即输出及格
②: 直接打印: “ 考试辛苦啦! ”
( 三) 形式三( 多分支)
流程图表示
格式: if( 表达式1) 语句1 elseif(表达式2) 语句2 elseif ( 表达式
3) 语句3
书写实例
【 解析】
①: 因为grade=99,所以if(grade<60)为假、 elseif条件为假, 因此输出else后面的语句, 即输出优秀
②: 直接打印: “ 考试辛苦啦! ”
【 解析】
①: if(x>y)为真, 执行x=y; y=x, 也就是将y的值赋给x, 再将x的值赋给y
②: if(x>y)为假, 执行x++;y++, 即x=x+1;y=y+1
( 四) If嵌套( 不推荐)
口诀: else总是与它最近的未配对的if配对
【 例】
【 解析】
因为a=10,b=20,所以if(a<b)为真, 执行if(b! 15)为真, 执行if(!V1), 因为!V1=0,因此执行else语句, 因为if(v2)为, 所以x输出-1
10.选择结构—switch语句:
【 注意】
语句末尾要加上break,将语句进行封闭
switch记忆方法:
含义: 开关
用日常生活中开关灯来进行记忆
[default:语句n+1; break;], 该语句用来兜底, 作为switch语句的终止句
【 例1】 [输入的等级(A,B,C,D),得出成绩区间]
【 注意】
getchar(),输入字符
【 例2】 [输入的等级(A,B,C,D),得出成绩区间]
【 注意】
加break和不加break的区别
【 例3】 随机输入三个整数, 求三者中的最大值max。
【 解析】
方法一:
【 解析】
方法二: