题目内容

int a[]={1,2,3,4,5,6,7,8,9,10},*p=a,i=1;数组元素地址的正确表示是( )

A. &(a+1)
B. a++
C. &p
D. &p[i]

查看答案
更多问题

以下程序有什么问题?#include #include #include int main(){ char *p; int i; p=(char *)malloc(sizeof(char)*5); strcpy(p,"welcome"); for(i=6;i>=0;i--) putchar(*(p+i)); printf("\n"); free(p);}

A. 没有问题
B. 动态申请的空间不够存储welcome这个字符串。
C. strcpy这个函数参数错误
D. free错误

下面程序的功能是通过动态分配内存函数malloc产生动态数组,程序的某次运行结果如下:Enter array size:8↙array[0]=0array[1]=10array[2]=20array[3]=30array[4]=40array[5]=50array[6]=60array[7]=70按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include #include int main(){ int *p,n,i; printf("Enter array size:"); scanf("%d",&n); __________________; for(i=0;i

A. 第8行: p=(int)malloc(n*sizeof(int *));第12行:*(p+i)=i*10第16行:printf("array[i]=%d\n",i,*(p+i))
B. 第8行: p=(int *)malloc(n*sizeof(int));第12行:*p+i=i*10第16行:printf("array[i]=%d\n",i,*p+i)
C. 第8行: p=(int *)(n*malloc(sizeof(int*)))第12行:*p+i=i*10第16行:printf("array[%d]=%d\n",i,*(p+i))
D. 第8行: p=(int *)malloc(n*sizeof(int));第12行: *(p+i)=i*10第16行: printf("array[%d]=%d\n",i,*(p+i))

申请一个具有n个int型元素的一维动态数组,可以使用下面的哪条语句?

A. p = (int *) malloc(n * sizeof(int));
B. p = (int *) malloc(n, sizeof(int));
C. int p[n];

下列说法错误的是

A. 用return语句既可以从函数返回调用动态内存分配函数动态申请的内存的地址,也可以从函数返回在函数内定义的局部变量的地址。
B. 对于用动态内存分配函数申请的内存,如果在使用结束后不释放的话,会发生内存泄漏。
C. 对于用动态内存分配函数申请的内存,如果在释放以后还继续使用的话,那么会产生非法内存访问的错误。
D. 计算动态分配内存的字节数的时候,应该始终使用sizeof运算符,因为某些类型在不同的系统下所占内存空间的字节数是不同的。

答案查题题库