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,只要能得到答案。请说明最坏情况需要多少次尝试以及你的思路。

c/c++ 编程试题相关推荐

  1. 计算机三级四级机考,2017年全国计算机等级考试四级上机编程试题一

    试题说明 : 已知在文件IN.DAT中存有若干个(个数<200)四位数字的正整数, 函数ReadDat( )是读取这若干个正整数并存入数组xx中.请编制函数CalValue( ), 其功能要求: ...

  2. 计算机在土木工程中的应用课设,计算机在土木工程中的应用编程试题

    计算机在土木工程中的应用编程试题 (10页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 第一题(1)程序:10 READN20 1= 130 ...

  3. 东北大学c语言及程序设计题库,东北大学c语言编程试题及其答案.doc

    东北大学c语言编程试题及其答案.doc 东北大学C语言程序设计题库第一部分(选择题)1.构成C语言的基本单位是________.你的答案是:正确答案是:B过程函数语句命令2.设x为整型变量,不能正确表 ...

  4. 东北大学c语言编程尸体,东北大学c语言编程试题及其答案

    C语言,试题,答案! 1. 本文由向闯向闯贡献 1编程:要求输入整数a和b,若a*a+b*b大于100,则输出a*a+b*b 百位以上的数字,否则输出两数之和a+b. #include main() ...

  5. C语言控制流编程试题,可编程序控制系统设计师(中级)职业认证理论考试试题(含答案).doc...

    可编程序控制系统设计师(中级)职业认证理论考试试题(含答案).doc 可编程序控制系统设计师(中级)职业认证理论考试试题(含答案) 一.单项选择题 1.以下对S7-200PLC变量存储器V描述不正确的 ...

  6. C语言控制流编程试题,可编程控制器PLC试题及答案

    <可编程控制器PLC试题及答案>由会员分享,可在线阅读,更多相关<可编程控制器PLC试题及答案(5页珍藏版)>请在人人文库网上搜索. 1.一.填空1.可编程控制器的硬件组成与微 ...

  7. python编程试题定位列表元素的函数是_笨办法学Python 习题 34: 访问列表的元素

    列表的用处很大,但只有你能访问里边的内容时它才能发挥出作用来.你已经学会了按顺序读出列表的内容,但如果你要得到第 5 个元素该怎么办呢?你需要知道如何访问列表中的元素.访问第一个元素的方法是这样的:a ...

  8. 使用java实现面向对象编程试题答案,面试题+笔记+项目实战

    一.掀起Spring的盖头来 Spring框架的由来 Spring框架概述 二.Spring的IoC容器 重头开始认识loC的基本概念:(构造方法注入+scttcr方法注入+接口注入) 运筹帷幄的秘密 ...

  9. 目前计算机辅助数控编程的方法,数控编程试题(附自己整理的答案)

    有福同享,有难同当 小博赠言 一.填空题 1. 数控机床大体由 输入装置.数控装置.伺服系统.机床本体 四个部分组成. 2. 数控机床按控制系统功能特点分类分为:开环控制数控机床.闭环控制数控机床. ...

最新文章

  1. 十问陆奇:努力、能力和机遇,谁能帮你跑赢未来?
  2. 2016 、12 、11本周
  3. php es6写法,ES6...扩展运算符(示例代码)
  4. Context结构图
  5. 作为一个web开发人员,哪些技术细节是在发布站点前你需要考虑到的
  6. zend studio常见问题解答
  7. [蓝桥杯2018初赛]乘积尾零-数论
  8. 用php模拟斗地主发牌,php模拟实现斗地主发牌
  9. 做了6年的Java,mysql配置环境变量mac
  10. Android:Android NDK项目中C++文件中打印日志
  11. django+layUI表格序号自动增加
  12. Dell 2850 lsi raid卡使用指南
  13. nginx源码分析之IO多路复用流程
  14. Java中Spring Cloud Ribbon
  15. 2018专转本计算机百度云资源,2018年江苏专转本计算机真题版
  16. 酷我 android 目录,酷我听听:Android平台最强音乐播放器
  17. 玩转大数据系列之二:数据分析与处理
  18. php网站 小偷源代码
  19. YB2411内置MOS高耐压60V/0.6A高效率DCDC降压芯片
  20. 禁止计算机使用u盘启动,电脑禁用u盘的设置方法

热门文章

  1. php做一个微信退款,PHP实现微信申请退款流程实例代码
  2. android系统相机自动录像,android 调用系统相机录像并保存
  3. mysql增量_mysql实时增量备份
  4. js使用hover事件做一个“个人中心”的浮动层
  5. 二、先在SD卡上启动U-boot,再烧写新的U-boot进Nandflash
  6. skype for business 无法共享桌面、无法传输图片
  7. Mongo 查询(可视化工具)
  8. python—内置函数-字符串,eval,isinstance
  9. [HNOI2015] 落忆枫音
  10. DFS:C 小Y的难题(1)