按你的书写,字符串 中第一个字符是空格,执行结果不在4个答案中。
另外,你用了中文标点符号,语法通不过。
char s〔〕={ “ Girl”} ; //声明s是char型数组,初始化为 char s[6]; 内容为:空格,字母Girl, 和字符串结束符'\0';
s〔0〕=s〔2〕 ; //赋值语句,让s[0]里的空格符位置变s[2]里的i; 字符串变:"iGirl";
s〔2〕=s〔0〕; //赋值语句,让s[2]变s[0]里的i; 字符串:"iGirl";
s〔1〕=s〔4〕; // 赋值语句,让s[1]里的G变s[4]里的l; 字符串变:"ilirl"
s〔4〕=s〔1〕; // 赋值语句,让s[4]变s[1]里的l; 字符串:"ilirl";
执行结果 i,lirl 不在4个答案中。
程序改为用英文书写,去掉第一个空格:
char s[]={"Girl"} ; //初始化 char s[5]="Girl";
s[0]=s[2]; // 字符串变为 "rirl"
s[2]=s[0]; // 字符串变为 "rirl"
s[1]=s[4]; // s[4] 是字符串结束符号 '\0', 赋值后s[1] 也成字符串结束符,字符串变为 "r",
s[4]=s[1]; // 字符串 还是 "r", 因 s[1] 是字符串结束符号 '\0',
( char s[5] 的内容为:r\0rl\0, 其中2个 \0 是字符串结束符)
printf("%c,%s\n",s[0],s); // 输出 r,r 答案选 B.
1,0=2,得到rirl
2,2=0,不变,还是rirl
3,1=4,注意4是结束符\0,得到r\0rl
4,4=1不变
于是输出s[0]是r,输出字符串的时候到第一个\0结束,于是还是r
所以选b