搜档网
当前位置:搜档网 › 2011校大学生程序设计大赛专业组题目-部分题目

2011校大学生程序设计大赛专业组题目-部分题目

2011校大学生程序设计大赛专业组题目-部分题目
2011校大学生程序设计大赛专业组题目-部分题目

/*

问题 E: 单词问题

时间限制: 1 Sec 内存限制: 128 MB

提交: 44 解决: 17

[提交][状态][讨论版]

题目描述

给出一个完整的句子,这个句子中不包含不可见字符或者空格,于是在这个句子中有许多不同的单词。一个单词是指一串连续的最长的英文字母(大写或小写)。

例如"#abc#"中,"abc"就是一个单词,而"ab","bc"都不算单词。

输入

输入包含多组数据输入数据第一行是一个句子,只包含可见字符(不包含空格)。句子长度不超过 100。

输出

按单词出现的顺序输出不同的单词。如果一个单词出现多次则只有第一次出现时输出。

样例输入

Orz_YaYaMao_Orz_Daxia_Orz_EveryOne

样例输出

Orz

YaYaMao

Daxia

EveryOne

*/

#include"stdio.h"

#include"string.h"

void main()

{

char a[60][60],x;int i=0,j=0,count,z=1;

while((x=getchar())!='\n')

{

if((x>='a'&&x<='z')||(x>='A'&&x<='Z'))

{

a[i][j]=x;

j++;

a[i][j]='\0';

z=0;

}

else

{if(z==0)

{

i++;j=0;z++;

}

}

}

count=i;

for(i=0;i<=count;i++)

{ z=0;

for(j=i;j>=0;j--)

{

if(!strcmp(a[i],a[j]))

z++;

}

if(z==1)

puts(a[i]);

}

}

/* 问题 F: 逆序对

时间限制: 1 Sec 内存限制: 128 MB

提交: 76 解决: 50

[提交][状态][讨论版]

题目描述

对于一个包含N个非负整数的数组A[1..n],如果有i < j,且A[ i ]>A[ j ],则称( i , j )为数组A中的一个逆序对。

例如,数组(3,1,4,5,2)的逆序对有(3,1),(3,2),(4,2),(5,2),共4个。

输入

输入包含若干组数据,第一行为一个整数T(0

输出

对输入中的每组测试数据,输出一行对应逆序对的个数。

样例输入

2

5

3 1

4

5 2

10

1 2 3 4 5 6 7 8 9 10

样例输出

4

*/

#include"stdio.h"

void main()

