阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填√,错误填×;除特殊说明外,判断题1.5分,选择题3分,共计40分)

#include <cstdio>
#include <cstring>
using namespace std;
char st[100];
int main() {
scanf("%s", st);
int n = strlen(st);
for (int i = 1; i <= n; ++i) {
if (n % i == 0) {
char c = st[i - 1];
if (c >= 'a')
st[i - 1] = c - 'a' + 'A';
}
}
printf("%s", st);
return 0;
}

1)输入的字符串只能由小写字母或大写字母组成。()

正确答案: 错

解析:输入的字符串也可以包含数字等其他字符

2)若将第8行的“i = 1”改为“i = 0”,程序运行时会发生错误()

正确答案: 对

解析:若i可以为0,则第9行的if语句条件“n%i==0”将发生运行是错误RE。

3)若将第8行的“i <= n”改为“i * i <= n”,程序运行结果不会改变。()

正确答案: 错

解析:当第8行的循环条件为“i<=n”时,字符串的末尾字符会被程序加工,但若改为“i*i<=n”,字符串的末尾字符将不会被程序加工(除非字符串长度为1)。

4)若输入的字符串全部由大写字母组成,那么输出的字符串就跟输入的字符串一样。()

正确答案: 对

解析:大写字母的ASCLL编码值小于小写字母的。若输入的字符串全部由大写字母组成,则程序不会对其进行加工。

5)若输入的字符串长度为18,那么输入的字符串跟输出的字符串相比,至多有()个字符不同。

A. 18 B. 6 C. 10 D. 1

正确答案: B

解析:18的正约数共有6个,因此程序最多修改输入字符串中的6个字符,即输出字符串与输入字符串最多有6个字符不同。

6)若输入的字符串长度为(),那么输入的字符串跟输出的字符串相比,至多有36个字符不同。

A. 36 B. 100000 C. 1 D. 128

正确答案: B

解析:要使输出字符串和输入字符串之间最多有36个字符不同,36应当是字符串长度n的约数个数。本题选项中,仅有100000满足要求,分解质因数得2^55^5,正约数共有(5+1)(5+1)=36个

学编程,找李老师

2.

#include<cstdio>
using namespace std;
int n, m;
int a[100], b[100]; int main() {
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; ++i)
a[i] = b[i] = 0;
for (int i = 1; i <= m; ++i) {
int x, y;
scanf("%d%d", &x, &y);
if (a[x] < y && b[y] < x) {
if (a[x] > 0)
b[a[x]] = 0;
if (b[y] > 0)
a[b[y]] = 0;
a[x] = y;
b[y] = x;
}
}
int ans = 0;
for (int i = 1; i <= n; ++i) {
if (a[i] == 0)
++ans;
if (b[i] == 0)
++ans;
}
printf("%d", ans);
return 0;
}

假设输入的n和m都是正整数,x和y都是在[1, n]的范围内的整数,完成下面的判断题和单选题:

1)当m>0时,输出的值一定小于2n。()

正确答案: 对

解析:由限定条件0<x,y<=n可知,当m>0时,一定存在某个数对被我们选中,此时ans<2n

2)执行完第27行的"++ans"时,ans —定是偶数。()

正确答案: 错

解析:由于数对是一个左值与一个由值相匹配,因此ans最终一定是偶数。但第27行的“++ans”在第23行的for循环内部,其中间结果可能为奇数。

3)a[i]和b[i]不可能同时大于0。()

正确答案: 错

解析:a[i]用于记录与左值i相匹配的右值,不存在则为0;b[i]用于记录与右值i相匹配的左值,不存在则为0.当存在数对(i,y)和(x,i)都被我们选中时,a[i]和b[i]就会同时大于0。

4)右程序执行到第13行时,x总是小于y,那么第15行不会被执行。()

正确答案: 错

解析:存在反例,依次考虑数对(1,2)(1,3)时,第15行程序会被执行。

5)若m个x两两不同,且m个y两两不同,则输出的值为()

A. 2n-2m B. 2n+2 C. 2n-2 D. 2n

正确答案: A

