试题与答案

以下程序运行后的输出结果是 #include<stdio.h> #define

题型:单项选择题

题目:

以下程序运行后的输出结果是 #include<stdio.h> #define N 8 void fun(int *x, int i){*x=*(x+i);} main() { int a[N]={1, 2, 3, 4, 5, 6, 7, 8}, i;fun(a, 2);for(i=0; i<N/2; i++) {printf("%d", a[i]); } printf("\n"); }

A.1313

B.2234

C.3234

D.1234

答案:

参考答案:C

解析: 在函数fun中,i的值为2,*x=*(x+i)即为*x=s(x+2);由于(x+2)与main函数中a[2]共用存储单元,a[2]的值为3,赋值语句*x=*(x+i)作用是将3付给*x,即赋给x[0]。由于x[0]与main函数中的a[0]共用存储单元,因此,a[0]的值被改变为3。程序要求输出a数组前4个元素a[0]~a[3]的值,即3、2、3、4。

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