国信蓝点杯软件程序设计大赛真题 1文档格式.docx

上传人:b****6 文档编号:8471568 上传时间:2023-05-11 格式:DOCX 页数:13 大小:41.94KB
下载 相关 举报
国信蓝点杯软件程序设计大赛真题 1文档格式.docx_第1页
第1页 / 共13页
国信蓝点杯软件程序设计大赛真题 1文档格式.docx_第2页
第2页 / 共13页
国信蓝点杯软件程序设计大赛真题 1文档格式.docx_第3页
第3页 / 共13页
国信蓝点杯软件程序设计大赛真题 1文档格式.docx_第4页
第4页 / 共13页
国信蓝点杯软件程序设计大赛真题 1文档格式.docx_第5页
第5页 / 共13页
国信蓝点杯软件程序设计大赛真题 1文档格式.docx_第6页
第6页 / 共13页
国信蓝点杯软件程序设计大赛真题 1文档格式.docx_第7页
第7页 / 共13页
国信蓝点杯软件程序设计大赛真题 1文档格式.docx_第8页
第8页 / 共13页
国信蓝点杯软件程序设计大赛真题 1文档格式.docx_第9页
第9页 / 共13页
国信蓝点杯软件程序设计大赛真题 1文档格式.docx_第10页
第10页 / 共13页
国信蓝点杯软件程序设计大赛真题 1文档格式.docx_第11页
第11页 / 共13页
国信蓝点杯软件程序设计大赛真题 1文档格式.docx_第12页
第12页 / 共13页
国信蓝点杯软件程序设计大赛真题 1文档格式.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

国信蓝点杯软件程序设计大赛真题 1文档格式.docx

《国信蓝点杯软件程序设计大赛真题 1文档格式.docx》由会员分享,可在线阅读,更多相关《国信蓝点杯软件程序设计大赛真题 1文档格式.docx(13页珍藏版)》请在冰点文库上搜索。

国信蓝点杯软件程序设计大赛真题 1文档格式.docx

“我猜也是!

”于是,两人沉默了好久,还是没有算出合适的结果来。

请你利用计算机的优势,找到破解的答案。

把ABCDE所代表的数字写出来。

小明刚上小学,学会了第一个扑克牌“魔术”,到处给人表演。

魔术的内容是这样的:

他手里握着一叠扑克牌:

A,2,....J,Q,K一共13张。

他先自己精心设计它们的顺序,然后正面朝下拿着,开始表演。

只见他先从最下面拿一张放到最上面,再从最下面拿一张翻开放桌子上,是A;

然后再从最下面拿一张放到最上面,再从最下面拿一张翻开放桌子上,是2;

......如此循环直到手中只有一张牌,翻开放桌子上,刚好是K。

这时,桌上牌的顺序是:

A,2,3,4,5,6,7,8,9,10,J,Q,K请你计算一下,小明最开始的时候手里牌的顺序是怎样的。

结果写出来,逗号分割,小明“魔术”开始时,最下面的那张牌输出为第一个数据。

考场不提供扑克牌,你只能用计算机模拟了,撕碎草稿纸模拟扑克属于作弊行为!

另外,你有没有把录像倒着放过?

很有趣的!

回去试试!

在我国古代和近代,一直采用干支法纪年。

它采用10天干和12地支配合,一个循环周期为60年。

10天干是:

甲,乙,丙,丁,戊,己,庚,辛,壬,癸

12地支是:

子,丑,寅,卯,辰,巳,午,未,申,酉,戌,亥

如果某年是甲子,下一年就是乙丑,再下是丙寅,......癸酉,甲戌,乙亥,丙子,....总之天干、地址都是循环使用,两两配对。

今年(2012)是壬辰年,1911年辛亥革命

下面的代码根据公历年份输出相应的干支法纪年。

已知最近的甲子年是1984年。

voidf(intyear)

