阅读程序:
#include <cstdio> #include <cstring> using namespace std; char s[10000]; int cnt[26]; int main() { scanf("%s", s); for (int i = 0; i < strlen(s); ++i) { if (cnt[s[i] - 'a'] <= 50) { s[strlen(s)] = s[i]; } ++cnt[s[i] - 'a']; } printf("%s\n", s); return 0; }
假设设初始时输入的字符串长度不超过 500,且不是空串。完成下面的判 断题和单选题:
将程序第11行中的“++i”改为“i++”,程序运行结果不会改变( )
将程序第11行改为“for(int i=0,len=strlen(s);i<len;++i)”,程序的运行结果不会改变,同时程序的运行效率将得到提升( )
对于任意一个出现了a到z中所有的字符、且各字符出现的次数不小于50 的字符串 b,总存在一个字符串 a,使得将字符串 a 输入程序后的运 行结果为字符串b。( )
程序的输出字符串长度一定不小于1300(注:1300=50×26)。( )
设输入字符串长度为x(1≤x≤500),输出字符串长度为y,则关于x和y的大小关系正确的是( )。
对于全部的输入字符串,都有x=y。
对于全部的输入字符串,都有x<y。
存在一部分输入字符串,使得 x=y;也存在一部分输入字符串,使得x<y;但是不存在 x>y 的情况。
存在一部分输入字符串,使得 x=y;也存在一部分输入字符串,使得x>y;还存在一部分输入字符串,使得 x<y。
设字符串w为abcd...z,即从a到z在w中依次出现一次, 共 26 个字符。若输入为 w 重复出现两次的结果(即abcdefg...zabcdefg...z,则输出结果为( )。
w重复出现50次的结果。
w重复出现51次的结果。
w重复出现52次的结果。
w重复出现53次的结果。