程序设计大赛试题及答案

合集下载

第六届蓝桥杯程序设计大赛题目及答案

第六届蓝桥杯程序设计大赛题目及答案

第六届省赛1.方程整数解方程: a^2 + b^2 + c^2 = 1000(或参见【图1.jpg】)这个方程有整数解吗?有:a,b,c=6,8,30 就是一组解。

你能算出另一组合适的解吗?请填写该解中最小的数字。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

10#include<stdio.h>int main(){int a,b,c;for(a=1;a*a<=1000;a++){for(b=1;b*b<=1000;b++){for(c=1;c*c<=1000;c++){if(a*a+b*b+c*c==1000){printf("%d %d %d\n",a,b,c);}}}}return 0;}2.星系炸弹在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。

每个炸弹都可以设定多少天之后爆炸。

比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。

有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。

请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。

比如:2015-02-19 请严格按照格式书写。

不能出现其它文字或符号。

2017-08-05#include <stdio.h>int main(){int monthDays[12]={31,28,31,30,31,30,31,31,30,31,30,31};int days=1000;int year=2014, month=11, day=9;int i;for(i=0;i<days;i++){day++;if(day>monthDays[month-1]){day=1;month++;if(month>12){month=1;year++;if((year%400==0) ||(year%4==0 && year%100!=0))monthDays[1]=29;elsemonthDays[1]=28;}}}printf("%d-%d-%d\n",year,month,day);getchar();return 0;}3.奇妙的数字小明发现了一个奇妙的数字。

程序设计竞赛试题和题解

程序设计竞赛试题和题解

程序设计竞赛试题和题解付浩fuch@Contents完全平方数 (2)拉丁方阵 (3)取石子游戏 (5)乡村医院 (7)未知星球 (9)无聊的游戏 (10)最短路径 (12)完全平方数描述一个非负整数n是完全平方数当且仅当存在非负整数m,使得n=m2据说完全平方数具有某种神奇的力量,谁知道呢。

聪明的你一定想到了,这道题的任务就是编写一个程序,判断给定的n是否是完全平方数。

输入格式输入包含多组数据。

每组数据占一行,包含一个非负整数n,n不超过109输入以n=-1结束输出格式对每组输入数据输出一行,如果n是完全平方数则输出”Yes”,否则输出”No”输入样例1234-1输出样例YesYesNoNoYes解答一般的语言都有开平方运算吧?拉丁方阵描述拉丁方阵是一种n×n的方阵,方阵中恰有n种不同的元素,每种元素恰有n个,并且每种元素在一行和一列中恰好出现一次。

著名数学家和物理学家欧拉使用拉丁字母来作为拉丁方阵里元素的符号,拉丁方阵因此而得名。

例如下图是一个3×3的拉丁方阵:如果一个拉丁方阵的第一行和第一列按照元素的先后顺序来排列,那么这称为拉丁方阵的标准型,例如下图就是一个3x3的拉丁方阵标准型,第一行和第一列都是”1 2 3”。

你的任务是,编写一个程序读入一个方阵,判断其是否为拉丁方阵;进一步地,判断是否为标准型。

输入格式输入包含多组数据。

每组数据第一行为正整数n,表示方阵的大小。

其后n行,每行有n个1到n之间的整数,整数之间恰有一个空格,表示方阵的内容。

输入保证1≤n≤100输入以n=0结束,不要处理这个数据。

输出格式每组数据对应于一行输出。

如果输入是拉丁方阵,但不是标准型则输出1;如果输入是标准型则输出2;如果输入不是拉丁方阵则输出0输入样例21 12 233 2 12 1 31 3 231 2 33 2 12 1 254 35 2 15 4 1 3 21 52 4 32 13 5 43 24 15 31 2 32 3 13 1 2输出样例112解答按定义做判断。

【职业技能大赛计算机程序设计员赛项】理论试题及参考答案

【职业技能大赛计算机程序设计员赛项】理论试题及参考答案

【职业技能大赛计算机程序设计员赛项】理论试卷注 意 事 项1、本试卷依据计算机程序设计员国家职业标准命制,考试时间:60分钟。

2、请在试卷标封处填写姓名、准考证号和所在单位的名称。

3、请仔细阅读答题要求,用碳素笔或钢笔在规定位置填写答案。

一、单项选择(第1题~第60题,每题1分,共60分。

)1.操作系统是对( )进行管理的软件。

A 、软件B 、硬件C 、计算机资源D 、应用程序 2.现代操作系统的两个基本特征是( )和资源共享。

A 、多道程序设计B 、实现分时与实时处理C 、程序的并发执行D 、中断处理3.计算机系统中用来连接CPU 、内存储器和I/O 接口的总线称为系统总线。

( )总线属于系统总线技术的一种。

A 、IEEE1394B 、PCIC 、RS-232D 、USB 4.下列不属于网络操作系统的是( )。

A 、Windows NTB 、DOSC 、LinuxD 、NetWare 5.下面哪一个是有效的IP 地址( )。

A 、202.280.130.45B 、192.202.130.45C 、280.192.33.45D 、130.192.290.45 6.在Word 中,如果要选择多处不连续的文本,可以( )。

A 、按住Shift 键不放,用鼠标分别选中欲选择的文本 B 、按住Alt 键不放,用鼠标分别选中欲选择的文本 C 、按住Ctrl 键不放,用鼠标分别选中欲选择的文本 D 、无法做到7.在Excel 工作表中,假定C3:C6区域内保存的数值依次为10、15、20、45,则函数=AVERAGE(C3:C6)的值为( )。

A 、22B 、22.5C 、45D 、90 8.在一棵具有n 个结点的完全二叉树中,分枝结点的最大编号为( )。

A 、((n+1)/2)上限取整B 、((n+1)/2)下限取整C 、(n/2)下限取整D 、((n-1)/2)上限取整 9.设某棵三叉树中有40个结点,则该三叉树的最小高度为( )。

