为了账号安全,请及时绑定邮箱和手机立即绑定

答案为什么是B?麻烦说明详细过程

答案为什么是B?麻烦说明详细过程

C++
梦里花落0921 2023-04-20 19:15:26
49、有以下程序  #include <stdio.h>  main( )  { FILE *fp; int i,k=0,n=0;  fp=fopen("d1.dat","w");  for(i=1;i<4;i++) fprintf(fp,"%d",i);  fclose(fp);  fp=fopen("d1.dat","r");  fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n);  fclose(fp);  } 执行后输出结果是(B)  A)1 2 B)123 0 C)1 23 D) 0 0
查看完整描述

2 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

for(i=1;i<4;i++) fprintf(fp,"%d",i); 把123写入文件
fscanf(fp,"%d%d",&k,&n); 读取整形时遇到不属于数字的字符时结束,即读取k=123,文件结束,n不变

查看完整回答
反对 回复 2023-04-23
?
绝地无双

TA贡献1946条经验 获得超4个赞

首先定义了一个文件指针fp,然后通过函数fopen以“w”的方式打开文件“d1.dat”,直接通过一个for循环,每循环一次调用函数fprintf将i的值写进fp所指的文件中,该循环共循环3次,循环完后fp所指文件的内容为123。然后通过fclose函数关闭fp所指文件。接着通过fscanf函数将fp所指文件的内容读出并赋值给变量k和变量n,由于fp所指文件中只有123没有分隔符,故只给k赋值为123,变量n的值依然为以前的值,故最后输出k和n的值为123。所以,4个选项中选项B符合题意

查看完整回答
反对 回复 2023-04-23
  • 2 回答
  • 0 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信