解析:此时,输入的数对两两互不冲突,因此程序会将他们全部选中,根据上述ans的意义可知,其结果为2n-2m。

6)若m个x两两不同,且m个y都相等,则输出的值为()

A. 2n-2 B. 2n C. 2m D. 2n-2m

正确答案: A

解析:此时,输入的数对两两存在冲突,因此程序最终只会选用一个数对,根据上述ans的意义可知,其结果为2n-2。

#include <iostream>
using namespace std;
const int maxn = 10000;
int n;
int a[maxn];
int b[maxn];
int f(int l, int r, int depth) {
if (l > r)
return 0;
int min = maxn, mink;
for (int i = l; i <= r; ++i) {
if (min > a[i]) {
min = a[i];
mink = i;
}
}
int lres = f(l, mink - 1, depth + 1);
int rres = f(mink + 1, r, depth + 1);
return lres + rres + depth * b[mink];
}
int main() {
cin >> n;
for (int i = 0; i < n; ++i)
cin >> a[i];
for (int i = 0; i < n; ++i)
cin >> b[i];
cout << f(0, n - 1, 1) << endl;
return 0;
}

1)如果a数组有重复的数字,则程序运行时会发生错误。()

正确答案: 错

解析:若a数组有重复数字,则程序在根据a数组递归构造符合要求的二叉树时,对于相同结点值,会优先考虑位于左侧的。

2)如果b数组全为0,则输出为0。()

正确答案: 对

解析:程序最终输出的是各结点深度与b值得加权和,因此若b数组全为0,则加权和显然为0。

3)当n=100时,最坏情况下,与第12行的比较运算执行的次数最接近的是:()。

A. 5000 B. 600 C. 6 D. 100

正确答案: A

解析:最坏情况下,程序所构成的二叉树的每个结点最多有一个子结点,此时,程序将递归100层,其中第i层进行100-i+1次第12行的比较运算,总执行次数为100+99+98+...+1≈5000。

4)当n=100时,最好情况下,与第12行的比较运算执行的次数最接近的是:()。

A. 100 B. 6 C. 5000 D. 600

正确答案: D

解析:最佳情况下,程序构造二叉树时,对于每个结点会尽可能均分其左右子树。定义根结点深度为1,则含n=100个结点的树的深度最小为logn≈7,此时每选定一层结点,程序都需要执行约n次的第12行的比较运算,因此总执行次数约为nlogn≈600。

5)当n=10时,若b数组满足,对任意0<=i<n,都有b[i] = i + 1,那么输出最大为()。

A. 386 B. 383 C. 384 D. 385

正确答案: D

解析:此时,要使输出的ans值尽可能大,程序所构造的二叉树的深度应尽可能大。定义根结点深度为1,则含10个结点的二叉树的最大深度为10,因此ans的最大值为11+22+33+...+1010=385。

6)当n=100时,若b数组满足,对任意0 S i < 71,都有b[i]=1,那么输出最小为()。

A. 582 B. 580 C. 579 D. 581

正确答案: B

解析:此时,要使输出的ans值尽可能小,程序应参照完全二叉树构造此树,其中深度为1的结点共1个,深度为2的结点共2个,深度为3的结点共4个...深度为6的结点共32个,剩余37个结点的深度为7,因此ans的最小值为(11+22+33+...+632)+7*37=580。

