中小学信息学奥赛CSP-J认证 CCF非专业级别软件能力认证-入门组初赛模拟题第一套(完善程序题)

CCF认证CSP-J入门组模拟测试题第一套

三、完善程序题

第一题 九宫格

请完善下面的程序,将1~9个数字分别填人3x3的九宫格中,第一行的三个数字组成一个三位数。要使第二行的三位数是第一行的2倍,第三行的三位数是第一行的3倍且每个格子里的数字都不能重复,现在要求输出所有的填充方案,以每种方案中的第一行组成的三位数升序输出。

输出格式:

每一种方案输出共三行,每行中每两个数没有空格,每种方案输出后要输出一个空行。

最后一行一个数字,表示方案的总数。

#include<bits/stdc++.h>
using namespace std;
#define n 9
int a[10],b[10],t1,t2,t3,c;
void f(int s){int i;if(①){t1=a[1]*100+a[2]*10+a[3];t2=a[4]*100+a[5]*10+a[6];t3=a[7]*100+a[8]*10+a[9];if(②){cout<<t1<<endl<<t2<<endl<<t3<<endl<<endl;c++;}return;}for(i=1;i<=n;i++){if(b[i]==0){___③___b[i]=1;___④______⑤___}}
}
int main()
{f(1);cout<<c<<endl;
}

程序分析:此程序是通过回溯法找到满足条件的1-9的三个宫格里面的数字,首先定义了两个数组a和b,其中a用于存放1-9的数,b用于标记是否已经使用过某个数。函数f用于递归地生成所有可能的排列。参数s表示当前要填入的位置。当s等于n+1时,表示已经生成了一个完整的排列。然后计算t1、t2和t3的值,并判断是否满足条件。如果满足条件,则输出t1、t2和t3,并将计数器c加1。在f函数中,通过for循环尝试将1-9的数填入当前位置s,如果某个数i没有被使用过,则将它填入a[s],并将b[i]标记为已使用。然后递归调用f函数继续填下一个位置s+1。递归回来后,需要将b[i]标记为未使用,以便后续的排列。

单选题

①处应该填

A. s==n+1
B. s==n
C. s<n
D. s>=n

答案:A

答案分析:此处要填的是完成了一次9个数字的排列,所以答案A

②处应该填

A. t3*2==t2&&t3*3==t1
B. t1*2==t2&&t2*3==t3
C. t1*3==t2&&t1*2==t3
D. t1*2==t2&&t1*3==t3

答案:D

答案分析:此处是满足第二行是第一行2倍,第三行是第一行三倍,所以答案D

③处应该填

A. a[c]=i;
B. a[s]=i;
C. a[i]=s;b[c]=i; 
D. b[s]=i;

答案:B

答案分析:此处是要将第s个位置上的数填上i,所以答案B

④处应该填

A. f(i+1);
B. f(s+1);
C. f(c+1);
D. f(c+i+1):

答案:B

答案分析:填完第s个数字后,往后填s+1个位置对应的数,所以答案B

⑤处应该填

A. a[s]=0;
B. f(s-1);
C. a[s]=i;
D. b[i]=0:

答案:D

答案分析:填完了数字,需要回溯,将i标记为未使用,所以答案D

第二题 拓扑排序

输人一张n节点m条边的有向图,用求该图的一个拓扑排序的方式判断该图是否存在有向环,若有拓扑排序输出拓扑排序,并输出“不存在有向环”,否则直接输出“存在有向环”。

输人:
第一行两个正整数n,m表示节点数和边数。
接下来 m行,每行2个正整数x,y表示节点 x->y 之间有一条边。
输出:
一个拓扑序:按拓扑序输出点的编号。若拓扑序不唯一,输出任意一个均可,并输出“存在有向环”。若无拓扑序,直接输出“不存在有向环”.

#include<iostream>
#include<algorithm>
#include<vector>
#include<stack>
#define N 1001
using namespace std;
int n,m,x,y;
vector<int>G[N];
stack<int>q;
int cnt[N],tpc;
bool pd()
{for(int i=l;i<=n;i++)if(__①__)q.push(i);while(!q.empty()){int u=q.top();q.pop();tpc++;cout<<u<<" ";for(int i=0;i<G[u].size();i++){int v=G[u][i];__②__if(!cnt[v])__③__}}if(__④__)return 1;else return 0;
}int main()
{cin>>n>>m;while(m--){cin>>x>>y;G[x].push_back(y);__⑤__}if(pd())cout<<"存在有向环";else cout<<"不存在有向环";
}

