计算机等级考试三级网络技术上机题(4)

以下程序中函数 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[i]>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


有以下程序

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


以下程序中函数f的功能是:当flag为1时,进行有由小到大排序;当flag为0时,进行由大到小排序。

void f(int b[],int n,int flag)

{int i,j,t;

for(i=0;i

for (j=i+1;j

if(flag?b[i]>b[j]:b[i]

}

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


{0、2、1、4、3、9、5、8、6、7}是以数组形式存储的最小堆,删除堆顶元素0后的结果是()

A.{2、1、4、3、9、5、8、6、7}

B.{1、2、5、4、3、9、8、6、7}

C.{2、3、1、4、7、9、5、8、6}

D.{1、2、5、4、3、9、7、8、6}


正确答案:D


以下程序中函数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[i]>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
解析:在main()中,“f(&a[2],5,0);”语句的功能是对数组a[10]中从a[2]到a[6]的数宇(即3,2,1, 6,7)进行从大到小排序,这时数组a[10]中的数字序列变为{5,4,7,6,3,2,1,8,9,10}。“f(a,5,1);”语句的功能是对数字序列{5,4,7,6,3,2,1,8,9,10}中的5,4,7,6,3进行从小到大的排序,所以数组a[10]中的数字序列最终变为{3, 4,5,6,7,2,1,8,9,10}。


readDat()IN75.DAT20xx(80) jsSort()xx writeDat()xxOUT75.DATASCII0 1 2 3 4 5 6 7 8a b c d h g f e2 3 4 9 8 7 6 5 h g f e d c b a8 7 6 5 9 4 3 2main()readDat()writeDat()#include#include#includechar xx2080;void readDat();void writeDat(); void jsSort()void main()readDat();jsSort();writeDat();void readDat()FILE *in;int i=0;char *p;in=fopen(IN75.DAT, r);while(i p=strchr(xxi, n);if(p) *p=0;i+;fclose(in);void writeDat()FILE *out;int i;system(CLS);out=fopen(OUT75.DAT, w);for(i=0; i printf(%sn, xxi);fprintf(out, %sn, xxi);fclose(out);void jsSort()int i,j,k;int str,half;char temp;for(i=0;istr=strlen(xxi);half=str/2;for(j=0;j*/for(k=j+1;kif(xxijtemp=xxij;xxij=xxik;xxik=temp;for(j=half-1,k=str-1;j=0;j-,k-)temp=xxij;xxij=xxik;xxik=temp;(strlen()()


以下程序的输出结果是 () include int a [3] [3]={1,2,3,4,5,6,7,8,9},*p; main()

以下程序的输出结果是 ( ) #include<stdlib.h> int a [3] [3]={1,2,3,4,5,6,7,8,9},*p; main( ) { p=(int *)malloc(sizeof(int)); f(p,a); printf("%d\n",*p); } f(int *s,intp[][3]) { *s=p[1][1]; }

A.1

B.4

C.7

D.5


正确答案:D


阅读以下说明和C代码,将应填入(n)处的字句写在对应栏内。

【说明】

将一正整数序列{K1,K2,…,K9}重新排列成一个新的序列,新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面),最后调用writeDat()函数的新序列输出到文件out.dat中。

在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a[10][9]中,分别求出这10个新序列。

例:序列{6,8,9,1,2,5,4,7,3}

经重排后成为{3,4,5,2,1,6,8,9,7}

【函数】

include < stdio. h >

include < conio. h >

void jsValue( int a [10] [9] )

{ int i,j,k,n,temp;

int b[9];

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

{ temp=a[i] [0];

k=8;n=0;

for(j=8;j=0;j--)

{ if(temp < a[i] [j]) (1)=a[i][j];

if(temp >a[i] [j]) (2)=a[i][j];

if(temp =a[i] [j]) (3)= temp;

}

for(j=0;j<9;j++) a[i][j] =b[j];

}

}

void main( )

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

{8,2,1,9,3,5,4,6,7}, {3,5,1,2,9,8,6,7,4},

{4,7,8,9,1,2,5,3,6}, {4,7,3,5,1,2,6,8,9},

{9,1,3,5,8,6,2,4,7}, {2,6,1,9,8,3,5,7,4},

{5,3,7,9,1,8,2,6,4}, {7,1,3,2,5,8,9,4,6}

};

int i,j;

(4);

for(i=0;i<10;i++) {

for(j=0;j<9;j++) {

printf("%d",a[i] [j] );

if((5))printf(",");

}

printf(" \n" );

}

getch( );

}


正确答案:(1)b[k--] (2)b[n++] (3)b[n] (4)jsValue(a) (5)j=7
(1)b[k--] (2)b[n++] (3)b[n] (4)jsValue(a) (5)j=7 解析:在主函数中先要调用函数jsValue()对数组a进行处理,所以(4)空应填入“jsValue(a)”。然后输出数组元素,同一行的元素之间用逗号分隔,所以(5)空应填入“j=7”。
函数jsValue()是将数组按题目要求进行排序。通过观察发现处理后的数组中元素的顺序与原来的顺序相反,并且每一行中没有与第一个数相同的数,所以是从后往前处理,也就是将每组从最后往前倒序逐个问第一个数比较,比它大的就放到临时数组b中的最后,比它小的就放到临时数组b中的最前面,以次类推,所以(1)空应填入“b[k- -]”,(2)空应填入“b[n++],(3)空应填入“b[n]”。最后将b数组赋给a数组。


