编程能力等级认证 LESSON_06-分支结构1(课件)

2025-07-07
| 28页
| 18人阅读
| 0人下载
普通

内容正文:

CCF-GESP C++一级 CCF-GESP C++一级 编程能力等级认证 分支结构1 第六课 分支结构1 第六课是分支结构 2 其他常见运算符 01 01 第一部分是其他常见运算符 3 2、后++和前++、后--和前--的区别是其表达式的计算结果不同。 变量i加1之后的值 变量i加1之前的值 1 2 i++ i-- i+=1 i-=1 自增: 自减: 1、自增和自减运算符 int i=1; i++; int i=1; ++i; 自增和自减运算符 知识讲解 后++和前++,后—和前--的区别都是其表达式的计算结果不同。以自增运算符为例,后++是变量加1之前的值,而前++的结果就是变量i加1之后的值 4 自增运算符++和自减运算符--是单目运算符 类别 运算符 小括号 () 自增自减 ++ -- 逻辑非 ! 算术运算符 * / % + - 输出运算符 << 比较运算符 < <= > >= == != 逻辑运算符 && || 赋值运算符 = += -= *= /= %= 运算符的优先级 知识讲解 自增自减是单目运算符,单目运算符的优先级高于双目运算符 5 已知已定义整型变量w,x=0,y=0,z=0, 执行表达式w=++x||y++&&++z 后,w的值为( ) 。 A. 0 B. 1 C. 2 D. 3 B 选择题 w=++x||y++&&++z w=1||0&&1 w=1||0 w=1 课堂练习 答案:B 解析:根据运算符的优先级,先算++,表达式为w=1||0&&1 ,再算逻辑与运算,表达式为w=1||0,最后算逻辑或运算,结果为1,赋值给变量w,所以w的值为1,选B 已知整型变量a=5,b=3,表达式 a+=a*=++b*3的值为( ) 。 A. 65 B. 80 C. 100 D. 120 D 选择题 a+=a*=++b*3 a+=a*=4*3 a+=a*=12 a+=60 120 课堂练习 答案:D 解析:根据运算规则,先算++,表达式为a+=a*=4*3,再算算术运算*,表达式为a+=a*=12,然后计算*=,a+=60,注意此时变量a的值为60,所以最终结果为120,选D 逗号运算符 逗号运算符可以把多个表达式连接在一起,构成一个更大的表达式; 计算规则:从左到右依次计算每一个表达式,整个逗号表达式的计算结果为最后一个表达式的计算结果。 int j=10; 10 111 1010 j++, j+100, 999+j; 计算结果 知识讲解 逗号运算符可以把多个表达式连接在一起,构成一个更大的表达式; 计算规则:依次计算每一个表达式,整个逗号表达式的计算结果为最后一个表达式的计算结果。 例如定义这里使用逗号链接了三个表达式,执行的时候会从左到右依次计算每一个表达式,第一个表达式的结果是10(后加加),j变成了11,第二表达式的结果111,第三个表达式的结果999+11=1010,整个逗号表达式的值为最后一个表达式的值,也就,1010 8 逗号运算符 int j=10; int i; i=j++,j+100,999+j; cout<<i; 将运算结果保存到变量中 10 逗号运算符可以把多个表达式连接在一起,构成一个更大的表达式; 计算规则:从左到右依次计算每一个表达式,整个逗号表达式的计算结果为最后一个表达式的计算结果。 1010 知识讲解 将运算结果保存到一个新的变量i中,直接像这样赋值保存,发现保存的是第一个表达式的结果,这是因为逗号表达式优先级的问题 9 逗号运算符的优先级最低。 运算符的优先级 类别 运算符 小括号 () 自增自减 ++ -- 逻辑非 ! 算术运算符 * / % + - 输出运算符 << 比较运算符 < <= > >= == != 逻辑运算符 && || 赋值运算符 = += -= *= /= %= 逗号运算符 , int i; i=(j++,j+100,999+j); int j=10; cout<<i; 1010 需要添加小括号 int i; i=j++,j+100,999+j; 知识讲解 逗号运算符的优先级是最低的,比赋值运算符的优先级还低,所以在保存逗号表达式的计算结果时要用括号括起来 10 (2023年9月)C++语句cout<<(2, 3, "23")的输出为2,3,23。 判断题 正确 错误 真题解析 逗号运算符,只返回最后一个表达式的值,所以只输出23。 11 (2023年9月)对int类型的变量a、b、c,下列语句不符合C++语法是( ) A. c+=5; B. b=c%2.5; C. a=(b=3, c=4, b+c); D. a-=a=(b=6)/(c=2); 选择题 B 只有整数才能进行取余运算 真题解析 因为只有整数才能进行运算,所以B项错误 12 if-else语句 02 02 第二部分学习if-else语句 13 顺序结构 顺序结构:代码默认是顺序执行,这种结构称为顺序结构 选择结构:根据条件成立与否,选择其中一条语句执行,也称为分支结构 实现分支结构的语句称为分支语句 条件 成立 不成立 语句1 语句2 语句2 语句1 语句3 选择结构 选择结构 知识讲解 我们之前学习的程序都是顺序执行的,这种结构称为顺序结构,本节课我们学习选择结构,选择结构是根据条件成立与否,选择其中一条语句执行,也称为分支结构,实现分支结构的语句称为分支语句 14 if ( 条件 ) 语句; 条件 true 成立 false 不成立 语句 if ( 条件 ) 语句1; else 语句2; 条件 true 成立 false 不成立 语句2 语句1 if语句就是一种分支语句,由关键字if和else构成, 它有如下两种形式: if语句 知识讲解 if语句就是一种分支语句,由关键字if和else构成, 它有如下两种形式:第一种是只有if语句,如果条件成立就执行对应的语句,如果不成立什么也不做。还有一种是if-else语句,如果条件成立执行语句1,否则执行语句2 15 将多条语句使用{}括起来称为复合语句 if(x<y) max=y; else max=x; if(x<y) { max=y; } else  { max=x; } if(a>b){ t=a; a=b; b=t;  }       换行和缩进不是必须的 {}不是必须的 当有多条语句,必须使用{} 复合语句 知识讲解 if_else结构中当只有一条需要执行的语句时,{}可以有也可以没有。 当有多条需要执行的语句时,必须使用复合语句,使用{}包含。 我们之前在写代码的时候经常会用到换行和缩进,例如这段复合语句中的代码就使用了缩进,那么缩进和换行是必须的吗? 16 (2023年3月)if语句中的条件表达式的结果必须为bool类型。 判断题 正确 错误 真题解析 本题主要考察控制语句结构。if 语句的条件表达式不一定是 bool 类型, 也可能是其他类型,任何非零值都会被视为真,而零值会被视为假。 例如,如果 a 为 int 类型变量,则 if (a) ; 是否符合 C++语法的 if 语句,表示判断 a 是否为 0: a 不等于 0 时,则视为真,if 条件成立;反之,如果 a 等于 0,则视为假,if 条件 不成立。但 a 的类型为 int 类型,并不是 bool 类型,所以本题错误 17 (2023年6月)if语句可以没有else子句。 判断题 正确 错误 真题解析 本题考察 C++中分支结构中的 if 语句,if...else...语句的区别;if...else... 语句中,当 if 语句条件不满足,会执行 else 中的语句;if 语句可以独立存在,条 件满足,执行下级代码,条件不满足,跳过下级代码继续执行。所以本题正确 18 条件运算符 03 03 第三部分学习条件运算符 19 表达式2 条件 ? 表达式1 : true false 条件运算符根据某个条件,计算表达式的结果。 运算规则: 条件成立,其计算结果为表达式1的值; 条件不成立,其计算结果为表达式2的值。 条件运算符 ?: 知识讲解 条件运算符是由一个问号和一个冒号组成的。它的作用是根据某个条件,计算表达式的结果。 唯一的三目运算符 使用条件运算符的语法格式是在问号前面填写条件,问号之后写两个表达式,中间用冒号分隔。 使用条件运算符运算的规则为:如果条件成立,计算表达式1,条件不成立,则计算表达式2。 20 表达式2 x>y ? 表达式1 : 条件 x y int x,y; cin>>x>>y; int max; if(x>y) max=x; else max=y; cout<<max; true false max= ; 计算较大的数 知识讲解 使用if-else编写的判断较大值的代码,使用条件运算符进行化简。问号之前填写条件x>y,问号之后添加第一个表达式x,第二个表达式y,两个表达式之间使用冒号分隔。使用条件运算符的运算规则为:当x>y成立,运算结果为x;当x>y不成立,运算结果为y。 21 类别 运算符 优先级 小括号 () 算术运算符 * / % + - 输出运算符 << 比较运算符 < <= > >= == != 条件运算符 ?: 赋值运算符 = += -= *= /= %= 逗号运算符 , 由 高 到 低 条件运算符的优先级 知识讲解 条件运算符的优先级高于赋值运算符的优先级,因此我们可以将条件运算符运算的结果赋值给变量。另外条件运算符的优先级低于目前学习的其他运算符。 22 选择题 以下代码的输出结果是什么( ) int i=1,j=2,k=3; i==1?(i=j+k,j=5):(k++,k++); cout<<i<<" "<<j<<" "<<k; A. 1 2 4 B. 1 2 5 C. 5 5 3 D. 5 5 5 C 条件 成立时执行 不成立时执行 课堂练习 答案:C 此题考察三目运算符,条件为i==1,条件成立,执行?后面的表达式,i=j+k所以i的值为5,j=5所以j的值为5,k的值不变,所以输出为5 5 3,选择C选项。 23 买文具(2023年9月) 【问题描述】 开学了,⼩明来到⽂具店选购⽂具。签字笔2元⼀⽀,他需要X⽀;记事本5元⼀本,他需要Y本;直尺3元⼀把,他需要Z把。⼩明⼿⾥有Q元钱。请你通过编程帮⼩明算算,他⼿⾥的钱是否够买他需要的⽂具。 【输入描述】 输⼊4⾏。 第⼀⾏包含⼀个正整数X,是⼩明购买签字笔的数量。约定1≤X≤10。 第⼆⾏包含⼀个正整数Y,是⼩明购买记事本的数量。约定1≤Y≤10。 第三⾏包含⼀个正整数Z,是⼩明购买直尺的数量。约定1≤Z≤10。 第四⾏包含⼀个正整数Q,是⼩明⼿⾥的钱数(单位:元)。 【输出描述】 输出2⾏。 如果⼩明⼿⾥的钱够买他需要的⽂具,则第⼀⾏输出"Yes",第⼆⾏输出⼩明会剩下的钱数(单位:元); 否则,第⼀⾏输出"No",第⼆⾏输出⼩明缺少的钱数(单位:元)。 真题解析 本题为2023年9月真题 24 买文具(2023年9月) 【样例输入1】 1 1 1 20 【样例输出1】 Yes 10 【样例输入2】 1 1 1 5 【样例输出2】 No 5 1*2+1*5+1*3=10 20-10=10 1*2+1*5+1*3=10 10-5=5 真题解析 分析样例: 输入的前3个整数表示数量,第4个整数表示带的钱数,先计算出购买对饮数量的物品需要多少钱,再使用带的钱数减去花费的钱数就是剩余的钱数 25 思路分析 ③ 判断是否够买需要的文具,并按要求输出结果 if(q>=t){     cout<<"Yes"<<endl;     cout<<q-t<<endl; }else{     cout<<"No"<<endl;     cout<<t-q<<endl; } ① 定义四个变量,按要求输入4个整数 int x=0,y=0,z=0,q=0; cin>>x>>y>>z>>q; ② 计算花费的钱数,使用变量t保存 int t=x*2+y*5+z*3; 真题解析 思路分析: 1、定义四个变量,输入4个整数 2、计算买对应的文具需要花费的钱数,将结果使用变量t保存 3、根据钱数进行判断,如果q大于等于t,说明够买,那么输出yes,然后计算剩余的钱数q-t并将结果输出;否则条件不成立,说明不够买,那么输出no,计算差的钱数t-q并将结果输出 26 写一写 #include <iostream> using namespace std; int main(){     int x=0,y=0,z=0,q=0;     cin>>x>>y>>z>>q;     int t=x*2+y*5+z*3;     if(q>=t){         cout<<"Yes"<<endl;         cout<<q-t<<endl;     }else{         cout<<"No"<<endl;         cout<<t-q<<endl;     }     return 0; } 真题解析 感谢你的学习 28 $$

资源预览图

编程能力等级认证 LESSON_06-分支结构1(课件)
1
编程能力等级认证 LESSON_06-分支结构1(课件)
2
编程能力等级认证 LESSON_06-分支结构1(课件)
3
编程能力等级认证 LESSON_06-分支结构1(课件)
4
编程能力等级认证 LESSON_06-分支结构1(课件)
5
编程能力等级认证 LESSON_06-分支结构1(课件)
6
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。