C++程序执行后,输入 chen a dai 输出应该为:chen。()
string str;
cin>>str;
cout<<str;答案A。数组和位运算的代码追踪要特别小心:数组下标从0开始,位运算结果可能不直观。建议画图辅助。
位运算追踪时建议把数字写成二进制形式再逐位计算。
【考点】输入输出 (cin/cout)|字符串读取|空格分隔
1. 🎯 考纲定位:GESP C++二级/三级"基本操作"模块。命题人专挑 cin >> str 的"空格截断"特性,卡死那些以为 cin 会读完整行或整串的考生。
2. 🧠 解题思维:看到 cin >> str 立即想到"遇空白字符停止"。输入 chen a dai 中第一个空格前是 chen,因此 str 只装入 chen,剩下 a dai 留在输入流。后续 cout << str 自然输出 chen,故原命题"输出应该为:chen"为真。
3. 🪤 陷阱拆解:错选 B 的典型路径是误以为 cin 会读完整个字符串(包括空格),或把 cin >> 与 getline 混淆。命题人利用"只背'cin 读字符串'却不知'遇空格即止'"的半懂状态,让你把 chen a dai 当成整体读取,进而误判输出为 chen a dai。
4. 🔄 反命题思维:若把输入改成 chen a dai 但代码变为 getline(cin, str); cout << str;,输出应为 chen a dai,命题就会翻盘。刷到类似题先问自己:cin 遇到空格会停吗?