CSP-J2019 NOIP普及组初赛真题(阅读程序部分)的更多相关文章

  1. CSP-J2019 NOIP普及组初赛真题(选择题部分)

    NOIP初赛考试提纲 时间:10月的第2/3个星期六下午14:30~16:30 分数及形式:满分100分,形式为笔试(今年可能上机) 1.单项选择题,共15题,每题2分,共30分 2.阅读程序题,共3 ...

  2. NOIP提高组历年真题题解

    2018 铺设道路 差分水题,推一下结论就好了. #include<cstdio> #include<algorithm> using namespace std; ],d[] ...

  3. 纪中10日T1 2300. 【noip普及组第一题】模板题

    2300. [noip普及组第一题]模板题 (File IO): input:template.in output:template.out 时间限制: 1000 ms  空间限制: 262144 K ...

  4. NOIP提高组初赛难题总结

    NOIP提高组初赛难题总结 注:笔者开始写本文章时noip初赛新题型还未公布,故会含有一些比较老的内容,敬请谅解. 约定: 若无特殊说明,本文中未知数均为整数 [表达式] 表示:在表达式成立时它的值为 ...

  5. 2016.9.3初中部上午NOIP普及组比赛总结

    2016.9.3初中部上午NOIP普及组比赛总结 链接:https://jzoj.net/junior/#contest/home/1339 这次真爽,拿了个第四!(我还被班主任叫过去1小时呢!) 进 ...

  6. 2016.10.29初中部上午NOIP普及组比赛总结

    2016.10.29[初中部 NOIP普及组 ]模拟赛 做得好爽! 进度: 比赛:35+45+AC+0=180 改题:AC+AC+AC+0=300 幸运的数 有点无语--之前怕超限,还特意利用程序打了 ...

  7. 2016.10.7初中部上午NOIP普及组比赛总结

    2016.10.7初中部上午NOIP普及组比赛总结 这次的题还可以,重新入了比赛的前十. 进度: 比赛:90+10+70+30=200 改题:AC+AC+AC+AC=AK 找试场 这题很简单,但是被欺 ...

  8. NOIP2015普及组第四题推销员

    好久没有写博客了,今天再写一篇.还是先看题: 试题描述 阿明是一名推销员,他奉命到螺丝街推销他们公司的产品.螺丝街是一条死胡同,出口与入口是同一个,街道的一侧是围墙,另一侧是住户.螺丝街一共有 N 家 ...

  9. 2321. 【NOIP普及组T1】方程

    2321. [NOIP普及组T1]方程 时间限制: 1000 ms  空间限制: 262144 KB 题目描述

随机推荐

  1. 一分钟速学 | NMS, IOU 与 SoftMax

    非极大抑制 NMS的英文是Non-maximum suppression的缩写. 简单的说,就是模型给出了多个重叠在一起的候选框,我们只需要保留一个就可以了.其他的重叠的候选框就删掉了,效果可见下图: ...

  2. 前端学习(十二):CSS排版

    进击のpython ***** 前端学习--CSS排版 本节主要介绍网页排版中主要格式化元素属性 帮助开发者把css技术与网页排版紧密联系到一起,来更好的实现网页设计效果 字体属性 字体 在日常工作中 ...

  3. 雪碧图——CSS Sprites(精灵)

    在日常开发打开文件包,打开static文件夹,有一张图片,里面融合了这个应用都会用到的小图标,其实,主要是减少应用渲染出现繁多的请求,加速页面渲染. 解决方案:使用css背景定位 icon {widt ...

  4. fgdsafhak

  5. 如何用redis做缓存

    redis缓存 在互联网应用中经常需要用redis来缓存热点数据. redis数据在内存,可以保证数据读取的高效,接近每秒数十万次的吞吐量 减少下层持久层数据库读取压力,像mongodb,每秒近千次读 ...

  6. linux杂七杂八

    反斜线\用于命令换行,在\之后应该直接回车换行 [root@CentOS7- ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens33\ > /tmp/ ...

  7. mongoose.model第三个参数的问题

    这个是个好问题,之前按照教程做的数据库没有问题,现在自己从新做出现了问题.还好之前有无意中接触了这个知识点,不然感觉真的很难解决. 在检查完所有东西都没错的时候(前端传给req的数据正常,与数据库相符 ...

  8. Python File write() 方法

    概述 write() 方法用于向文件中写入指定字符串.高佣联盟 www.cgewang.com 在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中是看不到写入的内容的. 如果文件打开 ...

  9. Flask官方文档学习-flask快速入门

    环境搭建 下载安装Python3:www.python.org 终端运行命令:python3 -m venv flask_dev,来创建虚拟环境 启用虚拟环境,终端使用命令 source /flask ...

  10. 【转】一次Java线程池误用(newFixedThreadPool)引发的线上血案和总结

    [转]原文链接:https://cloud.tencent.com/developer/article/1497826 这是一个十分严重的线上问题 自从最近的某年某月某天起,线上服务开始变得不那么稳定 ...