{

int k;int a[60][60],i,j[60],x,y,count; scanf("%d",&k);

for(i=0;i

{ scanf("%d",&j[i]);

for(x=0;x

{

scanf("%d",&a[i][x]);

}

}

for(i=0;i

{ count=0;

for(x=0;x

{

for(y=x+1;y

{

if(a[i][x]>a[i][y])

count++;

}

}

printf("%d\n",count);

}

}

/* 问题 C: 删除嵌套注释

时间限制: 1 Sec 内存限制: 128 MB

提交: 20 解决: 11

[提交][状态][讨论版]

*/

#include"stdio.h"

#include"string.h"

void main()

{

char a[60][60];int i,j,flag=0,count=0;

for(i=0;;i++)

{ flag=0;

gets(a[i]);

for(j=0;j<(strlen(a[i]));j++)

{

if(a[i][j]=='}')

flag=1;

}

if(flag)

break;

}

for(i=0;;i++)

{ flag=0;count=0;/*as*/

for(j=0;j

{if(a[i][j]=='*')

count++;

if(a[i][j]=='}')

flag=1;

}

if(count==0||count==2)

puts(a[i]);

if(flag)

break;

}

}

/*问题 B: 数根

时间限制: 1 Sec 内存限制: 128 MB

提交: 113 解决: 23

[提交][状态][讨论版]

题目描述

数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那么这个数就是数根。如果结果是两位数或者包括更多

位的数字,那么再把这些数字加起来。如此进行下去,直到得到是一位数为止。比如,对于 24来说,把 2和 4相加得到 6,由于 6

是一位数,因此 6是 24 的数根。再比如 39,把 3和 9加起来得到 12,由于 12不是一位数,因此还得把 1和 2加起来,最后得到 3,这是一个一位数,因此 3是 39的数根。

至于说,知道一个数的数根有什么意义?这样的问题你就别问了。就算你问了,我也不方便告诉你。你还是赶紧写程序吧。

输入

输入的第一行为一个整数 n,表示有 n组测试数据。接下来有 n行,每行一个正整数 a(a小于 101000)。

输出

对每个正整数 a,输出它的数根。每个结果占据一行。

样例输入

2

24

39

样例输出

6

3

*/

#include"stdio.h"

void main()

{int a[60],b,i,z;

scanf("%d",&b);

for(i=0;i

{

scanf("%d",&a[i]);

}

for(i=0;i

{if(a[i]%9==0)

printf("%d\n",9);

else

printf("%d\n",a[i]%9);

}

}

/* 问题 A: 让我们来扮演高斯——呵呵,水题

时间限制: 1 Sec 内存限制: 128 MB

提交: 162 解决: 103

[提交][状态][讨论版]

题目描述

水题,你听说过吗?它就是那种你用脚趾头一想就能解决的题目啦!是不是正中阁下的下怀啊?

你还记得历史上那个大名鼎鼎的高斯吗?高斯(Gauss

1777.4.30~1855.2.23)是德国数学家,出生于德国布伦兹维克的一个贫苦家庭。高斯的数学研究几乎遍及所有领域,在数论、代数学、非欧几何、复变函数和微分几何等方面都做出了开创性的贡献。他还把数学应用于天文学、大地测量学和磁学的研究,发明了最小二乘法原理。他和牛顿、阿基米德,被誉为有史以来的三大数学家,有“数学王子”之称。

高斯最出名的故事就是他十岁时,小学老师出了一道算术难题:计算1+2 +3+…+100=?。这可难为初学算术的学生,但是在天才的高斯看来这可是一道典型的水题。老师刚讲完题目,他的答案也就出炉了。

今天咱们也来东施效颦一番,算一算1+2+3+…+n。

输入

第一行有一个整数 m,表示有 m组测试数据。接下来有 m行,每一行有一个整数 n(n≤10000)。

输出

对于每一个 n,输出一行,其值为1+2+3+…+n。

样例输入

3

10

100

13

样例输出

55

5050

91

*/

#include"stdio.h"

void main()

{int k,a[60],i,j,sm=0;

scanf("%d",&k);

for(i=0;i

{

scanf("%d",&a[i]);

}

for(i=0;i

{sm=0;

for(j=0;j<=a[i];j++)

sm=sm+j;

printf("%d\n",sm);

}

}

/* 问题 H: 子网掩码

时间限制: 1 Sec 内存限制: 128 MB

提交: 13 解决: 9

[提交][状态][讨论版]

题目描述

子网掩码计算方法

子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。

最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。就这么简单。

请看以下示例:

运算演示之一:aa

I P 地址 192.168.0.1

子网掩码 255.255.255.0

AND运算

转化为二进制进行运算:

I P 地址11010000.10101000.00000000.00000001

子网掩码11111111.11111111.11111111.00000000

AND运算

11010000.10101000.00000000.00000000

转化为十进制后为:

192.168.0.0

运算演示之二:

I P 地址 192.168.0.254

子网掩码 255.255.255.0

AND运算

转化为二进制进行运算:

I P 地址11010000.10101000.00000000.11111110 子网掩码11111111.11111111.11111111.00000000 AND运算

11010000.10101000.00000000.00000000 转化为十进制后为:

192.168.0.0

运算演示之三:

I P 地址 192.168.0.4

子网掩码 255.255.255.0

AND运算

转化为二进制进行运算:

I P 地址11010000.10101000.00000000.00000100 子网掩码11111111.11111111.11111111.00000000 AND运算

11010000.10101000.00000000.00000000

转化为十进制后为:

192.168.0.0

通过以上对三组计算机IP地址与子网掩码的AND运算后,我们可以看到它运算结果是一样的。均为192.168.0.0

所以计算机就会把这三台计算机视为是同一子网络。

输入

第一行是本机IP地址

第二行是子网掩码

第三行整数N,表示后面有N个IP地址

第1个IP地址

......

第N个IP地址

输出

计算并输出N个IP地址是否与本机在同一子网内。

对于在同一子网的输出"INNER"

对于在不同子网的输出“OUTER”

样例输入

192.168.0.1

255.255.255.0

3

192.168.0.2

192.168.0.254

192.168.1.2

样例输出

*/

#include"stdio.h"

int panduan(int b[],int n[],int z[])

{

int y[4];

y[0]=b[0]&n[0];y[1]=b[1]&n[1];y[2]=b[2]&n[2];y[3]=b[3]&n [3];

if(y[0]==z[0]&&y[1]==z[1]&&y[2]==z[2]&&y[3]==z[3])

return 1;

else

return 0;

}

void main()

{

int a[4],b[4],n[20][4],z[4];char c[3];

int d,i;

scanf("%d%c%d%c%d%c%d",&a[0],&c[0],&a[1],&c[1],&a[2],&c[2], &a[3]);

scanf("%d%c%d%c%d%c%d",&b[0],&c[0],&b[1],&c[1],&b[2],&c[2], &b[3]);

z[0]=a[0]&b[0];z[1]=a[1]&b[1];z[2]=a[2]&b[2];z[3]=a[3]&b[3] ;

//printf("%d %d %d %d",z[0],z[1],z[2],z[3]);

scanf("%d",&d);

for(i=0;i

{

scanf("%d%c%d%c%d%c%d",&n[i][0],&c[0],&n[i][1],&c[1],&n[ i][2],&c[2],&n[i][3]);

}

for(i=0;i

{

if(panduan(b,n[i],z))

printf("INNER\n");

else

printf("OUTER\n");

}

/*printf("%d %d %d %d",a[0],a[1],a[2],a[3]);

printf("%d %d %d %d",b[0],b[1],b[2],b[3]);*/ }

C语言程序设计竞赛题及其答案

数学与统计学院 第三届计算机程序设计竞赛题 竞赛需知: 1、答案必须写在答题纸上。 2、程序采用C/JAVA/VB/VFP语言实现均可。 3、考虑到各种因素,程序的键盘输入和结果输出可以用伪代码或者自然语言表示。但是必 须说明输入变量和输出变量。 4、题目最好能用完整、正确的语言程序来解决问题,如确实无法编写完整语言程序的,可 以写出程序主要框架和流程,必要时可以用伪代码或者自然语言描述算法(程序)。 一、玫瑰花数(20分) 如果一个四位数等于它的每一位数的4次方之和,则称为玫瑰花数。例如: + + 1634+ =, 4^4 4^3 4^6 4^1 编程输出所有的玫瑰花数。 #include void main() { int i,j,k,l,m; for(i=999;i<=9999;i++) { j=i/1000; k=i%10; l=i/100-10*j; m=i/10-100*j-10*l; if(i==j*j*j*j+k*k*k*k+l*l*l*l+m*m*m*m) printf("%d\n",i); } } 二、菱形图案(20分) 对给定的奇数n,编程打印菱形图案。 输入样例: 7 输出样例: * *** ***** ******* ***** *** * #include #include void main() {

int i,j,k; int n; scanf("%d",&n); for(i=0;i #include void main() { int i,j,x,y; float r; int a,b,count=0; printf("请输入矩阵的行列i,j:"); scanf("%d%d",&i,&j); printf("请输入圆心的坐标点及半径x,y,r:"); scanf("%d%d%f",&x,&y,&r); for(a=0;a

2009年全国大学生电子设计大赛题目(全)

光伏并网发电模拟装置(A 题) 【本科组】 一、任务 设计并制作一个光伏并网发电模拟装置,其结构框图如图1所示。用直流稳压电源U S 和电阻R S 模拟光伏电池,U S =60V ,R S =30Ω~36Ω;u REF 为模拟电网电压的正弦参考信号,其峰峰值为2V ,频率f REF 为45Hz~55Hz ;T 为工频隔离变压器,变比为n 2:n 1=2:1、n 3:n 1=1:10,将u F 作为输出电流的反馈信号;负载电阻R L =30Ω~36Ω。 R L U S 图1 并网发电模拟装置框图 二、要求 1.基本要求 (1)具有最大功率点跟踪(MPPT )功能:R S 和R L 在给定范围内变化时, 使d S 1 2 U U =,相对偏差的绝对值不大于1%。 (2)具有频率跟踪功能:当f REF 在给定范围内变化时,使u F 的频率f F =f REF , 相对偏差绝对值不大于1%。 (3)当R S =R L =30Ω时,DC-AC 变换器的效率η≥60%。 (4)当R S =R L =30Ω时,输出电压u o 的失真度THD ≤5%。 (5)具有输入欠压保护功能,动作电压U d (th )=(25±0.5)V 。 (6)具有输出过流保护功能,动作电流I o (th )=(1.5±0.2)A 。 2.发挥部分 (1)提高DC-AC 变换器的效率,使η≥80%(R S =R L =30Ω时)。 (2)降低输出电压失真度,使THD ≤1%(R S =R L =30Ω时)。 (3)实现相位跟踪功能:当f REF 在给定范围内变化以及加非阻性负载时,

均能保证u F 与u REF 同相,相位偏差的绝对值≤5°。 (4)过流、欠压故障排除后,装置能自动恢复为正常状态。 (5)其他。 三、说明 1.本题中所有交流量除特别说明外均为有效值。 2.U S 采用实验室可调直流稳压电源,不需自制。 3.控制电路允许另加辅助电源,但应尽量减少路数和损耗。 4.DC-AC 变换器效率o d P P η= ,其中o o1o1P U I =?,d d d P U I =?。 5.基本要求(1)、(2)和发挥部分(3)要求从给定或条件发生变化到电路 达到稳态的时间不大于1s 。 6.装置应能连续安全工作足够长时间,测试期间不能出现过热等故障。 7.制作时应合理设置测试点(参考图1),以方便测试。 8.设计报告正文中应包括系统总体框图、核心电路原理图、主要流程图、 主要的测试结果。完整的电路原理图、重要的源程序和完整的测试结果用附件给出。

程序设计比赛试题

程序设计比赛试题 最少钱币数: 【问题描述】 这是一个古老而又经典的问题。用给定的几种钱币凑成某个钱数,一般而言有多种方式。例如:给定了6种钱币面值为2、5、10、20、50、100,用来凑15元,可以用5个2元、1个5元,或者3个5元,或者1个5元、1个10元,等等。显然,最少需要2个钱币才能凑成15元。 你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。 【要求】 【数据输入】输入可以有多个测试用例。每个测试用例的第一行是待凑的钱数值M (1<=M<=2000,整数),接着的一行中,第一个整数K(1<=K<=10)表示币种个数,随后是K个互不相同的钱币面值Ki(1<=Ki<=1000)。输入M=0时结束。 【数据输出】每个测试用例输出一行,即凑成钱数值M最少需要的钱币个数。如果凑钱失败,输出“Impossible”。你可以假设,每种待凑钱币的数量是无限多的。 【样例输入】 15 6 2 5 10 20 50 100 1 1 2 【样例输出】 2 Impossible

Feli的生日礼物 【问题描述】 Felicia的生日是11月1日(和Kitty是同一天生的哦)。于是Feli请来Kitty一起过生日。Kitty带来了最新款的“Kitty猫”玩具准备送给Feli,不过她说,这份礼物可不是白送的。Feli要帮她一个忙,才能够得到心仪已久的玩具。Kitty说,“Kitty猫”玩具已经卖出了n!个,n<=10^100*_*,Kitty想知道确切的数字,而不是无聊的“一个数加个感叹号”。Feli听了大吃一惊。要知道,算出n!是一个无比艰巨的任务。Feli告诉Kitty,就算Feli算出n!,Kitty也看不下去,因为当n=20时,计算机的长整型已经存不下了(Kitty只能接受1-9之间的数字)。于是Kitty说,你只要告诉我n!最后一位非0的数就可以了。Feli想了想,立刻动手写了个程序算出了正确的答案。现在,请你也试试看!注意哦,AC的男生将会得到一个“Hello Kitty”计算器(可编程,CPU 1THz,Mem 1TMB),AC的女生将会得到一个仿真“Hello Kitty”宠物(善解人意,无须喂养,智商1101,附带写情书功能)。 【要求】 【数据输入】每行一个n,直到输入数据结束 【数据输出】对应输入的n,每行输出一个答案 【样例输入】 1101 【样例输出】 8

(1994-2003)历届全国电子设计大赛题目

全国大学生电子设计竞赛历年题目(1994-2003) https://www.sodocs.net/doc/b517058503.html, 第一届(1994年)全国大学生电子设计竞赛题目 题目一简易数控直流电源 一、设计任务 设计出有一定输出电压范围和功能的数控电源。其原理示意图如下: 二、设计要求 1.基本要求 (1)输出电压:范围0~+9.9V,步进0.1V,纹波不大于10mV; (2)输出电流:500mA; (3)输出电压值由数码管显示; (4)由“+”、“-”两键分别控制输出电压步进增减; (5)为实现上述几部件工作,自制一稳压直流电源,输出±15V,+5V。 2.发挥部分 (1)输出电压可预置在0~9.9V之间的任意一个值; (2)用自动扫描代替人工按键,实现输出电压变化(步进0.1V不变); (3)扩展输出电压种类(比如三角波等)。

三、评分意见 题目二多路数据采集系统 一、设计任务 设计一个八路数据采集系统,系统原理框图如下: 主控器能对50米以外的各路数据,通过串行传输线(实验中用1米线代替)进行采集的显示和显示。具体设计任务是: (1)现场模拟信号产生器。 (2)八路数据采集器。 (3)主控器。 二、设计要求 1.基本要求 (1)现场模拟信号产生器:自制一正弦波信号发生器,利用可变电阻改变振荡频率,使频率在200Hz~2kHz范围变化,再经频率电压变换后输出相应1~5V直流电压(200Hz对应1V,2kHz对应5V)。 (2)八路数据采集器:数据采集器第1路输入自制1~5V直流电压,第2~7路分别输入来自直流源的

5,4,3,2,1,0V直流电压(各路输入可由分压器产生,不要求精度),第8路备用。将各路模拟信号分别转换成8位二进制数字信号,再经并/串变换电路,用串行码送入传输线路。 (3)主控器:主控器通过串行传输线路对各路数据进行采集和显示。采集方式包括循环采集(即1路、2路……8路、……1路)和选择采集(任选一路)二种方式。显示部分能同时显示地址和相应的数据。 2.发挥部分 (1)利用电路补偿或其它方法提高可变电阻值变化与输出直流电压变化的线性关系; (2)尽可能减少传输线数目; (3)其它功能的改进(例如:增加传输距离,改善显示功能)。 三、评分意见 第二届(1995年)全国大学生电子设计竞赛题目 题目一实用低频功率放大器 一、任务 设计并制作具有弱信号放大能力的低频功率放大器。其原理示意图如下:

大学生电子设计竞赛题目

20XX年山东省大学生电 子设计竞赛 A题瞬态响应测试仪 【本科组】 一、任务 要求采用指定的FPGA实验平台(含EXCD-1开发板)设计一个二阶系统动态响应测试仪,系统组成框图如图1: 图 1 二、要求 1. 基本部分

(1)设计并制作保证二阶系统正常工作所需要的一组±12V直流电源及FPGA 实 验平台供电电源。 (2)安装并调试好图2所示的二阶电路系统。 (3)设计并制作输出1V的直流阶跃信号源,要求阶跃信号的上升时间小于 0.5uS,输出直流信号电压的值在1±0.1V内。 (4)当给该二阶系统加入1V的阶跃信号时,显示并测量二阶系统的动态响应峰 值时间tp,测量误差小于5%。 (5)显示并测量二阶系统的超调量σp,测量误差小于5%。 (6)显示并测量二阶系统的调节时间ts(取δ为±2%),测量误差小于5%。 2. 发挥部分 (1)要求直流信号源输出0.5V~1.5V步进可调,步进大小为0.1V。 (2) 要求显示二阶系统瞬态响应曲线。 (3)进一步提高测量二阶系统性能指标的精度。 (4) 利用FPGA端口,设计一单脉冲信号源,要求脉冲宽度为0.1uS~1000uS 范围 内可任意设置。(可不考虑脉冲源的带负载能力大小) (5) 利用FPGA设计一个频率为100kHz,要求误差小于2%;幅值为2±0.1V 的三

角波信号。 (6)其他。 三、评分标准 说明: 1、有关二阶系统的知识请参阅有关教材内容。 2、实现该测试仪器必须采用组委会指定的EXCD—1可编程片上系统开 发板。 3、被测试的二阶系统的电路如图2所示。

图 2 4、关于二阶系统瞬态参数的定义:(1)峰值时间tp:从施加阶跃信号开始, 二阶系统输出到达最大值所需要的时间。(2)超调量σp:二阶系统输出响 应的最大峰值与稳态值之间的差。(3)调节时间ts:输出响应值与稳态值 之间的差小于规定稳态值值百分数的时间。 5、在制作二阶系统时,要留有方便更换电阻R的插孔或端子。 6、允许外加必要的辅助测量电路。 B题电阻电容电感测试仪的设计与制作 【本科组】 一、任务

第六届程序设计比赛题目与答案

一、鸡兔同笼 问题描述 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物 输入数据 第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a (a < 32768)。 输出要求 n行,每行输出对应一个输入。输出是两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用空格分开。如果没有满足要求的情况出现,则输出2个0。 输入样例 2 3 20 输出样例 0 0 5 10 解题思路 这个问题可以描述成任给一个整数N,如果N是奇数,输出0 0,否则如果N是4的倍数,输出N / 4 N / 2,如果N不是4的倍数,输出N/4+1 N/2。这是一个一般的计算题,只要实现相应的判断和输出代码就可以了。题目中说明了输入整数在一个比较小的范围内,所以只需要考虑整数运算就可以了。 参考程序 1.#include 2.void main( ) 3.{ 4.int nCases, i, nFeet; //nCases 表示输入测试数据的组数,nFeet表示输入的脚数。 5.scanf("%d", &nCases); 6.for(i = 0; i < nCases; i++){ 7.scanf("%d", &nFeet); 8.if(nFeet %2 != 0) // 如果有奇数只脚,则输入不正确, 9.// 因为不论2只还是4只,都是偶数 10.printf("0 0\n"); 11.else if (nFeet%4 != 0) //若要动物数目最少,使动物尽量有4只脚 12.//若要动物数目最多,使动物尽量有2只脚 13.printf("%d %d\n", nFeet / 4 + 1, nFeet / 2); 14.else printf("%d %d\n", nFeet / 4, nFeet / 2); 15.} 16.}

历年电子设计大赛竞赛题目

“美亚光电”杯安徽省第一届大学生电子设计竞赛题 任意波形发生器(A题) 一、任务 设计制作一个波形发生器,该波形发生器能产生正弦波、方波、三角波和由用户编辑的特定形状波形。示意图如下: 二、要求 1、基本要求 (1)具有产生正弦波、方波、三角波三种周期性波形的功能。 (2)用键盘输入编辑生成上述三种波形(同周期)的线性组合波形,以及由基波及其谐波(5次以下)线性组合的波形。 (3)具有波形存储功能。 (4)输出波形的频率范围为100 Hz ~ 20 kHz(非正弦波频率按10次谐波计算);频率可调,频率步进间隔≤100 Hz。 (5)输出波形幅度范围0 ~ 5 V(峰—峰值),可按步进0.1 V(峰—峰值)调整。 (6)具有显示输出波形的类型、频率(周期)的功能。 2、发挥部分 (1)输出波形频率范围扩展至100 Hz~200 kHz。 (2)用键盘或其他输入装置产生任意波形。 (3)增加稳幅输出功能,当负载变化时,输出电压幅度变化不大于±3%(负载电阻变化范围:100 Ω~∞)。 (4)具有掉电存储功能,可存储掉电前用户编辑的波形和设置。 (5)特色与创新。 三、评分标准 项目满分 基本要求设计与总结报告:方案比较、设计与论证,理论分析与计算,电路图及有 关设计文件,测试方法与仪器,测试数据及测试结果分析。 50 实际制作完成情况50 发挥部分完成第(1)项10 完成第(2)项15 完成第(3)项10 完成第(4)项10 特色与创新 5

远程温湿度测量系统(B题) 一、任务 制作一个远程温湿度测量仪,该测试仪具有温湿度测量和远程显示等功能。 其结构框图如下: 二、要求 l、基本要求 (1)通过可编程控制器、变换器和温湿度传感器采集温湿度数据并在LED上显示。 (2)温度误差<1℃,湿度误差<1%,温度测量范围0℃~120℃,湿度测量范围1%~99%。 (3)可用电池供电。 2、发挥部分 (1)设计红外二极管发射电路和红外接收电路,实现温湿度数据的准确可靠发送和接收。 (2)设计射频发射电路和接收电路,实现温湿度数据的准确可靠发送和接收。 (3)最好采用微型化的温湿度传感器,无线传输距离>5米。 (4)特色与创新。 三、评分标准 项目满分 基本要求设计与总结报告:方案比较、设计与论证,理论分析与计算,电路图及有 关设计文件,测试方法与仪器,测试数据及测试结果分析。 50 实际制作完成情况50 发挥部分完成第(1)项15 完成第(2)项15 完成第(3)项10 特色与创新10

程序设计大赛试题及答案

试题 1、数学黑洞(程序文件名maths.c/maths.cpp) 【问题描述】 任给一个4位正整数,其各位数位上的数字不全相同,将数字重新组合成一个最大的数与最小的数相减,重复这个过程,最多7步,必得6174。对任给的4位正整数(各位数位上的数字不全相同),编程输出掉进黑洞的步数。 【输入】 一行,一个4位正整数n(1000< n<9999) 【输出】 掉进黑洞的步数 输入 1234 输出 3 2、进制转换(程序文件名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 输出 377 3、分数线划定(程序文件名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 3 1000 90 3239 88 2390 95 7231 84 1005 95 1001 88

2014年TI杯大学生电子设计竞赛题(8道赛题全)

2014年TI杯大学生电子设计竞赛题(多省联赛) A题:四旋翼飞行器 1.任务 设计制作一架能够自主飞行的四旋翼飞行器。 2.要求 四旋翼飞行器能够完成以下飞行动作: (1)飞行器能够根据起飞前预置的指令起飞,飞离地面高度应超过30cm,飞行距离(水平)应超过60cm,然后飞行器应能平稳降落。(30分) (2)飞行器能够根据指定(键盘设定)的飞行高度及降落地点(方向及距离)连续稳定地完成起飞、指定高度水平飞行、平稳降落等动作。(20分) (3)飞行器能够根据起飞前预置的指令垂直起飞,起飞后能够在50cm以上高度平稳悬停5s以上,然后再平稳缓慢降落到起飞地点;起飞与降落地点水平距离 不超过30cm。(30分) (4)其他自主发挥设计的飞行动作。(20分) (5)设计报告(20分) 项目主要内容分数 系统方案方案比较,方案描述 5 设计与论证飞行器姿态测量方法 飞行控制器控制方法与参数计算8 测试测试方法与测试结果 5 设计报告结构及规范性摘要,正文结构完整性、内容规范性 2 小计20 3.说明 (1)飞行器的姿态检测及飞行控制必须使用TI 公司的TIV A M4、C2000或MSP430等系列控制器。 (2)飞行器在完成每一项飞行动作期间不得以任何方式进行人为干预,如遥控等。 (3)飞行器的尺寸可自行选定。 (4)飞行方向以正北方向为0°、东北方向为45°、正东方向为90°等,以此类推;距离的单位为厘米(cm)。 (5)指定的降落地点是指降落地点距起飞地的水平距离及方向。 (6)平稳降落是指在降落过程中无明显的跌落、弹跳及着地后滑行等情况出现。 (7)能够完成要求(2)时,要求(1)可以免测。 (8)为确保安全,飞行器应在安全网中或在系留方式下工作(即以绳索将飞行器拴在地面固定物上)。

C语言程序设计大赛题目

日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。请编程验证。 *问题分析与算法设计 本题是一个沿未获得一般证明的猜想,但屡试不爽,可以用程序验证。 题目中给出的处理过程很清楚,算法不需特殊设计,可按照题目的叙述直接进行证。 *程序说明与注释 #include int main() { int n,count=0; printf("Please enter number:"); scanf("%d",&n); /*输入任一整数*/ do{ if(n%2) { n=n*3+1; /*若为奇数,n乘3加1*/ printf("[%d]:%d*3+1=%d\n",++count,(n-1)/3,n); } else { n/=2; /*若为偶数n除以2*/ printf("[%d]: %d/2=%d\n",++count,2*n,n); } }while(n!=1); /*n不等于1则继续以上过程*/ }

数论中著名的“四方定理”讲的是:所有自然数至多只要用四个数的平方和就可以表示。请编程证此定理。 *问题分析与算法设计 本题是一个定理,我们不去证明它而是编程序验证。 对四个变量采用试探的方法进行计算,满足要求时输出计算结果。 #include #include int main() { int number,i,j,k,l; printf("Please enter a number="); scanf("%d",&number); /*输入整数*/ for(i=1;i int main() { int a,b,c,d; printf("Please enter a number:"); scanf("%d",&a); /*输入整数*/ b=a*a*a; /*求整数的三次方*/ printf("%d*%d*%d=%d=",a,a,a,b); for(d=0,c=0;c

1994年全国大学生电子设计竞赛题目

第一届(1994年)全国大学生电子设计竞赛题目A题简易数控直流电源 一、设计任务 设计出有一定输出电压范围和功能的数控电源。其原理示意图如下: 二、设计要求 1.基本要求 (1)输出电压:范围0~+9.9V,步进0.1V,纹波不大于10mV; (2)输出电流:500mA; (3)输出电压值由数码管显示; (4)由“+”、“-”两键分别控制输出电压步进增减; (5)为实现上述几部件工作,自制一稳压直流电源,输出±15V,+5V。 2.发挥部分 (1)输出电压可预置在0~9.9V之间的任意一个值; (2)用自动扫描代替人工按键,实现输出电压变化(步进0.1V不变); (3)扩展输出电压种类(比如三角波等)。 三、评分意见 项目得分

基本要求 方案设计与论证、理论计算与分析、电路图 30 实际完成情况 50 总结报告 20 发挥部分 完成第一项 5 完成第二项 15 完成第三项 20 B 题 多路数据采集系统 一、设计任务 设计一个八路数据采集系统,系统原理框图如下: 主控器能对50米以外的各路数据,通过串行传输线(实验中用1米线代替)进行采集的显示和显示。具体设计任务是: (1)现场模拟信号产生器。 (2)八路数据采集器。 (3)主控器。 二、设计要求 1.基本要求 (1)现场模拟信号产生器:自制一正弦波信号发生器,利用可变电阻改变振荡频率,使频率在200Hz ~2kHz 范围变化,再经频率电压变换后输出相应1~5V 直流电压(200Hz 对应1V ,2kHz 对应5V )。 (2)八路数据采集器:数据采集器第1路输入自制1~5V 直流电压,第2~7路分别输

acm程序设计大赛题目

The Mailboxes Manufacturers Problem Time Limit:1000MS Memory Limit:65536K Total Submit:299 Accepted:227 Description In the good old days when Swedish children were still allowed to blowup their fingers with fire-crackers, gangs of excited kids would plague certain smaller cities during Easter time, with only one thing in mind: To blow things up. Small boxes were easy to blow up, and thus mailboxes became a popular target. Now, a small mailbox manufacturer is interested in how many fire-crackers his new mailbox prototype can withstand without exploding and has hired you to help him. He will provide you with k(1 ≤ k≤ 10) identical mailbox prototypes each fitting up to m(1 ≤ m≤ 100) crackers. However, he is not sure of how many firecrackers he needs to provide you with in order for you to be able to solve his problem, so he asks you. You think for a while and then say, “Well,if I blow up a mailbox I can’t use it again, so if you would provide me with only k = 1 mailboxes, I would have to start testing with 1 cracker, then 2 crackers, and so on until it finally exploded. In the worst case, that is if it does not blow up ev en when filled with m crackers, I would need 1 + 2 + 3 + … + m = m ×(m+ 1) ? 2 crackers. If m = 100 that would mean more than 5000 fire-crackers!” “That’s too many,” he replies. “What if I give you more than k = 1 mailboxes? Can you find a strategy that requires less crackers?” Can you? And what is the minimum number of crackers that you should ask him to provide you with? You may assume the following: 1.If a mailbox can withstand x fire-crackers, it can also withstand x? 1 fire-crackers. 2.Upon an explosion, a mailbox is either totally destroyed (blown up) or unharmed, which means that it can be reused in another test explosion.

华为编程大赛试题2

客观题部分,共30分,建议这部分答题用40分钟。 一、单选题(每题1分,共10题) 1、以下叙述中不正确的是______。? A) 在不同的函数中可以使用相同名字的变量 B) 函数中的形式参数是局部变量 C) 在一个函数内定义的变量只在本函数范围内有效 D).在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数中的 成对括号构成的代码)? 2、下列全局变量定义中,正确的是:______。 A) char abc [] []; B) char abc [] [NUM]; C) char abc [NUM] []; D) char abc [0]; 3、关于断言,错误的说法是:______。 A) 我们可以使用断言来发现软件问题。 B) 在正式发布的软件版本中也要保留断言,以便于定位问题。 C) 断言不能用于对外部输入数据的判断,只能用于程序内部逻辑的判断。 D) 不能用断言来代替错误处理。 4、关于函数参数,正确的说法是______。 A) 防止将函数的参数作为工作变量。 B) 应该为函数功能的扩展预留尽可能多的参数接口。 C) 通常函数内部会对函数参数进行合法性检查,为了提高效率,函数调用者不需要再 次进行参数合法性检查。 D) 不要输入指针变量。 5、关于函数实现,下面不正确的说法是______。 A) 为简单功能编写函数。 B) 函数的功能应该是可以预测的,也就是只要输入数据相同就应产生同样的输出。 C) 防止把没有关联的语句放到一个函数中。 D) 为了增强函数的可用性,应尽量设计多用途面面俱到的函数。 6、关于函数,不正确的说法是______。 A) 如果多段代码重复做同一件事情,那么在函数的划分上可能存在问题。 B) 功能不明确较小的函数,特别是仅有一个上级函数调用它时,应考虑把它合并到上 级函数中,而不必单独存在。 C) 对所调用函数的错误返回码可以根据需要决定是否处理。 D) 对于提供了返回值的函数,在引用时最好使用其返回值。 7、编程中下面说法错误的是______。 A) 编程时,要防止差1错误。如:把“<=”误写成“<”或“>=”误写成“>”。 B) 系统运行之初,要初始化有关变量及运行环境,防止未经初始化的变量被引用,但 可以使用操作系统的默认初始化值。 C) 有可能的话,if语句尽量加上else分支,对没有else分支的语句要小心对待; switch语句必须有default分支。 D) 要时刻注意易混淆的操作符,如C/C++中的“=”与“==”、“|”与“||”、“&” 与“&&”等。当编完程序后,应从头至尾检查一遍这些操作符,以防止拼写错误。