第八届程序设计大赛初赛试题及答案

第八届程序设计大赛初赛试题及答案

第八届程序设计大赛初赛试题说明:请将所有答案写到试卷第1页及第2页。

一、读程序写结果(40分)1、(5分)2、(5分)3、(10分)结果:结果:结果:4、(10分)5、(5分)6、(5分)结果:结果:结果:二、代码填空(30分)1、(5分)2、(5分)空一:____acm / lg (5分)空一:if(begin>end) return (5分)3、(12分)4、(8分)空一:siruan /= 10 (3分)空一:s[i] - '0' (4分)空二:hm - lg (3分)空二:siruan[sum % 11] (4分)空三:lghm = acm(lghm) (6分)三、思维题(15分)数据1:T1=1,T2=2,T3=3,T4 = 4 数据2:T1=1,T2=2,T3=5,T4 = 10 答案:(acm)1 2->(siruan) 2min 答案:(acm)1 2->(siruan) 2min (acm) <-1 (siruan) 1min (acm) <-1 (siruan) 1min(acm) 1 3->(siruan) 3min (acm) 5 10->(siruan) 10min(acm) <-1 (siruan) 1min (acm) <-2 (siruan) 2min(acm) 1 4-> (siruan) 4min (acm) 1 2-> (siruan) 2min最短时间:2+1+3+1+4 = 11min 最短时间:2+1+10+2+2 = 17min数据3:T1 = 5,T2 = 2,T3=1,T4=10,T5=8 答案:(acm)1 2->(siruan) 2min(acm) <-1 (siruan) 1min(acm) 8 10->(siruan) 10min(acm) <-2 (siruan) 2min(acm) 1 2-> (siruan) 2min(acm) <-1 (siruan) 1min(acm) 1 5 ->(siruan) 5min最短时间:2+1+10+2+2+1+5 = 23min四、编程题(15分)程序代码:#include<stdio.h>#include<string.h>int s[110];int main(){int i;int a, n, m;while (scanf("%d%d", &a, &n)!=EOF){memset(s, 0x00, sizeof(s));m = n;for (i=0; i<m; i++){s[i] += a * (n--);s[i+1] = s[i] / 10;s[i] %= 10;}if (s[m]) printf("%d", s[i]);for (i=m-1; i>=0; i--)printf("%d", s[i]);printf("\n");}return 0;}一、读程序写结果(40分)1、(5分)#include <stdio.h>int main(){char acm[] = "I love acm!";char siruan[] = "I love siruan!";char def[] = "Welcome to join us!";int chose = 0;switch (chose){case 0: printf("%s\n", acm);case 1: printf("%s\n", siruan);default : printf("%s", def);}return 0;}输出结果:2.(5分)#include <stdio.h>int main(){int acm = 0, siruan = 1;if (acm = siruan) printf("%s", "May you success!");else printf("%s", "May you success,too!");return 0;}输出结果:3.(10分)#include <stdio.h>#include <math.h>int main(){int i,j,k,n;char lghm[14]="ILOVEACMSIRUAN";n = 3;for (i=0; i<n-1; i++) printf(" ");printf("%c\n",lghm[0]);for (i=1; i<n; i++){for (j=abs(n-i-1); j>0; j--) //abs(n)返回值为整形n的绝对值printf(" ");printf("%c",lghm[2*i-1]);for (k=1; k<=2*i-1; k++) printf(" ");printf("%c\n",lghm[2*i]);}for (i=n; i<=2*n-3; i++){for (j=abs(n-i-1); j>0; j--) printf(" ");printf("%c",lghm[2*i-1]);for (k=1; k<=4*n-5-2*i; k++) printf(" ");printf("%c\n",lghm[2*i]);}for (i=0; i<n-1; i++) printf(" ");printf("%c\n",lghm[4*n-5]);return 0;}输出结果:4.(10分)#include <stdio.h>#include <string.h>struct Student{char name[20];int num;} stu[5];{stu[0].num = 521; strcpy(stu[0].name, "sichuan wenchuan");stu[1].num = 521; strcpy(stu[1].name, "bless");stu[2].num = 420; strcpy(stu[2].name, "sichuan yaan");stu[3].num = 420; strcpy(stu[3].name, "love");stu[4].num = 420; strcpy(stu[4].name, "god");}void swap(int a, int b){struct Student tmp;tmp.num = stu[a].num;stu[a].num = stu[b].num;stu[b].num = tmp.num;strcpy(, stu[a].name);strcpy(stu[a].name, stu[b].name);strcpy(stu[b].name, );}void bubble_sort(int n){int i,j,flag,temp;for(i = 0; i < n-1; i++){flag = 1;for(j = 0; j < n-i-1; j++){if(stu[j].num > stu[j+1].num){swap(j, j+1);flag = 0;}else if (stu[j].num == stu[j+1].num && strcmp(stu[j].name,stu[j+1].name)<0){ swap(j, j+1);}}if(flag) break;}}int main(){init();bubble_sort(5);for (i=0; i<5; i++)printf("%-4d%s\n", stu[i].num, stu[i].name);return 0;}输出结果:6.(5分)#include <stdio.h>int acm(){int lg = 1314520;int hm = 0;while(lg > 0){hm = hm * 10 + lg % 10;lg /= 10;}return hm;}int main(){int siruan = acm();printf("%d", siruan);return 0;}输出结果:二、代码填空(30分)1.(5)如果没有计算器,我们如何求3的平方根?可以先猜测一个数,比如1.5,然后用3除以这个数字。

程序设计题库及答案详解

程序设计题库及答案详解

程序设计题库及答案详解一、选择题1. 下列哪个选项不是面向对象编程的三大特性?A. 封装B. 继承C. 多态D. 过程化答案:D2. 在Java中,以下哪个关键字用于定义类?A. classB. interfaceC. enumD. struct答案:A3. 以下哪个是Python中的循环结构?A. forB. whileC. both A and BD. none of the above答案:C二、填空题1. 程序设计中的________是用来定义数据的属性和方法的集合。

