2019年上半年软件设计师下午试题

news2024/9/23 11:55:35

试题四(共 15 分)

阅读下列说明和 C 代码,回答问题 1 至 3,将解答写在答题纸的对应栏内

【说明】

n 皇后问题描述为:在一个 n*n 的棋盘上摆放 n 个皇后,要求任意两个皇后不能冲突, 即任意两个皇后不在同一行、同一列或者同一斜线上。

算法的基本思想如下:

将第 i 个皇后摆放在第 i 行,i 从 1 开始,每个皇后都从第 1 列开始尝试。尝试时判断 在该列摆放皇后是否与前面的皇后有冲突,如果没有冲突,则在该列摆放皇后,并考虑摆 放下一个皇后;如果有冲突,则考虑下一列。如果该行没有合适的位置,回溯到上一个皇后考虑在原来位置的下一个位置上继续尝试摆放皇后,……,直到找到所有合理摆放方案。

【C 代码】

下面是算法的 C 语言实现。

(1)常量和变量说明

n:皇后数,棋盘规模为n*n

queen[]:皇后摆放位置数组,queen[i]表示第i个皇后的位置,1<=queen[i]<=n

(2)C程序
 

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define n 4

/*
变量说明 
n:皇后数,棋盘规模n*n
queen[]:皇后的摆放位置数组,queen[i]表示第i个皇后的位置,1<=queen[i]<=n 
*/

int queen[n+1];
 
void Show(){     /* 输出所有皇后摆放方案 */
    int i;
    printf("(");
    for(i=1;i<=n;i++){
        printf(" %d",queen[i]);
    }
    printf(")\n");
}

int Place(int j){       /*  检查当前列能否放置皇后,不能放返回0,能放返回1 */
    int i;
    for(i=1;i<j;i++){    /*  检查与已摆放的皇后是否在同一列或者同一斜线上  */
        if((queen[i]==queen[j])  || abs(queen[i]-queen[j]) == (j-i))  {//填空1
            return 0;
        }
    }
	return 1;//填空2
}

void Nqueen(int j){
    int i;
    for(i=1;i<=n;i++){
        queen[j] = i;
        if(Place(j)&&j<=n){//填空3
            if(j == n) {      /* 如果所有皇后都摆放好,则输出当前摆放方案 */
                Show();
            } else {          /* 否则继续摆放下一个皇后 */
            	Nqueen(j+1);//填空4
            }
        }
    }
}
 
int main(){
    Nqueen(1);
    return 0;
}

【问题 1】(8 分)

根据题干说明,填充 C 代码中的空(1)-(4)。

【问题 2】(3 分)

根据题干说明和 C 代码,算法采用的设计策略为 (5)

【问题3】(4分)

当n=4时,有 (6) 种摆放方式,分别为 (7) 。

 

试题五(JAVA)

阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

某软件公司欲开发一款汽车竞速类游戏,需要模拟长轮胎和短轮胎急刹车时在路面上留下的不同痕迹,并考虑后续能模拟更多种轮胎急刹车时的痕迹。现采用策略(Strategy)设计模式来实现该需求,所设计的类图如图5-1所示。
 

【Java 代码】 

package test_2019_1;
import java.util.*;

interface BrakeBehavior  {
    public void stop();  //填空1
    //其余代码省略
}

class LongWheelBrake implements BrakeBehavior {
    public void stop() {
        System.out.println("模拟长轮胎刹车痕迹! ");
    }//其余代码省略
}

class ShortWheelBrake implements BrakeBehavior {
    public void stop() {
        System.out.println("模拟短轮胎刹车痕迹!  ");
    }//其余代码省略
}

abstract class Car {
    protected BrakeBehavior wheel; //填空2
    public void brake(){
        wheel.stop();//填空3
    }
    //其余代码省略
}

class ShortWheelCar extends Car {
    public ShortWheelCar(BrakeBehavior behavior) {
        behavior.stop(); //填空4
    }
    //其余代码省略
}