{

char*x[]={"

甲"

"

乙"

丙"

丁"

戊"

己"

庚"

辛"

壬"

癸"

};

char*y[]={"

子"

丑"

寅"

卯"

辰"

巳"

午"

未"

申"

酉"

戌"

亥"

intn=year-1984;

while(n<

0)n+=60;

printf("

%s%s\n"

x[_______],y[_______]);

}

intmain(intargc,char*argv[])

f(1911);

f(1970);

f(2012);

return0;

请分析代码逻辑,并推测划线处的代码。

注意:

只写划线处应该填的内容,划线前后的内容不要抄写。

如果让你设计个程序,用什么变量保存身份证号码呢?

长整数可以吗?

不可以!

因为有人的身份证最后一位是"

X"

实际上,除了最后一位的X,不会出现其它字母!

身份证号码18位=17位+校验码

校验码的计算过程:

例如:

身份证前17位=ABCDEFGHIJKLMNOPQ

A~Q每位数字乘以权值求和(每位数字和它对应的“权”相乘后累加)

17位对应的权值分别是:

7910584216379105842

求出的总和再对11求模

然后按下表映射:

余数012345678910

校验码:

10X98765432

下面的代码实现了校验过程,输入串为身份证前17位,返回了校验码。

charverifyCode(char*s)

staticintweight[]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};

staticcharmap[]={'

1'

'

0'

X'

9'

8'

7'

6'

5'

4'

3'

2'

intsum=0;

for(inti=0;

i<

17;

i++)

{

sum+=(______________)*weight[i];

//填空

}

returnmap[____________];

注意:

对一方阵转置,就是把原来的行号变列号,原来的列号变行号个

例如,如下的方阵:

1234

5678

9101112

13141516

转置后变为:

15913

261014

371115

481216

但,如果是对该方阵顺时针旋转(不是转置),却是如下结果:

13951

141062

151173

161284

下面的代码实现的功能就是要把一个方阵顺时针旋转。

voidrotate(int*x,intrank)

int*y=(int*)malloc(___________________);

rank*rank;

y[_________________________]=x[i];

for(i=0;

rank*rank;

x[i]=y[i];

free(y);

intx[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};

intrank=4;

rotate(&

x[0][0],rank);

rank;

for(intj=0;

j<

j++)

{

printf("

%4d"

x[i][j]);

}

printf("

\n"

);

30年的改革开放,给中国带来了翻天覆地的变化。

2011全年中国手机产量约为11.72亿部。

手机已经成为百姓的基本日用品!

给手机选个好听又好记的号码可能是许多人的心愿。

但号源有限,只能辅以有偿选号的方法了。

这个程序的目的就是:

根据给定的手机尾号(4位),按照一定的规则来打分。

其规则如下:

1.如果出现连号,不管升序还是降序,都加5分。

例如:

5678,4321都满足加分标准。

2.前三个数字相同,或后三个数字相同,都加3分。

4888,6665,7777都满足加分的标准。

7777因为满足这条标准两次,所以这条规则给它加了6分。

3.符合AABB或者ABAB模式的加1分。

2255,3939,7777都符合这个模式,所以都被加分。

7777因为满足这条标准两次,所以这条标准给它加了2分。

4.含有:

6,8,9中任何一个数字,每出现一次加1分。

例如4326,6875,9918都符合加分标准。

其中,6875被加2分;

9918被加3分。

尾号最终得分就是每条标准的加分总和!

要求程序从标准输入接收数据,在标准输出上输出结果。

输入格式为:

第一行是一个整数n(<

100),表示下边有多少输入行,接下来是n行4位一组的数据,就是等待计算加分的手机尾号。

输出格式为:

n行整数。

例如,输入:

14

3045

0211

2345

6543

7777

8888

7878

7788

6688

2424

2244

9918

6789

8866

则输出:

5

6

8

12

3

1

请仔细调试!

您的程序只有能运行出正确结果的时候才有机会得分!

在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。

请把所有函数写在同一个文件中,调试好后,存入与【考生文件夹】下对应题号的“解答.txt”中即可。

相关的工程文件不要拷入。

源代码中不能能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。

允许使用STL类库,但不能使用MFC或ATL等非ANSIc++标准的类库。

例如,不能使用CString类型(属于MFC类库)。

古罗马帝国开创了辉煌的人类文明,但他们的数字表示法的确有些繁琐,尤其在表示大数的时候,现在看起来简直不能忍受,所以在现代很少使用了。

之所以这样,不是因为发明表示法的人的智力的问题,而是因为一个宗教的原因,当时的宗教禁止在数字中出现0的概念!

罗马数字的表示主要依赖以下几个基本符号:

I1

V5

X10

L50

C100

D500

M1000

这里,我们只介绍一下1000以内的数字的表示法。

单个符号重复多少次,就表示多少倍。

最多重复3次。

比如:

CCC表示300XX表示20,但150并不用LLL表示,这个规则仅适用于IXCM。

如果相邻级别的大单位在右,小单位在左,表示大单位中扣除小单位。

IX表示9IV表示4XL表示40更多的示例参见下表,你找到规律了吗?

I,1

II,2

III,3

IV,4

V,5

VI,6

VII,7

VIII,8

IX,9

X,10

XI,11

XII,12

XIII,13

XIV,14

XV,15

XVI,16

XVII,17

XVIII,18

XIX,19

XX,20

XXI,21

XXII,22

XXIX,29

XXX,30

XXXIV,34

XXXV,35

XXXIX,39

XL,40

L,50

LI,51

LV,55

LX,60

LXV,65

LXXX,80

XC,90

XCIII,93

XCV,95

XCVIII,98

XCIX,99

C,100

CC,200

CCC,300

CD,400

D,500

DC,600

DCC,700

DCCC,800

CM,900

CMXCIX,999

本题目的要求是:

请编写程序,由用户输入若干个罗马数字串,程序输出对应的十进制表示。

输入格式是:

第一行是整数n,表示接下来有n个罗马数字(n<

100)。

以后每行一个罗马数字。

罗马数字大小不超过999。

要求程序输出n行,就是罗马数字对应的十进制数据。

例如,用户输入:

LXXX

XCIII

DCCII

则程序应该输出:

80

93

702

a)2x3=6个方格中放入ABCDE五个字母,右下角的那个格空着。

如图【1.jpg】所示。

b)

