c/c++ 编程试题

c/c++ 编程试题
带*号为选作题,给出代码截屏和编译运算结果截屏

1.编程:选取M个最大的数 编程实现从N个无序数中选取M个最大的数(0 < M < N )

思路:通过冒泡排序或者选择排序对N个数进行递减排序,然后输入前M个数即可。这里我想到的是通过数组来存储这N个数。

#include <iostream>
#include <stdio.h>using namespace std;int main()
{int i,j,t,N,M,a[1000];printf("请输入N:");scanf("%d",&N);for(i=0;i<N;i++){scanf("%d",&a[i]);}for(i=0;i<N-1;i++){for(j=0;j<N-1-i;j++){if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("请输入M:");scanf("%d",&M);for(j=0;j<M;j++){printf("%d\n",a[j]);}return 0;
}

在这里插入图片描述

2.编程:断开链条 给定一个包含N个整数的数组A,假设这个数组表示的是一条链条,其中 每个元素表示链条上的一环。现在我们想把这条链条断成3小部分。我们需 要做的就是断开不相连的两个环,比如,我们需要断开环P、Q
(0<P<Q<N-1, Q-P > 1),得到三个小链条[0,P-1],[P+1,Q-1],[Q+1,N-1]。
上述操作的成本是A[P]+A[Q]。 例如:数组A为 A[0] = 5 A[1] = 2 A[2] = 4 A[3] = 6 A[4] =
3 A[5] = 7 我们可以选择如下方式断开链条

  • (1,3):成本是 2+6 = 8
  • (1,4):成本是 2+3 = 5
  • (2,4):成本是 4+3 = 7 写一个函数如int breakchain(参数列表自定义); 对任一个给定的链条,返回断开链条的最低成本,比如上面的例子中, 需要返回最低成本5 假设:
  • N是整数,范围[5,100000] A的元素是范围在[1,1000000000]的整数

3.编程:顺时针环绕列印矩阵元素 给定一个整数元素组成的矩阵,写一个函数,返回一个数组,数组中的元 素是按照顺时针遍历矩阵中的元素而组成。例如如下的3x4矩阵: 2, 3, 4, 8 5, 7, 9, 12 1, 0, 6, 10
得到的数组的元素按照顺序是“2, 3, 4, 8, 12, 10, 6, 0, 1, 5, 7, 9”.

我读完该题的时候脑子里面想到了《算法竞赛 入门经典 第2版》里面P40页的蛇形填数问题。
即:在n * n方阵里填入1,2,…,n*n,要求填成蛇形。例如,n=4时方阵为:

10  11  12  19  16  13  28  15  14  37   6   5  4
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#define maxn 20
int a[maxn][maxn];
using namespace std;int main()
{int n,x,y,tot = 0;scanf("%d",&n);memset(a,0,sizeof(a));tot = a[x=0][y=n-1] = 1;while(tot < n*n){while(x+1 < n && !a[x+1][y]) a[++x][y]=++tot;while(y-1 >=0 && !a[x][y-1]) a[x][--y]=++tot;while(x-1 >=0 && !a[x-1][y]) a[--x][y]=++tot;while(y+1 < n && !a[x][y+1]) a[x][++y]=++tot;}for(x = 0;x < n;x++){for(y=0;y<n;y++)printf("%3d",a[x][y]);printf("\n");}return 0;
}

当然这道题可以参考蛇形填数来进行改编

4.编程:最大方形长度 给定一个元素是布尔型大小为NM的矩阵A。大小为L的方形可以放置在A 中的(X,Y)处,如果满足: 0 < L <= min(N,M) - 1 0 <= X <= N-L 0 <= Y <= M-L A[X+i][Y+j] = true, 0 <= i
< L, 0 <= j < L 如果L能被放置在(X,Y)以及(X+1,Y)或者(X,Y+1),我们说它可以被
从(X,Y)移动到(X+1,Y)或者(X,Y+1)。 我们想找出满足以下条件的最大的L: L可以被放置在(0,0)(假如此处为true)
它可以被经过一系列的移动,从(0,0)到达(N-L,M-L)
换言之,我们想找到最大的方形,可以从为true的左上移动到为true的右下,该方形覆盖的区域都是true,移动方式是向下或者向右移动。一个极端情况是如果矩阵A中的元素全部是true,那
么L = min(N,M) - 1。 写一个函数:比如int moveSquare(参数列表自定义); 返回值为L。 比如:
A[0][0]=true A[0][1]=true A[0][2]=true A[0][3]=false A[1][0]=true
A[1][1]=true A[1][2]=true A[1][3]=false A[2][0]=true A[2][1]=true
A[2][2]=true A[2][3]=false A[3][0]=true A[3][1]=true A[3][2]=true
A[3][3]=true A[4][0]=false A[4][1]=true A[4][2]=true A[4][3]=true
A[5][0]=true A[5][1]=false A[5][2]=true A[5][3]=true 返回 2
A[0][0]=true A[0][1]=true A[0][2]=false A[0][3]=false A[1][0]=true
A[1][1]=false A[1][2]=false A[1][3]=false A[2][0]=false
A[2][1]=true A[2][2]=false A[2][3]=true 返回 0 A[1][1]=true 返回 1
假设N和M是范围为[1,200]的整数

5.*问答题(建议编程实现)

假设你站在120层摩天大楼的天台,手握两个iphone
x,并且可轻易到达任一楼层的阳台。请用最少的尝试次数nTry,确定能够让iphone自由下落而不会摔坏的最高层数nMaxLayer。比如20层摔不坏,21层摔坏,则nMaxLayer=21。在尝试中你可以摔坏这两个iphone,只要能得到答案。请说明最坏情况需要多少次尝试以及你的思路。

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

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

相关文章

mysql inception web_基于Inception搭建MySQL SQL审核平台Yearing

Inception1. Inceptionj简介Inception是一款针对MySQL的SQL语句审核自动化运维工具。使用Inception&#xff0c;将会给DBA带来更大的便利性&#xff0c;将DBA从繁冗的工作中解放出来&#xff0c;做更多的自动化工作&#xff0c;或者从架构方面研究如何更大程度地保证数据库的高…

VS2010 运行库设置

如下图所示&#xff0c;当在一个EXE工程中调用lib或dll时&#xff0c;2个工程的下面选项一定要一致&#xff0c;否则会导致exe工程编译不过。 原则&#xff1a; Debug下&#xff0c;默认是MTd&#xff1b; Release下&#xff0c;默认是MT。 转载于:https://www.cnblogs.com/lgh…

零拷贝、mmap、sendfile

目录零拷贝mmapsendFile总结零拷贝 要了解零拷贝&#xff0c;首先得先了解一下传统 IO 的执行流程&#xff0c;这里举个例子&#xff0c;通过传统的 IO 进行网络传输来传输一个文件。 先上一张图&#xff0c;这张图就代表了传统 IO 传输文件的流程。 读取文件的时候&#xf…

网页服务器和mysql服务器_实现Web服务器之间使用同一个MYSQL和相同的网页配置文件的方法...

实现Web服务器之间使用同一个MYSQL和相同的网页配置文件的方法发布时间&#xff1a;2020-04-15 16:42:41来源&#xff1a;亿速云阅读&#xff1a;133作者&#xff1a;三月栏目&#xff1a;数据库亿速云负载均衡(Cloud Load Balancer)是对多台云服务器进行流量分发的服务。亿速云…

传128GB版iPad4售价为799/929美元

外媒9to5mac报道&#xff0c;苹果将推出一款升级版iPad4&#xff0c;外观和iPad 4相同&#xff0c;还是黑白两色的&#xff0c;只加入了新的SKU。 据报道&#xff0c;这款升级版iPad4还有128GB版&#xff0c;随着这条消息传出&#xff0c;不久关于128GB版iPad4的售价信息也传出…

(西工程-金花)小米路由器连接哆点设置WiFi保姆式教程

小米路由器连接电源,用根网线一端插入寝室的网口处,另一端插入小米路由器的WAN口手机或者电脑连接WiFi,我这里是通过手机浏览器打开192.168.31.1进入无线路由器管理页面进行配置小米路由器&#xff0c;配置WiFi的一些基本参数,例如:WiFi名称,密码之类的信息 进入无线路由器管理…

go 声明二维数组_一篇文章了解Go语言中数组Arrays的使用内幕

概述与其他编程语言类似&#xff0c;Go语言也有数组array。Go语言中&#xff0c;数组的行为和其他语言没有什么不同.Go语言中还有一个叫做切片slice的东西&#xff0c;它就像是对数组的引用。在本文中&#xff0c;我们将只研究数组。定义数组是同一类型元素的连续集合&#xff…

ffmpeg 使用ffplay 进行 hls 拉流 分析 1

ffmpeg 使用 ffplay 进行 hls 拉流 分析 1 从使用ffplay 调用 http://192.168.1.100:8080/live/livestream.m3u8 开始&#xff0c;进入到ffmpeg 的分析使用的协议选择相应的解复用器的步骤。 其他协议或者文件方式的使用ffplay也是这个步骤流程的。 目录&#xff1a;一、流程图…

搜狗输入法输出特殊符号快捷键

https://www.petefreitag.com/cheatsheets/ascii-codes/ 参考上个编码网站大全 详细步骤为&#xff1a;alt长按 &#xff0b; 编码数字 例如&#xff1a;平方的编码为178-----长按alt178 即可&#xff0c;178是数字一个一个挨个按即可 常用的特殊符号如下&#xff1a; 平方&…

[BuildRelease Management]CC.NET架构

一 CC.NET的操作流程 1) 等待Trigger的唤醒&#xff1b; 2&#xff09;从Source Control System查询上次build以后的修改列表&#xff1b; 3&#xff09;如果任何修改被发现或是Trigger触发类型为 force the build &#xff1a; 3.1&#xff09;为build产生一个label number&a…

python 入门到实践期末考试常出现的考试内容_Python编程入门到实践—列表篇(一)...

一、列表是什么&#xff1f;列表由一系列按特定顺序排列的元素组成。可以创建包含字母表中所有字母、数字0-9或所有家庭成员姓名的列表&#xff1b;也可以将任何东西加入列表中&#xff0c;其中的元素之间可以没有任何关系。列表通常包含多个元素&#xff0c;给列表指定一个表示…

c#中将集合写入文本_在C#中将记录插入MySQL数据库

c#中将集合写入文本In the last tutorial (how to connect with MySQL database in C#?), we learned about making the connection with MySQL database in C#. Here, in this tutorial, we will learn how to insert the records in MySQL database in C#? 在上一教程( 如何…

day1-Linux操作系统基础

该专栏所有内容笔记均来自传智播客培训班 1.什么是操作系统&#xff08;operate system OS&#xff09; 小议&#xff1a;承上启下作用&#xff0c;向下可以控制硬件&#xff0c;向上能够支持软件的运行。一个可以控制硬件的软件。 小明找小红聊天&#xff0c;小明打开QQ&…

关闭浏览器 清空session_跨境网络小知识之Session

跨境小伙伴们大家好&#xff0c;上一篇为大家介绍了Cookie&#xff0c;今天就为大家介绍下连接cookie的另一端Session&#xff0c;交互过程中&#xff0c;二者缺一不可。与Cookie相对&#xff0c;Session是存储在服务端的&#xff0c;他们之间是通过一个叫做sessionID的东东建立…

Dojo学习笔记(一):Hello Dojo!

欢迎来到Dojo世界&#xff01;在这篇文章中你将会学习到如何加载Dojo以及探索Dojo的一些核心功能。你还会了解Dojo的基于AMD的模块架构&#xff0c;探索如何加载额外的模块来增加功能到您的Web站点或应用程序&#xff0c;并找出在出错的时如何得到帮助。让我们开始吧 开始学习D…

转:我眼中的Visual Studio 2010架构工具

来自&#xff1a;http://www.cnblogs.com/wayfarer/archive/2010/07/30/1788398.html我眼中的Visual Studio 2010架构工具影响架构质量的是构建体系架构的思想、原则、实践与架构师的经验&#xff0c;绝不是工具。即使是最优秀的架构工具&#xff0c;也不可能像倚天宝剑一般——…

VMware创建Ubuntu操作系统到网络配置详细流程

一、创建虚拟机 Ubuntu下载链接 1&#xff0c;看个人需求了&#xff0c;有更高的版本&#xff0c;下载Ubuntu镜像 2&#xff0c;VMware官网随便下载即可 3&#xff0c;创建新的虚拟机 4&#xff0c;自定义 5&#xff0c;默认即可 6&#xff0c;稍后安装操作系统 7&#xf…

djiango配置mysql_数据库MySQL相关环境配置以及数据库与Go的连接

Linux下安装好MySQL后&#xff0c;Windows安装可视化工具navicatLinux下MySQL与Windows下navicat进行连接:安装的过程很是揪心&#xff0c;各种查网站、大致把坑都写了出来&#xff1a;1、在Linux下的mysql语句中&#xff0c;mysql> select host,user,authentication_string…

基于HtmlParser的网络爬虫

一、 目标 获取网页中的超链接及链接名&#xff0c;如从http://www.hao123.com/开始&#xff0c;抓取所有hao123链接到的超链接&#xff0c;再以获取到的链接网页为目标&#xff0c;获取它所链接到的网页。 二、环境及开发工具 环境&#xff1a;Java 工具&#xff1a;MyEclip…

VMware下Ubuntu无法全屏显示问题

一、运行Ubuntu的时候无法全屏显示&#xff0c;如图所示下载VMware Tools 二、之后将下载的文件拷贝到home文件夹下 三、解压该压缩包 由于该压缩包是.tar.gz结尾的故压缩命令&#xff1a;tar -zxvf VMwareTools-10.2.5-8068393.tar.gz&#xff0c;当然各版本有可能不一样&am…