假设有下面定义语句:float a[10];float *p=a;则p++的效果是p的值在原来基础上增加( )
A. sizeof(p)
B. 1
C. sizeof(float)
D. sizeof(a)
查看答案
若有定义:int b[5], *p=b;,则不能代表b数组首地址的是()。
A. b
B. &b[0]
C. &b
D. &p[0]
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))