初中信息奥赛题库——编程基础之循环控制
编程技能训练与等级考试辅导:循环控制

break语句用在循环中,跳出break所在的最内层 循环。
while(………){ while(………){ for(…………….){ … break; … } … }
}
结束本次循环(continue所在的最内层循环),即跳过 循环体中尚未执行的语句。 while(………){ while(………){ for(…………….){ … continue; … } … } }
请猜测一个0~100之间的数字: 输入你猜的数字:40 你猜的数字太小了!
输入你猜的数字:50 你猜的数字太大了!
输入你猜的数字:45 你猜的数字太大了!
输入你猜的数字:43 是的,恭喜你用了 4 次猜对。那个数字就是:43
连续给出五道两位数的减法练习程序,练习者输入 答案。如果答对,给出“你答对了”的提示信息, 如果答错给出“你答错了,正确答案是。。”的提 示信息,并且要求记录答对题的数目。完成五题练 习后,要求给出完成练习的时间,及全部5道题及 答题情况显示出来。(SubtractionQuiz.java)
x1: for (int i = 0; i < 5; i++) {
System.out.println("in I loop!");
for (int j = 0; j < 5 ; j++) {
if (j == 3) { continue x1;
}
跳回x1所示循环的起始位置, 开始下一次循环
System.out.println("i=" + i + " j=" + j);
◦ while前测型循环,do-while是后测型循环 ◦ While循环的循环体很可能0循环,但 do-while循
初中信息技术_python编程——for循环语句教学课件设计

盐城
11站
青岛西站
我们要打印11次“青岛西海岸新区我来了!”,你能用 python 快速实现吗?
思考:
1.这个程序中重复执行的内容是什么? 2.打印11次是由哪个参数控制的?如何 控制的二关:探究for循环——开始值、结束值
1.下面的程序有6处错误,你能找出来,并修改运行吗? 实现:打印第1站到第11站之间的站点数。
青岛西海岸的朋友们: 你们好!我们是来自江苏盐城的两名初中
学生,小明和小红,看完青岛西海岸的视频后, 我们被如诗如画的西海岸所吸引,我们打算端 午节和家人一起去游玩,希望能找一名导游, 只要能完成我们设置的关卡,即可有机会成为 我们的导游,并能得到我们送上的礼物!
你想挑战吗?
小明和小红
第一关:初识for循环
全程21个站点
有没有其他的解决方式呢?
第四关:比比谁的速度快!
请打开考试系统迎接最后一关的挑战!
网站对本节课的学习情况进行自评。
总结回顾 for循环语句基本格式:
for i in range(开始值,结束值,步长) : 循环体
恭喜你成为我们的导游,我们知道西海 岸的灯光秀也非常绚丽,所以我们用for循
抽奖时刻 环做了一个小灯光秀送给你!
作业
请同学们课下去欣赏一下西海岸的灯光秀, 看看它是如何循环播放的?
学以致用
在编程中体验快乐, 不断成长。
追求绿色时尚, 拥抱绿色生活。
:
缩进
1 2 3 4 56
2. 实现:打印第12站到第50站之间的站点数。
开始值: 12 结束值: 51 步长: 1
只要设置适当的开始值 和结束值,就可以限定 不同i的取值范围。
3. 实现:任意输入两个站点数m,n(m<n),输出m到n 之间的站点数。
15编程基础之循环控制(39题)

注意:结果可能是实数,结果用 double 类型保存。 提示:输出时不需要对精度特殊控制,用 cout << ANSWER,或者 printf("%g", ANSWER)即可。
样例输入
20
样例输出
59.9219 0.0195313
18:角谷猜想
• 查看
Hale Waihona Puke • 提交 • 统计 • 提问总时间限制: 1000ms
输出
一个整数,即乘方结果。题目保证最终结果的绝对值不超过 1000000。
样例输入
23
样例输出
8
12:人口增长问题
• 查看
• 提交 • 统计 • 提问
总时间限制: 1000ms
内存限制: 65536kB
描述
我国现有 x 亿人口,按照每年 0.1%的增长速度,n 年后将有多少人?
输入
一行,包含两个整数 x 和 n,分别是人口基数和年数,以单个空格分隔。
输入
输入 n+1 行,第 1 行是 A 国参与决赛项目的天数 n,其后 n 行,每一行是该国某一 天获得的金、银、铜牌数目,以一个空格分开。
输出
输出 1 行,包括 4 个整数,为 A 国所获得的金、银、铜牌总数及总奖牌数,以一个 空格分开。
样例输入
3 103 310 030
样例输出
4 4 3 11
07:奇数求和
在直角坐标系的原点是大本营,救生船每次从大本营出发,救了人之后将人送回大本 营。坐标系中的点代表屋顶,每个屋顶由其位置坐标和其上的人数表 示。救生船每 次从大本营出发,以速度 50 米/分钟驶向下一个屋顶,达到一个屋顶后,救下其上 的所有人,每人上船 1 分钟,船原路返回,达到大本营,每人下船 0.5 分钟。假设 原点与任意一个屋顶的连线不穿过其它屋顶。
循环控制语句习题讲解

• (2) 以下程序段的运行结果是(B )。 int i = 0; while(i++ <= 2); Console.WriteLine(i); A. 2 B. 4 C. 3 D. 有语法错 • (3) 以下程序段的运行结果是(C ) int num=0; while(num<=2) { num++; Console.WriteLine(num); } © Dr.Lihui
© Dr.Lihui
• (6) 执行语句: int i; for(i = 1;i++ < 4; ); 后变量i 的值是(C )。 A. 3 B. 4 C. 5
D. 不定
© Dr.Lihui
• (7) 运行以下程序段,结果是( D)。 Double k,t; int n; t = 1; for( n = 1;n <= 10;n++) { for(k = 1;k <= 5; k++) t = t + k; } Console.WriteLine (t); A. 150 B. 152 C. 149
© Dr.Lihui
• 2. 判断题 • (1) goto 语句使程序流程无规律、可读性差、有可能导致程序 的行为无法预知。 ( V) • (2) while 语句先执行循环体,然后再判断条件是否为真。 (X ) • (3) while 表达式后面加“;”号不能进入循环体。 (V ) • (4) for 语句的表达式不可以是逗号表达式。 ( V) • (5) for 语句的3 个表达式都可以省略。 (V ) • (6) for 语句比while 语句功能强,除了可以给出循环条件外, 还可以赋初值,使循环变量自动增值等。 ( V) • (7) 3 种循环(while 循环、do…while 循环和for 循环)可以互相 嵌套。 (V ) • (8) break 语句能跳出循环体内所有的循环。 ( X)
信息学奥赛NOIP第4单元循环结构程序设计

1. while 语句的含义
while 语句的格式如下: while(表达式){
循环体 }
其含义为:先计算表达式(一般称为循环条件)的值, 当表达式的值为真(循环条件成立)时,去执行一次循环 体。和 if 语句不同的是,执行完一次循环体后,while 语 句又回到开始处,继续计算和判断表达式的真假,决定是 否再次执行循环体。也就是“当表达式成立时,不断重复 执行循环体”,所以又称为“当型循环”。
信息学奥赛(C++)
第 4 单元 循环结构程序设计
第 1 课 while 语句
学习目标 1. 理解循环结构的含义。 2. 熟练掌握 while 语句的格式和功能。 3. 初步应用 while 语句解决一些实际问题。
循环结构
在程序设计中,经常需要反复执行某一条语句或一个 语句块,这种结构称为“循环结构”或者“重复结构”。 其实,计算机最擅长的就是重复做一件事情,所以循环结 构在程序设计中应用非常广泛。
printf( “ \n ” ); return 0; }
for 语句写法灵活,上述程序也可以写成:
//p4-3-1b #include<cstdio> using namespace std; int main(){
int i = 1; for(; i <= 10; i++) printf( “ @ ” );
例4、投资收益
【问题描述】
小华在去年赚了一大笔钱。他想把这些钱用于投资,并对自己能得到
多少收益感到好奇。
已知投资的年利率为 r(0~20 之间的整数),小华现有 m 元钱。他想
循环程序设计习题及答案

循环程序设计习题及答案循环程序设计习题及答案1-基本循环控制结构1-1 基本循环结构示例<代码示例>1-2 循环条件<代码示例>答案:循环条件是一个布尔表达式,如果条件为true,循环将继续执行。
如果条件为false,循环将终止。
1-3 循环计数器<代码示例>答案:循环计数器是一个变量,用于记录循环执行的次数。
1-4 循环控制语句1-4-1 break语句<代码示例>答案:break语句用于提前终止循环,并跳出循环体。
1-4-2 continue语句<代码示例>答案:continue语句用于跳过当前循环体中剩余的代码,直接进入下一次循环。
2-常见循环题型2-1 计算累加和<代码示例>答案:使用循环结构,每次迭代都将当前值累加到一个变量中。
2-2 计算阶乘<代码示例>答案:使用循环结构,每次迭代都将当前值与累积值相乘,并更新累积值。
2-3 猜数字游戏<代码示例>答案:使用循环结构,与用户交互对比猜测的数字与目标数字,直到猜测正确或达到最大猜测次数。
3-循环的嵌套和嵌套控制结构3-1 嵌套循环结构示例<代码示例>3-2 循环的嵌套控制3-2-1 嵌套循环的break语句<代码示例>答案:break语句可以终止当前循环,并直接跳出嵌套循环的外层循环。
3-2-2 嵌套循环的continue语句<代码示例>答案:continue语句可以跳过当前循环体中的剩余代码,并继续下一次迭代。
4-附件本文档没有涉及附件。
5-法律名词及注释5-1 循环:程序中一种重复执行的结构,可通过循环变量控制执行次数。
5-2 循环条件:循环结构中的判断条件,决定循环是否继续执行。
5-3 循环计数器:循环结构中用于记录循环次数的变量。
5-4 break语句:用于提前终止循环,并跳出循环体的语句。
5-5 continue语句:用于跳过当前循环体中剩余的代码,直接进入下一次循环的语句。
信息学奥赛课件-7.for循环

计算指定区间中奇数的和、偶数的和
#include <iostream>
using namespace std;
int main() { int m,n;
sum1存储偶数和 sum2存储奇数和
cin >> m>>n;
int i ,sum1 = 0,sum2 = 0;
for(i = m; i <= n; i++) {
0 1 1 2 3 5 8 13 21 34 55 89 144 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986
使用while语句循环输出1到100
int i = 1;
①执行循环的条件
while(i <= 100 ){
cout << i <<“ ”;
i = i + 1; }
②循环要做的事
还记的如何使用while 循环实现输出1-100之
间的所有数吗?
使用for循环输出1到100
①控制变量初 ②循环条件
始化表达式
除了1和它本身之外不能被别的数整除
if(sum==2) {
cout<<'Y';
}
else {
cout<<'N';
}
Fibonacci数列
信息奥赛十次课循环

1020
题目描述 编程求1+3+5+...+n 输入一行,只有一种整数n (1<=n<=9999) 这里n为奇数。 输出只有一行 样例输入 99 样例输出 2500
1020
类型
数值范围
占字节数
shortint
-128..128
1
integer -32768..32767
2
longint -2147483648..2147483647 4
及1个实数3
1. /号,定义s旳类型应该为实型 2. 注意验证最终1/n是否累加上去 3. 注意输出格式
函数标识符 自变量类型
意义
odd
整型
判断奇数
pred
离散类型
求前趋
succ
离散类型
求后继
例:odd(1000)=false pred(2023)=1999
题17:任意输入一种三位整数,再把它旳顺序打乱重新组合一种 新旳三位整数,使其值最大。 Input 输入只有一行,涉及1个整数。 Output 输出只有一行(这意味着末尾有一种回车符号),涉及1个整数。 Sample Input 470 Sample Output 740 思绪:把三位拆除出来,求出最大、中间、最小
odd(3)=true
pred('x')='w
成果类型 布尔型 同自变量 同自变量 succ(2023)=2023
succ('x')='y'
ch:=‘a’; ch:=succ(ch); ch:=succ(ch)
1024: 【入门】打印小写字母表 题目描述 把英文字母表旳小写字母按顺序和倒序打印出来。(每行13个) 输入 输出四行 样例输入 样例输出 abcdefghijklm nopqrstuvwxyz zyxwvutsrqpon mlkjihgfedcba
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
01:求平均年龄描述: 班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。
输入第一行有一个整数n(1<= n <= 100),表示学生的人数。
其后n行每行有1个整数,表示每个学生的年龄,取值为15到25。
输出输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。
提示要输出浮点数、双精度数小数点后2位数字,可以用下面这种形式:printf("%.2f", num);02:均值描述: 给出一组样本数据,计算其均值。
输入输入有两行,第一行包含一个整数n(n小于100),代表样本容量;第二行包含n个绝对值不超过1000的浮点数,代表各个样本数据。
输出输出一行,包含一个浮点数,表示均值,精确到小数点后4位。
03:求整数的和与均值描述: 读入n(1 <= n <= 10000)个整数,求它们的和与均值。
输入输入第一行是一个整数n,表示有n个整数。
第2~n+1行每行包含1个整数。
每个整数的绝对值均不超过10000。
输出输出一行,先输出和,再输出平均值(保留到小数点后5位),两个数间用单个空格分隔。
04:最高的分数描述: 孙老师讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的最高分数。
因为人数比较多,他觉得这件事情交给计算机来做比较方便。
你能帮孙老师解决这个问题吗?输入输入两行,第一行为整数n(1 <= n < 100),表示参加这次考试的人数.第二行是这n个学生的成绩,相邻两个数之间用单个空格隔开。
所有成绩均为0到100之间的整数。
输出输出一个整数,即最高的成绩。
05:整数序列的元素最大跨度值描述: 给定一个长度为n的非负整数序列,请计算序列的最大跨度值(最大跨度值 = 最大值减去最小值)。
输入一共2行,第一行为序列的个数n(1 <= n <= 1000),第二行为序列的n个不超过1000的非负整数,整数之间以一个空格分隔。
输出输出一行,表示序列的最大跨度值。
代码:program g;var n,i,max,min,x,f:integer;//e:integer;beginrepeatreadln(n)until((n>=1) and (n<=1000)) ;read(max);min:=max;for i:=1 to n-1 dobeginread(x);if x>max then max:=x;if x<min then min:=x;end;f:=max-min;write(f);//read(e);end.06:奥运奖牌计数描述: 2008年北京奥运会,A国的运动员参与了n天的决赛项目(1≤n≤17)。
现在要统计一下A国所获得的金、银、铜牌数目及总奖牌数。
输入输入n+1行,第1行是A国参与决赛项目的天数n,其后n行,每一行是该国某一天获得的金、银、铜牌数目,以一个空格分开。
输出输出1行,包括4个整数,为A国所获得的金、银、铜牌总数及总奖牌数,以一个空格分开。
program Project1;var n,suma,sumg,sumc,i,g,a,c,s:integer;x:integer;beginrepeatread(n)until ((n>=0) and (n<=17));sumg:=0;suma:=0;sumc:=0;for i:=1 to n dobeginread(g,a,c);sumg:=sumg+g;suma:=suma+a;sumc:=sumc+c;end;s:=sumg+suma+sumc;write(sumg,' ',suma,' ',sumc,' ',s);read(x);end.07:奇数求和描述: 计算非负整数 m 到 n(包括m 和 n )之间的所有奇数的和,其中,m 不大于 n,且n 不大于300。
例如 m=3, n=12, 其和则为:3+5+7+9+11=35。
输入两个数 m 和 n,两个数以一个空格分开,其中 0 <= m <= n <= 300 。
输出输出一行,包含一个整数,表示m 到 n(包括m 和 n )之间的所有奇数的和program Project1;var n,m,sum,i:integer;x:integer;beginrepeatread(m,n)until ((m<=n) and (m>=0) and (n<=300));sum:=0;if (m mod 2=1) thenbegini:=m;while(i<=n) dobeginsum:=sum +i;i:=i+2;end;end;i:=m+1;while(i<=n) dobeginsum:=sum +i;i:=i+2;end;write(sum);read(x);end.08:满足条件的数累加描述: 将正整数 m 和 n 之间(包括 m 和 n)能被 17 整除的数累加。
其中,0 < m < n < 1000。
输入一行,包含两个整数m和n,其间,以一个空格间隔。
输出输出一行,包行一个整数,表示累加的结果。
09:整数的个数描述: 给定k(1<k<100)个正整数,其中每个数都是大于等于1,小于等于10的数。
写程序计算给定的k个正整数中,1,5和10出现的次数。
输入输入有两行:第一行包含一个正整数k,第二行包含k个正整数,每两个正整数用一个空格分开。
输出输出有三行,第一行为1出现的次数,,第二行为5出现的次数,第三行为10出现的次数。
10:与指定数字相同的数的个数描述: 输出一个整数序列中与指定数字相同的数的个数。
输入输入包含2行:第1行为N和m,表示整数序列的长度(N <= 100)和指定的数字,中间用一个空格分开;第2行为N个整数,整数之间以一个空格分开。
输出输出为N个数中与m相同的数的个数。
11:乘方计算描述: 给出一个整数a和一个正整数n,求乘方a n。
输入一行,包含两个整数a和n。
-1000000 <= a <= 1000000,1 <= n <= 10000。
输出一个整数,即乘方结果。
题目保证最终结果的绝对值不超过1000000。
12:人口增长问题描述: 我国现有x亿人口,按照每年0.1%的增长速度,n年后将有多少人?输入一行,包含两个整数x和n,分别是人口基数和年数,以单个空格分隔。
输出输出最后的人口数,以亿为单位,保留到小数点后四位。
1 <= x <= 100, 1 <= n<= 100。
13:菲波那契数列描述: 菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。
给出一个正整数k,要求菲波那契数列中第k个数是多少。
输入输入一行,包含一个正整数k。
(1 <= k <= 46)输出输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小15:鸡尾酒疗法描述: 鸡尾酒疗法,原指“高效抗逆转录病毒治疗”(HAART),由美籍华裔科学家何大一于1996年提出,是通过三种或三种以上的抗病毒药物联合使用来治疗艾滋病。
该疗法的应用可以减少单一用药产生的抗药性,最大限度地抑制病毒的复制,使被破坏的机体免疫功能部分甚至全部恢复,从而延缓病程进展,延长患者生命,提高生活质量。
人们在鸡尾酒疗法的基础上又提出了很多种改进的疗法。
为了验证这些治疗方法是否在疗效上比鸡尾酒疗法更好,可用通过临床对照实验的方式进行。
假设鸡尾酒疗法的有效率为x,新疗法的有效率为y,如果y-x大于5%,则效果更好,如果x-y大于5%,则效果更差,否则称为效果差不多。
下面给出n组临床对照实验,其中第一组采用鸡尾酒疗法,其他n-1组为各种不同的改进疗法。
请写程序判定各种改进疗法效果如何。
输入第一行为整数n( 1 < n <= 20);其余n行每行两个整数,第一个整数是临床实验的总病例数(小于等于10000),第二个疗效有效的病例数。
这n行数据中,第一行为鸡尾酒疗法的数据,其余各行为各种改进疗法的数据。
输出有n-1行输出,分别表示对应改进疗法的效果:如果效果更好,输出better;如果效果更差,输出worse;否则输出same16:救援描述: 救生船从大本营出发,营救若干屋顶上的人回到大本营,屋顶数目以及每个屋顶的坐标和人数都将由输入决定,求出所有人都到达大本营并登陆所用的时间。
在直角坐标系的原点是大本营,救生船每次从大本营出发,救了人之后将人送回大本营。
坐标系中的点代表屋顶,每个屋顶由其位置坐标和其上的人数表示。
救生船每次从大本营出发,以速度50 米/分钟驶向下一个屋顶,达到一个屋顶后,救下其上的所有人,每人上船1分钟,船原路返回,达到大本营,每人下船0.5 分钟。
假设原点与任意一个屋顶的连线不穿过其它屋顶。
输入第一行,一个整数,表示屋顶数n。
接下来依次有n 行输入,每一行上包含两个表示屋顶相对于大本营的平面坐标位置的实数(单位是米)、一个表示人数的整数,数之间以一个空格分开。
输出一行,救援需要的总时间,精确到分钟 (向上取整)。
17:球弹跳高度的计算描述: 一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。
编程计算气球在第10次落地时,共经过多少米? 第10次反弹多高?输入输入一个整数h,表示球的初始高度。
输出输出包含两行:第1行:到球第10次落地时,一共经过的米数。
第2行:第10次弹跳的高度。
注意:结果可能是实数,结果用double类型保存。
提示:输出时不需要对精度特殊控制,用cout << ANSWER,或者printf("%g",ANSWER)即可。
18:角谷猜想描述: 所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。
如,假定初始整数为5,计算过程分别为16、8、4、2、1。
程序要求输入一个整数,将经过处理得到1的过程输出来。
输入一个正整数N(N <= 2,000,000)输出从输入整数到1的步骤,每一步为一行,每一部中描述计算过程。
最后一行输出"End"。
如果输入为1,直接输出"End"。
19:津津的储蓄计划描述: 津津的零花钱一直都是自己管理。
每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。
为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上20%还给津津。