C填空题50题 下载本文

题目:对二维数组a中存储的N*N矩阵做如下操作:先将每一行中值 最大的元素与该行位于主对角线处的元素交换,然后对主对 角线上所有元素排序使其自左上角到右下角升序排列,最后 输出排序后主对角线上各元素的值。

--------------------------------------------------------- 注意:请勿改动主函数main()中的其他内容。

-------------------------------------------------------*/

#include #define N 5

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=arr) {arr=x[i][j]; 【?】} t=x[i][i]; x[i][i]=x[i][col];x[i][col]=t; }

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 #include void main() {

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 #include #include void main() {

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 #include #define N 10 void main() {

double fun(double x[]); int i; double x[N]; for(i=0;i

x[i]=rand()P; printf(\