2. 在C语言中,________关键字用于声明一个函数。

答案:void 或者 int(根据函数返回类型而定)3. 在JavaScript中,________方法用于将字符串转换为数字。

答案:parseInt 或 parseFloat(根据转换类型而定)三、简答题1. 请简述什么是递归函数,并给出一个简单的递归函数示例。

答案:递归函数是指在函数内部调用自身的函数。

递归函数通常用于解决可以分解为相同问题的子问题的问题。

以下是一个计算阶乘的递归函数示例:```cint factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}```2. 解释什么是堆栈,并说明它们在程序设计中的应用。

答案:堆栈是两种不同的数据结构。

堆是一种优先队列,其中最大或最小元素可以在对数时间内被找到。

栈是一种遵循后进先出(LIFO)原则的数据结构。

在程序设计中,堆栈广泛应用于内存管理、函数调用、表达式求值、回溯算法等领域。

四、编程题1. 编写一个函数,实现字符串的反转。

```pythondef reverse_string(s):return s[::-1]```2. 给定一个整数数组nums,请找出数组中最长递增子序列的长度。

答案:```pythondef lengthOfLIS(nums):if not nums: return 0dp = [1] * len(nums)for i in range(1, len(nums)):for j in range(i):if nums[i] > nums[j]:dp[i] = max(dp[i], dp[j] + 1)return max(dp)```五、案例分析题1. 描述一个场景,其中使用多线程可以提高程序的效率,并解释为什么。

VisualBasic程序设计》试题及其答案

VisualBasic程序设计》试题及其答案

一、填空题(每题1分,共10分)1.把数学式子:ο25sin 21π+写成VB 的数值表达式为( Sqr(1+3.14159/2*Sin(25*3.14159/180)) )。

2.设A=5,B=6,C=7,D=8,表达式3>2*B OR A=C AND B<>C OR C>D 的值是( True )。

3.若Case 子句中的表达式表列具有形式:<表达式1> To <表达式2>,则它的含义是:当测试表达式的值等于( 指定范围内的值 )时,执行该Case 子句相应的语句块。

4.执行下面的程序段后,x 的值为( 12 )。

x=0For i=1 To 8 Step 3x=x+iNext i5.在图片框上放置的控件称为图片框的( 子 )对象,而窗体是图片框的( 父 )对象。

6.将命令按钮Command1的Caption 属性值赋给文本框Text1的Text 属性使用的语句为( Text1.Text=Command1.Caption )7.复选框的Value 属性为( 1 )时,表示复选框被选中。

8. 使用滚动条可以获取某一范围内的数值输入。

为使垂直滚动条的Value 属性值从下往上递增变化,应设置滚动条Min 属性值大于( Max )属性值。

9.语句:Dim A(-3 to 4) as Integer 定义的一维数组A 的元素个数是( 8 )。

10.给定如下子过程:Function fun(ByVal num As Long) As LongDim k As Long,i As Integerk=1For i=1 To numk=k*iNext iEnd Function执行语句Print fun(5) 后在窗体上显示的结果为(0)。

二、单项选择题(每题1.5分,共30分)1.装载窗体是窗体的( C )。

A) 对象 B) 属性 C) 事件 D) 方法2.设a="Visual Basic",下面使b的值为"Basic"的赋值语句正确的是( B )。

百度之星Astar2012程序设计大赛初赛试题及参考答案

百度之星Astar2012程序设计大赛初赛试题及参考答案

百度之星Astar2021程序设计大赛初赛试题〔第一场〕————及B题答案比赛说明百度之星初赛:2021年6月2日、6月3日10:00Am~12:00Pm本次大赛的初赛的初赛采取在线答题、编译,离线判题的形式,选手报名后,可以在6月2日、6月3日任选一天参加比赛,也可选择两场都参加。

针对每题,交题后,系统将给出程序编译是否正确的结果,但不会给出程序是否通过全部测试数据的评价;当场比赛完毕后,所有选手的针对每题所写的程序将被离线评判,每题根据程序通过测试数据的数目计算得分。

每场初赛根据单场所有题目总分计算成绩,选出当场成绩在前400名的选手进入复赛〔第一场已经进入复赛的选手参加第二场比赛如果再次晋级,将被不在第二场参与排名〕。

2021年6月2日,2021百度之星Astar2021程序设计大赛初赛翻开大幕。

这里提供了初赛第一场的题目,供有未进初赛和其它有兴趣的朋友研究。

初赛第一场共4题。

分别是度度熊就是要第一个出场、小小度刷礼品、集合的交与并、轮子上的度度熊。

目录比赛说明······················· 1·A:度度熊就是要第一个出场·············· 2·B:小小度刷礼品··················· 5·C:集合的交与并····················6·D:轮子上的度度熊···················6·A:度度熊就是要第一个出场题目描述Baidu年会安排了一场时装秀节目。

《Visual_Basic程序设计》试题及其答案

《Visual_Basic程序设计》试题及其答案

《Visual_Basic程序设计》试题及其答案Visual_Basic程序设计试题及其答案Visual_Basic程序设计是一门与Windows操作系统密切相关的编程语言,广泛应用于图形用户界面(GUI)的开发。

下面是一套Visual_Basic程序设计的试题,以及详细的答案解析。

一、概念题(共10题,每题2分,共20分)1. 什么是Visual_Basic程序设计?答案:Visual_Basic程序设计是一种基于BASIC语言的集成开发环境(IDE),用于Windows平台的程序开发和编程。

2. Visual_Basic程序设计的特点是什么?答案:Visual_Basic具有简单易学、图形化编程界面、可视化设计、事件驱动等特点。

3. 什么是控件?答案:控件是Visual_Basic程序设计中用于构建用户界面的基本元素,如按钮、文本框、标签等。

