试题与答案

有以下程序#include<stdio.h>void f(int *p,int *q

题型:单项选择题

题目:

有以下程序#include<stdio.h>void f(int *p,int *q);main(){ int m=1,n=2,*r=&m; f(r, &n); printf("%d,%d",m,n);}void f(int*p,int*q){p=p+1; *q=*q+1;) 程序运行后的输出结果是______。

A.1,3

B.2,3

C.1,4

D.1,2

答案:

参考答案:A

解析:[评析] 本题主要考查函数实参和形参之间的传递,C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只能由实参传绐形参,而不能由形参传回来给实参。f(r&n)把n的地址传递给q,通过地址传递的函数可以有返回值,因此,n的值为q的返回值3,又因为p是形参变量没有返回值,所以m的值没有改变,因此,选项A是正确的。

试题推荐
微信公众账号搜索答案