t=a[j];a[j]=a[7];a[7]=t;
puts(a);
return0;
}
A.mogninrB.moC.morningD.mornin
答案:
1.D2.D3.B4.C5.C6.B7.A8.B9.A10.C11.D
12.B13.B14.D15.D16.A17.A18.A19.D20.B
二、填空题
1.若有定义floata[3][5];则a数组所含数组元素个数是,a数组所占的字节数是。
2.若有定义:
doublex[3][5];,则x数组中行下标的下限为,列下表的上限为。
3.假设M为已经声明的符号常量,则定义一个具有M×M个元素的双精度型数组a,且所有元素初值为0的形式是。
4.若有定义:
inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是,a[2][1]得到的初值是。
5.下面程序给a数组输入数据并以每行4个数据的形式输出。
请填空。
#include
#defineN20
intmain()
{inta[N],i;
for(i=0;ifor(i=0;i{if()
printf("%3d",a[i]);
}
printf("\n");
return0;
}
6.下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中,请填空。
#include
intmain()
{inta[2][3]={{1,2,3},{4,5,6}};
intb[3][2],i,j;
printf("arraya:
\n");
for(i=0;i<=1;i++)
{for(j=0;;j++)
{printf("%5d",a[i][j]);
;
}
printf("\n");
}
printf("arrayb:
\n");
for(i=0;;i++)
{for(j=0;j<=1;j++)
printf("%5d",b[i][j]);
printf("\n");
}
return0;
}
7.下面程序段的运行结果是。
intx[5],i;
x[0]=1;x[1]=2;
for(i=2;i<5;i++)x[i]=x[i-1]+x[i-2];
for(i=2;i<5;i++)printf("%d",x[i]);
8.下面程序的运行结果是。
#include
intmain()
{inta[5][5],i,j,n=1;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
a[i][j]=n++;
printf("Theresultis:
\n");
for(i=0;i<5;i++)
{for(j=0;j<=i;j++)
printf("%4d",a[i][j]);
printf("\n");
}
return0;
}
9.以下程序的功能是求1000以内的水仙花数。
(提示:
所谓水仙花数是指一个3位正整数,其各位数字的立方之和等于该正整数。
例如:
407=4×4×4+0×0×0+7×7×7,故407是一个水仙花数。
)请填空。
#include
intmain()
{intx,y,z,a[8],m,i=0;
printf("Thespecialnumbersare:
\n");
for(;m++)
{x=m/100;y=;z=m%10;
if(m==x*x*x+y*y*y+z*z*z)
{;i++;}
}
for(x=0;x
printf("%6d",a[x]);
printf("\n");
return0;
}
10.下面程序的运行结果是。
#include
intmain()
{inta[10]={7,3,5,2,9,1,0,6,8,4},i=0,j=9,t;
while(i{t=a[i];a[i]=a[j];a[j]=t;
i+=2;j-=2;
}
for(i=0;i<10;i+=2)printf("%d",a[i]);
return0;
}
11.下面程序的功能是输入5个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的5个整数。
请填空。
#include
intmain()
{inta[5],max,min,i,j=0,k=0,t;
for(i=0;i<5;i++)
scanf("%d",&a[i]);
min=a[0];
for(i=1;i<5;i++)
if(a[i]max=a[0];
for(i=1;i<5;i++)
if(a[i]>max){max=a[i];;}
printf("\nThepositionofminis:
%3d\n",k);
printf("Thepositionofmaxis:
%3d\n",j);
for(i=0;i<5;i++)
printf("%5d",a[i]);
printf("\n");
return0;
}
12.下面程序的功能是检查一个二维数组是否对称(即对所有i、j都有a[i][j]=a[j][i])。
请填空。
#include
intmain()
{inta[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4};
inti,j,found=0;
for(j=0;j<4;j++)
for(;i<4;i++)
if(a[j][i]!
=a[i][j])
{;break;}
if(found==1)printf("No\n");
elseprintf("Yes\n");
return0;
}
13.设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。
请填空。
#include
intmain()
{inta[10]={1,2,3,4,5,6,7,8,9,10};
intk,s,i;
floatave;
for(k=s=i=0;i<10;i++)
{if(a[i]%2!
=0);
s+=;
k++;
}
if(k!
=0)
{ave=s/k;printf("%d,%f\n",k,ave);}
return0;
}
14.以下程序是将矩阵a、b的和存入矩阵c中并按矩阵形式输出。
请填空。
#include
intmain()
{inta[3][4]={{3,-2,7,5},{1,0,4,-3},{6,8,0,2}};
intb[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};
inti,j,c[3][4];
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
{c[i][j]=;
printf("%3d",c[i][j]);
}
;
}
return0;
}
15.以下程序段的功能是求数组num中小于零的数据之和。
请填空。
intnum[20]={10,20,1,-20,203,-21,2,-2,-2,11,-21,22,12,-2,-234,-90,22,90,-45,20};
intsum=0,i;
for(i=0;i<=19;i++)
if()sum=;
printf("sum=%6d",sum);
16.以下程序段的功能是,运行后输出结果是。
intnum[10]={103,1,-20,-203,-21,2,-2,-2,13,-21};
intsum=0,i;
for(i=0;i<10;i++)
if(num[i]>0&&num[i]%10==3)
sum=sum+num[i];
printf("sum=%d\n",sum);
17.下面程序用“快速顺序查找法”判断数组a中是否存在某一数。
请填空。
#include
intmain()
{inta[9]={25,57,48,37,12,92,86,33},i,x;
scanf("%d",&x);
i=0;;
while(a[i]!
=x)i++;
if()printf("Found!
Theindexis:
%d\n",i);
elseprintf("Can'tfound!
\n");
return0;
}
18.下面程序是用“插入法”对数组a进行降序排序。
请填空。
#include
intmain()
{inta[5]={4,7,2,5,1},i,j,m;
for(i=1;i<5;i++)
{m=a[i];
j=;
while(j>=0&&m>a[j])
{;j--;}
=m;
}
for(i=0;i<5;i++)printf("%3d",a[i]);
printf("\n");
return0;
}
19.下面程序用“两路合并法”把两个已按升序排列的数组合并成一个升序数组。
请填空。
#include
intmain()
{inta[3]={5,9,10};
intb[5]={12,24,26,37,48};
intc[10],i=0,j=0,k=0;
while(i<3&&j<5)
if()
{c[k]=b[j];k++;j++;}
else
{c[k]=a[i];k++;i++;}
while()
{c[k]=a[i];i++;k++;}
while()
{c[k]=b[j];j++;k++;}
for(i=0;iputchar('\n');
return0;
}
20.字符串"ab\n\\012\\\""的长度是。
21.下面程序段将输出computer。
请填空。
charc[]="Itisacomputer";
inti,j;
for(i=0;;i++)
{;printf("%c",c[j]);}
22.下面程序的功能是从键盘输入一个大写英文字母,要求按字母的顺序打印出3个相邻的字母,指定的字母在中间。
若指定的字母为Z,则打印出YZA;若为A,则打印出ZAB。
请填空。
#include
intmain()
{chara[3],c;
inti;
c=getchar();
a[1]=c;
if(c=='Z'){a[2]='A';;}
elseif(c=='A'){a[0]='Z';;}
else{a[0]=c-1;a[2]=c+1;}
for(i=0;i<=2;i++)putchar(a[i]);
return0;
}
23.下面程序段的功能是将字符数组a[6]={'a','b','c','d','e','f'}变为a[6]={'f','a','b','c','d','e'}。
请填空。
#include
intmain()
{chart,a[6]={'a','b','c','d','e','f'};
inti;
;
for(i=4;i>=0;i--);
a[0]=t;
for(i=0;i<=5;i++)putchar(a[i]);
return0;
}
24.下面程序的功能是在任意的字符串a中,将与字符c相等的所有元素的下标值分别存放在整型数组b中。
请填空。
#include
intmain()
{chara[80];
inti,b[80],k=0;
gets(a);
for(i=0;a[i]!
='\0';i++)
if(){b[k]=i;;}
for(i=0;ireturn0;
}
25.有10个字符串。
下面程序的功能是在每个字符串中找出最大字符,并按一一对应的顺序放入一维数组a中,即第i个字符串中的最大字符放入a[i]中,输出每个字符串中的最大字符。
请填空。
#include
intmain()
{chars[10][20],a[10];
inti,j;
for(i=0;i<10;i++)gets(s[i]);
for(i=0;i<10;i++)
{;
for(j=1;s[i][j]!
='\0';j++)
if(a[i]
}
for(i=0;i<10;i++)printf("%d%c\n",i,a[i]);
return0;
}
答案:
1.15602.043.doublea[M][M]={0};4.06
5.scanf(“%d”,&a[i])
i%4==0printf(“\n”);
6.j<=2b[j][i]=a[i][j]i<=2
7.358
8.1
67
111213
16171819
2122232425
9.m=100;m<=999m/10%10a[i]=m
10.46108
11.k=ij=ia[j]=min;a[k]=max;
12.i=j+1found=1;
13.continuea[i]
14.a[i][j]+b[i][j]printf(“\n”)
15.num[i]<0sum+num[i]
16.计算数组num中大于零且个位数为3的数据之和116
17.a[8]=xi<8
18.i-1a[j+1]=a[j]a[j+1]
19.b[j]20.9
21.i<=7j=i+8
22.a[0]=c-1a[2]=c+1
23.t=a[5]a[i+1]=a[i]
24.a[i]==’c’k++
25.a[i]=s[i][0]a[i]=s[i][j]