一课本知识要点易错点回顾
1.关系运算符
①包括<,>,>=,<=,==(特别注意),!=(注意感叹号的位置)
②区分等于号=与赋值==的区别,尤其在if语句中。
③运算符的优先级:算术运算符>关系运算符>赋值运算符
如"n=x==y-1"中先运算"y-1"后"=="最后"="
2.逻辑运算符
①&&(逻辑与),||(逻辑或),!(逻辑非)
②注意在表达数学式中0<a<100时要表达成(a>0&&a<100)的形式
③字符可按照ASCII码来比较大小
小写字母取值范围为(x>='a'&&x<='z')
ps(小知识:ASCII:a为97,z为122,A为65,Z为90)
④整形,字符型数据都可以参与逻辑运算
⑤短路计算:在逻辑与的运算时若"a&&b"中a为假则不需要计算下去
在"a||b"中若a为真则整个式子为真。
ps(闰年的判断:((x%400==0)||(x%4==0)&&(x%100!=0))
3.if语句
①if语句中可加入逻辑语句
ps(在表达a+b的值或输入字符型变量是否等于一个特定字符时等号表示为"=="且字符要加('')如p='j'
②复合语句当判断某一条件成立时如果需要执行的语句较多则需要把执行的语句都要用大括号括起来
4.if语句的嵌套
if...else...
else子句总是与离它最近的if字句配对
5.条件表达式
形式<表达式1>?<表达式2>:<表达式3>
规则若表达式1为真只计算表达式2否则只计算表达式2
此表达式尤其在分段函数中较为常用
6switch语句
switch(表达式){case常量表达式1:语句组1;[break;]
............
[default:语句组n+1]
}
switch后的表达式取值只能是整形,字符型,布尔型,枚举型且case后的常量表达式值类型与switch的类型一致
多个case语句可以公用一组程序
如case"A";
case"B";
case"C":cout<<"pass"<<endl;break;
二.重点和易错点
1.以if(a==10),if(p=='j')为例注意等号的个数和引号
2.if...else...语句中不管条件成立与否都要用大括号括起来
3.注意运算的优先级,判断是否加入括号
三做题时的困难与错误以及感悟
做打牌题时if(b=='j')时忘记加等号和单引号
使用if...else...语句时没有加else导致输出的值变多而得不到正确结果
printf语句以及条件表达语句使用不熟练
在做课本例题时
如p79第二题
我使用的是if语句判断恰好有一门不及格时使用了逻辑与,逻辑非在这里要注意的是括号的逻辑性看准关系在添括号
为了尽快掌握?的条件语句我在课本上找了几个关于此语句的题目来练习(p82第一题,第二题)上课老师讲条件语句适合分段函数我做了实践提高第三题后感觉确实好用,但要理好逻辑关系
如p82第一题
①在做此题时我定义字符型变量,在比较大小时直接用了他们的ASCII码来取定变量的范围结果出现了错误,回头看课本时发现老师讲过此类问题,通过做此题让我深刻记忆了判断字母是否为大小写的方式,以小写字母变大写字母为例((n>='a'&&n<='z')?(n=n-32):n)注意最后一个n勿加引号,变大写字母时可以直接利用n=n-32来变换
②条件表达式的优先级较低
③例题(a<b?a:c<d?c:d)从右向左依次执行
p93第一题
条件较多,让我体会到if...else...语句中大括号的作用
p88第一题
注意switch语句的格式
我出错的地方是忘记在break前加分号
四.感想
在调程序时要把所有可能出现的极端情况都要考虑调试一遍
思路要清晰我调程序的时候出现了一个错误让我知道了non-lvalue in assiqnment(赋值中无左值)的意思:左值是可以进行赋值的对象如
int a=18//a就是左值
10=a//错误10是常量
总之,一定要多想多练才可以一遍就AC
(为自己加油(ง •̀_•́)ง)