有以下程序:程序的运行结果是( )。

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
在c语言中函数参数的传递是”传值”的,即形参和实参是两个没有关系的变量,函数fun虽然看似交换了参数值,但是只交换了形参的值,其结果不会传递给实参,因此数组c没有变化。主函数中给数组c元素赋值l,2,…,9,0。第一个for循环语句中调用fun函数,该函数功能是交换变量的数值,注意循环变量i的增量。第二个for循环语句将数组c中元素的值进行输出。


当执行下面的语句定义一维数组a后,此数组的所有元素为 ( ) inta[10];

A.a[1],a[2],a[3],a[4],a[5],a[6],a[8],a[9],a[10],a[10]

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

C.a[0],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10]

D.a[1],a[2],a [3],a[4],a [5],a [9],a [7],a [8],a [9],a [10],a [11]


正确答案:B


有下列程序: #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]的值不变。


相关考题:

考题 单选题有以下程序#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选项。

考题 单选题当我们在F3中输入公式"=SUM(F1:F2,F4:F6,C3:E3)",如果将它复制到G5中去,那么G5中的内容将是()。A=SUM(F1:F2,F4:F6,C3:E3)B=SUM(G1:G2,G4:G6,D3:F3)C=SUM(G3:G4,G6:G8,D5:F5)D=SUM(G2:G3,G5:G7,D4:F4)正确答案: B解析: 暂无解析

考题 单选题以下程序中函数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]A1,2,3,4,5,6,7,8,9,10,B3,4,5,6,7,2,1,8,9,10,C5,4,3,2,1,6,7,8,9,10,D10,9,8,7,6,5,4,3,2,1,正确答案: C解析: 第一次排序:将a[2]~a[6]的5个元素按从小到大排序,排序后数组为5,4,7,6,3,2,1,8,9,10;第二次排序:将a[0]~a[4]的5个元素按从大到小排序,排序后数组为3,4,5,6,7,2,1,8,9,10。答案选择B选项。

考题 单选题当我们在F3中输入公式"=SUM(F1:F2,F4:F6,C3:E3)",如果将它复制到G5中去,那么G5中的内容将是()。A=SUM(F1:F2,F4:F6,C3:E3)B=SUM(G1:G2,G4:G6,D3:F3)C=SUM(G3:G4,G6:G8,D5:F5)D=SUM(G2:G3,G5:G7,D4:F4)正确答案: A解析: 暂无解析

考题 单选题以下程序中函数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]A1,2,3,4,5,6,7,8,9,10,B3,4,5,6,7,2,1,8,9,10,C5,4,3,2,1,6,7,8,9,10,D10,9,8,7,6,5,4,3,2,1,正确答案: C解析: 第一次排序:将a[2]~a[6]的5个元素按从小到大排序,排序后数组为5,4,7,6,3,2,1,8,9,10;第二次排序:将a[0]~a[4]的5个元素按从大到小排序,排序后数组为3,4,5,6,7,2,1,8,9,10。答案选择B选项。

考题 假设在跳频集中有12个频率(f1-f12),在小区中分配给前7个TRX的缺省MAIO值是多少()。A、0、1、2、3、4、5和6B、1、2、3、4、5、6和7C、0、2、4、6、8、10和1D、1、3、5、7、9、11和0E、0、3、6、9、1、4和7正确答案:C

考题 单选题当我们在F3中输入公式"=SUM(F1:F2,F4:F6,C3:E3)",如果将它复制到G5中去,那么G5中的内容将是()。A=SUM(F1:F2,F4:F6,C3:E3)B=SUM(G1:G2,G4:G6,D3:F3)C=SUM(G3:G4,G6:G8,D5:F5)D=SUM(G2:G3,G5:G7,D4:F4)正确答案: B解析: 暂无解析

考题 有以下程序:include main( ){int a[ ] = { 1,2,3,4,5,6,7,8,9,0} , * p;for(p =a;p 有以下程序:#include <stdio. h>main( ){ int a[ ] = { 1,2,3,4,5,6,7,8,9,0} , * p; for(p =a;p<a+10;p++) printf("%d," , *p); }程序运行后的输出结果是( )。A.1,2,3,4,5,6,7,8,9,0,B.2,3,4,5,6,7,8,9,10,1,C.0,1,2,3,4,5,6,7,8,9,D.1,1,1,1,1,1,1,1,1,1, 正确答案:A解析:C语言规定数组名代表数组的首地址,所以for循环中循环变量p的初值即a[o),故输出的*p的值为a[0]的值。执行p++后,指针变量P指向a[1],这时输出*P即输出a[1]的值,经过10次循环,将输出a数组的全部数据:1,2,3,4,5,6,7,8,9,0,

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

考题 F12L413柴油机的发火顺序是()。A、1-5-3-8-10-7-6-11-2-9-4-12B、1-8-5-10-3-7-6-11-2-9-4-12C、1-10-3-8-7-11-6-9-2-4-12-5D、1-8-5-10-7-3-6-11-2-9-4-12正确答案:B