程序分析:此程序的主要思路是使用拓扑排序来判断有向图是否存在环。

首先,定义了一个函数pd()用来进行拓扑排序和判断是否存在有向环。在pd()函数中,首先初始化了一个栈q和一个计数器tpc,用来存储拓扑排序的结果。然后,将所有入度为0的节点压入栈q中。接下来,利用栈q进行拓扑排序的过程,依次从栈中弹出节点u,将节点u输出,并将u的所有邻接节点的入度减1。然后,如果某个邻接节点的入度变为0,就将该节点压入栈q中。最后,判断tpc的值是否等于节点个数n,若相等则表示不存在有向环,否则存在有向环。

单选题

①处应该填

A. !cnt[i]
B. cnt[i]
C. cnt[i]=0
D. cnt[i]==1

答案:A

答案分析:此处就似乎将所有入读为0的节点压入栈q中;所以答案A

②处应该填

A. q.push(v);
B. q. pop( );
C. cnt[u]--;
D. cnt[v]--;

答案:D

答案分析:此处就是将相邻节点的入度减1,所以答案D

③处应该填

A. q.pop();
B. q.push(v);
C. tpc--;
D. tpc++;

答案:B

答案分析:此处就是将入度为0的节点压入栈中;所以答案B

④处应该填

A. tpc!=n
B. tpc==n
C. tpc==0
D. tpc!=0

答案:A

答案分析:这里双分支条件是计数器不等于输入n就表示存在有向环,否则就是不存在,所以答案A

⑤处应该填

A. cnt[x]++;
B. G[y].push(x)
C. cnt[y]++;
D. push_back(x)

答案:C

答案分析:此处是更新节点y的入度,所以答案C

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

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

相关文章

视觉slam十四讲学习笔记(四)相机与图像

理解理解针孔相机的模型、内参与径向畸变参数。理解一个空间点是如何投影到相机成像平面的。掌握OpenCV的图像存储与表达方式。学会基本的摄像头标定方法。 目录 前言 一、相机模型 1 针孔相机模型 2 畸变 单目相机的成像过程 3 双目相机模型 4 RGB-D 相机模型 二、图像…

【JavaEE】网络原理: UDP协议和TCP协议的相关内容

目录 1. 应用层 2. 传输层 2.1 端口号 2.2 UDP协议 2.3 TCP协议 1.确认应答 2.超时重传 3.连接管理 三次握手 四次挥手 状态转换 4.滑动窗口 5.流量控制 6.拥塞控制 7.延迟应答 8.捎带应答 9.面向字节流 粘包问题 10.异常情况 网络通信中, 协议是一个非常重…

第二十九回 施恩三入死囚牢 武松大闹飞云浦-分布式版本控制系统Git使用

武松要蒋门神答应三件事&#xff1a;离开快活林、东西都归还施恩&#xff0c;公开对施恩赔礼道歉&#xff0c;不许在孟州住。蒋门神不得已都答应了&#xff0c;灰溜溜地离开了孟州城。 一个月之后&#xff0c;天气转凉&#xff0c;张都监调武松到孟州城&#xff0c;做了他的亲…

统计图饼图绘制方法(C语言)

统计图饼图绘制方法&#xff08;C语言&#xff09; 常用的统计图有条形图、柱形图、折线图、曲线图、饼图、环形图、扇形图。 前几类图比较容易绘制&#xff0c;饼图绘制较难。今值此介绍饼图的绘制方法。 本方法采用C语言的最基本功能&#xff1a; &#xff08; 1.&#xff09…

数据结构在JavaScript中的体现

一.概述 数据结构是计算机中存储、组织数据的方式。通常情况下&#xff0c;精心选择的数据结构可以带来最优效率的算法&#xff0c;其实算法并不是一个很高级的东西&#xff0c;它充斥在每一种代码组织方式中&#xff1b;而且各种语言关于数据结构方面的内容都是大同小异的&…

【复现】某某ERP 信息泄露漏洞_49

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 该ERP基于SpringBoot框架和SaaS模式&#xff0c;立志为中小企业提供开源好用的ERP软件&#xff0c;目前专注进销存财务生产功能。…

七天入门大模型 :LLM大模型基础知识最全汇总

七天入门LLM大模型学习 旨在帮助初学者理解和学习LLM的基础概念和实践。 未来七天&#xff0c;我将每天为大家推出一篇课程内容&#xff0c;感兴趣的小伙伴们可关注我们 文章目录 技术交流群用通俗易懂方式讲解系列基础模型研究模型定制新范式LLM类型介绍多模态模型Agent模型C…