C语言程序设计大赛题目

C语言程序设计大赛题 目 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

1.角谷猜想 日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。请编程验证。 *问题分析与算法设计 本题是一个沿未获得一般证明的猜想,但屡试不爽,可以用程序验证。 题目中给出的处理过程很清楚,算法不需特殊设计,可按照题目的叙述直接进行证。 *程序说明与注释 #include<> intmain() { intn,count=0; printf("Pleaseenternumber:"); scanf("%d",&n);/*输入任一整数*/ do{ if(n%2) { n=n*3+1;/*若为奇数,n乘3加1*/ printf("[%d]:%d*3+1=%d\n",++count,(n-1)/3,n); } else { n/=2;/*若为偶数n除以2*/ printf("[%d]:%d/2=%d\n",++count,2*n,n); } }while(n!=1);/*n不等于1则继续以上过程*/

}

2.四方定理 数论中着名的“四方定理”讲的是:所有自然数至多只要用四个数的平方和就可以表示。 请编程证此定理。 *问题分析与算法设计 本题是一个定理,我们不去证明它而是编程序验证。 对四个变量采用试探的方法进行计算,满足要求时输出计算结果。 #include<> #include<> intmain() { intnumber,i,j,k,l; printf("Pleaseenteranumber="); scanf("%d",&number);/*输入整数*/ for(i=1;i intmain() { inta,b,c,d; printf("Pleaseenteranumber:"); scanf("%d",&a);/*输入整数*/

