#CS40206. 阅读程序2-字符处理-06

阅读程序2-字符处理-06

阅读程序

注意:切勿用电脑直接运行代码得出答案,请用大脑+笔+纸运行代码答题,否则是在浪费你的时间。

第2节:字符处理

第6题【NOIP】2009

#include <iostream>
using namespace std;
const int maxn=50;
void getnext(char str[])
{
	int l=strlen(str),i,j,k,temp;
	k=l-2;
	while(k>=0&&str[k]>str[k+1]) k--;
	i=k+1;
	while(i<l&&str[i]>str[k]) i++;
	temp=str[k];
	str[k]=str[i-1];
	str[i-1]=temp;
	for(i=l-1;i>k;i--)
		for(j=k+1;j<i;j++)
			if(str[j]>str[j+1])
			{
18				temp=str[j];
19				str[j]=str[j+1];
20				str[j+1]=temp;
			}
	return ;
}
int main()
{
	char a[maxn];
	int n;
	cin >> a >> n;
	while(n>0)
	{
		getnext(a);
32		n--;
	}
	cout << a << endl;
	return 0;
}

●判断题

(1)每次循环找到的k一定不同。

{{ select(6-1) }}

(2)如果把第18~20行换成swap(str[j],str[j+1]),输出结果不变

{{ select(6-2) }}

(3)去掉第32行会异致程序超时。

{{ select(6-3) }}

(4)输人的字符串可包含任意字母

{{ select(6-4) }}

●选择题

(5)输入NOIP3,输出的结果是( )

{{ select(6-5) }}

  • NPOI
  • NPIO
  • NIPO
  • PONI

(6)输入CSP2021 2,输出的结果是( )。

{{ select(6-6) }}

  • CPS2120
  • CSP2120
  • CPS2210
  • CSP2021