有如下程序  #include<stdio.h>  void fun(int *a,int *b)  {for(;(*a<*B)||(getchar()!=’@’);)   {(*a)++;(*b)--;}  }  main()  {int i=0,j=

admin2022-10-24  22

问题 有如下程序
 #include<stdio.h>
 void fun(int *a,int *b)
 {for(;(*a<*B)||(getchar()!=’@’);)
   {(*a)++;(*b)--;}
 }
 main()
 {int i=0,j=5;
   fun(&i,&j);
   printf("%d,%d\n",i,j);
 }
 程序运行时在第一列开始输入ab@并按<Enter>键,则运行结果是(          )。

选项 A、7,1
B、3,2
C、0,5
D、5,0

答案D

解析 fun函数接收两个整型指针变量a、b。for循环判断a、b指向的值大小和getchar读入的字符是否为“@”来决定循环是否执行。循环体内对a、b指向的值各自自增1、自减1。main函数定义并初始化实参i的值为0,实参j的值为5,调用函数fun,传入i、j的地址。所以形参a指向i,形参b指向j,*a的值为0,*b的值为5,*a<*b为真,执行循环体;*a的值为1,*b的值为4,*a<*b为真,执行循环体;*a的值为2,* b的值为3,*a<*b为真,执行循环体;*a的值为3,%b的值为2,*a<*b为假,getchar读入字符“a”,执行循环体;*a的值为4,*b的值为1,*a<*b为假,getehar读入字符“b”,执行循环体;$*的值为5,*b的值为0,*a<*b为假,getchar读入字符“        ”,fun函数执行完毕,main函数输出5,0。故本题答案为D选项。
转载请注明原文地址:https://kaotiyun.com/show/VDkp777K
0

相关试题推荐
最新回复(0)