c)和空格子相邻的格子中的字母可以移动到空格中,比如,图中的C和E就可以移动,移动后的局面分别是:

d)

e)AB

f)DEC

g)

h)ABC

i)DE

j)

k)为了表示方便,我们把6个格子中字母配置用一个串表示出来,比如上边的两种局面分别表示为:

l)

m)AB*DEC

n)ABCD*E

o)

p)题目的要求是:

请编写程序,由用户输入若干表示局面的串,程序通过计算,输出是否能通过对初始状态经过若干次移动到达该状态。

可以实现输出1,否则输出0。

初始状态为:

ABCDE*

q)

r)用户输入的格式是:

先是一个整数n,表示接下来有n行状态。

程序输出也应该是n行1或0

s)

t)例如,用户输入:

u)

v)3

w)ABCDE*

x)AB*DEC

y)CAED*B

zz)

aa)则程序应该输出:

bb)1

cc)1

dd)0

ee)

ff)

gg)注意:

hh)

ii)请仔细调试!

jj)

kk)在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。

ll)

mm)请把所有函数写在同一个文件中,调试好后,存入与【考生文件夹】下对应题号的“解答.txt”中即可。

nn)

oo)相关的工程文件不要拷入。

pp)

qq)源代码中不能能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。

rr)

ss)允许使用STL类库,但不能使用MFC或ATL等非ANSIc++标准的类库。

tt)

uu)

vv)

ww)

xx)

yy)

zzz)

aaa)

bbb)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2