4. Visual_Basic程序中的数据类型有哪些?答案:Visual_Basic支持多种数据类型,包括整数、浮点数、字符串、布尔值等。

5. 什么是条件结构?答案:条件结构是一种根据不同条件执行不同操作的程序结构,如If语句和Select Case语句。

6. 什么是循环结构?答案:循环结构是一种重复执行特定操作的程序结构,如For循环和While循环。

7. 什么是函数?答案:函数是一段可重复调用的代码,通常用于实现特定功能,并可以返回结果。

8. 如何定义和调用函数?答案:在Visual_Basic中,可以使用Function关键字定义函数,并使用函数名调用函数。

9. 什么是异常处理?答案:异常处理是一种处理程序运行过程中可能出现的错误或异常情况的机制,以保证程序的稳定性。

10. Visual_Basic程序如何进行调试?答案:Visual_Basic提供了丰富的调试工具,包括断点调试、单步调试等,以帮助程序员发现和解决问题。

二、编程题(共2题,每题40分,共80分)题目一:设计一个Visual_Basic程序,实现计算器的基本功能。

C语言程序设计大赛题目和答案

C语言程序设计大赛题目和答案

C语言程序设计大赛题目和答案/*-------------------第一题某人到商店购物,身上有钱m元,商店里有商品n件,如果只能买1件或2件商品,且想一次性把钱花完,编程求是否可行?输入数据:第一行输入两个整数n和m(1≤n≤30000,1≤m≤10000),下面n行中每一行都是一个整数a,表示商店中商品的价格,1≤a≤10000。

输出数据:如果可以恰好用m元钱买到1件或者是2件东西,则第一行输出YES,随后的一行或两行输出所买商品的价格;否则输出NO。

输入样例:5 201371318输出样例:YES713-----------------------*/#include <stdio.h>#include <malloc.h>void main(){int m, n;int *a;int i,j;scanf("%d%d",&n,&m); //输入商品数及钱的多少a=(int*)malloc(n*sizeof(int));for(i=0;i<n;i++) scanf("%d",a+i); //输入每件商品的价格for(i=0;i<n;i++)if(a[i]==m) {printf("%s\n%d\n","YES",a[i]); break;}elsefor(j=i+1;j<n;j++)if(a[i]+a[j]==m){printf("%s\n%d\n%d\n","YES",a[i],a[j]); return;}if (i==n) printf("\nNO\n");}/*----------------------第二题写出一个程序,接受一个以N/D的形式输入的分数,其中N为分子,D为分母,输出它的小数形式。

程序设计大赛试题及答案

程序设计大赛试题及答案

试题1、数学黑洞(程序文件名maths.c/maths.cpp)【问题描述】任给一个4位正整数,其各位数位上的数字不全相同,将数字重新组合成一个最大的数与最小的数相减,重复这个过程,最多7步,必得6174。

对任给的4位正整数(各位数位上的数字不全相同),编程输出掉进黑洞的步数。

【输入】一行,一个4位正整数n(1000< n<9999)【输出】掉进黑洞的步数输入1234输出32、进制转换(程序文件名conver.c/conver.cpp)【问题描述】任给一个十进制整数n,及正整数m(m<=16且m≠10), 将n转换成m进制并输出。

【输入】一行,两个整数n,m(0 ≤ n ≤ 500000,2 ≤ m ≤ 16,且m≠10),中间用一个空格隔开,其中n 表示十进制数。

【输出】转换后的数【输入输出样例】输入255 8输出3773、分数线划定(程序文件名score.c/score.cpp)【问题描述】公务员选拔工作正在 A 市如火如荼的进行。

为了选拔优秀人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。

面试分数线根据计划录取人数的150%划定,即如果计划录取m名公务员,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。

现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。

【输入】第一行,两个整数n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n),中间用一个空格隔开,其中n 表示报名参加笔试的选手总数,m 表示计划录取的人数。

输入数据保证m*150%向下取整后小于等于n。

第二行到第 n+1 行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号k(1000 ≤ k ≤ 9999)和该选手的笔试成绩s(1 ≤ s ≤ 100)。

数据保证选手的报名号各不相同。

第二届程序设计大赛题目

第二届程序设计大赛题目

1 数字的游戏输入文件名:gaspar.in 输出文件名:estdout.pc2问题描述:N个教徒和N个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是他们想了一个办法:2N个人围成一圈,从第一个人开始依次循环报数,每数到第9个人就将他扔进大海,如此循环直到只剩下N个人为止。

问怎样的站法,才能使得每次投入大海的都是非教徒。

输入:输入文件由一行构成,就是N的值输出:输出文件是一行字符串,字符串由N个'@'字符(代表教徒)和N个'+'字符(代表非教徒)排列组成。

该排列使得按照提述方法每次投入大海的都是非教徒。

输入样本:15输出样本:@@@@+++++@@+@@@+@++@@+++@++@@+2 翻译输入文件:trans.in 输出文件:estdout.pc2问题描述:小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。

这个软件的原理很简单,他只是从头到尾,一次将每个单词用对应的中文含义来替换。

对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它来翻译;如果内存中没有,软件就会在外存中的词典里查找,查出单词的中文含义然后翻译,并将这个单词和含义放入内存,以备后续查找和翻译。

假设内存中有M个单元,每个单元能存放一个单词和含义。

每当软件将一个新单词存入内存前,如果当前内存中已经存入的单词数不超过M,软件会将新单词存入下一个未使用的内存单元;若内存中已存入M个单词,软件会清空最早进入内存的那个单词,腾出单元来,存放新单词。

假设一篇英语文章长度为N个单词,给定这篇待译文章,翻译软件需要去外存查找多少次词典?假设在翻译开始前,内存中没有任何单词。

输入:多组数据,每组数据共2行。

每行中两个数之间用一个空格隔开。

第一行为两个正整数M和N(0<M<=100,0<N<=1000),代表内存容量和文章长度。

第七届蓝桥杯程序设计大赛题目及答案

