《C语言程序设计》核心试题(8)
(2011-09-13 23:17:03)
标签:
c语言 |
分类: 教学文件 |
第九部分(二):二维数组与指针
一、选择题
(1)有以下程序
main()
{
}
B)1 2 3
C)2 3 4
D)3 4 5
(2)有以下程序
main()
{
}
B)1 0
C)1 2
D)1 0
(3)有以下程序
main()
{
}
1
B)
i
C)
i+1
D)
4-i
(4)
以下能正确定义二维数组的是
A) int a[][3];
C) int a[][3]={};
(5)
若有以下说明和语句,int
c[4][5],(*p)[5];p=c;能正确引用c数组元素的是
A)
p+1
(6)
有以下定义和语句
int a[3][2]={1,2,3,4,5,6,},*p[3];
p[0]=a[1];
则*p[0]+1)所代表的数组元素是
A) a[0][1]
(7)
有以下程序
int f(int b[][4])
{ int i,j,s=0;
return s;
}
main( )
{ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};
printf(“%d\n”,f(A) );
}
A) 12
(8)
以下不能正确定义二维数组的选项是
A) int
(9)
A)
定义了一个基类型为int的指针变量p,该变量具有三个指针
B)
定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针
C)
定义了一个名为*p的整型数组,该数组含有三个int类型元素
D)
定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素
(10)
有以下程序
main()
{
p=&a [0][0] ;
for ( i=0 ; i<9 ; i++) p[i]=i+1;
printf("%d\n",a[1][2]);
}
A)
3
(11)
以下能正确定义数组并正确赋初值的语句是
A)
int
(12)
main()
{
{
}
A) 4 5
6
(13)
有以下程序
main()
{
pa=a;
for(i=0;i<3;i++)
if(i<2)
else
printf("%d\n",a[0][1]+a[1][1]+a[1][2]);
}
A)
7
(14)
有以下程序
main()
{
int i,s=0
for(i=0;i<4;i++)
printf(“%d\n”,s);
}
A) 11
(15)
若有以下定义和语句:
int
ps=s;
A)
ps+1
(16)
以下程序的输出结果是
main()
{
printf("%d\n",t);
}
(17)
以下数组定义中不正确的是
A) int
(18)
main()
{
printf(“%d%d%d%d\n”,a[0][3],a[1][2],a[2][1],a[3][0]);
}
(19)
以下程序的输出结果是
A) 1,5,9
main()
{ int
}
(20)
A) 18
main()
{ int
}
(21)
A)
&t[3][2]
(22)
有如下程序
main0
{
for(i=1;i<3;i++)
for(j=0;j<i;j++) s+=a[i][j]
printf(“%d\n”,s);
}
A)
18
(23)
下列程序执行后的输出结果是
A)
3
(24)
A) 5
2
(25)
A)
t[2][0]
(26)
以下程序的输出结果是
A)14
main()
{ int
for ( i=0; i<2; i++ )
printf(“%d\n”,n[i][j]);
}
(27)
(28)
若有以下定义和语句:
int w[2][3],(*pw)[3];
pw=w;
则对w数组元素非法引用是
A)*(w[0]+2)
(29)
若有以下说明:
A)
*w[1]+1
(30)
若有以下的说明和语句:
main()
{int t[3][2], *pt[3],k;
fpr(k=o; k<3;k++)pt[k]=t[k];
}
A)
&t[3][2]
(31)
定义如下变题和数组:
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是
for(i=0;i<3;i++)
printf("%d",x[i][2-1]);
A) 1 5
9
(32)
设有以下定义:
int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int (*prt)[3]=a,*p=a[0];
则下列能够正确表示数组元素a[1][2]的表达式是
A) *((*prt+1) [2])
(33)
下面程序的输出是
A)
23
int aa[3][3]={{2},{4},{6}};
main()
{ int i, * p=&aa[0][0];
for(i=0; i<2;i++)
{ if(i==0)
aa[i][i+1]=*p+1;
else
++p;
printf("%d",*p);}
}
(34)
下面程序的输出是
A)
60
main()
{ int a[3][4]={ 1,3,5,7,9,11,13,15,17,19,21,23};
int ( *p)[4]=a,i,j,k=0;
for(i=0; i<3; i++)
for(j=0; j<2; j++)
k=k+*( *(p+i)+j);
printf("%d\n",k);}
(35)
若有以下说明和语句,请选出哪个是对c数组元素的正确引用
int c[4][5], (*cp)[5];
cp=c;
A)
cp+1
(36)
设有说明int(*ptr)[m];其中的标识符ptr是
【36】
。
A)M个指向整型变量的指针
B)指向M个整型变量的函数指针
C)一个指向具有M个整型元素的一维数组的指针
D)具有M个指针元素的一维指针数组,每个元素都只能指向整型量
二、填空题:
(1)以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。
(2)
void
main()
{
}
void fun(int
{
}
(3)
#define
#define
void SumColumMin(int a[M][N],int *sum)
{ int i,j,k,s=0;
}
main()
{ int x[M][N]={3,2,5,1,4,1,8,3},s;
}
(4)
#define
void
{
}
(5)
main()
{ int
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)
for(i=0;i<3;i++)
{
printf("\n");
}
}
(6)
main()
{
}
(7)
函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下
1
1
1
1
1
第0列元素和主对角线无素均为1
其余元素为其左上方和正上方元素之和
数据的个数每行递增1
请将程序补充完整。
#defint
void
{
}
(8)
#include
#define
int
{ int
for(row=0;row<N;row++)
{ for(max=a[row][0],col=1;col<N;col++)
if(
return
}
(9)
#define
#define
for(i=0;i<N;i++)
for(j=0;j<M;j++)
if(a[i][j]>a[row][colum]){row=i;colum=j;}
*n=
return
(10)
#define
#define
void
{
}
main()
{
}
(11)
main()
{
int
┆
fun(s);
┆
}
(12)
设有以下定义的语句:
(13)
#include<stdio.h>
main()
{
static int array[3][3]={{100,200,300},
{28,72,-30},
{-850,2,6}
};
m=array[0][0];
for (i=0; i<3; i++)
for (j=0; j<3; i++)
if (array[i][j]<m)
{ m=array[i][j]; row=i; column=j;}
printf("%d,%d,%d\n",m,row,column);
}
答案:
一、选择题:
01)
06)
11)
16)
21)
26)
31)
36)
二、填空题:
(1) A[0][i]
(2) b[i][0]
(3) br[i]
(4) a[k][i]
(5) *sum
(6) x,&s
(7) j<=i
(8) a[i][j]=a[j][i]
(9) 1 2 3
(10) 58
(11) x[i][i]
(12) x[i-1][j-1]+x[i-1][j]
(13) a[row][col]>max
或 a[row][col]>=max
或 max<=a[row][col]
(14) Max<min
或 min>max
或 max<=min
或 min>=max
(15) row
(16) a[row][colum]
(17) sp=j
(18) cx[i][p]
(19) LineMax(x)
(20) void fun(double b[][22])
(21) 60
(22) -850,2,0若遗漏逗号扣1分