GESP一级 | 基本语句(if switch for while)

文摘   2024-11-27 18:17   广东  

为了确保题目适合小学生的理解水平,我们将避免使用过于复杂的编程概念,并尽量使用简单易懂的语言和例子。根据NOI及GESP考纲精心设计配套习题集,不定期发布,以供老师、学生们参考。

一、if语句

根据条件的真假,决定执行哪路代码 if .. else.. switch ?: 都有这个能力

if 的条件中尽量用 bool,  其它类型会强制转为bool

if 的条件中可能会发生短路求值现象 if(a表达式 && b表达式) ... 当 a表达式为假的时候,b表达式根本不会执行 同理,if(a表达式 || b表达式) ...

int a = 5, b = 8;int x = 100;if(a>10 && (x=b)){    cout << "here" << endl;}cout << x << endl;

二、switch语句

当分支情况较多时,if .. else if …. else if …. else …  嵌套过多,维护不方便。

switch(表达式){case 1:   代码块1;   break;case 2:    代码块2;    break;default:    默认处理}

要求:

  1. switch 圆括号中的值必为:整数,字符 或者 枚举类型


三、while循环

 最可靠的循环—死循环

  1. while(true){

  2. 执行一些动作;

  3. }

配合的出口语句:break if (条件) break;

示例 对学生成绩进行分类,输出:A, B, C, D, E 5个等级

  1. int score = 100;

  2. int a = score - 60;

  3. char level = 'E';

  4. while(true){

  5. if(a<0) break;

  6. level--;

  7. a -= 10; // a = a - 10;

  8. if(level=='A') break; // 封顶

  9. }

  10. cout << level << endl;

示例: 已知正整数x,从低位到高位,输出每个十进制数位 提示:通过不断整除,消掉最后一位,直到变成0

do-while 循环并不常用,所有情况,可以用内部的break来解决


四、for循环

当我们已知执行次数的时候,用 for 循环更方便一些。

for 循环的语法:

for(初始化循环变量; 循环保持条件; 循环变量变化){    循环体}

  • 循环变量的生存期 循环变量仅仅在 for 语句范围内有效,是局部变量,放在栈中 循环变量的生存期,比循环体内的局部变量更长。

  • continue 直接进入下一轮循环 if(条件) continue; 越过循环的某些轮次不做

示例 打印九九乘法表 可以用双层嵌套

for(int j=1; j<=9; j++){    for(int i=1; i<=j; i++){        int k = i * j;        cout << j << "x" << i << "=" << k << " ";    }    cout << endl;}

更多信奥内容,请关注【信奥营】!

[1].信息学奥赛一本通(C++)题解及知识点

[2].信息学奥赛编程启蒙C++题解合集

[3].信息学奥赛 | 备赛CSP-JS 常用网站

[4].信息学奥赛 | 信息学竞赛推荐书(更新)

信奥营
信息学奥赛、白名单赛事、科技特长升学!
 最新文章