第七届蓝桥杯程序设计大赛题目及答案

第七届省赛1. 网友年龄某君新认识一网友。

当问及年龄时,他的网友说:“我的年龄是个2 位数,我比儿子大27 岁, 如果把我的年龄的两位数字交换位置,刚好就是我儿子的年龄”请你计算:网友的年龄一共有多少种可能情况?提示:30 岁就是其中一种可能哦.请填写表示可能情况的种数。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

7x-y=32. 生日蜡烛某君从某年开始每年都举办一次生日party ,并且每次都要吹熄与年龄相同根数的蜡烛现在算起来,他一共吹熄了236 根蜡烛。

请问,他从多少岁开始过生日party 的?请填写他开始过生日party 的年龄数。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

26 #include<iostream> using namespace std;int main(){int i,j;int sum=0; for(i=1;i<=100;i++){ // 年龄sum=0; for(j=i;j<=100;j++){ // 蜡烛数sum=sum+j;if(sum==236){ cout<<i<<endl;break;}}}}3. 方格填数如下的10 个格子填入0~9 的数字。

要求:连续的两个数字不能相邻。

(左右、上下、对角都算相邻) 一共有多少种可能的填数方案?请填写表示方案数目的整数。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

// 用dfs 求#include<iostream> #include<cstring> #include<cmath> using namespace std;const int maxn=4;int mp[maxn][maxn];int flag[10];int ans=0;int init() {memset(mp,-10, sizeof mp); memset(flag,0, sizeof flag);}int fx[4]= {0,-1,-1,-1},fy[4]= {-1,-1,0,1};int check(int i,int j) {for(int f=0; f<4; f++) {if(abs(mp[i][j]-mp[i+fx[f]][j+fy[f]])!=1||i+fx[f]<1||j+fy[f]>4||j+fy[f]<1 ) continue;elsereturn 0;}return 1;}void dfs(int i,int j) {if(i==3&&j==4) {ans++;return ;}for(int num=0; num<=9; num++) {if(!flag[num]) { mp[i][j]=num; flag[num]=1; if(check(i,j)) if(j==4) dfs(i+1,1);elsedfs(i,j+1); flag[num]=0;}}}int main() {init();dfs(1,2);cout<<ans;}// 暴力求解#include <iostream>using namespace std;int ans=0;void swap(int *a,int *b){int *c;c=a;a=b;b=c;}int f(int a[])// 判断这种排列组合是否符合题意{if(a[0]-a[4]==-1||a[0]-a[4]==1) return 0;if(a[3]-a[4]==-1||a[3]-a[4]==1) return 0;if(a[5]-a[4]==-1||a[5]-a[4]==1) return 0;if(a[7]-a[4]==-1||a[7]-a[4]==1)return 0;if(a[8]-a[4]==-1||a[8]-a[4]==1)return 0;if(a[9]-a[4]==-1||a[9]-a[4]==1)return 0;if(a[1]-a[4]==-1||a[1]-a[4]==1)return 0;if(a[1]-a[5]==-1||a[1]-a[5]==1)return 0;if(a[1]-a[6]==-1||a[1]-a[6]==1)return 0;if(a[0]-a[5]==-1||a[0]-a[5]==1)return 0;if(a[2]-a[5]==-1||a[2]-a[5]==1)return 0;if(a[8]-a[5]==-1||a[8]-a[5]==1)return 0;if(a[9]-a[5]==-1||a[9]-a[5]==1)return 0;if(a[6]-a[5]==-1||a[6]-a[5]==1)return 0;if(a[6]-a[9]==-1||a[6]-a[9]==1)return 0;if(a[6]-a[2]==-1||a[6]-a[2]==1)return 0;if(a[3]-a[0]==-1||a[3]-a[0]==1)return 0;if(a[3]-a[7]==-1||a[3]-a[7]==1)return 0;if(a[8]-a[7]==-1||a[8]-a[7]==1)return 0;if(a[8]-a[3]==-1||a[8]-a[3]==1)return 0;if(a[9]-a[8]==-1||a[9]-a[8]==1)return 0;if(a[1]-a[0]==-1||a[1]-a[0]==1)return 0;if(a[1]-a[2]==-1||a[1]-a[2]==1)return 0;}void perm(int a[],int m,int len)//列举出0-9 所有的组合进行判断{if(m==len-1){if(f(a)) ans++;return ;}for(int i=m;i<len;i++){swap(a[m],a[i]); perm(a,m+1,len); swap(a[m],a[i]);} } int main() {int a[10] = {0,1,2,3,4,5,6,7,8,9}; perm(a,0,10);cout<<ans<<endl; return 0;}4. 快速排序排序在各种场合经常被用到。

第八届蓝桥杯程序设计大赛题目及答案

第八届蓝桥杯程序设计大赛题目及答案

第八届省赛1.标题:迷宫X星球的一处迷宫游乐场建在某个小山坡上。

它是由10x10相互连通的小房间组成的。

房间的地板上写着一个很大的字母。

我们假设玩家是面朝上坡的方向站立,则:L表示走到左边的房间,R表示走到右边的房间,U表示走到上坡方向的房间,D表示走到下坡方向的房间。

X星球的居民有点懒,不愿意费力思考。

他们更喜欢玩运气类的游戏。

这个游戏也是如此!开始的时候,直升机把100名玩家放入一个个小房间内。

玩家一定要按照地上的字母移动。

迷宫地图如下:------------UDDLUULRULUURLLLRRRURRUURLDLRDRUDDDDUUUUURUDLLRRUUDURLRLDLRLULLURLLRDURDLULLRDDDUUDDUDUDLLULRDLUURRR445r------------请你计算一下,最后,有多少玩家会走出迷宫?而不是在里边兜圈子。

请提交该整数,表示走出迷宫的玩家数目,不要填写任何多余的内容。

