logo - 刷刷题
下载APP
【单选题】

以下程序的输出结果是
#include
int a[3][3]={1,2,3,4,5,6,7,8,9,},*p;
main( )
{ p=(int *)malloc(sized(int));
f(p,a) ;
printf("%d\n",*p);
free(p);}
f(int *s,int p[ ][3])
{ *s=p[1][1];}
  • A.1
  • B.4
  • C.7
  • D.5
A B C D
D
[解析] 本题考查了二维数组元素引用的方法。题中用动态存储分配函数malloc分配了一个int型数据长度大小的内存,然后指针p指向了这段内存,函数f( )中对p所指向的数据进行了赋值,p[1][1]为二维数组第二行第二列的元素,对应于实参a的元素5,所以输出结果为5。

A.
1
B.
4
C.
7
D.
5
举报
参考答案:
参考解析:
.
刷刷题刷刷变学霸
举一反三

【单选题】使用二维数组的数组名作为函数实参,其向形参传递的是()

A.
二维数组中首元素的值
B.
二维数组中首元素的地址
C.
二维数组中首行元素的行地址
D.
二维数组全部元素的值

【单选题】关于动态存储分配,下列说法正确的是

A.
new和delete是C++语言中专门用于动态内存分配和释放的函数
B.
动态分配的内存空间也可以被初始化
C.
当系统内存不够时,会自动回收不再使用的内存单元,因些程序中不必用delete释放内存空间
D.
当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用new

【单选题】在下面的二维数组定义中,语法正确的选项是()。

A.
int a[5][];
B.
int a[][5];
C.
int a[][3]={{1,3,5},{2}};
D.
int a[](10);

【单选题】关于二维数组的有关说法,正确的是()

A.
数组中的所有元素都只有一个前趋结点和一个后继结点
B.
数组中的所有元素都具有至少一个直接前驱
C.
数组中的所有元素都具有至少一个直接后继
D.
开始结点没有直接前驱

【多选题】二维数组初始化正确的是()

A.
intarr[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
B.
intarr[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
C.
intarr[][4]={1,2,3,4,5,6,7,8,9,10,11,12};
D.
intarr[3][4]={{1,2,3},{4,5},{6}};