Memo_YD
Memo_YD
采纳率100%
2020-05-14 15:27 阅读 89

c语言基础题,麻烦解答一下谢谢

劳情详答
图片说明图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    gouzhiya 苟汁 2020-05-14 17:43

    1.c中字符常量分两种,普通字符和转义字符,普通字符没啥好说的,转义字符就是以‘\’(转义标志)打头的字符,像'\n','\t','\0',等
    都是常见的转义字符,他们虽然由两部分组成但是表示的是一个字符,所以题目中的‘\n’只+1;另外函数strlen计数时不会把‘\0’算入(就像作文字数并不会把句号算进去一样)所以第一题答案是3。
    2.题目中func()函数中的m,n和主函数中的m,n虽然名字相同,可是并不是一个东西,你在func()函数中对他的m,n做任何操作都不会影响你主函数中m,n的值,两个函数就像平行世界一样,所以题目实际上两次调用func()时给他的值都是k=4,m=1。
    实在不理解的话可以把func()函数改个名,看成m1,k1。

    点赞 1 评论 复制链接分享
  • qq_29366533 qq_29366533 2020-05-14 15:40
    1. strlen遇到\0就结束了,只有a,b,\n三个字符的长度

    2.func函数里的参数数值都没变,结果肯定是一样的

    点赞 1 评论 复制链接分享
  • qtchen_1988 qtchen_1988 2020-05-14 15:41

    1.先明白strlen是怎么实现的,它的工作原理?;2.func 1)参数不是引用,没有对参数实体操作(参数不变);2)函数体没有静态变态,全局变量等;3)用相同参数调用相同的函数;所以首先等到的两个值应该是相等的,
    再把参数代入函数计算,也就是8

    点赞 1 评论 复制链接分享

相关推荐