public class STrategyTest {
    public static void main(String[] args) {
        BrakeBehavior brake = new ShortWheelBrake();
        ShortWheelCar car1 = new ShortWheelCar(brake);
        car1.brake(); //填空5
    }
}
//模拟短轮胎刹车痕迹!  

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/505713.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java入门合集】第五章抽象类和接口(一)

博主&#xff1a;命运之光 专栏&#xff1a;JAVA入门 学习目标 1.了解什么是抽象类&#xff0c;什么是接口&#xff1b; 2.掌握抽象类和接口的定义方法&#xff1b; 3.理解接口和抽象类的使用场景&#xff1b; 4.掌握多态的含义和用法&#xff1b; 5.掌握内部类的定义方法和使用…

2023爱分析·数据开发与管理平台市场厂商评估报告

01.研究范围定义 利用多种数据智能技术实现数据驱动的分析与决策&#xff0c;已经成为当前企业数字化转型最重要的目标之一。随着数据来源日益丰富、数据体量快速增长&#xff0c;企业对数据的依赖和挖掘愈发深入&#xff0c;不仅带来数据应用场景、数据用户角色的复杂和多元&…

“STL算法大全“

前言 欢迎来到&#x1f496;小K&#x1f496;的&#x1f49e;C专栏&#x1f49e;&#xff0c;本小节是继非质变算法的第二篇CSTL算法&#xff0c;所以本节总结了大量的STL算法&#xff0c;以便大家需要时查阅 文章目录 前言质变算法查找算法(13个)排序和通用算法(14个)删除和替…

k8s nfs运行问题、etcd问题、calico网络问题

服务器重启后nfs运行问题导致服务不能正常重启 解决办法 在每个节点下使用如下命令进行查看nfs是否正常启动 systemctl status nfs 如果没有启动&#xff0c;则使用如下命令启动&#xff0c;保证三个节点下的nfs都正常启动 systemctl start nfs 再次查看nfs是否正常启动 syst…

你真的理解PyTorch中的dimension嘛?

文章目录 Understanding dimensions in PyTorch参考 Understanding dimensions in PyTorch 通过可视化3D张量上的求和过程&#xff0c;为PyTorch维度提供更好的直觉 当我们开始用PyTorch张量做一些基本的运算&#xff0c;比如求和时&#xff0c;对于一维张量来说&#xff0c;…

Mysql事务与存储引擎

目录 一、事务的概念二、事务的特点ACID2.1 原子性2.2 一致性2.3 隔离性2.4 持久性2.5 事务的互相影响 三、Mysql事务隔离级别3.1 查询全局事务隔离界别3.2 查询会话事务隔离级别3.3 设置全局事务隔离级别3.4 设置会话事务隔离级别 四、事务控制语句4.1 开始事务与提交4.2 事务…

不同问题来评测百度、谷歌、ChatGPT、Phind、GPT-4(持续更新)

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

ShardingSphere系列四(Sharding-JDBC内核原理及核心源码解析)

文章目录 1. ShardingSphere内核解析1.1 解析引擎1.2 路由引擎1.3 改写引擎1.4 执行引擎1.5 归并引擎 2. ShardingSphere的SPI扩展点2.1 SPI机制2.2 ShardingSphere中的SPI扩展点2.3 实现自定义主键生成策略 3. ShardingSphere源码 1. ShardingSphere内核解析 ShardingSphere虽…

css布局——flex布局知识点总结(青蛙游戏)

文章目录 学习网址推荐align-items、justify-content合并使用左右分布和垂直end flex-directionrowrow-reversecolumncolumn-reserse横向逆转并水平start垂直列并从末尾排列逆向垂直列并左右排列水平居中&#xff0c;垂直end&#xff0c;横向逆向 order、align-selforder改变排…

BOLD动态功能网络连接的时-频-空EEG模式

导读 目的&#xff1a;人们对大规模脑网络功能连接动力学研究的兴趣不断增长&#xff0c;同时也在努力寻找电生理相关。在EEG数据分析中&#xff0c;应用于空域和谱域的常用约束可能会使部分神经活动无法识别。本研究提出了一种与BOLD功能网络连接动态相关的多模态EEG频谱模式…

