2-1
Among the following assignments or initializations,_is wrong.
A.char str[10];str="string";
B.char str[]="string";
C.char *p="string";
D.char *p;p="string";
2-2
According to the declaration:int p[5],*a[5];the expression______is correct.
A.p=a
B.p[0]=a
C.*(a+1)=p
D.a[0]=2
2-3
若p1、p2都是整型指针,1已经指向变量x,要使p2也指向x,()是正确的。
A.p2=p1;
B.p2 =**p1;
C,p2 =&p1;
D.p2=*p1;
2-4
设变量定义为int a[2]={1,3},*p=&a[θ]+1;,则知的值是()。
A.2
B.3
C.4
D.&a[0]+1
2-5
根据声明int a[10],*p=a;,下列表达式错误的是()。
A.a[9]
B.p[5]
C.a++
D.*p++
2-6
根据声明int(*p)[18],p是一个()。
A.数组
B.指针
C.函数
D.数组的元素
2-7
With regard to the array definition int a[4];,which expression among the following is wrong?
A.*a
B.a[o]
C.a
D.a++
2-8
若定义pf为指向float类型变量f的指针,下列语句中_是正确的。
A.float f,*pf =f;
B.floatf,*pf =&f;
C.Float *pf =&f,f;
D.float f,*pf =0.0;
2-9
假设scanf语句执行时输入ABCDE<回车>,能使puts(s)语句正确输出ABCDE字符串的程序段是_。
A.char s[5]={"ABCDE"};puts(s);
B.char s[5]={'A','B','C','D','E'};puts(s);
C.char *s;scanf(“%s”,s);puts(s);
D.char *s;s="ABCDE";puts(s);
2-10
Which one is completely correct among the following program fragments?
A.int *p; scanf("%d",&p);
B.int *p;scanf("%d",p);
C.int k,*p=8k;scanf(“%d”,p);
D.int k,*p;*p=8k;scanf("%d",p);
2-11
In the following declarations,the correct assignment expression is_.int *p[3],a[3];
A.p=a
B.p=Ba[o]
C.如=a
D.p[θ]=*a
2-12
在基类型相同的两个指针变量之间,不能进行的运算是()。
A.<
B.=
C.+
D.-
2-13
以下哪个定义中的p不是指针,请选择恰当的选项:
A.char **p
B.char (*p)[10];
C.char *p[b];
D.给出的三项中,p都是指针
2-14
若有以下定义:
char s[20]="programming",*ps=s;
则不能代表字符o的表达式是
A.ps+2
B.s[2]
C.ps[2]
D.ps+=2,*ps
2-15
以下叙述错误的是()。
A.指针可以进行加、减等算术运算;
B.指针中存放的是地址值
C.指针是一个变量
D.指针变量不占用存储空间
2-16
下列程序的执行结果是()。
void fun(int *p)
{
(*p)++;
}
main()
{
int a=5;
fun(&a);
printf("%d",a);
}
A.5
B.a
C.6
D.程序有误
2-17
若有int*p,a=4;和p=&a;下面()均代表地址。
A.a,p,*&a
B.&*a,&a,*r
C.*&p,*p,&a
D.&a,&*p,p
2-18
下面程序段执行后的输出结果是()。
char a[]="Language",*p;
p = a;
while(*p!='u')
{
printf("%c",*P -32);
p++;
}
A.LANGUAGE
B.language
C.LANG
2-19
执行下面程序段后,变量a的值为()。
int a=10,b=1;
int *p=&a;
a=*p+b;
A.12
B.11
C.10
D.编译错误
2-20
下列语句定义px为指向int类型变量x的指针,正确的是()
A.int x,*px=x;
B.intx,*px=&x;
C.int*px=&x,x;
D.int x,px=x: