【PTA|客观题|期末复习】指针

文章详细解释了C语言中指针的声明、初始化、基本运算以及数组的使用,包括错误的初始化例子和正确的指针赋值。涵盖了指针指向、数组元素访问、算术运算符应用等内容。

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:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值