如果你还没明白游戏规则,可以参看一个简化的4x4迷宫的解说图:p1.png31#include <iostream>using namespace std;char map[10][10];bool visited[10][10];void initMap(){stringstr="UDDLUULRULUURLLLRRRURRUURLDLRDRUDDDDUUUUURUDLLRRUUDURLRLDLRLULLURLLRDU RDLULLRDDDUUDDUDUDLLULRDLUURRR";for(int i=0;i<10;i++)for(int j=0;j<10;j++){map[i][j]=str[i*10+j];}}void initVis(){for(int i=0;i<10;i++)for(int j=0;j<10;j++)visited[i][j]=false;}int main(){int cnt=0;initMap();for(int i=0;i<10;i++)for(int j=0;j<10;j++){int ii=i,jj=j;initVis();while(1){ //循环判断Ï(ii,jj)if(visited[ii][jj])break;if(ii<0 || ii>9 || jj<0 || jj>9){cnt++;break;}visited[ii][jj]=true;switch (map[ii][jj]) {case 'U':ii-=1;break;case 'D':ii+=1;break;case 'L':jj-=1;break;case 'R':jj+=1;break;default:break;}}}cout<<cnt<<endl;return 0;}}}cout<<cnt<<endl;return 0;}2.标题:跳蚱蜢如图 p1.png 所示:有9只盘子,排成1个圆圈。

“华为杯”研究生程序设计大赛笔试题及答案

“华为杯”研究生程序设计大赛笔试题及答案

15693135.xls文档密级:序号类型题目1判断题理论上利用栈可以将任何递归算法改为非递归算法。

2判断题在冒泡排序中,关键字都是朝着某个方向移动。

3判断题应当尽可能设计功能全面、灵活的数据结构,以提高效率4判断题断言可以用来处理程序的任何错误情况。

5判断题若两个结构间关系较复杂、密切,那么应合为一个结构。

6判断题#pragma指令可激活或者终止编译程序所支持的一些编译功能。

7判断题全局变量定义在被多个.C文件包含着的头文件中,是不符合规范的。

8判断题父类的析构函数是非虚的,但是子类的析构函数是虚的,delete子类9判断题在静态成员函数内部可以直接访问类的所有成员变量和成员函数。

10判断题二叉树的前序、中序、后序遍历常用递归方式实现。

1单选题二分查找有序表(6,15,30,37,65,68,70,72,89,99),若查找元素37,需依次与表中元素(D)进行比较。

A. 65,15,37B. 68,30,37C. 65,15,30D. 65,15,30,372单选题对于下面的类CA,在32位计算机、4字节对齐的情况下,sizeof(CA) = ____:class CA{public:CA();virtual ~CA();private:int m_iTime;public:int GetTime();int SetTime(int iTime);};3单选题下面对的描述正确的是:A.父类的友元类可以访问子类保护成员B.子类的友元类可以访问父类的私有成员C.子类可以访问父类的保护成员D.父类可以访问子类的保护成员4单选题在系统实现递归调用时需利用递归工作记录保存实际参数的值。

在传值参数情形,需为对应形式参数分配空间,以存放实际参数的副本;在引用参数情形,需保存实际参数的( ),在被调用程序中可直接操纵实际参数。

A、空间B、副本C、返回地址D、地址5单选题下面那种情形下myfunc函数声明是重载?A. int myfunc(int a,double b) 和 double myfunc(int a, double b)B. int myfunc(int a,double b) 和 int myfunc(int a,double b=0.5)C. int myfunc(int a,double b) 和 int myfunc(double b,int a)D. int myfunc(int a,double b) 和 double myfunc(int , double )6单选题#include < iostream.h>class A {public:virtual void f() { cout<<"A::f()\n"; } };class B:public A{private:char *buf;public:7单选题下面哪种变量定义不当,可能导致堆栈溢出?A、静态全局变量B、动态全局变量C、静态局部变量D、动态局部变量8单选题在一个请求页式存储管理中,一个程序的页面走向为4、3、2、1、3、5、4、3、2、1、5,并采用LUR算法。

java程序设计试题及答案

java程序设计试题及答案

java程序设计试题及答案一、选择题(每题2分,共20分)1. 在Java中,下列哪个关键字用于定义类?A. classB. structC. interfaceD. enum答案:A2. 下列哪个选项不是Java的基本数据类型?A. intB. doubleC. StringD. float答案:C3. Java中,哪个关键字用于捕获异常?A. tryB. catchC. throwD. finally答案:B4. 在Java中,下列哪个选项不是合法的变量名?A. _nameB. $nameC. nameD. 2name答案:D5. 下列哪个选项不是Java的访问修饰符?A. publicB. protectedC. privateD. static答案:D6. Java中,下列哪个选项不是集合框架的一部分?A. ListB. SetC. MapD. Stream答案:D7. 在Java中,下列哪个关键字用于定义接口?A. classB. structC. interfaceD. enum答案:C8. 下列哪个选项不是Java的异常处理关键字?A. tryB. catchC. throwD. implements答案:D9. 在Java中,下列哪个选项不是线程的生命周期状态?A. NewB. RunnableC. BlockedD. Dead答案:C10. 下列哪个选项不是Java的泛型类型?A. ListB. SetC. MapD. Object答案:D二、填空题(每题2分,共20分)1. Java中的“Hello World”程序需要继承________类。

答案:Object2. Java中,一个方法的返回类型是________。

答案:void3. 在Java中,________关键字用于定义包。

答案:package4. Java中,________关键字用于定义接口。

答案:interface5. Java中,________关键字用于实现多态。

程序设计大赛试题及答案

程序设计大赛试题及答案

试题1、数学黑洞(程序文件名)【问题描述】任给一个4位正整数,其各位数位上的数字不全相同,将数字重新组合成一个最大的数与最小的数相减,重复这个过程,最多7步,必得6174。

对任给的4位正整数(各位数位上的数字不全相同),编程输出掉进黑洞的步数。

