计算机等级考试三级网络技术上机题(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 ,
有以下程序
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,
以下程序中函数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,
{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}
以下程序中函数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,
解析:在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<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
阅读以下说明和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 解析:在主函数中先要调用函数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,
在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]
有下列程序: #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。【解析】在程序中实参向形参传递数据的方式是“值传递”,如果实参传递给形参是变量的值,就是数值传递,并不能改变实参的值,所以数组c[10]的值不变。
相关考题:
- 本行为付款行,对方行为收款行的网内往来汇划业务是发出贷方报单业务。
- 能源地缘政治的风险它会影响到哪些方面?
- 固定资产、无形资产、长期待摊费用等物权形式存在的资产不属于金融资产。
- Response对象的()方法可以将缓冲区中的页面内容立即输出到客户端。A. WriteB. EndC. ClearD. Flush
- 中长期贷款展期不得超过原贷款期限的一半,最长不得超过5年.
- 银行承兑汇票是一种建立在银行信用基础上的票据。
- 1980年中国的GDP是美国的____,到2020年中国的GDP是美国的____?
- [判断题] Response对象的Redirect方法用于立即发送缓存区中的输出。()
- ( 难度:中等)Hive支持哪些压缩格式A.gzipB.mp4C.snappyD.rar
- 形位公差带形状是距离为公差值t的两平行平面内区域的有______。A.平面度B.任意方向的线的直线度C.给定一个方向的线的倾斜度D.任意方向的线的位置度E.面对面的平行度
- 2022年高考真题——物理(山东卷) Word版含解析-
- 2022年高考真题——地理(湖南卷) Word版含解析-
- 2022年高考真题——历史(湖南卷) Word版含解析-
- 山东省德州市第一中学2021-2022学年高一6月月考语文试题 word版含解析-
- 贵州省黔东南州2021-2022学年七年级下学期期末语文试题-
- 2022年高考真题——生物(湖南卷) Word版含解析-
- 2022年高考真题——物理(全国甲卷) Word版含解析-
- 2022年高考真题——数学(北京卷) Word版含解析-
- 2022年高考真题——政治(浙江卷) Word版含解析-
- 2022年高考真题——文综历史(全国乙卷) Word版含解析-