题目:对二维数组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(\