【输入】一行,一个4位正整数n(1000< n<9999)【输出】掉进黑洞的步数输入1234输出32、进制转换(程序文件名)【问题描述】任给一个十进制整数n,及正整数m(m<=16且m≠10), 将n转换成m进制并输出。

【输入】一行,两个整数n,m(0 ≤ n ≤ 500000,2 ≤ m ≤ 16,且m≠10),中间用一个空格隔开,其中n 表示十进制数。

【输出】转换后的数【输入输出样例】输入255 8输出3773、分数线划定(程序文件名)【问题描述】公务员选拔工作正在 A 市如火如荼的进行。

为了选拔优秀人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。

面试分数线根据计划录取人数的150%划定,即如果计划录取m名公务员,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。

现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。

【输入】第一行,两个整数n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n),中间用一个空格隔开,其中n 表示报名参加笔试的选手总数,m 表示计划录取的人数。

输入数据保证m*150%向下取整后小于等于n。

第二行到第 n+1 行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号k(1000 ≤ k ≤ 9999)和该选手的笔试成绩s(1 ≤ s ≤ 100)。

数据保证选手的报名号各不相同。

【输出】第一行,有两个整数,用一个空格隔开,第一个整数表示面试分数线;第二个整数为进入面试的选手的实际人数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

试题1、数学黑洞(程序文件名maths.c/maths.cpp)【问题描述】任给一个4位正整数,其各位数位上的数字不全相同,将数字重新组合成一个最大的数与最小的数相减,重复这个过程,最多7步,必得6174。

对任给的4位正整数(各位数位上的数字不全相同),编程输出掉进黑洞的步数。

【输入】一行,一个4位正整数n(1000< n<9999)【输出】掉进黑洞的步数输入1234输出32、进制转换(程序文件名conver.c/conver.cpp)【问题描述】任给一个十进制整数n,及正整数m(m<=16且m≠10), 将n转换成m进制并输出。

【输入】一行,两个整数n,m(0 ≤ n ≤ 500000,2 ≤ m ≤ 16,且m≠10),中间用一个空格隔开,其中n 表示十进制数。

【输出】转换后的数【输入输出样例】输入255 8输出3773、分数线划定(程序文件名score.c/score.cpp)【问题描述】公务员选拔工作正在 A 市如火如荼的进行。

为了选拔优秀人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。

面试分数线根据计划录取人数的150%划定,即如果计划录取m名公务员,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。

现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。

【输入】第一行,两个整数n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n),中间用一个空格隔开,其中n 表示报名参加笔试的选手总数,m 表示计划录取的人数。

输入数据保证m*150%向下取整后小于等于n。

第二行到第 n+1 行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号k(1000 ≤ k ≤ 9999)和该选手的笔试成绩s(1 ≤ s ≤ 100)。

数据保证选手的报名号各不相同。

【输出】第一行,有两个整数,用一个空格隔开,第一个整数表示面试分数线;第二个整数为进入面试的选手的实际人数。

从第二行开始,每行包含两个整数,中间用一个空格隔开,分别表示进入面试的选手的报名号和笔试成绩,按照笔试成绩从高到低输出,如果成绩相同,则按报名号由小到大的顺序输出。

【输入输出样例】输入6 31000 903239 882390 957231 841005 951001 88输出88 51005 952390 951000 901001 883239 88【样例说明】m*150% = 3*150% = 4.5,向下取整后为4。

保证4 个人进入面试的分数线为88,但因为88有重分,所以所有成绩大于等于88 的选手都可以进入面试,故最终有5 个人进入面试。

4、生日礼物(gift.c/gift.cpp)【问题描述】小新今天过生日,他妈妈带他到一家购物中心,他妈妈告诉他他今天可以在这家商店选购3件礼物,但这3件礼物必须满足条件:后面礼物的价格不得高于前面礼物的价格,如有5件商品价格分别是12,11,8,9,10,则小新挑选礼物方案只能是(12,11,8)、(12,11,9)、(12,11,10)这三种方案中的一种,小新对挑选礼物的方案很感兴趣,请编程计算挑选礼物的方案数。

【输入】第一行,一个整数n(n≤1000),表示待选商品的总数。

第二行n个整数,用空格隔开,分别表示每件商品的价格(每件商品的价格≤10000)。

【输出】共一行,包含1 个整数,表示挑选礼物的方案数。

【输入输出样例】输入512 11 8 9 10输出35、资金预算(budget.c/budget.cpp)【问题描述】小新的亲戚开了一家建材批发部,近来由于价格不稳定,故需要制定按月执行的仓储计划,该批发部有n个供货月份,每个月仓储预算、商品价格预算、客户需求量分别为Pi,Si,Di,,每月客户需求必须得到保证。

当然,也可以在价格适当时进行囤货,即用仓库所储备的商品供货。

若存货不足,就要购买商品供货,如某月要购货,则该月要加上一笔购货预算资金Ri。

例如,有2个预算月份,P1,S1,D1,R1分别为0,10,100,10;P2,S2,D2,R2分别为0,100,100,10;则方案1:第一个月买够D1的货,第二个月买够D2的货,预算等于(D1×S1+R1)+(D2×S2+R2)=(100×10+10)+(100×100+10)=11020。

方案2:第一个月买够2个月的商品,第二个月不用买货,可用囤积的商品供货,但需要支付第一个月的仓储费,预算等于((D1+D2)×S1+R1)+(P1×D2)=((100+100)×10)+(0×100)=2010。

显然方案2优于方案1。

人工进行这样的预算费时费力,请你编程帮小新亲戚安排预算从而实现利润的最大化。

【输入】输入文件第一行是整数n(1≤ n ≤20),表示有n个月份;接着有n行,每行4个数据,分别表示 Pi,Si,Di,Ri,即仓储费用,商品价格预算,客户需求量及购货预算。

其中1≤ i ≤n,0≤Pi,Si,Ri≤100000; ,∑Di≤500。

