单选题以下程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序。#include void f(int b[],int n,int flag){ int i,j,t; for(i=0;ib[j]:b[i] A 1,2,3,4,5,6,7,8,9,10,B 3,4,5,6,7,2,1,8,9,10,C 5,4,3,2,1,6,7,8,9,10,D 10,9,8,7,6,5,4,3,2,1,

题目
单选题
以下程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序。#include void f(int b[],int n,int flag){ int i,j,t; for(i=0;ib[j]:b[i]
A

1,2,3,4,5,6,7,8,9,10,

B

3,4,5,6,7,2,1,8,9,10,

C

5,4,3,2,1,6,7,8,9,10,

D

10,9,8,7,6,5,4,3,2,1,


相似考题
更多“单选题以下程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序。#include void f(int b[],int n,int flag){ int i,j,t; for(i=0;ib[j]:b[i] A 1,2,3,4,5,6,7,8,9,10,B 3,4,5,6,7,2,1,8,9,10,C 5,4,3,2,1,6,7,8,9,10,D 10,9,8,7,6,5,4,3,2,1,”相关问题
  • 第1题:

    下列程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。 include voidsort(

    下列程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。

    #include<stdio.h>

    voidsort(int a[],int n)

    { int i,j,t;

    for(i=0;i<n-1;i++)

    for(j=i+1;j<n;j++)

    if(a[i]<a[j])

    { t=a[i];a[i]=a[j];a[j]=t;

    }

    }

    main()

    { int a [10]={1,2,3,4,5,6,7,8,9,10},i;

    sort(&a[1],7) ;

    for(i:0;i<10;i++)printf("%d,",a[i]);

    }

    程序运行后的输出结果是( )。

    A.1,2,3,4,5,6,7,8,9,10,

    B.10,9,8,7,6,5,4,3,2,1,

    C.1,8,7,6,5,4,3,2,9,10,

    D.1,2,10,9,8,7,6,5,4,3,


    正确答案:C
    解析:本程序中的函数sort(int a[],int n)实现的功能是将数组a中的前n个数进行从大到小排序。 sort(&a[1],7)是将数组中从a[1]到a[7]这7个数进行从大到小排序,其他数不变。

  • 第2题:

    有以下程序:include void f(int a[],int i, int j){int t; if(i

    有以下程序: #include <stdio.h> void f(int a[],int i, int j) { int t; if(i<j) { t=a[i];a[i]=a[j];a[j]=t; f(a,i+1,j-1); } } main() { int i,aa[5]={1,2,3,4,5}; f(aa,0,4); for(i=0;i<5;i++) printf("%d,",aa[i]);printf("\n"); } 执行后的输出结果是( )。

    A.5,4,3,2,1,

    B.5,2,3,4,1,

    C.1,2,3,4,5,

    D.1,5,4,3,2,


    正确答案:A
    解析:f函数的功能是通过递归调用实现数组中左右部分相应位置数据的交换,即数组中第一个元素与最后一个元素调换位置,第二个元素与倒数第二个元素调换位置,以此类推。

  • 第3题:

    以下程序中,函数sort的功能是对a数组中的数据进行由大到小的排序。void 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[i]<a[j]) { t=a[i];a[i]=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[i]); printf("\n");}程序运行后的输出结果是A.1,2,3,4,5,6,7,8,9,10B.10,9,8,7,6,5,4,3,2,1C.1,2,3,8,7,6,5,4,9,10D.1,2,10,9,8,7,6,5,4,3


    正确答案:C
    本题题目给出了函数sort的功能是对a数组中的数据进行由大到小的排序。在函数sort中,带有两个形参,其中一个为要操作的数组a,在函数体中,通过双重循环对a数组元素进行排序。
    在主函数中,定义了一个数字aa,并赋了初值,然后调用函数sort,其两个参数分别为&aa[3]和5,其中&aa[3]表示从数组aa的第四个元素作为首地址,即使形参数组a的首地址等于实参数组aa第四个元素的地址,从数组aa的第四个元素开始操作,即a[0]=aa[3]=4, a[1]=aa[4]=5,…,a[4]=aa[7]=8。
    题目告诉我们,sort的功能是对a数组中的数据进行由大到小的排序。那么对4,5,6,7,8排序的结果是8,7,6,5,4。调用函数结束后,数组aa中的值是1,2,3,8,7,6,5,4,9,10。然后程序通过一个循环输出该数组中的元素。因此,最后程序的输出结果为1,2,3,8,7,6,5,4,9,10。

  • 第4题:

    以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。includevoid f(char p

    以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。 #include<string.h> void f(char p[][10],int n) { char t[20];int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strcmp(p[i],p[j]<0) {strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);} } main() { charp[][10]={“abc”,“aabdfg”,“abbd”,“dcdbe”,”cd”};int i; f(p,5);printf(“%d\n”,strlen(P[0])); } 程序运行后的输出结果是

    A.6

    B.4

    C.5

    D.3


    正确答案:C
    解析:函数stremp(字符串1,字符串2)作用是将“字符串1”和“字符串2”进行比较,如果“字符串1”>“字符串2”,返回一个大于0的整数值;如果“字符串1”“字符串2”,返回一个小于0的整数值;如果“字符串1”=“字符串2”,返回0。函数 strepy(字符串数组名,字符串,[整型表达式]),整型表达式的作用是将“字符串”的前“整型表达式”个字符存入到指定的“字符数组”中,若省略“整型表达式”,则将整个“字符串”存入“字符数组”中。函数f()的功能是利用选择法把一个具有n行的二维数组中按行存放的n个字符串由大到小排序。在主函数中定义了一个二维字符数组p并给它按行赋初值,然后调用f()函数,把它按行从大到小排列。字符串比较大小的标准是从第一个字符开始依次向右比较,遇到某一个字符大,该字符所在的字符串就是较大的字符串。由此可知最大的字符串为“dcdbe”,排序后存放在第一行,其首地址为P[0],在输出语句输出的P[0]指向的字符串长度是5。

  • 第5题:

    以下程序中函数sort的功能足对a数组中的数据进行由大到小的排序 void 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[i]<a[j]){t=a[i];a[i]=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[i]); printf("\n"); } 程序运行后的输出结果是( )。

    A.1,2,3,4,5,6,7,8,9,10,

    B.1 0,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函数的功能是对数组中的数据进行从大到小的排序。主函数main中调用函数sort(&aa[3],51;,使得数组aa中从第4个元素开始的5个元素进行从大到小的排序,数组aa中的元素变为:1,2,3,8,7,6,5,4,9,10。并输出这些元素。

  • 第6题:

    有以下程序:include void sort(int L[],int n){ int j, k, flag, temp; flag=n-1;

    有以下程序: #include <iostream.h> void sort(int L[],int n) { int j, k, flag, temp; flag=n-1; while (flag>O) { k=flag-1; flag=O; for (j=O; j<=k; j++) { if(L[j]>L[j+1]) {

    A.123

    B.3210

    C.2130

    D.1230


    正确答案:A
    解析:本题中的函数sort的功能是将输入的数组L,按从小到大的顺序排序,并返回。所以程序最后的输出为0123,即A选项。

  • 第7题:

    下列程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。include void sort(

    下列程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。 #include <stdio.h> void 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[i]<a[j]) { t=a[i];a[i]=a[j];a[j]=t; } } main() { int a[10]={1,2;3,4,5,6,7,8,9,10},i; sort(&a[1],7); for(i=0;i<10;i++)printf("%d,",a[i]); } 程序运行后的输出结果是( )。

    A.1,2,3,4,5,6,7,8,9,10,

    B.10,9,8,7,6,5,4,3,2,1,

    C.1,8,7,6,5,4,3,2,9,10,

    D.1,2,10,9,8,7,6,5,4,3,


    正确答案:C
    解析:本程序中的函数sort (int a[],int n)实现的功能是将数组a中的前n个数进行从大到小排序。sort(&a[1],7)是将数组中从a[1]到 a[7]这7个数进行从大到小排序,其他数不变。

  • 第8题:

    以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序 void sort(int a[],int n) { int i,j,t; for(i=0;i<n-1;i++) for(j=i+1;<n;j++) if(a[i]<a[j]){t=a[i];a[i]=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[i]); 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
    解析:C语言中,实参变量和形参变量之间的数据传递是单向的“值传递”方式。指针变量作函数参也要遵循这一规则,调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值。

  • 第9题:

    下列程序中函数son()的功能是对数组a中的数据进行由大到小的排序。includevoid sort(in

    下列程序中函数son()的功能是对数组a中的数据进行由大到小的排序。 #include<stdio.h> void 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[i]<a[j]) { t=a[i];a[i]=a[j];a[j]=t; } } main() { int a[10]={1,2,3,4,5,6,7,8,9,10},i; sort(&a[1],7); for(i=0;i<10;i++)printf("%d,",a[i]); } 程序运行后的输出结果是( )。

    A.1,2,3,4,5,6,7,8,9,10,

    B.10,9,8,7,6,5,4,3,2,1,

    C.1,8,7,6,5,4,3,2,9,10,

    D.1,2,10,9,8,7,6,5,4,3,


    正确答案:C
    解析:本程序中的函数sort(inta[],intn)实现的功能是将数组a中的前n个数进行从大到小排序。sort(&a[1],7)是将数组中从a[1]到a[7]这7个数进行从大到小排序,其他数不变。

  • 第10题:

    以下程序中函数f( )的功能是将n个字符串按由大到小的顺序进行排序。 include void f

    以下程序中函数f( )的功能是将n个字符串按由大到小的顺序进行排序。 #include<string.h> void f(char p[ ][10],int n) { char t[20]; int i,j; for(i =O;i <n-1 ;i ++ ) for(j =i + 1 ;j < n;j ++ ) if(strcmp(p [i] ,p[j] ) <0) { strcpy(t,p[i]);strcpy(p[i] ,p[j] );strcpy(p[j] ,t); } } main ( ) { char p [ ] [ 10 ] = { "abc","aabdfg","abbd","dcdbe", "cd" }; int i; f(p,5); printf("%d\n",strlen(p[O] ) ); } 程序运行后的输出结果是

    A.6

    B.4

    C.5

    D.3


    正确答案:C
    解析:对字符串比较的方法是依次对两字符串对应位置上的字符两两比较,当出现第一对不相同的字符时,即由这两个字符(ASCII码值)决定所在串的大小。

  • 第11题:

    以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。 include void f(char

    以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。 #include <string.h> void f(char p[][10], int n) { char t[20]; int i,j; for(i=0;i<n-1;i++) for(j=i+l;j<n;j++) if(strcmp (p[i],p[j])<0) { strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);} } main() { char p[][lO]-{"abc","aabdfg","abbd","dcdbe","cd"};int i; f(p,5); printf("%dkn",strlen(p[0])); } 程序运{亍后的输出结果是

    A.6

    B.4

    C.5

    D.3


    正确答案:C
    解析:函数strcmp(字符串1,字符串2)作用是将”字符串1”和”字符串2”进行比较,如果“字符串1”》”字符串2”,返回一个大于0的整数值;如果“字符串1”“字符串2”,返回一个小于0的整数值;如果”字符串1”=“字符串2”,返回0。函数strcpy(字符串数组名,字符串,[整型表达式])的作用是将“字符串”的前“整型表达式”个字符有入到指定的“字符数组”中,若省略“整型表达式”,则将整个“字符串”存入,字符数组”中.函数f()的功能是利用选择法把一个具有n行的二维数组中按行存放的n个字符串由大到小排序。在主函数中定义了一个二维字符数组p并给它按行赋初值,然后调用f()函数;把它按行从大到小排列。字符串比较大小的标准是从第一个字符开始依次向右比较,遇到某一个字符大,该字符所在的字符串就是较大的字符串。由此可知最大的字符串为“dcdbe”,排序后存放在第一行,其首地址为P[0],在输出语句输出的p[0]指向的字符串长度是5。所以4个选项中C正确。

  • 第12题:

    用“起泡法”对输入的10个字符排序后按从小到大的次序输出。

    #define N 10

    char str[N];

    main()

    { int i,flag;

    for(flag=1;flag==1;)

    { scanf("%s",str);

    flag=0;

    printf("\n");

    }

    sort(___(4)___);

    for(i=0;i<N;I++)

    printf("%c",str[i]);

    printf("\n");

    }

    sort(char str[N])

    { int i,j;

    char t;

    for(j=1;j<N;J++)

    for(i=0;(i<N-J)&&(STR[I]!='\0');I++)

    if(str[i]>str[i+1])

    { t=str[i];

    ____(5)____;

    ____(6)____;

    }

    }


    正确答案:
    2.(4) str (5) str[i]=str[i+1] (6) str[i+1]=t

  • 第13题:

    下列程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。includevoid sort(i

    下列程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。

    #include<stdio.h>

    void sort(inta[],int n)

    {int i,j,t;

    for(i=0;i<n-1;i++)

    for(j=i+1;<n;j++)

    if(a[i]<a[j])

    {t=a[i];a[i]=a[j];a[j]=t;

    }

    }

    main()

    {int a[10]={1,2,3,4,5,6,7,8,9,10},i;

    sort(&a[1],7);

    for(i=0;i<10;i++)printf("

    A.1,2,3,4,5,6,7,8,9,10,

    B.10,9,8,7,6,5,4,3,2,1,

    C.1,8,7,6,5,4,3,2,9,10,

    D.1,2,10,9,8,7,6,5,4,3,


    正确答案:C
    解析: 本程序中的函数sort(int a[],int n)实现的功能是将数组a中的前n个数进行从大到小排序。 sort(&a[1],7)是将数组中从a[1]到a[7]这7个数进行从大到小排序,其他数不变。

  • 第14题:

    有以下程序,其中函数f的功能是将多个字符串按字典顺序排序: include void f(ch

    有以下程序,其中函数f的功能是将多个字符串按字典顺序排序: #include<string.h> void f(char *p[],int n) {char *t;int i,j; for(i=O;i<n-1;i++) for(j=i+1;j<n;j++) if strcmp(p[i],p[j])>0{t=p[i] p[i]=p[j]; p[j]=t; } } main() {char* p[5]=("abc","aabdfg","abbd","dcdbe","cd"}; f(p,5); printf("%d\n",strlen(p[1])); } 程序运行后的输出结果是 ______。

    A.2

    B.3

    C.6

    D.4


    正确答案:D
    解析:字符串比较函数“strcmp(char*s1,char*s2)”的比较规则是对两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到到"\0"为止。如果全部相同,则认为相等:若出现不相同的字符,则以第一个不相同的字符的比较结果为准。当s1s2,返回值0;当s1=s2时,返回值二0:当s1>s2时,返回值>0。故本题经过排序后,得到第二个字符串是“abbd”,所以输出结果是4。

  • 第15题:

    以下程序中函数sort的功能是对数组a中的数据进行由大到小的排序:includevoidsort(int

    以下程序中函数sort的功能是对数组a中的数据进行由大到小的排序: #include<stdio.h> voidsort(int a[],int n) { int i,j,t; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(a[i]<a[j]) {t=a[i];a[i]=a[j];a[j]=t;} } main() { int aa[]={1,2,3,4,5,6,7,8,9,10},i; son(&aa[3],5); for(i=0;i<10;i++) printf("%d,",aa[i]); 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
    解析:在main函数中调用sort函数时,实参&aa[3]把数组元素aa[3]的首地址传给形参数组a,使aa[3]与a[0]相对应。sort函数将从aa[3]开始的连续5个数进行了从大到小的排序,其他数组元素不变。

  • 第16题:

    有以下程序:include void fun(iht * a,int i,int j){int t;if(i < j) {t=a[i];a[i] =

    有以下程序:#include <stdio, h>void fun(iht * a,int i,int j){ int t; if(i < j) { t=a[i];a[i] =a[j] ;a[j]=t; i++;j--; fun(a,i,j);main ( ) int x[ ]: {2,6,1,8} ,i; fun(x,0,3); for( i=0;i <4;i ++ ) printf( "%2d" ,x[i] ); printf(" \n");

    A.1268

    B.8621

    C.8162

    D.8612


    正确答案:C
    解析:语句fun(x,0、3);中将数组名x作为实参,即把数组x的首地址传送给形参(指针a),使数组x与形参指针s共占同一段内存单元,在调用函数期间,如果形参数组x的值发生了改变,实参指针a的值也就改变了。程序中fun函数是递归调用函数,其运行过程是:第1次调用fun时,a=x,i=0,j=3,ij成立,a[0]与a[3]交换,a数组中的数变为{8,6,1,2},执行i++;j--;继续调用fun,此时i,j分别为1,2,ij成立,a[1]与a[2]交换,a数组中的数变为{8,1,6,2},执行i++j--;继续调用fun,此时i,j分别为2,1,ij不成立,递归调用结束。当返回主函数时,x数组中的数据就为{8,1,6,2}。

  • 第17题:

    以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序: void sort(int a[],int n) {int i,j,t; for(i=0;i<n-1;i++) for(j=i+1;i<n;j++) if(a[i]<a[j]) {t=a[i];a[i]=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[i]); 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
    解析:本题中首先定义一个长度为10的整型数组,并初始化为“1,2,3,4,5,6,7,8,9,10”,然后调用排序函数sort(),对aa[3]开始的5个元素进行从大到小的排序,aa[0]、aa[1]、aa[2]、aa[8]、aa[9]并没有变化。sort()执行完毕后,接着执行后面的for语句输出数组aa中各个元素的值,所以输出为“1,2,3,8,7,6,5,4,9,10”。故4个选项中C正确。

  • 第18题:

    以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。includevoid f(char

    以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。#include <string. h>void f(char p[][10],int n){ chart[20];int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n; j++) if(strcmp(p[i],p[j]<0) {strcpy(t, p[i]); strcpy(p[i],p[j]);strcpy(p[j],t);}}main(){ char p[][10]={"abc", "aabdfg", "abbd", "dcdbe", "cd"}; int i; f(p,5); printf("%d\n", strlen(p[0]));} 程序运行后的输出结果是( )。

    A.6

    B.4

    C.5

    D.3


    正确答案:C
    解析:函数f()的功能是利用选择法把个具有n行的二维数组中按行存放的n个字符串由大到小排序。在主函数中定义了一个二维字符数组p并给它按行赋初值,然后调用f()函数,把它按行从大到小排列。字符串比较大小的标准是从第一个字符开始依次向右比较,遇到某一个字符大,该字符所在的字符串就是较大的字符串。由此可知最大的字符串为"dcdbe",排序后存放在第一行,其首地址为p[0],在输出语句输出的p[0]指向的字符串长度是5。所以4个选项中C正确。

  • 第19题:

    以下程序中函数sort的功能足对a所指数组中的数据进行由大到小的排序 void sort(int a[],int n) { int i,j,t; for(i=0;i<n-1;i++) for(j=i+l,j<n;j++) if(a[i]<a[j]) {t=a[i];a[i]=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++) print("%d, ",aa[i]); 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
    解析:本题考查的知识点是数组名作为函数的参数以及函数与排序算法结合在一起的综合应用.本题中首先定义一个长度为10的一个整型数组,并初始化为“1,2,3,4,5,6,7,8,9,10”,然后调用排序函数sort(),通过分析不难看出,sort()数是对具有n个元素的a数组进行从大到小排序.由于函数的第一个参数是数组名,其对应的实参可以是函数名或地址。本题在调用该函数时,实参是&aa[3)的地址,即把aa[3]的地址传给?行参数蛆名a,函数也就是对aa[3]开始的5个元素进行从大到小的排序,aa[0]。aa[1],aa[2]、aa[8]、aa[9]并没有变化.Sort()执行完毕后,接着执行后面的for语句输出数组aa中各个元素的值,由于函数sort()只是对aa[3]开始的5个元素进行从大到小的排序,aa[0]、aa[1]、aa[2]、aa[8]、aa[9]并没有变化,所以输出为“1,2,3,8,7,6,5,4,9,10”。所以4个选项中C正确。

  • 第20题:

    有以下程序 include void fun(int *a,int n)/*fun函数的功能是将a所指数组元素从大到

    有以下程序

    #include <stdio.h>

    void fun(int *a,int n)/*fun函数的功能是将a所指数组元素从大到小排序*/

    { int t,i,j;

    for(i=0;i<n-1;j++)

    for(j=i+1;j<n;j++)

    if(a[i]<a[j]) { t=a[i];a[i]=a[j];a[j]=t;}

    }

    main( )

    { int c[10]={1,2,3,4,5,6,7,8,9,0},i;

    fun(c+4,6);

    for(i=0;i<10;i++) printf("%d,",c[i]);

    printf("\n");

    }

    程序的运行结果是

    A.1,2,3,4,5,6,7,8,9,0,

    B.0,9,8,7,6,5,1,2,3,4,

    C.0,9,8,7,6,5,4,3,2,1,

    D.1,2,3,4,9,8,7,6,5,0,


    正确答案:D
    解析:在本题中,主函数在调用fun( )函数进行排序时,传递的参数是c+4和6,fun( )函数实现的功能是将数组c的第5个元素开始的6个元素依次进行从大到小的顺序排列。排序之后,数组c的内容变为{1,2,3,4,9,8,7,6,5,0}。

  • 第21题:

    以下程序中sort( )函数的功能是对a所指数组中的数据进行由大到小的排序: void 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[i]<a[j]){t=a[i];a[i]=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;++)printf("%d,",aa[i] ); 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
    解析:形参a接受的是字符串“4 5 6 7 8”,调用sort( )函数后,字符串的顺序变为“8 7 6 5 4 9 10”。

  • 第22题:

    以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序; void 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[i]<a[j]) {t=a[i];a[i]=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++)print("%d,",aa[i]); 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
    解析:本题中首先定义一个长度为10的一个整型数组,并初始化为“1,2,3,4,5,6,7,8,9,10”,然后调用排序函数sort(),通过分析不难看出,sort()函数是对具有n个元素的a数组进行从大到小排序。由于函数的第一个参数是数组名,其对应的实参可以是函数名或地址。本题在调用该函数时,实参是&aa[3]的地址,即把aa[3]的地址传给了行参数组名a,函数也就是对aa[3]开始的5个元素进行从大到小的摔序,aa[0]、aa[1]、aa[2]、aa[8]、aa[9]并没有变化。Sort()执行完毕后,接着执行后面的for语句输出数组aa中各个元素的值,由于函数sort()只是对aa[3]开始的5个元素进行从大到小的排序,aa[0]、aa[1]、aa[2]、aa[8]、aa[9]并没有变化,所以输出为“1,2,3,8,7,6,5,4,9,10”。所以4个选项中C正确。

  • 第23题:

    以下程序中函数f的功能是: 当flag 为1时,进行由小到大排序;当flag 为0时,进行由大到小排序。void f(int b[], int n, int flag){int i, j, t; for (i=0; i<n-1; i++) for (j=i+1; j<n; j++) if(flag ? b[!]>[j]: b[i]<b[j]) { t=b[i]; b[i]=b[j]; b[j]=t; }}main (){ int a[10]={5,4,3,2,1,6,7,8,9,10}, i; f(&a[2], 5, 0); f(a, 5, 1), for (i=0; i<10; i++) printf("%d,", a[i]);}程序运行后输出结果是( )。

    A.1,2,3,4,5,6,7,8,9,10,

    B.3,4,5,6,7,2,1,8,9,10,

    C.5,4,3,2,1,6,7,8,9,10,

    D.10,9,8,7,6,5,4,3,2,1,


    正确答案:B
    解析:题目中先后两次调用了函数f()。第1次,使用参数“&a[2],5,0”表示从数组a下标为2的元素开始,对其后的5个元素进行由大到小排序。所以排序结果是{5,4,7,6,3,2,1,8,9,10)。第2次,使用参数“a,5,1”表示从数组a的首元素开始,对其后5个元素进行由小到大排序。所以排序结果是{3,4,5,6,7,2,1,8,9,10)。故本题应该选择B。