51509下面语句错误的是( A )。
A. int *p; *p=20; B. char *s=\C.char *str=\ D.char *str;str=\
51510若有定义int a[2][3],*p=a;,则能表示数组元素a[1][2]地址的是( D )。 A. *(a[1]+2) B. a[1][2] C.p[5] D.p+5
51511若已定义: int a=5,*p; 且 p=&a; 则以下表示中不正确的是( B )。 A. &a==&(*p) B. *(&p)==a C.&(*p)==p D.*(&a)==a
51512若有以下程序段,则叙述正确的是( D )。 char s[]=\ char *p; p=s; A. s和p完全相同 B. 数组s的长度和p所指向的字符串长度相等 C.*p与s[0]相等 D.数组s中的内容和指针变量p中的内容相等 51513C语言中,二维数组元素在内存中的存放顺序是(A)。
A. 按行存放 B. 按列存放 C.由用户自己定义 D.随机存放
51514若有定义:int *p1,*p2; ,则不能用于指针变量p1、p2之间的运算符是( C )。 A. = B. = = C.+ D.-
51515下面叙述错误的是( C )。
A. 一个指针变量只能指向同一类型的变量 B. 一个变量的地址称为该变量的指针 C.可以将一个整数值赋给指针变量 D.任何指针变量都可以与空指针NULL进行比较 51516以下程序段运行后*(p+1)的值为( A )。 char a[]=\ char *p; p=a; A. 'o' B. 'g' C.a[1]的地址 D.不确定
51517以下程序段运行后*(p++)的值为( A )。 char a[5]=\ char *p; p=a; A. 'w' B. a[0]的地址 C.'o' D.a[1]的地址
51518若有定义:int a=4,*p=&a; ,则以下( B )均表示地址。 A. a,p B. &a,p C.&a,*p D.a,*p
51600以下程序段的运行结果是( B )。 enum weekday{ aa,bb=2,cc,dd,ee }week=ee; printf(\
A. ee B. 5 C.2 D.4
51601若有以下程序段,则不能正确访问数组元素a[1][2]的是( A )。 int (*p)[3]; int a[][3]={1,2,3,4,5,6,7,8,9}; p = a;
A. p[1]+2 B. p[1][2] C.(*(p+1))[2] D.*(*(a+1)+2)
51602以下程序段的运行结果是( A )。 int a[]={1,2,3,4,5,6,7},*p=a; int n,sum=0; for(n=1;n<6;n++) sum+=p[n++]; printf(\ A. 12 B. 15 C.16 D.27
51603下面程序的运行结果是( A )。 main( ) { int a,b; int *p1=&a,*p2=&b,*t; a=10; b=20; t=p1; p1=p2; p2=t; printf(\ } A. 10,20 B. 20,10 C.10,10 D.20,20 51604以下程序段运行后变量s的值为( C )。 int a[]={1,2,3,4,5,6,7};
int i, s=1,*p; p=&a[3];
for(i=0;i<3;i++) s*=*(p+i);
A. 6 B. 60 C.120 D.210
51605以下程序段运行后变量ans的值为( B )。 int a[]={1,2,3},b[]={3,2,1}; int *p=a,*q=b; int k,ans=0;
for(k=0;k<3;k++) if(*(p+k)==*(q+k)) ans=ans+*(p+k)*2;
A. 2 B. 4 C.6 D.12
51606以下程序运行结果是( A )。 main( )
{ char a[]=\ for(p=a;p A. abcbcc B. abc C.cbabaa D.cba 51607以下程序的输出结果是( B )。 #include char *s=\ for(i=0;i<3;i++) printf(\ } A. CD BCD ABCD B. ABCD BCD CD C.AB ABC ABCD D.ABCD ABC AB 51608以下程序的输出结果是( B )。 #include {char *p=\ printf(\ } A. A B. B C.C D.D 51609下面程序执行时,若输入5 4 3 2 1<回车>,则输出为:( B ) #include while(p while(p>a) printf(\ } A. 5 4 3 2 1 B. 1 2 3 4 5 C.3 4 5 1 2 D.3 2 1 5 4 51610下面程序段的运行结果是( C )。 int a[]={1,2,3,4,5,6},*p=a; int i,sum=0; for(i=1;i<6;i++) sum+=*(p++); printf(\ A. 10 B. 12 C.15 D.20 51611下面程序运行结果是( D )。 main( ) { int a[]={1,2,3,4,5},*p,*q,i; p=a; q=p+4; for(i=1;i<5;i++) printf(\ } A. 24334251 B. 51423324 C.15243342 51612下面程序运行结果是( B )。 main( ) { static char a[]=\ char *p=a,*q=b; int i; for(i=0;i<=6;i++) if(*(p+i)==*(q+i)) printf(\ } A. geca B. aceg C.bdf D.fdb 51613以下程序段的运行结果是( B )。 int x[3]={1,2,3}; int *p; p=x; for(p++;p<&x[2];p++) printf(\ \ A. 3 B. 2 C.1 2 D.2 3 51614以下程序段的运行结果是( B )。 int x[]={2,3,4,5,6,7},*p=x; int i,s=0; for(i=1;i<5;i++) s+=p[i++]; printf(\ A. 14 B. 8 C.6 D.20 51615以下程序的运行结果是( C )。 main( ) { int x,y; D.42332415 int *p,*q,*t; x=23; y=45; p=&x; q=&y; t=p; p=q; q=t; printf(\ } A. 23,23 B. 45,45 C.23,45 D.45,23 51616以下程序段运行后x的值为( C )。 int a[]={1,2,3,4,5,6,7,8}; int i,x,*p; x=1; p=&a[1]; for(i=0;i<3;i++) x*=*(p+i); A. 1 B. 6 C.24 D.120 51617以下程序段运行后x的值为( C )。 int a[]={1,2,3},b[]={4,3,3}; int *p,*q; int i,x; p=a; q=b; for(i=0;i<3;i++) if(*(p+i)==*(q+i)) x=*(p+i)*2; A. 2 B. 4 C.6 D.不确定 51700若定义如下结构,则能打印出字母M的语句是( B )。 struct person{ char name[9]; int age; }; struct person class[10]={\ A. printf(\ B. printf(\C.printf(\ D.printf(\51701以下程序段的运行结果是( D )。 union { int n; char str[2]; }t; t.n=80; t.str[0]='a'; t.str[1]=0; printf(\