【原创作品】湖南成人教育学位英语【完形填空】练习和答案详解(1)【资料下载】

有以下程序

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=i+1;j<p->n;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)1,2,3,4,5,6,7,8,9,10,

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

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

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


正确答案:A


有以下程序

struct S{ int n; int a[20]; };

void f(int *a,int n)

{ int i;

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

}

main( )

{ int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}};

f(s.a,s.n);

for(i=0;i<s.n;i++) printf("%d",s.a[i]);

}

程序运行后的输出结果是

A)2,4,3,9,12,12,11,11,18,9,

B)3,4,2,7,9,8,6,5,11,10,

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

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


正确答案:A


有以下程序

#include <stdio.h>

void fun( int a, int b)

{ int t;

t=a; a=b; b=t;

}

main()

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

for(i=0;i<10;i+=2) fun(c[i], c[i+1]);

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

printf("\n");

}

程序的运行结果是

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

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

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

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


正确答案:B


有以下程序

struct S {int n; int a[20];}; void f(struct S *P) {int i,j,t; for(i=0;in-1;i++) for(j=i+1;jn;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 printf(“%d”,s.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.2,3,1,6,8,7,5,4,10,9,

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


正确答案:A


有以下程序 struct S{ int n;int a[20];}; voidf(struct S*p) { int i,j,t; for(i=0;i<p->n-1;i++) for(j=i+1;j<p->n;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,l,6,8,7,5,4,10,9}}; f(&s); for(i=0;i<s.n;i++)printf("%d,",s.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.2,3,1,6,8,7,5,4,10,9,

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


正确答案:A
解析:本题中,在调用函数f()时,实参是结构体变量s的地址,所以在函数中对形参的改变会影响到实参的数值。函数f()实现的功能是把结构体的成员数组中的值按从小到大顺序进行排列。


成人教育学位英语【完形填空】练习和答案详解( 1) ( 1) am by 纹,线条 ) of by of _1_ 状物 ) of I a _2_ _3_ my I _4_ of _5_ of my s 刺的 ), _6_ is t _7_ to be m I _8_ at _9_ of or of _10_. m on 失 ). _11_ of on is _12_ s 稳定的 ) _13_ of I _14_ to on I _15_ on a _16_ in of It me me a _17_ to in an _18_ 实上 ) no is a to _19_. I m 安的 ), _20_ am or m in I 1. A. B. C. . A. B. C. . A. B. C. . A. B. C. . A. B. C. . A. B. C.


有以下程序: 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
解析:son()函数作用是将数组aa中的下标为偶数的元素按大到小排序。主函数中首先定义了一个长度为10的数组并赋值,然后调用sort()函数,将数组aa中奇数个元素的值按大到小排序,因此执行完该函数后,数组中奇数个元素的值为9、7、5、3和1,故主函数中最后通过一个for循环输出数组aa中各元素的值为9、2、7、4、5、6、3、8、1和10,所以,4个选项中选项C符合题意。


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


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


有下列程序: #include<stdi0.h> voidfun(inta,intb) {intt; t=a;a=b;b=t; voidmain( ) {intc[1O]={1,2,3,4,5,6,7,8,9,0},i; for(i=0;i<10;i+=2)fun(c[i],c[i+1]); for(i=0;i<10;i++)printf(”%d,”,c[i]); printf("\n"); } 程序的运行结果是( )。

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

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

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

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


正确答案:A
A。【解析】在程序中实参向形参传递数据的方式是“值传递”,如果实参传递给形参是变量的值,就是数值传递,并不能改变实参的值,所以数组c[10]的值不变。


有以下程序 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()函数中的双重for循环,对数组下标为偶数的元素进行从大到小的排序,下标为奇数的元素不变。


相关考题:

考题 单选题若有以下程序#include void fun(int a[],int n){ int t,i,j; for(i=1;i  for(j=i+2;j   if(a[i]a[j])   {    t=a[i];    a[i]=a[j];    a[j]=t;   }}main(){ int c[10]={10,9,8,7,6,5,4,3,2,1},i; fun(c,10); for(i=0;i printf("");}则程序的输出结果是(  )。A2,9,4,7,6,5,8,3,10,1,B10,9,8,7,6,5,4,3,2,1,C10,1,8,3,6,5,4,7,2,9,D1,10,3,8,5,6,7,4,9,2,正确答案: D解析: fun函数的作用是把数组a中的奇数位置元素从小到大排序。答案选择C选项。

考题 有以下程序: 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()函数作用是将数组aa中的下标为偶数的元素按大到小排序.主函数中首先定义了一个长度为10的数组并赋值,然后调用sort()函数,将数组aa中奇数个元素的值按大到小排序,因此执行完该函数后,数组中奇数个元素的值为9,7、5、3和1,故主函数中最后通过一个for循环输出数组aa中各元素的值为9、2、7、4、5、6、3、8、1和10,所以,4个选项中选项C符合题意。

考题 有以下程序 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]