最新慈溪市小学生计算机程序设计竞赛复赛试题(定稿)

2012年慈溪市小学生计算机程序设计比赛 复赛试题 比赛时间:2012年12月23日上午8:30—10:30 题目概览 注意事项 1.每位选手都应先在E盘根目录下建立自己的答卷文件夹,该文件夹的名称为自己的考号;2.选手最终所提交的所有文件都必须存放在自己的考生文件夹中,凡错放及以书面形式提交的答卷一律视作无效; 3.每题提交的解答都必须包括以下二个文件,即源程序文件和经编译后生成的可执行文件,其名称必须与各题中所规定的相一致; 4.程序中必须采用文件读写的方法来实现数据的输入和结果的输出,即程序运行时所需输入数据应从题中指定的输入文件中读取(而不得采用键盘输入的方式),程序运行的结果应写入到题中指定的文件中(而不是输出到屏幕上)。 5.用于提供输入数据和记录输出结果的文件的名称都已在题中具体规定,选手程序在调用它们时不得为其指定任何特别的路径。 6.复赛用机房电脑C盘和D盘均已设置成开机还原保护,选手切勿把程序存放在C盘和D 盘中,否则如果重新开机后程序将不复存在。 7.比赛结束后请不要关机。

1.统计成绩(score.pas/exe) 【问题描述】 每次考试或测试后,老师们都要进行成绩统计。假如某次期末考试有语文、数学、英语三门课,现请你编程输出总成绩最高分以及每门学科的最高分。 【输入数据】 输入文件score.in:输入从文件中读取,输入共n+1行。 第1行是一个正整数n(1≤n≤100),表示学生人数,从1到n编号。 接下来n行,每行3个整数,依次表示每个学生的语文、数学、英语成绩(每门课成绩是0到100之间的整数,包括0和100)。 【输出数据】 输出文件score.out:结果输出到文件中,输出共1行,包含4个整数,分别表示三门课总成绩最高分,语文学科的最高分,数学学科的最高分,英语学科的最高分。 【输入输出样例】 【样例解释】 输入3个学生成绩,第1个学生语文、数学、英语三门课的成绩分别为80,67,96,第2个学生语文、数学、英语三门课的成绩分别为88,71,93,第3个学生语文、数学、英语三门课的成绩分别为90,95,80。第3个学生的总成绩最高,为265。语文学科的最高分是90分,数学学科的最高分95,英语学科的最高分96。 【数据范围约定】 所有的输入数据保证1≤n≤100,成绩在0到100分之间(包括0和100)。 2.最小的Y(miny.pas/exe) 【问题描述】 程序设计与数学密切相关,所以兴趣小组的辅导老师经常拿一些有趣的数学题来让大家思考。一次课上,辅导老师又拿出了一个有趣的数学问题,题目是这样的:给你两个正整数x和z,求最小的整数y,使得x×y以后再除以z的余数为0。 比如x=3,z=6,求最小的y。 题目一出,马上有同学说:最小的y是0。 老师说:是的,非常厉害,最小的y是0。那最小的正整数y是多少呢? 【输入数据】 输入文件miny.in:输入从文件中读取,输入共1行,两个正整数,分别表示x和z (1≤x≤2147483647, 1≤z≤2147483647)。 【输出数据】 输出文件miny.out:结果输出到文件中,输出共1行,表示使得x×y以后再除以z的

