有以下程序段 char ch; int k; ch='a'; k=12; printf("%c,%d,",ch.ch.k); printf("k=%dn",k);

有以下程序段 char ch; int k; ch='a'; k=12; printf("%c,%d,",ch.ch.k); printf("k=%dn",k);,第1张

1、%c打印字符竖皮,ch='a'所槐销以打印a

2、%d打印十进制整数,字符'a'对应的整型值(ASCII码)是97

3、虽然printf的第三个参数是k,但是在前面的""格式串里没有打印要求(例如余明差%d),所以不会打印

4、第二个printf,%d是打印是十进制整数,k=12所以打印12(另外"k="是在格式串里面有的,就原样输出了)

正确的答案是5,题目选项有误。

首先strlen()函数返回的长度是不包含'\0',

第一个字符为:a

第银早二个字符为:b

第三个字符锋猛雀为:\n (换行符)

第四个字符为:2

第五个字符为:\ (\\转义为\)

所以答案为5。

(下图为实际代码演示)

扩展内容:

strlen()函数(C语言函数):

strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域知拆)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。

参考资料:strlen函数 - 百科


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12524566.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存