初中信息奥赛题库——编程基础之循环控制
- 格式:doc
- 大小:163.50 KB
- 文档页数:22
循环程序设计习题及答案循环程序设计习题及答案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语句:用于跳过当前循环体中剩余的代码,直接进入下一次循环的语句。
第五章循环控制一.选择题1.下面程序段int k=2;while (k=0) {printf(“%d”,k);k--;}则下面描述中正确的是。
A)while循环执行10次B)循环是无限循环C)循环题语句一次也不执行D)循环体语句执行一次2.下述程序段中,与其他程序段的作用不同。
A)k=1; B)k=1;while (1) { Repeat :s+=k ; s+=k ;k=k+1 ; if (++k<=100)if (k>100) break ; goto Repeat} printf(“\n%d”,s) ;printf(“\n%d”,s) ;C)int k,s=0; D)k=1;for (k=1;k<=100;s+=++k); doprintf(“\n%d”,s) ; s+=k;while (++k<=100) ; printf(“\n%d”,s) ;3.以下程序段的循环次数是。
for (i=2; i==0; ) printf(“%d” , i--) ;A)无限次B)0次C)1次D)2次4.下面程序的输出结果是。
main ( ){ char c=‟A‟;int k=0;do {switch (c++) {case …A‟ : k++ ; break ;case …B‟ : k-- ;case …C‟ : k+=2 ; break ;case …D‟ : k%=2 ; continue ;case …E‟ : k*=10 ; break ;default : k/=3 ;}k++;} while (c<‟G‟) ;printf (“k=%d”,k) ;}A)k=3 B)k=4 C)k=2 D)k=05.下面程序的输出结果是。
main ( ){ int x=9;for (; x>0; x--) {if (x%3==0) {printf(“%d”,--x);continue ;}}}A)741 B)852 C)963 D)8754216.以下不是死循环的程序段是。
初中信息技术循环结构在初中信息技术的学习中,循环结构是一个非常重要的概念。
它就像是一个勤劳的小助手,能够帮助我们更高效地完成一些重复的任务。
循环结构是什么呢?简单来说,就是让计算机按照我们设定的规则,反复执行一段代码,直到满足特定的条件为止。
想象一下,你需要在一张纸上连续写100 个“我爱学习”,如果一个一个地写,那得多累啊!但如果我们告诉计算机“重复写‘我爱学习’,一共写 100 次”,这就是一个循环。
循环结构有两种常见的类型:for 循环和 while 循环。
先来说说 for 循环。
它就像是一个有着明确计划的执行者。
比如“for (int i = 0; i < 10; i++)”,这里面“int i =0”是给一个变量 i 赋初始值 0,“i <10”是设定循环的条件,也就是只要 i 小于 10 就继续循环,“i++”则是每次循环结束后 i 的变化,这里是每次加 1。
所以这个循环会从 i 等于 0 开始,每次循环 i 增加 1,直到 i 等于 9 结束,一共执行10 次。
再看看 while 循环。
它更像是一个等待条件满足的观察者。
比如“while (i <10)”,只要 i 小于 10,就会一直执行后面的代码。
但是,在 while 循环里,我们得自己在代码里面去改变 i 的值,不然就会陷入死循环,也就是一直不停地重复执行,计算机可就“累坏”啦。
循环结构在我们的生活中有很多实际的应用。
比如说,我们要计算1 到 100 所有整数的和。
如果不用循环,那得一个一个加,多麻烦!但有了循环就简单多了。
我们可以用一个变量 sum 来保存累加的结果,从 1 开始,每次循环都把当前的数字加到 sum 里,一直加到 100。
又比如,我们要打印出 10 行“”号组成的三角形。
通过循环,控制每行“”号的数量逐渐增加,就能轻松实现。
在编程中使用循环结构,还需要注意一些问题。
首先,一定要确保循环能够正常结束,不然就会出现前面说的死循环。
第六章循环控制(答案)第六章循环控制(答案)第六章循环控制6.1选择题1.c语言用(c)表示逻辑“真”值。
a)trueb)t或yc)非零整数值d)整数02.语句while(!e);中的条件!e等价于(a)。
a)e==0b)e!=1c)e!=0d)-e3.以下for循环就是(c)。
for(x=0,y=0;(y!=123)&&(x<4);x++);a)无穷循环b)循环次数不定c)继续执行4次d)继续执行3次4.下面有关for循环的正确描述是(d)a)for循环只能用于循环次数已经确定的情况b)for循环是先执行循环体语句,后判定表达式c)在for循环中,不能用break语句跳出循环体d)for循环体语句中,可以涵盖多条语句,但要用花括号内加出来5.对于for(表达式1;;表达式3)可理解为(b)a)for(表达式1;1;表达式3)b)for(表达式1:1;表达式3)c)for(表达式1;表达式1;表达式3)d)for(表达式1;表达式3;表达式3)6.下面程序段的运行结果是(d)x=y=0;while(x<15)y++,x+=++y;printf(“%d,%d”y,x);a)20,7b)6,12c)20,8d)8,207.下面程序段的运行结果是(c)intn=0;while(n++<=2);printf(“%d”,n);a)2b)3c)4d)存有语法弄错8.下面程序的功能是将从键盘输入的一批正整数中求出最大者,输入0结束循环选独以填空题。
#includemain(){inta,max=0;scanf(“%d”,&a);while((b)){if(maxprintf(“%d”,max);}a)a==0b)ac)!a==1d)!a9.下面程序的运转结果就是(c).#includemain(){intnum=0;while(num<=2){num++;printf(“=”,num);}}a)1b)12c)123d)123410.c语言中while和do-while循环的主要区别是(a).a)do-while的循环体至少无条件执行一次b)while的循环掌控条件比的循环掌控条件严苛c)do-while容许从外部转回至循环体内d)do-while的循环体无法就是无机语句11.以下能正确计算1*2*3*??*10的程序是(c).a)do{i=1;s=1;b)do{i=1;s=0;s=s*i;s=s*i;i++;i++;}while(i<=10);}while(i<=10);c)i=1;s=1;d)i=1;s=0;do{s=s*i;do{s=s*i;i++;i++;}while(i<=10);}while(i<=10);12.以下叙述恰当的就是(c).a)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。
编程竞赛考试题库及答案1. 编程竞赛考试题库及答案1.1 题目一:字符串反转编写一个函数,输入一个字符串,输出该字符串的反转结果。
答案:```pythondef reverse_string(s):return s[::-1]```1.2 题目二:找出数组中的最大值给定一个整数数组,请找出数组中的最大值并返回。
答案:```pythondef find_max_value(arr):return max(arr)```1.3 题目三:计算阶乘编写一个函数,输入一个非负整数n,返回n的阶乘。
答案:```pythondef factorial(n):if n == 0:else:return n * factorial(n-1)```1.4 题目四:判断回文数编写一个函数,判断输入的整数是否为回文数。
答案:```pythondef is_palindrome(x):str_x = str(x)return str_x == str_x[::-1]```1.5 题目五:合并两个有序数组给定两个有序整数数组nums1和nums2,其中nums1的长度为m,nums2的长度为n,请你将nums2合并到nums1中,使合并后的数组仍然有序。
答案:```pythondef merge(nums1, m, nums2, n):i, j = m - 1, n - 1index = m + n - 1while i >= 0 and j >= 0:if nums1[i] > nums2[j]:nums1[index] = nums1[i]i -= 1else:nums1[index] = nums2[j]index -= 1nums1[:index+1] = nums2[j+1:]```1.6 题目六:寻找两个有序数组的中位数给定两个大小分别为m和n的有序数组nums1和nums2,请找出这两个数组的中位数。
01:求平均年龄∙∙提交∙统计∙提问总时间限制:1000ms内存限制:65536kB描述班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。
输入第一行有一个整数n(1<= n <= 100),表示学生的人数。
其后n行每行有1个整数,表示每个学生的年龄,取值为15到25。
输出输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。
提示要输出浮点数、双精度数小数点后2位数字,可以用下面这种形式:printf("%.2f", num);02:均值∙∙提交∙统计∙提问总时间限制:1000ms内存限制:65536kB描述给出一组样本数据,计算其均值。
输入输入有两行,第一行包含一个整数n(n小于100),代表样本容量;第二行包含n个绝对值不超过1000的浮点数,代表各个样本数据。
输出输出一行,包含一个浮点数,表示均值,精确到小数点后4位。
03:求整数的和与均值∙∙提交∙统计∙提问总时间限制:1000ms内存限制:65536kB描述读入n(1 <= n <= 10000)个整数,求它们的和与均值。
输入输入第一行是一个整数n,表示有n个整数。
第2~n+1行每行包含1个整数。
每个整数的绝对值均不超过10000。
输出输出一行,先输出和,再输出平均值(保留到小数点后5位),两个数间用单个空格分隔。
来源习题(8-6)04:最高的分数∙∙提交∙统计∙提问总时间限制:1000ms内存限制:65536kB描述孙老师讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的最高分数。
因为人数比较多,他觉得这件事情交给计算机来做比较方便。
你能帮孙老师解决这个问题吗?输入输入两行,第一行为整数n(1 <= n < 100),表示参加这次考试的人数.第二行是这n个学生的成绩,相邻两个数之间用单个空格隔开。
所有成绩均为0到100之间的整数。
备考注意事项:1.6条语句的空模板2.路径:file-chang dir3.时间的控制3个小时4个题目,或者3.5个小时5个题目。
4.环境笔,草稿纸,计算机(不能上网的!)循环结构的程序设计For循环语句:如果希望重复执行一组语句,而且重复的次数事先是确定的,而不依赖于循环中语句的运行结果。
While 循环语句:不知道重复的次数,只知道满足某条件要执行或不执行,所以布尔表达式所含变量在循环语句中一定要有更改,否则变死循环。
Repeat 循环语句数组A[i] 前移i:=i-1 后退i:=i+1位置关系:A[I,j] 上一行 I-1 下一行i+1前一列 j-1 后一列j+1主对角线:i=j 对称关系a[I,j] a[j,i]上三角 I<=j 下三角I>=j次对角线:I+j=n+1 对称关系 a[I,j] a[n+1-j,n+1-i]上三角 I+j<=n+1 下三角I+j>=n+1排序,一定要滚瓜烂熟================================================================================= 1.计算1+2+3+4…..+n之和1*2*3*···*n2+4+6+···+n1+1/2+1/3+···+1/n12+22+32+···+n22.键入一个自然数x,求这个自然数的所有约数(包括1和x本身)之和3.编程找出四位整数abcd中满足下述关系的数:(ab+cd)*(ab+cd)=abcd4.输出1-n之间的所有奇数5.输入若干个字符(以‘#’作为结束),计算输入的字符串字母‘a’或‘A’出现的次数6.求输入的一个整数的各位数字之和7.求两个自然数m,n的最小公倍数8.从n个数中挑选出最大的数9.求100-999中的水仙花数。
初中信息技术程序设计基础万能答题模板问题一题目请解释程序设计中的变量和常量的概念及其区别。
答案- 变量是程序中用来存储数据的一种命名方式。
它可以在程序运行过程中改变其存储的值。
- 常量是程序中的固定值,其值在程序运行过程中不能改变。
变量和常量的区别在于:- 变量可以在程序运行过程中改变其值,而常量的值在程序运行期间保持不变。
- 变量需要通过声明和初始化来创建,而常量在声明时就需要赋予一个固定的值。
- 变量可以重复使用,而常量的值通常在整个程序中保持不变。
问题二题目请解释程序设计中的循环结构的作用及其常见类型。
答案循环结构是一种程序设计的控制结构,它可以让一段代码重复执行多次,以达到特定的目的。
常见的循环结构有以下几种类型:___ 循环:通过给定初始值、循环条件和步进值来控制循环次数的一种循环结构。
2. `while` 循环:在给定条件为真的情况下,不断重复执行一段代码的循环结构。
3. `do-while` 循环:先执行一次代码块,然后再根据给定条件判断是否继续执行的循环结构。
循环结构可以让程序执行重复的任务,提高代码的效率和灵活性。
问题三题目请解释程序设计中的条件判断结构的作用及其常见形式。
答案条件判断结构是一种程序设计的控制结构,它根据给定的条件来决定是否执行特定的代码块。
常见的条件判断结构有以下几种形式:1. `if` 语句:通过判断给定条件是否为真,来决定是否执行特定的代码块。
2. `if-else` 语句:根据给定条件的真假分别执行不同的代码块。
3. `if-else if-else` 语句:根据多个不同的条件,依次判断并执行对应的代码块。
条件判断结构可以根据不同的条件执行不同的代码,使程序可以根据具体情况做出不同的处理。
结论本文介绍了程序设计中的变量和常量的概念及其区别,循环结构的作用和常见类型,以及条件判断结构的作用及常见形式。
通过掌握这些基础知识,可以更好地进行程序设计和编程。
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的非负整数,整数之间以一个空格分隔。
分支和循环练习题编程中的分支和循环是最基本的控制结构,通过它们我们可以实现程序的灵活性和复杂性。
在学习编程的过程中,练习题是非常重要的一环,它可以帮助我们巩固知识,提高编程能力。
下面我将为大家分享一些有关分支和循环的练习题。
1. 分支练习题1.1 猜数字游戏编写一个程序,随机生成一个1到100之间的整数,然后让用户猜这个数字是多少。
如果用户猜错了,根据猜测的大小给出提示,直到猜对为止。
最后输出用户猜测的次数。
1.2 判断闰年编写一个程序,判断一个给定的年份是否为闰年。
闰年的判断规则是:能被4整除但不能被100整除,或者能被400整除的年份都是闰年。
1.3 成绩等级编写一个程序,根据输入的成绩判断等级。
如果成绩大于等于90分,输出"优秀";如果成绩大于等于80分,输出"良好";如果成绩大于等于70分,输出"中等";如果成绩大于等于60分,输出"及格";否则输出"不及格"。
2. 循环练习题2.1 打印九九乘法表编写一个程序,使用嵌套循环打印出九九乘法表。
输出结果应该如下所示:1 * 1 = 11 *2 = 2 2 * 2 = 41 * 3 = 32 *3 = 6 3 * 3 = 9...2.2 计算阶乘编写一个程序,计算给定数字的阶乘。
阶乘的定义是:n的阶乘(n!)等于1乘以2乘以3一直到n。
2.3 素数判断编写一个程序,判断一个给定的正整数是否为素数。
素数的定义是:除了1和它本身之外,没有其他因数能够整除它。
以上是一些关于分支和循环的练习题,它们涵盖了基本的编程概念和技巧。
通过不断地练习和思考,我们可以逐渐提高自己的编程能力。
在解决这些练习题的过程中,我们不仅可以巩固知识,还可以培养逻辑思维和问题解决能力。
希望大家能够积极参与练习,不断提升自己的编程水平!。
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的非负整数,整数之间以一个空格分隔。
一、循环控制(一)、break语句break语句通常用在循环语句和开关语句中。
当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。
break在switch中的用法已在前面介绍开关语句时的例子中碰到,这里不再举例。
当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句联在一起。
即满足条件时便跳出循环。
例如:int main(int argc, char *argv[]){int sn=0,i;for(i=1;i<=100;i++){if(i==51) break; /*如果i等于51,则跳出循环*/sn+=i; /*1+2+……+50*/}printf(%d\n,sn);}可以看出,最终的结果是1+2+……+50。
因为在i等于51的时候,就跳出循环了。
自己写写怎样在while和do--while循环中增加break语句。
注意:1. break语句对if-else的条件语句不起作用。
2. 在多层循环中,一个break语句只向外跳一层。
例如:int main(int argc, char *argv[]){int i,j;printf(i j\n);for(i=0;i<2;i++)for(j=0;j<3;j++){if(j==2) break;printf(%d %d\n,i,j);}}输出结果为:i j0 00 11 01 1当i==0,j==2时,执行break语句,跳出到外层的循环,i变为1。
(二)、continue语句continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。
continue语句只用在for、while、do-while等循环体中, 常与if条件语句一起使用,用来加速循环。
noi寒假刷题之旅_1.5编程基础之循环控制(45题)(45题)01:求平均年龄#include<iostream>using namespace std;int main(){int n;float sum=0;cin>>n;for(int i=0;i<n;++i){int temp;cin>>temp;sum+=temp;}printf("%.2f",sum/n);return 0;}02:财务管理#include<iostream>using namespace std;int main(){float sum=0;float temp;for(int i=0;i<12;++i){cin>>temp;sum+=temp;}printf("$%.2f",sum/12);return 0;}03:均值#include<iostream>using namespace std;int main(){int n;double sum=0,temp;cin>>n;for(int i=0;i<n;++i){cin>>temp;sum+=temp;}printf("%.4f",sum/(double)n);return 0;}04:求整数的和与均值#include<iostream>using namespace std;int main(){int n;double sum=0,temp;cin>>n;for(int i=0;i<n;++i){cin>>temp;sum+=temp;}printf("%.0f %.5f",sum,sum/(double)n);return 0;}05:最⾼的分数#include<iostream>using namespace std;int main(){int n;int max,temp;cin>>n;cin>>max;for(int i=1;i<n;++i){cin>>temp;if(max<temp)max=temp;}printf("%d",max);return 0;}06:整数序列的元素最⼤跨度值#include<iostream>using namespace std;int main(){int m;int max,min,temp;cin>>m;cin>>max;min=max;for(int i=1;i<m;++i){cin>>temp;if(max<temp)max=temp;if(min>temp)min=temp;}printf("%d",max-min);return 0;}07:奥运奖牌计数#include<iostream>using namespace std;int main(){int m;int j,y,t;int a=0,b=0,c=0;cin>>m;for(int i=0;i<m;++i){cin>>j>>y>>t;a+=j;b+=y;c+=t;}printf("%d %d %d %d",a,b,c,a+b+c); return 0;}08:多边形内⾓和#include<iostream>using namespace std;int main(){int n;int j,v;int a=0,b=0,c=0;cin>>n;v=(n-2)*180;for(int i=0;i<n-1;++i){cin>>j;v-=j;}printf("%d",v);return 0;}09:奇数求和#include<iostream>using namespace std;int main(){int n,m,sum=0;cin>>m>>n;for(int i=m;i<=n;++i){if(i%2){sum+=i;}}cout<<sum;return 0;}10:满⾜条件的数累加#include<iostream>using namespace std;int main(){int n,m,sum=0;cin>>m>>n;for(int i=m;i<=n;++i){if(!(i%17)){sum+=i;}}cout<<sum;return 0;}11:整数的个数#include<iostream>using namespace std;int main(){int k,temp,one=0,five=0,ten=0;cin>>k;for(int i=0;i<k;++i){cin>>temp;if(temp==1)++one;if(temp==5)++five;if(temp==10)++ten;}cout<<one<<endl<<five<<endl<<ten<<endl; return 0;}12:与指定数字相同的数的个数#include<iostream>using namespace std;int main(){int n,m,temp,one=0;cin>>n>>m;for(int i=0;i<n;++i){cin>>temp;if(temp==m)++one;}cout<<one;return 0;}13:乘⽅计算#include<iostream>using namespace std;int main(){long long a,n,temp=1;cin>>a>>n;for(int i=0;i<n;++i){temp*=a;}cout<<temp;return 0;}14:⼈⼝增长问题#include<iostream>#include<cmath>using namespace std;int main(){double x,n,sum=0;cin>>x>>n;sum=x*pow(1+0.1/100.0,n);printf("%.4f",sum);return 0;}15:银⾏利息#include<iostream>#include<cmath>using namespace std;int main(){double r,m,y,sum;cin>>r>>m>>y;r=r/100.0;sum=m*pow(1+r,y);printf("%d",(int)sum);return 0;}16:买房⼦#include<iostream>#include<cmath>using namespace std;int main(){double n,k,sum=200,cxy;cin>>n>>k;k/=100.0;cxy=n;int count=1,flag=0;while(cxy<sum){sum*=(1+k);cxy+=n;++count;if(count>20){flag=1;break;}}if(flag){cout<<"Impossible"; }else{printf("%d",count);}return 0;}17:菲波那契数列#include<iostream>#include<cmath>using namespace std;int main(){int k;int o[50]={};o[1]=1,o[2]=1;cin>>k;for(int i=3;i<=k;++i){o[i]=o[i-1]+o[i-2];}cout<<o[k];return 0;}18:鸡尾酒疗法#include<iostream>#include<cmath>using namespace std;int main(){int n;cin>>n;double a,b;double x,y;cin>>a>>b;x=b/a;for(int i=1;i<n-1;++i){cin>>a>>b;y=b/a;if((y-x)>0.05){cout<<"better";}else if((x-y)>0.05){cout<<"worse";}else{cout<<"same";}cout<<endl;}cin>>a>>b;y=b/a;if((y-x)>0.05){cout<<"better";}else if((x-y)>0.05){cout<<"worse";}else{cout<<"same";}return 0;}19:救援#include<iostream>#include<cmath>using namespace std;int main(){int n;cin>>n;double x,y,z;double sum=0;for(int i=0;i<n;++i){cin>>x>>y>>z;sum+=sqrt(x*x+y*y)/50.0;sum+=sqrt(x*x+y*y)/50.0;sum+=z*1.5;}printf("%.0f",sum+0.5);return 0;}20:球弹跳⾼度的计算#include<iostream>#include<cmath>using namespace std;int main(){double h,ten;double high=0;cin>>h;ten=h*pow(0.5,10);high=h;for(int i=1;i<10;++i){h/=2.0;high+=h;high+=h;}printf("%g\n",high);printf("%g",ten+0.00000005);return 0;}21:⾓⾕猜想#include<iostream>#include<cmath>#include <limits>using namespace std;int main(){long long n;cin>>n;while(1){if(n==1)break;if(n%2){cout<<n<<"*3+1=";n=n*3+1;}else{cout<<n<<"/2=";n=n/2;}cout<<n<<endl;}cout<<"End";// cout << "最⼤值:" << (numeric_limits<long long>::max)(); return 0;}/*这题要B⼀下,⼀开始⽤int⽼是超时改成long long过了int 最⼤:2,47,483,648>2,000,000,但是⼀旦*3就超了long long最⼤:92,23,372,036,854,775,807*/ 逛了⼀波博客回来继续撸22:津津的储蓄计划#include<iostream>#include<cmath>using namespace std;int main(){int temp,flag=0;double save=0;int jj=0;for(int i=1;i<=12;++i){cin>>temp;jj+=300;jj-=temp;if(jj>=300){save+=300;jj-=300;}else if(jj>=200){save+=200;jj-=200;}else if(jj>=100){save+=100;jj-=100;}else if(jj<0){flag=1;cout<<-1*i;break;}}if(!flag){printf("%.0f",save*1.2+jj);}return 0;}23:药房管理#include<iostream>#include<cmath>using namespace std;int main(){int m,n,num,c=0;cin>>m>>n;for(int i=0;i<n;++i){cin>>num;if(m>=num){m-=num;}else{++c;}}cout<<c;return 0;}24:正常⾎压#include<iostream>#include<cmath>using namespace std;int main(){int n,a,b,c=0,max=0;cin>>n;for(int i=0;i<n;++i){cin>>a>>b;if(90<=a&&a<=140&&60<=b&&b<=90) {++c;}else{c=0;}if(max<c)max=c;}cout<<max;return 0;}25:求特殊⾃然数找答案:#include<iostream>#include<cmath>using namespace std;int main(){for(int i=0;i<7;++i){for(int j=0;j<7;++j){for(int k=0;k<7;++k){if((49*i+7*j+k)==(81*k+9*j+i)){cout<<(49*i+7*j+k)<<endl;cout<<i<<j<<k<<endl;cout<<k<<j<<i<<endl;cout<<endl;}}}}return 0;}交的时候:#include<iostream>#include<cmath>using namespace std;int main(){cout<<248<<endl;cout<<503<<endl;cout<<305<<endl;return 0;}26:统计满⾜条件的4位数个数#include<iostream>#include<string>using namespace std;int main(){int n,c=0;cin>>n;string a;for(int i=0;i<n;++i){cin>>a;if((a[3]-'0')-(a[2]-'0')-(a[1]-'0')-(a[0]-'0')>0)++c; }cout<<c;return 0;}27:级数求和#include<iostream>#include<string>using namespace std;int main(){double i;double k;cin>>k;double sn=0;for(i=1;!(sn>k);++i){sn+=1/i;}cout<<i-1;return 0;}28:分离整数的各个数位#include<iostream>#include<string>using namespace std;int main(){long long n;cin>>n;while(n){cout<<n%10<<" ";n/=10;}return 0;}29:数字反转#include<iostream>#include<string>using namespace std;int main(){long long n,ne=0;cin>>n;while(n){ne+=n%10;ne*=10;n/=10;}cout<<ne/10;return 0;}30:含k个3的数#include<iostream>#include<string>using namespace std;int main(){int m,k,s,t=0,flag=0;cin>>m>>k;s=m%19;if(!s){s=m;while(s){if(s%10==3)++t;s/=10;}if(t==k)flag=1;}if(flag){cout<<"YES";}else{cout<<"NO";}return 0;}31:开关灯#include<iostream>#include<string>using namespace std;int main(){int a[5001]={},n,m;cin>>n>>m;//0关闭,1打开for(int j=1;2*j<=n;++j){a[2*j]=1;//打开}for(int i=3;i<=m;++i){for(int j=1;i*j<=n;++j){if(a[i*j]==1){a[i*j]=0;}else{a[i*j]=1;}}}int ii=1;for(;ii<=n;++ii){if(!a[ii]){cout<<ii;break;}}++ii;for(;ii<=n;++ii){if(!a[ii]){cout<<","<<ii;}}return 0;}32:求分数序列和#include<iostream>#include<string>using namespace std;int main(){int n;cin>>n;double t,a=2,b=1,sum=2;for(int i=1;i<n;++i){t=a;a=a+b;b=t;sum+=a/b;}printf("%.4f",sum);return 0;}今天就到这⼉,留了点尾巴后天再收33:计算分数加减表达式的值#include<iostream>#include<string>using namespace std;int main(){int n;cin>>n;double sum=0;for(int i=1;i<=n;++i){if(i%2){sum+=1.0/i;}else{sum+=-1.0/i;}}printf("%.4f",sum);return 0;}34:求阶乘的和#include<iostream>#include<string>using namespace std;int main(){int n;cin>>n;int t=1,sum=0;for(int i=1;i<=n;++i){t*=i;sum+=t;}printf("%d",sum);return 0;}35:求出e的值#include<iostream>#include<string>using namespace std;int main(){int n;cin>>n;double t=1,sum=1;for(int i=1;i<=n;++i){t*=i;sum+=1.0/t;}printf("%.10f",sum);return 0;}36:计算多项式的值 #include<iostream>#include<cmath>using namespace std;int main(){int n;float x;cin>>x>>n;float t=1,sum=1;for(int i=1;i<=n;++i){sum+=pow(x,i);}printf("%.2f",sum);return 0;}37: 雇佣兵 #include<iostream>#include<cmath>using namespace std;int main(){int n,m,x;int a=0,b=0,c=0;cin>>m>>n>>x;b=n;for(int i=x-1;i>=0&&m>=b;--i){a+=b;// cout<<">>体⼒="<<a<<"战⽃⼒="<<b<<"能量元素="<<i<<endl; if(a>=m)b+=m/b;a=0;}// cout<<"<<体⼒="<<a<<"战⽃⼒="<<b<<"能量元素="<<i<<endl;}cout<<b;return 0;}38:计算多项式的导函数【这题⽓死我了,他没有外循环,给的是三个不同情况下的样例】#include<iostream>#include<cmath>using namespace std;int main(){int n,m,x,j;int a=0,b=0,c=0;// cin>>n;// for(int i=0;i<n;++i)// {cin>>m;//输⼊最⾼次if(m==0){cin>>x;cout<<0<<endl;}else{for(j=m;j>0;--j){cin>>x;if(j==m){cout<<x*m;}else{cout<<" "<<x*j;}}cin>>x;cout<<endl;}// }return 0;}39: 与7⽆关的数#include<iostream>#include<cmath>using namespace std;bool function(int i){while(i){if(i%10==7){return true;}i/=10;}return false;}int main(){int n,x;long long sum=0;cin>>n;for(int i=1;i<=n;++i){if(!(i%7==0||function(i))){sum+=i*i;}}cout<<sum;return 0;}40:数1的个数#include<iostream>#include<cmath>using namespace std;void function(int i,int &count){while(i){if(i%10==1){++count;}int main(){int n,x;int sum=0;cin>>n;for(int i=1;i<=n;++i){function(i,sum);}cout<<sum;return 0;}41:数字统计#include<iostream>#include<cmath>using namespace std;void function(int i,int &count) {while(i){if(i%10==2){++count;}i/=10;}}int main(){int L,R;int sum=0;cin>>L>>R;for(int i=L;i<=R;++i){function(i,sum);}cout<<sum;return 0;}42:画矩形#include<iostream>#include<cmath>using namespace std;int main(){int w,h;cin>>h>>w;char tag;cin>>tag;int c;cin>>c;if(c){for(int i=0;i<h;++i){for(int ii=0;ii<w;++ii){cout<<tag;}cout<<endl;}}else{if(w==1&&h==1){cout<<tag;}else{for(int i=0;i<w;++i)cout<<tag; cout<<endl;for(int i=1;i<h-1;++i){cout<<tag;for(int ii=1;ii<w-1;++ii){cout<<" ";}cout<<tag<<endl;}for(int ii=0;ii<w;++ii){cout<<tag;}}}43:质因数分解#include<bits/stdc++.h>using namespace std;int main(){int a;cin>>a;for(int i=2; i<=sqrt(a); i++){if(a%i==0){cout<<a/i;}}}44:第n⼩的质数【纯属套模板】#include<bits/stdc++.h>using namespace std;int a[10000000],i,j,p[10001],t=1,n;int main(){cin>>n;a[1]=1;for(i=2;i<=1000000;i++){if(!a[i]){p[t]=i;if(t==n){cout<<p[n];return 0;}t++;}for(j=1;j<=t&&i*p[j]<=1000000;j++){a[i*p[j]]=1;if(i%p[j]==0)break;}}return 0;}45:⾦币【找规律的题】#include<iostream>#include<cmath>#define MAX 10000using namespace std;int main(){int n,day=0,sum=0;cin>>n;for(int j=1;day<=n;++j){day+=j;// cout<<"day:"<<day-j<<"+"<<j<<"="<<day<<endl; if(n>=day){sum+=j*j;}else{sum+=j*(n-day+j);}}cout<<sum;return 0;}。
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%还给津津。