题目:对二维数组a中存储的N*N矩阵做如下操作:先将每一行中值 最大的元素与该行位于主对角线处的元素交换,然后对主对 角线上所有元素排序使其自左上角到右下角升序排列,最后 输出排序后主对角线上各元素的值。
--------------------------------------------------------- 注意:请勿改动主函数main()中的其他内容。
-------------------------------------------------------*/
#include
void fun(int x[][N],int n) {
int i,j,t,arr,col; for(i=0;i
arr=x[i][0];col=0; for(i=0;i
arr=x[i][0];col=0; /***********SPACE***********/
for(j=0;j
for(i=0;i
{ t=x[i][i]; x[i][i]=x[j][j]; x[j][j]=t;} } }
void main() {
int a[N][N]={{10,25,24,13,23},{11,22,12,21,14},{20,15,19,16,18}, {17,9,4,5,3},{2,1,6,7,8}}; int i; fun(a,N);
for(i=0;i
2). x[i][i]>x[j][j] 或 x[j][j]
第23题 (30.0分) 题号:652
/*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
题目:任何一个大于4的偶数都可以表示成两个素数之和,输入一 个偶数,为其寻找两个素数,这两个素数之和等于该偶数。 例如:16=3+13,3和13都是素数。
--------------------------------------------------------- 注意:请勿改动主函数main()中的其他内容。
-------------------------------------------------------*/
#include
void fun(int a); int a; do {
printf(\ scanf(\ }while(a%2); fun(a); }
void fun(int a) {
int b,c,d,y,i,j; for(i=3;i<=a/2;i=i+2) {
/***********SPACE***********/ 【?】
for(j=2;j<=sqrt(i);j++) if(i%j==0) y=0; if(y==1) {
/***********SPACE***********/ 【?】
for(j=2;j<=sqrt(d);j++) if(d%j==0) y=0;
if(y==1)
{b=i;c=d;printf(\ } } } 答案: 1). y=1; 2). d=a-i;
第24题 (30.0分) 题号:653
/*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
题目:将字符串s中的所有数字字符顺序前移,其他字符顺序后移。 例如,s为asd123fgh456,则处理后的新字符串应为 123456asdfgh。
--------------------------------------------------------- 注意:请勿改动主函数main()中的其他内容。
-------------------------------------------------------*/
#include
void fun(char s[]); char s[80];
printf(\ scanf(\ fun(s);
printf(\}
void fun(char s[]) {
int i,j,k; char p[80],t[80]; j=k=0;
for(i=0;s[i]!='\\0';i++) {
/***********SPACE***********/
if(【?】) p[j++]=s[i]; else t[k++]=s[i]; }
for(i=0;i
/***********SPACE***********/ s[【?】]=t[i]; s[j+k]=0; } 答案:
1). isdigit(s[i]) 或 s[i]>='0'&&s[i]<='9' 或 s[i]<='9'&&s[i]>='0' 或 '0'<=s[i]&&'9'>=s[i] 或 '9'>=s[i]&&'0'<=s[i] 2). j+i 或 i+j
第25题 (30.0分) 题号:654
/*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
题目:计算x数组中N个数的平均值(规定所有数均为正数),将 数组中小于平均值的数据顺序移动到数组的前部,大于等 于平均值的数据顺序移到x数组的后部。例如,
有10个正数:47、30、32、40、6、17、45、15、48、26, 其平均值为30.5,移动后的输出为:30、6、17、15、26、 47、32、40、45、48。
--------------------------------------------------------- 注意:请勿改动主函数main()中的其他内容。
-------------------------------------------------------*/
#include
double fun(double x[]); int i; double x[N]; for(i=0;i
x[i]=rand()P; printf(\