有如下程序:    #include <iostream>    using namespace std;    int main()    {      char str[100], *p;      cout<<"Please input a stri

admin2017-10-17  20

问题 有如下程序:    #include <iostream>    using namespace std;    int main()    {      char str[100], *p;      cout<<"Please input a string:";       cin>>str;      p=str;      for (int i=0; *p!=’\0’; p++,i++);      cout<<i<<endl;      return 0;    }运行这个程序时,若输入字符串为 abcdefgabcd则输出结果是

选项 A、7
B、12
C、13
D、100

答案A

解析 本题考查的知识点是:默认的输入格式。C++流所识别的输入数据的类型及其默认的输入格式包括:
short、int、long(signed、unsigned).与整型常量同
float、double、long double:与浮点数常量同
char(signed、unsigned):第一个非空白字符
char*(signed、unsigned):从第一个非空白字符开始到下一个空白字符结束
void*:无前缀的16进制数
bool:VC6.0中把0识别为false,其他的值均识别为true
注意其中空白字符和非空白字符的概念。空白字符是指空格、Tab符、回车换行等无显示的字符,否则就是非空白字符。本题的输入数据类型为char*,因此输入的数据是“从第一个非空白字符开始到下一个空白字符结束”,而输入数据为abcdefg abcd,其中abcdefg后有一个空格(空白字符)。所以输入后str中为字符串"abcdefg”,主函数中接下来for语句的作用是计算字符串p的长度。故最终输出的结果是"abcdefg”的长度7,本题应该选择A。
转载请注明原文地址:https://kaotiyun.com/show/PXAp777K
0

最新回复(0)