下面程序段中,输出*的个数是 char *s="\ta\018bc"; for(;*s!=′\0′;s++)printf("*");

 我来答
帐号已注销
2019-11-17 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:167万
展开全部

六个,这个字符串中的字符分别是:

\t a \01 8 b c \0

\t \01是转义字符,\0是赋值时自动加上的。

PS: 一开始大意了,8进制数里最大的数字是7。

如果是char *s = "\ta\017bc\0"的话就是五个了。

char *s="\ta\018bc";

for(;*s!='\0';s++)printf(" * "); /*\0后是单引号哈*/

(如果代码就这样是一个*也打不出来的。。。HOHOHO)

“\ta\018bc”这是个字符串,一共有6个有效字符('\t','a','\01'(\ooo,ooo是八进制数),'8','b','c')和1个'\0',对吧,也就相当于

int i;

for (i=0; i<6; i++)

{

printf("*");

}

8进制数是没有8的,可以把程序改了来看:

#include <stdio.h>

#include <stdlib.h>

void main(void)

{

char *s = "\ta\018bc";

扩展资料:

1、以上每个函数都以“f”开头,其代表文件(file)之意,这正与正常数据的输入输出(scanf和printf)函数区分开来;str代表字符串(string)之意,ch则是代表字符(characters);fp代表文件指针(file pointer),而pf代表指向文件的文件指针,即“文件指针指向”(Pointing to file pointer),通常也叫做文件指针;

2、文件字符的输入输出函数也可写为:getc和putc,它们与fgetc和fputc函数是等价的;

3、要注意正常“字符”的输出(ch=getchar())输入(putchar(ch))与“文件字符”的输入输出的函数调用上的区别。

参考资料来源:百度百科-输出

terranlong
2011-09-07 · TA获得超过7294个赞
知道大有可为答主
回答量:2660
采纳率:0%
帮助的人:4003万
展开全部
这个问题运行以下就知道了
正确答案是6个
\t 为转义字符输出一个*
a 输出一个*
\01 输出一个*,意为1是一个8进制数
8 输出一个*
b 输出一个*
c 输出一个*

如果*s = "\ta\017bc"结果就不一样了,共输出5个*
\t 为转义字符输出一个*
a 输出一个*
\017 输出一个*,意为17是一个8进制数
b 输出一个*
c 输出一个*

相信这样回答楼主能明白吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2018-03-20
展开全部
6个*号
\t
a
\01
8(输出八进制数)
b
c
所以一共6个
望采纳
追问
呃。。。到底是几个。。。为啥是6个呢????
追答
\018应该算两个,因为8不属于8进制符号。8进制符号只有0,1,2,3,4,5,6,7这几个。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leafallen
2011-09-07 · TA获得超过1.1万个赞
知道小有建树答主
回答量:1169
采纳率:50%
帮助的人:1216万
展开全部
6个
\t
a
\01(输出八进制数)
8
b
c
所以一共6个
望采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ohdeargod
2011-09-16 · TA获得超过5412个赞
知道小有建树答主
回答量:457
采纳率:66%
帮助的人:175万
展开全部
是6个没错。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式