国信蓝点杯 软件程序设计大赛真题.docx

上传人:b****7 文档编号:23831419 上传时间:2023-05-21 格式:DOCX 页数:15 大小:41.58KB
下载 相关 举报
国信蓝点杯 软件程序设计大赛真题.docx_第1页
第1页 / 共15页
国信蓝点杯 软件程序设计大赛真题.docx_第2页
第2页 / 共15页
国信蓝点杯 软件程序设计大赛真题.docx_第3页
第3页 / 共15页
国信蓝点杯 软件程序设计大赛真题.docx_第4页
第4页 / 共15页
国信蓝点杯 软件程序设计大赛真题.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

国信蓝点杯 软件程序设计大赛真题.docx

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

国信蓝点杯 软件程序设计大赛真题.docx

国信蓝点杯软件程序设计大赛真题

2012国信蓝点杯软件程序设计大赛真题

造成高房价的原因有许多,比如土地出让价格。

既然地价高,土地的面积必须仔细计算。

遗憾的是,有些地块的形状不规则,比如是如图【1.jpg】中所示的五边形。

一般需要把它划分为多个三角形来计算。

已知三边求三角形的面积需要用海伦定理,参见【2.jpg】

各条边长数据如下:

AB=52.1

BC=57.2

CD=43.5

DE=51.9

EA=33.4

EB=68.2

EC=71.9

根据这些数据求五边形地块的面积。

四舍五入到小数后两位。

大数学家欧拉在集市上遇到了本村的两个农妇,每人跨着个空篮子。

她们和欧拉打招呼说两人刚刚卖完了所有的鸡蛋。

欧拉随便问:

“卖了多少鸡蛋呢?

”不料一个说:

“我们两人自己卖自己的,一共卖了150个鸡蛋,虽然我们卖的鸡蛋有多有少,但刚好得了同样的钱数。

你猜猜看!

”欧拉猜不出。

另一个补充道:

“如果我按她那样的价格卖,可以得到32元;如果她按我的价格卖,可以得到24.5元”。

欧拉想了想,说出了正确答案。

我们不是数学家,懒得列出公式来分析。

但计算机可以“暴力破解”,就是把所有可能情况都试验一遍,撞上为止!

请写出每人鸡蛋的数目(顺序不限),用逗号隔开。

福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:

ABCDE*?

=EDCBA他对华生说:

“ABCDE应该代表不同的数字,问号也代表某个数字!

”华生:

“我猜也是!

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

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

把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(___________________);//填空

for(inti=0;i

{

y[_________________________]=x[i];//填空

}

for(i=0;i

{

x[i]=y[i];

}

free(y);

}

intmain(intargc,char*argv[])

{

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);

for(inti=0;i

{

for(intj=0;j

{

printf("%4d",x[i][j]);

}

printf("\n");

}

return0;

}

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

注意:

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

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

则输出:

0

0

5

6

8

12

3

3

5

1

1

3

8

5

注意:

请仔细调试!

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

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

请把所有函数写在同一个文件中,调试好后,存入与【考生文件夹】下对应题号的“解答.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行,就是罗马数字对应的十进制数据。

例如,用户输入:

3

LXXX

XCIII

DCCII

则程序应该输出:

80

93

702

注意:

请仔细调试!

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

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

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

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

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

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

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

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

如图【1.jpg】所示。

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

AB

DEC

ABC

DE

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

AB*DEC

ABCD*E

题目的要求是:

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

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

初始状态为:

ABCDE*

用户输入的格式是:

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

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

例如,用户输入:

3

ABCDE*

AB*DEC

CAED*B

则程序应该输出:

1

1

0

注意:

请仔细调试!

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

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

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

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

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

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

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

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

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1