请问输出是多少?答案是12,为什么?strlen应该是统计字符串个数,不包含'\0',那我也数不出12呀,abcdefghjik只有11个啊!(我晕了)

感谢你们带我找到星空下美丽神话,无论经历多少苦痛也不放弃的梦;插上希望翅膀乘风我和你们飞翔,飞过海天尽头携手把梦想实现.....
有以下程序
#include <stdio.h>
main()
{FILE *fp; int i=20,j=30,k,n;
fp=fopen("d1.dat","w");
fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d%d",&k,&n); printf("%d%d\n",k,n);
fclose(fp);
顺便问问,此题答案是20,50。其中50如何得来?望解释,
再此劳烦各位C界前辈了!
最后一个写掉了一句,
(40)有以下程序 #include <string.h> main(int argc,char *argv[]) {int i,len=0; for(i=1;i<argc;i++) len+=strlen(argv[i]); printf("%d\n",len); } 程序编译连接后生成的可执行文件是ex1.exe, 若运行时输入带参数的命令行是: ex1 abcd efg 10<回车> 则运行的结果是?
答案是9,
其他的我也敢确定是答案错了,不过我没有把握,因为那是书上所写,不过非常感谢你神vLinux飘飘,为我写出如此详细解答,年龄上我长你一岁,但在学问上小女自叹不如!