下面程序段中,输出*的个数是 char *s="\ta\018bc"; for(;*s!=′\0′;s++)printf("*");
六个,这个字符串中的字符分别是:
\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))与“文件字符”的输入输出的函数调用上的区别。
参考资料来源:百度百科-输出
正确答案是6个
\t 为转义字符输出一个*
a 输出一个*
\01 输出一个*,意为1是一个8进制数
8 输出一个*
b 输出一个*
c 输出一个*
如果*s = "\ta\017bc"结果就不一样了,共输出5个*
\t 为转义字符输出一个*
a 输出一个*
\017 输出一个*,意为17是一个8进制数
b 输出一个*
c 输出一个*
相信这样回答楼主能明白吧
推荐于2018-03-20
\t
a
\01
8(输出八进制数)
b
c
所以一共6个
望采纳
呃。。。到底是几个。。。为啥是6个呢????
\018应该算两个,因为8不属于8进制符号。8进制符号只有0,1,2,3,4,5,6,7这几个。
\t
a
\01(输出八进制数)
8
b
c
所以一共6个
望采纳