以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序: float sort(int a[], int n) { int i, j, t; for(i=0; i<n-1; i++) for(j=i+1; j<n;

admin2010-09-05  33

问题 以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序:    float sort(int a[], int n)    { int i, j, t;      for(i=0; i<n-1; i++)    for(j=i+1; j<n; j++)         if(a<a[j]){t=a; a=a[j]; a[j]=t; }    }    main()    { int aa[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10), i;      sort(&aa[3], 5);      for(i=0; i<10; i++)printf("% d", aa);      printf ("\n");    }    程序运行后的输出结果是______。

选项 A、1, 2, 3, 4, 5, 6, 7, 8, 9, 10
B、10, 9, 8, 7, 6, 5, 4, 3, 2, 1
C、1, 2, 3, 8, 7, 6, 5, 4, 9, 10
D、1, 2, 10, 9, 8, 7, 6, 5, 4, 3

答案C

解析 本题考查数组名作为函数形参的函数调用问题。数组名作函数形参是按地址传递,形参的改变可以传回实参。sort函数的两个形参中一个是数组名,sort函数的功能是对数组元素进行由大到小的排序。主函数调用sort函数时,实参为aa[3]元素的地址和整数5,即sort函数将对数组aa中的元素aa[3]、aa[4]、aa[5]、aa[6]、aa[7]5个元素的值进行由大到小的排序,排序后aa[3]=8、aa[4]=7、aa[5]=6、aa[6]=5、aa [5]=4,而数组aa中其余元素的值不变,因此结果是C。
转载请注明原文地址:https://kaotiyun.com/show/XKWp777K
0

最新回复(0)