首页 > 编程语言 >2022CSP阅读程序真题附解析

2022CSP阅读程序真题附解析

时间:2024-07-10 15:25:49浏览次数:21  
标签:输出 真题 int 16 阅读程序 2022CSP 答案 解析 输入

       

假设输入的 x 、 y 均是不超过 15 的自然数,完成下面的判断题和单选题:
判断题
16. 删去第 7 行与第 13 行的 unsigned ,程序行为不变。( )
17. 将第 7 行与第 13 行的 short 均改为 char ,程序行为不变。( )
18. 程序总是输出一个整数“ 0 ”。( )
19. 当输入为“ 2 2 ”时,输出为“ 10 ”。( )
20. 当输入为“ 2 2 ”时,输出为“ 59 ”。( )
单选题
21. 当输入为“ 13 8 ”时,输出为( )。
A. “ 0 ”
B. “ 209 ”
C. “ 197 ”
D. “ 226 ”

16.【答案】对【解析】本程序考查位运算的知识点。unsigned short 表示无 符号短整型,数据范围为 0 ~ 65535,占 2 个字节。| 为按位或运 算,& 为按位与运算,<< 为左移运算。需要注意的是 << 运算优 先级高于 |。0x33 表示 十六进制的33,即十进制的510x55 表示十六机制的 55,即十进制的85

17、【答案】 ×【解析】输入为不超过 15 的自然数,改为 char 以 后,当输入为两位数时,x,y 分别读入的是第一个数的十位和个位, 改变了程序的行为和结果。

18、【答案】 ×【解析】略

19、【答案】 ×【解析】代入"2 2",输出结果为"12"。

20、【答案】×【解析】略

21、【答案】B【解析】代入"13 8",输出结果为"209"

#include <algorithm>
#include <iostream>
#include <limits>

using namespace std;

const int MAXN=105;
const int MAXK=105;
int h[MAXN][MAXK];

int f(int n,int m)
{
	if(m==1) return n;
	if(n==0) return 0;
	
	int ret=numeric_limits<int>::max();
	for(int i=1;i<=n;i++)
		ret=min(ret,max(f(n-i,m),f(i-1,m-1))+1);
	return ret;    
}

int g(int n,int m)
{
	for(int i=1;i<=n;i++) 
		h[i][1]=i;
	for(int j=1;j<=m;j++)
		h[0][j]=0;
		
	for(int i=1;i<=n;i++){
		for(int j=2;j<=m;j++){
			 h[i][j]=numeric_limits<int>::max();
			 for(int k=1;k<=i;k++)
			 h[i][j]=min(
			 	h[i][j],
			 	max(h[i-k][j],h[i-1][j-1])+1);
		}
	}
	
	return h[n][m];
}

int main()
{
	int n,m;
	cin>>n>>m;
	cout<<f(n,m)<<endl<<g[n,m]<<endl;
	return 0;
}

假设输入的 n 、 m 均是不超过 100 的正整数,完成下面的判断题和单选题:
判断题
22. 当输入为“ 7 3 ”时,第 19 行用来取最小值的 min 函数执行了 449 次。( )
23. 输出的两行整数总是相同的。( )
24. 当 m 为 1 时,输出的第一行总为 n 。( )
单选题
25. 算法 g(n,m) 最为准确的时间复杂度分析结果为( )。
A. O ( n 3 2 /

标签:输出,真题,int,16,阅读程序,2022CSP,答案,解析,输入
From: https://blog.csdn.net/lb201205/article/details/140298824

相关文章