第1题:
有以下程序
main()
{int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,j,k,t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=j+1;k<4;k++)
if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/
for(i=0;i<4;i++)printf(“%d,”,a[i][j]);
}
程序运行后的输出结果是( )。
A.1,6,5,7,
B.8,7,3,1,
C.4,7,5,2,
D.1,6,2,1,
第2题:
下列程序的输出结果是( )。 void f(int*x,int*y) {int t; t=*x,*x=*y;*y=t; } main() {int a[8]={1,2,3,4,5,6,7,8},i,*p,*q; p=a;q=&a[7]; while(p<q) {f(p,q);p++;q--;} for(i=0;i<8;i+)printf("%d,",a[i]); }
A.8,2,3,4,5,6,7,1
B.5,6,7,8,1,2,3,4
C.1,2,3,4,5,6,7,8
D.8,7,6,5,4,3,2,1
第3题:
有以下程序
main( )
{ int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,j,k,t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=j+1;k<4;k++)
if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/* 按列排序 */
for(i=0;i<4;i++)printf("%d,",a[i][ i ]);
}
程序运行后的输出结果是
A)1,6,5,7,
B)8,7,3,1,
C)4,7,5,2,
D)1,6,2,1,
第4题:
有以下程序: void f(int*x,int*y) { int t; t=*x;*x=*y;*y=t; } main() { int a [8]={1, 2,3,4,5, 6, 7,8},i,*p,*q; p=a;q=&a[7]; while(p<q) {f(p,q);p++;q-;} for(i=0;i<8;i++)printf("%d,"a[i]); } 程序运行后的输出结果是 ______。
A.823,4,5,6,7,1,
B.5,6,7,8,12,3,4,
C.1,2,3,4,5,6,7,8,
D.8,7,6,5,4,3,2,1,
第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( );
}
第6题:
有以下程序:void f(int *x,int *y){ int *t; t=x; x=y ;y=t; *x=*y;}main(){ int a[8]={1,2,3,4,5,6,7,8},i,*p,*q; p=a;q=&a[7]; while(p>q) { f(p,q);p++;q--} for(i=0;i<8;i++)printf("d,",a[i]);}程序运行后的输出结果是( )。A.8,2,3,4,5,6,7,1,B.5,6,7,8,1,2,3,4,C.1,2,3,4,5,6,7,8,D.8,7,6,5,4,3,2,1,
第7题:
有以下程序 main() { int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t; for(i=0;<4:i++) for(j=0;j<3;j++) for(k=j+1;k<4;k++) if(a[j][i]>a[k][i]{t=a[j][i];a[j][i]=a[k][i]=a[k][i]=t;}/*按列排序*/ for(i=0;i<4;i++)printf("%d,",a[i][i]); } 程序运行后的输出结果是
A.1,6,5,7,
B.8,7,3,1,
C.4,7,5,2,
D.1,6,2,1,
第8题:
●试题四
阅读以下说明和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数组。
第9题:
有以下程序 void f(int *x,int *y) { int t; t=*X; *X=*y; *y=t; } main() { int a[8]={1,2,3,4,5,6,7,8},i,*p,*q; p=a; q=&a[7); while(p>q) { f(p,q); p++; q--; } for(i=0; i<8; i++) printf("%d,",a[i]); } 程序运行后的输出结果是
A.8,2,3,4,5,6,7,1,
B.5,6,7,8,1,2,3,4,
C.1,2,3,4,5,6,7,8,
D.8,7,6,5,4,3,2,1,
第10题:
有以下程序 main() {int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t; for(i=0;i<4;i++) for(j=0;j<3;j++) for(k=j+1;k<4;k++) if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/ for(i=0;i<4;i++)printf("%d,",a[i][i]);
A.1,6,5,7,
B.8,7,3,1,
C.4,7,5,2,
D.1,6,2,1,