不是VIP会员,不能显示答案

题目解答

题目:
#include <iostream>

#include <iomanip>

#include <cstring>

using namespace std;

string s;

int main() {

int k;//限制输入0<=k<26

cin>>k>>s;

int n=s.length();

for (int i=0; i<n; i++) {

if (s[i]<='Z'&&s[i]+k>'Z')

s[i]=(s[i]+k)%'Z'+'A'-1;

else if ('A'<=s[i]&&s[i] <='Z')

s[i]+=k;

}

char pre;

int st=-1;

for (int i=0; i<n; i++) {

if(s[i]<'A'||s[i]>'Z') {

if (st==-1) {

st=i;

pre=s[i];

} else {

char tmp=s[i];

s[i]=pre;

pre=tmp;

}

}

}

if(st !=-1)

s[st]=pre;

cout<<s<<endl;

return 0;

}


判断题

1) (1分)删除第30行和第31行,不影响程序运行结果。( )

2) 如果输入的s不含大写字母,则输出结果与k的值无关。( )

3) 如果知道输出结果,能够反推出唯一的输入结果。( )

4) 当k的值确定时,不存在两个不同的输入使得输出相同。( )


选择题

5) 如果输入是6 KU96APY5,则输出为( )。

6) (5分)如果输出是ab1287F2Tguz,则输入可能为( )。
考点:
分析:
解答:
评论:
老师: