c++ cout命令 转义字符相关的练习题一道

26:下面程序的输出结果为()。#include<iostream.h>#include<string.h>voidmain(){charst[20]=”hello\0\... 26: 下面程序的输出结果为( )。
#include<iostream.h>
#include<string.h>
void main( )
{ char st[20]=”hello\0\t\\”;
cout<<strlen(st);
cout<<sizeof(st)<<endl;
cout<<st;
}
A.520 B.1220 C.520 D.1120
Hello hello\0\t\\ hello\t hello \

为什么选A呀?
展开
 我来答
ikubeke
2011-01-09
知道答主
回答量:14
采纳率:0%
帮助的人:0
展开全部
cout<<strlen(st);测试字符串长度,这里只有hello而\0表示字符串结束,所以后面的都不会输出,即长度为5。
cout<<sizeof(st)<<endl;测试st数组的长度,char型一个字节,即有20。
cout<<st;输出上面的字符串,遇到\0就结束了,所以只有hello。
匿名用户
2011-01-09
展开全部
第一个输出字符数组st实际有hello共5个字符;
=================================================================
第二个输出分析如下:
由于st为字符数组,而数组的sizeof值等于数组所占用的内存字节数,所以输出为20;
---------------------------------------------------------------------------------------------------------
数组的sizeof
数组的sizeof值等于数组所占用的内存字节数(切记与求数组长度不是一回事),如:
char a1[] = "abc";
int a2[3];
sizeof( a1 ); // 结果为4,字符末尾还存在一个NULL终止符
sizeof( a2 ); // 结果为3*4=12(依赖于int,4个字节)
数组长度可以这样做:
int c1 = sizeof( a1 ) / sizeof( int ); // 总长度/单个元素的长度
==================================================================
第三个输出就是直接输出字符数组的字符串hello。
==================================================================
最后强调一下:由于第一个输出未进行换行操作(endl),所以5和20显示时在一起了。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fuzongtang
2011-01-09 · TA获得超过722个赞
知道小有建树答主
回答量:289
采纳率:0%
帮助的人:332万
展开全部
strlen(st)求字符串长度:hello,长度为五,hello后面默认有"\0"strlen()函数结束。
sizeof(st)求数组str[20]存储的内存字节,每一个字符为1,所以为20
cout<<st; //输出数组,其中赋值时,"hello\0\t\\" \0为字符结束,不添加是,系统默认添加,\t,\\皆为转义字符。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ac22941
2011-01-08 · TA获得超过213个赞
知道答主
回答量:132
采纳率:0%
帮助的人:0
展开全部
在c\c++中\0是表示字符串结尾,虽然你的字符数组st长度是20,但是strlen在计算字符串长度的时候,遇到\0就返回,也就是字符串长度只有5。sizeof返回的数组st的长度20。cout输出的时候也是,遇到\0它就认为字符串已经结束
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
529669903
2011-01-09 · TA获得超过405个赞
知道小有建树答主
回答量:158
采纳率:87%
帮助的人:112万
展开全部
strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值。char st[20]=”hello\0\t\\”中含有'\0',所以strlen(st)为5。
sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。 所以sizeof(st)为20
cout输出字符串时也是遇到'\0'为止。所以输出"hello”
所以选A
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式