三、编程题(4小题共40.0分)程序及结果写入对应文框内

1. 孪生素数查找程序。

所谓孪生素数指的是间隔为2 的相邻素数,就像孪生兄弟。最小的孪生素数是(3, 5),在100 以内的孪生素数还有 (5, 7), (11, 13), (17, 19), (29, 31), (41, 43), (59, 61) 和(71, 73),总计有 8 组。

现给定一个正整数number,要求编程计算出小于等于number的孪生素数的组数,请根据要求,完成getPrimeTwins方法。

方法原型如下:

/**

* 参数:

* number: 查找孪生素数的最大值

* 返回结果:

* 在[0,number]中孪生素数的总组数

**/

int getPrimeTwins(int number){}

我的答案:

int getPrimeTwins(int number)
{
int Result = 0;
int NumMark = 0;
int i;
for (i = 3; i <= number; i++)
{
bool Mark = true;
int j;
for (j = 2; j <= System.Math.Sqrt(i); j++)
{
if (i % j == 0)
{
Mark = false;
break;
}
}
if (Mark)
{
if (i - NumMark == 2)
{
Result += 1;
}
NumMark = i;
}
}
return Result;
}

2. 文字祖玛游戏

需求如下:

1).程序通过控制台输出一个字符串,由A、B、C、D、E五个字母组成,例如:ACBEEBBAD。

2).用户输入一个字符,只能是A、B、C、D、E其中之一,然后再输入一个要插入的位置。

3).程序会将这个字符插入到字符串的指定位置前(第一个字符位置为0,第二个字符位置为1,依此类推),然后消除连续出现的三个相同的字符,直到没有连续三个相同的字符为止。

例如:

控制台输出:ACBEEBBAD

用户输入:E, 3

控制台输出:ACAD

以上示例表示:在位置3插入E后,结果是:ACBEEEBBAD,消除连续的三个E,结果是:ACBBBAD再次消除连续三个B,结果是:ACAD。

要求如下:

A.为实现此游戏,需要设计一个方法DealString()

/**

* 参数:

* str: 原始字符串

* index: 要插入字符的位置

* letter: 要插入的字符

* 返回结果: 经过处理后的字符串

**/

string DealString(string str,int index,char letter)

{

}

例如:原始字符串是ACBEEBBAD,执行方法DealString(“ACBEEBBAD”,3,’E’)后,会返回ACAD。

B.如果方法输入参数不合理,方法DealString的返回值为null。

我的答案:

string DealString(string str, int index, char letter)
{
if (string.IsNullOrEmpty(str))
{
return null;
}
if (index < 0 || index > str.Length)
{
return null;
}
if (letter < 65 || letter > 69)
{
return null;
}
str = str.Insert(index, letter.ToString()).ToUpper();
char PChar = '\0';
int Count = 0;
for (int i = 0; i < str.Length; i++)
{
char Temp = str[i];
if (PChar == Temp)
{
Count++;
}
else
{
if (Count >= 3)
{
str = str.Remove(i - Count, Count);
i = 0;
PChar = '\0';
Count = 0;
}
PChar = Temp;
Count = 1;
}
}
return str;
}

3. RPG游戏比武算法

在一款RPG游戏中,散落着各式各样的大侠,有上千个之多。他们没有什么固定的事情要做,整天在江湖中走动,碰到和自己不是一派的人,就免不了要比武。但大侠们都很讲义气,绝对不打自己同一派的人。而江湖中存在很多的派别,派别之间的大侠在比武时,辈分越接近掌门人的大侠武功越历害。比如周芷若是峨眉掌门灭绝师太的亲传弟子,而张无忌是明教教主(算是掌门人了),所以周芷若是绝对打不过张无忌的。

假设我们用整数数组来表示一个江湖,数组元素的一个下标表示江湖中的某一位大侠的编号,而数组元素的值保存的则是这位大侠的直接上级(或师父)。请写出一个方法,来判断两位大侠遭遇后是否会比武,如果会,则还要判断谁赢谁输。

数组用例如下:

2       3       5       4       6       7       6       7       8       …

0       1       2       3       4       5       6       7       8       …