B. LuoTianyi and the Table

题目链接 Codeforces Round 872 (Div. 2) Example input 5 2 2 1 3 1 4 2 2 -1 -1 -1 -1 2 3 7 8 9 -3 10 8 3 2 4 8 -3 0 -7 1 4 3 -32030 59554 16854 -85927 68060 -64460 -79547 90932 85063 82703 -12001 38762 output 9 0 64 71 1933711 题目大意&#xff1a; 每组测试…

Java 远程debug,IDEA 远程 Debug 调试

有时候我们需要进行远程的debug&#xff0c;本文研究如何进行远程debug&#xff0c;以及使用 IDEA 远程debug的过程中的细节。看完可以解决你的一些疑惑。 配置 远程debug的服务&#xff0c;以SpringBoot微服务为例。 首先&#xff0c;启动SpringBoot需要加上特定的参数。 …

【JUC】浅析ConcurrentLinkedQueue

【JUC】浅析ConcurrentLinkedQueue 文章目录 【JUC】浅析ConcurrentLinkedQueue一、前言二、ConcurrentLinkedQueue的结构三、入队列3.1、入队列的过程3.2、定位尾节点3.3、设置入队节点为尾节点3.4、HOPS的设计意图 四、出队列 一、前言 在并发编程中&#xff0c;有时候需要使…

本文主要介绍在VMware虚拟机里面安装windows sever 2012 R2并且配置hyper-V的过程,此外还涵盖出现问题的解决方案。

系列文章目录 Windows xp 在VMware虚拟机上面安装的详细步骤_xp系统虚拟机 虚拟机VMware里面安装Windows sever 2003版本详细教程 Windows配置虚拟网络 文章目录 系列文章目录 前言 一、配置的前提条件 1.1、实验环境 1.2、资源分享 二、安装教程 2.1、新建windows …

不同设备如何统一语言编程平台高效开发?本文为你揭秘

原文&#xff1a;不同设备如何统一语言编程平台高效开发&#xff1f;本文为你揭秘&#xff0c;点击链接查看更多技术内容。 随着数字化时代的发展&#xff0c;手机、平板、PC、电视、智能手表、车机等智能设备的普及率越来越高&#xff0c;但不同设备往往搭载了不同的操作系统。…

Word控件Spire.Doc 【文本框】教程(1):如何在 C 语言中设置 Word 文本框的内部边距

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…

改写中文句子的软件-修改文章句子的软件

免费语句改写软件 您是否在写博客、新闻稿或者其他需要大量文本的场合中觉得无从下手&#xff1f;您是否为修改一段语句上耗费大量时间感到困扰&#xff1f;如果您有这样的烦恼&#xff0c;那么我向您介绍我们的免费语句改写软件&#xff0c;可以帮助您快速批量语句改写&#x…

“AI代劳”,跨域赋能“智慧企业”

随着全球数字信息化的到来&#xff0c;各大新兴行业企业也逐渐意识到“智慧化”转型的重要性&#xff0c;但目前仍有不少企业在面临着人力成本高、运营管理效率低、营销获客效果差、数据分析能力薄弱等瓶颈&#xff0c;那么&#xff0c;处于这些瓶颈期的企业该如何实现“智慧化…

Vue-弹层显示样式

弹层显示样式1 1.先将左侧样式写 <template><div classhome-category><ul class"menu"><li v-for"i in 10" :key"i"><RouterLink to"/">居家</RouterLink><RouterLink to"/">洗…

pd电源测试-PD电源自动测试系统ATECLOUD-Power

PD电源测试是一种重要的电源测试方法&#xff0c;采用该方法可以更加全面、详细地评估各种电子产品和设备的性能和安全性。本文将阐述PD电源测试的基本原理、测试对象以及测试的应用价值。 首先&#xff0c;PD电源测试的基本原理是通过对电压、电流、功率等重要指标进行测试评…