若有以下的定义和语句: main(){ int a *p,j; for(j=0;j<4;j++) p【j】=a【j】; }则能表示数组元素的表达式是__
A.*(p[1])
B.[4][3]
C.[1]
D.*(p+4)[1]
A、*(p[1])
解析:解析:B项错在越界,下标最大的元素只到a[3][2];C项错在a[1]只表示第2行;*(p+4)[1]的错误也在于越界,p+4相当于a[4],实际上是不存在的。
A.*(p[1])
B.[4][3]
C.[1]
D.*(p+4)[1]
A、*(p[1])
解析:解析:B项错在越界,下标最大的元素只到a[3][2];C项错在a[1]只表示第2行;*(p+4)[1]的错误也在于越界,p+4相当于a[4],实际上是不存在的。
若有以下定义的语句
struct student
{ int age;
int num; };
struct student stu[3]={{1001,20},{1002,19},{1003,21}};
main()
{ struct student *p;
p=stu;
… }
则以下不正确的引用是
A.(p++)->num
B.p++
C.(*p).num
D.P=&stu.age.
若有定义语句:int a[2][3],*p[3];,则以下语句中正确的是()。
A.p=a;
B.p[0]=a;
C.p[0]=&a[1][2];
D.p[1]=&a;
A.3,5
B.3,5,4
C.3,5
D.3,5
若有以下定义和语句; int a[]={1,2,3,4,5,6,7,8,9,10},*p=a;
A.p+=2,*(p++)
B.p+=2,*++p
C.p+=3,*p++
D.p+=2,++*p
若有以下定义和语句,且0<=I<10,则对数组元素的错误引用是 ()
int a [ ]={1,2,3,4,5,6,7,8,9,0};
int*p,I
p=a;
A.* (a+I)
B.a[p-a]
C.p+I
D.* (&a[I])
若有以下定义和语句,则对a数组元素地址的正确引用为 int a[2][3],(*p)[3]; p=a;
A.*(p+2)
B.p[2]
C.p[1]+1
D.(p+1)+2
char c1,c2;
scanf("%4c%4c",&c1,&c2);
若有定义和语句 () char s[10];s="abcd";printf("%s\n",s); 则结果是(以下μ代表空格)
A.输出abcd
B.输出a
C.abcdμμμμμ
D.编译不通过
A.10,10,10
B.8,16,10
C.8,10,10
D.8,8,10
若有以下定义和语句: int u=010,v=0x10,w=10; printf("%d,%d,%d\n",u,v,w); 则输出结果是()
A.8,16,10
B.10,10,10
C.8,8,10
D.8,10,10