【输出】仅1行,数据是最小总预算。

样例1:【输入1】20 10 100 100 100 100 10【输出1】2010样例2:【输入2】2100 10 100 100 100 100 10【输出2】110206、热带鱼(fish.c/fish.cpp)【问题描述】一个晴朗的星期天,小新在商场看见美丽的热带鱼,五彩斑斓的热带鱼在碧绿的水草映照下格外绚丽夺目,大大小小的鱼儿有的慢悠悠的散着步,有的疾驰如闪电,小新不禁被美丽的鱼儿所吸引,他非常想将这些美丽的小精灵们全买回家,但鱼儿的种类太多了,所以小新决定每种鱼最多只买1条,由于鱼儿间会相互争斗蚕食,故有些鱼儿是不能同时买回家的,小新想买尽可能多的鱼,但他身上的钱有限,只能在资金许可的范围内买鱼,怎么办?请你设计一个最佳方案,在资金许可的范围选择花费资金最多的一种买鱼方案。

程序运行时间10s内。

【输入】文件的第一行为两个正整数m(m≤1000)与n(n≤30),分别表示资金与鱼的种类;以下行,每行2个正整数,分别表示某种鱼的编号(编号≤30)及价格(价格≤10000);接着,每行2个正整数p与q ,表示编号p与编号q 的鱼不能共处,当p、q均等于0时,表示输入文件结束。

【输出】输出文件为2行,分别为2个正整数,第一行整数表示所买鱼的条数,第二行整数表示所花费的资金。

样例1:【输入1】15 31 302 393 181 30 0【输出1】样例2:【输入2】180 66 805 604 403 302 501 201 43 55 60 0【输出2】41807、电脑游戏(game.c/game.cpp)【问题描述】小新正在玩一个简单的电脑游戏。

游戏中有一条环形马路,马路上有n 个机器人工厂,两个相邻机器人工厂之间由一小段马路连接。

小新以某个机器人工厂为起点,按顺时针顺序依次将这n 个机器人工厂编号为1~n,因为马路是环形的,所以第n 个机器人工厂和第1 个机器人工厂是由一段马路连接在一起的。

小新将连接机器人工厂的这n 段马路也编号为1~n,并规定第i 段马路连接第i 个机器人工厂和第i+1 个机器人工厂(1 ≤ i ≤ n-1),第n 段马路连接第n 个机器人工厂和第1个机器人工厂。

游戏过程中,每个单位时间内,每段马路上都会出现一些金币,金币的数量会随着时间发生变化,即不同单位时间内同一段马路上出现的金币数量可能是不同的。

小新需要机器人的帮助才能收集到马路上的金币。

所需的机器人必须在机器人工厂用一些金币来购买,机器人一旦被购买,便会沿着环形马路按顺时针方向一直行走,在每个单位时间内行走一次,即从当前所在的机器人工厂到达相邻的下一个机器人工厂,并将经过的马路上的所有金币收集给小新,例如,小新在i(1 ≤ i ≤ n)号机器人工厂购买了一个机器人,这个机器人会从i 号机器人工厂开始,顺时针在马路上行走,第一次行走会经过i 号马路,到达i+1 号机器人工厂(如果i=n,机器人会到达第1 个机器人工厂),并将i 号马路上的所有金币收集给小新。

游戏中,环形马路上不能同时存在2 个或者2 个以上的机器人,并且每个机器人最多能够在环形马路上行走p 次。

小新购买机器人的同时,需要给这个机器人设定行走次数,行走次数可以为1~p 之间的任意整数。

当马路上的机器人行走完规定的次数之后会自动消失,小新必须立刻在任意一个机器人工厂中购买一个新的机器人,并给新的机器人设定新的行走次数。

以下是游戏的一些补充说明:1. 游戏从小新第一次购买机器人开始计时。

2. 购买机器人和设定机器人的行走次数是瞬间完成的,不需要花费时间。

3. 购买机器人和机器人行走是两个独立的过程,机器人行走时不能购买机器人,购买完机器人并且设定机器人行走次数之后机器人才能行走。

4. 在同一个机器人工厂购买机器人的花费是相同的,但是在不同机器人工厂购买机器人的花费不一定相同。

5. 购买机器人花费的金币,在游戏结束时再从小新收集的金币中扣除,所以在游戏过程中小新不用担心因金币不足,无法购买机器人而导致游戏无法进行。

也因为如此,游戏结束后,收集的金币数量可能为负。

现在已知每段马路上每个单位时间内出现的金币数量和在每个机器人工厂购买机器人需要的花费,请你告诉小新,经过m 个单位时间后,扣除购买机器人的花费,小新最多能收集到多少金币。

【输入】第一行 3 个正整数,n,m,p,意义如题目所述。

接下来的 n 行,每行有m 个正整数,每两个整数之间用一个空格隔开,其中第i 行描述了i 号马路上每个单位时间内出现的金币数量(1 ≤金币数量≤ 100),即第i 行的第j(1 ≤ j ≤m)个数表示第j 个单位时间内i 号马路上出现的金币数量。

最后一行,有 n 个整数,每两个整数之间用一个空格隔开,其中第i 个数表示在i 号机器人工厂购买机器人需要花费的金币数量(1 ≤金币数量≤ 100)。

【输出】共一行,包含1 个整数,表示在m 个单位时间内,扣除购买机器人花费的金币之后,小新最多能收集到多少金币。

【输入样例】2 3 21 2 32 3 41 2【输出样例】5【数据范围】对于 40%的数据,2 ≤ n ≤ 40,1 ≤m≤ 40。

对于 90%的数据,2 ≤ n ≤ 200,1 ≤m≤ 200。

对于 100%的数据,2 ≤ n ≤ 1000,1 ≤m≤ 1000,1 ≤ p ≤m。

7、电脑游戏(game.c/game.cpp)【问题描述】小新正在玩一个简单的电脑游戏。

相关文档
最新文档