考题 有以下程序 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()函数作用是将数组aa中伪下标为偶数的元素按大到小排序。主函数中首先定义了一个长度为10的数组并赋值,然后调用sort()函数,将数组aa中奇数个元素的值按大到小排序,因此执行完该函数后,数组中奇数个元素的值为9、7、5、3和 1,故主函数中最后通过一个for循环输出数组aa各元素的值为9、2、7、4、5、6、3、8、1和10。

考题 单选题有程序:INTEGERM(3,3)DATAM/1,2,3,4,5,6,7,8,9/DO10I=1.3DO10J=1,3K=M(I,J)M(I,J)=M(J,I)M(J,I)=K10CONTINUEWRITE(*,100)((M(I,J),J=1,3),I=1,3)100FORMAT(1x,3I2)END此程序执行后的结果为:()A1;4;7;2;5;8;3;6;9B1;2;3;4;5;6;7;8;9C9;6;3;8;5;2;7;4;1D7;8;9;4;5;6;1;2;3正确答案: A解析: 执行完循环语句之后,M(1,1)=1,M(2,1)=2,M(3,1)=3,M(1,2)=4。M(2,2)=5,M(3,2)=6,M(1,3)=7,M(2,3)=8,M(3,3)=9,由于是按隐含循环的形式输出,每行输出3个数据,按行主序输出,故应选答案A。

考题 有以下程序: #includestdio.h void exch(int t[]) { t[0]=t[s];} main( ) { int x[10]={1,2,3,4,5,6,7,8,9,10},i=0; while(i=4){exch(x[i]);i++;} for(i=0;i5;i++)printf("%dl"x[i]); printf("\n"); } 程序运行后输出的结果是( )。A.2 4 6 8 10B.1 3 5 7 9C.1 2 3 4 5D.6 7 8 9 10 正确答案:D本题中exch函数是用数组中的第6个元素对第1个元素进行赋值,所以数组的值应该为678910。

考题 单选题有以下程序 #include voidfun(int*a,intn) {  intt,i,j;  for(i=0;i   for(j=i+1;j    if(a[i]    {     t=a[i];     a[i]=a[j];     a[j]=t;    } } main() {  intc[10]={1,2,3,4,5,6,7,8,9,0},i;  fun(c+4,6);  for(i=0;i  printf(""); } 程序的运行结果是(  )。A1,2,3,4,9,8,7,6,5,0,B0,9,8,7,6,5,1,2,3,4,C0,9,8,7,6,5,4,3,2,1,D1,2,3,4,5,6,7,8,9,0,正确答案: A解析: 在本题中,主函数在调用fun函数进行排序时,传递的参数是c+4和6,fun函数实现的功能是将数组c的第5个元素开始的6个元素依次进行从大到小的顺序排列。排序之后,数组c的内容变为{1,2,3,4,9,8,7,6,5,0}。答案选择A选项。

考题 单选题有以下程序 #include voidfun(int*a,intn) {  intt,i,j;  for(i=0;i   for(j=i+1;j    if(a[i]    {     t=a[i];     a[i]=a[j];     a[j]=t;    } } main() {  intc[10]={1,2,3,4,5,6,7,8,9,0},i;  fun(c+4,6);  for(i=0;i  printf(""); } 程序的运行结果是(  )。A1,2,3,4,9,8,7,6,5,0,B0,9,8,7,6,5,1,2,3,4,C0,9,8,7,6,5,4,3,2,1,D1,2,3,4,5,6,7,8,9,0,正确答案: A解析: 在本题中,主函数在调用fun函数进行排序时,传递的参数是c+4和6,fun函数实现的功能是将数组c的第5个元素开始的6个元素依次进行从大到小的顺序排列。排序之后,数组c的内容变为{1,2,3,4,9,8,7,6,5,0}。答案选择A选项。

考题 单选题有程序:INTEGERM(3,3)DATAM/1,2,3,4,5,6,7,8,9/DO10I=1.3DO10J=1,3K=M(I,J)M(I,J)=M(J,I)M(J,I)=K10CONTINUEWRITE(*,100)((M(I,J),J=1,3),I=1,3)100FORMAT(1x,3I2)END此程序执行后的结果为:()A1;4;7;2;5;8;3;6;9B1;2;3;4;5;6;7;8;9C9;6;3;8;5;2;7;4;1D7;8;9;4;5;6;1;2;3正确答案: D解析: 执行完循环语句之后,M(1,1)=1,M(2,1)=2,M(3,1)=3,M(1,2)=4。M(2,2)=5,M(3,2)=6,M(1,3)=7,M(2,3)=8,M(3,3)=9,由于是按隐含循环的形式输出,每行输出3个数据,按行主序输出,故应选答案A。

考题 单选题有以下程序#include struct S{ int n; int a[20];};void f(struct S *p){ int i,j,t; for(i=0;in-1;i++)  for(j=i+1;jn;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;iA1,2,3,4,5,6,7,8,9,10,B10,9,8,7,6,5,4,3,2,1,C2,3,1,6,8,7,5,4,10,9,D10,9,8,7,6,1,2,3,4,5,正确答案: A解析: 将结构体变量的地址作为实参传递,函数调用可以修改实参结构体中成员的值。函数f的作用是,把p指向的struct中的数组a的元素按照从小到大的方式排序。答案选择A选项。