第三届Java程序设计大赛题目

第三届Java程序设计大赛题目 重要提示: 1.除下载竞赛题目和上交代码,其余时间不允许连接网络,否则取消竞赛资格! 2.创建以“学号-姓名”命名的根文件夹(形式 如:“10317210135-张三”),并将竞赛结果代码严格按题目上的命名要求进行命名并直接保存在该文件夹下; 3.在两个小时之内完成源代码,源代码上交前要将前面创建的文件夹(如前面创建的“10317210135-张三”文件夹)压缩成“rar”格式,命名形如:“10317210135-张三.rar”; 3. 将压缩的源代码上交到上传 至“ftp://100.1.0.38/”,用户名:student10,密 码:student10; 4.源代码上交期限是4月27日21:00前,否则不予接收。 注意:凡违反上述规定的考生,其成绩一律按零分处理!

1. 竞赛第一题 有5个学生,他们的姓名分别为丁一,刘二,张三,李四,王五,他们的英语成绩分别为62,46,91,73,29;数学成绩分别为 64,97,81,75,90,物理成绩分别为94,27,65,51,88,编写一个Java程序,找出他们当中总分最高的学生,并输出他的姓名和分数。(提示:为每一个学生创建一个Student类,并将他们的姓名,各科成绩作为属性存储起来,然后建个Student类型的数组通过比较找出符合要求的人)。 要求: Java源文件包含main()方法,运行能输出结果,将制作好的应用程序类保存为“T1.java”,放在根文件夹下。 2. 竞赛第二题 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?(本题20分) 要求: Java源文件包含main()方法,运行能输出结果,将制作好的应用程序类保存为“T2.java”,放在根文件夹下。