如上数组,编号为0的上级是2,2的上级是5,5的上级是7,而7的上级还是7,说明7是掌门人。另外一个掌门人是编号为6的大侠。8是无门无派的大侠,相当于掌门人级别。如果编号为5的大侠和编号为3的大侠比武,肯定是编号为5的赢,因为5是掌门人7的第一代弟子,而3则是掌门人6的第二代弟子。

已有枚举类型如下:

enum FightResult{

  WIN, //赢

  LOSE, //输

  TIE, //打平

  ONE_OF_US //自己人

  };

定义如下方法:

/**

* 参数:

* heros: 大侠数组,其中保存着所有大侠及其上级

* hero1: 要比武的其中一位大侠的编号

* hero2: 要比武的另外一位大侠的编号

* 返回结果:

* 如果大侠hero1赢,则返回WIN,如果hero2赢,则返回LOSE,

* 如果打平,则返回TIE,如果两位大侠是同一门派,则返回ONE_OF_US;

**/

FightResult Fire(int[] heros, int hero1, int hero2)

{

}

我的答案:

FightResult Fire(int[] heros, int hero1, int hero2)
{
int herotemp1 = hero1;
int level1 = 0;
while (heros[herotemp1] != herotemp1)
{
level1++;
herotemp1 = heros[herotemp1];
if (herotemp1 == hero2)
{
return FightResult.ONE_OF_US;
}
}
int herotemp2 = hero2;
int level2 = 0;
while (heros[herotemp2] != herotemp2)
{
level2++;
herotemp2 = heros[herotemp2];
if (herotemp2 == hero1)
{
return FightResult.ONE_OF_US;
}
}
if (level1 < level2)
{
return FightResult.WIN;
}
else if (level1 > level2)
{
return FightResult.LOSE;
}
else
{
return FightResult.TIE;
}
}

4. Unix登录记录匹配

1).需求描述:

将Unix登录日志文件log.txt中,登录登出记录查找匹配为成对的登录登出日志对,并将成对的日志记录写入文件log-rec.txt中。

2).输入数据描述:

日志文件log.txt中包含用户的登录信息如下:

lidz,441232,7,1382944906,192.168.1.61

baizt,16321,7,1383942096,192.168.1.78

tongxy,15332,7,1384056708,192.168.1.65

moxb,23123,7,1385052008,192.168.1.69

huangr,12348,7,1385148286,192.168.1.38

huangr,12348,8,1385151886,192.168.1.38

luwsh,12356,7,1385255596,192.168.1.45

guojing,12341,7,1385270496,192.168.1.34

luxiucai,21356,7,1385273785,192.168.1.62

guojing,12341,8,1385276564,192.168.1.34

每条登录记录中数据结构是:

登录的OS 账号, 登录的进程 ID,登录状态, 登录/登出的时间, 终端IP

每条登录记录中必须采集如下信息:

3).匹配规则: 具有相同的登录的OS 账号, 登录的进程ID和终端IP 并且登录状态分别是7和8

的登录记录为一对登录数据。

4). 输出文件: 成对的登录记录对文件log-rec.txt,文件内容格式如下:

huangr,12348,7,1385148286,192.168.1.38|huangr,12348,8,1385151886,192.168.1.38

guojing,12341,7,1385270496,192.168.1.34|guojing,12341,8,1385276564,192.168.1.34

5). 要求实现算法:

void matchLog(string logFile, string logRecFile)

该方法,首先读取logFile 文件的内容,然后匹配成登录登出日志对,最后将日志对输出到

logRecFile中。

==

考试期间木有写完~~

