有以下程序: void sort(int a[],int n) { int i,j,t; for(i=0;i<n;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+2,5); for(i=0;i<10;i++)printf("%d,",aa [i]); printf("\n"); } 程序运行后的输出结果是 ___

题目

有以下程序: void sort(int a[],int n) { int i,j,t; for(i=0;i<n;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+2,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,2,7,6,3,4,5,8,9,10,

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

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


相似考题
参考答案和解析
正确答案:C
解析:本题sort函数的作用是将指定的数由大到小排序。主调函数“sort(aa+2,5);”中的实参aa+2是指aa[2]的地址,将其传给了形参a[],使得形参中a[0]的值为主函数中aa[2]的值,即3;实参中的5传绐形参中的n,在sort函数中起着限制循环次数的作用,即使得参加排序的只有5个数,从aa[2]到aa[6],所以本题输出的结果是1,2,7,6,5,4,3,8,9,10,。
更多“有以下程序: void sort(int a[],int n) { int i,j,t; for(i=0;i<n;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+2,5); for(i=0;i<10;i++)printf("%d,",aa [i]); printf("\n"); } 程序运行后的输出结果是 ___”相关问题
  • 第1题:

    以下程序中函数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[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
    解析:本题考查数组名作为函数形参的函数调用问题。数组名作函数形参是按地址传递,形参的改变可以传回实参。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。

  • 第2题:

    有以下程序: include void sort(int a[] ,int n){int i,j,t; for(i=0;i

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

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

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

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

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


    正确答案:C
    解析:sort函数的功能是将给定的数由大到小排序。函数调用sort(aa+2,5);中的实参aa+2是aa[2]的地址,将其传给形参a[],使得形参中封a[0]的值为主函数中aa[2]的值,即3;实参5传给形参n,在sort函数中用于指定参加排序的5个数,从aa[2]到aa[6],所以本题输出的结果是:1,2,7,6,5,4,3,8,9,10,

  • 第3题:

    以下程序中函数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个数进行了从大到小的排序,其他数组元素不变。

  • 第4题:

    include void sort(inta[],int n) {int i,j,t;for(i=0;i

    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("%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个数进行从大到小排序,其他数不变。

  • 第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题:

    有下列程序:

    void sort(int a[],int n)

    { int i,j,t;

    for(i=0;i<n-l;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+2,5);

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

    printf("\n");

    }

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

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

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

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

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


    正确答案:C
    本题考查排序的使用由sort函数的两层for循环语句可知,其二々能是把数组a口中的元素按照从大到小的顺序进行排列。在main函数中首先定义了一维整型数组aa[10],然后调用sort(aa+2,5)实现从数组aa中下标为2的元素“3”开始.其后连续的5个元素从大到小进行排列,其余元素不变。

  • 第7题:

    有以下程序void sort(int a[],int n){ int i,j,t; for(i=0;i<n-1;i+=2) for(j=i+2;j<n;j+=2) 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,10); 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.9,2,7,4,5,6,3,8,1,10 D.1,10,3,8,5,6,7,4,9,2,


    正确答案:C
    sort函数的功能实际上是对数组中奇数位置上的数进行从大到小排序。排序后的结果应该为9,2,7,4,5,6,3,8,1,10。

  • 第8题:

    有以下程序: 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+2,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,2,7,6,3,4,5,8,9,10,

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

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


    正确答案:C
    解析:先看sort()函数,它没有返回值,有两个参数,一个int型数组和一个int型变量。在函数中是一个二重循环,外循环变量i从0递增到n-2,内循环变量j从i+1递增到n-1。内循环体是一条if语句“如果a[i]a[j]就把两个值交换”。这是一个典型的从大到小选择排序算法,排序的范围是a[0]~a[n-1],一共n个数排序,主函数中定义了一个数组aa[10],然后调用sort(aa+2,5);的意思是将aa[2]~aa[6]范围的5个数据从大到小排序。所以排序以后数组aa[10]的内容是1,2,7,6,5,4,3,8,9,10。故应该选择C。

  • 第9题:

    以下程序中函数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正确。

  • 第10题:

    以下程序中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”。

  • 第11题:

    有以下程序:includevoid sort(int a[],int n){int i,j,t; for(i=0;i

    有以下程序: #include <stdio.h> void sort(int a[],int n) { int i,j,t; for(i=0;i<n-1;i+=2) for(j=i+2;j<n;j+=2) 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,10); 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.9,2,7,4,5,6,3,8,1,10,

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


    正确答案:C
    解析:sort函数的功能实际上是对数组中奇数位置上的数进行从大到小排序。排序后的结果应该为9,2,7,4,5,6,3,8,1,10。

  • 第12题:

    有以下程序: void sott(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+2, 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, 2, 7, 6, 3, 4, 5, 8, 9, 10,

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

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


    正确答案:C
    解析:aa+2=aa[2],因此sort(aa+2,5)是从aa[2]开始,依次与后面的元素进行比较,将当前值小于其后一项的值进行互换,循环5次。

  • 第13题:

    有以下程序: void fun(int *a,int i,int i) { int t; if(i<j) { t==a[i];a[i]=a[j];a[i]=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()中用了一个if语句,当数组下标i小于数组下标j时,交换数组元素a[i]和a[j]的值,并使i值加1,j值减1。其功能就是把数组a中从下标i到j的元素首尾互换。主函数中定义一个数组x,该数组有4个元素,接着调用fun(a,O,3),其中将a数组的第一个元素的下标0和最后一个元素的下标3传给了函数fun(),故执行完该函数后,数组a中的元素首尾互换,因此最后依次输出的数组a中值为8、1、6和2,所以,4个选项中选项C符合题意。

  • 第14题:

    以下程序中,函数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。

  • 第15题:

    有以下程序:includevoid f(char p[][10],int n){char t[10];int i,j;for(i=0;i

    有以下程序: #include<string.h> void f(char p[][10],int n) {char t[10];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[5][10]={"abc","aabdfg","abbd","dedbe","cd"}; f(p,5); printf("%d\n",strlen(p[0]));} 程序运行后的输出结果是( )。

    A.2

    B.4

    C.6

    D.3


    正确答案:C
    解析:本题考核的是二维字符数组按行存放字符串、二维数组名作为函数的参数以及字符串的排序。主函数中定义了一个二维字符串数组p并按行赋值,调用f()函数,将字符串从小到大排序,strcmp()函数的功能是对两个字符串作向右逐个字符比较,直到出现不同的字符或遇到“\0”为止。如果全部字符都相同,则认为相等;若出现不同的字符.则以第一个不相同的字符的比较结果为准。由此可知最小的字符串是“aabdfg”,排序后存放在p[0]中,最后在主函数中输出p[0]的长度。

  • 第16题:

    以下程序中函数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]); pfintf(“\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的一个整型数组,并初始化为“l,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”。

  • 第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题:

    有以下程序 vold soru(int a[], int n) { int i,i,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[i]; a[j]=t; } } main() { int aa[10]={1,2,3,4,5,6,7,8,9,10),i; sore(aa+2, 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,2,7,6,3,4,5,8,9,10,

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

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


    正确答案:C
    解析:先看sort()函数,它没有返回值,有两个参数,一个int型数组和一个int型变量。在函数中是一个;重循环,外循环变量i从0递增到n-2,内循环变量j从i+l递增到n-1。内循环体是一条if语句“如果a[i]

  • 第19题:

    以下程序的输出结果是#include <conio.h>#include <stdio.h>#define M 100void fun(int m, int *a, int *n){ int i,j=0; for(i=1;i<=m;i++) if(i%7==0||i%11==0) a[j++]=i; *n=j;}main(){ int aa[M],n,k; clrscr(); fun(100,aa,&n); for(k=0;k<n;k++) if((k+1)%20==0)printf("\n"); else printf("%d",aa[k]); printf("\n"); }


    正确答案:77
    在本题中,程序首先定义一个宏M,然后定义一个fun函数,函数带有三个形参,分别是一个整型形参m和两个整型指针形参a、n。在函数体中,首先定义两整型变量i和j,并给j赋初值为0,然后执行循环,循环体中首先是一个条件判断语句,如果结果为真,则说明变量i能同时被7和11整除,并将变量i保存到数组中,循环结束后,将数组中元素的个数通过指针变量n进行返回。通过分析可以知道,fun函数的作用是求取1到m中能同时被7和11整除的整数,并将结果保存到数组a中。
    在主函数中,首先定义了两个整型变量和一个整型数组aa,然后调用clrscr()函数对文本模式窗口进行清除操作。接着调用fun函数,根据上面我们对fun函数的分析,要计算1~100之间能同时被7和11整除的整数,很显然,这样的数只有77一个,那么此时数组aa中只有一个元素为77,而n的值是1。
    接着执行for循环,从程序中不难看出循环的作用是将数组aa中的元素按一定的规则输出,其规则为每行最多只能输出20个值。结合上面的分析,数组aa中只有一个元素为77,因此,本题程序的最终输出结果为77。

  • 第20题:

    有以下程序:struct S{int n;int a[20];};void f(struct S*P){int i,j,t;for(i=0;in-1;i++)fo

    有以下程序: struct S{int n;int a[20];}; void f(struct S*P) { int i,j,t; for(i=0;i<P->n-1;i++) for(j=j+1;j<P->n-1;j++) if(p->a[i]>p->a[j]) {t=P->a[i];p->a[i]=P->a[j];p->a[j]=t} } main() {int i;struct S s{10,{2,3,1,6,8,7,5,4,10,9}}; f(&s); for(i=0;i<s.n;i++)printf("%d",s.a[i]);} 程序运行后的输出结果是( )。

    A.3

    B.4

    C.5

    D.6


    正确答案:A
    解析:在主函数main()中定义了一个整型变量i和一个结构体变量s。f()函数中,定义了一个结构体指针类型的指针p,外层循环变量i表示数组的第i个元素,内层循环j表示数组的第i+1个元素,调用f()函数,通过指针变量p来引用结构体成员,并把它们进行从小到大排序,最后输出。

  • 第21题:

    以下程序中函数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语言中,实参变量和形参变量之间的数据传递是单向的“值传递”方式。指针变量作函数参也要遵循这一规则,调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值。

  • 第22题:

    写出模板函数实现数值型数组元素值按从小到大排序的程序。

    include<iostream>

    using namespace std;

    template <class T>

    void sort(T b[],int n)

    {

    T temp;

    int i,j;

    T *a=new T[n];

    for (i=0;i<n;i++){a[i]=b[i];}

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

    {

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

    { if(a[i]>a[j])

    {temp=a[i];

    a[i]=a[j];

    a[j]=temp;

    }

    }

    }

    for(i=0;i<n;i++){cout<<a[i]<<" ";}

    cout<<endl;

    delete []a;

    }

    void main()

    {

    int i,n=6;

    int a[]={5,1,9,10,3,8};

    ____________;

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

    {cout<<a[i]<<" ";}

    cout<<endl;

    }


    正确答案:
    template<classT><int>(a,6)

  • 第23题:

    有以下程序 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
    解析:在C语言中所谓函数的递归是指在调用一个函数的过程中,又出现了直接或间接地调用该函数本身,直接调用该函数本身的称为函数递归,而间接调用该函数称为函数的间接递归调用。由程序可以看出函数f(a,i,j)为一递归函数,其功能是当ij时,将数组中的元素a[i]和a[j]交换,然后再调用函数f(a,i+1,j-1),将数组中 a[i+1]和a[j--]交换,这样一直递归到数组下标i=j,可见该递归函数的作用是使数组中首尾元素依次互换。主函数中定义了—个长度为5的数组aa并初始化,然后调用f(a,0, 4),将数组a中的元素依次互换,故最后for循环输出的数组aa中各元素的值为5、4、3、2、1。