首届程序设计大赛题目及答案

首届程序设计大赛题目及答案 程序设计大赛题目 1. 硬币兑换:用一元人民币兑换一分、二分和五分的硬币,编程求出所有兑换方法,并打印每种情况下各面值硬币需几枚?(10分) 2. 旅馆里有一百个房间,从1到100编了号。第一个服务员把所有的房间门都打开了,第二个服务员把所有编号是2的倍数的房间“相反处理”,第三个服务员把所有编号是3的倍数的房间作“相反处理”,……,以后每个服务员都是如此。问第100个服务员来过后,哪几扇门是打开的。(所谓“相反处理”是:原来开着的门关上,原来关上的门打开。) (15分) 3. 整型数组,长度为10,输入数组各元后,求数组各元的平均值,并找出最接近平均值的那个元素。打印输出上述两个结果,用逗号隔开,不要有其它字符。(20分) 4. 编程求两个很长的整数之和,比如两个20位十进制整数。(很长的整数指无法用long型存储的数)(25分) 例如: 12345678900987654321+12345678900987654321=24691357801975308642 5.编写布雷程序。(30分) 在一个10*10的方格中,随机分布10个地雷,并在其它没有地雷的格中显示该方格周围相邻的方格中共有几枚地雷。 样例输出:(图中-1的位置表示地雷,其它值表示该位置相邻的八个格子中的地雷数) 答案: 第一题: #include using namespace std; int main() { int i,j,k; for(i=1;i<=20;i++) for(j=1;j<=50;j++) {

k=100-5*i-2*j; if(k>0) cout<<"五分硬币"< using namespace std; int main() { int i,j; //i为服务员编号,j为房间编号 int a[101]; for(int t=1;t<101;t++) a[t]=1; for(i=2;i<101;i++) for(j=i;j<101;j++) if(j%i==0) a[j]*=-1; cout<<"打开的房间为:"; for(i=1;i<101;i++) if(a==1) cout< #include using namespace std; int main() { int a[10],i,sum=0,n=0; float ave,ca; for(i=0;i<10;i++) { cin>>a; sum+=a; } ave=sum/10.0; cout<<"数组平均值为:"<

相关主题