某软件大赛C#版考题整理——【编程题】的更多相关文章

  1. 某软件大赛C#版考题整理——【单选题】

    多选题:http://www.cnblogs.com/zxlovenet/p/3525849.html 编程题:http://www.cnblogs.com/zxlovenet/p/3525854.h ...

  2. 某软件大赛C#版考题整理——【多选题】

    二.多选题(20小题共40.0分) 1. 下列选项中,属于HTML按钮元素的是:(). A. <input name="btn" type="button" ...

  3. C#版考题

    某软件大赛C#版考题整理——[单选题]   一.单选题(10小题共20.0分) 1. 以下JavaScript代码的正确输出结果是:(). 1 2 3 4 5 6 7 8 9 <script t ...

  4. Atitit. 高级软件工程师and 普通的区别 高级编程的门槛总结

    Atitit.  高级软件工程师and 普通的区别 高级编程的门槛总结 1. 完备的知识体系 2 2. 编程理论/原理的掌握 2 1.1. 掌握常用的概念(ORM,IOC,AOP,event driv ...

  5. Office办公软件(Excel PPT Word)使用整理

    Office办公软件(Excel PPT Word)使用整理.. -------------- Excel默认打印预览于当前连接的打印机的纸张大小保持一致. Excel sheet不见了怎么办 --- ...

  6. 常用的软件设计模式的Java实现——让编程从野生到飞起

    常用的软件设计模式的Java实现——让编程从野生到飞起_野生技术协会_科技_bilibili_哔哩哔哩  https://www.bilibili.com/video/av7596511/

  7. eclipse快捷键(Mac版)整理

    eclipse快捷键(Mac版)整理 前言: 最近在学习JDBC,老师用的是eclipse,对于习惯了IDEA的我来说,没有了快捷键,效率明显下降. 我认为,开发工具的熟练使用,也是程序员必备的一项技 ...

  8. 2017 CVTE春招内推专场 C/C++软件开发岗笔试编程题

    先来一波吐槽:选择题全是不定项选择,考的内容在我看来,"反正我接受唔到咯". 比如: 1.Windows操作系统某个通信机制(具体题目忘了,反正答案我选了个熟悉的名词"消 ...

  9. 『编程题全队』Alpha 阶段冲刺博客Day8

    1.每日站立式会议 1.会议照片 2.昨天已完成的工作统计 孙志威: 1.修复了看板任务框拖拽时候位置不够精确的问题 2.向个人界面下添加了工具栏 3.个人界面下添加了任务框测试 孙慧君: 1.个人任 ...

随机推荐

  1. vue 的事件冒泡

    一.事件冒泡 方法一.使用event.cancelBubble = true来组织冒泡 <div @click="show2()"> <input type=&q ...

  2. Docker 入门 --- 命令总结

    Docker命令总结 前言 命令来自于官网的get-started教程,放在这里自用 part-1 ## List Docker CLI commands docker docker containe ...

  3. plsql连接远程oracle和like无法查询中文问题

    https://blog.csdn.net/yangguangzhidi/article/details/53301979 ************************************** ...

  4. 【转】Android的root原理

    转自知乎:https://www.zhihu.com/question/21074979 @Kevin @张炬 作者:Kevin链接:https://www.zhihu.com/question/21 ...

  5. 【Math】证明:实对称阵属于不同特征值的的特征向量是正交的

    证明:实对称阵属于不同特征值的的特征向量是正交的. 设Ap=mp,Aq=nq,其中A是实对称矩阵,m,n为其不同的特征值,p,q分别为其对应得特征向量. 则 p1(Aq)=p1(nq)=np1q (p ...

  6. 【机器学习】随机森林(Random Forest)

    随机森林是一个最近比较火的算法 它有很多的优点: 在数据集上表现良好 在当前的很多数据集上,相对其他算法有着很大的优势 它能够处理很高维度(feature很多)的数据,并且不用做特征选择 在训练完后, ...

  7. 【爬虫】通用抽取网页URL

    package model; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; i ...

  8. 【Java】异常类处理层次

    异常处理简介 异常在java的开发中可能没有那么被重视.一般遇到异常,直接上抛,或者随便catch一下处理之后对于程序整体运行也没有什么大的影响.不过在企业级设计开发中,异常的设计与处理的好坏,往往就 ...

  9. 正则表达式-python-无捕获分组与分支选择

    无捕获分组 当你要将一部分规则作为一个整体对它进行某些操作,比如指定其重复次数时,你需要将这部分规则用 (?:) 把它包围起来. 分支条件 在正则表达式中,分支条件是一个很常用的条件. 满足条件A 或 ...

  10. Android 底部按钮BottomNavigationView + Fragment + viewPager 的使用(一)

    实现的效果,左右滑动,底部栏跟着滑动,中间加的是分帧的页面        上代码:主页面activity_main.xml <?xml version="1.0" encod ...