任务32:指向数组的指针变量 《编程语言-C语言》45分钟专题训练
|
2份
|
26页
|
76人阅读
|
1人下载
内容正文:
湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。
《编程语言—C语言》
项目七: 指针
第32卷: 指向数组的指针变量
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共23小题,每小题2分,共46分)
1.若有以下程序段,则p2-p1的值为( )
int *p1,*p2,a[10];p1=a;p2=&a[5];
A.5 B.10 C.12 D.无法确定
【答案】A
2.设有定义:int m[ ]={2,4,6,8},*k=m;则下列选项中,表达式的值为6的是( )
A.*(k+2) B.k+2 C.*k+2 D.*k+=2
【答案】A
3.设有定义语句:double x[5]={1.0,2.0,3.0,4.0,5.0},*p=x;,则错误引用x数组元素的是( )
A.*p B.x[5] C.*(p+1) D.*x
【答案】B
4.设有定义:int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a,i;,若0<=i<=9,则对a数组元素的引用错误的是( )
A.a[10] B.*(&a[i]) C.p[i] D.a[p-a]
【答案】A
5.设有定义:double a[10],*s=a;,则以下能够代表数组元素a[3]的是( )
A.(*s)[3] B.*(s+3) C.*s[3] D.*s+3
【答案】B
6.若有定义:int x[10],*pt=x;,则对x数组元素的正确引用是( )
A.*&x[10] B.*(x+3) C.*(pt+10) D.pt+3
【答案】B
7.设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是( )
A.scanf(“%f”,&x[6]);
B.scanf(“%lf”,*(x+6));
C.scanf(“%lf”,p+6);
D.scanf(“%lf”,p[6]);
【答案】C
8.设有定义:int a[10],*p1,*p2;p1=a;p2=&a[5];,则p2-p1的值是( )
A.5 B.6 C.10 D.4
【答案】A
9.设有定义:int a[20],*p=a;,则下列语句中,不正确的一项是( )
A.p=a; B.a++; C.p++; D.p=&a[5];
【答案】B。数组名代表数组首地址,相当于地址常量,不能进行自加运算。
10.设有定义:int s[20],*ps=s;,则以下赋值语句中,正确的一项是( )
A.s=ps+s; B.ps=ps+20; C.s[5]=ps[9]; D.ps=s[0];
【答案】C
11.设有定义:int a[ ][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int *p=&a[1][2];,则*(p+2)的值是( )
A.13 B.15 C.17 D.19
【答案】C
12.下列程序段的输出结果是( )
main()
{int a[10]={11,21,31,41,51,61,71,81,91,101},*p=a;
printf("%d",(p+=2)[3]);getch();}
A.41 B.51 C.61 D.71
【答案】C
13.设有定义:double x[10],*p=x;,以下能给数组x下标为5的元素读入数据的语句是( )
A.scanf("%f",&x[5]); B.scanf("%f",*(x+5));
C.scanf("%lf",p+5); D.scanf("%lf",p[5]);
【答案】C
14.设有定义:float a[5]={2,4,6},*p=a;,若执行语句:printf("%x",p);输出的是ffca,则语句:printf("%x",p+5);的输出是( )
A.ffd6 B.ffdc C.ffde D.ffcd
【答案】C
15.设有定义:char str[10],*s=str;,则下面的表达式中能够表示str[1]地址的是( )
A.s++ B.++str C.&s[0]+1 D.&s+1
【答案】C
16.设有定义:int a[2][3]={2,4,6,8,10,12};,则表达式*(&a[0][0]+2*2+1)的值是( )
A.6 B.8 C.10 D.12
【答案】D
17.执行以下程序段的输出结果是( )
main()
{int x[ ]={8,2,6,12,5,15},f1,f2;
int *p=x;
f1=f2=x[0];
for( ;p<=x+5;p++)
{if(f1<*p) f1=*p;
if(f2>*p) f2=*p;}
printf("%d,%d",f1,f2);
getch();}
A.15,2 B.2,15 C.15,15 D.8,8
【答案】A
18.执行以下程序段的输出结果是( )
main()
{int i,*ptr;
int array[5]={5,3,1};
for(ptr=array,i=0;i<5;i++,ptr++)
{if(*ptr==0) putchar('X');
else putchar('A'+*ptr);}
getch();}
A.FDBXX B.FFFXX C.FDBBB D.ABCDE
【答案】A
19.执行以下程序段的输出结果是( )
main()
{int i,*ptr;
int array[3]={8,2,4};
for(ptr=array,i=0;i<2;i++)
printf("%d ",*ptr++);
getch();}
A.8 2 B.8 8 C.8 4 D.2 4
【答案】A
20.执行以下程序段的输出结果是( )
main()
{int a[ ]={2,4,6,8,10},x,*p,y=1;
p=&a[1];
for(x=0;x<3;x++)
y+=*(p+x);
printf("%d
",y);
getch();}
A.11 B.13 C.15 D.19
【答案】D
21.执行以下程序段的输出结果是( )
main()
{int a[10]={11,12,13,14,15,16,17,18,19,20},*p=a,i=9;
printf("%d,%d,%d
",a[p-a],p[i],*(&a[i]));
getch();}
A.11,19,19 B.11,20,20 C.12,20,20 D.12,19,20
【答案】B
22.执行以下程序段的输出结果是( )
main()
{int a[ ]={1,2,3,4},y,*p=&a[3];
--p;
y=*p;
printf("y=%d
",y);
getch();}
A.y=0 B.y=1 C.y=2 D.y=3
【答案】D
23.执行以下程序段的输出结果是( )
main()
{int a[ ]={10,20,30,40},*p=a,i;
for(i=0;i<=3;i++)
{a[i]=*p;p++;}
printf("%d
",a[2]);
getch();}
A.10 B.20 C.30 D.40
【答案】C
二、程序运行结果题(本题共7小题,每题3分,共21分)
24.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
void fun(int *x,int s,int e)
{int i,j,t;
for(i=s,j=e;i<j;i++,j--)
{t=*(x+i);
*(x+i)=*(x+j);
*(x+j)=t;}}
main()
{int m[ ]={0,1,2,3,4,5,6,7,8,9},k;
fun(m,0,3);
fun(m+4,0,5);
fun(m,0,9);
for(k=0;k<10;k++)
printf("%d",m[k]);getch();}
【答案】4567890123
25.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
void fun(int *s,int n1,int n2)
{int i,j,t;
i=n1;
j=n2;
while(i<j)
{t=s[i];s[i]=s[j];s[j]=t;
i++;j--;}}
main()
{int a[10]={0,1,2,3,4,5,6,7,8,9},k;
fun(a,0,3);
fun(a,4,9);
for(k=0;k<10;k++)
printf("%d",a[k]);
getch();}
【答案】3210987654
26.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
void fun(int*a,int i,int j)
{ int t;
if(i<j)
{t=*(a+i);
*(a+i)=*(a+j);
*(a+j)=t;
fun(a,++i,j);}}
main( )
{int a[ ]={1,2,3,4,5,6},i;
fun(a,1,4);
for(i=0;i<6;i++)
printf("%d ",a[i]);getch();}
【答案】1 5 2 3 4 6
27.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
int a[3][3]={1,2,3,4,5,6,7,8,9},*p;
void f(int *s,int p[ ][3])
{*s=*(*(p+1)+2);}
main( )
{ int x=10;
p=&x;
f(p,a);
printf("%d
",*p);
getch();}
【答案】6
28.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
#define N 6
void fun( int *a,int *x)
{int i;
for(i=0;i<3;i++)*(x+i)=0;
for(i=0;i<N;i++)
{if(*(a+i)<=100&&*(a+i)>=80)
(*(x+2))++;
if(*(a+i)<=79&&*(a+i)>=60)
(*(x+1))++;
if(*(a+i)<=59)
(*(x+0))++;}}
main( )
{ int a[N]={66,55,77,88,100,99},x[3],i;
fun(a,x);
for(i=0;i<3;i++)
printf("%d ", x[i]);getch();}
【答案】1 2 3
29.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
void fun( int*b,int n ,int *s)
{ int i;
*s=0;
for(i=1;i<=n;i++)
*s=*s+*(b+i);}
main( )
{int x=1,a[ ]={2,3,4,5,6};
fun(a,3,&x);
printf("%d", x );
getch();}
【答案】12
30.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
#define M 4
void fun(int *a)
{int i,j,k,m;
for(i=M;i>0;i--)
{k=*(a+M-1);
for(j=M-1;j>=0;j--)
*(a+j+1)=*(a+j);
*a=k;
for(m=0;m<M;m++)
printf("%d ",*(a+m));
printf("
");}}
main( )
{ int a[M]={1,2,3,4};
fun(a);getch();}
【答案】
4 1 2 3
3 4 1 2
2 3 4 1
1 2 3 4
三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。每处3分,共9分)
31.下列程序的功能是:按照顺序给s所指向的数组中的元素赋予从2开始的偶数,然后再按照顺序对每5个元素求一个平均值,并将这些值依次存放在w所指的数组中。程序中有三处错误,请改正。
L1 #include <stdio.h>
L2 #include<conio.h>
L3 #define SIZE 20
L4 main()
L5 {double a[SIZE],b[SIZE/5],sum;
L6 int i,k;
L7 double s=a,w=b;
L8 for(k=2,i=0;i<SIZE;i++)
L9 {s[i]=k;
L10 k+=2;}
L11 sum=0.0;
L12 for(k=0,i=0;i<SIZE;i++)
L13 {sum+=s[i];
L14 if(i+1%5==0)
L15 {w[k]=sum/5;
L16 sum=1;k++;}}
L17 printf("The original data :
");
L18 for(i=0;i<SIZE;i++)
L19 {if(i%5==0)
L20 printf("
");
L21 printf("%4.0f",a[i]);}
L22 printf("
the result :
");
L23 for(i=0;i<k;i++)
L24 printf("%6.2f",b[i]);
L25 printf("
");
L26 getch();}
答案:
L7 double *s=a,*w=b;
L14 if((i+1)%5==0)
L16 sum=0;k++;}}
四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分)
32.下列程序的功能是:将一个5×5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下依次从小到大存放)。请填空。
#include <stdio.h>
#include<conio.h>
main()
{int a[5][5],*p,*pmax,*pmin,i,j,temp;
printf("input matrix:
");
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
p=&a[0][0];
【1】;
for(i=0;i<5;i++)//找最大值和最小值地址
for(j=0;j<5;j++)
{ if(*pmax<*(p+5*i+j)) pmax=p+5*i+j;
if(【2】) pmin=p+5*i+j; }
temp=【3】;
*(p+12)=*pmax;
*pmax=temp;
temp=*p;
*p=*pmin;
*pmin=temp;
for(i=0;i<5;i++)//找第二最小值
for(j=0;j<5;j++)
if(((p+5*i+j)!=p)&&(【4】))
pmin=p+5*i+j;
temp=*pmin;
*pmin=*(p+4);
*(p+4)=temp;
pmin=【5】;
for(i=0;i<5;i++)//找第三最小值
for(j=0;j<5;j++)
if((【6】)&&((p+5*i+j)!=p)&&(*pmin>*(p+5*i+j)))
pmin=p+5*i+j;
temp=*pmin;
*pmin=【7】;
*(p+20)=temp;
pmin=p+1;
for(i=0;i<5;i++)//找第四最小值
for(j=0;j<5;j++)
if(((p+5*i+j)!=p)&&((p+5*i+j)!=(p+4))&&(【8】)&&(*pmin>*(p+5*i+j)))
pmin=p+5*i+j;
temp=*pmin;
*pmin=*(p+24);
*(p+24)=temp;
printf("Now,matrix:
");
for(i=0;i<5;i++)
{for(j=0;j<5;j++)
printf("%d ",a[i][j]);printf("
");}getch();}
答案:①pmax=pmin=p ②*pmin>*(p+5*i+j)
③*(p+12) ④*pmin>*(p+5*i+j) ⑤p+1
⑥(p+5*i+j)!=(p+4) ⑦*(p+20) ⑧(p+5*i+j)!=(p+20)
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$
湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。
《编程语言—C语言》
项目七: 指针
第32卷: 指向数组的指针变量
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共23小题,每小题2分,共46分)
1.若有以下程序段,则p2-p1的值为( )
int *p1,*p2,a[10];p1=a;p2=&a[5];
A.5 B.10 C.12 D.无法确定
2.设有定义:int m[ ]={2,4,6,8},*k=m;则下列选项中,表达式的值为6的是( )
A.*(k+2) B.k+2 C.*k+2 D.*k+=2
3.设有定义语句:double x[5]={1.0,2.0,3.0,4.0,5.0},*p=x;,则错误引用x数组元素的是( )
A.*p B.x[5] C.*(p+1) D.*x
4.设有定义:int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a,i;,若0<=i<=9,则对a数组元素的引用错误的是( )
A.a[10] B.*(&a[i]) C.p[i] D.a[p-a]
5.设有定义:double a[10],*s=a;,则以下能够代表数组元素a[3]的是( )
A.(*s)[3] B.*(s+3) C.*s[3] D.*s+3
6.若有定义:int x[10],*pt=x;,则对x数组元素的正确引用是( )
A.*&x[10] B.*(x+3) C.*(pt+10) D.pt+3
7.设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是( )
A.scanf(“%f”,&x[6]);
B.scanf(“%lf”,*(x+6));
C.scanf(“%lf”,p+6);
D.scanf(“%lf”,p[6]);
8.设有定义:int a[10],*p1,*p2;p1=a;p2=&a[5];,则p2-p1的值是( )
A.5 B.6 C.10 D.4
9.设有定义:int a[20],*p=a;,则下列语句中,不正确的一项是( )
A.p=a; B.a++; C.p++; D.p=&a[5];
10.设有定义:int s[20],*ps=s;,则以下赋值语句中,正确的一项是( )
A.s=ps+s; B.ps=ps+20; C.s[5]=ps[9]; D.ps=s[0];
11.设有定义:int a[ ][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int *p=&a[1][2];,则*(p+2)的值是( )
A.13 B.15 C.17 D.19
12.下列程序段的输出结果是( )
main()
{int a[10]={11,21,31,41,51,61,71,81,91,101},*p=a;
printf("%d",(p+=2)[3]);getch();}
A.41 B.51 C.61 D.71
13.设有定义:double x[10],*p=x;,以下能给数组x下标为5的元素读入数据的语句是( )
A.scanf("%f",&x[5]); B.scanf("%f",*(x+5));
C.scanf("%lf",p+5); D.scanf("%lf",p[5]);
14.设有定义:float a[5]={2,4,6},*p=a;,若执行语句:printf("%x",p);输出的是ffca,则语句:printf("%x",p+5);的输出是( )
A.ffd6 B.ffdc C.ffde D.ffcd
15.设有定义:char str[10],*s=str;,则下面的表达式中能够表示str[1]地址的是( )
A.s++ B.++str C.&s[0]+1 D.&s+1
16.设有定义:int a[2][3]={2,4,6,8,10,12};,则表达式*(&a[0][0]+2*2+1)的值是( )
A.6 B.8 C.10 D.12
17.执行以下程序段的输出结果是( )
main()
{int x[ ]={8,2,6,12,5,15},f1,f2;
int *p=x;
f1=f2=x[0];
for( ;p<=x+5;p++)
{if(f1<*p) f1=*p;
if(f2>*p) f2=*p;}
printf("%d,%d",f1,f2);
getch();}
A.15,2 B.2,15 C.15,15 D.8,8
18.执行以下程序段的输出结果是( )
main()
{int i,*ptr;
int array[5]={5,3,1};
for(ptr=array,i=0;i<5;i++,ptr++)
{if(*ptr==0) putchar('X');
else putchar('A'+*ptr);}
getch();}
A.FDBXX B.FFFXX C.FDBBB D.ABCDE
19.执行以下程序段的输出结果是( )
main()
{int i,*ptr;
int array[3]={8,2,4};
for(ptr=array,i=0;i<2;i++)
printf("%d ",*ptr++);
getch();}
A.8 2 B.8 8 C.8 4 D.2 4
20.执行以下程序段的输出结果是( )
main()
{int a[ ]={2,4,6,8,10},x,*p,y=1;
p=&a[1];
for(x=0;x<3;x++)
y+=*(p+x);
printf("%d
",y);
getch();}
A.11 B.13 C.15 D.19
21.执行以下程序段的输出结果是( )
main()
{int a[10]={11,12,13,14,15,16,17,18,19,20},*p=a,i=9;
printf("%d,%d,%d
",a[p-a],p[i],*(&a[i]));
getch();}
A.11,19,19 B.11,20,20 C.12,20,20 D.12,19,20
22.执行以下程序段的输出结果是( )
main()
{int a[ ]={1,2,3,4},y,*p=&a[3];
--p;
y=*p;
printf("y=%d
",y);
getch();}
A.y=0 B.y=1 C.y=2 D.y=3
23.执行以下程序段的输出结果是( )
main()
{int a[ ]={10,20,30,40},*p=a,i;
for(i=0;i<=3;i++)
{a[i]=*p;p++;}
printf("%d
",a[2]);
getch();}
A.10 B.20 C.30 D.40
二、程序运行结果题(本题共7小题,每题3分,共21分)
24.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
void fun(int *x,int s,int e)
{int i,j,t;
for(i=s,j=e;i<j;i++,j--)
{t=*(x+i);
*(x+i)=*(x+j);
*(x+j)=t;}}
main()
{int m[ ]={0,1,2,3,4,5,6,7,8,9},k;
fun(m,0,3);
fun(m+4,0,5);
fun(m,0,9);
for(k=0;k<10;k++)
printf("%d",m[k]);getch();}
25.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
void fun(int *s,int n1,int n2)
{int i,j,t;
i=n1;
j=n2;
while(i<j)
{t=s[i];s[i]=s[j];s[j]=t;
i++;j--;}}
main()
{int a[10]={0,1,2,3,4,5,6,7,8,9},k;
fun(a,0,3);
fun(a,4,9);
for(k=0;k<10;k++)
printf("%d",a[k]);
getch();}
26.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
void fun(int*a,int i,int j)
{ int t;
if(i<j)
{t=*(a+i);
*(a+i)=*(a+j);
*(a+j)=t;
fun(a,++i,j);}}
main( )
{int a[ ]={1,2,3,4,5,6},i;
fun(a,1,4);
for(i=0;i<6;i++)
printf("%d ",a[i]);getch();}
27.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
int a[3][3]={1,2,3,4,5,6,7,8,9},*p;
void f(int *s,int p[ ][3])
{*s=*(*(p+1)+2);}
main( )
{ int x=10;
p=&x;
f(p,a);
printf("%d
",*p);
getch();}
28.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
#define N 6
void fun( int *a,int *x)
{int i;
for(i=0;i<3;i++)*(x+i)=0;
for(i=0;i<N;i++)
{if(*(a+i)<=100&&*(a+i)>=80)
(*(x+2))++;
if(*(a+i)<=79&&*(a+i)>=60)
(*(x+1))++;
if(*(a+i)<=59)
(*(x+0))++;}}
main( )
{ int a[N]={66,55,77,88,100,99},x[3],i;
fun(a,x);
for(i=0;i<3;i++)
printf("%d ", x[i]);getch();}
29.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
void fun( int*b,int n ,int *s)
{ int i;
*s=0;
for(i=1;i<=n;i++)
*s=*s+*(b+i);}
main( )
{int x=1,a[ ]={2,3,4,5,6};
fun(a,3,&x);
printf("%d", x );
getch();}
30.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
#define M 4
void fun(int *a)
{int i,j,k,m;
for(i=M;i>0;i--)
{k=*(a+M-1);
for(j=M-1;j>=0;j--)
*(a+j+1)=*(a+j);
*a=k;
for(m=0;m<M;m++)
printf("%d ",*(a+m));
printf("
");}}
main( )
{ int a[M]={1,2,3,4};
fun(a);getch();}
三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。每处3分,共9分)
31.下列程序的功能是:按照顺序给s所指向的数组中的元素赋予从2开始的偶数,然后再按照顺序对每5个元素求一个平均值,并将这些值依次存放在w所指的数组中。程序中有三处错误,请改正。
L1 #include <stdio.h>
L2 #include<conio.h>
L3 #define SIZE 20
L4 main()
L5 {double a[SIZE],b[SIZE/5],sum;
L6 int i,k;
L7 double s=a,w=b;
L8 for(k=2,i=0;i<SIZE;i++)
L9 {s[i]=k;
L10 k+=2;}
L11 sum=0.0;
L12 for(k=0,i=0;i<SIZE;i++)
L13 {sum+=s[i];
L14 if(i+1%5==0)
L15 {w[k]=sum/5;
L16 sum=1;k++;}}
L17 printf("The original data :
");
L18 for(i=0;i<SIZE;i++)
L19 {if(i%5==0)
L20 printf("
");
L21 printf("%4.0f",a[i]);}
L22 printf("
the result :
");
L23 for(i=0;i<k;i++)
L24 printf("%6.2f",b[i]);
L25 printf("
");
L26 getch();}
四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分)
32.下列程序的功能是:将一个5×5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下依次从小到大存放)。请填空。
#include <stdio.h>
#include<conio.h>
main()
{int a[5][5],*p,*pmax,*pmin,i,j,temp;
printf("input matrix:
");
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
p=&a[0][0];
【1】;
for(i=0;i<5;i++)//找最大值和最小值地址
for(j=0;j<5;j++)
{ if(*pmax<*(p+5*i+j)) pmax=p+5*i+j;
if(【2】) pmin=p+5*i+j; }
temp=【3】;
*(p+12)=*pmax;
*pmax=temp;
temp=*p;
*p=*pmin;
*pmin=temp;
for(i=0;i<5;i++)//找第二最小值
for(j=0;j<5;j++)
if(((p+5*i+j)!=p)&&(【4】))
pmin=p+5*i+j;
temp=*pmin;
*pmin=*(p+4);
*(p+4)=temp;
pmin=【5】;
for(i=0;i<5;i++)//找第三最小值
for(j=0;j<5;j++)
if((【6】)&&((p+5*i+j)!=p)&&(*pmin>*(p+5*i+j)))
pmin=p+5*i+j;
temp=*pmin;
*pmin=【7】;
*(p+20)=temp;
pmin=p+1;
for(i=0;i<5;i++)//找第四最小值
for(j=0;j<5;j++)
if(((p+5*i+j)!=p)&&((p+5*i+j)!=(p+4))&&(【8】)&&(*pmin>*(p+5*i+j)))
pmin=p+5*i+j;
temp=*pmin;
*pmin=*(p+24);
*(p+24)=temp;
printf("Now,matrix:
");
for(i=0;i<5;i++)
{for(j=0;j<5;j++)
printf("%d ",a[i][j]);printf("
");}getch();}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$