【MySQL】待修改

外键约束 含义 外键&#xff1a;用来让两张表的数据之间建立连接&#xff0c;从而保证数据的完整性和一致性。 员工表emp&#xff08;子表&#xff09; idnameagejobsalaryentrydatemanageriddept_id1金庸66总裁200002000-01-01null52张无忌20项目经理125002005-12-05113杨…

lv15 平台总线驱动开发——ID匹配 3

一、ID匹配之框架代码 id匹配&#xff08;可想象成八字匹配&#xff09;&#xff1a;一个驱动可以对应多个设备 ------优先级次低&#xff08;上一章名称匹配只能1对1&#xff09; 注意事项&#xff1a; device模块中&#xff0c;id的name成员必须与struct platform_device中…

猫头虎分享已解决Bug || ValueError: No gradients provided for any variable

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

2019年通信工程师初级 实务 真题

文章目录 一、第9章 通信动力与环境通信电源系统的主要功能&#xff1a;“供”、“配”、“储”、“发”、“变” 二、第2章 传输网三、第3章 接入网四、第4章 互联网 一、第9章 通信动力与环境 【问题一】 网络通信设备对动力与环境的质量要求可以归纳为 &#xff08;1&#…

计算机服务器中了360后缀勒索病毒怎么办?360后缀勒索病毒处理流程

网络技术的不断应用与发展&#xff0c;为企业的生产运营提供了有利保障&#xff0c;越来越多的企业走向数字化办公模式&#xff0c;并且企业的发展离不开数据支撑&#xff0c;重视数据安全成为了众多企业关心的主要话题。春节前后&#xff0c;云天数据恢复中心接到很多企业的求…

C++:IO流

目录 关于CIO流 C/C中的日期输入 连续输入的问题 C文件IO流 运算符>>的运用 二进制读写 文本读写 stringstream 关于CIO流 C系统中ios为基类&#xff0c;其他类都是直接或间接派生自ios类 C标准库提供了4个全局流对象cin、cout、cerr、clog (在使用时候必须要包…

LeetCode刷题计划

LeetCode刷题计划 推荐 代码随想录&#xff1a;https://github.com/youngyangyang04/leetcode-master 卡码网 练习ACM模式 https://kamacoder.com/ 01 #include <iostream> using namespace std;int main() {int a ,b;while(cin>>a>>b){cout<<ab<…

【AI视野·今日CV 计算机视觉论文速览 第293期】Fri, 19 Jan 2024

AI视野今日CS.CV 计算机视觉论文速览 Fri, 19 Jan 2024 Totally 103 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computer Vision Papers ParaHome: Parameterizing Everyday Home Activities Towards 3D Generative Modeling of Human-Object Interactions Aut…

PyTorch深度学习快速入门教程 - 【小土堆学习笔记】

小土堆Pytorch视频教程链接 声明&#xff1a; 博主本人技术力不高&#xff0c;这篇博客可能会因为个人水平问题出现一些错误&#xff0c;但作为小白&#xff0c;还是希望能写下一些碰到的坑&#xff0c;尽力帮到其他小白 1 环境配置 1.1 pycharm pycharm建议使用2020的&…

petalinux2018.3安装步骤

1、虚拟机安装ubuntu-16.04.7-desktop-amd64.iso &#xff08;注意&#xff1a;安装ubuntu-18.04.6-desktop-amd64.iso和ubuntu-16.04.6-desktop-i386.iso会报以下错误&#xff09; environment: line 314: ((: 10 #15~1 > 10 #3: syntax error in expression (error toke…

Excel

1、Excel的学习路径 2、掌握excel的基础要求 01、保证新版本 02、培养好的数据表格习惯 03、主动性探索 04、多联系 一、函数 二、文本清洗函数 三、常见文本的清洗函数 获取k的位置 FIND("k",P2,1) 从第1个位置开始在位置P2&#xff0c;查询字段k&#x…

Java+SpringBoot+Vue:高校科研管理的技术革新

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

ChatGPT高效提问—prompt实践(智能开发)

ChatGPT高效提问—prompt实践&#xff08;智能开发&#xff09; ​ 如果你是一名程序员&#xff0c;一定有过这样的经历&#xff1a;排查某个bug话费好几个小时&#xff0c;在各个搜索引擎尝试搜索&#xff0c;浏览了几十甚至上百个网站&#xff0c;结果搜到的答案千篇一律&am…